1bc45e35f3
TF-3769 Thread Detail fallback to single email when get thread fails TF-3769 Thread Detail fix font height thread TF-3769 Thread Detail init with get status TF-3769 Thread Detail fix font height email receiver and sender TF-3769 Thread Detail refactor reset thread detail ui action UpdatedThreadDetailSettingAction TF-3769 Thread Detail refresh settings on app lifecycle changed TF-3769 Thread Detail fix font height email receiver and sender TF-3769 Thread Detail fix scroll view exception of single email TF-3769 Thread Detail refactor local setting TF-3769 Thread Detail optimize get cache setting TF-3769 Thread Detail fix font height email receiver TF-3769 Thread Detail refactor local setting cache TF-3769 Thread Detail fix font height email receiver and sender TF-3769 Thread Detail use CacheExceptionThrower for ManageAccountDataSourceImpl TF-3769 Thread Detail fix changing email in tablet view TF-3769 Thread Detail refresh on setting changed TF-3769 Thread Detail fix receiver alignments TF-3769 Thread Detail fix receiver alignments TF-3769 Thread Detail default setting enabled TF-3769 Thread Detail fix font style email receiver and sender TF-3769 Thread Detail fix toggle setting when responsive TF-3769 Thread Detail adjust receive time position when single email TF-3769 Thread Detail revert initializeThreadDetailEmails to void TF-3769 Thread Detail fix CI on initializeThreadDetailEmails test TF-3769 Thread Detail fix spacing email sender TF-3769 Thread Detail update receiver color mobile TF-3769 Thread Detail update collapsed preview letter spacing TF-3769 Thread Detail update receiver color mobile TF-3769 Thread Detail fix receive time position TF-3769 Thread Detail add mark read button mobile collapsed email TF-3769 Thread Detail fix font style email receiver and sender TF-3769 Thread Detail update collapsed preview font weight TF-3769 Thread Detail fix position email receiver and sender
83 lines
3.7 KiB
Dart
83 lines
3.7 KiB
Dart
import 'package:core/data/model/source_type/data_source_type.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:jmap_dart_client/http/http_client.dart';
|
|
import 'package:tmail_ui_user/features/base/base_bindings.dart';
|
|
import 'package:tmail_ui_user/features/email/domain/usecases/download_attachment_for_web_interactor.dart';
|
|
import 'package:tmail_ui_user/features/email/domain/usecases/get_email_content_interactor.dart';
|
|
import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_email_read_interactor.dart';
|
|
import 'package:tmail_ui_user/features/email/domain/usecases/mark_as_star_email_interactor.dart';
|
|
import 'package:tmail_ui_user/features/email/domain/usecases/print_email_interactor.dart';
|
|
import 'package:tmail_ui_user/features/manage_account/data/local/local_setting_cache_manager.dart';
|
|
import 'package:tmail_ui_user/features/thread_detail/data/data_source/thread_detail_data_source.dart';
|
|
import 'package:tmail_ui_user/features/thread_detail/data/data_source/thread_detail_local_data_source_impl.dart';
|
|
import 'package:tmail_ui_user/features/thread_detail/data/data_source/thread_detail_remote_data_source_impl.dart';
|
|
import 'package:tmail_ui_user/features/thread_detail/data/network/thread_detail_api.dart';
|
|
import 'package:tmail_ui_user/features/thread_detail/data/repository/thread_detail_repository_impl.dart';
|
|
import 'package:tmail_ui_user/features/thread_detail/domain/repository/thread_detail_repository.dart';
|
|
import 'package:tmail_ui_user/features/thread_detail/domain/usecases/get_emails_by_ids_interactor.dart';
|
|
import 'package:tmail_ui_user/features/thread_detail/domain/usecases/get_thread_by_id_interactor.dart';
|
|
import 'package:tmail_ui_user/features/thread_detail/domain/usecases/get_thread_detail_status_interactor.dart';
|
|
import 'package:tmail_ui_user/features/thread_detail/presentation/thread_detail_controller.dart';
|
|
import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart';
|
|
import 'package:tmail_ui_user/main/exceptions/remote_exception_thrower.dart';
|
|
|
|
class ThreadDetailBindings extends BaseBindings {
|
|
@override
|
|
void dependencies() {
|
|
Get.lazyPut(() => ThreadDetailApi(Get.find<HttpClient>()));
|
|
|
|
super.dependencies();
|
|
}
|
|
|
|
@override
|
|
void bindingsController() {
|
|
Get.put(ThreadDetailController(
|
|
Get.find<GetThreadDetailStatusInteractor>(),
|
|
Get.find<GetThreadByIdInteractor>(),
|
|
Get.find<GetEmailsByIdsInteractor>(),
|
|
Get.find<MarkAsEmailReadInteractor>(),
|
|
Get.find<MarkAsStarEmailInteractor>(),
|
|
Get.find<PrintEmailInteractor>(),
|
|
Get.find<GetEmailContentInteractor>(),
|
|
Get.find<DownloadAttachmentForWebInteractor>(),
|
|
));
|
|
}
|
|
|
|
@override
|
|
void bindingsDataSourceImpl() {
|
|
Get.lazyPut(() => ThreadDetailRemoteDataSourceImpl(
|
|
Get.find<ThreadDetailApi>(),
|
|
Get.find<RemoteExceptionThrower>(),
|
|
));
|
|
Get.lazyPut(() => ThreadDetailLocalDataSourceImpl(
|
|
Get.find<LocalSettingCacheManager>(),
|
|
Get.find<CacheExceptionThrower>(),
|
|
));
|
|
}
|
|
|
|
@override
|
|
void bindingsDataSource() {
|
|
Get.lazyPut<ThreadDetailDataSource>(() => Get.find<ThreadDetailRemoteDataSourceImpl>());
|
|
}
|
|
|
|
@override
|
|
void bindingsRepositoryImpl() {
|
|
Get.lazyPut(() => ThreadDetailRepositoryImpl({
|
|
DataSourceType.network: Get.find<ThreadDetailDataSource>(),
|
|
DataSourceType.local: Get.find<ThreadDetailLocalDataSourceImpl>(),
|
|
}));
|
|
}
|
|
|
|
@override
|
|
void bindingsRepository() {
|
|
Get.lazyPut<ThreadDetailRepository>(() => Get.find<ThreadDetailRepositoryImpl>());
|
|
}
|
|
|
|
@override
|
|
void bindingsInteractor() {
|
|
Get.lazyPut(() => GetThreadDetailStatusInteractor(Get.find<ThreadDetailRepository>()));
|
|
Get.lazyPut(() => GetThreadByIdInteractor(Get.find<ThreadDetailRepository>()));
|
|
Get.lazyPut(() => GetEmailsByIdsInteractor(Get.find<ThreadDetailRepository>()));
|
|
}
|
|
}
|