Enable fullscreen support
Always allow the tab to go fullscreen. Explicit call to
exit fullscreen is added. Fullscreen layout logic moved
to base ui class.
Change-Id: I4474d90f99bf4753dedbe453b21f126668c40f64
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index 1ea1460..0508e67 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -209,8 +209,7 @@
mUiController.hideCustomView();
return true;
} else if ((mTabControl.getCurrentTab() != null) &&
- (mTabControl.getCurrentTab().isTabFullScreen())) {
- mTabControl.getCurrentTab().setTabFullscreen(false);
+ (mTabControl.getCurrentTab().exitFullscreen())) {
return true;
}
return false;
@@ -811,6 +810,29 @@
win.setAttributes(winParams);
}
+ //make full screen bu showing/hiding topbar and system status bar
+ public void showFullscreen(boolean fullScreen) {
+ //Hide/show system ui bar as needed
+ if (!BrowserSettings.getInstance().useFullscreen())
+ setFullscreen(fullScreen);
+
+ //Hide/show topbar as needed
+ if (getWebView() != null) {
+ if (fullScreen) {
+ //hide topbar
+ getWebView().updateTopControls(true, false, false);
+ } else {
+ //show the topbar
+ getWebView().updateTopControls(false, true, true);
+ //enable for auto-hide
+ if (!mTitleBar.isFixed())
+ getWebView().updateTopControls(true, true, false);
+ }
+ }
+ }
+
+
+
public void translateTitleBar(float topControlsOffsetYPix) {
if (mTitleBar != null && !mInActionMode) {
mTitleBar.bringToFront();
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index e8ecd93..2a3a171 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -374,6 +374,7 @@
// origin policy for file access
settings.setAllowUniversalAccessFromFileURLs(false);
settings.setAllowFileAccessFromFileURLs(false);
+ settings.setFullscreenSupported(true);
//if (!(settings instanceof WebSettingsClassic)) return;
/*
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index ab59853..f948203 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -61,7 +61,6 @@
import android.widget.FrameLayout;
import android.widget.Button;
-import com.android.browser.R;
import com.android.browser.TabControl.OnThumbnailUpdatedListener;
import com.android.browser.homepages.HomeProvider;
import com.android.browser.mynavigation.MyNavigationUtil;
@@ -732,20 +731,25 @@
protected void setTabFullscreen(boolean fullScreen) {
Controller controller = (Controller)mWebViewController;
-
- if (!mSettings.useFullscreen())
- controller.getUi().setFullscreen(fullScreen);
-
- if (getWebView() != null) {
- if (fullScreen)
- getWebView().updateTopControls(true, false, true);
- else
- getWebView().updateTopControls(true, true, true);
- }
-
+ controller.getUi().showFullscreen(fullScreen);
mFullScreen = fullScreen;
}
+ public boolean exitFullscreen() {
+ if (mFullScreen) {
+ Controller controller = (Controller)mWebViewController;
+ controller.getUi().showFullscreen(false);
+ if (getWebView() != null)
+ getWebView().exitFullscreen();
+ mFullScreen = false;
+ return true;
+ }
+ return false;
+ }
+
+
+
+
// -------------------------------------------------------------------------
// WebChromeClient implementation for the main WebView
// -------------------------------------------------------------------------
diff --git a/src/com/android/browser/UI.java b/src/com/android/browser/UI.java
index a374203..5aefd0b 100644
--- a/src/com/android/browser/UI.java
+++ b/src/com/android/browser/UI.java
@@ -137,6 +137,7 @@
boolean dispatchKey(int code, KeyEvent event);
void setFullscreen(boolean enabled);
+ void showFullscreen(boolean show);
void translateTitleBar(float topControlsOffsetYPix);