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 }