Fixed a bug where the colorization was lost when reinflating

Because we're reloading the drawable, it's colorfilter was lost.
Let's make sure we're reapplying any tints that we had when doing so.

Test: add colorized notification, reinflate
Change-Id: I11e59636317eb65da5573529f0dd44571ca10cce
Fixes: 63901744
This commit is contained in:
Selim Cinek
2017-08-17 16:42:51 -07:00
parent fc8073c4b6
commit 588423a00f

View File

@@ -19,6 +19,7 @@ package com.android.systemui.statusbar;
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.RippleDrawable;
@@ -34,6 +35,7 @@ public class NotificationBackgroundView extends View {
private int mClipTopAmount;
private int mActualHeight;
private int mClipBottomAmount;
private int mTintColor;
public NotificationBackgroundView(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -87,6 +89,7 @@ public class NotificationBackgroundView extends View {
mBackground = background;
if (mBackground != null) {
mBackground.setCallback(this);
setTint(mTintColor);
}
if (mBackground instanceof RippleDrawable) {
((RippleDrawable) mBackground).setForceSoftware(true);
@@ -105,6 +108,7 @@ public class NotificationBackgroundView extends View {
} else {
mBackground.clearColorFilter();
}
mTintColor = tintColor;
invalidate();
}