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