Add Java module to keep the screen awake when needed.

This commit is contained in:
Daniel Dominguez 2018-06-20 17:39:29 -03:00
parent afaa00d635
commit 4e763be6ec
3 changed files with 60 additions and 1 deletions

View file

@ -56,6 +56,9 @@ class FilePage extends React.PureComponent {
if (NativeModules.Mixpanel) { if (NativeModules.Mixpanel) {
NativeModules.Mixpanel.track('Open File Page', { Uri: uri }); NativeModules.Mixpanel.track('Open File Page', { Uri: uri });
} }
if (NativeModules.UtilityModule) {
NativeModules.UtilityModule.keepAwakeOn();
}
} }
componentDidUpdate() { componentDidUpdate() {
@ -125,6 +128,9 @@ class FilePage extends React.PureComponent {
StatusBar.setHidden(false); StatusBar.setHidden(false);
if (NativeModules.ScreenOrientation) { if (NativeModules.ScreenOrientation) {
NativeModules.ScreenOrientation.unlockOrientation(); NativeModules.ScreenOrientation.unlockOrientation();
}
if (NativeModules.UtilityModule) {
NativeModules.UtilityModule.keepAwakeOff();
} }
} }

View file

@ -0,0 +1,51 @@
package io.lbry.browser.reactmodules;
import android.app.Activity;
import android.content.Context;
import android.view.WindowManager;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
public class UtilityModule extends ReactContextBaseJavaModule {
private Context context;
public UtilityModule(ReactApplicationContext reactContext) {
super(reactContext);
this.context = reactContext;
}
@Override
public String getName() {
return "UtilityModule";
}
@ReactMethod
public void keepAwakeOn() {
final Activity activity = getCurrentActivity();
if (activity != null) {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
});
}
}
@ReactMethod
public void keepAwakeOff() {
final Activity activity = getCurrentActivity();
if (activity != null) {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
});
}
}
}

View file

@ -11,6 +11,7 @@ import io.lbry.browser.reactmodules.FirstRunModule;
import io.lbry.browser.reactmodules.MixpanelModule; import io.lbry.browser.reactmodules.MixpanelModule;
import io.lbry.browser.reactmodules.ScreenOrientationModule; import io.lbry.browser.reactmodules.ScreenOrientationModule;
import io.lbry.browser.reactmodules.VersionInfoModule; import io.lbry.browser.reactmodules.VersionInfoModule;
import io.lbry.browser.reactmodules.UtilityModule;;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -31,8 +32,9 @@ public class LbryReactPackage implements ReactPackage {
modules.add(new FirstRunModule(reactContext)); modules.add(new FirstRunModule(reactContext));
modules.add(new MixpanelModule(reactContext)); modules.add(new MixpanelModule(reactContext));
modules.add(new ScreenOrientationModule(reactContext)); modules.add(new ScreenOrientationModule(reactContext));
modules.add(new UtilityModule(reactContext));
modules.add(new VersionInfoModule(reactContext)); modules.add(new VersionInfoModule(reactContext));
return modules; return modules;
} }
} }