TF-101 Show counter for regular mailbox

This commit is contained in:
dab246
2021-10-14 11:54:46 +07:00
committed by Dat H. Pham
parent 12002444a7
commit f198f4ada0
5 changed files with 61 additions and 33 deletions
@@ -34,8 +34,9 @@ extension AppColor on Color {
static const storageUseSizeColor = Color(0xFF2D0CFF);
static const myFolderTitleColor = Color(0xFF7E869B);
static const titleAppBarMailboxListMail = Color(0xFF182952);
static const notifyCountAppBarMailboxListMail = Color(0xFF3840F7);
static const bgNotifyCountAppBarMailboxListMail = Color(0xFFE6E5FF);
static const counterMailboxColor = Color(0xFF3840F7);
static const backgroundCounterMailboxColor = Color(0xFFE6E5FF);
static const backgroundCounterMailboxSelectedColor = Color(0x17313131);
static const bgMailboxListMail = Color(0xFFFBFBFF);
static const bgMessenger = Color(0xFFF2F2F5);
static const textButtonColor = Color(0xFF182952);
@@ -278,7 +278,6 @@ class EmailView extends GetView {
switch(emailController.emailContent.value!.type) {
case EmailContentType.textHtml:
return HtmlContentViewer(
minHeight: 400,
contentHtml: emailController.emailContent.value!.content,
onLoadStart: (webController, uri) => emailController.dispatchState(Right(WebViewLoadingState())),
onLoadStop: (webController, uri) => emailController.dispatchState(Right(WebViewLoadCompletedState())),
@@ -6,6 +6,7 @@ import 'package:model/mailbox/select_mode.dart';
import 'package:model/model.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_displayed.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
typedef OnExpandFolderActionClick = void Function(MailboxNode mailboxNode);
typedef OnSelectMailboxFolderClick = void Function(MailboxNode mailboxNode);
@@ -74,44 +75,71 @@ class MailBoxFolderTileBuilder {
? AppColor.mailboxSelectedIconColor
: AppColor.mailboxIconColor,
fit: BoxFit.fill)),
title: Padding(
padding: EdgeInsets.only(left: 8),
child: Text(
'${_mailboxNode.item.name?.name}',
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 15,
color: selectMode == SelectMode.ACTIVE
? AppColor.mailboxSelectedTextColor
: AppColor.mailboxTextColor,
fontWeight: mailboxDisplayed == MailboxDisplayed.mailbox ? FontWeight.bold : FontWeight.w500),
)),
trailing: Padding(
padding: EdgeInsets.only(
right: mailboxDisplayed == MailboxDisplayed.mailbox
? _responsiveUtils.isMobile(_context) ? 0 : 8
: 0,
left: 16),
child: _mailboxNode.hasChildren()
? IconButton(
title: _buildTitleFolderItem(),
trailing: _mailboxNode.hasChildren()
? Padding(
padding: EdgeInsets.only(
right: mailboxDisplayed == MailboxDisplayed.mailbox
? _responsiveUtils.isMobile(_context) ? 0 : 8
: 0,
left: 16),
child: IconButton(
color: AppColor.primaryColor,
icon: SvgPicture.asset(
_mailboxNode.expandMode == ExpandMode.EXPAND ? _imagePaths.icExpandFolder : _imagePaths.icFolderArrow,
color: selectMode == SelectMode.ACTIVE
? AppColor.mailboxSelectedIconColor
: AppColor.mailboxIconColor,
color: selectMode == SelectMode.ACTIVE ? AppColor.mailboxSelectedIconColor : AppColor.mailboxIconColor,
fit: BoxFit.fill),
onPressed: () {
if (_onExpandFolderActionClick != null) {
_onExpandFolderActionClick!(_mailboxNode);
}
}
)
: SizedBox.shrink())
}))
: null
)
)
)
);
}
Widget _buildTitleFolderItem() {
return Row(
children: [
Expanded(child: Padding(
padding: EdgeInsets.only(left: 8),
child: Text(
'${_mailboxNode.item.name?.name ?? ''}',
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 15,
color: selectMode == SelectMode.ACTIVE ? AppColor.mailboxSelectedTextColor : AppColor.mailboxTextColor,
fontWeight: mailboxDisplayed == MailboxDisplayed.mailbox ? FontWeight.bold : FontWeight.w500),
))),
if (_mailboxNode.item.getCountUnReadEmails().isNotEmpty && mailboxDisplayed == MailboxDisplayed.mailbox)
!_mailboxNode.hasChildren()
? _buildCounter()
: Transform(
transform: Matrix4.translationValues(40.0, 0.0, 0.0),
child: _buildCounter())
],
);
}
Widget _buildCounter() {
return Container(
margin: EdgeInsets.only(left: 8, right: _mailboxNode.hasChildren() ? 0 : 16),
padding: EdgeInsets.only(left: 8, right: 8, top: 2.5, bottom: 2.5),
decoration:BoxDecoration(
borderRadius: BorderRadius.circular(8),
color: selectMode == SelectMode.ACTIVE ? AppColor.backgroundCounterMailboxSelectedColor : AppColor.backgroundCounterMailboxColor),
child: Text(
'${_mailboxNode.item.getCountUnReadEmails()} ${AppLocalizations.of(_context).unread_email_notification}',
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 10,
color: selectMode == SelectMode.ACTIVE ? AppColor.mailboxTextColor : AppColor.counterMailboxColor,
fontWeight: FontWeight.bold),
));
}
}
@@ -68,7 +68,7 @@ class MailboxTileBuilder {
title: Padding(
padding: EdgeInsets.only(left: 8),
child: Text(
'${_presentationMailbox.name?.name}',
'${_presentationMailbox.name?.name ?? ''}',
maxLines: 1,
overflow:TextOverflow.ellipsis,
style: TextStyle(
@@ -128,12 +128,12 @@ class AppBarThreadWidgetBuilder {
padding: EdgeInsets.only(left: 8, right: 8, top: 2.5, bottom: 2.5),
decoration:BoxDecoration(
borderRadius: BorderRadius.circular(8),
color: AppColor.bgNotifyCountAppBarMailboxListMail),
color: AppColor.backgroundCounterMailboxColor),
child: Text(
'${_presentationMailbox!.getCountUnReadEmails()} ${AppLocalizations.of(_context).unread_email_notification}',
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(fontSize: 10, color: AppColor.notifyCountAppBarMailboxListMail, fontWeight: FontWeight.w500),
style: TextStyle(fontSize: 10, color: AppColor.counterMailboxColor, fontWeight: FontWeight.w500),
)),
]
);