diff options
author | ianwen <ianwen@chromium.org> | 2015-08-14 11:21:44 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-14 18:22:13 +0000 |
commit | 402517c6677e81adf93d11462aeb1b86bfbf9f8a (patch) | |
tree | 80ba7246b4e048fcd593337372a46ea89886c0d3 | |
parent | 394ee8dda8ccd8d78d5bd2a17b5233d6fda710d8 (diff) | |
download | chromium_src-402517c6677e81adf93d11462aeb1b86bfbf9f8a.zip chromium_src-402517c6677e81adf93d11462aeb1b86bfbf9f8a.tar.gz chromium_src-402517c6677e81adf93d11462aeb1b86bfbf9f8a.tar.bz2 |
Fix Custom Action Bar for custom tabs on tablet
Custom tabs on tablet is special in that it does not have a tab strip.
Therefore ContextualMenuBar will calculate the wrong offset when
animating the bar.
BUG=510284
Review URL: https://codereview.chromium.org/1292693002
Cr-Commit-Position: refs/heads/master@{#343437}
4 files changed, 24 insertions, 3 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ContextualMenuBar.java b/chrome/android/java/src/org/chromium/chrome/browser/ContextualMenuBar.java index 9c877bd..eab406d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ContextualMenuBar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ContextualMenuBar.java @@ -87,6 +87,13 @@ public class ContextualMenuBar { } /** + * Overrides the preset height of the tab strip. + */ + public void setTabStripHeight(int tabStripHeight) { + mTabStripHeight = tabStripHeight; + } + + /** * @return The delegate handling action bar positioning for the contextual menu bar. */ public ActionBarDelegate getActionBarDelegate() { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java index d17381d..83b6525 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java @@ -164,6 +164,11 @@ public class CustomTabToolbar extends ToolbarLayout implements LocationBar, } @Override + public int getTabStripHeight() { + return 0; + } + + @Override public ChromeTab getCurrentTab() { return ChromeTab.fromTab(getToolbarDataProvider().getTab()); } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarLayout.java index 5b156f9..ee5b052 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarLayout.java @@ -392,6 +392,13 @@ abstract class ToolbarLayout extends FrameLayout implements Toolbar { OnClickListener listener) { } /** + * @return The height of the tab strip. Return 0 for toolbars that do not have a tabstrip. + */ + public int getTabStripHeight() { + return getResources().getDimensionPixelSize(R.dimen.tab_strip_height); + } + + /** * Triggered when the content view for the specified tab has changed. */ protected void onTabContentViewChanged() { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java index 80ce2c4..9ccb80f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java @@ -186,9 +186,6 @@ public class ToolbarManager implements ToolbarTabController, UrlFocusChangeListe // TODO(tedchoc): Add support for changing the color based on the brand color. } }; - mContextualMenuBar = new ContextualMenuBar(activity, mActionBarDelegate); - mContextualMenuBar.setCustomSelectionActionModeCallback( - new CustomSelectionActionModeCallback()); mToolbarModel = new ToolbarModelImpl(); mControlContainer = controlContainer; @@ -198,6 +195,11 @@ public class ToolbarManager implements ToolbarTabController, UrlFocusChangeListe mToolbar.setPaintInvalidator(invalidator); + mContextualMenuBar = new ContextualMenuBar(activity, mActionBarDelegate); + mContextualMenuBar.setCustomSelectionActionModeCallback( + new CustomSelectionActionModeCallback()); + mContextualMenuBar.setTabStripHeight(mToolbar.getTabStripHeight()); + MenuDelegatePhone menuDelegate = new MenuDelegatePhone() { @Override public void updateReloadButtonState(boolean isLoading) { |