package com.reactnativetaskauto;

import androidx.annotation.Nullable;

import com.facebook.common.internal.Objects;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.WritableNativeMap;
import com.facebook.react.module.annotations.ReactModule;
import com.facebook.react.modules.core.DeviceEventManagerModule;

import org.json.JSONObject;

import java.io.ObjectInput;

@ReactModule(name = ThreadSelfModule.REACT_MODULE_NAME)
public class ThreadSelfModule extends ReactContextBaseJavaModule {
  public static final String REACT_MODULE_NAME = "ThreadSelfManager";

  private int threadId;
  private ReactApplicationContext parentContext;

  public ThreadSelfModule(ReactApplicationContext context) {
    super(context);
  }

  public void initialize(int threadId, ReactApplicationContext parentContext) {
    this.parentContext = parentContext;
    this.threadId = threadId;
  }

  @Override
  public String getName() {
    return REACT_MODULE_NAME;
  }

  @ReactMethod
  public void postMessage(String data) {
    if (parentContext == null) { return; }

//    WritableMap resultData = new WritableNativeMap();
//    resultData.putMap("key", data);

    WritableMap params = Arguments.createMap();
    params.putString("key", data);
//    Object f = data;
//    Object fdd = data.getMap("NativeMap");

    parentContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
      .emit("Thread" + String.valueOf(threadId), data);
  }
}
