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 {
|
private static class CastFlutterApiCodec extends StandardMessageCodec {
|
||||||
public static final CastFlutterApiCodec INSTANCE = new CastFlutterApiCodec();
|
public static final CastFlutterApiCodec INSTANCE = new CastFlutterApiCodec();
|
||||||
private 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.*/
|
/** Generated class from Pigeon that represents Flutter messages that can be called from Java.*/
|
||||||
|
|
@ -224,6 +245,13 @@ public class HostApis {
|
||||||
callback.reply(null);
|
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) {
|
private static Map<String, Object> wrapError(Throwable exception) {
|
||||||
Map<String, Object> errorMap = new HashMap<>();
|
Map<String, Object> errorMap = new HashMap<>();
|
||||||
|
|
|
||||||
|
|
@ -41,5 +41,6 @@ NSObject<FlutterMessageCodec> *CastFlutterApiGetCodec(void);
|
||||||
- (void)onSessionResumedWithCompletion:(void(^)(NSError *_Nullable))completion;
|
- (void)onSessionResumedWithCompletion:(void(^)(NSError *_Nullable))completion;
|
||||||
- (void)onSessionResumeFailedWithCompletion:(void(^)(NSError *_Nullable))completion;
|
- (void)onSessionResumeFailedWithCompletion:(void(^)(NSError *_Nullable))completion;
|
||||||
- (void)onSessionSuspendedWithCompletion:(void(^)(NSError *_Nullable))completion;
|
- (void)onSessionSuspendedWithCompletion:(void(^)(NSError *_Nullable))completion;
|
||||||
|
- (void)onMessageReceivedMessage:(CastMessage *)message completion:(void(^)(NSError *_Nullable))completion;
|
||||||
@end
|
@end
|
||||||
NS_ASSUME_NONNULL_END
|
NS_ASSUME_NONNULL_END
|
||||||
|
|
|
||||||
|
|
@ -141,11 +141,32 @@ void CastApiSetup(id<FlutterBinaryMessenger> binaryMessenger, NSObject<CastApi>
|
||||||
@interface CastFlutterApiCodecReader : FlutterStandardReader
|
@interface CastFlutterApiCodecReader : FlutterStandardReader
|
||||||
@end
|
@end
|
||||||
@implementation CastFlutterApiCodecReader
|
@implementation CastFlutterApiCodecReader
|
||||||
|
- (nullable id)readValueOfType:(UInt8)type
|
||||||
|
{
|
||||||
|
switch (type) {
|
||||||
|
case 128:
|
||||||
|
return [CastMessage fromMap:[self readValue]];
|
||||||
|
|
||||||
|
default:
|
||||||
|
return [super readValueOfType:type];
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface CastFlutterApiCodecWriter : FlutterStandardWriter
|
@interface CastFlutterApiCodecWriter : FlutterStandardWriter
|
||||||
@end
|
@end
|
||||||
@implementation CastFlutterApiCodecWriter
|
@implementation CastFlutterApiCodecWriter
|
||||||
|
- (void)writeValue:(id)value
|
||||||
|
{
|
||||||
|
if ([value isKindOfClass:[CastMessage class]]) {
|
||||||
|
[self writeByte:128];
|
||||||
|
[self writeValue:[value toMap]];
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
[super writeValue:value];
|
||||||
|
}
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@interface CastFlutterApiCodecReaderWriter : FlutterStandardReaderWriter
|
@interface CastFlutterApiCodecReaderWriter : FlutterStandardReaderWriter
|
||||||
|
|
@ -294,4 +315,14 @@ NSObject<FlutterMessageCodec> *CastFlutterApiGetCodec() {
|
||||||
completion(nil);
|
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
|
@end
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,27 @@ class CastApi {
|
||||||
|
|
||||||
class _CastFlutterApiCodec extends StandardMessageCodec {
|
class _CastFlutterApiCodec extends StandardMessageCodec {
|
||||||
const _CastFlutterApiCodec();
|
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 {
|
abstract class CastFlutterApi {
|
||||||
static const MessageCodec<Object?> codec = _CastFlutterApiCodec();
|
static const MessageCodec<Object?> codec = _CastFlutterApiCodec();
|
||||||
|
|
@ -126,6 +147,7 @@ abstract class CastFlutterApi {
|
||||||
void onSessionResumed();
|
void onSessionResumed();
|
||||||
void onSessionResumeFailed();
|
void onSessionResumeFailed();
|
||||||
void onSessionSuspended();
|
void onSessionSuspended();
|
||||||
|
void onMessageReceived(CastMessage message);
|
||||||
static void setup(CastFlutterApi? api) {
|
static void setup(CastFlutterApi? api) {
|
||||||
{
|
{
|
||||||
const BasicMessageChannel<Object?> channel = BasicMessageChannel<Object?>(
|
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 {
|
abstract class CastFlutterApi {
|
||||||
List<String> getSessionMessageNamespaces();
|
List<String> getSessionMessageNamespaces();
|
||||||
void onCastStateChanged(int castState);
|
void onCastStateChanged(int castState);
|
||||||
|
void onMessageReceived(CastMessage message);
|
||||||
|
|
||||||
//region Session State handling
|
//region Session State handling
|
||||||
void onSessionStarting();
|
void onSessionStarting();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue