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

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

Issue 1505913003: Add update menu item and app menu icon badge (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rearrange field_trial.. again to facilitate command line testing Created 5 years 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 295e06d5f2644e40e3d79e83bb7b1257fb728f34..d2906ecd1ace36d055817076555fd67c9f6dad7a 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
@@ -17,6 +17,7 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
+import android.widget.ImageView;
import android.widget.ProgressBar;
import org.chromium.base.ApiCompatibilityUtils;
@@ -24,6 +25,7 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.appmenu.AppMenuButtonHelper;
import org.chromium.chrome.browser.compositor.Invalidator;
import org.chromium.chrome.browser.ntp.NewTabPage;
+import org.chromium.chrome.browser.omaha.UpdateMenuItemHelper;
import org.chromium.chrome.browser.omnibox.LocationBar;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.util.ViewUtils;
@@ -48,6 +50,10 @@ abstract class ToolbarLayout extends FrameLayout implements Toolbar {
* The ImageButton view that represents the menu button.
*/
protected TintedImageButton mMenuButton;
+ protected ImageView mMenuBadge;
+ protected View mMenuButtonWrapper;
+ protected boolean mShowMenuBadge;
+ protected Drawable mUnbadgedMenuButtonDrawable;
private AppMenuButtonHelper mAppMenuButtonHelper;
protected final ColorStateList mDarkModeTint;
@@ -92,6 +98,9 @@ abstract class ToolbarLayout extends FrameLayout implements Toolbar {
}
mMenuButton = (TintedImageButton) findViewById(R.id.menu_button);
+ mMenuBadge = (ImageView) findViewById(R.id.menu_badge);
+ mMenuButtonWrapper = findViewById(R.id.menu_button_wrapper);
+
// Initialize the provider to an empty version to avoid null checking everywhere.
mToolbarDataProvider = new ToolbarDataProvider() {
@Override
@@ -182,10 +191,10 @@ abstract class ToolbarLayout extends FrameLayout implements Toolbar {
}
/**
- * @return The menu button view.
+ * @return The view containing the menu button and menu button badge.
*/
- protected View getMenuButton() {
- return mMenuButton;
+ protected View getMenuButtonWrapper() {
+ return mMenuButtonWrapper;
}
/**
@@ -609,4 +618,26 @@ abstract class ToolbarLayout extends FrameLayout implements Toolbar {
getLocationBar().hideSuggestions();
if (mToolbarTabController != null) mToolbarTabController.openHomepage();
}
+
+ @Override
+ public void showAppMenuUpdateBadge() {
+ mShowMenuBadge = true;
+ mUnbadgedMenuButtonDrawable = ApiCompatibilityUtils.getDrawable(getResources(),
+ R.drawable.btn_menu);
+ }
+
+ @Override
+ public void removeAppMenuUpdateBadge() {
+ mMenuBadge.setVisibility(View.GONE);
+ }
+
+ /**
+ * Sets the update badge visibility to VISIBLE and sets the menu button image to the badged
+ * bitmap.
+ */
+ protected void setAppMenuUpdateBadgeToVisible() {
+ mMenuBadge.setVisibility(View.VISIBLE);
+ mMenuButton.setImageBitmap(
+ UpdateMenuItemHelper.getInstance().getBadgedMenuButtonBitmap(getContext()));
+ }
}

Powered by Google App Engine
This is Rietveld 408576698