TF-2302 Rename GetAutocompleteWithDeviceContactInteractor to GetAllAutocompleteInteractor

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit c90e7b2508c5ee5f1e04f2d5432624ced79b0f46)
This commit is contained in:
dab246
2023-11-07 11:25:16 +07:00
committed by Dat Vu
parent 17da789fe3
commit 6d05079b1e
6 changed files with 42 additions and 88 deletions
@@ -1,20 +1,23 @@
import 'package:core/core.dart';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:dartz/dartz.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
import 'package:model/model.dart';
import 'package:model/autocomplete/auto_complete_pattern.dart';
import 'package:model/contact/contact.dart';
import 'package:tmail_ui_user/features/composer/domain/state/get_autocomplete_state.dart';
import 'package:tmail_ui_user/features/composer/domain/state/get_device_contact_suggestions_state.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_device_contact_suggestions_interactor.dart';
class GetAutoCompleteWithDeviceContactInteractor {
class GetAllAutoCompleteInteractor {
final GetAutoCompleteInteractor _getAutoCompleteInteractor;
final GetDeviceContactSuggestionsInteractor _getDeviceContactSuggestionsInteractor;
GetAutoCompleteWithDeviceContactInteractor(
this._getAutoCompleteInteractor,
this._getDeviceContactSuggestionsInteractor);
GetAllAutoCompleteInteractor(
this._getAutoCompleteInteractor,
this._getDeviceContactSuggestionsInteractor
);
Future<Either<Failure, Success>> execute(AutoCompletePattern autoCompletePattern) async {
try {
@@ -18,9 +18,7 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:html_editor_enhanced/html_editor.dart' as web_html_editor;
import 'package:http_parser/http_parser.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/identities/identity.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
@@ -44,7 +42,7 @@ import 'package:tmail_ui_user/features/composer/domain/state/save_email_as_draft
import 'package:tmail_ui_user/features/composer/domain/state/update_email_drafts_state.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/download_image_as_base64_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_with_device_contact_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_all_autocomplete_interactor.dart';
import 'package:tmail_ui_user/features/composer/presentation/controller/rich_text_web_controller.dart';
import 'package:tmail_ui_user/features/composer/presentation/controller/rich_text_mobile_tablet_controller.dart';
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
@@ -129,7 +127,7 @@ class ComposerController extends BaseController {
final DownloadImageAsBase64Interactor _downloadImageAsBase64Interactor;
final TransformHtmlEmailContentInteractor _transformHtmlEmailContentInteractor;
GetAutoCompleteWithDeviceContactInteractor? _getAutoCompleteWithDeviceContactInteractor;
GetAllAutoCompleteInteractor? _getAllAutoCompleteInteractor;
GetAutoCompleteInteractor? _getAutoCompleteInteractor;
List<EmailAddress> listToEmailAddress = <EmailAddress>[];
@@ -1029,34 +1027,19 @@ class ComposerController extends BaseController {
}
}
@override
void injectAutoCompleteBindings(Session? session, AccountId? accountId) {
try {
super.injectAutoCompleteBindings(session, accountId);
_getAutoCompleteWithDeviceContactInteractor = Get.find<GetAutoCompleteWithDeviceContactInteractor>();
_getAutoCompleteInteractor = Get.find<GetAutoCompleteInteractor>();
} catch (e) {
logError('ComposerController::injectAutoCompleteBindings(): $e');
}
}
Future<List<EmailAddress>> getAutoCompleteSuggestion(String word) async {
log('ComposerController::getAutoCompleteSuggestion(): $word | $_contactSuggestionSource');
try {
_getAutoCompleteWithDeviceContactInteractor = Get.find<GetAutoCompleteWithDeviceContactInteractor>();
_getAutoCompleteInteractor = Get.find<GetAutoCompleteInteractor>();
} catch (e) {
logError('ComposerController::getAutoCompleteSuggestion(): Exception $e');
}
_getAllAutoCompleteInteractor = getBinding<GetAllAutoCompleteInteractor>();
_getAutoCompleteInteractor = getBinding<GetAutoCompleteInteractor>();
final accountId = mailboxDashBoardController.accountId.value;
if (_contactSuggestionSource == ContactSuggestionSource.all) {
if (_getAutoCompleteWithDeviceContactInteractor == null || _getAutoCompleteInteractor == null) {
if (_getAllAutoCompleteInteractor == null || _getAutoCompleteInteractor == null) {
return <EmailAddress>[];
}
final listEmailAddress = await _getAutoCompleteWithDeviceContactInteractor!
final listEmailAddress = await _getAllAutoCompleteInteractor!
.execute(AutoCompletePattern(word: word, accountId: accountId))
.then((value) => value.fold(
(failure) => <EmailAddress>[],
@@ -14,7 +14,7 @@ import 'package:tmail_ui_user/features/base/base_controller.dart';
import 'package:tmail_ui_user/features/composer/domain/model/contact_suggestion_source.dart';
import 'package:tmail_ui_user/features/composer/domain/state/get_autocomplete_state.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_with_device_contact_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_all_autocomplete_interactor.dart';
import 'package:tmail_ui_user/features/contact/presentation/model/contact_arguments.dart';
import 'package:tmail_ui_user/features/contact/presentation/widgets/contact_suggestion_box_item.dart';
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
@@ -29,7 +29,7 @@ class ContactController extends BaseController {
final searchQuery = SearchQuery.initial().obs;
final listContactSearched = RxList<EmailAddress>();
GetAutoCompleteWithDeviceContactInteractor? _getAutoCompleteWithDeviceContactInteractor;
GetAllAutoCompleteInteractor? _getAllAutoCompleteInteractor;
GetAutoCompleteInteractor? _getAutoCompleteInteractor;
final Debouncer<String> _deBouncerTime = Debouncer<String>(const Duration(milliseconds: 500), initialValue: '');
@@ -116,31 +116,16 @@ class ContactController extends BaseController {
listContactSearched.value = listContact;
}
@override
void injectAutoCompleteBindings(Session? session, AccountId? accountId) {
try {
super.injectAutoCompleteBindings(session, accountId);
_getAutoCompleteWithDeviceContactInteractor = Get.find<GetAutoCompleteWithDeviceContactInteractor>();
_getAutoCompleteInteractor = Get.find<GetAutoCompleteInteractor>();
} catch (e) {
logError('ContactController::injectAutoCompleteBindings(): $e');
}
}
Future<List<EmailAddress>> _getAutoCompleteSuggestion(String query) async {
try {
_getAutoCompleteWithDeviceContactInteractor = Get.find<GetAutoCompleteWithDeviceContactInteractor>();
_getAutoCompleteInteractor = Get.find<GetAutoCompleteInteractor>();
} catch (e) {
logError('ContactController::getAutoCompleteSuggestion(): Exception $e');
}
_getAllAutoCompleteInteractor = getBinding<GetAllAutoCompleteInteractor>();
_getAutoCompleteInteractor = getBinding<GetAutoCompleteInteractor>();
if (_contactSuggestionSource == ContactSuggestionSource.all) {
if (_getAutoCompleteWithDeviceContactInteractor == null || _getAutoCompleteInteractor == null) {
if (_getAllAutoCompleteInteractor == null || _getAutoCompleteInteractor == null) {
return <EmailAddress>[];
}
final listEmailAddress = await _getAutoCompleteWithDeviceContactInteractor!
final listEmailAddress = await _getAllAutoCompleteInteractor!
.execute(AutoCompletePattern(word: query, limit: 30, accountId: _accountId))
.then((value) => value.fold(
(failure) => <EmailAddress>[],
@@ -6,7 +6,7 @@ import 'package:tmail_ui_user/features/base/base_bindings.dart';
import 'package:tmail_ui_user/features/composer/data/repository/auto_complete_repository_impl.dart';
import 'package:tmail_ui_user/features/composer/domain/repository/auto_complete_repository.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_with_device_contact_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_all_autocomplete_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_device_contact_suggestions_interactor.dart';
class TMailAutoCompleteBindings extends BaseBindings {
@@ -25,9 +25,9 @@ class TMailAutoCompleteBindings extends BaseBindings {
@override
void bindingsInteractor() {
Get.put(GetAutoCompleteInteractor(Get.find<AutoCompleteRepository>()));
Get.put(GetAutoCompleteWithDeviceContactInteractor(
Get.find<GetAutoCompleteInteractor>(),
Get.find<GetDeviceContactSuggestionsInteractor>()
Get.put(GetAllAutoCompleteInteractor(
Get.find<GetAutoCompleteInteractor>(),
Get.find<GetDeviceContactSuggestionsInteractor>()
));
}
@@ -3,8 +3,6 @@ import 'package:core/core.dart';
import 'package:dartz/dartz.dart';
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/session/session.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
import 'package:model/model.dart';
import 'package:permission_handler/permission_handler.dart';
@@ -13,7 +11,7 @@ import 'package:tmail_ui_user/features/base/base_controller.dart';
import 'package:tmail_ui_user/features/composer/domain/model/contact_suggestion_source.dart';
import 'package:tmail_ui_user/features/composer/domain/state/get_autocomplete_state.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_with_device_contact_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_all_autocomplete_interactor.dart';
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
@@ -33,7 +31,7 @@ import 'package:tmail_ui_user/main/routes/dialog_router.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
class AdvancedFilterController extends BaseController {
GetAutoCompleteWithDeviceContactInteractor? _getAutoCompleteWithDeviceContactInteractor;
GetAllAutoCompleteInteractor? _getAllAutoCompleteInteractor;
GetAutoCompleteInteractor? _getAutoCompleteInteractor;
final dateFilterSelectedFormAdvancedSearch = EmailReceiveTimeType.allTime.obs;
@@ -190,35 +188,18 @@ class AdvancedFilterController extends BaseController {
}
}
@override
void injectAutoCompleteBindings(Session? session, AccountId? accountId) {
try {
super.injectAutoCompleteBindings(session, accountId);
_getAutoCompleteWithDeviceContactInteractor = Get.find<GetAutoCompleteWithDeviceContactInteractor>();
_getAutoCompleteInteractor = Get.find<GetAutoCompleteInteractor>();
} catch (e) {
logError('AdvancedFilterController::injectAutoCompleteBindings(): $e');
}
}
Future<List<EmailAddress>> getAutoCompleteSuggestion(String word) async {
log('AdvancedFilterController::getAutoCompleteSuggestion(): $word | $_contactSuggestionSource');
final accountId = _mailboxDashBoardController.accountId.value;
try {
_getAutoCompleteWithDeviceContactInteractor = Get.find<GetAutoCompleteWithDeviceContactInteractor>();
_getAutoCompleteInteractor = Get.find<GetAutoCompleteInteractor>();
} catch (e) {
logError('AdvancedFilterController::getAutoCompleteSuggestion(): Exception $e');
}
_getAllAutoCompleteInteractor = getBinding<GetAllAutoCompleteInteractor>();
_getAutoCompleteInteractor = getBinding<GetAutoCompleteInteractor>();
if (_contactSuggestionSource == ContactSuggestionSource.all) {
if (_getAutoCompleteWithDeviceContactInteractor == null || _getAutoCompleteInteractor == null) {
if (_getAllAutoCompleteInteractor == null || _getAutoCompleteInteractor == null) {
return <EmailAddress>[];
}
final listEmailAddress = await _getAutoCompleteWithDeviceContactInteractor!
.execute(AutoCompletePattern(word: word, accountId: accountId))
final listEmailAddress = await _getAllAutoCompleteInteractor!
.execute(AutoCompletePattern(word: word, accountId: _mailboxDashBoardController.accountId.value))
.then((value) => value.fold(
(failure) => <EmailAddress>[],
(success) => success is GetAutoCompleteSuccess
@@ -231,7 +212,7 @@ class AdvancedFilterController extends BaseController {
}
final listEmailAddress = await _getAutoCompleteInteractor!
.execute(AutoCompletePattern(word: word, accountId: accountId))
.execute(AutoCompletePattern(word: word, accountId: _mailboxDashBoardController.accountId.value))
.then((value) => value.fold(
(failure) => <EmailAddress>[],
(success) => success is GetAutoCompleteSuccess
@@ -9,18 +9,19 @@ import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
import 'package:model/autocomplete/auto_complete_pattern.dart';
import 'package:tmail_ui_user/features/composer/domain/model/contact_suggestion_source.dart';
import 'package:tmail_ui_user/features/composer/domain/state/get_autocomplete_state.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_all_autocomplete_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_interactor.dart';
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_with_device_contact_interactor.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/bindings/contact_autocomplete_bindings.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/bindings/tmail_autocomplete_bindings.dart';
import 'package:tmail_ui_user/main/error/capability_validator.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
class ForwardRecipientController {
final ContactSuggestionSource _contactSuggestionSource = ContactSuggestionSource.tMailContact;
final TextEditingController inputRecipientController = TextEditingController();
GetAutoCompleteWithDeviceContactInteractor? _getAutoCompleteWithDeviceContactInteractor;
GetAllAutoCompleteInteractor? _getAllAutoCompleteInteractor;
GetAutoCompleteInteractor? _getAutoCompleteInteractor;
AccountId? _accountId;
Session? _session;
@@ -43,8 +44,6 @@ class ForwardRecipientController {
ContactAutoCompleteBindings().dependencies();
requireCapability(session!, accountId!, [tmailContactCapabilityIdentifier]);
TMailAutoCompleteBindings().dependencies();
_getAutoCompleteWithDeviceContactInteractor = Get.find<GetAutoCompleteWithDeviceContactInteractor>();
_getAutoCompleteInteractor = Get.find<GetAutoCompleteInteractor>();
} catch (e) {
logError('ForwardRecipientController::injectAutoCompleteBindings(): exception: $e');
}
@@ -52,12 +51,15 @@ class ForwardRecipientController {
Future<List<EmailAddress>> getAutoCompleteSuggestion(String word) async {
log('ForwardRecipientController::getAutoCompleteSuggestion(): $word');
_getAllAutoCompleteInteractor = getBinding<GetAllAutoCompleteInteractor>();
_getAutoCompleteInteractor = getBinding<GetAutoCompleteInteractor>();
if (_contactSuggestionSource == ContactSuggestionSource.all) {
if (_getAutoCompleteWithDeviceContactInteractor == null || _getAutoCompleteInteractor == null) {
log('ForwardRecipientController::getAutoCompleteSuggestion(): _getAutoCompleteWithDeviceContactInteractor is NULL');
if (_getAllAutoCompleteInteractor == null || _getAutoCompleteInteractor == null) {
log('ForwardRecipientController::getAutoCompleteSuggestion(): _getAllAutoCompleteInteractor is NULL');
return <EmailAddress>[];
} else {
return await _getAutoCompleteWithDeviceContactInteractor!
return await _getAllAutoCompleteInteractor!
.execute(AutoCompletePattern(word: word, accountId: _accountId))
.then((value) => value.fold(
(failure) => <EmailAddress>[],