diff --git a/src/main/java/io/lbry/browser/MainActivity.java b/src/main/java/io/lbry/browser/MainActivity.java index f27a8d8b..68249a29 100644 --- a/src/main/java/io/lbry/browser/MainActivity.java +++ b/src/main/java/io/lbry/browser/MainActivity.java @@ -36,6 +36,8 @@ import java.util.Random; public class MainActivity extends Activity implements DefaultHardwareBackBtnHandler { + private static Activity currentActivity = null; + private static final int OVERLAY_PERMISSION_REQ_CODE = 101; private static final int STORAGE_PERMISSION_REQ_CODE = 201; @@ -75,6 +77,7 @@ public class MainActivity extends Activity implements DefaultHardwareBackBtnHand } super.onCreate(savedInstanceState); + currentActivity = this; // Start the daemon service if it is not started serviceRunning = isServiceRunning(LbrynetService.class); @@ -110,6 +113,12 @@ public class MainActivity extends Activity implements DefaultHardwareBackBtnHand } } + public static Activity getActivity() { + Activity activity = new Activity(); + activity = currentActivity; + return activity; + } + @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { diff --git a/src/main/java/io/lbry/browser/reactmodules/UtilityModule.java b/src/main/java/io/lbry/browser/reactmodules/UtilityModule.java index 7cc6595c..574ef869 100644 --- a/src/main/java/io/lbry/browser/reactmodules/UtilityModule.java +++ b/src/main/java/io/lbry/browser/reactmodules/UtilityModule.java @@ -56,23 +56,33 @@ public class UtilityModule extends ReactContextBaseJavaModule { @ReactMethod public void hideNavigationBar() { - if (context != null && context instanceof Activity) { - Activity activity = (Activity) context; - View decorView = activity.getWindow().getDecorView(); - decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | - View.SYSTEM_UI_FLAG_IMMERSIVE | - View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | - View.SYSTEM_UI_FLAG_LAYOUT_STABLE); + final Activity activity = MainActivity.getActivity(); + if (activity != null) { + activity.runOnUiThread(new Runnable() { + public void run() { + View decorView = activity.getWindow().getDecorView(); + decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | + View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | + View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | + View.SYSTEM_UI_FLAG_LAYOUT_STABLE); + } + }); + } } @ReactMethod public void showNavigationBar() { - if (context != null && context instanceof Activity) { - Activity activity = (Activity) context; - View decorView = activity.getWindow().getDecorView(); - decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | - View.SYSTEM_UI_FLAG_VISIBLE); + final Activity activity = MainActivity.getActivity(); + if (activity != null) { + activity.runOnUiThread(new Runnable() { + public void run() { + View decorView = activity.getWindow().getDecorView(); + decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | + View.SYSTEM_UI_FLAG_VISIBLE); + } + }); } }