// ReactNativeTalkingdataYuanchuModule.java

package com.reactlibrary;

import android.util.Log;

import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Callback;
import com.tendcloud.tenddata.TalkingDataSDK;

public class ReactNativeTalkingdataYuanchuModule extends ReactContextBaseJavaModule {

    private final String TAG = "TalkingdataModule";
    private final ReactApplicationContext reactContext;

    public ReactNativeTalkingdataYuanchuModule(ReactApplicationContext reactContext) {
        super(reactContext);
        this.reactContext = reactContext;
    }

    @Override
    public String getName() {
        return "ReactNativeTalkingdataYuanchu";
    }

    @ReactMethod
    public void sampleMethod(String stringArgument, int numberArgument, Callback callback) {
        // TODO: Implement some actually useful functionality
        callback.invoke("Received numberArgument: " + numberArgument + " stringArgument: " + stringArgument);
    }

    @ReactMethod
    public void initTalkingdata(String appId, String channelId, String custom) {
        if (this.reactContext != null) {
//            Log.e(TAG, "appId: " + appId);
//            Log.e(TAG, "channelId: " + channelId);
            TalkingDataSDK.init(this.reactContext, appId, channelId, custom);
            TalkingDataSDK.setReportUncaughtExceptions(true);
            Error e = new Error("test error report");
        }
    }

    @ReactMethod
    public void onPageBegin(String pageName) {
        if (this.reactContext != null) {
//            Log.e(TAG,"onPageBegin: "+pageName);
            TalkingDataSDK.onPageBegin(this.reactContext, pageName);
        }
    }

    @ReactMethod
    public void onPageEnd(String pageName) {
        if (this.reactContext != null) {
//            Log.e(TAG,"onPageEnd: "+pageName);
            TalkingDataSDK.onPageEnd(this.reactContext, pageName);
        }
    }
}
