TF-4066 Add unread filter in mobile search

This commit is contained in:
dab246
2025-10-14 15:44:52 +07:00
committed by Dat H. Pham
parent 58dc75f8c8
commit 500a7e6a79
2 changed files with 22 additions and 2 deletions
@@ -171,7 +171,6 @@ class SearchEmailController extends BaseController
@override @override
void handleSuccessViewState(Success success) { void handleSuccessViewState(Success success) {
super.handleSuccessViewState(success);
if (success is SearchEmailSuccess) { if (success is SearchEmailSuccess) {
_searchEmailsSuccess(success); _searchEmailsSuccess(success);
} else if (success is SearchingMoreState) { } else if (success is SearchingMoreState) {
@@ -180,16 +179,19 @@ class SearchEmailController extends BaseController
_searchMoreEmailsSuccess(success); _searchMoreEmailsSuccess(success);
} else if (success is SearchingState) { } else if (success is SearchingState) {
resultSearchViewState.value = Right(success); resultSearchViewState.value = Right(success);
} else {
super.handleSuccessViewState(success);
} }
} }
@override @override
void handleFailureViewState(Failure failure) { void handleFailureViewState(Failure failure) {
super.handleFailureViewState(failure);
if (failure is SearchEmailFailure) { if (failure is SearchEmailFailure) {
_searchEmailsFailure(failure); _searchEmailsFailure(failure);
} else if (failure is SearchMoreEmailFailure) { } else if (failure is SearchMoreEmailFailure) {
_searchMoreEmailsFailure(failure); _searchMoreEmailsFailure(failure);
} else {
super.handleFailureViewState(failure);
} }
} }
@@ -627,6 +629,11 @@ class SearchEmailController extends BaseController
_searchEmailAction(context); _searchEmailAction(context);
} }
void selectUnreadSearchFilter(BuildContext context) {
_updateSimpleSearchFilter(unreadOption: const Some(true));
_searchEmailAction(context);
}
bool checkQuickSearchFilterSelected(QuickSearchFilter filter) { bool checkQuickSearchFilterSelected(QuickSearchFilter filter) {
switch (filter) { switch (filter) {
case QuickSearchFilter.hasAttachment: case QuickSearchFilter.hasAttachment:
@@ -1014,6 +1021,9 @@ class SearchEmailController extends BaseController
case QuickSearchFilter.starred: case QuickSearchFilter.starred:
_deleteStarredSearchFilter(context); _deleteStarredSearchFilter(context);
break; break;
case QuickSearchFilter.unread:
_deleteUnreadSearchFilter(context);
break;
default: default:
break; break;
} }
@@ -1065,6 +1075,11 @@ class SearchEmailController extends BaseController
_searchEmailAction(context); _searchEmailAction(context);
} }
void _deleteUnreadSearchFilter(BuildContext context) {
_updateSimpleSearchFilter(unreadOption: const None());
_searchEmailAction(context);
}
void clearAllSearchFilterApplied(BuildContext context) { void clearAllSearchFilterApplied(BuildContext context) {
textInputSearchController.clear(); textInputSearchController.clear();
currentSearchText.value = ''; currentSearchText.value = '';
@@ -271,6 +271,8 @@ class SearchEmailView extends GetWidget<SearchEmailController>
SearchEmailViewStyle.searchFilterSizeBoxMargin, SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.starred), _buildSearchFilterButton(context, QuickSearchFilter.starred),
SearchEmailViewStyle.searchFilterSizeBoxMargin, SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.unread),
SearchEmailViewStyle.searchFilterSizeBoxMargin,
_buildSearchFilterButton(context, QuickSearchFilter.sortBy), _buildSearchFilterButton(context, QuickSearchFilter.sortBy),
], ],
), ),
@@ -382,6 +384,9 @@ class SearchEmailView extends GetWidget<SearchEmailController>
case QuickSearchFilter.starred: case QuickSearchFilter.starred:
controller.selectStarredSearchFilter(context); controller.selectStarredSearchFilter(context);
break; break;
case QuickSearchFilter.unread:
controller.selectUnreadSearchFilter(context);
break;
default: default:
break; break;
} }