NotificationPayload.fromMap constructor
The factory constructor of the notification payload.
Implementation
factory NotificationPayload.fromMap(Map<String, dynamic> map) {
return NotificationPayload(
id: map.parseDefault<String>('id', ''),
title: map.parseDefault<String>('title', ''),
body: map.parseDefault<String>('body', ''),
data: map.parseDefault<Map<String, dynamic>>('data', <String, dynamic>{}),
imageUrl: map.parse<String>('imageUrl'),
icon: map.parse<String>('icon'),
sound: map.parse<String>('sound'),
badge: map.parse<String>('badge'),
tag: map.parse<String>('tag'),
channelId: map.parse<String>('channelId'),
channelName: map.parse<String>('channelName'),
channelDescription: map.parse<String>('channelDescription'),
importance: NotificationImportance.fromValue(
map.parseDefault<int>(
'importance',
NotificationImportance.defaultImportance.value,
),
),
priority: NotificationPriority.fromValue(
map.parseDefault<int>(
'priority',
NotificationPriority.defaultPriority.value,
),
),
timestamp: map.parse<DateTime>('timestamp'),
largeIcon: map.parse<String>('largeIcon'),
bigPicture: map.parse<String>('bigPicture'),
actions: map
.parseDefault<List<Map<String, dynamic>>>(
'actions',
<Map<String, dynamic>>[],
)
.map(NotificationAction.fromMap)
.toList(),
color: map.parse<String>('color'),
vibrationPattern: map.parse<List<int>>('vibrationPattern'),
category: map.parse<String>('category'),
threadIdentifier: map.parse<String>('threadIdentifier'),
collapseKey: map.parse<String>('collapseKey'),
ttl: map.parse<int>('ttl'),
deliveryDelay: map.parse<Duration>('deliveryDelay'),
isScheduled: map.parseDefault<bool>('isScheduled', false),
scheduledDateTime: map.parse<DateTime>('scheduledDateTime'),
repeatInterval: map.parse<String>('repeatInterval') != null
? RepeatInterval.values.firstWhere(
(RepeatInterval e) => e.name.compareWithoutCase(
map.parse<String>('repeatInterval'),
),
orElse: () => RepeatInterval.none,
)
: null,
payload: map.parse<String>('payload'),
showTimestamp: map.parseDefault<bool>('showTimestamp', true),
ongoing: map.parseDefault<bool>('ongoing', false),
autoCancel: map.parseDefault<bool>('autoCancel', true),
silent: map.parseDefault<bool>('silent', false),
publicVersion: map.parse<Map<String, dynamic>>('publicVersion') != null
? NotificationPayload.fromMap(
map.parseDefault<Map<String, dynamic>>(
'publicVersion',
<String, dynamic>{},
),
)
: null,
ticker: map.parse<String>('ticker'),
whenTimestamp: map.parse<int>('whenTimestamp'),
usesChronometer: map.parseDefault<bool>('usesChronometer', false),
chronometerCountDown: map.parseDefault<bool>(
'chronometerCountDown',
false,
),
enableLights: map.parseDefault<bool>('enableLights', true),
enableVibration: map.parseDefault<bool>('enableVibration', true),
playSound: map.parseDefault<bool>('playSound', true),
criticalAlert: map.parseDefault<bool>('criticalAlert', false),
interruptionLevel: InterruptionLevel.values.firstWhere(
(InterruptionLevel e) =>
// ignore: use_compare_without_case
e.name ==
map.parseDefault<String>(
'interruptionLevel',
InterruptionLevel.active.name,
),
orElse: () => InterruptionLevel.active,
),
);
}