diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index a1b9dcd9c0283..cf78a131d6fb6 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -776,6 +776,7 @@ android:exported="true"> + diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogFactory.kt b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogFactory.kt index bc1dca58990d3..4cdca4cbcf1e1 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogFactory.kt +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogFactory.kt @@ -33,10 +33,22 @@ class MediaOutputDialogFactory @Inject constructor( private val shadeController: ShadeController, private val starter: ActivityStarter ) { + companion object { + var mediaOutputDialog: MediaOutputDialog? = null + } + /** Creates a [MediaOutputDialog] for the given package. */ fun create(packageName: String, aboveStatusBar: Boolean) { - MediaOutputController(context, packageName, mediaSessionManager, lbm, shadeController, - starter).run { + mediaOutputDialog?.dismiss() + + mediaOutputDialog = MediaOutputController(context, packageName, mediaSessionManager, lbm, + shadeController, starter).run { MediaOutputDialog(context, aboveStatusBar, this) } } + + /** dismiss [MediaOutputDialog] if exist. */ + fun dismiss() { + mediaOutputDialog?.dismiss() + mediaOutputDialog = null + } }