TF-2871 Block notification on folders Sent, Outbox, Drafts, Spam and Trash
This commit is contained in:
@@ -84,6 +84,7 @@ import 'package:tmail_ui_user/main/routes/dialog_router.dart';
|
||||
import 'package:tmail_ui_user/main/routes/navigation_router.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_utils.dart';
|
||||
import 'package:tmail_ui_user/main/utils/ios_sharing_manager.dart';
|
||||
|
||||
class MailboxController extends BaseMailboxController with MailboxActionHandlerMixin {
|
||||
|
||||
@@ -97,6 +98,8 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
final SubscribeMultipleMailboxInteractor _subscribeMultipleMailboxInteractor;
|
||||
final CreateDefaultMailboxInteractor _createDefaultMailboxInteractor;
|
||||
|
||||
IOSSharingManager? _iosSharingManager;
|
||||
|
||||
final currentSelectMode = SelectMode.INACTIVE.obs;
|
||||
final _activeScrollTop = RxBool(false);
|
||||
final _activeScrollBottom = RxBool(true);
|
||||
@@ -206,6 +209,9 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
_handleCreateDefaultFolderIfMissing(mailboxDashBoardController.mapDefaultMailboxIdByRole);
|
||||
_handleDataFromNavigationRouter();
|
||||
mailboxDashBoardController.getSpamReportBanner();
|
||||
if (PlatformInfo.isIOS) {
|
||||
_updateMailboxIdsBlockNotificationToKeychain(success.mailboxList);
|
||||
}
|
||||
} else if (success is RefreshChangesAllMailboxSuccess) {
|
||||
_selectSelectedMailboxDefault();
|
||||
mailboxDashBoardController.refreshSpamReportBanner();
|
||||
@@ -1115,7 +1121,7 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
curve: Curves.fastOutSlowIn);
|
||||
}
|
||||
|
||||
void _handleGetAllMailboxSuccess(GetAllMailboxSuccess success) async {
|
||||
Future<void> _handleGetAllMailboxSuccess(GetAllMailboxSuccess success) async {
|
||||
currentMailboxState = success.currentMailboxState;
|
||||
log('MailboxController::_handleGetAllMailboxSuccess:currentMailboxState: $currentMailboxState');
|
||||
final listMailboxDisplayed = success.mailboxList.listSubscribedMailboxesAndDefaultMailboxes;
|
||||
@@ -1127,6 +1133,28 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
||||
_setOutboxMailbox();
|
||||
}
|
||||
|
||||
Future<void> _updateMailboxIdsBlockNotificationToKeychain(List<PresentationMailbox> mailboxes) async {
|
||||
_iosSharingManager = getBinding<IOSSharingManager>();
|
||||
final accountId = mailboxDashBoardController.accountId.value;
|
||||
if (accountId == null || _iosSharingManager == null || mailboxes.isEmpty) {
|
||||
logError('MailboxController::_updateMailboxIdsBlockNotificationToKeychain: AccountId = $accountId | IosSharingManager = $_iosSharingManager | Mailboxes = ${mailboxes.length}');
|
||||
return;
|
||||
}
|
||||
|
||||
if (await _iosSharingManager!.isExistMailboxIdsBlockNotificationInKeyChain(accountId)) {
|
||||
return;
|
||||
}
|
||||
|
||||
final mailboxIdsBlockNotification = mailboxes
|
||||
.where((presentationMailbox) => presentationMailbox.pushNotificationDeactivated && presentationMailbox.mailboxId != null)
|
||||
.map((presentationMailbox) => presentationMailbox.mailboxId!)
|
||||
.toList();
|
||||
log('MailboxController::_updateMailboxIdsBlockNotificationToKeychain:MailboxIdsBlockNotification = $mailboxIdsBlockNotification');
|
||||
_iosSharingManager!.updateMailboxIdsBlockNotificationInKeyChain(
|
||||
accountId: accountId,
|
||||
mailboxIds: mailboxIdsBlockNotification);
|
||||
}
|
||||
|
||||
void _handleRefreshChangesAllMailboxSuccess(RefreshChangesAllMailboxSuccess success) async {
|
||||
currentMailboxState = success.currentMailboxState;
|
||||
log('MailboxController::_handleRefreshChangesAllMailboxSuccess:currentMailboxState: $currentMailboxState');
|
||||
|
||||
Reference in New Issue
Block a user