Merge "[SettingsLib] Update Utils APIs usage"

This commit is contained in:
Jason Chang
2018-04-12 12:44:04 +00:00
committed by Android (Google) Code Review
26 changed files with 83 additions and 52 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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;

View File

@@ -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();

View File

@@ -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();

View File

@@ -102,7 +102,7 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
super.onFinishInflate();
mTitle = findViewById(R.id.title);
mRow = findViewById(R.id.row);
mTextColor = Utils.getColorAttr(mContext, R.attr.wallpaperTextColor);
mTextColor = Utils.getColorAttrDefaultColor(mContext, R.attr.wallpaperTextColor);
mIconSize = (int) mContext.getResources().getDimension(R.dimen.widget_icon_size);
}

View File

@@ -164,8 +164,8 @@ public class BatteryMeterView extends LinearLayout implements
if (mUseWallpaperTextColors) {
updateColors(
Utils.getColorAttr(mContext, R.attr.wallpaperTextColor),
Utils.getColorAttr(mContext, R.attr.wallpaperTextColorSecondary));
Utils.getColorAttrDefaultColor(mContext, R.attr.wallpaperTextColor),
Utils.getColorAttrDefaultColor(mContext, R.attr.wallpaperTextColorSecondary));
} else {
updateColors(mNonAdaptedForegroundColor, mNonAdaptedBackgroundColor);
}
@@ -180,10 +180,13 @@ public class BatteryMeterView extends LinearLayout implements
Utils.getThemeAttr(context, R.attr.darkIconTheme));
Context dualToneLightTheme = new ContextThemeWrapper(context,
Utils.getThemeAttr(context, R.attr.lightIconTheme));
mDarkModeBackgroundColor = Utils.getColorAttr(dualToneDarkTheme, R.attr.backgroundColor);
mDarkModeFillColor = Utils.getColorAttr(dualToneDarkTheme, R.attr.fillColor);
mLightModeBackgroundColor = Utils.getColorAttr(dualToneLightTheme, R.attr.backgroundColor);
mLightModeFillColor = Utils.getColorAttr(dualToneLightTheme, R.attr.fillColor);
mDarkModeBackgroundColor = Utils.getColorAttrDefaultColor(dualToneDarkTheme,
R.attr.backgroundColor);
mDarkModeFillColor = Utils.getColorAttrDefaultColor(dualToneDarkTheme,
R.attr.fillColor);
mLightModeBackgroundColor = Utils.getColorAttrDefaultColor(dualToneLightTheme,
R.attr.backgroundColor);
mLightModeFillColor = Utils.getColorAttrDefaultColor(dualToneLightTheme, R.attr.fillColor);
}
@Override

View File

@@ -61,7 +61,7 @@ public class HardwareBgDrawable extends LayerDrawable {
: R.drawable.rounded_bg_bottom).mutate(),
};
}
layers[1].setTint(Utils.getColorAttr(context, android.R.attr.colorPrimary));
layers[1].setTintList(Utils.getColorAttr(context, android.R.attr.colorPrimary));
return layers;
}

View File

