TF-4141 Add the AI needs-action option into the user settings.
This commit is contained in:
@@ -35,4 +35,8 @@ class OpenMailboxAction extends MailboxUIAction {
|
||||
|
||||
class SystemBackToInboxAction extends MailboxUIAction {}
|
||||
|
||||
class RefreshAllMailboxAction extends MailboxUIAction {}
|
||||
class RefreshAllMailboxAction extends MailboxUIAction {}
|
||||
|
||||
class AutoCreateActionRequiredFolderMailboxAction extends MailboxUIAction {}
|
||||
|
||||
class AutoRemoveActionRequiredFolderMailboxAction extends MailboxUIAction {}
|
||||
+20
@@ -42,4 +42,24 @@ extension HandleActionRequiredTabExtension on BaseMailboxController {
|
||||
bool _allMailboxesContains(MailboxId id) {
|
||||
return allMailboxes.any((mailbox) => mailbox.id == id);
|
||||
}
|
||||
|
||||
void removeActionRequiredFolder() {
|
||||
final folder = PresentationMailbox.actionRequiredFolder;
|
||||
_removeFromDefaultMailboxTree(folder.id);
|
||||
_removeFromAllMailboxes(folder.id);
|
||||
}
|
||||
|
||||
void _removeFromDefaultMailboxTree(MailboxId folderId) {
|
||||
final root = defaultMailboxTree.value.root;
|
||||
final children = List<MailboxNode>.from(root.childrenItems ?? [])
|
||||
..removeWhere((node) => node.item.id == folderId);
|
||||
|
||||
defaultMailboxTree.value = MailboxTree(
|
||||
root.copyWith(children: children),
|
||||
);
|
||||
}
|
||||
|
||||
void _removeFromAllMailboxes(MailboxId folderId) {
|
||||
allMailboxes.removeWhere((mailbox) => mailbox.id == folderId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -319,6 +319,15 @@ class MailboxController extends BaseMailboxController
|
||||
} else if (action is RefreshAllMailboxAction) {
|
||||
refreshAllMailbox();
|
||||
mailboxDashBoardController.clearMailboxUIAction();
|
||||
} else if (action is AutoCreateActionRequiredFolderMailboxAction) {
|
||||
addActionRequiredFolder();
|
||||
mailboxDashBoardController.clearMailboxUIAction();
|
||||
} else if (action is AutoRemoveActionRequiredFolderMailboxAction) {
|
||||
removeActionRequiredFolder();
|
||||
mailboxDashBoardController.clearMailboxUIAction();
|
||||
if (selectedMailbox?.isActionRequired == true) {
|
||||
_switchBackToMailboxDefault();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1564,7 +1573,7 @@ class MailboxController extends BaseMailboxController
|
||||
|
||||
void autoCreateVirtualFolder() {
|
||||
addFavoriteFolderToMailboxList();
|
||||
if (mailboxDashBoardController.isAiCapabilitySupported) {
|
||||
if (mailboxDashBoardController.isAINeedsActionEnabled) {
|
||||
addActionRequiredFolder();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user