[Media] Simplify how we get the background color for the media player.

The color was being passed down all the way from MediaDataManager to
ColorSchemeTransition when it doesn't need to be. This moves the
background color fetch to ColorSchemeTransition, which groups it with
all the other color fetching.

Bug: 228960370
Test: atest SystemUITests
Test: manual: verify media player still looks good
Change-Id: I0a542fd68847b942c3cb1e3c4576344068a06a07
diff --git a/packages/SystemUI/src/com/android/systemui/media/ColorSchemeTransition.kt b/packages/SystemUI/src/com/android/systemui/media/ColorSchemeTransition.kt
index 8f0305f..2ae1806 100644
--- a/packages/SystemUI/src/com/android/systemui/media/ColorSchemeTransition.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/ColorSchemeTransition.kt
@@ -85,12 +85,13 @@
  */
 class ColorSchemeTransition internal constructor(
     private val context: Context,
-    bgColor: Int,
     mediaViewHolder: MediaViewHolder,
     colorTransitionFactory: ColorTransitionFactory
 ) {
-    constructor(context: Context, bgColor: Int, mediaViewHolder: MediaViewHolder) :
-        this(context, bgColor, mediaViewHolder, ::ColorTransition)
+    constructor(context: Context, mediaViewHolder: MediaViewHolder) :
+        this(context, mediaViewHolder, ::ColorTransition)
+
+    val bgColor = context.getColor(com.android.systemui.R.color.material_dynamic_secondary95)
 
     val surfaceColor = colorTransitionFactory(
         bgColor,
diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt b/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt
index 8e81831..49966a6 100644
--- a/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt
@@ -904,7 +904,6 @@
     private val EMPTY = MediaData(
             userId = -1,
             initialized = false,
-            backgroundColor = 0,
             app = null,
             appIcon = null,
             artist = null,
diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java b/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java
index 571723c..766e7b0 100644
--- a/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java
@@ -150,7 +150,6 @@
     private MediaSession.Token mToken;
     private MediaController mController;
     private Lazy<MediaDataManager> mMediaDataManagerLazy;
-    private int mBackgroundColor;
     // Uid for the media app.
     protected int mUid = Process.INVALID_UID;
     private int mSmartspaceMediaItemsCount;
@@ -343,8 +342,7 @@
         AnimatorSet exit = loadAnimator(R.anim.media_metadata_exit,
                 Interpolators.EMPHASIZED_ACCELERATE, titleText, artistText);
 
-        mColorSchemeTransition = new ColorSchemeTransition(
-            mContext, mBackgroundColor, mMediaViewHolder);
+        mColorSchemeTransition = new ColorSchemeTransition(mContext, mMediaViewHolder);
         mMetadataAnimationHandler = new MetadataAnimationHandler(exit, enter);
     }
 
@@ -409,7 +407,6 @@
         }
         mInstanceId = data.getInstanceId();
 
-        mBackgroundColor = data.getBackgroundColor();
         if (mToken == null || !mToken.equals(token)) {
             mToken = token;
         }
@@ -485,7 +482,7 @@
             Drawable icon = device.getIcon();
             if (icon instanceof AdaptiveIcon) {
                 AdaptiveIcon aIcon = (AdaptiveIcon) icon;
-                aIcon.setBackgroundColor(mBackgroundColor);
+                aIcon.setBackgroundColor(mColorSchemeTransition.getBgColor());
                 iconView.setImageDrawable(aIcon);
             } else {
                 iconView.setImageDrawable(icon);
@@ -956,11 +953,11 @@
         }
 
         mSmartspaceId = SmallHash.hash(data.getTargetId());
-        mBackgroundColor = data.getBackgroundColor();
+        int backgroundColor = data.getBackgroundColor();
         mPackageName = data.getPackageName();
         mInstanceId = data.getInstanceId();
         TransitionLayout recommendationCard = mRecommendationViewHolder.getRecommendations();
-        recommendationCard.setBackgroundTintList(ColorStateList.valueOf(mBackgroundColor));
+        recommendationCard.setBackgroundTintList(ColorStateList.valueOf(backgroundColor));
 
         List<SmartspaceAction> mediaRecommendationList = data.getRecommendations();
         if (mediaRecommendationList == null || mediaRecommendationList.isEmpty()) {
diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaData.kt b/packages/SystemUI/src/com/android/systemui/media/MediaData.kt
index f6d531b..d04ec40 100644
--- a/packages/SystemUI/src/com/android/systemui/media/MediaData.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/MediaData.kt
@@ -27,7 +27,6 @@
 data class MediaData(
     val userId: Int,
     val initialized: Boolean = false,
-    val backgroundColor: Int,
     /**
      * App name that will be displayed on the player.
      */
diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt b/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt
index cf58fc76..fd44993 100644
--- a/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt
+++ b/packages/SystemUI/src/com/android/systemui/media/MediaDataManager.kt
@@ -85,7 +85,6 @@
 private val LOADING = MediaData(
         userId = -1,
         initialized = false,
-        backgroundColor = 0,
         app = null,
         appIcon = null,
         artist = null,
@@ -177,7 +176,6 @@
 
     private val themeText = com.android.settingslib.Utils.getColorAttr(context,
             com.android.internal.R.attr.textColorPrimary).defaultColor
-    private val bgColor = context.getColor(R.color.material_dynamic_secondary95)
 
     // Internal listeners are part of the internal pipeline. External listeners (those registered
     // with [MediaDeviceManager.addListener]) receive events after they have propagated through
@@ -591,7 +589,7 @@
         val mediaAction = getResumeMediaAction(resumeAction)
         val lastActive = systemClock.elapsedRealtime()
         foregroundExecutor.execute {
-            onMediaDataLoaded(packageName, null, MediaData(userId, true, bgColor, appName,
+            onMediaDataLoaded(packageName, null, MediaData(userId, true, appName,
                     null, desc.subtitle, desc.title, artworkIcon, listOf(mediaAction), listOf(0),
                     MediaButton(playOrPause = mediaAction), packageName, token, appIntent,
                     device = null, active = false,
@@ -713,7 +711,7 @@
             val resumeAction: Runnable? = mediaEntries[key]?.resumeAction
             val hasCheckedForResume = mediaEntries[key]?.hasCheckedForResume == true
             val active = mediaEntries[key]?.active ?: true
-            onMediaDataLoaded(key, oldKey, MediaData(sbn.normalizedUserId, true, bgColor, app,
+            onMediaDataLoaded(key, oldKey, MediaData(sbn.normalizedUserId, true, app,
                     smallIcon, artist, song, artWorkIcon, actionIcons, actionsToShowCollapsed,
                     semanticActions, sbn.packageName, token, notif.contentIntent, device,
                     active, resumeAction = resumeAction, playbackLocation = playbackLocation,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/ColorSchemeTransitionTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/ColorSchemeTransitionTest.kt
index 86527d9..8f967ab 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/ColorSchemeTransitionTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/ColorSchemeTransitionTest.kt
@@ -38,7 +38,6 @@
 
 private const val DEFAULT_COLOR = Color.RED
 private const val TARGET_COLOR = Color.BLUE
-private const val BG_COLOR = Color.GREEN
 
 @SmallTest
 @RunWith(AndroidTestingRunner::class)
@@ -66,8 +65,7 @@
         transitionFactory = { default, extractColor, applyColor -> mockTransition }
         whenever(extractColor.invoke(colorScheme)).thenReturn(TARGET_COLOR)
 
-        colorSchemeTransition = ColorSchemeTransition(context,
-                BG_COLOR, mediaViewHolder, transitionFactory)
+        colorSchemeTransition = ColorSchemeTransition(context, mediaViewHolder, transitionFactory)
 
         colorTransition = object : ColorTransition(DEFAULT_COLOR, extractColor, applyColor) {
             override fun buildAnimator(): ValueAnimator {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt
index df9da0e..33db993 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt
@@ -90,7 +90,6 @@
 import org.mockito.junit.MockitoJUnit
 
 private const val KEY = "TEST_KEY"
-private const val BG_COLOR = Color.RED
 private const val PACKAGE = "PKG"
 private const val ARTIST = "ARTIST"
 private const val TITLE = "TITLE"
@@ -247,7 +246,6 @@
         session.setActive(true)
 
         mediaData = MediaTestUtils.emptyMediaData.copy(
-                backgroundColor = BG_COLOR,
                 artist = ARTIST,
                 song = TITLE,
                 packageName = PACKAGE,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/MediaDataCombineLatestTest.java b/packages/SystemUI/tests/src/com/android/systemui/media/MediaDataCombineLatestTest.java
index eacec20..3e335c5 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/MediaDataCombineLatestTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/MediaDataCombineLatestTest.java
@@ -57,7 +57,6 @@
     private static final String OLD_KEY = "TEST_KEY_OLD";
     private static final String APP = "APP";
     private static final String PACKAGE = "PKG";
-    private static final int BG_COLOR = Color.RED;
     private static final String ARTIST = "ARTIST";
     private static final String TITLE = "TITLE";
     private static final String DEVICE_NAME = "DEVICE_NAME";
@@ -76,7 +75,7 @@
         mManager.addListener(mListener);
 
         mMediaData = new MediaData(
-                USER_ID, true, BG_COLOR, APP, null, ARTIST, TITLE, null,
+                USER_ID, true, APP, null, ARTIST, TITLE, null,
                 new ArrayList<>(), new ArrayList<>(), null, PACKAGE, null, null, null, true, null,
                 MediaData.PLAYBACK_LOCAL, false, KEY, false, false, false, 0L,
                 InstanceId.fakeInstanceId(-1), -1);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/MediaTestUtils.kt b/packages/SystemUI/tests/src/com/android/systemui/media/MediaTestUtils.kt
index c7ef94e..ae58fe6 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/MediaTestUtils.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/MediaTestUtils.kt
@@ -7,7 +7,6 @@
         val emptyMediaData = MediaData(
             userId = 0,
             initialized = true,
-            backgroundColor = 0,
             app = null,
             appIcon = null,
             artist = null,