Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarLayout.java |
| 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 4d9c22fd61696cbff715443d437381ea9c6aa390..3d2a42065d8a85160de8a1e36735e2783f1e7c78 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 |
| @@ -26,6 +26,7 @@ import org.chromium.base.ApiCompatibilityUtils; |
| import org.chromium.base.VisibleForTesting; |
| import org.chromium.chrome.R; |
| import org.chromium.chrome.browser.appmenu.AppMenuButtonHelper; |
| +import org.chromium.chrome.browser.appmenu.IconHighlightDrawable; |
| import org.chromium.chrome.browser.compositor.Invalidator; |
| import org.chromium.chrome.browser.compositor.layouts.LayoutUpdateHost; |
| import org.chromium.chrome.browser.fullscreen.BrowserStateBrowserControlsVisibilityDelegate; |
| @@ -77,6 +78,7 @@ public abstract class ToolbarLayout extends FrameLayout implements Toolbar { |
| private boolean mFindInPageToolbarShowing; |
| + protected boolean mHighlightingMenu; |
| protected boolean mShowMenuBadge; |
| private AnimatorSet mMenuBadgeAnimatorSet; |
| private boolean mIsMenuBadgeAnimationRunning; |
| @@ -691,6 +693,12 @@ public abstract class ToolbarLayout extends FrameLayout implements Toolbar { |
| } |
| @Override |
| + public void setMenuButtonHighlight(boolean highlight) { |
| + mHighlightingMenu = highlight; |
| + setAppMenuButtonHighlight(highlight, true /* useLightDrawable*/); |
|
Ted C
2017/03/31 19:01:47
should we expose uselightdrawable (mUseLightColorA
|
| + } |
| + |
| + @Override |
| public void showAppMenuUpdateBadge() { |
| mShowMenuBadge = true; |
| } |
| @@ -795,6 +803,27 @@ public abstract class ToolbarLayout extends FrameLayout implements Toolbar { |
| } |
| /** |
| + * Sets whether or not the menu button should be highlighted (and whether or not to use the |
| + * light or dark resources. |
| + * @param highlighting Whether or not the menu button should be highlighted. |
| + * @param useLightDrawable Whether or not the light colors should be used. |
| + */ |
| + protected void setAppMenuButtonHighlight(boolean highlighting, boolean useLightDrawable) { |
| + IconHighlightDrawable drawable = null; |
| + if (highlighting) { |
| + int colorRes = useLightDrawable ? R.color.google_grey_100 : R.color.google_blue_500; |
| + int color = ApiCompatibilityUtils.getColor(getContext().getResources(), colorRes); |
| + |
| + drawable = new IconHighlightDrawable(color); |
| + |
| + drawable.setMargin(ApiCompatibilityUtils.getPaddingStart(mMenuButton), |
| + mMenuButton.getPaddingTop(), ApiCompatibilityUtils.getPaddingEnd(mMenuButton), |
| + mMenuButton.getPaddingBottom()); |
| + } |
| + mMenuButtonWrapper.setBackground(drawable); |
| + } |
| + |
| + /** |
| * Sets the content description for the menu button. |
| * @param isUpdateBadgeVisible Whether the update menu badge is visible. |
| */ |