From 5827d129f6ef7d241949de8e084593db21accf46 Mon Sep 17 00:00:00 2001 From: kfj001 Date: Fri, 15 May 2026 07:13:54 +0000 Subject: [PATCH] Fixes bug where canceling cast dialog would lockout cast button --- .../com/example/kryz_go_flutter/MainActivity.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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) {