From d97c5a6b729c5d055a84988d418e00c8962ca518 Mon Sep 17 00:00:00 2001 From: shaoweishen Date: Wed, 16 Feb 2022 12:26:26 +0000 Subject: [PATCH] [Output Switcher] Update Text Color Bug: 210082425 Test: Verified on device Change-Id: Id454c7da48aedcb623b6ae7e299046d7c517bdae --- packages/SystemUI/res/values-night/colors.xml | 8 ++++---- .../media/dialog/MediaOutputBaseAdapter.java | 12 ++++++++++-- .../media/dialog/MediaOutputController.java | 15 ++++++++++++--- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/packages/SystemUI/res/values-night/colors.xml b/packages/SystemUI/res/values-night/colors.xml index b318bbc157cae..f1e93c274e400 100644 --- a/packages/SystemUI/res/values-night/colors.xml +++ b/packages/SystemUI/res/values-night/colors.xml @@ -67,10 +67,10 @@ @android:color/system_neutral1_900 - @android:color/system_accent2_800 - @android:color/system_accent1_100 - @android:color/system_accent1_100 - @android:color/system_neutral2_800 + @android:color/system_neutral1_900 + @android:color/system_neutral1_900 + @android:color/system_neutral1_900 + @android:color/system_accent2_50 #ffcccccc diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java index 85d179512de90..1f11d0c62bd74 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBaseAdapter.java @@ -177,6 +177,9 @@ public abstract class MediaOutputBaseAdapter extends .mutate() : mContext.getDrawable( R.drawable.media_output_item_background) .mutate(); + backgroundDrawable.setColorFilter(new PorterDuffColorFilter( + mController.getColorItemBackground(), + PorterDuff.Mode.SRC_IN)); mItemLayout.setBackground(backgroundDrawable); mProgressBar.setVisibility(showProgressBar ? View.VISIBLE : View.GONE); mSeekBar.setAlpha(1); @@ -212,8 +215,13 @@ public abstract class MediaOutputBaseAdapter extends mStatusIcon.setVisibility(showStatus ? View.VISIBLE : View.GONE); mSeekBar.setAlpha(1); mSeekBar.setVisibility(showSeekBar ? View.VISIBLE : View.GONE); - mItemLayout.setBackground(mContext.getDrawable(R.drawable.media_output_item_background) - .mutate()); + final Drawable backgroundDrawable = mContext.getDrawable( + R.drawable.media_output_item_background) + .mutate(); + backgroundDrawable.setColorFilter(new PorterDuffColorFilter( + mController.getColorItemBackground(), + PorterDuff.Mode.SRC_IN)); + mItemLayout.setBackground(backgroundDrawable); mProgressBar.setVisibility(showProgressBar ? View.VISIBLE : View.GONE); mSubTitleText.setVisibility(showSubtitle ? View.VISIBLE : View.GONE); mTwoLineTitleText.setTranslationY(0); diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java index e141cccc5b0f8..82d6b63ed899b 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java @@ -111,6 +111,7 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { private int mColorInactiveItem; private int mColorSeekbarProgress; private int mColorButtonBackground; + private int mColorItemBackground; @Inject public MediaOutputController(@NonNull Context context, String packageName, @@ -142,6 +143,8 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { android.R.color.system_accent1_200); mColorButtonBackground = Utils.getColorStateListDefaultColor(mContext, R.color.media_dialog_item_background); + mColorItemBackground = Utils.getColorStateListDefaultColor(mContext, + android.R.color.system_accent2_50); } void start(@NonNull Callback cb) { @@ -350,14 +353,16 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { isDarkTheme); if (isDarkTheme) { mColorActiveItem = mCurrentColorScheme.getNeutral1().get(10); - mColorInactiveItem = mCurrentColorScheme.getAccent1().get(2); - mColorSeekbarProgress = mCurrentColorScheme.getAccent1().get(3); + mColorInactiveItem = mCurrentColorScheme.getNeutral1().get(10); + mColorSeekbarProgress = mCurrentColorScheme.getAccent1().get(2); mColorButtonBackground = mCurrentColorScheme.getAccent1().get(2); + mColorItemBackground = mCurrentColorScheme.getAccent2().get(0); } else { mColorActiveItem = mCurrentColorScheme.getNeutral1().get(10); mColorInactiveItem = mCurrentColorScheme.getAccent1().get(7); mColorSeekbarProgress = mCurrentColorScheme.getAccent1().get(3); - mColorButtonBackground = mCurrentColorScheme.getAccent2().get(1); + mColorButtonBackground = mCurrentColorScheme.getAccent1().get(3); + mColorItemBackground = mCurrentColorScheme.getAccent2().get(0); } } @@ -377,6 +382,10 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback { return mColorButtonBackground; } + public int getColorItemBackground() { + return mColorItemBackground; + } + private void buildMediaDevices(List devices) { // For the first time building list, to make sure the top device is the connected device. if (mMediaDevices.isEmpty()) {