TF-1063 Change color style when select filter message option
This commit is contained in:
@@ -370,6 +370,7 @@ class MailboxController extends BaseMailboxController {
|
||||
|
||||
mailboxDashBoardController.setSelectedMailbox(presentationMailboxSelected);
|
||||
mailboxDashBoardController.clearSelectedEmail();
|
||||
mailboxDashBoardController.clearFilterMessageOption();
|
||||
|
||||
_disableAllSearchEmail();
|
||||
|
||||
|
||||
+3
-10
@@ -406,6 +406,7 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
bool isSelectionEnabled() => currentSelectMode.value == SelectMode.ACTIVE;
|
||||
|
||||
void searchEmail(BuildContext context, String value) {
|
||||
clearFilterMessageOption();
|
||||
searchController.updateFilterEmail(text: SearchQuery(value));
|
||||
dispatchAction(StartSearchEmailAction());
|
||||
FocusScope.of(context).unfocus();
|
||||
@@ -1039,16 +1040,8 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
}
|
||||
}
|
||||
|
||||
bool filterMessageWithAttachmentIsActive () {
|
||||
return filterMessageOption.value == FilterMessageOption.attachments;
|
||||
}
|
||||
|
||||
bool filterMessageUnreadIsActive () {
|
||||
return filterMessageOption.value == FilterMessageOption.unread;
|
||||
}
|
||||
|
||||
bool filterMessageStarredIsActive () {
|
||||
return filterMessageOption.value == FilterMessageOption.starred;
|
||||
void clearFilterMessageOption() {
|
||||
filterMessageOption.value = FilterMessageOption.all;
|
||||
}
|
||||
|
||||
void markAsReadMailboxAction() {
|
||||
|
||||
@@ -366,24 +366,17 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
.build(),
|
||||
),
|
||||
const SizedBox(width: 16),
|
||||
Obx(() => (ButtonBuilder(imagePaths.icFilterAdvanced)
|
||||
Obx(() => (ButtonBuilder(controller.filterMessageOption.value.getIconSelected(imagePaths))
|
||||
..key(const Key('button_filter_messages'))
|
||||
..context(context)
|
||||
..decoration(const BoxDecoration(
|
||||
borderRadius: BorderRadius.all(Radius.circular(10)),
|
||||
color: AppColor.colorButtonHeaderThread))
|
||||
..decoration(BoxDecoration(
|
||||
borderRadius: const BorderRadius.all(Radius.circular(10)),
|
||||
color: controller.filterMessageOption.value.getBackgroundColor()))
|
||||
..paddingIcon(const EdgeInsets.only(right: 8))
|
||||
..size(16)
|
||||
..padding(const EdgeInsets.symmetric(horizontal: 12, vertical: 8))
|
||||
..radiusSplash(10)
|
||||
..textStyle(TextStyle(
|
||||
fontSize: 12,
|
||||
color: controller.filterMessageOption.value == FilterMessageOption.all
|
||||
? AppColor.colorTextButtonHeaderThread
|
||||
: AppColor.colorNameEmail,
|
||||
fontWeight: controller.filterMessageOption.value == FilterMessageOption.all
|
||||
? FontWeight.normal
|
||||
: FontWeight.w500))
|
||||
..textStyle(controller.filterMessageOption.value.getTextStyle())
|
||||
..addIconAction(Padding(
|
||||
padding: const EdgeInsets.only(left: 8),
|
||||
child: SvgPicture.asset(imagePaths.icArrowDown, fit: BoxFit.fill)))
|
||||
|
||||
@@ -104,4 +104,43 @@ extension FilterMessageOptionExtension on FilterMessageOption {
|
||||
return imagePaths.icStar;
|
||||
}
|
||||
}
|
||||
|
||||
String getIconSelected(ImagePaths imagePaths) {
|
||||
switch(this) {
|
||||
case FilterMessageOption.all:
|
||||
return imagePaths.icFilterAdvanced;
|
||||
case FilterMessageOption.unread:
|
||||
case FilterMessageOption.attachments:
|
||||
case FilterMessageOption.starred:
|
||||
return imagePaths.icSelectedSB;
|
||||
}
|
||||
}
|
||||
|
||||
Color getBackgroundColor() {
|
||||
switch(this) {
|
||||
case FilterMessageOption.all:
|
||||
return AppColor.colorButtonHeaderThread;
|
||||
case FilterMessageOption.unread:
|
||||
case FilterMessageOption.attachments:
|
||||
case FilterMessageOption.starred:
|
||||
return AppColor.colorItemEmailSelectedDesktop;
|
||||
}
|
||||
}
|
||||
|
||||
TextStyle getTextStyle() {
|
||||
switch(this) {
|
||||
case FilterMessageOption.all:
|
||||
return const TextStyle(
|
||||
fontSize: 12,
|
||||
fontWeight: FontWeight.normal,
|
||||
color: AppColor.colorTextButtonHeaderThread);
|
||||
case FilterMessageOption.unread:
|
||||
case FilterMessageOption.attachments:
|
||||
case FilterMessageOption.starred:
|
||||
return const TextStyle(
|
||||
fontSize: 12,
|
||||
fontWeight: FontWeight.w500,
|
||||
color: AppColor.colorTextButton);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -635,7 +635,7 @@ class ThreadController extends BaseController {
|
||||
icon: newFilterOption.getIconToast(_imagePaths));
|
||||
|
||||
if (isSearchActive() || searchController.advancedSearchIsActivated.isTrue) {
|
||||
_searchEmail(filterMessageOption: _getFilterCondition());
|
||||
_searchEmail(filterCondition: _getFilterCondition());
|
||||
} else {
|
||||
refreshAllEmail();
|
||||
}
|
||||
@@ -928,21 +928,21 @@ class ThreadController extends BaseController {
|
||||
searchController.clearTextSearch();
|
||||
}
|
||||
|
||||
void _searchEmail({UnsignedInt? limit, EmailFilterCondition? filterMessageOption}) {
|
||||
void _searchEmail({UnsignedInt? limit, EmailFilterCondition? filterCondition}) {
|
||||
if (_accountId != null && searchQuery != null) {
|
||||
searchController.activateSimpleSearch();
|
||||
|
||||
filterMessageOption = EmailFilterCondition(
|
||||
notKeyword: filterMessageOption?.notKeyword,
|
||||
hasKeyword: filterMessageOption?.hasKeyword,
|
||||
hasAttachment: filterMessageOption?.hasAttachment,
|
||||
filterCondition = EmailFilterCondition(
|
||||
notKeyword: filterCondition?.notKeyword,
|
||||
hasKeyword: filterCondition?.hasKeyword,
|
||||
hasAttachment: filterCondition?.hasAttachment,
|
||||
);
|
||||
|
||||
consumeState(_searchEmailInteractor.execute(
|
||||
_accountId!,
|
||||
limit: limit ?? ThreadConstants.defaultLimit,
|
||||
sort: _sortOrder,
|
||||
filter: _searchEmailFilter.mappingToEmailFilterCondition(moreFilterCondition: filterMessageOption),
|
||||
filter: _searchEmailFilter.mappingToEmailFilterCondition(moreFilterCondition: filterCondition),
|
||||
properties: ThreadConstants.propertiesDefault,
|
||||
));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user