TF-101 Show counter regular mailbox on app bar thread view
This commit is contained in:
@@ -343,7 +343,7 @@ class EmailController extends BaseController {
|
||||
|
||||
bool canComposeEmail() => mailboxDashBoardController.sessionCurrent != null
|
||||
&& mailboxDashBoardController.userProfile.value != null
|
||||
&& mailboxDashBoardController.mapMailboxId.containsKey(PresentationMailbox.roleOutbox)
|
||||
&& mailboxDashBoardController.mapDefaultMailboxId.containsKey(PresentationMailbox.roleOutbox)
|
||||
&& mailboxDashBoardController.selectedEmail.value != null;
|
||||
|
||||
void backToThreadView() {
|
||||
@@ -362,7 +362,7 @@ class EmailController extends BaseController {
|
||||
mailboxRole: mailboxDashBoardController.selectedMailbox.value?.role,
|
||||
session: mailboxDashBoardController.sessionCurrent!,
|
||||
userProfile: mailboxDashBoardController.userProfile.value!,
|
||||
mapMailboxId: mailboxDashBoardController.mapMailboxId));
|
||||
mapMailboxId: mailboxDashBoardController.mapDefaultMailboxId));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ class MailboxDashBoardController extends BaseController {
|
||||
final userProfile = Rxn<UserProfile>();
|
||||
|
||||
Session? sessionCurrent;
|
||||
Map<Role, MailboxId> mapMailboxId = Map();
|
||||
Map<Role, MailboxId> mapDefaultMailboxId = Map();
|
||||
|
||||
MailboxDashBoardController(this._getUserProfileInteractor, this._appToast);
|
||||
|
||||
@@ -91,8 +91,8 @@ class MailboxDashBoardController extends BaseController {
|
||||
});
|
||||
}
|
||||
|
||||
void setMapMailboxId(Map<Role, MailboxId> newMapMailboxId) {
|
||||
mapMailboxId = newMapMailboxId;
|
||||
void setMapDefaultMailboxId(Map<Role, MailboxId> newMapMailboxId) {
|
||||
mapDefaultMailboxId = newMapMailboxId;
|
||||
}
|
||||
|
||||
void setSelectedMailbox(PresentationMailbox? newPresentationMailbox) {
|
||||
|
||||
@@ -473,7 +473,7 @@ class ThreadController extends BaseController {
|
||||
|
||||
bool canComposeEmail() => mailboxDashBoardController.sessionCurrent != null
|
||||
&& mailboxDashBoardController.userProfile.value != null
|
||||
&& mailboxDashBoardController.mapMailboxId.containsKey(PresentationMailbox.roleOutbox);
|
||||
&& mailboxDashBoardController.mapDefaultMailboxId.containsKey(PresentationMailbox.roleOutbox);
|
||||
|
||||
void openMailboxLeftMenu() {
|
||||
mailboxDashBoardController.openDrawer();
|
||||
@@ -490,7 +490,7 @@ class ThreadController extends BaseController {
|
||||
arguments: ComposerArguments(
|
||||
session: mailboxDashBoardController.sessionCurrent!,
|
||||
userProfile: mailboxDashBoardController.userProfile.value!,
|
||||
mapMailboxId: mailboxDashBoardController.mapMailboxId));
|
||||
mapMailboxId: mailboxDashBoardController.mapDefaultMailboxId));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -94,43 +94,33 @@ class AppBarThreadWidgetBuilder {
|
||||
|
||||
Widget _buildContentCenterAppBar() {
|
||||
return Row(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
(_presentationMailbox != null && _presentationMailbox!.hasRole())
|
||||
? GestureDetector(
|
||||
onTap: () => {
|
||||
if (_onOpenListMailboxActionClick != null) {
|
||||
_onOpenListMailboxActionClick!()
|
||||
}},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(left: 16),
|
||||
child: Text(
|
||||
'${_presentationMailbox?.name != null ? _presentationMailbox?.name?.name : ''}',
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(fontSize: 22, color: AppColor.titleAppBarMailboxListMail, fontWeight: FontWeight.w500))))
|
||||
: Expanded(child: GestureDetector(
|
||||
onTap: () => {
|
||||
if (_onOpenListMailboxActionClick != null) {
|
||||
_onOpenListMailboxActionClick!()
|
||||
}},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(left: 16),
|
||||
child: Text(
|
||||
'${_presentationMailbox?.name != null ? _presentationMailbox?.name?.name : ''}',
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(fontSize: 22, color: AppColor.titleAppBarMailboxListMail, fontWeight: FontWeight.w500))))),
|
||||
if(_presentationMailbox != null && _presentationMailbox!.hasRole() && _presentationMailbox!.getCountUnReadEmails().isNotEmpty)
|
||||
GestureDetector(
|
||||
onTap: () => {
|
||||
if (_onOpenListMailboxActionClick != null) {
|
||||
_onOpenListMailboxActionClick!()
|
||||
}},
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(left: 16, right: 8),
|
||||
child: Container(
|
||||
padding: EdgeInsets.zero,
|
||||
margin: EdgeInsets.zero,
|
||||
constraints: BoxConstraints(maxWidth: _getMaxWidthAppBarTitle()),
|
||||
child: Text(
|
||||
'${ _presentationMailbox?.name?.name ?? ''}',
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(fontSize: 22, color: AppColor.titleAppBarMailboxListMail, fontWeight: FontWeight.w500))
|
||||
))),
|
||||
if(_presentationMailbox?.getCountUnReadEmails().isNotEmpty == true)
|
||||
Container(
|
||||
margin: EdgeInsets.only(left: 9),
|
||||
margin: EdgeInsets.zero,
|
||||
padding: EdgeInsets.only(left: 8, right: 8, top: 2.5, bottom: 2.5),
|
||||
decoration:BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
color: AppColor.backgroundCounterMailboxColor),
|
||||
child: Text(
|
||||
'${_presentationMailbox!.getCountUnReadEmails()} ${AppLocalizations.of(_context).unread_email_notification}',
|
||||
'${_presentationMailbox?.getCountUnReadEmails() ?? ''} ${AppLocalizations.of(_context).unread_email_notification}',
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
style: TextStyle(fontSize: 10, color: AppColor.counterMailboxColor, fontWeight: FontWeight.w500),
|
||||
@@ -138,4 +128,24 @@ class AppBarThreadWidgetBuilder {
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
double _getMaxWidthAppBarTitle() {
|
||||
var width = MediaQuery.of(_context).size.width;
|
||||
var widthSiblingsWidget = _presentationMailbox?.getCountUnReadEmails().isNotEmpty == true
|
||||
? 150
|
||||
: 100;
|
||||
if (_responsiveUtils.isTablet(_context)) {
|
||||
width = width * 0.7;
|
||||
widthSiblingsWidget = _presentationMailbox?.getCountUnReadEmails().isNotEmpty == true
|
||||
? 70
|
||||
: 0;
|
||||
} else if (_responsiveUtils.isDesktop(_context)) {
|
||||
width = width * 0.2;
|
||||
widthSiblingsWidget = _presentationMailbox?.getCountUnReadEmails().isNotEmpty == true
|
||||
? 50
|
||||
: 0;
|
||||
}
|
||||
final maxWidth = width - widthSiblingsWidget;
|
||||
return maxWidth;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user