MethodChannelFlutterselligent constructor
MethodChannelFlutterselligent()
Implementation
MethodChannelFlutterselligent() {
log.onRecord.listen((record) {
debugPrint('[FlutterSelligent] ${record.message}');
});
if (Platform.environment.containsKey('FLUTTER_TEST')) { return; }
methodChannel.setMethodCallHandler((call) async {
var eventType = call.arguments['broadcastEventType'];
var data = getData(call.arguments['data']);
if (call.method == 'broadcastEvent') {
if (eventType == BroadcastEventType.buttonClick.value) {
handleEvents(BroadcastEvent(
BroadcastEventType.buttonClick,
ButtonData(
data['id'] as String,
data['label'] as String,
NotificationButtonType.getByValue(data['type'] as int),
data['value'] as String,
data['data']
)
));
}
else if (eventType == BroadcastEventType.universalLink.value) {
handleEvents(BroadcastEvent(
BroadcastEventType.universalLink,
UniversalLinkData(data['url'] as String)
));
}
else if (eventType == BroadcastEventType.receivedNotification.value) {
handleEvents(BroadcastEvent(
BroadcastEventType.receivedNotification,
NotificationData(
data['pushId'] as String,
data['name'] as String
)
));
}
else if (eventType == BroadcastEventType.receivedIAM.value) {
List<InAppMessageEventData> newMessages = [];
for (var message in data['messages']) {
newMessages.add(InAppMessageEventData(message['id'] as String, message['title'] as String));
}
handleEvents(BroadcastEvent(
BroadcastEventType.receivedIAM,
InAppMessageEventListData(
newMessages
)
));
}
else if (eventType == BroadcastEventType.receiveDeviceId.value) {
handleEvents(BroadcastEvent(
BroadcastEventType.receiveDeviceId,
DeviceIdData(data['deviceId'] as String)
));
}
else if (eventType == BroadcastEventType.receivedGcmToken.value) {
handleEvents(BroadcastEvent(
BroadcastEventType.receivedGcmToken,
GcmTokenData(data['token'] as String)
));
}
else if (eventType == BroadcastEventType.displayingIAM.value) {
var messageId = data['id'] as String;
await displayIAM(messageId);
handleEvents(BroadcastEvent(
BroadcastEventType.displayingIAM,
InAppMessageEventData(
messageId,
data['title'] as String
)
));
}
else if (eventType == BroadcastEventType.displayNotification.value) {
handleEvents(BroadcastEvent(BroadcastEventType.displayNotification, null));
}
else if (eventType == BroadcastEventType.dismissNotification.value) {
displayingIAM = "";
handleEvents(BroadcastEvent(BroadcastEventType.dismissNotification, null));
}
else if (call.arguments['name'] == BroadcastEventType.customEvent.value) {
handleEvents(BroadcastEvent(BroadcastEventType.customEvent, eventType));
}
}
else {
log.warning('Method not implemented: ${call.method}');
}
});
}