TF-4336 Fix INBOX should be above Favorite folder (#4340)
This commit is contained in:
@@ -253,6 +253,10 @@ class MailboxController extends BaseMailboxController
|
||||
dashboardController: mailboxDashBoardController,
|
||||
toastManager: toastManager,
|
||||
);
|
||||
} else if (failure is CreateDefaultMailboxFailure) {
|
||||
autoCreateVirtualFolder(
|
||||
mailboxDashBoardController.isAINeedsActionEnabled,
|
||||
);
|
||||
} else {
|
||||
super.handleFailureViewState(failure);
|
||||
}
|
||||
@@ -273,9 +277,6 @@ class MailboxController extends BaseMailboxController
|
||||
},
|
||||
(success) {
|
||||
if (success is GetAllMailboxSuccess) {
|
||||
autoCreateVirtualFolder(
|
||||
mailboxDashBoardController.isAINeedsActionEnabled,
|
||||
);
|
||||
mailboxDashBoardController.updateRefreshAllMailboxState(Right(RefreshAllMailboxSuccess()));
|
||||
_handleCreateDefaultFolderIfMissing(mailboxDashBoardController.mapDefaultMailboxIdByRole);
|
||||
_handleDataFromNavigationRouter();
|
||||
@@ -283,10 +284,6 @@ class MailboxController extends BaseMailboxController
|
||||
if (PlatformInfo.isIOS) {
|
||||
_updateMailboxIdsBlockNotificationToKeychain(success.mailboxList);
|
||||
}
|
||||
} else if (success is CreateDefaultMailboxAllSuccess) {
|
||||
autoCreateVirtualFolder(
|
||||
mailboxDashBoardController.isAINeedsActionEnabled,
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -614,7 +611,7 @@ class MailboxController extends BaseMailboxController
|
||||
.mailboxList
|
||||
.listSubscribedMailboxesAndDefaultMailboxes;
|
||||
|
||||
await refreshTree(listMailboxDisplayed);
|
||||
await refreshTree(listMailboxDisplayed.withoutVirtualMailbox);
|
||||
|
||||
if (currentContext != null) {
|
||||
syncAllMailboxWithDisplayName(currentContext!);
|
||||
@@ -705,22 +702,32 @@ class MailboxController extends BaseMailboxController
|
||||
.whereNot((role) => mapDefaultMailboxRole.containsKey(role) || findNodeByNameOnFirstLevel(role.value) != null)
|
||||
.toList();
|
||||
|
||||
if (listRoleMissing.isEmpty || accountId == null || session == null) {
|
||||
autoCreateVirtualFolder(
|
||||
mailboxDashBoardController.isAINeedsActionEnabled,
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
final mapRoles = {
|
||||
for (var role in listRoleMissing)
|
||||
Id(uuid.v1()) : role
|
||||
};
|
||||
log('MailboxController::_handleCreateDefaultFolderIfMissing():mapRoles: $mapRoles');
|
||||
if (mapRoles.isNotEmpty && accountId != null && session != null) {
|
||||
consumeState(_createDefaultMailboxInteractor.execute(
|
||||
session!,
|
||||
accountId!,
|
||||
mapRoles,
|
||||
));
|
||||
}
|
||||
consumeState(_createDefaultMailboxInteractor.execute(
|
||||
session!,
|
||||
accountId!,
|
||||
mapRoles,
|
||||
));
|
||||
}
|
||||
|
||||
Future<void> _handleCreateDefaultFolderIfMissingSuccess(CreateDefaultMailboxAllSuccess success) async {
|
||||
if (success.listMailbox.isEmpty) return;
|
||||
if (success.listMailbox.isEmpty) {
|
||||
autoCreateVirtualFolder(
|
||||
mailboxDashBoardController.isAINeedsActionEnabled,
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
Set<Role?> existingRoles = {};
|
||||
Set<MailboxName> existingNamesWithoutParent = {};
|
||||
@@ -733,10 +740,13 @@ class MailboxController extends BaseMailboxController
|
||||
allMailboxes.add(mailbox.toPresentationMailbox());
|
||||
}
|
||||
|
||||
await buildTree(allMailboxes);
|
||||
await buildTree(allMailboxes.withoutVirtualMailbox);
|
||||
if (currentContext != null) {
|
||||
syncAllMailboxWithDisplayName(currentContext!);
|
||||
}
|
||||
autoCreateVirtualFolder(
|
||||
mailboxDashBoardController.isAINeedsActionEnabled,
|
||||
);
|
||||
_setMapMailbox();
|
||||
_setOutboxMailbox();
|
||||
}
|
||||
@@ -1320,7 +1330,7 @@ class MailboxController extends BaseMailboxController
|
||||
currentMailboxState = success.currentMailboxState;
|
||||
log('MailboxController::_handleGetAllMailboxSuccess:currentMailboxState: $currentMailboxState');
|
||||
final listMailboxDisplayed = success.mailboxList.listSubscribedMailboxesAndDefaultMailboxes;
|
||||
await buildTree(listMailboxDisplayed);
|
||||
await buildTree(listMailboxDisplayed.withoutVirtualMailbox);
|
||||
if (currentContext != null) {
|
||||
syncAllMailboxWithDisplayName(currentContext!);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user