TF-1369 Fix [FCM] Unsupported operation Platform

This commit is contained in:
dab246
2023-01-03 15:13:30 +07:00
committed by Dat H. Pham
parent 9301c0350b
commit eec4418e60
4 changed files with 21 additions and 7 deletions
+2 -2
View File
@@ -6,10 +6,10 @@ import 'package:core/presentation/state/success.dart';
import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/app_toast.dart';
import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/utils/app_logger.dart'; import 'package:core/utils/app_logger.dart';
import 'package:core/utils/build_utils.dart';
import 'package:core/utils/fps_manager.dart'; import 'package:core/utils/fps_manager.dart';
import 'package:dartz/dartz.dart'; import 'package:dartz/dartz.dart';
import 'package:fcm/model/firebase_capability.dart'; import 'package:fcm/model/firebase_capability.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
@@ -165,7 +165,7 @@ abstract class BaseController extends GetxController
final mapEnvData = Map<String, String>.from(dotenv.env); final mapEnvData = Map<String, String>.from(dotenv.env);
await AppUtils.loadFcmConfigFileToEnv(currentMapEnvData: mapEnvData); await AppUtils.loadFcmConfigFileToEnv(currentMapEnvData: mapEnvData);
FcmConfiguration.initialize(); FcmConfiguration.initialize();
if (!kIsWeb) { if (!BuildUtils.isWeb) {
await LocalNotificationManager.instance.setUp(); await LocalNotificationManager.instance.setUp();
} }
FcmInteractorBindings().dependencies(); FcmInteractorBindings().dependencies();
@@ -197,7 +197,11 @@ class MailboxDashBoardController extends ReloadableController {
_registerPendingFileInfo(); _registerPendingFileInfo();
_getSessionCurrent(); _getSessionCurrent();
_getAppVersion(); _getAppVersion();
_handleOpenAppByNotification(); if (!BuildUtils.isWeb) {
_handleOpenAppByNotification();
} else {
dispatchRoute(DashboardRoutes.thread);
}
super.onReady(); super.onReady();
} }
@@ -370,7 +374,7 @@ class MailboxDashBoardController extends ReloadableController {
void _handleOpenAppByNotification() async { void _handleOpenAppByNotification() async {
log("_handleOpenAppByNotification(): isOpenAppByNotification: ${LocalNotificationManager.instance.isOpenAppByNotification}"); log("_handleOpenAppByNotification(): isOpenAppByNotification: ${LocalNotificationManager.instance.isOpenAppByNotification}");
await LocalNotificationManager.instance.setUp(); await LocalNotificationManager.instance.setUp();
if(LocalNotificationManager.instance.isOpenAppByNotification) { if (LocalNotificationManager.instance.isOpenAppByNotification) {
final emailId = EmailId(Id(LocalNotificationManager.instance.getEmailIdFromNotification()!)); final emailId = EmailId(Id(LocalNotificationManager.instance.getEmailIdFromNotification()!));
_getPresentationEmailFromEmailId(emailId); _getPresentationEmailFromEmailId(emailId);
} else { } else {
@@ -2,6 +2,7 @@
import 'package:core/presentation/state/failure.dart'; import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart'; import 'package:core/presentation/state/success.dart';
import 'package:core/utils/app_logger.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/account_id.dart';
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap; import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
import 'package:model/email/presentation_email.dart'; import 'package:model/email/presentation_email.dart';
@@ -143,12 +144,16 @@ class EmailChangeListener extends ChangeListener {
if (_newState != null) { if (_newState != null) {
_storeEmailDeliveryStateAction(_newState!); _storeEmailDeliveryStateAction(_newState!);
for (var presentationEmail in success.emailList) { if (!BuildUtils.isWeb) {
_showLocalNotification(presentationEmail, _newState!); for (var presentationEmail in success.emailList) {
_showLocalNotification(presentationEmail, _newState!);
}
} }
} }
LocalNotificationManager.instance.groupPushNotification(); if (!BuildUtils.isWeb) {
LocalNotificationManager.instance.groupPushNotification();
}
} }
} }
@@ -38,6 +38,7 @@ class LocalNotificationManager {
} catch (e) { } catch (e) {
logError('LocalNotificationManager::setUp(): ERROR: ${e.toString()}'); logError('LocalNotificationManager::setUp(): ERROR: ${e.toString()}');
} }
return Future.value();
} }
bool get isOpenAppByNotification => _notificationAppLaunchDetails?.didNotificationLaunchApp ?? false; bool get isOpenAppByNotification => _notificationAppLaunchDetails?.didNotificationLaunchApp ?? false;
@@ -141,6 +142,10 @@ class LocalNotificationManager {
} }
void groupPushNotification() async { void groupPushNotification() async {
if (Platform.isIOS) {
return;
}
final activeNotifications = await _localNotificationsPlugin final activeNotifications = await _localNotificationsPlugin
.resolvePlatformSpecificImplementation<AndroidFlutterLocalNotificationsPlugin>() .resolvePlatformSpecificImplementation<AndroidFlutterLocalNotificationsPlugin>()
?.getActiveNotifications(); ?.getActiveNotifications();