From 90c3e1c8edcd3b4ecc999082a712833326205656 Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 22 Sep 2022 19:04:22 +0700 Subject: [PATCH] TF-971 Separate binding autocomplete --- .../bindings/autocomplete_bindings.dart | 65 ------------------- .../contact_autocomplete_bindings.dart | 39 +++++++++++ .../bindings/tmail_autocomplete_bindings.dart | 43 ++++++++++++ 3 files changed, 82 insertions(+), 65 deletions(-) delete mode 100644 lib/features/mailbox_dashboard/presentation/bindings/autocomplete_bindings.dart create mode 100644 lib/features/mailbox_dashboard/presentation/bindings/contact_autocomplete_bindings.dart create mode 100644 lib/features/mailbox_dashboard/presentation/bindings/tmail_autocomplete_bindings.dart diff --git a/lib/features/mailbox_dashboard/presentation/bindings/autocomplete_bindings.dart b/lib/features/mailbox_dashboard/presentation/bindings/autocomplete_bindings.dart deleted file mode 100644 index e6795f403..000000000 --- a/lib/features/mailbox_dashboard/presentation/bindings/autocomplete_bindings.dart +++ /dev/null @@ -1,65 +0,0 @@ - -import 'package:contact/data/datasource/auto_complete_datasource.dart'; -import 'package:contact/data/datasource_impl/tmail_contact_datasource_impl.dart'; -import 'package:contact/data/network/contact_api.dart'; -import 'package:core/utils/app_logger.dart'; -import 'package:get/get.dart'; -import 'package:tmail_ui_user/features/base/base_bindings.dart'; -import 'package:tmail_ui_user/features/composer/data/datasource/contact_datasource.dart'; -import 'package:tmail_ui_user/features/composer/data/datasource_impl/contact_datasource_impl.dart'; -import 'package:tmail_ui_user/features/composer/data/repository/auto_complete_repository_impl.dart'; -import 'package:tmail_ui_user/features/composer/data/repository/contact_repository_impl.dart'; -import 'package:tmail_ui_user/features/composer/domain/repository/auto_complete_repository.dart'; -import 'package:tmail_ui_user/features/composer/domain/repository/contact_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_device_contact_suggestions_interactor.dart'; -import 'package:tmail_ui_user/features/composer/presentation/extensions/session_extension.dart'; -import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart'; - -class AutoCompleteBindings extends BaseBindings { - - final _mailboxDashBoardController = Get.find(); - final Set _dataSources = {}; - - @override - void bindingsController() {} - - @override - void bindingsDataSource() { - Get.lazyPut(() => Get.find()); - } - - @override - void bindingsDataSourceImpl() { - _dataSources.clear(); - Get.lazyPut(() => ContactDataSourceImpl()); - if (_mailboxDashBoardController.sessionCurrent?.hasSupportTmailAutoComplete == true) { - Get.lazyPut(() => TMailContactDataSourceImpl(Get.find())); - _dataSources.add(Get.find()); - } - } - - @override - void bindingsInteractor() { - Get.lazyPut(() => GetDeviceContactSuggestionsInteractor(Get.find())); - Get.lazyPut(() => GetAutoCompleteInteractor(Get.find())); - Get.lazyPut(() => GetAutoCompleteWithDeviceContactInteractor( - Get.find(), - Get.find() - )); - } - - @override - void bindingsRepository() { - Get.lazyPut(() => Get.find()); - Get.lazyPut(() => Get.find()); - } - - @override - void bindingsRepositoryImpl() { - log('AutoCompleteBindings::bindingsRepositoryImpl(): _dataSources: ${_dataSources.length}'); - Get.lazyPut(() => ContactRepositoryImpl(Get.find())); - Get.lazyPut(() => AutoCompleteRepositoryImpl(_dataSources)); - } -} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/presentation/bindings/contact_autocomplete_bindings.dart b/lib/features/mailbox_dashboard/presentation/bindings/contact_autocomplete_bindings.dart new file mode 100644 index 000000000..f5b7703b1 --- /dev/null +++ b/lib/features/mailbox_dashboard/presentation/bindings/contact_autocomplete_bindings.dart @@ -0,0 +1,39 @@ + +import 'package:get/get.dart'; +import 'package:tmail_ui_user/features/base/base_bindings.dart'; +import 'package:tmail_ui_user/features/composer/data/datasource/contact_datasource.dart'; +import 'package:tmail_ui_user/features/composer/data/datasource_impl/contact_datasource_impl.dart'; +import 'package:tmail_ui_user/features/composer/data/repository/contact_repository_impl.dart'; +import 'package:tmail_ui_user/features/composer/domain/repository/contact_repository.dart'; +import 'package:tmail_ui_user/features/composer/domain/usecases/get_device_contact_suggestions_interactor.dart'; + +class ContactAutoCompleteBindings extends BaseBindings { + + @override + void bindingsController() {} + + @override + void bindingsDataSource() { + Get.put(Get.find()); + } + + @override + void bindingsDataSourceImpl() { + Get.put(ContactDataSourceImpl()); + } + + @override + void bindingsInteractor() { + Get.put(GetDeviceContactSuggestionsInteractor(Get.find())); + } + + @override + void bindingsRepository() { + Get.put(Get.find()); + } + + @override + void bindingsRepositoryImpl() { + Get.put(ContactRepositoryImpl(Get.find())); + } +} \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/presentation/bindings/tmail_autocomplete_bindings.dart b/lib/features/mailbox_dashboard/presentation/bindings/tmail_autocomplete_bindings.dart new file mode 100644 index 000000000..836c076aa --- /dev/null +++ b/lib/features/mailbox_dashboard/presentation/bindings/tmail_autocomplete_bindings.dart @@ -0,0 +1,43 @@ + +import 'package:contact/data/datasource_impl/tmail_contact_datasource_impl.dart'; +import 'package:contact/data/network/contact_api.dart'; +import 'package:get/get.dart'; +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_device_contact_suggestions_interactor.dart'; + +class TMailAutoCompleteBindings extends BaseBindings { + + @override + void bindingsController() {} + + @override + void bindingsDataSource() {} + + @override + void bindingsDataSourceImpl() { + Get.put(TMailContactDataSourceImpl(Get.find())); + } + + @override + void bindingsInteractor() { + Get.put(GetAutoCompleteInteractor(Get.find())); + Get.put(GetAutoCompleteWithDeviceContactInteractor( + Get.find(), + Get.find() + )); + } + + @override + void bindingsRepository() { + Get.put(Get.find()); + } + + @override + void bindingsRepositoryImpl() { + Get.put(AutoCompleteRepositoryImpl({Get.find()})); + } +} \ No newline at end of file