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
@@ -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;
}
}