
package com.reactlibrary;

import com.connecthings.adtag.AdtagInitializer;
import com.connecthings.adtag.optin.OPTIN;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.Callback;

public class RNTestConnecthingsModule extends ReactContextBaseJavaModule {
    private final ReactApplicationContext reactContext;
    private AdtagInitializer adtagInitializer;

    public RNTestConnecthingsModule(ReactApplicationContext reactContext) {
        super(reactContext);
        this.reactContext = reactContext;
        adtagInitializer = AdtagInitializer.getInstance();
    }

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

    @ReactMethod
    public void updateOptin(String optin, boolean permission) {
        adtagInitializer.updateOptin(OPTIN.valueOf(optin), permission);
    }

    @ReactMethod
    public void optinsNeverAsked(Callback callback) {
        callback.invoke(adtagInitializer.optinsNeverAsked());
    }

    @ReactMethod
    public void allOptinsAreUpdated() {
      adtagInitializer.allOptinsAreUpdated();
    }

    @ReactMethod
    public boolean allOptinsAreUpdated(String optin, Callback callback) {
        callback.invoke(adtagInitializer.isOptinAuthorized(OPTIN.valueOf(optin)));
    }

}