@@ -95,7 +95,7 @@ final class WirelessChargingView extends View {
private void setupPaint() {
mPaint = new Paint();
mPaint.setColor(Utils.getColorAttr(mContext, R.attr.wallpaperTextColor));
mPaint.setColor(Utils.getColorAttrDefaultColor(mContext, R.attr.wallpaperTextColor));
}
public void setPaintColor(int color) {
@@ -179,4 +179,4 @@ final class WirelessChargingView extends View {
private float getPathGone(long now) {
return (float) (now - mAnimationStartTime) / (WirelessChargingAnimation.DURATION);
}
}
}

View File

@@ -106,7 +106,8 @@ public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks
d.setContentView(R.layout.shutdown_dialog);
d.setCancelable(false);
int color = Utils.getColorAttr(mContext, com.android.systemui.R.attr.wallpaperTextColor);
int color = Utils.getColorAttrDefaultColor(mContext,
com.android.systemui.R.attr.wallpaperTextColor);
boolean onKeyguard = mContext.getSystemService(
KeyguardManager.class).isKeyguardLocked();

View File

@@ -242,7 +242,7 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
// remaining estimate is disabled
if (mEstimate == null || mBucket < 0
|| mEstimate.estimateMillis < mSevereWarningThreshold) {
nb.setColor(Utils.getColorAttr(mContext, android.R.attr.colorError));
nb.setColor(Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorError));
}
nb.addAction(0,
mContext.getString(R.string.battery_saver_start_action),
@@ -337,7 +337,8 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
.setVisibility(Notification.VISIBILITY_PUBLIC)
.setContentIntent(pendingBroadcast(ACTION_CLICKED_TEMP_WARNING))
.setDeleteIntent(pendingBroadcast(ACTION_DISMISSED_TEMP_WARNING))
.setColor(Utils.getColorAttr(mContext, android.R.attr.colorError));
.setColor(Utils.getColorAttrDefaultColor(mContext,
android.R.attr.colorError));
SystemUI.overrideNotificationAppName(mContext, nb, false);
final Notification n = nb.build();
mNoMan.notifyAsUser(TAG_TEMPERATURE, SystemMessage.NOTE_HIGH_TEMP, n, UserHandle.ALL);
@@ -387,7 +388,8 @@ public class PowerNotificationWarnings implements PowerUI.WarningsUI {
.setContentIntent(pendingBroadcast(ACTION_CLICKED_THERMAL_SHUTDOWN_WARNING))
.setDeleteIntent(
pendingBroadcast(ACTION_DISMISSED_THERMAL_SHUTDOWN_WARNING))
.setColor(Utils.getColorAttr(mContext, android.R.attr.colorError));
.setColor(Utils.getColorAttrDefaultColor(mContext,
android.R.attr.colorError));
SystemUI.overrideNotificationAppName(mContext, nb, false);
final Notification n = nb.build();
mNoMan.notifyAsUser(

View File

@@ -45,8 +45,10 @@ public class DataUsageGraph extends View {
public DataUsageGraph(Context context, AttributeSet attrs) {
super(context, attrs);
final Resources res = context.getResources();
mTrackColor = Utils.getDefaultColor(context, R.color.data_usage_graph_track);
mWarningColor = Utils.getDefaultColor(context, R.color.data_usage_graph_warning);
mTrackColor = Utils.getColorStateListDefaultColor(context,
R.color.data_usage_graph_track);
mWarningColor = Utils.getColorStateListDefaultColor(context,
R.color.data_usage_graph_warning);
mUsageColor = Utils.getColorAccent(context);
mOverlimitColor = Utils.getColorError(context);
mMarkerWidth = res.getDimensionPixelSize(R.dimen.data_usage_graph_marker_width);

View File

@@ -96,7 +96,7 @@ public class QSFooterImpl extends FrameLayout implements QSFooter,
public QSFooterImpl(Context context, AttributeSet attrs) {
super(context, attrs);
mColorForeground = Utils.getColorAttr(context, android.R.attr.colorForeground);
mColorForeground = Utils.getColorAttrDefaultColor(context, android.R.attr.colorForeground);
}
@Override
@@ -354,7 +354,7 @@ public class QSFooterImpl extends FrameLayout implements QSFooter,
!(picture instanceof UserIconDrawable)) {
picture = picture.getConstantState().newDrawable(mContext.getResources()).mutate();
picture.setColorFilter(
Utils.getColorAttr(mContext, android.R.attr.colorForeground),
Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorForeground),
Mode.SRC_IN);
}
mMultiUserAvatar.setImageDrawable(picture);

View File

@@ -162,7 +162,8 @@ public class QuickStatusBarHeader extends RelativeLayout implements
updateResources();
Rect tintArea = new Rect(0, 0, 0, 0);
int colorForeground = Utils.getColorAttr(getContext(), android.R.attr.colorForeground);
int colorForeground = Utils.getColorAttrDefaultColor(getContext(),
android.R.attr.colorForeground);
float intensity = getColorIntensity(colorForeground);
int fillColor = fillColorForIntensity(intensity, getContext());

View File

@@ -40,7 +40,8 @@ public class CarStatusBarHeader extends LinearLayout {
super.onFinishInflate();
// Set the light/dark theming on the header status UI to match the current theme.
int colorForeground = Utils.getColorAttr(getContext(), android.R.attr.colorForeground);
int colorForeground = Utils.getColorAttrDefaultColor(getContext(),
android.R.attr.colorForeground);
float intensity = colorForeground == Color.WHITE ? 0f : 1f;
Rect tintArea = new Rect(0, 0, 0, 0);

View File

@@ -101,7 +101,7 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene
mToolbar.getMenu().add(Menu.NONE, MENU_RESET, 0,
mContext.getString(com.android.internal.R.string.reset));
mToolbar.setTitle(R.string.qs_edit);
int accentColor = Utils.getColorAttr(context, android.R.attr.colorAccent);
int accentColor = Utils.getColorAttrDefaultColor(context, android.R.attr.colorAccent);
mToolbar.setTitleTextColor(accentColor);
mToolbar.getNavigationIcon().setTint(accentColor);
mToolbar.getOverflowIcon().setTint(accentColor);

View File

@@ -94,10 +94,10 @@ public class QSTileBaseView extends com.android.systemui.plugins.qs.QSTileView {
setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
setBackground(mTileBackground);
mColorActive = Utils.getColorAttr(context, android.R.attr.colorAccent);
mColorActive = Utils.getColorAttrDefaultColor(context, android.R.attr.colorAccent);
mColorDisabled = Utils.getDisabled(context,
Utils.getColorAttr(context, android.R.attr.textColorTertiary));
mColorInactive = Utils.getColorAttr(context, android.R.attr.textColorSecondary);
Utils.getColorAttrDefaultColor(context, android.R.attr.textColorTertiary));
mColorInactive = Utils.getColorAttrDefaultColor(context, android.R.attr.textColorSecondary);
setPadding(0, 0, 0, 0);
setClipChildren(false);

View File

@@ -387,11 +387,11 @@ public abstract class QSTileImpl<TState extends State> implements QSTile {
switch (state) {
case Tile.STATE_UNAVAILABLE:
return Utils.getDisabled(context,
Utils.getColorAttr(context, android.R.attr.textColorSecondary));
Utils.getColorAttrDefaultColor(context, android.R.attr.textColorSecondary));
case Tile.STATE_INACTIVE:
return Utils.getColorAttr(context, android.R.attr.textColorSecondary);
return Utils.getColorAttrDefaultColor(context, android.R.attr.textColorSecondary);
case Tile.STATE_ACTIVE:
return Utils.getColorAttr(context, android.R.attr.colorPrimary);
return Utils.getColorAttrDefaultColor(context, android.R.attr.colorPrimary);
default:
Log.e("QSTile", "Invalid state " + state);
return 0;

View File

@@ -91,7 +91,7 @@ public class DataUsageDetailView extends LinearLayout {
formatBytes(info.usageLevel));
bottom = res.getString(R.string.quick_settings_cellular_detail_data_limit,
formatBytes(info.limitLevel));
usageColor = Utils.getDefaultColor(mContext, android.R.attr.colorError);
usageColor = Utils.getColorStateListDefaultColor(mContext, android.R.attr.colorError);
}
if (usageColor == 0) {

View File

@@ -198,7 +198,7 @@ public class RecentsView extends FrameLayout {
}
public void reevaluateStyles() {
int textColor = Utils.getColorAttr(mContext, R.attr.wallpaperTextColor);
int textColor = Utils.getColorAttrDefaultColor(mContext, R.attr.wallpaperTextColor);
boolean usingDarkText = Color.luminance(textColor) < 0.5f;
mEmptyView.setTextColor(textColor);

View File

@@ -166,7 +166,7 @@ public class BarTransitions {
mSemiTransparent = context.getColor(
com.android.internal.R.color.system_bar_background_semi_transparent);
mTransparent = context.getColor(R.color.system_bar_background_transparent);
mWarning = Utils.getColorAttr(context, android.R.attr.colorError);
mWarning = Utils.getColorAttrDefaultColor(context, android.R.attr.colorError);
}
mGradient = context.getDrawable(gradientResourceId);
}

View File

@@ -437,9 +437,10 @@ public class KeyguardStatusBarView extends RelativeLayout
}
public void onThemeChanged() {
@ColorInt int textColor = Utils.getColorAttr(mContext, R.attr.wallpaperTextColor);
@ColorInt int iconColor = Utils.getDefaultColor(mContext, Color.luminance(textColor) < 0.5 ?
R.color.dark_mode_icon_color_single_tone :
@ColorInt int textColor = Utils.getColorAttrDefaultColor(mContext,
R.attr.wallpaperTextColor);
@ColorInt int iconColor = Utils.getColorStateListDefaultColor(mContext,
Color.luminance(textColor) < 0.5 ? R.color.dark_mode_icon_color_single_tone :
R.color.light_mode_icon_color_single_tone);
float intensity = textColor == Color.WHITE ? 0 : 1;
mCarrierLabel.setTextColor(iconColor);

View File

@@ -750,8 +750,8 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
final int dualToneLightTheme = Utils.getThemeAttr(ctx, R.attr.lightIconTheme);
Context darkContext = new ContextThemeWrapper(ctx, dualToneDarkTheme);
Context lightContext = new ContextThemeWrapper(ctx, dualToneLightTheme);
final int lightColor = Utils.getColorAttr(lightContext, R.attr.singleToneColor);
final int darkColor = Utils.getColorAttr(darkContext, R.attr.singleToneColor);
final int lightColor = Utils.getColorAttrDefaultColor(lightContext, R.attr.singleToneColor);
final int darkColor = Utils.getColorAttrDefaultColor(darkContext, R.attr.singleToneColor);
// Use the supplied style to set the icon's rotation parameters
Context rotateContext = new ContextThemeWrapper(ctx, style);

View File

@@ -83,7 +83,7 @@ public class TrustDrawable extends Drawable {
mPaint = new Paint();
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setColor(Utils.getColorAttr(context, R.attr.wallpaperTextColor));
mPaint.setColor(Utils.getColorAttrDefaultColor(context, R.attr.wallpaperTextColor));
mPaint.setAntiAlias(true);
mPaint.setStrokeWidth(mThickness);
}

View File

@@ -677,7 +677,8 @@ public class UserSwitcherController {
Drawable icon = UserIcons.getDefaultUserIcon(
context.getResources(), item.resolveId(), /* light= */ false);
if (item.isGuest) {
icon.setColorFilter(Utils.getColorAttr(context, android.R.attr.colorForeground),
icon.setColorFilter(Utils.getColorAttrDefaultColor(context,
android.R.attr.colorForeground),
Mode.SRC_IN);
}
return icon;

View File

@@ -3881,7 +3881,7 @@ public class NotificationStackScrollLayout extends ViewGroup
mUsingLightTheme = lightTheme;
Context context = new ContextThemeWrapper(mContext,
lightTheme ? R.style.Theme_SystemUI_Light : R.style.Theme_SystemUI);
final int textColor = Utils.getColorAttr(context, R.attr.wallpaperTextColor);
final int textColor = Utils.getColorAttrDefaultColor(context, R.attr.wallpaperTextColor);
mFooterView.setTextColor(textColor);
mEmptyShadeView.setTextColor(textColor);
}