1 // Copyright 2015-present 650 Industries. All rights reserved. 2 3 package versioned.host.exp.exponent.modules.api; 4 5 import android.app.Activity; 6 import android.view.WindowManager; 7 8 import com.facebook.react.bridge.ReactApplicationContext; 9 import com.facebook.react.bridge.ReactContextBaseJavaModule; 10 import com.facebook.react.bridge.ReactMethod; 11 12 public class KeepAwakeModule extends ReactContextBaseJavaModule { 13 private boolean mIsActivated = false; 14 KeepAwakeModule(ReactApplicationContext reactContext)15 public KeepAwakeModule(ReactApplicationContext reactContext) { 16 super(reactContext); 17 } 18 19 @Override getName()20 public String getName() { 21 return "ExponentKeepAwake"; 22 } 23 24 @ReactMethod activate()25 public void activate() { 26 final Activity activity = getCurrentActivity(); 27 28 if (activity != null) { 29 activity.runOnUiThread(new Runnable() { 30 @Override 31 public void run() { 32 activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 33 mIsActivated = true; 34 } 35 }); 36 } 37 } 38 39 @ReactMethod deactivate()40 public void deactivate() { 41 final Activity activity = getCurrentActivity(); 42 43 if (activity != null) { 44 activity.runOnUiThread(new Runnable() { 45 @Override 46 public void run() { 47 mIsActivated = false; 48 activity.getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 49 } 50 }); 51 } 52 } 53 isActivated()54 public boolean isActivated() { 55 return mIsActivated; 56 } 57 }