setupLocalNotification method

Future<void> setupLocalNotification({
  1. bool enable = true,
})

Initializes local notification support for received messages.

Implementation

Future<void> setupLocalNotification({bool enable = true}) async {
  _enableLocalNotification = enable;
  if (!enable) {
    _localNotificationReady = false;
    notifyListeners();
    return;
  }
  final plugin = _localNotifications ??= FlutterLocalNotificationsPlugin();
  const initializationSettings = InitializationSettings(
    android: AndroidInitializationSettings('@mipmap/ic_launcher'),
    iOS: DarwinInitializationSettings(
      requestAlertPermission: true,
      requestBadgePermission: true,
      requestSoundPermission: true,
    ),
    macOS: DarwinInitializationSettings(
      requestAlertPermission: true,
      requestBadgePermission: true,
      requestSoundPermission: true,
    ),
  );
  try {
    await plugin.initialize(initializationSettings);
    await plugin
        .resolvePlatformSpecificImplementation<
          AndroidFlutterLocalNotificationsPlugin
        >()
        ?.requestNotificationsPermission();
    await plugin
        .resolvePlatformSpecificImplementation<
          IOSFlutterLocalNotificationsPlugin
        >()
        ?.requestPermissions(alert: true, badge: true, sound: true);
    await plugin
        .resolvePlatformSpecificImplementation<
          MacOSFlutterLocalNotificationsPlugin
        >()
        ?.requestPermissions(alert: true, badge: true, sound: true);
    _localNotificationReady = true;
  } catch (_) {
    _localNotificationReady = false;
  }
  notifyListeners();
}