Pigeon: Definitions for onMessageReceived
- Generated Pigeons for `HostApis` in Android and iOS
This commit is contained in:
parent
043938fd0e
commit
5c411c508f
5 changed files with 99 additions and 0 deletions
|
|
@ -130,6 +130,27 @@ public class HostApis {
|
|||
private static class CastFlutterApiCodec extends StandardMessageCodec {
|
||||
public static final CastFlutterApiCodec INSTANCE = new CastFlutterApiCodec();
|
||||
private CastFlutterApiCodec() {}
|
||||
@Override
|
||||
protected Object readValueOfType(byte type, ByteBuffer buffer) {
|
||||
switch (type) {
|
||||
case (byte)128:
|
||||
return CastMessage.fromMap((Map<String, Object>) readValue(buffer));
|
||||
|
||||
default:
|
||||
return super.readValueOfType(type, buffer);
|
||||
|
||||
}
|
||||
}
|
||||
@Override
|
||||
protected void writeValue(ByteArrayOutputStream stream, Object value) {
|
||||
if (value instanceof CastMessage) {
|
||||
stream.write(128);
|
||||
writeValue(stream, ((CastMessage) value).toMap());
|
||||
} else
|
||||
{
|
||||
super.writeValue(stream, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Generated class from Pigeon that represents Flutter messages that can be called from Java.*/
|
||||
|
|
@ -224,6 +245,13 @@ public class HostApis {
|
|||
callback.reply(null);
|
||||
});
|
||||
}
|
||||
public void onMessageReceived(CastMessage messageArg, Reply<Void> callback) {
|
||||
BasicMessageChannel<Object> channel =
|
||||
new BasicMessageChannel<>(binaryMessenger, "dev.flutter.pigeon.CastFlutterApi.onMessageReceived", getCodec());
|
||||
channel.send(new ArrayList<Object>(Arrays.asList(messageArg)), channelReply -> {
|
||||
callback.reply(null);
|
||||
});
|
||||
}
|
||||
}
|
||||
private static Map<String, Object> wrapError(Throwable exception) {
|
||||
Map<String, Object> errorMap = new HashMap<>();
|
||||
|
|
|
|||
|
|
@ -41,5 +41,6 @@ NSObject<FlutterMessageCodec> *CastFlutterApiGetCodec(void);
|
|||
- (void)onSessionResumedWithCompletion:(void(^)(NSError *_Nullable))completion;
|
||||
- (void)onSessionResumeFailedWithCompletion:(void(^)(NSError *_Nullable))completion;
|
||||
- (void)onSessionSuspendedWithCompletion:(void(^)(NSError *_Nullable))completion;
|
||||
- (void)onMessageReceivedMessage:(CastMessage *)message completion:(void(^)(NSError *_Nullable))completion;
|
||||
@end
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
|
|
|||
|
|
@ -141,11 +141,32 @@ void CastApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSObject<CastApi>
|
|||
@interface CastFlutterApiCodecReader : FlutterStandardReader
|
||||
@end
|
||||
@implementation CastFlutterApiCodecReader
|
||||
- (nullable id)readValueOfType:(UInt8)type
|
||||
{
|
||||
switch (type) {
|
||||
case 128:
|
||||
return [CastMessage fromMap:[self readValue]];
|
||||
|
||||
default:
|
||||
return [super readValueOfType:type];
|
||||
|
||||
}
|
||||
}
|
||||
@end
|
||||
|
||||
@interface CastFlutterApiCodecWriter : FlutterStandardWriter
|
||||
@end
|
||||
@implementation CastFlutterApiCodecWriter
|
||||
- (void)writeValue:(id)value
|
||||
{
|
||||
if ([value isKindOfClass:[CastMessage class]]) {
|
||||
[self writeByte:128];
|
||||
[self writeValue:[value toMap]];
|
||||
} else
|
||||
{
|
||||
[super writeValue:value];
|
||||
}
|
||||
}
|
||||
@end
|
||||
|
||||
@interface CastFlutterApiCodecReaderWriter : FlutterStandardReaderWriter
|
||||
|
|
@ -294,4 +315,14 @@ NSObject<FlutterMessageCodec> *CastFlutterApiGetCodec() {
|
|||
completion(nil);
|
||||
}];
|
||||
}
|
||||
- (void)onMessageReceivedMessage:(CastMessage *)arg_message completion:(void(^)(NSError *_Nullable))completion {
|
||||
FlutterBasicMessageChannel *channel =
|
||||
[FlutterBasicMessageChannel
|
||||
messageChannelWithName:@"dev.flutter.pigeon.CastFlutterApi.onMessageReceived"
|
||||
binaryMessenger:self.binaryMessenger
|
||||
codec:CastFlutterApiGetCodec()];
|
||||
[channel sendMessage:@[arg_message] reply:^(id reply) {
|
||||
completion(nil);
|
||||
}];
|
||||
}
|
||||
@end
|
||||
|
|
|
|||
|
|
@ -111,6 +111,27 @@ class CastApi {
|
|||
|
||||
class _CastFlutterApiCodec extends StandardMessageCodec {
|
||||
const _CastFlutterApiCodec();
|
||||
@override
|
||||
void writeValue(WriteBuffer buffer, Object? value) {
|
||||
if (value is CastMessage) {
|
||||
buffer.putUint8(128);
|
||||
writeValue(buffer, value.encode());
|
||||
} else
|
||||
{
|
||||
super.writeValue(buffer, value);
|
||||
}
|
||||
}
|
||||
@override
|
||||
Object? readValueOfType(int type, ReadBuffer buffer) {
|
||||
switch (type) {
|
||||
case 128:
|
||||
return CastMessage.decode(readValue(buffer)!);
|
||||
|
||||
default:
|
||||
return super.readValueOfType(type, buffer);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
abstract class CastFlutterApi {
|
||||
static const MessageCodec<Object?> codec = _CastFlutterApiCodec();
|
||||
|
|
@ -126,6 +147,7 @@ abstract class CastFlutterApi {
|
|||
void onSessionResumed();
|
||||
void onSessionResumeFailed();
|
||||
void onSessionSuspended();
|
||||
void onMessageReceived(CastMessage message);
|
||||
static void setup(CastFlutterApi? api) {
|
||||
{
|
||||
const BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
|
||||
|
|
@ -273,5 +295,21 @@ abstract class CastFlutterApi {
|
|||
});
|
||||
}
|
||||
}
|
||||
{
|
||||
const BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
|
||||
'dev.flutter.pigeon.CastFlutterApi.onMessageReceived', codec);
|
||||
if (api == null) {
|
||||
channel.setMessageHandler(null);
|
||||
} else {
|
||||
channel.setMessageHandler((Object? message) async {
|
||||
assert(message != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.onMessageReceived was null.');
|
||||
final List<Object?> args = (message as List<Object?>?)!;
|
||||
final CastMessage? arg_message = args[0] as CastMessage?;
|
||||
assert(arg_message != null, 'Argument for dev.flutter.pigeon.CastFlutterApi.onMessageReceived was null, expected non-null CastMessage.');
|
||||
api.onMessageReceived(arg_message!);
|
||||
return;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ abstract class CastApi {
|
|||
abstract class CastFlutterApi {
|
||||
List<String> getSessionMessageNamespaces();
|
||||
void onCastStateChanged(int castState);
|
||||
void onMessageReceived(CastMessage message);
|
||||
|
||||
//region Session State handling
|
||||
void onSessionStarting();
|
||||
|
|
|
|||
Loading…
Reference in a new issue