TF-101 Show counter regular mailbox on app bar thread view

This commit is contained in:
dab246
2021-10-14 13:59:17 +07:00
committed by Dat H. Pham
parent f198f4ada0
commit eb8103d98f
5 changed files with 73 additions and 51 deletions
@@ -84,7 +84,7 @@ class MailboxController extends BaseController {
if (success is GetAllMailboxSuccess) {
currentMailboxState = success.currentMailboxState;
defaultMailboxList.value = success.defaultMailboxList;
_setUpMapMailboxIdDefault(success.defaultMailboxList);
_setUpMapMailboxIdDefault(success.defaultMailboxList, success.folderMailboxList);
_buildTree(success.folderMailboxList);
}
});
@@ -131,32 +131,44 @@ class MailboxController extends BaseController {
folderMailboxNodeList.value = newMailboxNodeList;
}
void _setUpMapMailboxIdDefault(List<PresentationMailbox> defaultMailboxList) {
final mapMailboxId = Map<Role, MailboxId>.fromIterable(
void _setUpMapMailboxIdDefault(List<PresentationMailbox> defaultMailboxList, List<PresentationMailbox> folderMailboxList) {
final mapDefaultMailboxId = Map<Role, MailboxId>.fromIterable(
defaultMailboxList,
key: (presentationMailbox) => presentationMailbox.role!,
value: (presentationMailbox) => presentationMailbox.id);
final mapMailboxDefault = Map<Role, PresentationMailbox>.fromIterable(
defaultMailboxList,
key: (presentationMailbox) => presentationMailbox.role!,
value: (presentationMailbox) => presentationMailbox);
final mapDefaultMailbox = Map<Role, PresentationMailbox>.fromIterable(
defaultMailboxList,
key: (presentationMailbox) => presentationMailbox.role!,
value: (presentationMailbox) => presentationMailbox);
mailboxDashBoardController.setMapMailboxId(mapMailboxId);
final mapFolderMailbox = Map<MailboxId, PresentationMailbox>.fromIterable(
folderMailboxList,
key: (presentationMailbox) => presentationMailbox.id,
value: (presentationMailbox) => presentationMailbox);
mailboxDashBoardController.setMapDefaultMailboxId(mapDefaultMailboxId);
var mailboxCurrent = mailboxDashBoardController.selectedMailbox.value;
if (mailboxCurrent != null) {
if (mapMailboxDefault.containsKey(mailboxCurrent.role)) {
mailboxDashBoardController.setNewFirstSelectedMailbox(mapMailboxDefault[mailboxCurrent.role]);
if (mailboxCurrent.hasRole()) {
mailboxDashBoardController.setNewFirstSelectedMailbox(mapDefaultMailbox.containsKey(mailboxCurrent.role)
? mapDefaultMailbox[mailboxCurrent.role]
: mailboxCurrent);
} else {
mailboxDashBoardController.setNewFirstSelectedMailbox(mailboxCurrent);
mailboxDashBoardController.setNewFirstSelectedMailbox(mapFolderMailbox.containsKey(mailboxCurrent.id)
? mapFolderMailbox[mailboxCurrent.id]
: mailboxCurrent);
}
} else {
if (mapMailboxDefault.containsKey(PresentationMailbox.roleInbox)) {
mailboxDashBoardController.setNewFirstSelectedMailbox(mapMailboxDefault[PresentationMailbox.roleInbox]);
if (mapDefaultMailbox.containsKey(PresentationMailbox.roleInbox)) {
mailboxDashBoardController.setNewFirstSelectedMailbox(mapDefaultMailbox[PresentationMailbox.roleInbox]);
} else {
mailboxDashBoardController.setNewFirstSelectedMailbox(mapMailboxDefault.values.first);
final allMailbox = defaultMailboxList + folderMailboxList;
if (allMailbox.isNotEmpty) {
mailboxDashBoardController.setNewFirstSelectedMailbox(allMailbox.first);
}
}
}
}