TF-79 Create popmenu for tablet
This commit is contained in:
@@ -98,7 +98,7 @@ class MailboxView extends GetWidget<MailboxController> {
|
||||
|
||||
Widget _buildSearchFormWidget(BuildContext context) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(top: 16, bottom: 12, left: 16, right: 16),
|
||||
padding: EdgeInsets.only(top: 16, left: 16, right: 16),
|
||||
child: SearchFormWidgetBuilder(context, imagePaths)
|
||||
.onNewSearchQuery((searchQuery) => {})
|
||||
.build());
|
||||
@@ -111,8 +111,8 @@ class MailboxView extends GetWidget<MailboxController> {
|
||||
? Center(child: Padding(
|
||||
padding: EdgeInsets.only(top: 16),
|
||||
child: SizedBox(
|
||||
width: 30,
|
||||
height: 30,
|
||||
width: 24,
|
||||
height: 24,
|
||||
child: CircularProgressIndicator(color: AppColor.primaryColor))))
|
||||
: SizedBox.shrink()));
|
||||
}
|
||||
@@ -128,7 +128,7 @@ class MailboxView extends GetWidget<MailboxController> {
|
||||
: SizedBox.shrink()),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(
|
||||
left: responsiveUtils.isMobile(context) ? 40 : 32,
|
||||
left: 25,
|
||||
top: 20),
|
||||
child: Text(
|
||||
AppLocalizations.of(context).my_folders,
|
||||
@@ -137,12 +137,12 @@ class MailboxView extends GetWidget<MailboxController> {
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.only(
|
||||
left: responsiveUtils.isMobile(context) ? 16 : 2,
|
||||
left: 8,
|
||||
right: 16,
|
||||
top: 10),
|
||||
child: MailboxNewFolderTileBuilder(context, responsiveUtils)
|
||||
.addIcon(imagePaths.icMailboxNewFolder)
|
||||
.addName(AppLocalizations.of(context).new_folder)
|
||||
child: (MailboxNewFolderTileBuilder()
|
||||
..addIcon(imagePaths.icMailboxNewFolder)
|
||||
..addName(AppLocalizations.of(context).new_folder))
|
||||
.build()
|
||||
),
|
||||
_buildFolderMailbox(context),
|
||||
@@ -159,9 +159,7 @@ class MailboxView extends GetWidget<MailboxController> {
|
||||
primary: false,
|
||||
itemBuilder: (context, index) =>
|
||||
Obx(() => (MailboxTileBuilder(
|
||||
context,
|
||||
imagePaths,
|
||||
responsiveUtils,
|
||||
defaultMailbox[index],
|
||||
selectMode: controller.getSelectMode(
|
||||
defaultMailbox[index],
|
||||
@@ -173,9 +171,9 @@ class MailboxView extends GetWidget<MailboxController> {
|
||||
Widget _buildFolderMailbox(BuildContext context) {
|
||||
return Obx(() => controller.folderMailboxNodeList.isNotEmpty
|
||||
? Transform(
|
||||
transform: Matrix4.translationValues(responsiveUtils.isMobile(context) ? 0.0 : -15.0, 0.0, 0.0),
|
||||
transform: Matrix4.translationValues(-4.0, 0.0, 0.0),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(left: 4, right: 16),
|
||||
padding: EdgeInsets.only(right: 12),
|
||||
child: TreeView(
|
||||
startExpanded: false,
|
||||
key: Key('folder_mailbox_list'),
|
||||
|
||||
@@ -9,29 +9,23 @@ typedef OnOpenMailboxNewFolderActionClick = void Function();
|
||||
|
||||
class MailboxNewFolderTileBuilder {
|
||||
|
||||
final BuildContext _context;
|
||||
final ResponsiveUtils _responsiveUtils;
|
||||
|
||||
String? _icon;
|
||||
String? _name;
|
||||
|
||||
OnOpenMailboxNewFolderActionClick? _onOpenMailboxFolderActionClick;
|
||||
|
||||
MailboxNewFolderTileBuilder(this._context, this._responsiveUtils);
|
||||
MailboxNewFolderTileBuilder();
|
||||
|
||||
MailboxNewFolderTileBuilder addIcon(String icon) {
|
||||
void addIcon(String icon) {
|
||||
_icon = icon;
|
||||
return this;
|
||||
}
|
||||
|
||||
MailboxNewFolderTileBuilder addName(String name) {
|
||||
void addName(String name) {
|
||||
_name = name;
|
||||
return this;
|
||||
}
|
||||
|
||||
MailboxNewFolderTileBuilder onOpenMailboxFolderAction(OnOpenMailboxNewFolderActionClick onOpenMailboxFolderActionClick) {
|
||||
void onOpenMailboxFolderAction(OnOpenMailboxNewFolderActionClick onOpenMailboxFolderActionClick) {
|
||||
_onOpenMailboxFolderActionClick = onOpenMailboxFolderActionClick;
|
||||
return this;
|
||||
}
|
||||
|
||||
Widget build() {
|
||||
@@ -55,7 +49,7 @@ class MailboxNewFolderTileBuilder {
|
||||
}
|
||||
},
|
||||
leading: Padding(
|
||||
padding: EdgeInsets.only(left: _responsiveUtils.isMobile(_context) ? 42 : 34),
|
||||
padding: EdgeInsets.only(left: 34),
|
||||
child: _icon != null
|
||||
? SvgPicture.asset(_icon!, width: 24, height: 24, color: AppColor.mailboxIconColor, fit: BoxFit.fill)
|
||||
: SizedBox.shrink()),
|
||||
|
||||
@@ -42,72 +42,74 @@ class MailBoxFolderTileBuilder {
|
||||
}
|
||||
|
||||
Widget build() {
|
||||
return Container(
|
||||
key: Key('mailbox_folder_tile'),
|
||||
alignment: Alignment.center,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular( mailboxDisplayed == MailboxDisplayed.mailbox ? 16 : 0),
|
||||
color: mailboxDisplayed == MailboxDisplayed.mailbox
|
||||
? selectMode == SelectMode.ACTIVE ? AppColor.mailboxSelectedBackgroundColor : AppColor.mailboxBackgroundColor
|
||||
: AppColor.bgMailboxListMail
|
||||
),
|
||||
child: MediaQuery(
|
||||
data: MediaQueryData(padding: EdgeInsets.zero),
|
||||
child: ListTile(
|
||||
onTap: () {
|
||||
if (_onSelectMailboxFolderClick != null) {
|
||||
_onSelectMailboxFolderClick!(_mailboxNode);
|
||||
}
|
||||
},
|
||||
contentPadding: EdgeInsets.zero,
|
||||
leading: Padding(
|
||||
padding: EdgeInsets.only(left: mailboxDisplayed == MailboxDisplayed.mailbox
|
||||
? _responsiveUtils.isMobile(_context) ? 40 : 34
|
||||
: 34),
|
||||
child: SvgPicture.asset(
|
||||
_imagePaths.icMailboxFolder,
|
||||
width: 24,
|
||||
height: 24,
|
||||
color: selectMode == SelectMode.ACTIVE
|
||||
? 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,
|
||||
return Theme(
|
||||
data: ThemeData(
|
||||
splashColor: Colors.transparent,
|
||||
highlightColor: Colors.transparent),
|
||||
child: Container(
|
||||
key: Key('mailbox_folder_tile'),
|
||||
alignment: Alignment.center,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular( mailboxDisplayed == MailboxDisplayed.mailbox ? 16 : 0),
|
||||
color: mailboxDisplayed == MailboxDisplayed.mailbox
|
||||
? selectMode == SelectMode.ACTIVE ? AppColor.mailboxSelectedBackgroundColor : AppColor.mailboxBackgroundColor
|
||||
: AppColor.bgMailboxListMail
|
||||
),
|
||||
child: MediaQuery(
|
||||
data: MediaQueryData(padding: EdgeInsets.zero),
|
||||
child: ListTile(
|
||||
onTap: () {
|
||||
if (_onSelectMailboxFolderClick != null) {
|
||||
_onSelectMailboxFolderClick!(_mailboxNode);
|
||||
}
|
||||
},
|
||||
contentPadding: EdgeInsets.zero,
|
||||
leading: Padding(
|
||||
padding: EdgeInsets.only(left: 26),
|
||||
child: SvgPicture.asset(
|
||||
_imagePaths.icMailboxFolder,
|
||||
width: 24,
|
||||
height: 24,
|
||||
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) ? 36 : 8
|
||||
: 36,
|
||||
left: mailboxDisplayed == MailboxDisplayed.mailbox ? 16 : 16),
|
||||
child: _mailboxNode.hasChildren()
|
||||
? GestureDetector(
|
||||
onTap: () {
|
||||
if (_onExpandFolderActionClick != null) {
|
||||
_onExpandFolderActionClick!(_mailboxNode);
|
||||
? 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(
|
||||
color: AppColor.primaryColor,
|
||||
icon: SvgPicture.asset(
|
||||
_mailboxNode.expandMode == ExpandMode.EXPAND ? _imagePaths.icExpandFolder : _imagePaths.icFolderArrow,
|
||||
color: selectMode == SelectMode.ACTIVE
|
||||
? AppColor.mailboxSelectedIconColor
|
||||
: AppColor.mailboxIconColor,
|
||||
fit: BoxFit.fill),
|
||||
onPressed: () {
|
||||
if (_onExpandFolderActionClick != null) {
|
||||
_onExpandFolderActionClick!(_mailboxNode);
|
||||
}
|
||||
}
|
||||
},
|
||||
child: SvgPicture.asset(
|
||||
_mailboxNode.expandMode == ExpandMode.EXPAND ? _imagePaths.icExpandFolder : _imagePaths.icFolderArrow,
|
||||
width: _mailboxNode.expandMode == ExpandMode.EXPAND ? 8 : 12,
|
||||
height: _mailboxNode.expandMode == ExpandMode.EXPAND ? 8 : 12,
|
||||
color: selectMode == SelectMode.ACTIVE
|
||||
? AppColor.mailboxSelectedIconColor
|
||||
: AppColor.mailboxIconColor,
|
||||
fit: BoxFit.fill),
|
||||
)
|
||||
: SizedBox.shrink())
|
||||
)
|
||||
: SizedBox.shrink())
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
@@ -14,17 +14,13 @@ class MailboxTileBuilder {
|
||||
|
||||
final PresentationMailbox _presentationMailbox;
|
||||
final SelectMode selectMode;
|
||||
final BuildContext _context;
|
||||
final ImagePaths _imagePaths;
|
||||
final ResponsiveUtils _responsiveUtils;
|
||||
final MailboxDisplayed mailboxDisplayed;
|
||||
|
||||
OnOpenMailboxActionClick? _onOpenMailboxActionClick;
|
||||
|
||||
MailboxTileBuilder(
|
||||
this._context,
|
||||
this._imagePaths,
|
||||
this._responsiveUtils,
|
||||
this._presentationMailbox,
|
||||
{
|
||||
this.selectMode = SelectMode.INACTIVE,
|
||||
@@ -53,8 +49,6 @@ class MailboxTileBuilder {
|
||||
child: MediaQuery(
|
||||
data: MediaQueryData(padding: EdgeInsets.zero),
|
||||
child: ListTile(
|
||||
focusColor: AppColor.primaryLightColor,
|
||||
hoverColor: AppColor.primaryLightColor,
|
||||
contentPadding: EdgeInsets.zero,
|
||||
onTap: () => {
|
||||
if (_onOpenMailboxActionClick != null) {
|
||||
@@ -62,10 +56,7 @@ class MailboxTileBuilder {
|
||||
}
|
||||
},
|
||||
leading: Padding(
|
||||
padding: EdgeInsets.only(left: mailboxDisplayed == MailboxDisplayed.mailbox
|
||||
? _responsiveUtils.isMobile(_context) ? 40 : 20
|
||||
: 40
|
||||
),
|
||||
padding: EdgeInsets.only(left: 24),
|
||||
child: SvgPicture.asset(
|
||||
'${_presentationMailbox.getMailboxIcon(_imagePaths)}',
|
||||
width: 24,
|
||||
@@ -89,7 +80,7 @@ class MailboxTileBuilder {
|
||||
)),
|
||||
trailing: mailboxDisplayed == MailboxDisplayed.mailbox
|
||||
? Padding(
|
||||
padding: EdgeInsets.only(right: _responsiveUtils.isMobile(_context) ? 36 : 24, left: 16),
|
||||
padding: EdgeInsets.only(right: 24, left: 16),
|
||||
child: Text(
|
||||
'${_presentationMailbox.getCountUnReadEmails()}',
|
||||
maxLines: 1,
|
||||
|
||||
Reference in New Issue
Block a user