Guard MediaDeviceManager.Entry against successive stop calls am: ae173fef18

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

Change-Id: Ie343026b0e079607b19cf55614e1c838ddbb7feb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Santiago Seifert
2022-09-23 22:34:16 +00:00
committed by Automerger Merge Worker

View File

@@ -188,24 +188,28 @@ class MediaDeviceManager @Inject constructor(
@AnyThread
fun start() = bgExecutor.execute {
localMediaManager.registerCallback(this)
localMediaManager.startScan()
muteAwaitConnectionManager?.startListening()
playbackType = controller?.playbackInfo?.playbackType ?: PLAYBACK_TYPE_UNKNOWN
controller?.registerCallback(this)
updateCurrent()
started = true
configurationController.addCallback(configListener)
if (!started) {
localMediaManager.registerCallback(this)
localMediaManager.startScan()
muteAwaitConnectionManager?.startListening()
playbackType = controller?.playbackInfo?.playbackType ?: PLAYBACK_TYPE_UNKNOWN
controller?.registerCallback(this)
updateCurrent()
started = true
configurationController.addCallback(configListener)
}
}
@AnyThread
fun stop() = bgExecutor.execute {
started = false
controller?.unregisterCallback(this)
localMediaManager.stopScan()
localMediaManager.unregisterCallback(this)
muteAwaitConnectionManager?.stopListening()
configurationController.removeCallback(configListener)
if (started) {
started = false
controller?.unregisterCallback(this)
localMediaManager.stopScan()
localMediaManager.unregisterCallback(this)
muteAwaitConnectionManager?.stopListening()
configurationController.removeCallback(configListener)
}
}
fun dump(pw: PrintWriter) {