From 6d95636b78e2c67e0490ae3203bf27dd9a13e63c Mon Sep 17 00:00:00 2001 From: gianlucaparadise Date: Fri, 22 Jul 2022 06:22:58 +0200 Subject: [PATCH] MediaMetadata: strings workaround pigeon --- .../PlatformBridgeApis.java | 15 +++++++++++++++ ios/Classes/PlatformBridgeApis.h | 2 ++ ios/Classes/PlatformBridgeApis.m | 4 ++++ lib/src/PlatformBridgeApis.dart | 4 ++++ pigeon/PlatformBridgeApisDefinition.dart | 1 + 5 files changed, 26 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 abbb2ee..6630e92 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 @@ -335,6 +335,12 @@ public class PlatformBridgeApis { this.mediaType = setterArg; } + private @Nullable Map strings; + public @Nullable Map getStrings() { return strings; } + public void setStrings(@Nullable Map setterArg) { + this.strings = setterArg; + } + private @Nullable List webImages; public @Nullable List getWebImages() { return webImages; } public void setWebImages(@Nullable List setterArg) { @@ -347,6 +353,11 @@ public class PlatformBridgeApis { this.mediaType = setterArg; return this; } + private @Nullable Map strings; + public @NonNull Builder setStrings(@Nullable Map setterArg) { + this.strings = setterArg; + return this; + } private @Nullable List webImages; public @NonNull Builder setWebImages(@Nullable List setterArg) { this.webImages = setterArg; @@ -355,6 +366,7 @@ public class PlatformBridgeApis { public @NonNull MediaMetadata build() { MediaMetadata pigeonReturn = new MediaMetadata(); pigeonReturn.setMediaType(mediaType); + pigeonReturn.setStrings(strings); pigeonReturn.setWebImages(webImages); return pigeonReturn; } @@ -362,6 +374,7 @@ public class PlatformBridgeApis { @NonNull Map toMap() { Map toMapResult = new HashMap<>(); toMapResult.put("mediaType", mediaType == null ? null : mediaType.index); + toMapResult.put("strings", strings); toMapResult.put("webImages", webImages); return toMapResult; } @@ -369,6 +382,8 @@ public class PlatformBridgeApis { MediaMetadata pigeonResult = new MediaMetadata(); Object mediaType = map.get("mediaType"); pigeonResult.setMediaType(mediaType == null ? null : MediaType.values()[(int)mediaType]); + Object strings = map.get("strings"); + pigeonResult.setStrings((Map)strings); Object webImages = map.get("webImages"); pigeonResult.setWebImages((List)webImages); return pigeonResult; diff --git a/ios/Classes/PlatformBridgeApis.h b/ios/Classes/PlatformBridgeApis.h index 2fe7fe0..c189015 100644 --- a/ios/Classes/PlatformBridgeApis.h +++ b/ios/Classes/PlatformBridgeApis.h @@ -124,8 +124,10 @@ typedef NS_ENUM(NSUInteger, PlayerState) { @interface MediaMetadata : NSObject + (instancetype)makeWithMediaType:(MediaType)mediaType + strings:(nullable NSDictionary *)strings webImages:(nullable NSArray *)webImages; @property(nonatomic, assign) MediaType mediaType; +@property(nonatomic, strong, nullable) NSDictionary * strings; @property(nonatomic, strong, nullable) NSArray * webImages; @end diff --git a/ios/Classes/PlatformBridgeApis.m b/ios/Classes/PlatformBridgeApis.m index 68fc512..fb585b1 100644 --- a/ios/Classes/PlatformBridgeApis.m +++ b/ios/Classes/PlatformBridgeApis.m @@ -150,21 +150,25 @@ static id GetNullableObjectAtIndex(NSArray* array, NSInteger key) { @implementation MediaMetadata + (instancetype)makeWithMediaType:(MediaType)mediaType + strings:(nullable NSDictionary *)strings webImages:(nullable NSArray *)webImages { MediaMetadata* pigeonResult = [[MediaMetadata alloc] init]; pigeonResult.mediaType = mediaType; + pigeonResult.strings = strings; pigeonResult.webImages = webImages; return pigeonResult; } + (MediaMetadata *)fromMap:(NSDictionary *)dict { MediaMetadata *pigeonResult = [[MediaMetadata alloc] init]; pigeonResult.mediaType = [GetNullableObject(dict, @"mediaType") integerValue]; + pigeonResult.strings = GetNullableObject(dict, @"strings"); pigeonResult.webImages = GetNullableObject(dict, @"webImages"); return pigeonResult; } - (NSDictionary *)toMap { return @{ @"mediaType" : @(self.mediaType), + @"strings" : (self.strings ?: [NSNull null]), @"webImages" : (self.webImages ?: [NSNull null]), }; } diff --git a/lib/src/PlatformBridgeApis.dart b/lib/src/PlatformBridgeApis.dart index 174ef64..f402254 100644 --- a/lib/src/PlatformBridgeApis.dart +++ b/lib/src/PlatformBridgeApis.dart @@ -169,15 +169,18 @@ class MediaInfo { class MediaMetadata { MediaMetadata({ this.mediaType, + this.strings, this.webImages, }); MediaType? mediaType; + Map? strings; List? webImages; Object encode() { final Map pigeonMap = {}; pigeonMap['mediaType'] = mediaType?.index; + pigeonMap['strings'] = strings; pigeonMap['webImages'] = webImages; return pigeonMap; } @@ -188,6 +191,7 @@ class MediaMetadata { mediaType: pigeonMap['mediaType'] != null ? MediaType.values[pigeonMap['mediaType']! as int] : null, + strings: (pigeonMap['strings'] as Map?)?.cast(), webImages: (pigeonMap['webImages'] as List?)?.cast(), ); } diff --git a/pigeon/PlatformBridgeApisDefinition.dart b/pigeon/PlatformBridgeApisDefinition.dart index 605b657..b7662cc 100644 --- a/pigeon/PlatformBridgeApisDefinition.dart +++ b/pigeon/PlatformBridgeApisDefinition.dart @@ -44,6 +44,7 @@ enum StreamType { class MediaMetadata { MediaType? mediaType; // Map? strings; // Can't uncomment this because of https://github.com/flutter/flutter/issues/93525 + Map? strings; List? webImages; }