| 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..34c19a4e3333c1bde8986e3053e44f4f32bc06e7 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,8 @@ 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.PulseDrawable;
|
| +import org.chromium.chrome.browser.appmenu.PulseDrawableFactory;
|
| import org.chromium.chrome.browser.compositor.Invalidator;
|
| import org.chromium.chrome.browser.compositor.layouts.LayoutUpdateHost;
|
| import org.chromium.chrome.browser.fullscreen.BrowserStateBrowserControlsVisibilityDelegate;
|
| @@ -77,6 +79,9 @@ public abstract class ToolbarLayout extends FrameLayout implements Toolbar {
|
|
|
| private boolean mFindInPageToolbarShowing;
|
|
|
| + protected boolean mHighlightingMenu;
|
| + private PulseDrawable mHighlightDrawable;
|
| +
|
| protected boolean mShowMenuBadge;
|
| private AnimatorSet mMenuBadgeAnimatorSet;
|
| private boolean mIsMenuBadgeAnimationRunning;
|
| @@ -653,6 +658,8 @@ public abstract class ToolbarLayout extends FrameLayout implements Toolbar {
|
| */
|
| public abstract LocationBar getLocationBar();
|
|
|
| + public abstract boolean useLightDrawables();
|
| +
|
| /**
|
| * Navigates the current Tab back.
|
| * @return Whether or not the current Tab did go back.
|
| @@ -691,6 +698,12 @@ public abstract class ToolbarLayout extends FrameLayout implements Toolbar {
|
| }
|
|
|
| @Override
|
| + public void setMenuButtonHighlight(boolean highlight) {
|
| + mHighlightingMenu = highlight;
|
| + setMenuButtonHighlightDrawable(mHighlightingMenu);
|
| + }
|
| +
|
| + @Override
|
| public void showAppMenuUpdateBadge() {
|
| mShowMenuBadge = true;
|
| }
|
| @@ -795,6 +808,29 @@ public abstract class ToolbarLayout extends FrameLayout implements Toolbar {
|
| }
|
|
|
| /**
|
| + * Sets the menu button's background depending on whether or not we are highlighting and whether
|
| + * or not we are using light or dark assets.
|
| + * @param highlighting Whether or not the menu button should be highlighted.
|
| + */
|
| + protected void setMenuButtonHighlightDrawable(boolean highlighting) {
|
| + if (highlighting) {
|
| + if (mHighlightDrawable == null) {
|
| + mHighlightDrawable = PulseDrawableFactory.createCircle();
|
| + mHighlightDrawable.setInset(ApiCompatibilityUtils.getPaddingStart(mMenuButton),
|
| + mMenuButton.getPaddingTop(),
|
| + ApiCompatibilityUtils.getPaddingEnd(mMenuButton),
|
| + mMenuButton.getPaddingBottom());
|
| + }
|
| + int colorRes = useLightDrawables() ? R.color.google_grey_100 : R.color.google_blue_500;
|
| + int color = ApiCompatibilityUtils.getColor(getResources(), colorRes);
|
| + mHighlightDrawable.setColor(color);
|
| + mMenuButtonWrapper.setBackground(mHighlightDrawable);
|
| + } else {
|
| + mMenuButtonWrapper.setBackground(null);
|
| + }
|
| + }
|
| +
|
| + /**
|
| * Sets the content description for the menu button.
|
| * @param isUpdateBadgeVisible Whether the update menu badge is visible.
|
| */
|
|
|