Pigeon: Integrated onCastStateChanged API
This commit is contained in:
parent
c7dfd746d7
commit
925ff7a0dc
7 changed files with 12 additions and 15 deletions
|
|
@ -61,7 +61,7 @@ class FlutterCastFrameworkPlugin : FlutterPlugin, MethodCallHandler, ActivityAwa
|
|||
|
||||
CastContext.getSharedInstance(applicationContext).addCastStateListener { i ->
|
||||
Log.d(TAG, "Cast state changed: $i")
|
||||
methodChannel.invokeMethod(MethodNames.onCastStateChanged, i)
|
||||
flutterApi?.onCastStateChanged(i.toLong(), null)
|
||||
}
|
||||
|
||||
mSessionManager = CastContext.getSharedInstance(applicationContext).sessionManager
|
||||
|
|
@ -139,7 +139,7 @@ class FlutterCastFrameworkPlugin : FlutterPlugin, MethodCallHandler, ActivityAwa
|
|||
return
|
||||
}
|
||||
val castState = CastContext.getSharedInstance(context).castState
|
||||
channel?.invokeMethod(MethodNames.onCastStateChanged, castState)
|
||||
flutterApi?.onCastStateChanged(castState.toLong()) { }
|
||||
}
|
||||
|
||||
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
package com.gianlucaparadise.flutter_cast_framework
|
||||
|
||||
object MethodNames {
|
||||
const val onCastStateChanged = "CastContext.onCastStateChanged"
|
||||
|
||||
// region SessionManager
|
||||
const val onSessionStarting = "SessionManager.onSessionStarting"
|
||||
const val onSessionStarted = "SessionManager.onSessionStarted"
|
||||
|
|
|
|||
|
|
@ -8,8 +8,6 @@
|
|||
import Foundation
|
||||
|
||||
enum MethodNames : String {
|
||||
case onCastStateChanged = "CastContext.onCastStateChanged"
|
||||
|
||||
// region SessionManager
|
||||
case onSessionStarting = "SessionManager.onSessionStarting"
|
||||
case onSessionStarted = "SessionManager.onSessionStarted"
|
||||
|
|
|
|||
|
|
@ -107,7 +107,9 @@ public class SwiftFlutterCastFrameworkPlugin: NSObject, FlutterPlugin, GCKSessio
|
|||
let castStateRaw = castState.rawValue
|
||||
// Android CastStates are 1-to-4, while iOS CastStates are 0-to-3. I align iOS to Android by adding 1
|
||||
let castStateRawAdjusted = castStateRaw + 1
|
||||
self.channel.invokeMethod(MethodNames.onCastStateChanged.rawValue, arguments: castStateRawAdjusted)
|
||||
self.flutterApi.onCastStateChangedCastState(NSNumber(value: castStateRawAdjusted)) { (_: Error?) in
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
class PlatformMethodNames {
|
||||
static const onCastStateChanged = "CastContext.onCastStateChanged";
|
||||
|
||||
static const onSessionStarting = "SessionManager.onSessionStarting";
|
||||
static const onSessionStarted = "SessionManager.onSessionStarted";
|
||||
static const onSessionStartFailed = "SessionManager.onSessionStartFailed";
|
||||
|
|
|
|||
|
|
@ -12,8 +12,7 @@ class CastContext {
|
|||
castApi.showCastDialog();
|
||||
}
|
||||
|
||||
void onCastStateChanged(dynamic arguments) {
|
||||
int castState = arguments;
|
||||
void onCastStateChanged(int castState) {
|
||||
state.value = CastState.values[castState];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,10 +23,6 @@ class FlutterCastFramework {
|
|||
debugPrint("Method call on flutter: $method $arguments");
|
||||
|
||||
switch (method) {
|
||||
case PlatformMethodNames.onCastStateChanged:
|
||||
castContext.onCastStateChanged(arguments);
|
||||
break;
|
||||
|
||||
case PlatformMethodNames.onSessionStarting:
|
||||
case PlatformMethodNames.onSessionStarted:
|
||||
case PlatformMethodNames.onSessionStartFailed:
|
||||
|
|
@ -72,4 +68,10 @@ class CastFlutterApiImpl extends CastFlutterApi {
|
|||
List<String?> getSessionMessageNamespaces() {
|
||||
return FlutterCastFramework.namespaces;
|
||||
}
|
||||
|
||||
@override
|
||||
void onCastStateChanged(int castState) {
|
||||
debugPrint("yoyo onCastStateChanged: $castState");
|
||||
FlutterCastFramework.castContext.onCastStateChanged(castState);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue