fix decor color selection

Change-Id: I4baa9f5f0abc6fdba2cdb5fadb9d75db929ce6b8
Fixes: 118309780
Test: visual
This commit is contained in:
Lucas Dupin
2018-10-23 17:47:03 -07:00
parent d845abbac0
commit de07d21864

View File

@@ -38,7 +38,6 @@ import android.graphics.drawable.Icon;
import android.os.Parcelable;
import android.os.UserHandle;
import android.service.notification.StatusBarNotification;
import androidx.core.graphics.ColorUtils;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.FloatProperty;
@@ -49,6 +48,8 @@ import android.view.ViewDebug;
import android.view.accessibility.AccessibilityEvent;
import android.view.animation.Interpolator;
import androidx.core.graphics.ColorUtils;
import com.android.internal.statusbar.StatusBarIcon;
import com.android.internal.util.ContrastColorUtil;
import com.android.systemui.Interpolators;
@@ -121,6 +122,7 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
private StatusBarNotification mNotification;
private final boolean mBlocked;
private int mDensity;
private boolean mNightMode;
private float mIconScale = 1.0f;
private final Paint mDotPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private float mDotRadius;
@@ -171,10 +173,10 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
setNotification(sbn);
setScaleType(ScaleType.CENTER);
mDensity = context.getResources().getDisplayMetrics().densityDpi;
if (mNotification != null) {
setDecorColor(getContext().getColor(
com.android.internal.R.color.notification_default_color_light));
}
Configuration configuration = context.getResources().getConfiguration();
mNightMode = (configuration.uiMode & Configuration.UI_MODE_NIGHT_MASK)
== Configuration.UI_MODE_NIGHT_YES;
initializeDecorColor();
reloadDimens();
maybeUpdateIconScaleDimens();
}
@@ -222,6 +224,12 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
maybeUpdateIconScaleDimens();
updateDrawable();
}
boolean nightMode = (newConfig.uiMode & Configuration.UI_MODE_NIGHT_MASK)
== Configuration.UI_MODE_NIGHT_YES;
if (nightMode != mNightMode) {
mNightMode = nightMode;
initializeDecorColor();
}
}
private void reloadDimens() {
@@ -540,6 +548,14 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
updateDecorColor();
}
private void initializeDecorColor() {
if (mNotification != null) {
setDecorColor(getContext().getColor(mNightMode
? com.android.internal.R.color.notification_default_color_dark
: com.android.internal.R.color.notification_default_color_light));
}
}
private void updateDecorColor() {
int color = NotificationUtils.interpolateColors(mDecorColor, Color.WHITE, mDarkAmount);
if (mDotPaint.getColor() != color) {