From 1747dbbc403cde4ba204402b9208f714f30bdfb7 Mon Sep 17 00:00:00 2001 From: timhypeng Date: Mon, 21 Sep 2020 17:14:04 +0800 Subject: [PATCH] Add dismiss intent and method for MediaOutputDialog -Add filter in Manifest -Add dismiss method in MediaOutputDialogFactory Bug: 155822415 Test: build pass Merged-In: Ica5b5a22e0fa20ffec5ab9ea291f72c06e39c2fe Change-Id: Ica5b5a22e0fa20ffec5ab9ea291f72c06e39c2fe --- packages/SystemUI/AndroidManifest.xml | 1 + .../media/dialog/MediaOutputDialogFactory.kt | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index f20d05c25d727..ce1eea0a715ce 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -785,6 +785,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 + } }