Make aodIconTint default to white.

Previously, this defaulted to NO_COLOR (0) when the wallpaperTextColor
cannot be fetched from the context, which made some icons not show up at
all.

Bug: 260377107
Test: manual testing (issue fully reproducible with the debug
notification icon) &  atest SystemUITests

Change-Id: Ia407251621fe11ec5daac76677d6b66bf8015fa2
This commit is contained in:
Ioana Alexandru
2022-12-16 13:39:38 +00:00
parent b08cafd991
commit c6b2ffe2c8
2 changed files with 14 additions and 3 deletions

View File

@@ -308,8 +308,16 @@ public class Utils {
@ColorInt
public static int getColorAttrDefaultColor(Context context, int attr) {
return getColorAttrDefaultColor(context, attr, 0);
}
/**
* Get color styled attribute {@code attr}, default to {@code defValue} if not found.
*/
@ColorInt
public static int getColorAttrDefaultColor(Context context, int attr, @ColorInt int defValue) {
TypedArray ta = context.obtainStyledAttributes(new int[]{attr});
@ColorInt int colorAccent = ta.getColor(0, 0);
@ColorInt int colorAccent = ta.getColor(0, defValue);
ta.recycle();
return colorAccent;
}

View File

@@ -11,6 +11,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import androidx.collection.ArrayMap;
@@ -62,6 +63,8 @@ public class NotificationIconAreaController implements
public static final String HIGH_PRIORITY = "high_priority";
private static final long AOD_ICONS_APPEAR_DURATION = 200;
@ColorInt
private static final int DEFAULT_AOD_ICON_COLOR = 0xffffffff;
private final ContrastColorUtil mContrastColorUtil;
private final Runnable mUpdateStatusBarIcons = this::updateStatusBarIcons;
@@ -84,7 +87,7 @@ public class NotificationIconAreaController implements
private NotificationIconContainer mShelfIcons;
private NotificationIconContainer mAodIcons;
private final ArrayList<Rect> mTintAreas = new ArrayList<>();
private Context mContext;
private final Context mContext;
private final DemoModeController mDemoModeController;
@@ -567,7 +570,7 @@ public class NotificationIconAreaController implements
private void reloadAodColor() {
mAodIconTint = Utils.getColorAttrDefaultColor(mContext,
R.attr.wallpaperTextColor);
R.attr.wallpaperTextColor, DEFAULT_AOD_ICON_COLOR);
}
private void updateAodIconColors() {