TF-1626 Remove id of email when call Email/set method
(cherry picked from commit ce1d27d893fd406aa812d4e4ea9debe1ec265ddb)
This commit is contained in:
@@ -13,7 +13,7 @@ import 'package:tmail_ui_user/features/thread/data/extensions/email_address_hive
|
||||
extension EmailCacheExtension on EmailCache {
|
||||
Email toEmail() {
|
||||
return Email(
|
||||
EmailId(Id(id)),
|
||||
id: EmailId(Id(id)),
|
||||
keywords: keywords != null
|
||||
? Map.fromIterables(keywords!.keys.map((value) => KeyWordIdentifier(value)), keywords!.values)
|
||||
: null,
|
||||
|
||||
@@ -8,7 +8,7 @@ extension EmailExtension on Email {
|
||||
|
||||
EmailCache toEmailCache() {
|
||||
return EmailCache(
|
||||
id.id.value,
|
||||
id!.id.value,
|
||||
keywords: keywords?.toMapString(),
|
||||
size: size?.value.round(),
|
||||
receivedAt: receivedAt?.value,
|
||||
|
||||
@@ -11,6 +11,7 @@ import 'package:jmap_dart_client/jmap/mail/email/email_comparator_property.dart'
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_filter_condition.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:model/email/email_property.dart';
|
||||
import 'package:model/extensions/list_email_extension.dart';
|
||||
import 'package:tmail_ui_user/features/email/data/network/email_api.dart';
|
||||
import 'package:tmail_ui_user/features/thread/data/model/empty_trash_folder_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/thread/data/network/thread_api.dart';
|
||||
@@ -68,11 +69,9 @@ class ThreadIsolateWorker {
|
||||
if (newEmailList.isNotEmpty) {
|
||||
lastEmail = newEmailList.last;
|
||||
hasEmails = true;
|
||||
final emailIds = newEmailList.map((email) => email.id).toList();
|
||||
final listEmailIdDeleted = await args.emailAPI.deleteMultipleEmailsPermanently(args.accountId, newEmailList.listEmailIds);
|
||||
|
||||
final listEmailIdDeleted = await args.emailAPI.deleteMultipleEmailsPermanently(args.accountId, emailIds);
|
||||
|
||||
if (listEmailIdDeleted.isNotEmpty && listEmailIdDeleted.length == emailIds.length) {
|
||||
if (listEmailIdDeleted.isNotEmpty && listEmailIdDeleted.length == newEmailList.listEmailIds.length) {
|
||||
sendPort.send(listEmailIdDeleted);
|
||||
}
|
||||
emailListCompleted.addAll(listEmailIdDeleted);
|
||||
@@ -117,11 +116,9 @@ class ThreadIsolateWorker {
|
||||
if (newEmailList.isNotEmpty) {
|
||||
lastEmail = newEmailList.last;
|
||||
hasEmails = true;
|
||||
final emailIds = newEmailList.map((email) => email.id).toList();
|
||||
final listEmailIdDeleted = await _emailAPI.deleteMultipleEmailsPermanently(accountId, newEmailList.listEmailIds);
|
||||
|
||||
final listEmailIdDeleted = await _emailAPI.deleteMultipleEmailsPermanently(accountId, emailIds);
|
||||
|
||||
if (listEmailIdDeleted.isNotEmpty && listEmailIdDeleted.length == emailIds.length) {
|
||||
if (listEmailIdDeleted.isNotEmpty && listEmailIdDeleted.length == newEmailList.listEmailIds.length) {
|
||||
await updateDestroyedEmailCache(listEmailIdDeleted);
|
||||
}
|
||||
emailListCompleted.addAll(listEmailIdDeleted);
|
||||
|
||||
@@ -157,7 +157,9 @@ class ThreadRepositoryImpl extends ThreadRepository {
|
||||
}
|
||||
|
||||
dartz.Tuple2<Email, Email?> _combineUpdatedWithEmailInCache(Email updatedEmail, List<Email>? emailCacheList) {
|
||||
final emailOld = emailCacheList?.findEmailById(updatedEmail.id);
|
||||
final emailOld = updatedEmail.id != null
|
||||
? emailCacheList?.findEmailById(updatedEmail.id!)
|
||||
: null;
|
||||
if (emailOld != null) {
|
||||
log('ThreadRepositoryImpl::_combineUpdatedWithEmailInCache(): cache hit');
|
||||
return dartz.Tuple2(updatedEmail, emailOld);
|
||||
|
||||
Reference in New Issue
Block a user