From a9199661a456f6421c3c8b2603f3c965311233bd Mon Sep 17 00:00:00 2001 From: Akinwale Ariwodola Date: Thu, 16 Aug 2018 18:42:07 +0100 Subject: [PATCH] obtain the proper activity reference in the utility module --- .../java/io/lbry/browser/MainActivity.java | 9 +++++ .../browser/reactmodules/UtilityModule.java | 34 ++++++++++++------- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/src/main/java/io/lbry/browser/MainActivity.java b/src/main/java/io/lbry/browser/MainActivity.java index f27a8d8..68249a2 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 7cc6595..574ef86 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); + } + }); } }