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 ->
|
CastContext.getSharedInstance(applicationContext).addCastStateListener { i ->
|
||||||
Log.d(TAG, "Cast state changed: $i")
|
Log.d(TAG, "Cast state changed: $i")
|
||||||
methodChannel.invokeMethod(MethodNames.onCastStateChanged, i)
|
flutterApi?.onCastStateChanged(i.toLong(), null)
|
||||||
}
|
}
|
||||||
|
|
||||||
mSessionManager = CastContext.getSharedInstance(applicationContext).sessionManager
|
mSessionManager = CastContext.getSharedInstance(applicationContext).sessionManager
|
||||||
|
|
@ -139,7 +139,7 @@ class FlutterCastFrameworkPlugin : FlutterPlugin, MethodCallHandler, ActivityAwa
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
val castState = CastContext.getSharedInstance(context).castState
|
val castState = CastContext.getSharedInstance(context).castState
|
||||||
channel?.invokeMethod(MethodNames.onCastStateChanged, castState)
|
flutterApi?.onCastStateChanged(castState.toLong()) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
|
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
package com.gianlucaparadise.flutter_cast_framework
|
package com.gianlucaparadise.flutter_cast_framework
|
||||||
|
|
||||||
object MethodNames {
|
object MethodNames {
|
||||||
const val onCastStateChanged = "CastContext.onCastStateChanged"
|
|
||||||
|
|
||||||
// region SessionManager
|
// region SessionManager
|
||||||
const val onSessionStarting = "SessionManager.onSessionStarting"
|
const val onSessionStarting = "SessionManager.onSessionStarting"
|
||||||
const val onSessionStarted = "SessionManager.onSessionStarted"
|
const val onSessionStarted = "SessionManager.onSessionStarted"
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,6 @@
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
enum MethodNames : String {
|
enum MethodNames : String {
|
||||||
case onCastStateChanged = "CastContext.onCastStateChanged"
|
|
||||||
|
|
||||||
// region SessionManager
|
// region SessionManager
|
||||||
case onSessionStarting = "SessionManager.onSessionStarting"
|
case onSessionStarting = "SessionManager.onSessionStarting"
|
||||||
case onSessionStarted = "SessionManager.onSessionStarted"
|
case onSessionStarted = "SessionManager.onSessionStarted"
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,9 @@ public class SwiftFlutterCastFrameworkPlugin: NSObject, FlutterPlugin, GCKSessio
|
||||||
let castStateRaw = castState.rawValue
|
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
|
// 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
|
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) {
|
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,4 @@
|
||||||
class PlatformMethodNames {
|
class PlatformMethodNames {
|
||||||
static const onCastStateChanged = "CastContext.onCastStateChanged";
|
|
||||||
|
|
||||||
static const onSessionStarting = "SessionManager.onSessionStarting";
|
static const onSessionStarting = "SessionManager.onSessionStarting";
|
||||||
static const onSessionStarted = "SessionManager.onSessionStarted";
|
static const onSessionStarted = "SessionManager.onSessionStarted";
|
||||||
static const onSessionStartFailed = "SessionManager.onSessionStartFailed";
|
static const onSessionStartFailed = "SessionManager.onSessionStartFailed";
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,7 @@ class CastContext {
|
||||||
castApi.showCastDialog();
|
castApi.showCastDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
void onCastStateChanged(dynamic arguments) {
|
void onCastStateChanged(int castState) {
|
||||||
int castState = arguments;
|
|
||||||
state.value = CastState.values[castState];
|
state.value = CastState.values[castState];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,10 +23,6 @@ class FlutterCastFramework {
|
||||||
debugPrint("Method call on flutter: $method $arguments");
|
debugPrint("Method call on flutter: $method $arguments");
|
||||||
|
|
||||||
switch (method) {
|
switch (method) {
|
||||||
case PlatformMethodNames.onCastStateChanged:
|
|
||||||
castContext.onCastStateChanged(arguments);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PlatformMethodNames.onSessionStarting:
|
case PlatformMethodNames.onSessionStarting:
|
||||||
case PlatformMethodNames.onSessionStarted:
|
case PlatformMethodNames.onSessionStarted:
|
||||||
case PlatformMethodNames.onSessionStartFailed:
|
case PlatformMethodNames.onSessionStartFailed:
|
||||||
|
|
@ -72,4 +68,10 @@ class CastFlutterApiImpl extends CastFlutterApi {
|
||||||
List<String?> getSessionMessageNamespaces() {
|
List<String?> getSessionMessageNamespaces() {
|
||||||
return FlutterCastFramework.namespaces;
|
return FlutterCastFramework.namespaces;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void onCastStateChanged(int castState) {
|
||||||
|
debugPrint("yoyo onCastStateChanged: $castState");
|
||||||
|
FlutterCastFramework.castContext.onCastStateChanged(castState);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in a new issue