Pigeon: Definitions for getSessionMessageNamespaces

- Generated Pigeons for `HostApis` in Android and iOS
This commit is contained in:
gianlucaparadise 2021-11-01 16:43:48 +01:00
parent 3768c925b2
commit 41dd086a38
5 changed files with 121 additions and 0 deletions

View file

@ -127,6 +127,34 @@ public class HostApis {
}
}
}
private static class CastFlutterApiCodec extends StandardMessageCodec {
public static final CastFlutterApiCodec INSTANCE = new CastFlutterApiCodec();
private CastFlutterApiCodec() {}
}
/** Generated class from Pigeon that represents Flutter messages that can be called from Java.*/
public static class CastFlutterApi {
private final BinaryMessenger binaryMessenger;
public CastFlutterApi(BinaryMessenger argBinaryMessenger){
this.binaryMessenger = argBinaryMessenger;
}
public interface Reply<T> {
void reply(T reply);
}
static MessageCodec<Object> getCodec() {
return CastFlutterApiCodec.INSTANCE;
}
public void getSessionMessageNamespaces(Reply<List<String>> callback) {
BasicMessageChannel<Object> channel =
new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.CastFlutterApi.getSessionMessageNamespaces", getCodec());
channel.send(null, channelReply -> {
@SuppressWarnings("ConstantConditions")
List<String> output = (List<String>)channelReply;
callback.reply(output);
});
}
}
private static Map<String, Object> wrapError(Throwable exception) {
Map<String, Object> errorMap = new HashMap<>();
errorMap.put("message", exception.toString());

View file

@ -25,4 +25,11 @@ NSObject<FlutterMessageCodec> *CastApiGetCodec(void);
extern void CastApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSObject<CastApi> *_Nullable api);
/// The codec used by CastFlutterApi.
NSObject<FlutterMessageCodec> *CastFlutterApiGetCodec(void);
@interface CastFlutterApi : NSObject
- (instancetype)initWithBinaryMessenger:(id<FlutterBinaryMessenger>)binaryMessenger;
- (void)getSessionMessageNamespacesWithCompletion:(void(^)(NSArray<NSString *> *, NSError *_Nullable))completion;
@end
NS_ASSUME_NONNULL_END

View file

@ -138,3 +138,60 @@ void CastApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSObject<CastApi>
}
}
}
@interface CastFlutterApiCodecReader : FlutterStandardReader
@end
@implementation CastFlutterApiCodecReader
@end
@interface CastFlutterApiCodecWriter : FlutterStandardWriter
@end
@implementation CastFlutterApiCodecWriter
@end
@interface CastFlutterApiCodecReaderWriter : FlutterStandardReaderWriter
@end
@implementation CastFlutterApiCodecReaderWriter
- (FlutterStandardWriter *)writerWithData:(NSMutableData *)data {
return [[CastFlutterApiCodecWriter alloc] initWithData:data];
}
- (FlutterStandardReader *)readerWithData:(NSData *)data {
return [[CastFlutterApiCodecReader alloc] initWithData:data];
}
@end
NSObject<FlutterMessageCodec> *CastFlutterApiGetCodec() {
static dispatch_once_t s_pred = 0;
static FlutterStandardMessageCodec *s_sharedObject = nil;
dispatch_once(&s_pred, ^{
CastFlutterApiCodecReaderWriter *readerWriter = [[CastFlutterApiCodecReaderWriter alloc] init];
s_sharedObject = [FlutterStandardMessageCodec codecWithReaderWriter:readerWriter];
});
return s_sharedObject;
}
@interface CastFlutterApi ()
@property (nonatomic, strong) NSObject<FlutterBinaryMessenger> *binaryMessenger;
@end
@implementation CastFlutterApi
- (instancetype)initWithBinaryMessenger:(NSObject<FlutterBinaryMessenger> *)binaryMessenger {
self = [super init];
if (self) {
_binaryMessenger = binaryMessenger;
}
return self;
}
- (void)getSessionMessageNamespacesWithCompletion:(void(^)(NSArray<NSString *> *, NSError *_Nullable))completion {
FlutterBasicMessageChannel *channel =
[FlutterBasicMessageChannel
messageChannelWithName:@"dev.flutter.pigeon.CastFlutterApi.getSessionMessageNamespaces"
binaryMessenger:self.binaryMessenger
codec:CastFlutterApiGetCodec()];
[channel sendMessage:nil reply:^(id reply) {
NSArray<NSString *> *output = reply;
completion(output, nil);
}];
}
@end

View file

@ -108,3 +108,27 @@ class CastApi {
}
}
}
class _CastFlutterApiCodec extends StandardMessageCodec {
const _CastFlutterApiCodec();
}
abstract class CastFlutterApi {
static const MessageCodec<Object?> codec = _CastFlutterApiCodec();
List<String?> getSessionMessageNamespaces();
static void setup(CastFlutterApi? api) {
{
const BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
'dev.flutter.pigeon.CastFlutterApi.getSessionMessageNamespaces', codec);
if (api == null) {
channel.setMessageHandler(null);
} else {
channel.setMessageHandler((Object? message) async {
// ignore message
final List<String?> output = api.getSessionMessageNamespaces();
return output;
});
}
}
}
}

View file

@ -9,4 +9,9 @@ class CastMessage {
abstract class CastApi {
void sendMessage(CastMessage message);
void showCastDialog();
}
@FlutterApi()
abstract class CastFlutterApi {
List<String> getSessionMessageNamespaces();
}