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:dartz/dartz.dart';
|
||||||
import 'package:enough_html_editor/enough_html_editor.dart';
|
import 'package:enough_html_editor/enough_html_editor.dart';
|
||||||
import 'package:file_picker/file_picker.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/cupertino.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_chips_input/flutter_chips_input.dart';
|
import 'package:flutter_chips_input/flutter_chips_input.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:http_parser/http_parser.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_address.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email_body_part.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/email_body_value.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/mail/email/individual_header_identifier.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:permission_handler/permission_handler.dart';
|
import 'package:permission_handler/permission_handler.dart';
|
||||||
import 'package:tmail_ui_user/features/base/base_controller.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/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/localizations/app_localizations.dart';
|
||||||
import 'package:tmail_ui_user/main/routes/route_navigation.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 'package:uuid/uuid.dart';
|
||||||
|
import 'dart:developer' as developer;
|
||||||
|
|
||||||
class ComposerController extends BaseController {
|
class ComposerController extends BaseController {
|
||||||
|
|
||||||
@@ -79,6 +84,14 @@ class ComposerController extends BaseController {
|
|||||||
this._uploadMultipleAttachmentInteractor,
|
this._uploadMultipleAttachmentInteractor,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@override
|
||||||
|
void onInit() {
|
||||||
|
super.onInit();
|
||||||
|
WidgetsBinding.instance?.addPostFrameCallback((timeStamp) async {
|
||||||
|
await FkUserAgent.init();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onReady() async {
|
void onReady() async {
|
||||||
super.onReady();
|
super.onReady();
|
||||||
@@ -267,10 +280,22 @@ class ComposerController extends BaseController {
|
|||||||
bodyValues: {
|
bodyValues: {
|
||||||
generatePartId: EmailBodyValue(emailBodyText, false, false)
|
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() {
|
Set<EmailBodyPart> _generateAttachments() {
|
||||||
return attachments.map((attachment) =>
|
return attachments.map((attachment) =>
|
||||||
attachment.toEmailBodyPart(ContentDisposition.attachment.value)).toSet();
|
attachment.toEmailBodyPart(ContentDisposition.attachment.value)).toSet();
|
||||||
|
|||||||
@@ -122,6 +122,9 @@ dependencies:
|
|||||||
url: https://github.com/dab246/enough_html_editor.git
|
url: https://github.com/dab246/enough_html_editor.git
|
||||||
ref: fix_bug_enough_platform_widgets
|
ref: fix_bug_enough_platform_widgets
|
||||||
|
|
||||||
|
# fk_user_agent
|
||||||
|
fk_user_agent: 2.1.0
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|||||||
Reference in New Issue
Block a user