TF-3685 Fix From field is displayed incorrectly in Drafts on mobile

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-04-23 01:23:07 +07:00
committed by Dat H. Pham
parent 5f00d78dd4
commit 80dff51c77
10 changed files with 41 additions and 2 deletions
@@ -0,0 +1,17 @@
import 'package:tmail_ui_user/features/base/upgradeable/upgrade_database_steps.dart';
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
class UpgradeHiveDatabaseStepsV15 extends UpgradeDatabaseSteps {
final CachingManager _cachingManager;
UpgradeHiveDatabaseStepsV15(this._cachingManager);
@override
Future<void> onUpgrade(int oldVersion, int newVersion) async {
if (oldVersion > 0 && oldVersion < newVersion && newVersion == 15) {
await _cachingManager.clearDetailedEmailCache();
}
}
}
@@ -1,4 +1,4 @@
class CacheVersion {
static const int hiveDBVersion = 14;
static const int hiveDBVersion = 15;
}
@@ -86,6 +86,9 @@ extension SetupEmailContentExtension on ComposerController {
setupEmailRequestReadReceiptFlagForEditDraft(
uiState.emailCurrent.hasRequestReadReceipt,
);
setupSelectedIdentityForEditDraft(
uiState.emailCurrent.identityIdFromHeader,
);
}
emailContentsViewState.value = Right(uiState);
@@ -21,6 +21,7 @@ extension DetailedEmailExtension on DetailedEmail {
references: references?.ids.toList(),
inlineImages: inlineImages?.toHiveCache(),
sMimeStatusHeader: sMimeStatusHeader?.toMapString(),
identityHeader: identityHeader?.toMapString(),
);
}
@@ -40,7 +41,8 @@ extension DetailedEmailExtension on DetailedEmail {
messageId: messageId,
references: references,
inlineImages: inlineImages,
sMimeStatusHeader: sMimeStatusHeader
sMimeStatusHeader: sMimeStatusHeader,
identityHeader: identityHeader,
);
}
}
@@ -29,6 +29,12 @@ extension DetailedEmailHiveCacheExtension on DetailedEmailHiveCache {
sMimeStatusHeader: sMimeStatusHeader != null
? Map.fromIterables(sMimeStatusHeader!.keys.map((value) => IndividualHeaderIdentifier(value)), sMimeStatusHeader!.values)
: null,
identityHeader: identityHeader != null
? Map.fromIterables(
identityHeader!.keys.map((value) => IndividualHeaderIdentifier(value)),
identityHeader!.values,
)
: null,
);
}
}
@@ -17,6 +17,7 @@ extension EmailExtension on Email {
references: references,
inlineImages: allAttachments.listAttachmentsDisplayedInContent,
sMimeStatusHeader: sMimeStatusHeader,
identityHeader: identityHeader,
);
}
}
@@ -17,6 +17,7 @@ class DetailedEmail with EquatableMixin {
final MessageIdsHeaderValue? references;
final List<Attachment>? inlineImages;
final Map<IndividualHeaderIdentifier, String?>? sMimeStatusHeader;
final Map<IndividualHeaderIdentifier, String?>? identityHeader;
DetailedEmail({
required this.emailId,
@@ -30,6 +31,7 @@ class DetailedEmail with EquatableMixin {
this.references,
this.inlineImages,
this.sMimeStatusHeader,
this.identityHeader,
});
@override
@@ -45,5 +47,6 @@ class DetailedEmail with EquatableMixin {
references,
inlineImages,
sMimeStatusHeader,
identityHeader,
];
}
@@ -182,6 +182,7 @@ class GetEmailContentInteractor {
emailCurrent: emailCache.copyWith(
headers: detailedEmail.headers,
sMimeStatusHeader: detailedEmail.sMimeStatusHeader,
identityHeader: detailedEmail.identityHeader,
)
));
} catch (e) {
@@ -41,6 +41,9 @@ class DetailedEmailHiveCache extends HiveObject with EquatableMixin {
@HiveField(9)
Map<String, String?>? sMimeStatusHeader;
@HiveField(10)
Map<String, String?>? identityHeader;
DetailedEmailHiveCache({
required this.emailId,
required this.timeSaved,
@@ -52,6 +55,7 @@ class DetailedEmailHiveCache extends HiveObject with EquatableMixin {
this.references,
this.inlineImages,
this.sMimeStatusHeader,
this.identityHeader,
});
@override
@@ -66,5 +70,6 @@ class DetailedEmailHiveCache extends HiveObject with EquatableMixin {
references,
inlineImages,
sMimeStatusHeader,
identityHeader,
];
}
@@ -64,6 +64,7 @@ class ThreadConstants {
EmailProperty.attachments,
EmailProperty.headers,
IndividualHeaderIdentifier.sMimeStatusHeader.value,
IndividualHeaderIdentifier.identityHeader.value,
});
static final propertiesCalendarEvent = Properties({