YAMR - Yet Another Menu Reorg
Bug: 5186166
Change-Id: Icd459c8f9cd557659a5402431a843a856fb1b134
diff --git a/res/menu/browser.xml b/res/menu/browser.xml
index d3dc7d0..7d288c1 100644
--- a/res/menu/browser.xml
+++ b/res/menu/browser.xml
@@ -56,10 +56,18 @@
android:icon="@drawable/ic_share_holo_dark"
android:alphabeticShortcut="s" />
<item
- android:id="@+id/view_downloads_menu_id"
- android:title="@string/menu_view_download"
- android:icon="@drawable/ic_downloads_holo_dark"
- android:alphabeticShortcut="j" />
+ android:id="@+id/find_menu_id"
+ android:title="@*android:string/find_on_page"/>
+ <item
+ android:id="@+id/ua_desktop_menu_id"
+ android:checkable="true"
+ android:title="@string/ua_switcher_desktop" />
+ <item
+ android:id="@+id/save_snapshot_menu_id"
+ android:title="@string/menu_save_snapshot" />
+ <item
+ android:id="@+id/page_info_menu_id"
+ android:title="@string/page_info" />
<item
android:id="@+id/preferences_menu_id"
android:title="@string/menu_preferences"
@@ -76,6 +84,8 @@
android:visible="false" />
</group>
<group android:id="@+id/MAIN_SHORTCUT_MENU" android:visible="false">
+ <item android:id="@+id/view_downloads_menu_id"
+ android:alphabeticShortcut="j" />
<item android:id="@+id/homepage_menu_id"
android:alphabeticShortcut=" " />
<item android:id="@+id/classic_history_menu_id"
diff --git a/res/menu/ua_switcher.xml b/res/menu/ua_switcher.xml
deleted file mode 100644
index 51236de..0000000
--- a/res/menu/ua_switcher.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:id="@+id/ua_mobile_menu_id"
- android:checkable="true"
- android:title="@string/ua_switcher_mobile" />
- <item
- android:id="@+id/ua_desktop_menu_id"
- android:checkable="true"
- android:title="@string/ua_switcher_desktop" />
- <item
- android:id="@+id/find_menu_id"
- android:title="@*android:string/find_on_page"/>
- <item
- android:id="@+id/save_snapshot_menu_id"
- android:title="@string/menu_save_snapshot" />
- <item
- android:id="@+id/page_info_menu_id"
- android:title="@string/page_info" />
-</menu>
-
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0751f10..d2e27fb 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1000,10 +1000,8 @@
<string name="preview">Preview</string>
<!-- Name for the user's unsynced, local bookmarks [CHAR LIMIT=50] -->
<string name="local_bookmarks">Local</string>
- <!-- Popup menu option that allows the user to select the mobile version of a webpage [CHAR LIMIT=50] -->
- <string name="ua_switcher_mobile">Mobile</string>
- <!-- Popup menu option that allows the user to select the desktop version of a webpage [CHAR LIMIT=50] -->
- <string name="ua_switcher_desktop">Desktop</string>
+ <!-- Popup menu checkbox that allows the user to request the desktop version of a webpage [CHAR LIMIT=50] -->
+ <string name="ua_switcher_desktop">Request desktop site</string>
<!-- Preload permission label [CHAR LIMIT=40] -->
<string name="permission_preload_label">Preload results</string>
<!-- Empty text for the "saved pages" tab that is shown when no saved pages exist. [CHAR LIMIT=None] -->
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 19ad9a9..84d7e36 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -1466,10 +1466,12 @@
boolean canGoBack = false;
boolean canGoForward = false;
boolean isHome = false;
+ boolean isDesktopUa = false;
if (tab != null) {
canGoBack = tab.canGoBack();
canGoForward = tab.canGoForward();
isHome = mSettings.getHomePage().equals(tab.getUrl());
+ isDesktopUa = mSettings.hasDesktopUseragent(tab.getWebView());
}
final MenuItem back = menu.findItem(R.id.back_menu_id);
back.setEnabled(canGoBack);
@@ -1504,6 +1506,8 @@
final MenuItem counter = menu.findItem(R.id.dump_counters_menu_id);
counter.setVisible(showDebugSettings);
counter.setEnabled(showDebugSettings);
+ final MenuItem uaSwitcher = menu.findItem(R.id.ua_desktop_menu_id);
+ uaSwitcher.setChecked(isDesktopUa);
mUi.updateMenuState(tab, menu);
}
@@ -1650,6 +1654,12 @@
viewDownloads();
break;
+ case R.id.ua_desktop_menu_id:
+ WebView web = getCurrentWebView();
+ mSettings.toggleDesktopUseragent(web);
+ web.loadUrl(web.getOriginalUrl());
+ break;
+
case R.id.window_one_menu_id:
case R.id.window_two_menu_id:
case R.id.window_three_menu_id:
diff --git a/src/com/android/browser/NavigationBarBase.java b/src/com/android/browser/NavigationBarBase.java
index ab79b37..bfdd9a0 100644
--- a/src/com/android/browser/NavigationBarBase.java
+++ b/src/com/android/browser/NavigationBarBase.java
@@ -24,17 +24,11 @@
import android.speech.RecognizerResultsIntent;
import android.util.AttributeSet;
import android.view.KeyEvent;
-import android.view.Menu;
-import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
-import android.webkit.WebView;
import android.widget.ImageView;
import android.widget.LinearLayout;
-import android.widget.PopupMenu;
-import android.widget.PopupMenu.OnDismissListener;
-import android.widget.PopupMenu.OnMenuItemClickListener;
import com.android.browser.UI.DropdownChangeListener;
import com.android.browser.UrlInputView.UrlInputListener;
@@ -42,9 +36,9 @@
import java.util.List;
-public class NavigationBarBase extends LinearLayout implements OnClickListener,
- OnMenuItemClickListener, UrlInputListener, OnFocusChangeListener,
- TextChangeWatcher, OnDismissListener {
+public class NavigationBarBase extends LinearLayout implements
+ OnClickListener, UrlInputListener, OnFocusChangeListener,
+ TextChangeWatcher {
protected BaseUi mBaseUi;
protected TitleBar mTitleBar;
@@ -54,9 +48,6 @@
private ImageView mFavicon;
private ImageView mLockIcon;
- private View mUaSwitcher;
- private boolean mUaSwitcherShowing;
- private PopupMenu mUaSwitcherMenu;
public NavigationBarBase(Context context) {
super(context);
@@ -104,59 +95,8 @@
mFavicon.setImageDrawable(mBaseUi.getFaviconDrawable(icon));
}
- public void setUaSwitcher(View v) {
- if (mUaSwitcher != null) {
- mUaSwitcher.setOnClickListener(null);
- }
- mUaSwitcher = v;
- mUaSwitcher.setOnClickListener(this);
- }
-
@Override
public void onClick(View v) {
- if (mUaSwitcher == v) {
- BrowserSettings settings = BrowserSettings.getInstance();
- WebView web = mTitleBar.getCurrentWebView();
- if (web == null) return;
- boolean desktop = settings.hasDesktopUseragent(web);
- mUaSwitcherMenu = new PopupMenu(mContext, mUaSwitcher);
- Menu menu = mUaSwitcherMenu.getMenu();
- mUaSwitcherMenu.getMenuInflater().inflate(R.menu.ua_switcher, menu);
- menu.findItem(R.id.ua_mobile_menu_id).setChecked(!desktop);
- menu.findItem(R.id.ua_desktop_menu_id).setChecked(desktop);
- Tab tab = mUiController.getCurrentTab();
- MenuItem saveSnapshot = menu.findItem(R.id.save_snapshot_menu_id);
- saveSnapshot.setVisible(tab != null && !tab.isSnapshot());
- MenuItem find = menu.findItem(R.id.find_menu_id);
- find.setVisible(tab != null && !tab.isSnapshot());
- mUaSwitcherMenu.setOnMenuItemClickListener(this);
- mUaSwitcherMenu.setOnDismissListener(this);
- mUaSwitcherShowing = true;
- mUaSwitcherMenu.show();
- }
- }
-
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- BrowserSettings settings = BrowserSettings.getInstance();
- WebView web = mTitleBar.getCurrentWebView();
- if (web == null) return false;
- boolean desktop = settings.hasDesktopUseragent(web);
- switch (item.getItemId()) {
- case R.id.ua_mobile_menu_id:
- if (desktop) {
- settings.toggleDesktopUseragent(web);
- web.loadUrl(web.getOriginalUrl());
- }
- return true;
- case R.id.ua_desktop_menu_id:
- if (!desktop) {
- settings.toggleDesktopUseragent(web);
- web.loadUrl(web.getOriginalUrl());
- }
- return true;
- }
- return mUiController.onOptionsItemSelected(item);
}
@Override
@@ -340,17 +280,8 @@
public void onProgressStopped() {
}
- @Override
- public void onDismiss(PopupMenu menu) {
- if (mUaSwitcherMenu == menu) {
- mUaSwitcherShowing = false;
- mUaSwitcherMenu = null;
- mBaseUi.showTitleBarForDuration();
- }
- }
-
public boolean isMenuShowing() {
- return mUaSwitcherShowing;
+ return false;
}
public void onTabDataChanged(Tab tab) {
diff --git a/src/com/android/browser/NavigationBarPhone.java b/src/com/android/browser/NavigationBarPhone.java
index d2d3797..5cabe31 100644
--- a/src/com/android/browser/NavigationBarPhone.java
+++ b/src/com/android/browser/NavigationBarPhone.java
@@ -27,11 +27,12 @@
import android.widget.ImageView;
import android.widget.PopupMenu;
import android.widget.PopupMenu.OnDismissListener;
+import android.widget.PopupMenu.OnMenuItemClickListener;
import com.android.browser.UrlInputView.StateListener;
public class NavigationBarPhone extends NavigationBarBase implements
- StateListener {
+ StateListener, OnMenuItemClickListener, OnDismissListener {
private ImageView mStopButton;
private ImageView mVoiceButton;
@@ -81,7 +82,6 @@
mStopDescription = res.getString(R.string.accessibility_button_stop);
mRefreshDescription = res.getString(R.string.accessibility_button_refresh);
mTextfieldBgDrawable = res.getDrawable(R.drawable.textfield_active_holo_dark);
- setUaSwitcher(mComboIcon);
mUrlInput.setContainer(this);
mUrlInput.setStateListener(this);
mNeedsMenu = !ViewConfiguration.get(getContext()).hasPermanentMenuKey();
@@ -182,7 +182,6 @@
if (menu == mPopupMenu) {
onMenuHidden();
}
- super.onDismiss(menu);
}
private void onMenuHidden() {
@@ -240,4 +239,9 @@
? View.VISIBLE : View.GONE);
}
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ return mUiController.onOptionsItemSelected(item);
+ }
+
}
diff --git a/src/com/android/browser/NavigationBarTablet.java b/src/com/android/browser/NavigationBarTablet.java
index 7f6992a..8c08dcf 100644
--- a/src/com/android/browser/NavigationBarTablet.java
+++ b/src/com/android/browser/NavigationBarTablet.java
@@ -110,7 +110,6 @@
mGoButton.setOnClickListener(this);
mClearButton.setOnClickListener(this);
mVoiceSearch.setOnClickListener(this);
- setUaSwitcher(mUrlIcon);
mUrlInput.setContainer(mUrlContainer);
}