From cc735e6adb7f7540ce34d76b5b23dd486c93d42e Mon Sep 17 00:00:00 2001 From: gianlucaparadise Date: Sat, 18 Dec 2021 09:41:17 +0100 Subject: [PATCH] AdBreakProgress pigeon --- .../PlatformBridgeApis.java | 7 ++++++ ios/Classes/PlatformBridgeApis.h | 1 + ios/Classes/PlatformBridgeApis.m | 10 ++++++++ lib/src/PlatformBridgeApis.dart | 25 +++++++++++++++++++ pigeon/PlatformBridgeApisDefinition.dart | 9 +++++++ 5 files changed, 52 insertions(+) diff --git a/android/src/main/java/com/gianlucaparadise/flutter_cast_framework/PlatformBridgeApis.java b/android/src/main/java/com/gianlucaparadise/flutter_cast_framework/PlatformBridgeApis.java index 13f4258..71e950b 100644 --- a/android/src/main/java/com/gianlucaparadise/flutter_cast_framework/PlatformBridgeApis.java +++ b/android/src/main/java/com/gianlucaparadise/flutter_cast_framework/PlatformBridgeApis.java @@ -800,6 +800,13 @@ public class PlatformBridgeApis { callback.reply(null); }); } + public void onAdBreakClipProgressUpdated(String adBreakIdArg, String adBreakClipIdArg, Long progressMsArg, Long durationMsArg, Long whenSkippableMsArg, Reply callback) { + BasicMessageChannel channel = + new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated", getCodec()); + channel.send(new ArrayList(Arrays.asList(adBreakIdArg, adBreakClipIdArg, progressMsArg, durationMsArg, whenSkippableMsArg)), channelReply -> { + callback.reply(null); + }); + } } private static Map wrapError(Throwable exception) { Map errorMap = new HashMap<>(); diff --git a/ios/Classes/PlatformBridgeApis.h b/ios/Classes/PlatformBridgeApis.h index c9eb2f3..18305ea 100644 --- a/ios/Classes/PlatformBridgeApis.h +++ b/ios/Classes/PlatformBridgeApis.h @@ -138,5 +138,6 @@ NSObject *CastFlutterApiGetCodec(void); - (void)onAdBreakStatusUpdatedWithCompletion:(void(^)(NSError *_Nullable))completion; - (void)onMediaErrorWithCompletion:(void(^)(NSError *_Nullable))completion; - (void)onProgressUpdatedProgressMs:(NSNumber *)progressMs durationMs:(NSNumber *)durationMs completion:(void(^)(NSError *_Nullable))completion; +- (void)onAdBreakClipProgressUpdatedAdBreakId:(NSString *)adBreakId adBreakClipId:(NSString *)adBreakClipId progressMs:(NSNumber *)progressMs durationMs:(NSNumber *)durationMs whenSkippableMs:(NSNumber *)whenSkippableMs completion:(void(^)(NSError *_Nullable))completion; @end NS_ASSUME_NONNULL_END diff --git a/ios/Classes/PlatformBridgeApis.m b/ios/Classes/PlatformBridgeApis.m index 391138e..476f771 100644 --- a/ios/Classes/PlatformBridgeApis.m +++ b/ios/Classes/PlatformBridgeApis.m @@ -755,4 +755,14 @@ NSObject *CastFlutterApiGetCodec() { completion(nil); }]; } +- (void)onAdBreakClipProgressUpdatedAdBreakId:(NSString *)arg_adBreakId adBreakClipId:(NSString *)arg_adBreakClipId progressMs:(NSNumber *)arg_progressMs durationMs:(NSNumber *)arg_durationMs whenSkippableMs:(NSNumber *)arg_whenSkippableMs completion:(void(^)(NSError *_Nullable))completion { + FlutterBasicMessageChannel *channel = + [FlutterBasicMessageChannel + messageChannelWithName:@"dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated" + binaryMessenger:self.binaryMessenger + codec:CastFlutterApiGetCodec()]; + [channel sendMessage:@[arg_adBreakId, arg_adBreakClipId, arg_progressMs, arg_durationMs, arg_whenSkippableMs] reply:^(id reply) { + completion(nil); + }]; +} @end diff --git a/lib/src/PlatformBridgeApis.dart b/lib/src/PlatformBridgeApis.dart index 8741e02..8a1b69f 100644 --- a/lib/src/PlatformBridgeApis.dart +++ b/lib/src/PlatformBridgeApis.dart @@ -572,6 +572,7 @@ abstract class CastFlutterApi { void onAdBreakStatusUpdated(); void onMediaError(); void onProgressUpdated(int progressMs, int durationMs); + void onAdBreakClipProgressUpdated(String adBreakId, String adBreakClipId, int progressMs, int durationMs, int whenSkippableMs); static void setup(CastFlutterApi? api) { { const BasicMessageChannel channel = BasicMessageChannel( @@ -847,5 +848,29 @@ abstract class CastFlutterApi { }); } } + { + const BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated', codec); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + assert(message != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated was null.'); + final List args = (message as List?)!; + final String? arg_adBreakId = args[0] as String?; + assert(arg_adBreakId != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated was null, expected non-null String.'); + final String? arg_adBreakClipId = args[1] as String?; + assert(arg_adBreakClipId != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated was null, expected non-null String.'); + final int? arg_progressMs = args[2] as int?; + assert(arg_progressMs != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated was null, expected non-null int.'); + final int? arg_durationMs = args[3] as int?; + assert(arg_durationMs != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated was null, expected non-null int.'); + final int? arg_whenSkippableMs = args[4] as int?; + assert(arg_whenSkippableMs != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.onAdBreakClipProgressUpdated was null, expected non-null int.'); + api.onAdBreakClipProgressUpdated(arg_adBreakId!, arg_adBreakClipId!, arg_progressMs!, arg_durationMs!, arg_whenSkippableMs!); + return; + }); + } + } } } diff --git a/pigeon/PlatformBridgeApisDefinition.dart b/pigeon/PlatformBridgeApisDefinition.dart index b4e43be..e7f6641 100644 --- a/pigeon/PlatformBridgeApisDefinition.dart +++ b/pigeon/PlatformBridgeApisDefinition.dart @@ -223,6 +223,7 @@ class CastMessage { String? message; } +/// APIs for Flutter-to-Host comunication @HostApi() abstract class CastHostApi { void sendMessage(CastMessage message); @@ -240,6 +241,7 @@ abstract class CastHostApi { //endregion } +/// APIs for Host-to-Flutter comunication @FlutterApi() abstract class CastFlutterApi { List getSessionMessageNamespaces(); @@ -269,5 +271,12 @@ abstract class CastFlutterApi { void onMediaError(); void onProgressUpdated(int progressMs, int durationMs); + void onAdBreakClipProgressUpdated( + String adBreakId, + String adBreakClipId, + int progressMs, + int durationMs, + int whenSkippableMs, + ); //endregion }