From a76797e756b68f99b1fca5a8dac4bc598829724d Mon Sep 17 00:00:00 2001 From: Jason Chang Date: Thu, 3 May 2018 11:08:20 +0800 Subject: [PATCH] [SettingsLib] Update Utils.getColorAccent() and Utils.getColorError() to return ColorStateLists instead of colors. Update Utils.getColorAccent() and Utils.getColorError() to return ColorStateLists instead of colors and change every callers entry. Bug: 78215054 Test: manually test for UI Change-Id: Ie201aee439bd9e8337eca989b4cdc836a6e8e917 --- .../settings/applications/RunningProcessesView.java | 3 +-- .../settings/dashboard/suggestions/SuggestionAdapter.java | 2 +- .../android/settings/deviceinfo/StorageWizardBase.java | 2 +- .../fingerprint/FingerprintLocationAnimationView.java | 2 +- .../android/settings/fuelgauge/BatteryHistoryChart.java | 2 +- .../settings/notification/ZenModeSliceBuilder.java | 2 +- src/com/android/settings/slices/SliceBuilderUtils.java | 8 ++++---- src/com/android/settings/widget/DonutView.java | 4 ++-- src/com/android/settings/wifi/WifiSliceBuilder.java | 2 +- .../wifi/details/WifiDetailPreferenceController.java | 2 +- .../dashboard/suggestions/SuggestionAdapterTest.java | 8 +++++--- .../src/com/android/settings/testutils/SliceTester.java | 8 ++++---- 12 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/com/android/settings/applications/RunningProcessesView.java b/src/com/android/settings/applications/RunningProcessesView.java index c065af4cfad..5491ad14c6c 100644 --- a/src/com/android/settings/applications/RunningProcessesView.java +++ b/src/com/android/settings/applications/RunningProcessesView.java @@ -452,8 +452,7 @@ public class RunningProcessesView extends FrameLayout final Context context = getContext(); mColorBar.setProgressTintList( ColorStateList.valueOf(context.getColor(R.color.running_processes_system_ram))); - mColorBar.setSecondaryProgressTintList( - ColorStateList.valueOf(Utils.getColorAccent(context))); + mColorBar.setSecondaryProgressTintList(Utils.getColorAccent(context)); mColorBar.setSecondaryProgressTintMode(PorterDuff.Mode.SRC); mColorBar.setProgressBackgroundTintList( ColorStateList.valueOf(context.getColor(R.color.running_processes_free_ram))); diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java b/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java index 4a3bc334645..da0991bf7a2 100644 --- a/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java +++ b/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java @@ -120,7 +120,7 @@ public class SuggestionAdapter extends RecyclerView.Adapter final Icon icon = suggestion.getIcon(); final Drawable drawable = mCache.getIcon(icon); if (drawable != null && (suggestion.getFlags() & Suggestion.FLAG_ICON_TINTABLE) != 0) { - drawable.setTint(Utils.getColorAccent(mContext)); + drawable.setTintList(Utils.getColorAccent(mContext)); } holder.icon.setImageDrawable(drawable); holder.title.setText(suggestion.getTitle()); diff --git a/src/com/android/settings/deviceinfo/StorageWizardBase.java b/src/com/android/settings/deviceinfo/StorageWizardBase.java index 40fc249f697..47481f38c86 100644 --- a/src/com/android/settings/deviceinfo/StorageWizardBase.java +++ b/src/com/android/settings/deviceinfo/StorageWizardBase.java @@ -162,7 +162,7 @@ public abstract class StorageWizardBase extends Activity { protected void setIcon(int resId) { final GlifLayout layout = getGlifLayout(); final Drawable icon = getDrawable(resId).mutate(); - icon.setTint(Utils.getColorAccent(layout.getContext())); + icon.setTintList(Utils.getColorAccent(layout.getContext())); layout.setIcon(icon); } diff --git a/src/com/android/settings/fingerprint/FingerprintLocationAnimationView.java b/src/com/android/settings/fingerprint/FingerprintLocationAnimationView.java index a26883a04b9..0812f2d1475 100644 --- a/src/com/android/settings/fingerprint/FingerprintLocationAnimationView.java +++ b/src/com/android/settings/fingerprint/FingerprintLocationAnimationView.java @@ -62,7 +62,7 @@ public class FingerprintLocationAnimationView extends View implements R.fraction.fingerprint_sensor_location_fraction_x, 1, 1); mFractionCenterY = getResources().getFraction( R.fraction.fingerprint_sensor_location_fraction_y, 1, 1); - @ColorInt int colorAccent = Utils.getColorAccent(context); + @ColorInt int colorAccent = Utils.getColorAccentDefaultColor(context); mDotPaint.setAntiAlias(true); mPulsePaint.setAntiAlias(true); mDotPaint.setColor(colorAccent); diff --git a/src/com/android/settings/fuelgauge/BatteryHistoryChart.java b/src/com/android/settings/fuelgauge/BatteryHistoryChart.java index 5003254bf12..e442a071bd1 100644 --- a/src/com/android/settings/fuelgauge/BatteryHistoryChart.java +++ b/src/com/android/settings/fuelgauge/BatteryHistoryChart.java @@ -363,7 +363,7 @@ public class BatteryHistoryChart extends View { mThinLineWidth = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, getResources().getDisplayMetrics()); - int accentColor = Utils.getColorAccent(mContext); + int accentColor = Utils.getColorAccentDefaultColor(mContext); mBatteryBackgroundPaint.setColor(accentColor); mBatteryBackgroundPaint.setStyle(Paint.Style.FILL); mBatteryGoodPaint.setARGB(128, 0, 128, 0); diff --git a/src/com/android/settings/notification/ZenModeSliceBuilder.java b/src/com/android/settings/notification/ZenModeSliceBuilder.java index bd435464a02..7e6c11e1a32 100644 --- a/src/com/android/settings/notification/ZenModeSliceBuilder.java +++ b/src/com/android/settings/notification/ZenModeSliceBuilder.java @@ -84,7 +84,7 @@ public class ZenModeSliceBuilder { public static Slice getSlice(Context context) { final boolean isZenModeEnabled = isZenModeEnabled(context); final CharSequence title = context.getText(R.string.zen_mode_settings_title); - @ColorInt final int color = Utils.getColorAccent(context); + @ColorInt final int color = Utils.getColorAccentDefaultColor(context); final PendingIntent toggleAction = getBroadcastIntent(context); final PendingIntent primaryAction = getPrimaryAction(context); final SliceAction primarySliceAction = new SliceAction(primaryAction, diff --git a/src/com/android/settings/slices/SliceBuilderUtils.java b/src/com/android/settings/slices/SliceBuilderUtils.java index b7f51344208..0913e2ab159 100644 --- a/src/com/android/settings/slices/SliceBuilderUtils.java +++ b/src/com/android/settings/slices/SliceBuilderUtils.java @@ -238,7 +238,7 @@ public class SliceBuilderUtils { final PendingIntent contentIntent = getContentPendingIntent(context, sliceData); final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource()); final CharSequence subtitleText = getSubtitleText(context, controller, sliceData); - @ColorInt final int color = Utils.getColorAccent(context); + @ColorInt final int color = Utils.getColorAccentDefaultColor(context); final TogglePreferenceController toggleController = (TogglePreferenceController) controller; final SliceAction sliceAction = getToggleAction(context, sliceData, @@ -262,7 +262,7 @@ public class SliceBuilderUtils { final PendingIntent contentIntent = getContentPendingIntent(context, sliceData); final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource()); final CharSequence subtitleText = getSubtitleText(context, controller, sliceData); - @ColorInt final int color = Utils.getColorAccent(context); + @ColorInt final int color = Utils.getColorAccentDefaultColor(context); final List keywords = buildSliceKeywords(sliceData); return new ListBuilder(context, sliceData.getUri(), ListBuilder.INFINITY) @@ -282,7 +282,7 @@ public class SliceBuilderUtils { final PendingIntent actionIntent = getSliderAction(context, sliceData); final PendingIntent contentIntent = getContentPendingIntent(context, sliceData); final IconCompat icon = IconCompat.createWithResource(context, sliceData.getIconResource()); - @ColorInt final int color = Utils.getColorAccent(context); + @ColorInt final int color = Utils.getColorAccentDefaultColor(context); final SliceAction primaryAction = new SliceAction(contentIntent, icon, sliceData.getTitle()); final List keywords = buildSliceKeywords(sliceData); @@ -359,7 +359,7 @@ public class SliceBuilderUtils { BasePreferenceController controller) { final String title = data.getTitle(); final List keywords = buildSliceKeywords(data); - @ColorInt final int color = Utils.getColorAccent(context); + @ColorInt final int color = Utils.getColorAccentDefaultColor(context); final String summary; final SliceAction primaryAction; final IconCompat icon = IconCompat.createWithResource(context, data.getIconResource()); diff --git a/src/com/android/settings/widget/DonutView.java b/src/com/android/settings/widget/DonutView.java index 261c85d2657..0acb81ca576 100644 --- a/src/com/android/settings/widget/DonutView.java +++ b/src/com/android/settings/widget/DonutView.java @@ -122,7 +122,7 @@ public class DonutView extends View { : Paint.BIDI_RTL; mTextPaint = new TextPaint(); - mTextPaint.setColor(Utils.getColorAccent(getContext())); + mTextPaint.setColor(Utils.getColorAccentDefaultColor(getContext())); mTextPaint.setAntiAlias(true); mTextPaint.setTextSize( resources.getDimension(R.dimen.storage_donut_view_label_text_size)); @@ -130,7 +130,7 @@ public class DonutView extends View { mTextPaint.setBidiFlags(bidiFlags); mBigNumberPaint = new TextPaint(); - mBigNumberPaint.setColor(Utils.getColorAccent(getContext())); + mBigNumberPaint.setColor(Utils.getColorAccentDefaultColor(getContext())); mBigNumberPaint.setAntiAlias(true); mBigNumberPaint.setTextSize( resources.getDimension(R.dimen.storage_donut_view_percent_text_size)); diff --git a/src/com/android/settings/wifi/WifiSliceBuilder.java b/src/com/android/settings/wifi/WifiSliceBuilder.java index 82038a59126..312f01b2c8e 100644 --- a/src/com/android/settings/wifi/WifiSliceBuilder.java +++ b/src/com/android/settings/wifi/WifiSliceBuilder.java @@ -87,7 +87,7 @@ public class WifiSliceBuilder { R.drawable.ic_settings_wireless); final String title = context.getString(R.string.wifi_settings); final CharSequence summary = getSummary(context); - @ColorInt final int color = Utils.getColorAccent(context); + @ColorInt final int color = Utils.getColorAccentDefaultColor(context); final PendingIntent toggleAction = getBroadcastIntent(context); final PendingIntent primaryAction = getPrimaryAction(context); final SliceAction primarySliceAction = new SliceAction(primaryAction, icon, title); diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java index fda5ce49347..d3ea7471a00 100644 --- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java +++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java @@ -406,7 +406,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController mRssiSignalLevel = signalLevel; Drawable wifiIcon = mIconInjector.getIcon(mRssiSignalLevel); - wifiIcon.setTint(Utils.getColorAccent(mContext)); + wifiIcon.setTintList(Utils.getColorAccent(mContext)); mEntityHeaderController.setIcon(wifiIcon).done(mFragment.getActivity(), true /* rebind */); Drawable wifiIconDark = wifiIcon.getConstantState().newDrawable().mutate(); diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java index dc492a93907..586bbd10015 100644 --- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java +++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java @@ -29,6 +29,7 @@ import android.app.PendingIntent; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; +import android.content.res.ColorStateList; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.service.settings.suggestions.Suggestion; @@ -47,6 +48,7 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowCardView; import com.android.settingslib.suggestions.SuggestionControllerMixin; import com.android.settingslib.utils.IconCache; +import com.android.settingslib.Utils; import org.junit.Before; import org.junit.Test; @@ -282,13 +284,13 @@ public class SuggestionAdapterTest { when(cache.getIcon(icon)).thenReturn(drawable); ReflectionHelpers.setField(mSuggestionAdapter, "mCache", cache); TypedArray typedArray = mock(TypedArray.class); - final int colorAccent = 1234; + final ColorStateList colorAccentState = Utils.getColorAccent(mContext); when(mActivity.obtainStyledAttributes(any())).thenReturn(typedArray); - when(typedArray.getColor(anyInt(), anyInt())).thenReturn(colorAccent); + when(typedArray.getColorStateList(anyInt())).thenReturn(colorAccentState); mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0); - verify(drawable).setTint(colorAccent); + verify(drawable).setTintList(colorAccentState); } @Test diff --git a/tests/robotests/src/com/android/settings/testutils/SliceTester.java b/tests/robotests/src/com/android/settings/testutils/SliceTester.java index d71abb3bcf6..e92d2a06c18 100644 --- a/tests/robotests/src/com/android/settings/testutils/SliceTester.java +++ b/tests/robotests/src/com/android/settings/testutils/SliceTester.java @@ -75,7 +75,7 @@ public class SliceTester { final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR); final int color = colorItem.getInt(); - assertThat(color).isEqualTo(Utils.getColorAccent(context)); + assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context)); final List toggles = metadata.getToggles(); assertThat(toggles).isEmpty(); @@ -105,7 +105,7 @@ public class SliceTester { final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR); final int color = colorItem.getInt(); - assertThat(color).isEqualTo(Utils.getColorAccent(context)); + assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context)); final List toggles = metadata.getToggles(); assertThat(toggles).hasSize(1); @@ -148,7 +148,7 @@ public class SliceTester { final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR); final int color = colorItem.getInt(); - assertThat(color).isEqualTo(Utils.getColorAccent(context)); + assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context)); final IconCompat expectedToggleIcon = IconCompat.createWithResource(context, sliceData.getIconResource()); @@ -185,7 +185,7 @@ public class SliceTester { final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR); final int color = colorItem.getInt(); - assertThat(color).isEqualTo(Utils.getColorAccent(context)); + assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context)); final List toggles = metadata.getToggles(); assertThat(toggles).isEmpty();