TF-3939 Add action Select all in mobile view

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-08-05 12:44:28 +07:00
committed by Dat H. Pham
parent 79faf747df
commit 6fcccfd09a
3 changed files with 13 additions and 6 deletions
@@ -23,6 +23,8 @@ extension HandlePressEmailSelectionActionExtension on ThreadController {
pressEmailSelectionAction(emailActionType, emails);
} else if (type == EmailSelectionActionType.moreAction) {
_showMoreActionMenu(context, emails, selectedMailbox);
} else if (type == EmailSelectionActionType.selectAll) {
_showSelectAllEmails();
}
}
@@ -80,4 +82,10 @@ extension HandlePressEmailSelectionActionExtension on ThreadController {
},
);
}
void _showSelectAllEmails() {
if (mailboxDashBoardController.emailsInCurrentMailbox.isAnySelectionInActive) {
setSelectAllEmailAction();
}
}
}
@@ -878,7 +878,7 @@ class ThreadController extends BaseController with EmailActionController {
focusNodeKeyBoard?.requestFocus();
}
if (_isUnSelectedAll()) {
if (mailboxDashBoardController.emailsInCurrentMailbox.isAllSelectionInActive) {
mailboxDashBoardController.currentSelectMode.value = SelectMode.INACTIVE;
mailboxDashBoardController.listEmailSelected.clear();
} else {
@@ -901,11 +901,6 @@ class ThreadController extends BaseController with EmailActionController {
List<PresentationEmail> get listEmailSelected =>
mailboxDashBoardController.emailsInCurrentMailbox.listEmailSelected;
bool _isUnSelectedAll() {
return mailboxDashBoardController.emailsInCurrentMailbox
.every((email) => email.selectMode == SelectMode.INACTIVE);
}
void cancelSelectEmail() {
if (mailboxDashBoardController.currentSelectMode.value == SelectMode.INACTIVE) {
return;
@@ -13,6 +13,10 @@ extension ListPresentationEmailExtension on List<PresentationEmail> {
return every((email) => email.selectMode == SelectMode.INACTIVE);
}
bool get isAnySelectionInActive {
return any((email) => email.selectMode == SelectMode.INACTIVE);
}
List<Email> get listEmail => map((presentationEmail) => presentationEmail.toEmail()).toList();
List<PresentationEmail> get listEmailSelected {