TF-691 Show mailbox label inside email item of advanced search

This commit is contained in:
dab246
2022-08-04 16:17:52 +07:00
committed by Dat H. Pham
parent fcaedeaf55
commit 99a443ee5a
3 changed files with 26 additions and 9 deletions
@@ -577,7 +577,8 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
controller.currentMailbox?.role, controller.currentMailbox?.role,
controller.mailboxDashBoardController.currentSelectMode.value, controller.mailboxDashBoardController.currentSelectMode.value,
controller.searchController.searchState.value.searchStatus, controller.searchController.searchState.value.searchStatus,
controller.searchQuery) controller.searchQuery,
advancedSearchActivated: controller.searchController.isAdvancedSearchHasApply.isTrue)
..addOnPressEmailActionClick((action, email) => controller.pressEmailAction(context, action, email)) ..addOnPressEmailActionClick((action, email) => controller.pressEmailAction(context, action, email))
..addOnMoreActionClick((email, position) => _responsiveUtils.isMobile(context) ..addOnMoreActionClick((email, position) => _responsiveUtils.isMobile(context)
? controller.openContextMenuAction(context, _contextMenuActionTile(context, email)) ? controller.openContextMenuAction(context, _contextMenuActionTile(context, email))
@@ -20,6 +20,7 @@ class EmailTileBuilder {
final Role? _mailboxRole; final Role? _mailboxRole;
final SearchStatus _searchStatus; final SearchStatus _searchStatus;
final SearchQuery? _searchQuery; final SearchQuery? _searchQuery;
final bool advancedSearchActivated;
OnPressEmailActionClick? _emailActionClick; OnPressEmailActionClick? _emailActionClick;
@@ -30,6 +31,9 @@ class EmailTileBuilder {
this._selectModeAll, this._selectModeAll,
this._searchStatus, this._searchStatus,
this._searchQuery, this._searchQuery,
{
this.advancedSearchActivated = false
}
); );
void addOnPressEmailActionClick(OnPressEmailActionClick actionClick) { void addOnPressEmailActionClick(OnPressEmailActionClick actionClick) {
@@ -159,8 +163,7 @@ class EmailTileBuilder {
color: _buildTextColorForReadEmail(), color: _buildTextColorForReadEmail(),
fontWeight: _buildFontForReadEmail())) fontWeight: _buildFontForReadEmail()))
), ),
if (_searchStatus == SearchStatus.ACTIVE && if (_hasMailboxLabel)
_presentationEmail.mailboxName.isNotEmpty)
Container( Container(
margin: const EdgeInsets.only(left: 8), margin: const EdgeInsets.only(left: 8),
padding: const EdgeInsets.symmetric( padding: const EdgeInsets.symmetric(
@@ -284,4 +287,10 @@ class EmailTileBuilder {
} }
return _presentationEmail.getSenderName(); return _presentationEmail.getSenderName();
} }
bool get _hasMailboxLabel {
return (_searchStatus == SearchStatus.ACTIVE ||
advancedSearchActivated) &&
_presentationEmail.mailboxName.isNotEmpty;
}
} }
@@ -23,6 +23,7 @@ class EmailTileBuilder {
final Role? _mailboxRole; final Role? _mailboxRole;
final SearchStatus _searchStatus; final SearchStatus _searchStatus;
final SearchQuery? _searchQuery; final SearchQuery? _searchQuery;
final bool advancedSearchActivated;
OnPressEmailActionClick? _emailActionClick; OnPressEmailActionClick? _emailActionClick;
OnMoreActionClick? _onMoreActionClick; OnMoreActionClick? _onMoreActionClick;
@@ -37,6 +38,9 @@ class EmailTileBuilder {
this._selectModeAll, this._selectModeAll,
this._searchStatus, this._searchStatus,
this._searchQuery, this._searchQuery,
{
this.advancedSearchActivated = false
}
); );
void addOnPressEmailActionClick(OnPressEmailActionClick actionClick) { void addOnPressEmailActionClick(OnPressEmailActionClick actionClick) {
@@ -206,8 +210,7 @@ class EmailTileBuilder {
fontSize: 13, fontSize: 13,
color: _buildTextColorForReadEmail())) color: _buildTextColorForReadEmail()))
), ),
if (_searchStatus == SearchStatus.ACTIVE && if (_hasMailboxLabel)
_presentationEmail.mailboxName.isNotEmpty)
Container( Container(
margin: const EdgeInsets.only(left: 8), margin: const EdgeInsets.only(left: 8),
padding: const EdgeInsets.symmetric( padding: const EdgeInsets.symmetric(
@@ -368,8 +371,7 @@ class EmailTileBuilder {
fontSize: 13, fontSize: 13,
color: _buildTextColorForReadEmail())) color: _buildTextColorForReadEmail()))
), ),
if (_searchStatus == SearchStatus.ACTIVE && if (_hasMailboxLabel)
_presentationEmail.mailboxName.isNotEmpty)
Container( Container(
margin: const EdgeInsets.only(left: 8), margin: const EdgeInsets.only(left: 8),
padding: const EdgeInsets.symmetric( padding: const EdgeInsets.symmetric(
@@ -640,8 +642,7 @@ class EmailTileBuilder {
Widget _buildDateTimeForDesktopScreen() { Widget _buildDateTimeForDesktopScreen() {
return Row(children: [ return Row(children: [
if (_searchStatus == SearchStatus.ACTIVE && if (_hasMailboxLabel)
_presentationEmail.mailboxName.isNotEmpty)
Container( Container(
margin: const EdgeInsets.only(left: 8), margin: const EdgeInsets.only(left: 8),
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 3), padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 3),
@@ -839,4 +840,10 @@ class EmailTileBuilder {
bool get _isSearchEnabled => _searchStatus == SearchStatus.ACTIVE bool get _isSearchEnabled => _searchStatus == SearchStatus.ACTIVE
&& _searchQuery != null && _searchQuery != null
&& _searchQuery!.value.isNotEmpty; && _searchQuery!.value.isNotEmpty;
bool get _hasMailboxLabel {
return (_searchStatus == SearchStatus.ACTIVE ||
advancedSearchActivated) &&
_presentationEmail.mailboxName.isNotEmpty;
}
} }