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. |
*/ |