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 1145083..3fb776c 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 @@ -628,6 +628,13 @@ public class PlatformBridgeApis { callback.reply(null); }); } + public void onProgressUpdated(Long progressMsArg, Long durationMsArg, Reply callback) { + BasicMessageChannel channel = + new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.CastFlutterApi.onProgressUpdated", getCodec()); + channel.send(new ArrayList(Arrays.asList(progressMsArg, durationMsArg)), 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 266f35b..99619f9 100644 --- a/ios/Classes/PlatformBridgeApis.h +++ b/ios/Classes/PlatformBridgeApis.h @@ -124,5 +124,6 @@ NSObject *CastFlutterApiGetCodec(void); - (void)onSendingRemoteMediaRequestWithCompletion:(void(^)(NSError *_Nullable))completion; - (void)onAdBreakStatusUpdatedWithCompletion:(void(^)(NSError *_Nullable))completion; - (void)onMediaErrorWithCompletion:(void(^)(NSError *_Nullable))completion; +- (void)onProgressUpdatedProgressMs:(NSNumber *)progressMs durationMs:(NSNumber *)durationMs completion:(void(^)(NSError *_Nullable))completion; @end NS_ASSUME_NONNULL_END diff --git a/ios/Classes/PlatformBridgeApis.m b/ios/Classes/PlatformBridgeApis.m index ea63c04..57204f0 100644 --- a/ios/Classes/PlatformBridgeApis.m +++ b/ios/Classes/PlatformBridgeApis.m @@ -602,4 +602,14 @@ NSObject *CastFlutterApiGetCodec() { completion(nil); }]; } +- (void)onProgressUpdatedProgressMs:(NSNumber *)arg_progressMs durationMs:(NSNumber *)arg_durationMs completion:(void(^)(NSError *_Nullable))completion { + FlutterBasicMessageChannel *channel = + [FlutterBasicMessageChannel + messageChannelWithName:@"dev.flutter.pigeon.CastFlutterApi.onProgressUpdated" + binaryMessenger:self.binaryMessenger + codec:CastFlutterApiGetCodec()]; + [channel sendMessage:@[arg_progressMs, arg_durationMs] reply:^(id reply) { + completion(nil); + }]; +} @end diff --git a/lib/src/PlatformBridgeApis.dart b/lib/src/PlatformBridgeApis.dart index ffb7261..c767eb2 100644 --- a/lib/src/PlatformBridgeApis.dart +++ b/lib/src/PlatformBridgeApis.dart @@ -404,6 +404,7 @@ abstract class CastFlutterApi { void onSendingRemoteMediaRequest(); void onAdBreakStatusUpdated(); void onMediaError(); + void onProgressUpdated(int progressMs, int durationMs); static void setup(CastFlutterApi? api) { { const BasicMessageChannel channel = BasicMessageChannel( @@ -658,5 +659,23 @@ abstract class CastFlutterApi { }); } } + { + const BasicMessageChannel channel = BasicMessageChannel( + 'dev.flutter.pigeon.CastFlutterApi.onProgressUpdated', codec); + if (api == null) { + channel.setMessageHandler(null); + } else { + channel.setMessageHandler((Object? message) async { + assert(message != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.onProgressUpdated was null.'); + final List args = (message as List?)!; + final int? arg_progressMs = args[0] as int?; + assert(arg_progressMs != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.onProgressUpdated was null, expected non-null int.'); + final int? arg_durationMs = args[1] as int?; + assert(arg_durationMs != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.onProgressUpdated was null, expected non-null int.'); + api.onProgressUpdated(arg_progressMs!, arg_durationMs!); + return; + }); + } + } } } diff --git a/lib/src/PlatformBridgeApisDefinition.dart b/lib/src/PlatformBridgeApisDefinition.dart index 18418be..17fb31d 100644 --- a/lib/src/PlatformBridgeApisDefinition.dart +++ b/lib/src/PlatformBridgeApisDefinition.dart @@ -251,5 +251,7 @@ abstract class CastFlutterApi { void onSendingRemoteMediaRequest(); void onAdBreakStatusUpdated(); void onMediaError(); + + void onProgressUpdated(int progressMs, int durationMs); //endregion }