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))