From 6224955962da5b1ee63555f7073a8c0e8bbb326e Mon Sep 17 00:00:00 2001 From: gianlucaparadise Date: Mon, 14 Feb 2022 06:46:26 +0100 Subject: [PATCH] MediaQueue callbacks pigeon --- .../PlatformBridgeApis.java | 49 ++++++++ ios/Classes/PlatformBridgeApis.h | 7 ++ ios/Classes/PlatformBridgeApis.m | 70 +++++++++++ lib/src/PlatformBridgeApis.dart | 114 ++++++++++++++++++ pigeon/PlatformBridgeApisDefinition.dart | 10 ++ 5 files changed, 250 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 965eec9..984a01d 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 @@ -1178,6 +1178,55 @@ public class PlatformBridgeApis { callback.reply(null); }); } + public void itemsInsertedInRange(Long insertIndexArg, Long insertCountArg, Reply callback) { + BasicMessageChannel channel = + new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.CastFlutterApi.itemsInsertedInRange", getCodec()); + channel.send(new ArrayList(Arrays.asList(insertIndexArg, insertCountArg)), channelReply -> { + callback.reply(null); + }); + } + public void itemsReloaded(Reply callback) { + BasicMessageChannel channel = + new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.CastFlutterApi.itemsReloaded", getCodec()); + channel.send(null, channelReply -> { + callback.reply(null); + }); + } + public void itemsRemovedAtIndexes(List indexesArg, Reply callback) { + BasicMessageChannel channel = + new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.CastFlutterApi.itemsRemovedAtIndexes", getCodec()); + channel.send(new ArrayList(Arrays.asList(indexesArg)), channelReply -> { + callback.reply(null); + }); + } + public void itemsReorderedAtIndexes(List indexesArg, Long insertBeforeIndexArg, Reply callback) { + BasicMessageChannel channel = + new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.CastFlutterApi.itemsReorderedAtIndexes", getCodec()); + channel.send(new ArrayList(Arrays.asList(indexesArg, insertBeforeIndexArg)), channelReply -> { + callback.reply(null); + }); + } + public void itemsUpdatedAtIndexes(List indexesArg, Reply callback) { + BasicMessageChannel channel = + new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.CastFlutterApi.itemsUpdatedAtIndexes", getCodec()); + channel.send(new ArrayList(Arrays.asList(indexesArg)), channelReply -> { + callback.reply(null); + }); + } + public void mediaQueueChanged(Reply callback) { + BasicMessageChannel channel = + new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.CastFlutterApi.mediaQueueChanged", getCodec()); + channel.send(null, channelReply -> { + callback.reply(null); + }); + } + public void mediaQueueWillChange(Reply callback) { + BasicMessageChannel channel = + new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.CastFlutterApi.mediaQueueWillChange", getCodec()); + channel.send(null, 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 d094e0a..4194941 100644 --- a/ios/Classes/PlatformBridgeApis.h +++ b/ios/Classes/PlatformBridgeApis.h @@ -191,5 +191,12 @@ NSObject *CastFlutterApiGetCodec(void); - (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; +- (void)itemsInsertedInRangeInsertIndex:(NSNumber *)insertIndex insertCount:(NSNumber *)insertCount completion:(void(^)(NSError *_Nullable))completion; +- (void)itemsReloadedWithCompletion:(void(^)(NSError *_Nullable))completion; +- (void)itemsRemovedAtIndexesIndexes:(NSArray *)indexes completion:(void(^)(NSError *_Nullable))completion; +- (void)itemsReorderedAtIndexesIndexes:(NSArray *)indexes insertBeforeIndex:(NSNumber *)insertBeforeIndex completion:(void(^)(NSError *_Nullable))completion; +- (void)itemsUpdatedAtIndexesIndexes:(NSArray *)indexes completion:(void(^)(NSError *_Nullable))completion; +- (void)mediaQueueChangedWithCompletion:(void(^)(NSError *_Nullable))completion; +- (void)mediaQueueWillChangeWithCompletion:(void(^)(NSError *_Nullable))completion; @end NS_ASSUME_NONNULL_END diff --git a/ios/Classes/PlatformBridgeApis.m b/ios/Classes/PlatformBridgeApis.m index f89734a..2dc9a5e 100644 --- a/ios/Classes/PlatformBridgeApis.m +++ b/ios/Classes/PlatformBridgeApis.m @@ -1047,4 +1047,74 @@ NSObject *CastFlutterApiGetCodec() { completion(nil); }]; } +- (void)itemsInsertedInRangeInsertIndex:(NSNumber *)arg_insertIndex insertCount:(NSNumber *)arg_insertCount completion:(void(^)(NSError *_Nullable))completion { + FlutterBasicMessageChannel *channel = + [FlutterBasicMessageChannel + messageChannelWithName:@"dev.flutter.pigeon.CastFlutterApi.itemsInsertedInRange" + binaryMessenger:self.binaryMessenger + codec:CastFlutterApiGetCodec()]; + [channel sendMessage:@[arg_insertIndex, arg_insertCount] reply:^(id reply) { + completion(nil); + }]; +} +- (void)itemsReloadedWithCompletion:(void(^)(NSError *_Nullable))completion { + FlutterBasicMessageChannel *channel = + [FlutterBasicMessageChannel + messageChannelWithName:@"dev.flutter.pigeon.CastFlutterApi.itemsReloaded" + binaryMessenger:self.binaryMessenger + codec:CastFlutterApiGetCodec()]; + [channel sendMessage:nil reply:^(id reply) { + completion(nil); + }]; +} +- (void)itemsRemovedAtIndexesIndexes:(NSArray *)arg_indexes completion:(void(^)(NSError *_Nullable))completion { + FlutterBasicMessageChannel *channel = + [FlutterBasicMessageChannel + messageChannelWithName:@"dev.flutter.pigeon.CastFlutterApi.itemsRemovedAtIndexes" + binaryMessenger:self.binaryMessenger + codec:CastFlutterApiGetCodec()]; + [channel sendMessage:@[arg_indexes] reply:^(id reply) { + completion(nil); + }]; +} +- (void)itemsReorderedAtIndexesIndexes:(NSArray *)arg_indexes insertBeforeIndex:(NSNumber *)arg_insertBeforeIndex completion:(void(^)(NSError *_Nullable))completion { + FlutterBasicMessageChannel *channel = + [FlutterBasicMessageChannel + messageChannelWithName:@"dev.flutter.pigeon.CastFlutterApi.itemsReorderedAtIndexes" + binaryMessenger:self.binaryMessenger + codec:CastFlutterApiGetCodec()]; + [channel sendMessage:@[arg_indexes, arg_insertBeforeIndex] reply:^(id reply) { + completion(nil); + }]; +} +- (void)itemsUpdatedAtIndexesIndexes:(NSArray *)arg_indexes completion:(void(^)(NSError *_Nullable))completion { + FlutterBasicMessageChannel *channel = + [FlutterBasicMessageChannel + messageChannelWithName:@"dev.flutter.pigeon.CastFlutterApi.itemsUpdatedAtIndexes" + binaryMessenger:self.binaryMessenger + codec:CastFlutterApiGetCodec()]; + [channel sendMessage:@[arg_indexes] reply:^(id reply) { + completion(nil); + }]; +} +- (void)mediaQueueChangedWithCompletion:(void(^)(NSError *_Nullable))completion { + FlutterBasicMessageChannel *channel = + [FlutterBasicMessageChannel + messageChannelWithName:@"dev.flutter.pigeon.CastFlutterApi.mediaQueueChanged" + binaryMessenger:self.binaryMessenger + codec:CastFlutterApiGetCodec()]; + [channel sendMessage:nil reply:^(id reply) { + completion(nil); + }]; +} +- (void)mediaQueueWillChangeWithCompletion:(void(^)(NSError *_Nullable))completion { + FlutterBasicMessageChannel *channel = + [FlutterBasicMessageChannel + messageChannelWithName:@"dev.flutter.pigeon.CastFlutterApi.mediaQueueWillChange" + binaryMessenger:self.binaryMessenger + codec:CastFlutterApiGetCodec()]; + [channel sendMessage:nil reply:^(id reply) { + completion(nil); + }]; +} @end diff --git a/lib/src/PlatformBridgeApis.dart b/lib/src/PlatformBridgeApis.dart index ffc03e3..9b51660 100644 --- a/lib/src/PlatformBridgeApis.dart +++ b/lib/src/PlatformBridgeApis.dart @@ -866,6 +866,13 @@ abstract class CastFlutterApi { void onMediaError(); void onProgressUpdated(int progressMs, int durationMs); void onAdBreakClipProgressUpdated(String adBreakId, String adBreakClipId, int progressMs, int durationMs, int whenSkippableMs); + void itemsInsertedInRange(int insertIndex, int insertCount); + void itemsReloaded(); + void itemsRemovedAtIndexes(List indexes); + void itemsReorderedAtIndexes(List indexes, int insertBeforeIndex); + void itemsUpdatedAtIndexes(List indexes); + void mediaQueueChanged(); + void mediaQueueWillChange(); static void setup(CastFlutterApi? api) { { const BasicMessageChannel channel = BasicMessageChannel( @@ -1168,5 +1175,112 @@ abstract class CastFlutterApi { }); } } + { + const BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CastFlutterApi.itemsInsertedInRange', codec); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + assert(message != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.itemsInsertedInRange was null.'); + final List args = (message as List?)!; + final int? arg_insertIndex = args[0] as int?; + assert(arg_insertIndex != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.itemsInsertedInRange was null, expected non-null int.'); + final int? arg_insertCount = args[1] as int?; + assert(arg_insertCount != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.itemsInsertedInRange was null, expected non-null int.'); + api.itemsInsertedInRange(arg_insertIndex!, arg_insertCount!); + return; + }); + } + } + { + const BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CastFlutterApi.itemsReloaded', codec); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + // ignore message + api.itemsReloaded(); + return; + }); + } + } + { + const BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CastFlutterApi.itemsRemovedAtIndexes', codec); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + assert(message != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.itemsRemovedAtIndexes was null.'); + final List args = (message as List?)!; + final List? arg_indexes = args[0] as List?; + assert(arg_indexes != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.itemsRemovedAtIndexes was null, expected non-null List.'); + api.itemsRemovedAtIndexes(arg_indexes!); + return; + }); + } + } + { + const BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CastFlutterApi.itemsReorderedAtIndexes', codec); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + assert(message != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.itemsReorderedAtIndexes was null.'); + final List args = (message as List?)!; + final List? arg_indexes = args[0] as List?; + assert(arg_indexes != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.itemsReorderedAtIndexes was null, expected non-null List.'); + final int? arg_insertBeforeIndex = args[1] as int?; + assert(arg_insertBeforeIndex != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.itemsReorderedAtIndexes was null, expected non-null int.'); + api.itemsReorderedAtIndexes(arg_indexes!, arg_insertBeforeIndex!); + return; + }); + } + } + { + const BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CastFlutterApi.itemsUpdatedAtIndexes', codec); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + assert(message != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.itemsUpdatedAtIndexes was null.'); + final List args = (message as List?)!; + final List? arg_indexes = args[0] as List?; + assert(arg_indexes != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.itemsUpdatedAtIndexes was null, expected non-null List.'); + api.itemsUpdatedAtIndexes(arg_indexes!); + return; + }); + } + } + { + const BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CastFlutterApi.mediaQueueChanged', codec); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + // ignore message + api.mediaQueueChanged(); + return; + }); + } + } + { + const BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CastFlutterApi.mediaQueueWillChange', codec); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + // ignore message + api.mediaQueueWillChange(); + return; + }); + } + } } } diff --git a/pigeon/PlatformBridgeApisDefinition.dart b/pigeon/PlatformBridgeApisDefinition.dart index 21322b6..ad5ac0e 100644 --- a/pigeon/PlatformBridgeApisDefinition.dart +++ b/pigeon/PlatformBridgeApisDefinition.dart @@ -339,4 +339,14 @@ abstract class CastFlutterApi { int whenSkippableMs, ); //endregion + + //region MediaQueue + void itemsInsertedInRange(int insertIndex, int insertCount); + void itemsReloaded(); + void itemsRemovedAtIndexes(List indexes); + void itemsReorderedAtIndexes(List indexes, int insertBeforeIndex); + void itemsUpdatedAtIndexes(List indexes); + void mediaQueueChanged(); + void mediaQueueWillChange(); + //endregion }