
package com.impekable.contextcenter-rn;
import android.telephony.TelephonyManager;
import android.content.Context;

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 RNContextCenterModule extends ReactContextBaseJavaModule {

  private final ReactApplicationContext reactContext;

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

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

  /**
   * PUBLIC REACT API
   *
   *  localChatUserId()   Returns String of UUID of device if first time / get from app-storage
   */
  @ReactMethod
  public String localChatUserId(final Promise promise) {
    try {
      String chatUserId = PreferenceManager.getDefaultSharedPreferences(this.reactContext).getString("CHAT_USER_ID", ""); 
      if (chatUserId != ""){
        promise.resolve(chatUserId);        
      }else{
        TelephonyManager telephonyManager = getSystemService(Context.TELEPHONY_SERVICE);
        String uuid = telephonyManager.getDeviceId();
        PreferenceManager.getDefaultSharedPreferences(this.reactContext).edit().putString("CHAT_USER_ID", uuid).apply();  
        promise.resolve(uuid);        
      }
    } catch (Exception ex) {
      promise.reject("ERR_UNEXPECTED_EXCEPTION", ex);
    }
  }
}