displayIAM method
Implementation
Future<void> displayIAM(String messageId, {String? templateId = ''}) async {
var appContext = appNavigatorKey?.currentState?.overlay?.context;
var messages = await getInAppMessages();
var message = messages.where((m) => m.id == messageId).firstOrNull;
if (displayingIAM == messageId) { return; }
displayingIAM = messageId;
if (message != null && appContext != null && appContext.mounted && message.type == InAppMessageType.alert) {
List<TextButton> buttons = [];
setInAppMessageAsSeen(messageId);
for (var button in message.buttons) {
buttons.add(
TextButton(
style: TextButton.styleFrom(textStyle: Theme.of(appContext).textTheme.labelLarge),
child: Text(button.label),
onPressed: () {
executeButtonAction(button.id, message.id);
Navigator.of(appContext).pop();
}
));
}
showDialog(context: appContext, builder: (x) => AlertDialog(
title: Text(message.title),
content: Text(message.body),
actions: buttons
));
}
else {
await displayNotificationInternal(messageId, templateId: templateId);
}
}