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);
}
if (_identitySelected == null) {
if (mailboxDashBoardController.listIdentities.isEmpty) {
_getAllIdentities();
} else {
_initializeSelectedIdentity(mailboxDashBoardController.listIdentities);
}
}
@@ -418,17 +420,20 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
void _getAllIdentitiesSuccess(GetAllIdentitiesSuccess success) {
if (success.identities?.isNotEmpty == true) {
if (currentEmail != null) {
final currentMailbox = getMailboxContain(currentEmail!);
log('SingleEmailController::_getAllIdentitiesSuccess():currentMailbox: $currentMailbox');
if (_isBelongToTeamMailboxes(currentMailbox)) {
_setUpDefaultIdentityForTeamMailbox(success.identities!, currentMailbox!);
} else {
_setUpDefaultIdentity(success.identities!);
}
_initializeSelectedIdentity(success.identities!);
}
}
void _initializeSelectedIdentity(List<Identity> identities) {
if (currentEmail != null) {
final currentMailbox = getMailboxContain(currentEmail!);
if (_isBelongToTeamMailboxes(currentMailbox)) {
_setUpDefaultIdentityForTeamMailbox(identities, currentMailbox!);
} else {
_setUpDefaultIdentity(success.identities!);
_setUpDefaultIdentity(identities);
}
} else {
_setUpDefaultIdentity(identities);
}
}
@@ -621,6 +626,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
blobCalendarEvent.value = null;
emailUnsubscribe.value = null;
_printEmailAction = null;
_identitySelected = null;
if (isEmailClosing) {
emailLoadedViewState.value = Right(UIState.idle);
viewState.value = Right(UIState.idle);
@@ -2523,6 +2523,8 @@ class MailboxDashBoardController extends ReloadableController {
log('MailboxDashBoardController::_handleGetAllIdentitiesSuccess: IDENTITIES_SIZE = ${_identities?.length}');
}
List<Identity> get listIdentities => _identities ?? [];
@override
void onClose() {
_emailReceiveManager.closeEmailReceiveManagerStream();