TF-2713 Small evolution for printing

This commit is contained in:
dab246
2024-03-15 11:32:51 +07:00
committed by Dat H. Pham
parent f342e14e7e
commit 840a191831
18 changed files with 42 additions and 127 deletions
@@ -1,10 +1,11 @@
import 'package:core/data/model/print_attachment.dart';
import 'package:core/domain/extensions/datetime_extension.dart';
import 'package:core/presentation/resources/image_paths.dart';
import 'package:core/utils/file_utils.dart';
import 'package:core/utils/print_utils.dart';
import 'package:filesize/filesize.dart';
import 'package:model/email/attachment.dart';
import 'package:model/extensions/utc_date_extension.dart';
import 'package:model/extensions/email_extension.dart';
import 'package:tmail_ui_user/features/email/data/datasource/print_file_datasource.dart';
import 'package:tmail_ui_user/features/email/domain/model/email_print.dart';
import 'package:tmail_ui_user/features/email/presentation/extensions/attachment_extension.dart';
@@ -30,9 +31,10 @@ class PrintFileDataSourceImpl extends PrintFileDataSource {
final sender = emailPrint.emailInformation.from?.isNotEmpty == true
? emailPrint.emailInformation.from!.first
: null;
final receiveTime = emailPrint.emailInformation.receivedAt?.formatDateToLocal(
pattern: 'E, MMM d, yyyy \'at\' h:mm a',
locale: emailPrint.locale);
final receiveTime = emailPrint.emailInformation.getReceivedAt(
newLocale: emailPrint.locale,
pattern: emailPrint.emailInformation.receivedAt?.value.toLocal().toPatternForEmailView()
);
final List<PrintAttachment> listPrintAttachment = [];
@@ -51,12 +53,12 @@ class PrintFileDataSourceImpl extends PrintFileDataSource {
return await _printUtils.printEmail(
appName: emailPrint.appName,
userName: emailPrint.userName,
locale: emailPrint.locale,
subject: emailPrint.emailInformation.subject ?? '',
emailContent: emailPrint.emailContent,
senderName: sender?.name ?? '',
senderEmailAddress: sender?.email ?? '',
dateTime: receiveTime ?? '',
dateTime: receiveTime,
fromPrefix: emailPrint.fromPrefix,
toPrefix: emailPrint.toPrefix,
ccPrefix: emailPrint.ccPrefix,
bccPrefix: emailPrint.bccPrefix,
@@ -9,6 +9,7 @@ class EmailPrint with EquatableMixin {
final String emailContent;
final String locale;
final String toPrefix;
final String fromPrefix;
final String ccPrefix;
final String bccPrefix;
final String replyToPrefix;
@@ -25,6 +26,7 @@ class EmailPrint with EquatableMixin {
required this.emailInformation,
required this.emailContent,
required this.locale,
required this.fromPrefix,
required this.toPrefix,
required this.ccPrefix,
required this.bccPrefix,
@@ -44,6 +46,7 @@ class EmailPrint with EquatableMixin {
emailInformation,
emailContent,
locale,
fromPrefix,
toPrefix,
ccPrefix,
bccPrefix,
@@ -66,6 +69,7 @@ extension EmailPrintExtension on EmailPrint {
emailContent: newEmailContent,
titleAttachment: titleAttachment,
locale: locale,
fromPrefix: fromPrefix,
toPrefix: toPrefix,
ccPrefix: ccPrefix,
bccPrefix: bccPrefix,
@@ -1599,6 +1599,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
attachments: _currentEmailLoaded?.attachments,
emailContent: _currentEmailLoaded?.htmlContent ?? '',
locale: Localizations.localeOf(context).toLanguageTag(),
fromPrefix: AppLocalizations.of(context).from_email_address_prefix,
toPrefix: AppLocalizations.of(context).to_email_address_prefix,
ccPrefix: AppLocalizations.of(context).cc_email_address_prefix,
bccPrefix: AppLocalizations.of(context).bcc_email_address_prefix,
@@ -81,10 +81,7 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
],
)
),
ReceivedTimeBuilder(
emailSelected: emailSelected,
margin: const EdgeInsetsDirectional.only(start: 16),
),
ReceivedTimeBuilder(emailSelected: emailSelected),
]),
if (emailSelected.numberOfAllEmailAddress() > 0)
EmailReceiverWidget(
@@ -9,19 +9,16 @@ import 'package:model/extensions/presentation_email_extension.dart';
class ReceivedTimeBuilder extends StatelessWidget {
final PresentationEmail emailSelected;
final EdgeInsetsGeometry? margin;
const ReceivedTimeBuilder({
Key? key,
required this.emailSelected,
this.margin,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
constraints: const BoxConstraints(maxWidth: 100),
margin: margin,
return Padding(
padding: const EdgeInsetsDirectional.only(start: 16),
child: Text(
emailSelected.getReceivedAt(
Localizations.localeOf(context).toLanguageTag(),
@@ -16,9 +16,9 @@ enum AdvancedSearchFilterField {
String getTitle(BuildContext context) {
switch (this) {
case AdvancedSearchFilterField.from:
return AppLocalizations.of(context).form;
return AppLocalizations.of(context).from_email_address_prefix;
case AdvancedSearchFilterField.to:
return AppLocalizations.of(context).to;
return AppLocalizations.of(context).to_email_address_prefix;
case AdvancedSearchFilterField.subject:
return AppLocalizations.of(context).subject;
case AdvancedSearchFilterField.hasKeyword: