TF-2683 Integrate update always read receipt setting in composer (#2700)
This commit is contained in:
@@ -3,24 +3,20 @@ import 'package:core/presentation/state/success.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/extensions/email_request_extension.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||
import 'package:tmail_ui_user/features/composer/domain/state/send_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/domain/repository/mailbox_repository.dart';
|
||||
import 'package:tmail_ui_user/features/sending_queue/presentation/model/sending_email_action_type.dart';
|
||||
import 'package:tmail_ui_user/features/server_settings/domain/repository/server_settings_repository.dart';
|
||||
|
||||
class SendEmailInteractor {
|
||||
final EmailRepository _emailRepository;
|
||||
final MailboxRepository _mailboxRepository;
|
||||
final ServerSettingsRepository _serverSettingsRepository;
|
||||
|
||||
SendEmailInteractor(
|
||||
this._emailRepository,
|
||||
this._mailboxRepository,
|
||||
this._serverSettingsRepository);
|
||||
this._mailboxRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute(
|
||||
Session session,
|
||||
@@ -42,14 +38,10 @@ class SendEmailInteractor {
|
||||
final currentMailboxState = listState.first;
|
||||
final currentEmailState = listState.last;
|
||||
|
||||
EmailRequest? updatedEmailRequest = await _getUpdatedEmailRequestIfAvailable(
|
||||
accountId,
|
||||
emailRequest);
|
||||
|
||||
final result = await _emailRepository.sendEmail(
|
||||
session,
|
||||
accountId,
|
||||
updatedEmailRequest ?? emailRequest,
|
||||
emailRequest,
|
||||
mailboxRequest: mailboxRequest
|
||||
);
|
||||
|
||||
@@ -85,22 +77,4 @@ class SendEmailInteractor {
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
Future<EmailRequest?> _getUpdatedEmailRequestIfAvailable(
|
||||
AccountId accountId,
|
||||
EmailRequest emailRequest
|
||||
) async {
|
||||
bool alwaysReadReceipt = true;
|
||||
EmailRequest? updatedEmailRequest;
|
||||
try {
|
||||
final serverSettings = await _serverSettingsRepository.getServerSettings(accountId);
|
||||
alwaysReadReceipt = serverSettings.settings?.alwaysReadReceipts ?? true;
|
||||
} catch (_) {
|
||||
alwaysReadReceipt = true;
|
||||
}
|
||||
if (!alwaysReadReceipt) {
|
||||
updatedEmailRequest = emailRequest.withUpdatedEmailHeaderMdn({});
|
||||
}
|
||||
return updatedEmailRequest;
|
||||
}
|
||||
}
|
||||
@@ -205,17 +205,17 @@ class ComposerBindings extends BaseBindings {
|
||||
Get.lazyPut(() => UploadController(Get.find<UploadAttachmentInteractor>()));
|
||||
Get.lazyPut(() => RichTextWebController());
|
||||
Get.lazyPut(() => ComposerController(
|
||||
Get.find<DeviceInfoPlugin>(),
|
||||
Get.find<LocalFilePickerInteractor>(),
|
||||
Get.find<GetEmailContentInteractor>(),
|
||||
Get.find<GetAllIdentitiesInteractor>(),
|
||||
Get.find<UploadController>(),
|
||||
Get.find<RemoveComposerCacheOnWebInteractor>(),
|
||||
Get.find<SaveComposerCacheOnWebInteractor>(),
|
||||
Get.find<RichTextWebController>(),
|
||||
Get.find<DownloadImageAsBase64Interactor>(),
|
||||
Get.find<TransformHtmlEmailContentInteractor>(),
|
||||
Get.find<GetAlwaysReadReceiptSettingInteractor>(),
|
||||
Get.find<DeviceInfoPlugin>(),
|
||||
Get.find<LocalFilePickerInteractor>(),
|
||||
Get.find<GetEmailContentInteractor>(),
|
||||
Get.find<GetAllIdentitiesInteractor>(),
|
||||
Get.find<UploadController>(),
|
||||
Get.find<RemoveComposerCacheOnWebInteractor>(),
|
||||
Get.find<SaveComposerCacheOnWebInteractor>(),
|
||||
Get.find<RichTextWebController>(),
|
||||
Get.find<DownloadImageAsBase64Interactor>(),
|
||||
Get.find<TransformHtmlEmailContentInteractor>(),
|
||||
Get.find<GetAlwaysReadReceiptSettingInteractor>(),
|
||||
));
|
||||
}
|
||||
|
||||
|
||||
@@ -735,7 +735,7 @@ class ComposerController extends BaseController {
|
||||
},
|
||||
headerUserAgent: {IndividualHeaderIdentifier.headerUserAgent : userAgent},
|
||||
attachments: attachments.isNotEmpty ? attachments : null,
|
||||
headerMdn: {IndividualHeaderIdentifier.headerMdn: getEmailAddressSender()},
|
||||
headerMdn: hasRequestReadReceipt.value ? { IndividualHeaderIdentifier.headerMdn: getEmailAddressSender() } : {},
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user