Merge "Check ongoing flag for media control dismissal" into tm-qpr-dev am: f5fb9c6346

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20965591

Change-Id: I5f771d28243151a9723c1fef36e30f6e3bb5c952
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Beth Thibodeau
2023-01-13 21:21:23 +00:00
committed by Automerger Merge Worker
2 changed files with 35 additions and 1 deletions

View File

@@ -863,7 +863,7 @@ class MediaDataManager(
notificationKey = key,
hasCheckedForResume = hasCheckedForResume,
isPlaying = isPlaying,
isClearable = sbn.isClearable(),
isClearable = !sbn.isOngoing,
lastActive = lastActive,
instanceId = instanceId,
appUid = appUid,

View File

@@ -17,6 +17,7 @@
package com.android.systemui.media.controls.pipeline
import android.app.Notification
import android.app.Notification.FLAG_NO_CLEAR
import android.app.Notification.MediaStyle
import android.app.PendingIntent
import android.app.smartspace.SmartspaceAction
@@ -1451,6 +1452,39 @@ class MediaDataManagerTest : SysuiTestCase() {
assertThat(mediaDataCaptor.value.semanticActions).isNull()
}
@Test
fun testNoClearNotOngoing_canDismiss() {
mediaNotification =
SbnBuilder().run {
setPkg(PACKAGE_NAME)
modifyNotification(context).also {
it.setSmallIcon(android.R.drawable.ic_media_pause)
it.setStyle(MediaStyle().apply { setMediaSession(session.sessionToken) })
it.setOngoing(false)
it.setFlag(FLAG_NO_CLEAR, true)
}
build()
}
addNotificationAndLoad()
assertThat(mediaDataCaptor.value.isClearable).isTrue()
}
@Test
fun testOngoing_cannotDismiss() {
mediaNotification =
SbnBuilder().run {
setPkg(PACKAGE_NAME)
modifyNotification(context).also {
it.setSmallIcon(android.R.drawable.ic_media_pause)
it.setStyle(MediaStyle().apply { setMediaSession(session.sessionToken) })
it.setOngoing(true)
}
build()
}
addNotificationAndLoad()
assertThat(mediaDataCaptor.value.isClearable).isFalse()
}
/** Helper function to add a media notification and capture the resulting MediaData */
private fun addNotificationAndLoad() {
mediaDataManager.onNotificationAdded(KEY, mediaNotification)