TF-750 Implement call autocomplete when use

This commit is contained in:
dab246
2022-07-25 11:52:56 +07:00
committed by Dat H. Pham
parent 6e4b1f71f8
commit 8e71d8d8e6
2 changed files with 23 additions and 14 deletions
@@ -84,8 +84,6 @@ class ComposerController extends BaseController {
final emailContentsViewState = Rx<Either<Failure, Success>>(Right(UIState.idle));
final SendEmailInteractor _sendEmailInteractor;
final GetAutoCompleteInteractor _getAutoCompleteInteractor;
final GetAutoCompleteWithDeviceContactInteractor _getAutoCompleteWithDeviceContactInteractor;
final LocalFilePickerInteractor _localFilePickerInteractor;
final DeviceInfoPlugin _deviceInfoPlugin;
final SaveEmailAsDraftsInteractor _saveEmailAsDraftsInteractor;
@@ -98,6 +96,9 @@ class ComposerController extends BaseController {
final RichTextWebController richTextWebController;
final DownloadImageAsBase64Interactor _downloadImageAsBase64Interactor;
late GetAutoCompleteWithDeviceContactInteractor _getAutoCompleteWithDeviceContactInteractor;
late GetAutoCompleteInteractor _getAutoCompleteInteractor;
List<EmailAddress> listToEmailAddress = <EmailAddress>[];
List<EmailAddress> listCcEmailAddress = <EmailAddress>[];
List<EmailAddress> listBccEmailAddress = <EmailAddress>[];
@@ -156,8 +157,6 @@ class ComposerController extends BaseController {
ComposerController(
this._sendEmailInteractor,
this._getAutoCompleteInteractor,
this._getAutoCompleteWithDeviceContactInteractor,
this._deviceInfoPlugin,
this._localFilePickerInteractor,
this._saveEmailAsDraftsInteractor,
@@ -700,6 +699,16 @@ class ComposerController extends BaseController {
Future<List<EmailAddress>> getAutoCompleteSuggestion(
{required String word}) async {
log('ComposerController::getAutoCompleteSuggestion(): $word | $_contactSuggestionSource');
if (!Get.isRegistered<GetAutoCompleteWithDeviceContactInteractor>() ||
!Get.isRegistered<GetAutoCompleteInteractor>()) {
mailboxDashBoardController.injectAutoCompleteBindings();
}
_getAutoCompleteWithDeviceContactInteractor = Get.find<GetAutoCompleteWithDeviceContactInteractor>();
_getAutoCompleteInteractor = Get.find<GetAutoCompleteInteractor>();
if (_contactSuggestionSource == ContactSuggestionSource.all) {
return await _getAutoCompleteWithDeviceContactInteractor
.execute(AutoCompletePattern(word: word, accountId: mailboxDashBoardController.accountId.value))
@@ -11,7 +11,6 @@ import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_with_device_contact_interactor.dart';
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/bindings/advanced_filter_bindings.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
@@ -20,8 +19,7 @@ import 'package:tmail_ui_user/main/routes/app_routes.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
class AdvancedFilterController extends GetxController {
late GetAutoCompleteWithDeviceContactInteractor
_getAutoCompleteWithDeviceContactInteractor;
late GetAutoCompleteWithDeviceContactInteractor _getAutoCompleteWithDeviceContactInteractor;
late GetAutoCompleteInteractor _getAutoCompleteInteractor;
final dateFilterSelectedFormAdvancedSearch = EmailReceiveTimeType.allTime.obs;
@@ -43,13 +41,6 @@ class AdvancedFilterController extends GetxController {
final MailboxDashBoardController _mailboxDashBoardController =
Get.find<MailboxDashBoardController>();
AdvancedFilterController() {
AdvancedFilterBindings().dependencies();
_getAutoCompleteWithDeviceContactInteractor =
Get.find<GetAutoCompleteWithDeviceContactInteractor>();
_getAutoCompleteInteractor = Get.find<GetAutoCompleteInteractor>();
}
SearchEmailFilter get searchEmailFilter =>
searchController.searchEmailFilter.value;
@@ -150,6 +141,15 @@ class AdvancedFilterController extends GetxController {
Future<List<EmailAddress>> getAutoCompleteSuggestion(
{required String word}) async {
if (!Get.isRegistered<GetAutoCompleteWithDeviceContactInteractor>() ||
!Get.isRegistered<GetAutoCompleteInteractor>()) {
_mailboxDashBoardController.injectAutoCompleteBindings();
}
_getAutoCompleteWithDeviceContactInteractor = Get.find<GetAutoCompleteWithDeviceContactInteractor>();
_getAutoCompleteInteractor = Get.find<GetAutoCompleteInteractor>();
if (_contactSuggestionSource == ContactSuggestionSource.all) {
return await _getAutoCompleteWithDeviceContactInteractor
.execute(AutoCompletePattern(