Bug 1031519 - Use immersive fullscreen when available. r?mcomella draft
authorTom Klein <twointofive@gmail.com>
Mon, 18 Jul 2016 18:50:47 -0500
changeset 389484 44dc6f8676a7c27a97208e6e7a9288bb9347c82b
parent 388620 4c05938a64a7fde3ac2d7f4493aee1c5f2ad8a0a
child 525778 0abe46327ce26003d3b3017f8085f1a0877b3bca
push id23433
push userbmo:twointofive@gmail.com
push dateTue, 19 Jul 2016 13:43:41 +0000
reviewersmcomella
bugs1031519
milestone50.0a1
Bug 1031519 - Use immersive fullscreen when available. r?mcomella This is Deepthi Venkitaramanan's patch with feedback comments addressed. MozReview-Commit-ID: 7vs0ZgefOVy
mobile/android/base/java/org/mozilla/gecko/util/ActivityUtils.java
--- a/mobile/android/base/java/org/mozilla/gecko/util/ActivityUtils.java
+++ b/mobile/android/base/java/org/mozilla/gecko/util/ActivityUtils.java
@@ -16,20 +16,28 @@ public class ActivityUtils {
     private ActivityUtils() {
     }
 
     public static void setFullScreen(Activity activity, boolean fullscreen) {
         // Hide/show the system notification bar
         Window window = activity.getWindow();
 
         if (Versions.feature16Plus) {
-            final int newVis;
+            int newVis;
             if (fullscreen) {
-                newVis = View.SYSTEM_UI_FLAG_FULLSCREEN |
-                         View.SYSTEM_UI_FLAG_LOW_PROFILE;
+                newVis = View.SYSTEM_UI_FLAG_FULLSCREEN;
+                if (Versions.feature19Plus) {
+                    newVis |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
+                            View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
+                            View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
+                            View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
+                            View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
+                } else {
+                    newVis |= View.SYSTEM_UI_FLAG_LOW_PROFILE;
+                }
             } else {
                 newVis = View.SYSTEM_UI_FLAG_VISIBLE;
             }
 
             window.getDecorView().setSystemUiVisibility(newVis);
         } else {
             window.setFlags(fullscreen ?
                             WindowManager.LayoutParams.FLAG_FULLSCREEN : 0,