package com.github.wusuopu.RNIdle; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.util.Log; import com.facebook.common.logging.FLog; import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.WritableMap; import com.facebook.react.common.ReactConstants; import com.facebook.react.modules.core.DeviceEventManagerModule; import java.util.HashMap; import java.util.Map; import javax.annotation.Nullable; public class RNIdleModule extends ReactContextBaseJavaModule { public RNIdleModule(ReactApplicationContext reactContext) { super(reactContext); } @Override public String getName() { return "RNIdle"; } @ReactMethod public void disableIdleTimer() { setIdleTimerDisabled(true); } @ReactMethod public void enableIdleTimer() { setIdleTimerDisabled(false); } public void setIdleTimerDisabled(final boolean disabled) { final Activity activity = this.getCurrentActivity(); if (activity != null) { activity.runOnUiThread(new Runnable() { @Override public void run() { if (disabled) { activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } else { activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } } }); } } }