diff --git a/lib/features/composer/presentation/composer_bindings.dart b/lib/features/composer/presentation/composer_bindings.dart index f0fe3479d..51872b696 100644 --- a/lib/features/composer/presentation/composer_bindings.dart +++ b/lib/features/composer/presentation/composer_bindings.dart @@ -51,6 +51,12 @@ import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_work import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_manager.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_worker_queue.dart'; import 'package:tmail_ui_user/features/offline_mode/manager/sending_email_cache_manager.dart'; +import 'package:tmail_ui_user/features/server_settings/data/datasource/server_settings_data_source.dart'; +import 'package:tmail_ui_user/features/server_settings/data/datasource_impl/remote_server_settings_data_source_impl.dart'; +import 'package:tmail_ui_user/features/server_settings/data/network/server_settings_api.dart'; +import 'package:tmail_ui_user/features/server_settings/data/repository/server_settings_repository_impl.dart'; +import 'package:tmail_ui_user/features/server_settings/domain/repository/server_settings_repository.dart'; +import 'package:tmail_ui_user/features/server_settings/domain/usecases/get_always_read_receipt_setting_interactor.dart'; import 'package:tmail_ui_user/features/thread/data/local/email_cache_manager.dart'; import 'package:tmail_ui_user/features/upload/data/datasource/attachment_upload_datasource.dart'; import 'package:tmail_ui_user/features/upload/data/datasource_impl/attachment_upload_datasource_impl.dart'; @@ -118,6 +124,9 @@ class ComposerBindings extends BaseBindings { Get.find(), Get.find(), Get.find())); + Get.lazyPut(() => RemoteServerSettingsDataSourceImpl( + Get.find(), + Get.find())); } @override @@ -130,6 +139,8 @@ class ComposerBindings extends BaseBindings { Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); + Get.lazyPut( + () => Get.find()); } @override @@ -154,6 +165,9 @@ class ComposerBindings extends BaseBindings { Get.find(), Get.find(), )); + Get.lazyPut(() => ServerSettingsRepositoryImpl( + Get.find(), + )); } @override @@ -162,6 +176,7 @@ class ComposerBindings extends BaseBindings { Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); Get.lazyPut(() => Get.find()); + Get.lazyPut(() => Get.find()); } @override @@ -179,6 +194,7 @@ class ComposerBindings extends BaseBindings { Get.lazyPut(() => SaveComposerCacheOnWebInteractor(Get.find())); Get.lazyPut(() => DownloadImageAsBase64Interactor(Get.find())); Get.lazyPut(() => TransformHtmlEmailContentInteractor(Get.find())); + Get.lazyPut(() => GetAlwaysReadReceiptSettingInteractor(Get.find())); IdentityInteractorsBindings().dependencies(); } @@ -199,6 +215,7 @@ class ComposerBindings extends BaseBindings { Get.find(), Get.find(), Get.find(), + Get.find(), )); } diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index 19362f75e..6dbfd0e9c 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -76,6 +76,8 @@ import 'package:tmail_ui_user/features/network_connection/presentation/network_c import 'package:tmail_ui_user/features/sending_queue/domain/extensions/sending_email_extension.dart'; import 'package:tmail_ui_user/features/sending_queue/domain/model/sending_email.dart'; import 'package:tmail_ui_user/features/sending_queue/presentation/model/sending_email_arguments.dart'; +import 'package:tmail_ui_user/features/server_settings/domain/state/get_always_read_receipt_setting_state.dart'; +import 'package:tmail_ui_user/features/server_settings/domain/usecases/get_always_read_receipt_setting_interactor.dart'; import 'package:tmail_ui_user/features/upload/domain/model/upload_task_id.dart'; import 'package:tmail_ui_user/features/upload/domain/state/attachment_upload_state.dart'; import 'package:tmail_ui_user/features/upload/domain/state/local_file_picker_state.dart'; @@ -120,6 +122,7 @@ class ComposerController extends BaseController { final RichTextWebController richTextWebController; final DownloadImageAsBase64Interactor _downloadImageAsBase64Interactor; final TransformHtmlEmailContentInteractor _transformHtmlEmailContentInteractor; + final GetAlwaysReadReceiptSettingInteractor _getAlwaysReadReceiptSettingInteractor; GetAllAutoCompleteInteractor? _getAllAutoCompleteInteractor; GetAutoCompleteInteractor? _getAutoCompleteInteractor; @@ -180,6 +183,7 @@ class ComposerController extends BaseController { this.richTextWebController, this._downloadImageAsBase64Interactor, this._transformHtmlEmailContentInteractor, + this._getAlwaysReadReceiptSettingInteractor, ); @override @@ -197,6 +201,7 @@ class ComposerController extends BaseController { _listenBrowserTabRefresh(); }); } + _getAlwaysReadReceiptSetting(); } @override @@ -279,6 +284,8 @@ class ComposerController extends BaseController { ); } maxWithEditor = null; + } else if (success is GetAlwaysReadReceiptSettingSuccess) { + hasRequestReadReceipt.value = success.alwaysReadReceiptEnabled; } } @@ -297,6 +304,8 @@ class ComposerController extends BaseController { if (identitySelected.value == null) { _autoFocusFieldWhenLauncher(); } + } else if (failure is GetAlwaysReadReceiptSettingFailure) { + hasRequestReadReceipt.value = true; } } @@ -2157,4 +2166,11 @@ class ComposerController extends BaseController { _closeComposerAction(result: draftArgs); _closeComposerButtonState = ButtonState.enabled; } + + void _getAlwaysReadReceiptSetting() { + final accountId = mailboxDashBoardController.accountId.value; + if (accountId != null) { + consumeState(_getAlwaysReadReceiptSettingInteractor.execute(accountId)); + } + } } \ No newline at end of file