diff options
author | Michael Kolb <kolby@google.com> | 2011-07-18 16:38:02 -0700 |
---|---|---|
committer | Michael Kolb <kolby@google.com> | 2011-07-18 16:38:02 -0700 |
commit | 20be26d3aaa0ba44a0258e6eb490303330109587 (patch) | |
tree | f3bc2ccf5188a4428bb936b1cde6231c0847b6d8 /src/com/android | |
parent | 8441d4bdc99f8e4a84d8292c7c2a6cdf4e562fff (diff) | |
download | packages_apps_browser-20be26d3aaa0ba44a0258e6eb490303330109587.zip packages_apps_browser-20be26d3aaa0ba44a0258e6eb490303330109587.tar.gz packages_apps_browser-20be26d3aaa0ba44a0258e6eb490303330109587.tar.bz2 |
fix tab switcher and menu
Change-Id: Ibcda8fc9fa73f11dba7d8f2f8061740910cedc55
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/browser/NavigationBarPhone.java | 29 | ||||
-rw-r--r-- | src/com/android/browser/PhoneUi.java | 8 |
2 files changed, 34 insertions, 3 deletions
diff --git a/src/com/android/browser/NavigationBarPhone.java b/src/com/android/browser/NavigationBarPhone.java index 2da0424..7e367a4 100644 --- a/src/com/android/browser/NavigationBarPhone.java +++ b/src/com/android/browser/NavigationBarPhone.java @@ -46,6 +46,7 @@ public class NavigationBarPhone extends NavigationBarBase implements private View mMore; private Drawable mTextfieldBgDrawable; private PopupMenu mPopupMenu; + private boolean mMenuShowing; private boolean mNeedsMenu; public NavigationBarPhone(Context context) { @@ -154,7 +155,7 @@ public class NavigationBarPhone extends NavigationBarBase implements } else if (v == mVoiceButton) { mUiController.startVoiceSearch(); } else if (v == mTabSwitcher) { - mBaseUi.onMenuKey(); + ((PhoneUi) mBaseUi).toggleNavScreen(); } else if (mMore == v) { showMenu(mMore); } else { @@ -163,15 +164,35 @@ public class NavigationBarPhone extends NavigationBarBase implements } public boolean isMenuShowing() { - return (mPopupMenu != null); + return mMenuShowing; } void showMenu() { // called from menu key, use tab switcher as anchor - showMenu(mTabSwitcher); + mMenuShowing = true; + if (isEditingUrl()) { + stopEditingUrl(); + post(new Runnable() { + @Override + public void run() { + showMenu(); + } + }); + } else { + mBaseUi.getTitleBar().setSkipTitleBarAnimations(true); + mBaseUi.showTitleBar(); + mBaseUi.getTitleBar().setSkipTitleBarAnimations(false); + post(new Runnable() { + @Override + public void run() { + showMenu(mTabSwitcher); + } + }); + } } void showMenu(View anchor) { + mMenuShowing = true; mPopupMenu = new PopupMenu(mContext, anchor); Menu menu = mPopupMenu.getMenu(); mPopupMenu.getMenuInflater().inflate(R.menu.browser, menu); @@ -184,6 +205,7 @@ public class NavigationBarPhone extends NavigationBarBase implements void dismissMenu() { if (mPopupMenu != null) { mPopupMenu.dismiss(); + mBaseUi.suggestHideTitleBar(); } } @@ -203,6 +225,7 @@ public class NavigationBarPhone extends NavigationBarBase implements } private void onMenuHidden() { + mMenuShowing = false; mPopupMenu = null; mBaseUi.showTitleBarForDuration(); } diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java index 99320b7..9e3310b 100644 --- a/src/com/android/browser/PhoneUi.java +++ b/src/com/android/browser/PhoneUi.java @@ -263,4 +263,12 @@ public class PhoneUi extends BaseUi { return false; } + public void toggleNavScreen() { + if (mNavScreen == null) { + showNavScreen(); + } else { + hideNavScreen(false); + } + } + } |