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

Commit b4e879d6 authored by Jason Chang's avatar Jason Chang
Browse files

[SettingsLib] Update Utils APIs usage

Update Utils.getColorAttr and similar methods in Utils to return a ColorStateList instead of a color

Bug: 74872054
Test: Force to display different color items then manually test
Change-Id: I92697a597b532ba95f29a886baa114ed6d0ac632
parent 0a83fef4
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
@@ -204,16 +204,16 @@ public class Utils {

    @ColorInt
    public static int getColorAccent(Context context) {
        return getColorAttr(context, android.R.attr.colorAccent);
        return getColorAttrDefaultColor(context, android.R.attr.colorAccent);
    }

    @ColorInt
    public static int getColorError(Context context) {
        return getColorAttr(context, android.R.attr.colorError);
        return getColorAttrDefaultColor(context, android.R.attr.colorError);
    }

    @ColorInt
    public static int getDefaultColor(Context context, int resId) {
    public static int getColorStateListDefaultColor(Context context, int resId) {
        final ColorStateList list =
                context.getResources().getColorStateList(resId, context.getTheme());

@@ -241,13 +241,24 @@ public class Utils {
    }

    @ColorInt
    public static int getColorAttr(Context context, int attr) {
    public static int getColorAttrDefaultColor(Context context, int attr) {
        TypedArray ta = context.obtainStyledAttributes(new int[]{attr});
        @ColorInt int colorAccent = ta.getColor(0, 0);
        ta.recycle();
        return colorAccent;
    }

    public static ColorStateList getColorAttr(Context context, int attr) {
        TypedArray ta = context.obtainStyledAttributes(new int[]{attr});
        ColorStateList stateList = null;
        try {
            stateList = ta.getColorStateList(0);
        } finally {
            ta.recycle();
        }
        return stateList;
    }

    public static int getThemeAttr(Context context, int attr) {
        TypedArray ta = context.obtainStyledAttributes(new int[]{attr});
        int theme = ta.getResourceId(0, 0);
+7 −4
Original line number Diff line number Diff line
@@ -103,7 +103,8 @@ public class BatteryMeterDrawableBase extends Drawable {
        for (int i = 0; i < N; i++) {
            mColors[2 * i] = levels.getInt(i, 0);
            if (colors.getType(i) == TypedValue.TYPE_ATTRIBUTE) {
                mColors[2 * i + 1] = Utils.getColorAttr(context, colors.getThemeAttributeId(i, 0));
                mColors[2 * i + 1] = Utils.getColorAttrDefaultColor(context,
                        colors.getThemeAttributeId(i, 0));
            } else {
                mColors[2 * i + 1] = colors.getColor(i, 0);
            }
@@ -145,14 +146,16 @@ public class BatteryMeterDrawableBase extends Drawable {
            mWarningTextPaint.setColor(mColors[1]);
        }

        mChargeColor = Utils.getDefaultColor(mContext, R.color.meter_consumed_color);
        mChargeColor = Utils.getColorStateListDefaultColor(mContext, R.color.meter_consumed_color);

        mBoltPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        mBoltPaint.setColor(Utils.getDefaultColor(mContext, R.color.batterymeter_bolt_color));
        mBoltPaint.setColor(Utils.getColorStateListDefaultColor(mContext,
                R.color.batterymeter_bolt_color));
        mBoltPoints = loadPoints(res, R.array.batterymeter_bolt_points);

        mPlusPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        mPlusPaint.setColor(Utils.getDefaultColor(mContext, R.color.batterymeter_plus_color));
        mPlusPaint.setColor(Utils.getColorStateListDefaultColor(mContext,
                R.color.batterymeter_plus_color));
        mPlusPoints = loadPoints(res, R.array.batterymeter_plus_points);

        mIntrinsicWidth = context.getResources().getDimensionPixelSize(R.dimen.battery_width);
+2 −1
Original line number Diff line number Diff line
@@ -117,7 +117,8 @@ public class BluetoothDeviceLayerDrawable extends LayerDrawable {
                    R.fraction.bt_battery_button_height_fraction, 1, 1);
            mAspectRatio = resources.getFraction(R.fraction.bt_battery_ratio_fraction, 1, 1);

            final int tintColor = Utils.getColorAttr(context, android.R.attr.colorControlNormal);
            final int tintColor = Utils.getColorAttrDefaultColor(context,
                    android.R.attr.colorControlNormal);
            setColorFilter(new PorterDuffColorFilter(tintColor, PorterDuff.Mode.SRC_IN));
            setBatteryLevel(batteryLevel);
            mFrameColor = frameColor;
+8 −4
Original line number Diff line number Diff line
@@ -132,13 +132,17 @@ public class SignalDrawable extends Drawable {

    public SignalDrawable(Context context) {
        mDarkModeBackgroundColor =
                Utils.getDefaultColor(context, R.color.dark_mode_icon_color_dual_tone_background);
                Utils.getColorStateListDefaultColor(context,
                        R.color.dark_mode_icon_color_dual_tone_background);
        mDarkModeFillColor =
                Utils.getDefaultColor(context, R.color.dark_mode_icon_color_dual_tone_fill);
                Utils.getColorStateListDefaultColor(context,
                        R.color.dark_mode_icon_color_dual_tone_fill);
        mLightModeBackgroundColor =
                Utils.getDefaultColor(context, R.color.light_mode_icon_color_dual_tone_background);
                Utils.getColorStateListDefaultColor(context,
                        R.color.light_mode_icon_color_dual_tone_background);
        mLightModeFillColor =
                Utils.getDefaultColor(context, R.color.light_mode_icon_color_dual_tone_fill);
                Utils.getColorStateListDefaultColor(context,
                        R.color.light_mode_icon_color_dual_tone_fill);
        mIntrinsicSize = context.getResources().getDimensionPixelSize(R.dimen.signal_icon_size);

        mHandler = new Handler();
+1 −1
Original line number Diff line number Diff line
@@ -183,7 +183,7 @@ public class AccessPointPreference extends Preference {

        Drawable drawable = mIconInjector.getIcon(level);
        if (!mForSavedNetworks && drawable != null) {
            drawable.setTint(Utils.getColorAttr(context, android.R.attr.colorControlNormal));
            drawable.setTintList(Utils.getColorAttr(context, android.R.attr.colorControlNormal));
            setIcon(drawable);
        } else {
            safeSetDefaultIcon();
Loading