From 3638ddea7cd37b71d0026e0c1ee204a5b51b6876 Mon Sep 17 00:00:00 2001 From: Nebojsa Cvetkovic Date: Wed, 12 Sep 2012 22:24:22 +0200 Subject: Add fullscreen toggle to menu Change-Id: I7acecfc32dde250685f96354b45a91b93667114e --- res/menu/browser.xml | 4 ++++ res/xml/lab_preferences.xml | 5 ----- src/com/android/browser/BaseUi.java | 9 ++++++++- src/com/android/browser/BrowserSettings.java | 8 -------- src/com/android/browser/Controller.java | 12 ++++++++++++ src/com/android/browser/PhoneUi.java | 4 ++++ src/com/android/browser/UI.java | 2 ++ src/com/android/browser/UiController.java | 2 ++ 8 files changed, 32 insertions(+), 14 deletions(-) diff --git a/res/menu/browser.xml b/res/menu/browser.xml index 13880c960..73f988c4c 100644 --- a/res/menu/browser.xml +++ b/res/menu/browser.xml @@ -45,6 +45,10 @@ android:icon="@drawable/ic_bookmark_on_dark" android:alphabeticShortcut="d" android:visible="@bool/menu_show_bookmarks" /> + - diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java index b9f61e300..1b71e4c17 100644 --- a/src/com/android/browser/BaseUi.java +++ b/src/com/android/browser/BaseUi.java @@ -138,7 +138,7 @@ public abstract class BaseUi implements UI { R.id.fullscreen_custom_content); mErrorConsoleContainer = (LinearLayout) frameLayout .findViewById(R.id.error_console); - setFullscreen(BrowserSettings.getInstance().useFullscreen()); + setFullscreen(false); mGenericFavicon = res.getDrawable( R.drawable.app_web_browser_sm); mTitleBar = new TitleBar(mActivity, mUiController, this, @@ -790,6 +790,13 @@ public abstract class BaseUi implements UI { win.setAttributes(winParams); } + public boolean isFullscreen() { + Window win = mActivity.getWindow(); + WindowManager.LayoutParams winParams = win.getAttributes(); + final int bits = WindowManager.LayoutParams.FLAG_FULLSCREEN; + return (winParams.flags & bits) == bits; + } + public Drawable getFaviconDrawable(Bitmap icon) { Drawable[] array = new Drawable[3]; array[0] = new PaintDrawable(Color.BLACK); diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java index 8138bc2ca..370f76472 100644 --- a/src/com/android/browser/BrowserSettings.java +++ b/src/com/android/browser/BrowserSettings.java @@ -340,10 +340,6 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener, syncManagedSettings(); if (PREF_SEARCH_ENGINE.equals(key)) { updateSearchEngine(false); - } else if (PREF_FULLSCREEN.equals(key)) { - if (mController != null && mController.getUi() != null) { - mController.getUi().setFullscreen(useFullscreen()); - } } else if (PREF_ENABLE_QUICK_CONTROLS.equals(key)) { if (mController != null && mController.getUi() != null) { mController.getUi().setUseQuickControls(sharedPreferences.getBoolean(key, false)); @@ -777,10 +773,6 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener, return HomeProvider.MOST_VISITED.equals(getHomePage()); } - public boolean useFullscreen() { - return mPrefs.getBoolean(PREF_FULLSCREEN, false); - } - public boolean useInvertedRendering() { return mPrefs.getBoolean(PREF_INVERTED, false); } diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java index ebc2c9020..8c772709c 100644 --- a/src/com/android/browser/Controller.java +++ b/src/com/android/browser/Controller.java @@ -1585,6 +1585,10 @@ public class Controller boolean showDebugSettings = mSettings.isDebugEnabled(); final MenuItem uaSwitcher = menu.findItem(R.id.ua_desktop_menu_id); uaSwitcher.setChecked(isDesktopUa); + + final MenuItem fullscreen = menu.findItem(R.id.fullscreen_menu_id); + fullscreen.setChecked(mUi.isFullscreen()); + menu.setGroupVisible(R.id.LIVE_MENU, isLive); menu.setGroupVisible(R.id.SNAPSHOT_MENU, !isLive); menu.setGroupVisible(R.id.COMBO_MENU, false); @@ -1712,6 +1716,9 @@ public class Controller toggleUserAgent(); break; + case R.id.fullscreen_menu_id: + toggleFullscreen(); + case R.id.window_one_menu_id: case R.id.window_two_menu_id: case R.id.window_three_menu_id: @@ -1748,6 +1755,11 @@ public class Controller web.loadUrl(web.getOriginalUrl()); } + @Override + public void toggleFullscreen() { + mUi.setFullscreen(!mUi.isFullscreen()); + } + @Override public void findOnPage() { getCurrentTopWebView().showFindDialog(null, true); diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java index 7b6da0795..32bbc6b09 100644 --- a/src/com/android/browser/PhoneUi.java +++ b/src/com/android/browser/PhoneUi.java @@ -196,6 +196,10 @@ public class PhoneUi extends BaseUi { } closeOthers.setEnabled(!isLastTab); } + MenuItem fullscreen = menu.findItem(R.id.fullscreen_menu_id); + if (fullscreen != null) { + fullscreen.setVisible(!showingNavScreen()); + } if (showingNavScreen()) { menu.setGroupVisible(R.id.LIVE_MENU, false); menu.setGroupVisible(R.id.SNAPSHOT_MENU, false); diff --git a/src/com/android/browser/UI.java b/src/com/android/browser/UI.java index 677c3d3b9..d9bb3bc0d 100644 --- a/src/com/android/browser/UI.java +++ b/src/com/android/browser/UI.java @@ -142,6 +142,8 @@ public interface UI { void setFullscreen(boolean enabled); + boolean isFullscreen(); + void setUseQuickControls(boolean enabled); public boolean shouldCaptureThumbnails(); diff --git a/src/com/android/browser/UiController.java b/src/com/android/browser/UiController.java index f00f1a236..643fb40f0 100644 --- a/src/com/android/browser/UiController.java +++ b/src/com/android/browser/UiController.java @@ -105,6 +105,8 @@ public interface UiController { void toggleUserAgent(); + void toggleFullscreen(); + BrowserSettings getSettings(); boolean supportsVoice(); -- cgit v1.2.3