
package com.reactlibrary;
import android.os.Handler;
import android.os.PowerManager;

import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.modules.core.DeviceEventManagerModule;

import static android.content.Context.POWER_SERVICE;

public class RNAndroidBackgroundTimerModule extends ReactContextBaseJavaModule {
  private PowerManager powerManager;
  private PowerManager.WakeLock wakeLock;
  public RNAndroidBackgroundTimerModule(ReactApplicationContext reactContext){
    super(reactContext);

    this.powerManager = (PowerManager) getReactApplicationContext().getSystemService(POWER_SERVICE);
    this.wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "rewieer_bg_wakelock");
    this.wakeLock.acquire();
  }

  @Override
  public String getName() {
    return "RNAndroidBackgroundTimerModule";
  }

  @ReactMethod
  public void setTimeout(final int id, final int timeout){
    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
      @Override
      public void run() {
        if(getReactApplicationContext().hasActiveCatalystInstance()){
          getReactApplicationContext()
              .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
              .emit("rewieer.backgroundTimer.timeout", id);
        }
      }
    }, timeout);

  }
}

