@@ -253,6 +253,10 @@ class MailboxController extends BaseMailboxController
253253 dashboardController: mailboxDashBoardController,
254254 toastManager: toastManager,
255255 );
256+ } else if (failure is CreateDefaultMailboxFailure ) {
257+ autoCreateVirtualFolder (
258+ mailboxDashBoardController.isAINeedsActionEnabled,
259+ );
256260 } else {
257261 super .handleFailureViewState (failure);
258262 }
@@ -273,20 +277,13 @@ class MailboxController extends BaseMailboxController
273277 },
274278 (success) {
275279 if (success is GetAllMailboxSuccess ) {
276- autoCreateVirtualFolder (
277- mailboxDashBoardController.isAINeedsActionEnabled,
278- );
279280 mailboxDashBoardController.updateRefreshAllMailboxState (Right (RefreshAllMailboxSuccess ()));
280281 _handleCreateDefaultFolderIfMissing (mailboxDashBoardController.mapDefaultMailboxIdByRole);
281282 _handleDataFromNavigationRouter ();
282283 mailboxDashBoardController.getSpamReportBanner ();
283284 if (PlatformInfo .isIOS) {
284285 _updateMailboxIdsBlockNotificationToKeychain (success.mailboxList);
285286 }
286- } else if (success is CreateDefaultMailboxAllSuccess ) {
287- autoCreateVirtualFolder (
288- mailboxDashBoardController.isAINeedsActionEnabled,
289- );
290287 }
291288 });
292289 }
@@ -614,7 +611,7 @@ class MailboxController extends BaseMailboxController
614611 .mailboxList
615612 .listSubscribedMailboxesAndDefaultMailboxes;
616613
617- await refreshTree (listMailboxDisplayed);
614+ await refreshTree (listMailboxDisplayed.withoutVirtualMailbox );
618615
619616 if (currentContext != null ) {
620617 syncAllMailboxWithDisplayName (currentContext! );
@@ -705,22 +702,32 @@ class MailboxController extends BaseMailboxController
705702 .whereNot ((role) => mapDefaultMailboxRole.containsKey (role) || findNodeByNameOnFirstLevel (role.value) != null )
706703 .toList ();
707704
705+ if (listRoleMissing.isEmpty || accountId == null || session == null ) {
706+ autoCreateVirtualFolder (
707+ mailboxDashBoardController.isAINeedsActionEnabled,
708+ );
709+ return ;
710+ }
711+
708712 final mapRoles = {
709713 for (var role in listRoleMissing)
710714 Id (uuid.v1 ()) : role
711715 };
712716 log ('MailboxController::_handleCreateDefaultFolderIfMissing():mapRoles: $mapRoles ' );
713- if (mapRoles.isNotEmpty && accountId != null && session != null ) {
714- consumeState (_createDefaultMailboxInteractor.execute (
715- session! ,
716- accountId! ,
717- mapRoles,
718- ));
719- }
717+ consumeState (_createDefaultMailboxInteractor.execute (
718+ session! ,
719+ accountId! ,
720+ mapRoles,
721+ ));
720722 }
721723
722724 Future <void > _handleCreateDefaultFolderIfMissingSuccess (CreateDefaultMailboxAllSuccess success) async {
723- if (success.listMailbox.isEmpty) return ;
725+ if (success.listMailbox.isEmpty) {
726+ autoCreateVirtualFolder (
727+ mailboxDashBoardController.isAINeedsActionEnabled,
728+ );
729+ return ;
730+ }
724731
725732 Set <Role ?> existingRoles = {};
726733 Set <MailboxName > existingNamesWithoutParent = {};
@@ -733,10 +740,13 @@ class MailboxController extends BaseMailboxController
733740 allMailboxes.add (mailbox.toPresentationMailbox ());
734741 }
735742
736- await buildTree (allMailboxes);
743+ await buildTree (allMailboxes.withoutVirtualMailbox );
737744 if (currentContext != null ) {
738745 syncAllMailboxWithDisplayName (currentContext! );
739746 }
747+ autoCreateVirtualFolder (
748+ mailboxDashBoardController.isAINeedsActionEnabled,
749+ );
740750 _setMapMailbox ();
741751 _setOutboxMailbox ();
742752 }
@@ -1320,7 +1330,7 @@ class MailboxController extends BaseMailboxController
13201330 currentMailboxState = success.currentMailboxState;
13211331 log ('MailboxController::_handleGetAllMailboxSuccess:currentMailboxState: $currentMailboxState ' );
13221332 final listMailboxDisplayed = success.mailboxList.listSubscribedMailboxesAndDefaultMailboxes;
1323- await buildTree (listMailboxDisplayed);
1333+ await buildTree (listMailboxDisplayed.withoutVirtualMailbox );
13241334 if (currentContext != null ) {
13251335 syncAllMailboxWithDisplayName (currentContext! );
13261336 }
0 commit comments