package com.iwhalecloud.picedit;

import android.support.annotation.StringDef;
import android.util.Log;
import android.view.View;

import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.uimanager.events.RCTEventEmitter;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

class MyEventEmitter
{

    private final RCTEventEmitter eventEmitter;

    private int viewId = View.NO_ID;

    MyEventEmitter(ReactContext reactContext) {
        this.eventEmitter = reactContext.getJSModule(RCTEventEmitter.class);
    }

    public static final String EVENT_COMPLETE= "onComplete";
    public static final String EVENT_CANCEl = "onCancel";
    public static final String EVENT_ERROR = "onError";

    static final String[] Events = {
            EVENT_COMPLETE,
            EVENT_CANCEl,
            EVENT_ERROR
    };

    @Retention(RetentionPolicy.SOURCE)
    @StringDef({
            EVENT_COMPLETE,
            EVENT_CANCEl,
            EVENT_ERROR
    })

    @interface MyEvent {
    }

    private static final String EVENT_PROP_ERROR = "error";
    private static final String EVENT_PROP_ERROR_STRING = "errorString";
    private static final String EVENT_PROP_ERROR_EXCEPTION = "";


    void setViewId(int viewId) {
        this.viewId = viewId;
    }

    public void receiveEvent(@MyEvent String type, WritableMap event) {
        Log.i("dyh","viewId:"+viewId+" type:"+type);
        eventEmitter.receiveEvent(viewId, type, event);
    }

}
