TF-221 Create emails with User-Agent header
This commit is contained in:
@@ -5,7 +5,9 @@ import 'package:core/core.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:enough_html_editor/enough_html_editor.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:fk_user_agent/fk_user_agent.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_chips_input/flutter_chips_input.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:http_parser/http_parser.dart';
|
||||
@@ -14,6 +16,7 @@ import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_body_part.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_body_value.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/individual_header_identifier.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||
@@ -34,7 +37,9 @@ import 'package:tmail_ui_user/features/upload/domain/state/local_file_picker_sta
|
||||
import 'package:tmail_ui_user/features/upload/domain/usecases/local_file_picker_interactor.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
import 'package:tmail_ui_user/main/utils/app_logger.dart';
|
||||
import 'package:uuid/uuid.dart';
|
||||
import 'dart:developer' as developer;
|
||||
|
||||
class ComposerController extends BaseController {
|
||||
|
||||
@@ -79,6 +84,14 @@ class ComposerController extends BaseController {
|
||||
this._uploadMultipleAttachmentInteractor,
|
||||
);
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
super.onInit();
|
||||
WidgetsBinding.instance?.addPostFrameCallback((timeStamp) async {
|
||||
await FkUserAgent.init();
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
void onReady() async {
|
||||
super.onReady();
|
||||
@@ -267,10 +280,22 @@ class ComposerController extends BaseController {
|
||||
bodyValues: {
|
||||
generatePartId: EmailBodyValue(emailBodyText, false, false)
|
||||
},
|
||||
attachments: attachments.isNotEmpty ? _generateAttachments() : null
|
||||
headerUserAgent: {IndividualHeaderIdentifier.headerUserAgent : userAgentPlatform},
|
||||
attachments: attachments.isNotEmpty ? _generateAttachments() : null,
|
||||
);
|
||||
}
|
||||
|
||||
String get userAgentPlatform {
|
||||
String userAgent;
|
||||
try {
|
||||
userAgent = FkUserAgent.userAgent ?? '';
|
||||
log('ComposerController - userAgentPlatform(): userAgent: $userAgent');
|
||||
} on PlatformException {
|
||||
userAgent = '';
|
||||
}
|
||||
return userAgent;
|
||||
}
|
||||
|
||||
Set<EmailBodyPart> _generateAttachments() {
|
||||
return attachments.map((attachment) =>
|
||||
attachment.toEmailBodyPart(ContentDisposition.attachment.value)).toSet();
|
||||
|
||||
@@ -122,6 +122,9 @@ dependencies:
|
||||
url: https://github.com/dab246/enough_html_editor.git
|
||||
ref: fix_bug_enough_platform_widgets
|
||||
|
||||
# fk_user_agent
|
||||
fk_user_agent: 2.1.0
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
|
||||
Reference in New Issue
Block a user