Avoid fetching again identity lists in SingleEmailController

This commit is contained in:
dab246
2024-04-23 23:53:58 +07:00
committed by Dat H. Pham
parent c0394d1a77
commit d73e0068c4
2 changed files with 18 additions and 10 deletions
@@ -327,8 +327,10 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
markAsEmailRead(selectedEmail, ReadActions.markAsRead, MarkReadAction.tap); markAsEmailRead(selectedEmail, ReadActions.markAsRead, MarkReadAction.tap);
} }
if (_identitySelected == null) { if (mailboxDashBoardController.listIdentities.isEmpty) {
_getAllIdentities(); _getAllIdentities();
} else {
_initializeSelectedIdentity(mailboxDashBoardController.listIdentities);
} }
} }
@@ -418,17 +420,20 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
void _getAllIdentitiesSuccess(GetAllIdentitiesSuccess success) { void _getAllIdentitiesSuccess(GetAllIdentitiesSuccess success) {
if (success.identities?.isNotEmpty == true) { if (success.identities?.isNotEmpty == true) {
if (currentEmail != null) { _initializeSelectedIdentity(success.identities!);
final currentMailbox = getMailboxContain(currentEmail!); }
log('SingleEmailController::_getAllIdentitiesSuccess():currentMailbox: $currentMailbox'); }
if (_isBelongToTeamMailboxes(currentMailbox)) {
_setUpDefaultIdentityForTeamMailbox(success.identities!, currentMailbox!); void _initializeSelectedIdentity(List<Identity> identities) {
} else { if (currentEmail != null) {
_setUpDefaultIdentity(success.identities!); final currentMailbox = getMailboxContain(currentEmail!);
} if (_isBelongToTeamMailboxes(currentMailbox)) {
_setUpDefaultIdentityForTeamMailbox(identities, currentMailbox!);
} else { } else {
_setUpDefaultIdentity(success.identities!); _setUpDefaultIdentity(identities);
} }
} else {
_setUpDefaultIdentity(identities);
} }
} }
@@ -621,6 +626,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
blobCalendarEvent.value = null; blobCalendarEvent.value = null;
emailUnsubscribe.value = null; emailUnsubscribe.value = null;
_printEmailAction = null; _printEmailAction = null;
_identitySelected = null;
if (isEmailClosing) { if (isEmailClosing) {
emailLoadedViewState.value = Right(UIState.idle); emailLoadedViewState.value = Right(UIState.idle);
viewState.value = Right(UIState.idle); viewState.value = Right(UIState.idle);
@@ -2523,6 +2523,8 @@ class MailboxDashBoardController extends ReloadableController {
log('MailboxDashBoardController::_handleGetAllIdentitiesSuccess: IDENTITIES_SIZE = ${_identities?.length}'); log('MailboxDashBoardController::_handleGetAllIdentitiesSuccess: IDENTITIES_SIZE = ${_identities?.length}');
} }
List<Identity> get listIdentities => _identities ?? [];
@override @override
void onClose() { void onClose() {
_emailReceiveManager.closeEmailReceiveManagerStream(); _emailReceiveManager.closeEmailReceiveManagerStream();