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/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<String, String>.from(dotenv.env);
await AppUtils.loadFcmConfigFileToEnv(currentMapEnvData: mapEnvData);
FcmConfiguration.initialize();
if (!kIsWeb) {
if (!BuildUtils.isWeb) {
await LocalNotificationManager.instance.setUp();
}
FcmInteractorBindings().dependencies();
@@ -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 {
@@ -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();
}
}
}
@@ -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<AndroidFlutterLocalNotificationsPlugin>()
?.getActiveNotifications();