Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit de07d218 authored by Lucas Dupin's avatar Lucas Dupin
Browse files

fix decor color selection

Change-Id: I4baa9f5f0abc6fdba2cdb5fadb9d75db929ce6b8
Fixes: 118309780
Test: visual
parent d845abba
Loading
Loading
Loading
Loading
+21 −5
Original line number Diff line number Diff line
@@ -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) {