From ce941c4852cafa73795bd3e3b7734f70a3dc74ec Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 26 Oct 2021 14:28:10 +0700 Subject: [PATCH] TF-138 Implement refresh changes email when make action for email --- .../presentation/thread_controller.dart | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/lib/features/thread/presentation/thread_controller.dart b/lib/features/thread/presentation/thread_controller.dart index 93a4496ae..b9890fb0d 100644 --- a/lib/features/thread/presentation/thread_controller.dart +++ b/lib/features/thread/presentation/thread_controller.dart @@ -5,6 +5,7 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/core/sort/comparator.dart'; +import 'package:jmap_dart_client/jmap/core/unsigned_int.dart'; import 'package:jmap_dart_client/jmap/mail/email/email.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_comparator.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_comparator_property.dart'; @@ -228,15 +229,28 @@ class ThreadController extends BaseController { } void _refreshEmailChanges() { - if (_accountId != null && _currentEmailState != null) { - consumeState(_refreshChangesEmailsInMailboxInteractor.execute( - _accountId!, - _currentEmailState!, - sort: _sortOrder, - propertiesCreated: ThreadConstants.propertiesDefault, - propertiesUpdated: ThreadConstants.propertiesUpdatedDefault, - inMailboxId: _currentMailboxId, - )); + if (isSearchActive()) { + if (_accountId != null && searchQuery != null) { + final limit = emailListSearch.length > 0 ? UnsignedInt(emailListSearch.length) : ThreadConstants.defaultLimit; + consumeState(_searchEmailInteractor.execute( + _accountId!, + limit: limit, + sort: _sortOrder, + filter: EmailFilterCondition(text: searchQuery!.value), + properties: ThreadConstants.propertiesDefault, + )); + } + } else { + if (_accountId != null && _currentEmailState != null) { + consumeState(_refreshChangesEmailsInMailboxInteractor.execute( + _accountId!, + _currentEmailState!, + sort: _sortOrder, + propertiesCreated: ThreadConstants.propertiesDefault, + propertiesUpdated: ThreadConstants.propertiesUpdatedDefault, + inMailboxId: _currentMailboxId, + )); + } } }