From fdb354d780f8d80e5579d8604ed5c664b179fed6 Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 7 Feb 2023 09:24:31 +0700 Subject: [PATCH] TF-1321 Get default identity for `Team-Mailbox` --- .../controller/single_email_controller.dart | 30 ++++++++++++++----- .../widgets/mailbox_folder_tile_builder.dart | 2 +- model/lib/mailbox/presentation_mailbox.dart | 2 +- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/lib/features/email/presentation/controller/single_email_controller.dart b/lib/features/email/presentation/controller/single_email_controller.dart index dbb73257d..272e9ce0f 100644 --- a/lib/features/email/presentation/controller/single_email_controller.dart +++ b/lib/features/email/presentation/controller/single_email_controller.dart @@ -258,17 +258,33 @@ class SingleEmailController extends BaseController with AppLoaderMixin { void _getAllIdentitiesSuccess(GetAllIdentitiesSuccess success) { if (success.identities?.isNotEmpty == true) { - try { - final identityDefault = success.identities! - .firstWhere((identity) => identity.mayDelete == false); - _identitySelected = identityDefault; - } catch (e) { - logError('SingleEmailController::_getAllIdentitiesSuccess(): ${e.toString()}'); - _identitySelected = success.identities!.first; + if (currentEmail != null) { + final currentMailbox = getMailboxContain(currentEmail!); + log('SingleEmailController::_getAllIdentitiesSuccess():currentMailbox: $currentMailbox'); + if (currentMailbox != null && currentMailbox.isPersonal == false) { + _setUpDefaultIdentityForTeamMailbox(success.identities!, currentMailbox); + } else { + _setUpDefaultIdentity(success.identities!); + } + } else { + _setUpDefaultIdentity(success.identities!); } } } + void _setUpDefaultIdentityForTeamMailbox(List identities, PresentationMailbox currentMailbox) { + final matchedTeamMailboxIdentity = identities.firstWhereOrNull((identity) => identity.email == currentMailbox.emailTeamMailBoxes); + if (matchedTeamMailboxIdentity != null) { + _identitySelected = matchedTeamMailboxIdentity; + } else { + _identitySelected = identities.first; + } + } + + void _setUpDefaultIdentity(List identities) { + _identitySelected = identities.first; + } + void _getEmailContentAction(EmailId emailId) async { final accountId = mailboxDashBoardController.accountId.value; final baseDownloadUrl = mailboxDashBoardController.sessionCurrent?.getDownloadUrl(); diff --git a/lib/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart b/lib/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart index f73b3a636..45521ee12 100644 --- a/lib/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart +++ b/lib/features/mailbox/presentation/widgets/mailbox_folder_tile_builder.dart @@ -369,7 +369,7 @@ class MailBoxFolderTileBuilder { ), if(_mailboxNode.item.isTeamMailboxes) Text( - _mailboxNode.item.nameTeamMailBoxes ?? '', + _mailboxNode.item.emailTeamMailBoxes ?? '', maxLines: 1, softWrap: CommonTextStyle.defaultSoftWrap, overflow: CommonTextStyle.defaultTextOverFlow, diff --git a/model/lib/mailbox/presentation_mailbox.dart b/model/lib/mailbox/presentation_mailbox.dart index 79b92d3f2..14d98b4ce 100644 --- a/model/lib/mailbox/presentation_mailbox.dart +++ b/model/lib/mailbox/presentation_mailbox.dart @@ -97,7 +97,7 @@ class PresentationMailbox with EquatableMixin { } } - String? get nameTeamMailBoxes => namespace?.value.substring( + String? get emailTeamMailBoxes => namespace?.value.substring( (namespace?.value.indexOf('[') ?? 0) + 1, namespace?.value.indexOf(']'));