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);
}