diff --git a/lib/features/base/base_controller.dart b/lib/features/base/base_controller.dart index 5639133e1..20f19b347 100644 --- a/lib/features/base/base_controller.dart +++ b/lib/features/base/base_controller.dart @@ -6,10 +6,10 @@ import 'package:core/presentation/state/success.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/utils/app_logger.dart'; +import 'package:core/utils/build_utils.dart'; import 'package:core/utils/fps_manager.dart'; import 'package:dartz/dartz.dart'; import 'package:fcm/model/firebase_capability.dart'; -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -165,7 +165,7 @@ abstract class BaseController extends GetxController final mapEnvData = Map.from(dotenv.env); await AppUtils.loadFcmConfigFileToEnv(currentMapEnvData: mapEnvData); FcmConfiguration.initialize(); - if (!kIsWeb) { + if (!BuildUtils.isWeb) { await LocalNotificationManager.instance.setUp(); } FcmInteractorBindings().dependencies(); diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index e1317e6a6..434478118 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -197,7 +197,11 @@ class MailboxDashBoardController extends ReloadableController { _registerPendingFileInfo(); _getSessionCurrent(); _getAppVersion(); - _handleOpenAppByNotification(); + if (!BuildUtils.isWeb) { + _handleOpenAppByNotification(); + } else { + dispatchRoute(DashboardRoutes.thread); + } super.onReady(); } @@ -370,7 +374,7 @@ class MailboxDashBoardController extends ReloadableController { void _handleOpenAppByNotification() async { log("_handleOpenAppByNotification(): isOpenAppByNotification: ${LocalNotificationManager.instance.isOpenAppByNotification}"); await LocalNotificationManager.instance.setUp(); - if(LocalNotificationManager.instance.isOpenAppByNotification) { + if (LocalNotificationManager.instance.isOpenAppByNotification) { final emailId = EmailId(Id(LocalNotificationManager.instance.getEmailIdFromNotification()!)); _getPresentationEmailFromEmailId(emailId); } else { diff --git a/lib/features/push_notification/presentation/listener/email_change_listener.dart b/lib/features/push_notification/presentation/listener/email_change_listener.dart index f4f8299c1..f9fc997fe 100644 --- a/lib/features/push_notification/presentation/listener/email_change_listener.dart +++ b/lib/features/push_notification/presentation/listener/email_change_listener.dart @@ -2,6 +2,7 @@ import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/success.dart'; import 'package:core/utils/app_logger.dart'; +import 'package:core/utils/build_utils.dart'; import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/core/state.dart' as jmap; import 'package:model/email/presentation_email.dart'; @@ -143,12 +144,16 @@ class EmailChangeListener extends ChangeListener { if (_newState != null) { _storeEmailDeliveryStateAction(_newState!); - for (var presentationEmail in success.emailList) { - _showLocalNotification(presentationEmail, _newState!); + if (!BuildUtils.isWeb) { + for (var presentationEmail in success.emailList) { + _showLocalNotification(presentationEmail, _newState!); + } } } - LocalNotificationManager.instance.groupPushNotification(); + if (!BuildUtils.isWeb) { + LocalNotificationManager.instance.groupPushNotification(); + } } } diff --git a/lib/features/push_notification/presentation/notification/local_notification_manager.dart b/lib/features/push_notification/presentation/notification/local_notification_manager.dart index 6b399c74b..6d3b68802 100644 --- a/lib/features/push_notification/presentation/notification/local_notification_manager.dart +++ b/lib/features/push_notification/presentation/notification/local_notification_manager.dart @@ -38,6 +38,7 @@ class LocalNotificationManager { } catch (e) { logError('LocalNotificationManager::setUp(): ERROR: ${e.toString()}'); } + return Future.value(); } bool get isOpenAppByNotification => _notificationAppLaunchDetails?.didNotificationLaunchApp ?? false; @@ -141,6 +142,10 @@ class LocalNotificationManager { } void groupPushNotification() async { + if (Platform.isIOS) { + return; + } + final activeNotifications = await _localNotificationsPlugin .resolvePlatformSpecificImplementation() ?.getActiveNotifications();