Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1277)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarLayout.java

Issue 2779543005: Add support for highlighting menu items (Closed)
Patch Set: Cleaned up some comments and code Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.
*/

Powered by Google App Engine
This is Rietveld 408576698