NotificationPayload.fromMap constructor

NotificationPayload.fromMap(
  1. Map<String, dynamic> map
)

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,
    ),
  );
}