diff --git a/android/app/src/main/kotlin/com/example/kryz_go_flutter/MainActivity.kt b/android/app/src/main/kotlin/com/example/kryz_go_flutter/MainActivity.kt index 9b80c66..368255e 100644 --- a/android/app/src/main/kotlin/com/example/kryz_go_flutter/MainActivity.kt +++ b/android/app/src/main/kotlin/com/example/kryz_go_flutter/MainActivity.kt @@ -186,6 +186,9 @@ class MainActivity : AudioServiceActivity(), MethodChannel.MethodCallHandler, Ev chooserDialog = MediaRouteChooserDialog(themedContext) chooserDialog?.routeSelector = routeSelector chooserDialog?.setCanceledOnTouchOutside(true) + chooserDialog?.setOnDismissListener { + handlePickerDismissed() + } chooserDialog?.show() emitStatus("connecting") @@ -194,6 +197,17 @@ class MainActivity : AudioServiceActivity(), MethodChannel.MethodCallHandler, Ev } } + private fun handlePickerDismissed() { + chooserDialog = null + + val currentSession = castContext?.sessionManager?.currentCastSession + val currentStatus = statusPayload["status"] as? String + + if (currentSession == null && currentStatus == "connecting") { + emitStatus("idle") + } + } + private fun startCastingLiveStream(call: MethodCall, result: MethodChannel.Result) { val arguments = call.arguments as? Map<*, *> if (arguments == null) {