TF-1808: Hanlde store email when opening email
(cherry picked from commit 2c895379f83b34e9bafb7545b21d790d01d444af)
This commit is contained in:
@@ -26,6 +26,8 @@ import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
|
||||
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/detailed_email.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/store_opened_email_to_cache_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/controller/email_supervisor_controller.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/model/email_loaded.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
|
||||
@@ -91,6 +93,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
final MarkAsStarEmailInteractor _markAsStarEmailInteractor;
|
||||
final DownloadAttachmentForWebInteractor _downloadAttachmentForWebInteractor;
|
||||
final GetAllIdentitiesInteractor _getAllIdentitiesInteractor;
|
||||
final StoreOpenedEmailToCacheInteractor _storeOpenedEmailToCacheInteractor;
|
||||
|
||||
CreateNewEmailRuleFilterInteractor? _createNewEmailRuleFilterInteractor;
|
||||
SendReceiptToSenderInteractor? _sendReceiptToSenderInteractor;
|
||||
@@ -125,6 +128,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
this._markAsStarEmailInteractor,
|
||||
this._downloadAttachmentForWebInteractor,
|
||||
this._getAllIdentitiesInteractor,
|
||||
this._storeOpenedEmailToCacheInteractor
|
||||
);
|
||||
|
||||
@override
|
||||
@@ -370,6 +374,21 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
initialEmailContents = success.emailContents;
|
||||
attachments.value = success.attachments;
|
||||
|
||||
if (!BuildUtils.isWeb) {
|
||||
final detailedEmail = DetailedEmail(
|
||||
emailId: currentEmail!.id!,
|
||||
attachments: attachments,
|
||||
headers: currentEmail?.emailHeader,
|
||||
htmlEmailContent: emailContents.asHtmlString
|
||||
);
|
||||
|
||||
_storeOpenedEmailToCache(
|
||||
mailboxDashBoardController.sessionCurrent,
|
||||
mailboxDashBoardController.accountId.value,
|
||||
detailedEmail
|
||||
);
|
||||
}
|
||||
|
||||
final isShowMessageReadReceipt = success.emailCurrent
|
||||
?.hasReadReceipt(mailboxDashBoardController.mapMailboxById) == true;
|
||||
if (isShowMessageReadReceipt) {
|
||||
@@ -1193,4 +1212,10 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void _storeOpenedEmailToCache(Session? session, AccountId? accountId, DetailedEmail detailedEmail) async {
|
||||
if (session != null && accountId != null) {
|
||||
consumeState(_storeOpenedEmailToCacheInteractor.execute(session, accountId, detailedEmail));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user