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
|
bool canComposeEmail() => mailboxDashBoardController.sessionCurrent != null
|
||||||
&& mailboxDashBoardController.userProfile.value != null
|
&& mailboxDashBoardController.userProfile.value != null
|
||||||
&& mailboxDashBoardController.mapMailboxId.containsKey(PresentationMailbox.roleOutbox)
|
&& mailboxDashBoardController.mapDefaultMailboxId.containsKey(PresentationMailbox.roleOutbox)
|
||||||
&& mailboxDashBoardController.selectedEmail.value != null;
|
&& mailboxDashBoardController.selectedEmail.value != null;
|
||||||
|
|
||||||
void backToThreadView() {
|
void backToThreadView() {
|
||||||
@@ -362,7 +362,7 @@ class EmailController extends BaseController {
|
|||||||
mailboxRole: mailboxDashBoardController.selectedMailbox.value?.role,
|
mailboxRole: mailboxDashBoardController.selectedMailbox.value?.role,
|
||||||
session: mailboxDashBoardController.sessionCurrent!,
|
session: mailboxDashBoardController.sessionCurrent!,
|
||||||
userProfile: mailboxDashBoardController.userProfile.value!,
|
userProfile: mailboxDashBoardController.userProfile.value!,
|
||||||
mapMailboxId: mailboxDashBoardController.mapMailboxId));
|
mapMailboxId: mailboxDashBoardController.mapDefaultMailboxId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -84,7 +84,7 @@ class MailboxController extends BaseController {
|
|||||||
if (success is GetAllMailboxSuccess) {
|
if (success is GetAllMailboxSuccess) {
|
||||||
currentMailboxState = success.currentMailboxState;
|
currentMailboxState = success.currentMailboxState;
|
||||||
defaultMailboxList.value = success.defaultMailboxList;
|
defaultMailboxList.value = success.defaultMailboxList;
|
||||||
_setUpMapMailboxIdDefault(success.defaultMailboxList);
|
_setUpMapMailboxIdDefault(success.defaultMailboxList, success.folderMailboxList);
|
||||||
_buildTree(success.folderMailboxList);
|
_buildTree(success.folderMailboxList);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -131,32 +131,44 @@ class MailboxController extends BaseController {
|
|||||||
folderMailboxNodeList.value = newMailboxNodeList;
|
folderMailboxNodeList.value = newMailboxNodeList;
|
||||||
}
|
}
|
||||||
|
|
||||||
void _setUpMapMailboxIdDefault(List<PresentationMailbox> defaultMailboxList) {
|
void _setUpMapMailboxIdDefault(List<PresentationMailbox> defaultMailboxList, List<PresentationMailbox> folderMailboxList) {
|
||||||
final mapMailboxId = Map<Role, MailboxId>.fromIterable(
|
final mapDefaultMailboxId = Map<Role, MailboxId>.fromIterable(
|
||||||
defaultMailboxList,
|
defaultMailboxList,
|
||||||
key: (presentationMailbox) => presentationMailbox.role!,
|
key: (presentationMailbox) => presentationMailbox.role!,
|
||||||
value: (presentationMailbox) => presentationMailbox.id);
|
value: (presentationMailbox) => presentationMailbox.id);
|
||||||
|
|
||||||
final mapMailboxDefault = Map<Role, PresentationMailbox>.fromIterable(
|
final mapDefaultMailbox = Map<Role, PresentationMailbox>.fromIterable(
|
||||||
defaultMailboxList,
|
defaultMailboxList,
|
||||||
key: (presentationMailbox) => presentationMailbox.role!,
|
key: (presentationMailbox) => presentationMailbox.role!,
|
||||||
value: (presentationMailbox) => presentationMailbox);
|
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;
|
var mailboxCurrent = mailboxDashBoardController.selectedMailbox.value;
|
||||||
|
|
||||||
if (mailboxCurrent != null) {
|
if (mailboxCurrent != null) {
|
||||||
if (mapMailboxDefault.containsKey(mailboxCurrent.role)) {
|
if (mailboxCurrent.hasRole()) {
|
||||||
mailboxDashBoardController.setNewFirstSelectedMailbox(mapMailboxDefault[mailboxCurrent.role]);
|
mailboxDashBoardController.setNewFirstSelectedMailbox(mapDefaultMailbox.containsKey(mailboxCurrent.role)
|
||||||
|
? mapDefaultMailbox[mailboxCurrent.role]
|
||||||
|
: mailboxCurrent);
|
||||||
} else {
|
} else {
|
||||||
mailboxDashBoardController.setNewFirstSelectedMailbox(mailboxCurrent);
|
mailboxDashBoardController.setNewFirstSelectedMailbox(mapFolderMailbox.containsKey(mailboxCurrent.id)
|
||||||
|
? mapFolderMailbox[mailboxCurrent.id]
|
||||||
|
: mailboxCurrent);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (mapMailboxDefault.containsKey(PresentationMailbox.roleInbox)) {
|
if (mapDefaultMailbox.containsKey(PresentationMailbox.roleInbox)) {
|
||||||
mailboxDashBoardController.setNewFirstSelectedMailbox(mapMailboxDefault[PresentationMailbox.roleInbox]);
|
mailboxDashBoardController.setNewFirstSelectedMailbox(mapDefaultMailbox[PresentationMailbox.roleInbox]);
|
||||||
} else {
|
} 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>();
|
final userProfile = Rxn<UserProfile>();
|
||||||
|
|
||||||
Session? sessionCurrent;
|
Session? sessionCurrent;
|
||||||
Map<Role, MailboxId> mapMailboxId = Map();
|
Map<Role, MailboxId> mapDefaultMailboxId = Map();
|
||||||
|
|
||||||
MailboxDashBoardController(this._getUserProfileInteractor, this._appToast);
|
MailboxDashBoardController(this._getUserProfileInteractor, this._appToast);
|
||||||
|
|
||||||
@@ -91,8 +91,8 @@ class MailboxDashBoardController extends BaseController {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void setMapMailboxId(Map<Role, MailboxId> newMapMailboxId) {
|
void setMapDefaultMailboxId(Map<Role, MailboxId> newMapMailboxId) {
|
||||||
mapMailboxId = newMapMailboxId;
|
mapDefaultMailboxId = newMapMailboxId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setSelectedMailbox(PresentationMailbox? newPresentationMailbox) {
|
void setSelectedMailbox(PresentationMailbox? newPresentationMailbox) {
|
||||||
|
|||||||
@@ -473,7 +473,7 @@ class ThreadController extends BaseController {
|
|||||||
|
|
||||||
bool canComposeEmail() => mailboxDashBoardController.sessionCurrent != null
|
bool canComposeEmail() => mailboxDashBoardController.sessionCurrent != null
|
||||||
&& mailboxDashBoardController.userProfile.value != null
|
&& mailboxDashBoardController.userProfile.value != null
|
||||||
&& mailboxDashBoardController.mapMailboxId.containsKey(PresentationMailbox.roleOutbox);
|
&& mailboxDashBoardController.mapDefaultMailboxId.containsKey(PresentationMailbox.roleOutbox);
|
||||||
|
|
||||||
void openMailboxLeftMenu() {
|
void openMailboxLeftMenu() {
|
||||||
mailboxDashBoardController.openDrawer();
|
mailboxDashBoardController.openDrawer();
|
||||||
@@ -490,7 +490,7 @@ class ThreadController extends BaseController {
|
|||||||
arguments: ComposerArguments(
|
arguments: ComposerArguments(
|
||||||
session: mailboxDashBoardController.sessionCurrent!,
|
session: mailboxDashBoardController.sessionCurrent!,
|
||||||
userProfile: mailboxDashBoardController.userProfile.value!,
|
userProfile: mailboxDashBoardController.userProfile.value!,
|
||||||
mapMailboxId: mailboxDashBoardController.mapMailboxId));
|
mapMailboxId: mailboxDashBoardController.mapDefaultMailboxId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -94,43 +94,33 @@ class AppBarThreadWidgetBuilder {
|
|||||||
|
|
||||||
Widget _buildContentCenterAppBar() {
|
Widget _buildContentCenterAppBar() {
|
||||||
return Row(
|
return Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
children: [
|
children: [
|
||||||
(_presentationMailbox != null && _presentationMailbox!.hasRole())
|
GestureDetector(
|
||||||
? GestureDetector(
|
onTap: () => {
|
||||||
onTap: () => {
|
if (_onOpenListMailboxActionClick != null) {
|
||||||
if (_onOpenListMailboxActionClick != null) {
|
_onOpenListMailboxActionClick!()
|
||||||
_onOpenListMailboxActionClick!()
|
}},
|
||||||
}},
|
child: Padding(
|
||||||
child: Padding(
|
padding: EdgeInsets.only(left: 16, right: 8),
|
||||||
padding: EdgeInsets.only(left: 16),
|
child: Container(
|
||||||
child: Text(
|
padding: EdgeInsets.zero,
|
||||||
'${_presentationMailbox?.name != null ? _presentationMailbox?.name?.name : ''}',
|
margin: EdgeInsets.zero,
|
||||||
maxLines: 1,
|
constraints: BoxConstraints(maxWidth: _getMaxWidthAppBarTitle()),
|
||||||
overflow: TextOverflow.ellipsis,
|
child: Text(
|
||||||
style: TextStyle(fontSize: 22, color: AppColor.titleAppBarMailboxListMail, fontWeight: FontWeight.w500))))
|
'${ _presentationMailbox?.name?.name ?? ''}',
|
||||||
: Expanded(child: GestureDetector(
|
maxLines: 1,
|
||||||
onTap: () => {
|
overflow: TextOverflow.ellipsis,
|
||||||
if (_onOpenListMailboxActionClick != null) {
|
style: TextStyle(fontSize: 22, color: AppColor.titleAppBarMailboxListMail, fontWeight: FontWeight.w500))
|
||||||
_onOpenListMailboxActionClick!()
|
))),
|
||||||
}},
|
if(_presentationMailbox?.getCountUnReadEmails().isNotEmpty == true)
|
||||||
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)
|
|
||||||
Container(
|
Container(
|
||||||
margin: EdgeInsets.only(left: 9),
|
margin: EdgeInsets.zero,
|
||||||
padding: EdgeInsets.only(left: 8, right: 8, top: 2.5, bottom: 2.5),
|
padding: EdgeInsets.only(left: 8, right: 8, top: 2.5, bottom: 2.5),
|
||||||
decoration:BoxDecoration(
|
decoration:BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
color: AppColor.backgroundCounterMailboxColor),
|
color: AppColor.backgroundCounterMailboxColor),
|
||||||
child: Text(
|
child: Text(
|
||||||
'${_presentationMailbox!.getCountUnReadEmails()} ${AppLocalizations.of(_context).unread_email_notification}',
|
'${_presentationMailbox?.getCountUnReadEmails() ?? ''} ${AppLocalizations.of(_context).unread_email_notification}',
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
style: TextStyle(fontSize: 10, color: AppColor.counterMailboxColor, fontWeight: FontWeight.w500),
|
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