summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorianwen <ianwen@chromium.org>2015-08-14 11:21:44 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-14 18:22:13 +0000
commit402517c6677e81adf93d11462aeb1b86bfbf9f8a (patch)
tree80ba7246b4e048fcd593337372a46ea89886c0d3
parent394ee8dda8ccd8d78d5bd2a17b5233d6fda710d8 (diff)
downloadchromium_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}
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/ContextualMenuBar.java7
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java5
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarLayout.java7
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java8
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) {