package com.contentsquare.rn;

import com.contentsquare.rn.erroranalysis.ErrorAnalysisModuleImpl;
import com.contentsquare.rn.eventEmitter.CSEventEmitterModuleImpl;
import com.contentsquare.rn.utils.ReactNativeUiThreadUtil;
import com.contentsquare.rn.webview.WebViewInjector;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReadableMap;
import android.util.Log;

import java.util.Map;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

public class CSEventEmitterModule extends NativeCSEventEmitterModuleSpec {

    private final CSEventEmitterModuleImpl implementation;

    public CSEventEmitterModule(
            ReactApplicationContext reactContext, CSEventEmitterModuleImpl implementation) {
        super(reactContext);
        this.implementation = implementation;
    }

    @Override
    public String getName() {
        return implementation.NAME;
    }

    @ReactMethod
    public void addListener(String eventName) {
        implementation.addListener(eventName);
    }

    @ReactMethod
    public void removeListeners(double count) {
        implementation.removeListeners((int) count);
    }

    @ReactMethod
    public void removeListener(String eventName) {
        implementation.removeListener(eventName);
    }

}
