Support immersive fullscreen video mode

Configure system UI settings for immersive mode when showing fullscreen
video. Set to low profile mode when showing fullscreen element.

Issues-fixed: SWE-2931

Change-Id: I03ffa4c856fbc69225626667f5b4706da7d75fd5
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index 6056cf5..8eab5b1 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -793,16 +793,25 @@
         Window win = mActivity.getWindow();
         WindowManager.LayoutParams winParams = win.getAttributes();
         final int bits = WindowManager.LayoutParams.FLAG_FULLSCREEN;
-        if (enabled) {
-            winParams.flags |=  bits;
+        final int fullscreenImmersiveSetting =
+                        View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
+                        View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
+                        View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
+                        View.SYSTEM_UI_FLAG_FULLSCREEN |
+                        View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
+
+        if (mCustomView != null) {
+            mCustomView.setSystemUiVisibility(enabled ?
+                    fullscreenImmersiveSetting : View.SYSTEM_UI_FLAG_VISIBLE);
         } else {
-            winParams.flags &= ~bits;
-            if (mCustomView != null) {
-                mCustomView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
-            } else {
-                mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
-            }
+            mContentView.setSystemUiVisibility(enabled ?
+                    View.SYSTEM_UI_FLAG_LOW_PROFILE : View.SYSTEM_UI_FLAG_VISIBLE);
         }
+        if (enabled)
+            winParams.flags |=  bits;
+        else
+            winParams.flags &= ~bits;
+
         win.setAttributes(winParams);
     }