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

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

Issue 1372653002: Start caching tinting ColorStateLists in Toolbar. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cache color ints too Created 5 years, 3 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 2be0cc815059499bf1a59d7287dbc0aa58c24977..4a984d057dab900c149c1ff2183983bd3ea28672 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
@@ -12,7 +12,6 @@ import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.annotation.SuppressLint;
import android.content.Context;
-import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Color;
@@ -163,6 +162,9 @@ public class ToolbarPhone extends ToolbarLayout
private TabSwitcherDrawable mTabSwitcherButtonDrawable;
private TabSwitcherDrawable mTabSwitcherButtonDrawableLight;
+ private final int mLightModeDefaultColor;
+ private final int mDarkModeDefaultColor;
+
private final Rect mUrlViewportBounds = new Rect();
private final Rect mUrlBackgroundPadding = new Rect();
private final Rect mBackgroundOverlayBounds = new Rect();
@@ -239,6 +241,10 @@ public class ToolbarPhone extends ToolbarLayout
// Insets used for the PhoneLocatioBar background drawable.
mLocationBarInsets = getResources().getDimensionPixelSize(R.dimen.location_bar_margin_top)
+ getResources().getDimensionPixelSize(R.dimen.location_bar_margin_bottom);
+ mLightModeDefaultColor =
+ ApiCompatibilityUtils.getColor(getResources(), R.color.light_mode_tint);
+ mDarkModeDefaultColor =
+ ApiCompatibilityUtils.getColor(getResources(), R.color.dark_mode_tint);
}
@Override
@@ -936,8 +942,8 @@ public class ToolbarPhone extends ToolbarLayout
translateCanvasToView(mToolbarButtonsContainer, mMenuButton, canvas);
mTabSwitcherAnimationMenuDrawable.setAlpha(rgbAlpha);
int color = mUseLightToolbarDrawables
- ? ApiCompatibilityUtils.getColor(getResources(), R.color.light_mode_tint)
- : ApiCompatibilityUtils.getColor(getResources(), R.color.dark_mode_tint);
+ ? mLightModeDefaultColor
+ : mDarkModeDefaultColor;
mTabSwitcherAnimationMenuDrawable.setColorFilter(color, PorterDuff.Mode.SRC_IN);
mTabSwitcherAnimationMenuDrawable.draw(canvas);
}
@@ -1366,8 +1372,8 @@ public class ToolbarPhone extends ToolbarLayout
Resources res = getResources();
mTabSwitcherAnimationMenuDrawable = ApiCompatibilityUtils.getDrawable(
res, R.drawable.btn_menu).mutate();
- mTabSwitcherAnimationMenuDrawable.setColorFilter(isIncognito() ? Color.WHITE
- : ApiCompatibilityUtils.getColor(res, R.color.light_normal_color),
+ mTabSwitcherAnimationMenuDrawable.setColorFilter(
+ isIncognito() ? mLightModeDefaultColor : mDarkModeDefaultColor,
PorterDuff.Mode.SRC_IN);
((BitmapDrawable) mTabSwitcherAnimationMenuDrawable).setGravity(Gravity.CENTER);
}
@@ -1860,25 +1866,21 @@ public class ToolbarPhone extends ToolbarLayout
getProgressBar().setBackgroundColor(
ApiCompatibilityUtils.getColor(getResources(), progressBarBackgroundColorResource));
- ColorStateList dark =
- ApiCompatibilityUtils.getColorStateList(getResources(), R.color.dark_mode_tint);
- ColorStateList white =
- ApiCompatibilityUtils.getColorStateList(getResources(), R.color.light_mode_tint);
if (mToggleTabStackButton != null) {
mToggleTabStackButton.setImageDrawable(mUseLightToolbarDrawables
? mTabSwitcherButtonDrawableLight : mTabSwitcherButtonDrawable);
if (mTabSwitcherAnimationTabStackDrawable != null) {
mTabSwitcherAnimationTabStackDrawable.setTint(
- mUseLightToolbarDrawables ? white : dark);
Yusuf 2015/09/28 17:20:26 setTint(int color) is API 21+. There is a Drawable
aurimas (slooooooooow) 2015/09/28 20:32:56 Filed a bug for investigating that crbug.com/53692
+ mUseLightToolbarDrawables ? mLightModeTint : mDarkModeTint);
}
}
if (shouldShowMenuButton()) {
- mMenuButton.setTint(mUseLightToolbarDrawables ? white : dark);
+ mMenuButton.setTint(mUseLightToolbarDrawables ? mLightModeTint : mDarkModeTint);
}
if (mHomeButton.getVisibility() != GONE) {
- mHomeButton.setTint(mUseLightToolbarDrawables ? white : dark);
+ mHomeButton.setTint(mUseLightToolbarDrawables ? mLightModeTint : mDarkModeTint);
}
mPhoneLocationBar.updateVisualsForState();

Powered by Google App Engine
This is Rietveld 408576698