diff --git a/packages/SystemUI/res/drawable/ic_hardware_speaker.xml b/packages/SystemUI/res/drawable/ic_hardware_speaker.xml
deleted file mode 100644
index 0081e56a45f21..0000000000000
--- a/packages/SystemUI/res/drawable/ic_hardware_speaker.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
diff --git a/packages/SystemUI/res/layout/media_view.xml b/packages/SystemUI/res/layout/media_view.xml
index d0f9332f2ccf7..c17b0c8580ca0 100644
--- a/packages/SystemUI/res/layout/media_view.xml
+++ b/packages/SystemUI/res/layout/media_view.xml
@@ -122,6 +122,23 @@
android:textSize="14sp" />
+
+
+
+
16dp
52dp
20dp
+ 20dp
+ 18dp
+ 16dp
16dp
22dp
diff --git a/packages/SystemUI/res/xml/media_collapsed.xml b/packages/SystemUI/res/xml/media_collapsed.xml
index 57e6f36357857..0e886d6fa0b80 100644
--- a/packages/SystemUI/res/xml/media_collapsed.xml
+++ b/packages/SystemUI/res/xml/media_collapsed.xml
@@ -36,7 +36,7 @@
android:layout_marginTop="20dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@id/icon"
- app:layout_constraintEnd_toStartOf="@id/media_seamless"
+ app:layout_constraintEnd_toStartOf="@id/media_seamless_barrier"
app:layout_constraintHorizontal_bias="0"
/>
@@ -51,6 +51,18 @@
android:layout_marginEnd="@dimen/qs_media_panel_outer_padding"
/>
+
+
@@ -51,6 +51,18 @@
android:layout_marginEnd="@dimen/qs_media_panel_outer_padding"
/>
+
+
(R.id.media_seamless)
val seamlessIcon = itemView.requireViewById(R.id.media_seamless_image)
val seamlessText = itemView.requireViewById(R.id.media_seamless_text)
+ val seamlessFallback = itemView.requireViewById(R.id.media_seamless_fallback)
// Seek bar
val seekBar = itemView.requireViewById(R.id.media_progress_bar)
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 e6a41fbac3b55..a297f32b9c342 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt
@@ -25,6 +25,7 @@ import android.media.session.MediaSession
import android.media.session.PlaybackState
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
+import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.ImageButton
@@ -79,6 +80,8 @@ public class MediaControlPanelTest : SysuiTestCase() {
@Mock private lateinit var seekBarViewModel: SeekBarViewModel
@Mock private lateinit var seekBarData: LiveData
@Mock private lateinit var mediaViewController: MediaViewController
+ @Mock private lateinit var expandedSet: ConstraintSet
+ @Mock private lateinit var collapsedSet: ConstraintSet
private lateinit var appIcon: ImageView
private lateinit var appName: TextView
private lateinit var albumView: ImageView
@@ -87,6 +90,7 @@ public class MediaControlPanelTest : SysuiTestCase() {
private lateinit var seamless: ViewGroup
private lateinit var seamlessIcon: ImageView
private lateinit var seamlessText: TextView
+ private lateinit var seamlessFallback: ImageView
private lateinit var seekBar: SeekBar
private lateinit var elapsedTimeView: TextView
private lateinit var totalTimeView: TextView
@@ -105,8 +109,8 @@ public class MediaControlPanelTest : SysuiTestCase() {
@Before
fun setUp() {
bgExecutor = FakeExecutor(FakeSystemClock())
- whenever(mediaViewController.expandedLayout).thenReturn(mock(ConstraintSet::class.java))
- whenever(mediaViewController.collapsedLayout).thenReturn(mock(ConstraintSet::class.java))
+ whenever(mediaViewController.expandedLayout).thenReturn(expandedSet)
+ whenever(mediaViewController.collapsedLayout).thenReturn(collapsedSet)
player = MediaControlPanel(context, bgExecutor, activityStarter, mediaViewController,
seekBarViewModel)
@@ -133,6 +137,8 @@ public class MediaControlPanelTest : SysuiTestCase() {
whenever(holder.seamlessIcon).thenReturn(seamlessIcon)
seamlessText = TextView(context)
whenever(holder.seamlessText).thenReturn(seamlessText)
+ seamlessFallback = ImageView(context)
+ whenever(holder.seamlessFallback).thenReturn(seamlessFallback)
seekBar = SeekBar(context)
whenever(holder.seekBar).thenReturn(seekBar)
elapsedTimeView = TextView(context)
@@ -214,13 +220,16 @@ public class MediaControlPanelTest : SysuiTestCase() {
@Test
fun bindDisabledDevice() {
+ seamless.id = 1
+ seamlessFallback.id = 2
player.attach(holder)
val state = MediaData(true, BG_COLOR, APP, null, ARTIST, TITLE, null, emptyList(),
emptyList(), PACKAGE, session.getSessionToken(), null, disabledDevice, true, null)
player.bind(state)
- assertThat(seamless.isEnabled()).isFalse()
- assertThat(seamlessText.getText()).isEqualTo(context.getResources().getString(
- R.string.media_seamless_remote_device))
+ verify(expandedSet).setVisibility(seamless.id, View.GONE)
+ verify(expandedSet).setVisibility(seamlessFallback.id, View.VISIBLE)
+ verify(collapsedSet).setVisibility(seamless.id, View.GONE)
+ verify(collapsedSet).setVisibility(seamlessFallback.id, View.VISIBLE)
}
@Test