From 3768c925b21575816cf7f97ed10fd152506bf5d1 Mon Sep 17 00:00:00 2001 From: gianlucaparadise Date: Mon, 1 Nov 2021 16:39:11 +0100 Subject: [PATCH] Pigeon: Integrated `showCastDialog` API in Android and iOS --- .../FlutterCastFrameworkPlugin.kt | 28 ++++++++----------- .../flutter_cast_framework/MethodNames.kt | 1 - ios/Classes/MethodNames.swift | 3 +- .../SwiftFlutterCastFrameworkPlugin.swift | 11 ++++---- 4 files changed, 18 insertions(+), 25 deletions(-) diff --git a/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/FlutterCastFrameworkPlugin.kt b/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/FlutterCastFrameworkPlugin.kt index 0e823c4..3d65295 100644 --- a/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/FlutterCastFrameworkPlugin.kt +++ b/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/FlutterCastFrameworkPlugin.kt @@ -153,22 +153,8 @@ class FlutterCastFrameworkPlugin : FlutterPlugin, MethodCallHandler, ActivityAwa //endregion override fun onMethodCall(call: MethodCall, result: Result) { - val method = call.method - val arguments = call.arguments - - when (method) { - MethodNames.showCastDialog -> { - val context = applicationContext - val activity = this.activity - if (context == null || activity == null) { - Log.d(TAG, "onMethodCall - missing context") - return - } - - CastDialogOpener.showCastDialog(context, activity) - } - else -> result.notImplemented() - } + Log.d(TAG, "onMethodCall - ${call.method} not implemented") + result.notImplemented() } private inner class MyApi : HostApis.CastApi { @@ -176,6 +162,16 @@ class FlutterCastFrameworkPlugin : FlutterPlugin, MethodCallHandler, ActivityAwa mMessageCastingChannel?.sendMessage(mCastSession, message) } + override fun showCastDialog() { + val context = applicationContext + val activity = activity + if (context == null || activity == null) { + Log.d(TAG, "showCastDialog - missing context") + return + } + + CastDialogOpener.showCastDialog(context, activity) + } } private inner class NamespaceResult(val oldSession: CastSession?, val newSession: CastSession?) : Result { diff --git a/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/MethodNames.kt b/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/MethodNames.kt index 70026c2..d04be91 100644 --- a/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/MethodNames.kt +++ b/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/MethodNames.kt @@ -2,7 +2,6 @@ package com.gianlucaparadise.flutter_cast_framework object MethodNames { const val onCastStateChanged = "CastContext.onCastStateChanged" - const val showCastDialog = "showCastDialog" // region SessionManager const val onSessionStarting = "SessionManager.onSessionStarting" diff --git a/ios/Classes/MethodNames.swift b/ios/Classes/MethodNames.swift index d02b0dc..c0ea31b 100644 --- a/ios/Classes/MethodNames.swift +++ b/ios/Classes/MethodNames.swift @@ -9,8 +9,7 @@ import Foundation enum MethodNames : String { case onCastStateChanged = "CastContext.onCastStateChanged" - case showCastDialog = "showCastDialog" - + // region SessionManager case onSessionStarting = "SessionManager.onSessionStarting" case onSessionStarted = "SessionManager.onSessionStarted" diff --git a/ios/Classes/SwiftFlutterCastFrameworkPlugin.swift b/ios/Classes/SwiftFlutterCastFrameworkPlugin.swift index aca0bdb..b13cc8b 100644 --- a/ios/Classes/SwiftFlutterCastFrameworkPlugin.swift +++ b/ios/Classes/SwiftFlutterCastFrameworkPlugin.swift @@ -111,12 +111,7 @@ public class SwiftFlutterCastFrameworkPlugin: NSObject, FlutterPlugin, GCKSessio } public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) { - switch call.method { - case MethodNames.showCastDialog.rawValue: - castContext.presentCastDialog() - default: - print("Method [\(call.method)] is not implemented.") - } + print("Method [\(call.method)] is not implemented.") } deinit { @@ -129,6 +124,10 @@ public class SwiftFlutterCastFrameworkPlugin: NSObject, FlutterPlugin, GCKSessio MessageCastingChannel.sendMessage(allCastingChannels: self.castingChannels, castMessage: message) } + public func showCastDialogWithError(_ error: AutoreleasingUnsafeMutablePointer) { + castContext.presentCastDialog() + } + // MARK: - GCKSessionManagerListener // onSessionSuspended