From 07042bfb4549d38dccb58042f5e294fc64b88305 Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 22 Feb 2024 10:38:05 +0700 Subject: [PATCH] TF-2599 Remove `requestPermissionContact` in AdvancedFilterController due unnecessary and avoid error request only one set of permissions at a time Signed-off-by: dab246 --- lib/features/base/base_controller.dart | 1 + .../advanced_filter_controller.dart | 75 +++---------------- .../config/fcm_configuration.dart | 7 +- 3 files changed, 18 insertions(+), 65 deletions(-) diff --git a/lib/features/base/base_controller.dart b/lib/features/base/base_controller.dart index 75291d492..af34702e9 100644 --- a/lib/features/base/base_controller.dart +++ b/lib/features/base/base_controller.dart @@ -258,6 +258,7 @@ abstract class BaseController extends GetxController Future injectFCMBindings(Session? session, AccountId? accountId) async { try { requireCapability(session!, accountId!, [FirebaseCapability.fcmIdentifier]); + log('BaseController::injectFCMBindings: fcmAvailable = ${AppConfig.fcmAvailable}'); if (AppConfig.fcmAvailable) { final mapEnvData = Map.from(dotenv.env); await AppUtils.loadFcmConfigFileToEnv(currentMapEnvData: mapEnvData); diff --git a/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart index dd513e674..8e084ed5c 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart @@ -5,15 +5,10 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_address.dart'; import 'package:model/model.dart'; -import 'package:permission_handler/permission_handler.dart'; import 'package:super_tag_editor/tag_editor.dart'; import 'package:tmail_ui_user/features/base/base_controller.dart'; -import 'package:tmail_ui_user/features/composer/domain/model/contact_suggestion_source.dart'; import 'package:tmail_ui_user/features/composer/domain/state/get_autocomplete_state.dart'; -import 'package:tmail_ui_user/features/composer/domain/state/get_device_contact_suggestions_state.dart'; import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_interactor.dart'; -import 'package:tmail_ui_user/features/composer/domain/usecases/get_all_autocomplete_interactor.dart'; -import 'package:tmail_ui_user/features/composer/domain/usecases/get_device_contact_suggestions_interactor.dart'; import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart'; @@ -34,9 +29,7 @@ import 'package:tmail_ui_user/main/routes/dialog_router.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; class AdvancedFilterController extends BaseController { - GetAllAutoCompleteInteractor? _getAllAutoCompleteInteractor; GetAutoCompleteInteractor? _getAutoCompleteInteractor; - GetDeviceContactSuggestionsInteractor? _getDeviceContactSuggestionsInteractor; final dateFilterSelectedFormAdvancedSearch = EmailReceiveTimeType.allTime.obs; final hasAttachment = false.obs; @@ -57,7 +50,6 @@ class AdvancedFilterController extends BaseController { TextEditingController hasKeyWordFilterInputController = TextEditingController(); TextEditingController notKeyWordFilterInputController = TextEditingController(); TextEditingController mailBoxFilterInputController = TextEditingController(); - ContactSuggestionSource _contactSuggestionSource = ContactSuggestionSource.tMailContact; final search.SearchController searchController = Get.find(); final MailboxDashBoardController _mailboxDashBoardController = Get.find(); @@ -80,11 +72,6 @@ class AdvancedFilterController extends BaseController { @override void onReady() { - if (PlatformInfo.isMobile) { - Future.delayed( - const Duration(milliseconds: 500), - () => _checkContactPermission()); - } injectAutoCompleteBindings( _mailboxDashBoardController.sessionCurrent, _mailboxDashBoardController.accountId.value); @@ -182,60 +169,20 @@ class AdvancedFilterController extends BaseController { _mailboxDashBoardController.searchEmail(context); } - void _checkContactPermission() async { - final permissionStatus = await Permission.contacts.status; - if (permissionStatus.isGranted) { - _contactSuggestionSource = ContactSuggestionSource.all; - } else if (!permissionStatus.isPermanentlyDenied) { - final requestedPermission = await Permission.contacts.request(); - _contactSuggestionSource = requestedPermission == PermissionStatus.granted - ? ContactSuggestionSource.all - : _contactSuggestionSource; - } - } - Future> getAutoCompleteSuggestion(String word) async { - log('AdvancedFilterController::getAutoCompleteSuggestion(): $word | $_contactSuggestionSource'); - _getAllAutoCompleteInteractor = getBinding(); + log('AdvancedFilterController::getAutoCompleteSuggestion(): word = $word'); _getAutoCompleteInteractor = getBinding(); - _getDeviceContactSuggestionsInteractor = getBinding(); - if (_contactSuggestionSource == ContactSuggestionSource.all) { - if (_getAllAutoCompleteInteractor != null) { - return await _getAllAutoCompleteInteractor! - .execute(AutoCompletePattern(word: word, accountId: _mailboxDashBoardController.accountId.value)) - .then((value) => value.fold( - (failure) => [], - (success) => success is GetAutoCompleteSuccess - ? success.listEmailAddress - : [] - )); - } else if (_getDeviceContactSuggestionsInteractor != null) { - return await _getDeviceContactSuggestionsInteractor! - .execute(AutoCompletePattern(word: word, accountId: _mailboxDashBoardController.accountId.value)) - .then((value) => value.fold( - (failure) => [], - (success) => success is GetDeviceContactSuggestionsSuccess - ? success.listEmailAddress - : [] - )); - } else { - return []; - } - } else { - if (_getAutoCompleteInteractor == null) { - return []; - } else { - return await _getAutoCompleteInteractor! - .execute(AutoCompletePattern(word: word, accountId: _mailboxDashBoardController.accountId.value)) - .then((value) => value.fold( - (failure) => [], - (success) => success is GetAutoCompleteSuccess - ? success.listEmailAddress - : [] - )); - } - } + return await _getAutoCompleteInteractor + ?.execute(AutoCompletePattern( + word: word, + accountId: _mailboxDashBoardController.accountId.value + )).then((value) => value.fold( + (failure) => [], + (success) => success is GetAutoCompleteSuccess + ? success.listEmailAddress + : [] + )) ?? []; } bool get isAdvancedSearchHasApplied { diff --git a/lib/features/push_notification/presentation/config/fcm_configuration.dart b/lib/features/push_notification/presentation/config/fcm_configuration.dart index 33f996f02..a83e55b2f 100644 --- a/lib/features/push_notification/presentation/config/fcm_configuration.dart +++ b/lib/features/push_notification/presentation/config/fcm_configuration.dart @@ -1,9 +1,14 @@ +import 'package:core/utils/app_logger.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:tmail_ui_user/features/push_notification/presentation/config/firebase_options.dart'; class FcmConfiguration { static Future initialize() async { - await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform); + try { + await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform); + } catch (e) { + logError('FcmConfiguration::initialize: Exception = $e'); + } } } \ No newline at end of file