Loading packages/SystemUI/res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -2782,6 +2782,8 @@ <string name="controls_media_title">Media</string> <!-- Explanation for closing controls associated with a specific media session [CHAR_LIMIT=NONE] --> <string name="controls_media_close_session">Hide the current session.</string> <!-- Explanation that controls associated with a specific media session are active [CHAR_LIMIT=NONE] --> <string name="controls_media_active_session">Current session cannot be hidden.</string> <!-- Label for a button that will hide media controls [CHAR_LIMIT=30] --> <string name="controls_media_dismiss_button">Dismiss</string> <!-- Label for button to resume media playback [CHAR_LIMIT=NONE] --> Loading packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java +8 −0 Original line number Diff line number Diff line Loading @@ -354,7 +354,15 @@ public class MediaControlPanel { final MediaController controller = getController(); mBackgroundExecutor.execute(() -> mSeekBarViewModel.updateController(controller)); // Guts label boolean isDismissible = data.isClearable(); mViewHolder.getSettingsText().setText(isDismissible ? R.string.controls_media_close_session : R.string.controls_media_active_session); // Dismiss mViewHolder.getDismissLabel().setAlpha(isDismissible ? 1 : DISABLED_ALPHA); mViewHolder.getDismiss().setEnabled(isDismissible); mViewHolder.getDismiss().setOnClickListener(v -> { if (mKey != null) { closeGuts(); Loading packages/SystemUI/src/com/android/systemui/media/PlayerViewHolder.kt +3 −1 Original line number Diff line number Diff line Loading @@ -60,8 +60,10 @@ class PlayerViewHolder private constructor(itemView: View) { val action4 = itemView.requireViewById<ImageButton>(R.id.action4) // Settings screen val settingsText = itemView.requireViewById<TextView>(R.id.remove_text) val cancel = itemView.requireViewById<View>(R.id.cancel) val dismiss = itemView.requireViewById<View>(R.id.dismiss) val dismiss = itemView.requireViewById<ViewGroup>(R.id.dismiss) val dismissLabel = dismiss.getChildAt(0) val settings = itemView.requireViewById<View>(R.id.settings) init { Loading packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt +21 −2 Original line number Diff line number Diff line Loading @@ -111,9 +111,11 @@ public class MediaControlPanelTest : SysuiTestCase() { private lateinit var action2: ImageButton private lateinit var action3: ImageButton private lateinit var action4: ImageButton private lateinit var settingsText: TextView private lateinit var settings: View private lateinit var cancel: View private lateinit var dismiss: View private lateinit var dismiss: FrameLayout private lateinit var dismissLabel: View private lateinit var session: MediaSession private val device = MediaDeviceData(true, null, DEVICE_NAME) Loading Loading @@ -171,12 +173,16 @@ public class MediaControlPanelTest : SysuiTestCase() { whenever(holder.action3).thenReturn(action3) action4 = ImageButton(context) whenever(holder.action4).thenReturn(action4) settingsText = TextView(context) whenever(holder.settingsText).thenReturn(settingsText) settings = View(context) whenever(holder.settings).thenReturn(settings) cancel = View(context) whenever(holder.cancel).thenReturn(cancel) dismiss = View(context) dismiss = FrameLayout(context) whenever(holder.dismiss).thenReturn(dismiss) dismissLabel = View(context) whenever(holder.dismissLabel).thenReturn(dismissLabel) // Create media session val metadataBuilder = MediaMetadata.Builder().apply { Loading Loading @@ -330,6 +336,7 @@ public class MediaControlPanelTest : SysuiTestCase() { notificationKey = KEY) player.bind(state, mediaKey) assertThat(dismiss.isEnabled).isEqualTo(true) dismiss.callOnClick() val captor = ArgumentCaptor.forClass(ActivityStarter.OnDismissAction::class.java) verify(keyguardDismissUtil).executeWhenUnlocked(captor.capture(), anyBoolean()) Loading @@ -337,4 +344,16 @@ public class MediaControlPanelTest : SysuiTestCase() { captor.value.onDismiss() verify(mediaDataManager).dismissMediaData(eq(mediaKey), anyLong()) } @Test fun dismissButtonDisabled() { val mediaKey = "key for dismissal" player.attach(holder) val state = MediaData(USER_ID, true, BG_COLOR, APP, null, ARTIST, TITLE, null, emptyList(), emptyList(), PACKAGE, session.getSessionToken(), null, null, true, null, isClearable = false, notificationKey = KEY) player.bind(state, mediaKey) assertThat(dismiss.isEnabled).isEqualTo(false) } } Loading
packages/SystemUI/res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -2782,6 +2782,8 @@ <string name="controls_media_title">Media</string> <!-- Explanation for closing controls associated with a specific media session [CHAR_LIMIT=NONE] --> <string name="controls_media_close_session">Hide the current session.</string> <!-- Explanation that controls associated with a specific media session are active [CHAR_LIMIT=NONE] --> <string name="controls_media_active_session">Current session cannot be hidden.</string> <!-- Label for a button that will hide media controls [CHAR_LIMIT=30] --> <string name="controls_media_dismiss_button">Dismiss</string> <!-- Label for button to resume media playback [CHAR_LIMIT=NONE] --> Loading
packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java +8 −0 Original line number Diff line number Diff line Loading @@ -354,7 +354,15 @@ public class MediaControlPanel { final MediaController controller = getController(); mBackgroundExecutor.execute(() -> mSeekBarViewModel.updateController(controller)); // Guts label boolean isDismissible = data.isClearable(); mViewHolder.getSettingsText().setText(isDismissible ? R.string.controls_media_close_session : R.string.controls_media_active_session); // Dismiss mViewHolder.getDismissLabel().setAlpha(isDismissible ? 1 : DISABLED_ALPHA); mViewHolder.getDismiss().setEnabled(isDismissible); mViewHolder.getDismiss().setOnClickListener(v -> { if (mKey != null) { closeGuts(); Loading
packages/SystemUI/src/com/android/systemui/media/PlayerViewHolder.kt +3 −1 Original line number Diff line number Diff line Loading @@ -60,8 +60,10 @@ class PlayerViewHolder private constructor(itemView: View) { val action4 = itemView.requireViewById<ImageButton>(R.id.action4) // Settings screen val settingsText = itemView.requireViewById<TextView>(R.id.remove_text) val cancel = itemView.requireViewById<View>(R.id.cancel) val dismiss = itemView.requireViewById<View>(R.id.dismiss) val dismiss = itemView.requireViewById<ViewGroup>(R.id.dismiss) val dismissLabel = dismiss.getChildAt(0) val settings = itemView.requireViewById<View>(R.id.settings) init { Loading
packages/SystemUI/tests/src/com/android/systemui/media/MediaControlPanelTest.kt +21 −2 Original line number Diff line number Diff line Loading @@ -111,9 +111,11 @@ public class MediaControlPanelTest : SysuiTestCase() { private lateinit var action2: ImageButton private lateinit var action3: ImageButton private lateinit var action4: ImageButton private lateinit var settingsText: TextView private lateinit var settings: View private lateinit var cancel: View private lateinit var dismiss: View private lateinit var dismiss: FrameLayout private lateinit var dismissLabel: View private lateinit var session: MediaSession private val device = MediaDeviceData(true, null, DEVICE_NAME) Loading Loading @@ -171,12 +173,16 @@ public class MediaControlPanelTest : SysuiTestCase() { whenever(holder.action3).thenReturn(action3) action4 = ImageButton(context) whenever(holder.action4).thenReturn(action4) settingsText = TextView(context) whenever(holder.settingsText).thenReturn(settingsText) settings = View(context) whenever(holder.settings).thenReturn(settings) cancel = View(context) whenever(holder.cancel).thenReturn(cancel) dismiss = View(context) dismiss = FrameLayout(context) whenever(holder.dismiss).thenReturn(dismiss) dismissLabel = View(context) whenever(holder.dismissLabel).thenReturn(dismissLabel) // Create media session val metadataBuilder = MediaMetadata.Builder().apply { Loading Loading @@ -330,6 +336,7 @@ public class MediaControlPanelTest : SysuiTestCase() { notificationKey = KEY) player.bind(state, mediaKey) assertThat(dismiss.isEnabled).isEqualTo(true) dismiss.callOnClick() val captor = ArgumentCaptor.forClass(ActivityStarter.OnDismissAction::class.java) verify(keyguardDismissUtil).executeWhenUnlocked(captor.capture(), anyBoolean()) Loading @@ -337,4 +344,16 @@ public class MediaControlPanelTest : SysuiTestCase() { captor.value.onDismiss() verify(mediaDataManager).dismissMediaData(eq(mediaKey), anyLong()) } @Test fun dismissButtonDisabled() { val mediaKey = "key for dismissal" player.attach(holder) val state = MediaData(USER_ID, true, BG_COLOR, APP, null, ARTIST, TITLE, null, emptyList(), emptyList(), PACKAGE, session.getSessionToken(), null, null, true, null, isClearable = false, notificationKey = KEY) player.bind(state, mediaKey) assertThat(dismiss.isEnabled).isEqualTo(false) } }