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

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

Issue 1702003004: Replace update menu badge (Closed) Base URL: https://chromium.googlesource.com/a/chromium/src.git@2623
Patch Set: Created 4 years, 10 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/ToolbarPhone.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java
index 437f9fa7ab8b4953ed8950cd308d1984a1cb31bc..9b3081f38ec0b01237ef8563329abf8f6e21c26b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarPhone.java
@@ -46,7 +46,6 @@ import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.R;
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.omnibox.LocationBarPhone;
import org.chromium.chrome.browser.omnibox.UrlContainer;
@@ -125,7 +124,8 @@ public class ToolbarPhone extends ToolbarLayout
private ColorDrawable mTabSwitcherAnimationBgOverlay;
private TabSwitcherDrawable mTabSwitcherAnimationTabStackDrawable;
private Drawable mTabSwitcherAnimationMenuDrawable;
- private Drawable mTabSwitcherAnimationMenuBadgeDrawable;
+ private Drawable mTabSwitcherAnimationMenuBadgeDarkDrawable;
+ private Drawable mTabSwitcherAnimationMenuBadgeLightDrawable;
// Value that determines the amount of transition from the normal toolbar mode to TabSwitcher
// mode. 0 = entirely in normal mode and 1.0 = entirely in TabSwitcher mode. In between values
// can be used for animating between the two view modes.
@@ -436,6 +436,7 @@ public class ToolbarPhone extends ToolbarLayout
// and the listener is setup.
if (mToggleTabStackButton != null && mToggleTabStackButton.isClickable()
&& mTabSwitcherListener != null) {
+ cancelAppMenuUpdateBadgeAnimation();
mTabSwitcherListener.onClick(mToggleTabStackButton);
RecordUserAction.record("MobileToolbarShowStackView");
}
@@ -966,9 +967,8 @@ public class ToolbarPhone extends ToolbarLayout
}
// Draw the menu button if necessary.
- if (mTabSwitcherAnimationMenuDrawable != null
+ if (!mShowMenuBadge && mTabSwitcherAnimationMenuDrawable != null
&& mUrlExpansionPercent != 1f) {
- canvas.save();
mTabSwitcherAnimationMenuDrawable.setBounds(
mMenuButton.getPaddingLeft(), mMenuButton.getPaddingTop(),
mMenuButton.getWidth() - mMenuButton.getPaddingRight(),
@@ -980,15 +980,20 @@ public class ToolbarPhone extends ToolbarLayout
: mDarkModeDefaultColor;
mTabSwitcherAnimationMenuDrawable.setColorFilter(color, PorterDuff.Mode.SRC_IN);
mTabSwitcherAnimationMenuDrawable.draw(canvas);
- canvas.restore();
}
// Draw the menu badge if necessary.
- if (mShowMenuBadge && mTabSwitcherAnimationMenuBadgeDrawable != null
- && mUrlExpansionPercent != 1f) {
+ Drawable badgeDrawable = mUseLightToolbarDrawables
+ ? mTabSwitcherAnimationMenuBadgeLightDrawable
+ : mTabSwitcherAnimationMenuBadgeDarkDrawable;
+ if (mShowMenuBadge && badgeDrawable != null && mUrlExpansionPercent != 1f) {
+ badgeDrawable.setBounds(
+ mMenuBadge.getPaddingLeft(), mMenuBadge.getPaddingTop(),
+ mMenuBadge.getWidth() - mMenuBadge.getPaddingRight(),
+ mMenuBadge.getHeight() - mMenuBadge.getPaddingBottom());
translateCanvasToView(mToolbarButtonsContainer, mMenuBadge, canvas);
- mTabSwitcherAnimationMenuBadgeDrawable.setAlpha(rgbAlpha);
- mTabSwitcherAnimationMenuBadgeDrawable.draw(canvas);
+ badgeDrawable.setAlpha(rgbAlpha);
+ badgeDrawable.draw(canvas);
}
canvas.restore();
@@ -1391,12 +1396,6 @@ public class ToolbarPhone extends ToolbarLayout
mUIAnimatingTabSwitcherTransition = false;
mTabSwitcherModePercent = mIsInTabSwitcherMode ? 1.0f : 0.0f;
- if (mShowMenuBadge && !mIsInTabSwitcherMode) {
- // If mInTabSwitcherMode is true, the menu button drawable will be updated in
- // #updateVisualsForToolbarState().
- mMenuButton.setImageBitmap(
- UpdateMenuItemHelper.getInstance().getBadgedMenuButtonBitmap(getContext()));
- }
if (!mAnimateNormalToolbar) {
finishAnimations();
updateVisualsForToolbarState(mIsInTabSwitcherMode);
@@ -1935,14 +1934,11 @@ public class ToolbarPhone extends ToolbarLayout
}
if (shouldShowMenuButton()) {
- // Only change the menu button drawable if isInTabSwitcherMode to avoid changing
- // it too soon if we're in the process of existing tab switcher mode. The drawable
- // will be changed in #onTabSwitcherTransitionFinished if we are exiting tab switcher
- // mode.
- if (mShowMenuBadge && isInTabSwitcherMode) {
- mMenuButton.setImageDrawable(mUnbadgedMenuButtonDrawable);
- }
mMenuButton.setTint(mUseLightToolbarDrawables ? mLightModeTint : mDarkModeTint);
+
+ if (mShowMenuBadge && !isInTabSwitcherMode) {
+ setAppMenuUpdateBadgeDrawable(mUseLightToolbarDrawables);
+ }
}
if (mHomeButton.getVisibility() != GONE) {
mHomeButton.setTint(mUseLightToolbarDrawables ? mLightModeTint : mDarkModeTint);
@@ -1988,45 +1984,61 @@ public class ToolbarPhone extends ToolbarLayout
@Override
public void showAppMenuUpdateBadge() {
super.showAppMenuUpdateBadge();
+
// Set up variables.
if (!mBrowsingModeViews.contains(mMenuBadge)) {
mBrowsingModeViews.add(mMenuBadge);
}
- // Finish any in-progress animations and set the TabSwitcherAnimationMenuDrawable.
+ // Finish any in-progress animations and set the TabSwitcherAnimationMenuBadgeDrawables.
finishAnimations();
- setTabSwitcherAnimationMenuDrawable();
+ setTabSwitcherAnimationMenuBadgeDrawable();
- // Show the badge and update the menu button drawable.
- if (!mIsInTabSwitcherMode) {
- setAppMenuUpdateBadgeToVisible();
+ // Show the badge.
+ if (!mIsInTabSwitcherMode && shouldShowMenuButton()) {
+ if (mUseLightToolbarDrawables) {
+ setAppMenuUpdateBadgeDrawable(mUseLightToolbarDrawables);
+ }
+ setAppMenuUpdateBadgeToVisible(true);
}
- mPhoneLocationBar.showAppMenuUpdateBadge();
+ mPhoneLocationBar.showAppMenuUpdateBadge(true);
}
@Override
- public void removeAppMenuUpdateBadge() {
- super.removeAppMenuUpdateBadge();
- mPhoneLocationBar.removeAppMenuUpdateBadge();
+ public void removeAppMenuUpdateBadge(boolean animate) {
+ super.removeAppMenuUpdateBadge(animate);
+
+ if (mBrowsingModeViews.contains(mMenuBadge)) {
+ mBrowsingModeViews.remove(mMenuBadge);
+ mTabSwitcherAnimationMenuBadgeDarkDrawable = null;
+ mTabSwitcherAnimationMenuBadgeLightDrawable = null;
+ }
+
+ mPhoneLocationBar.removeAppMenuUpdateBadge(animate);
}
private void setTabSwitcherAnimationMenuDrawable() {
if (!shouldShowMenuButton()) return;
- Resources res = getResources();
- if (mShowMenuBadge) {
- mTabSwitcherAnimationMenuDrawable = new BitmapDrawable(res,
- UpdateMenuItemHelper.getInstance().getBadgedMenuButtonBitmap(getContext()));
- mTabSwitcherAnimationMenuBadgeDrawable = mMenuBadge.getDrawable().mutate();
- } else {
- mTabSwitcherAnimationMenuDrawable = ApiCompatibilityUtils.getDrawable(getResources(),
- R.drawable.btn_menu);
- }
+ mTabSwitcherAnimationMenuDrawable = ApiCompatibilityUtils.getDrawable(getResources(),
+ R.drawable.btn_menu);
mTabSwitcherAnimationMenuDrawable.mutate();
mTabSwitcherAnimationMenuDrawable.setColorFilter(
isIncognito() ? mLightModeDefaultColor : mDarkModeDefaultColor,
PorterDuff.Mode.SRC_IN);
((BitmapDrawable) mTabSwitcherAnimationMenuDrawable).setGravity(Gravity.CENTER);
}
+
+ private void setTabSwitcherAnimationMenuBadgeDrawable() {
+ mTabSwitcherAnimationMenuBadgeDarkDrawable = ApiCompatibilityUtils.getDrawable(
+ getResources(), R.drawable.badge_update_dark);
+ mTabSwitcherAnimationMenuBadgeDarkDrawable.mutate();
+ ((BitmapDrawable) mTabSwitcherAnimationMenuBadgeDarkDrawable).setGravity(Gravity.CENTER);
+
+ mTabSwitcherAnimationMenuBadgeLightDrawable = ApiCompatibilityUtils.getDrawable(
+ getResources(), R.drawable.badge_update_light);
+ mTabSwitcherAnimationMenuBadgeLightDrawable.mutate();
+ ((BitmapDrawable) mTabSwitcherAnimationMenuBadgeLightDrawable).setGravity(Gravity.CENTER);
+ }
}

Powered by Google App Engine
This is Rietveld 408576698