TF-3385 Optimize misc
This commit is contained in:
@@ -244,19 +244,21 @@ class MailboxRepositoryImpl extends MailboxRepository {
|
|||||||
totalEmailUnread,
|
totalEmailUnread,
|
||||||
onProgressController);
|
onProgressController);
|
||||||
try {
|
try {
|
||||||
await mapDataSource[DataSourceType.local]!.markAsMailboxRead(
|
await Future.wait([
|
||||||
session,
|
mapDataSource[DataSourceType.local]!.markAsMailboxRead(
|
||||||
accountId,
|
session,
|
||||||
mailboxId,
|
accountId,
|
||||||
totalEmailUnread - result.length,
|
mailboxId,
|
||||||
onProgressController,
|
totalEmailUnread - result.length,
|
||||||
);
|
onProgressController,
|
||||||
await emailDataSource?.markAsRead(
|
),
|
||||||
session,
|
emailDataSource?.markAsRead(
|
||||||
accountId,
|
session,
|
||||||
result,
|
accountId,
|
||||||
ReadActions.markAsRead,
|
result,
|
||||||
);
|
ReadActions.markAsRead,
|
||||||
|
) ?? Future.value(),
|
||||||
|
]);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
logError('MailboxRepositoryImpl::markAsMailboxRead: Exception: $e');
|
logError('MailboxRepositoryImpl::markAsMailboxRead: Exception: $e');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,12 +95,14 @@ class EmailCacheManager {
|
|||||||
return _emailCacheClient.insertItem(keyCache, emailCache);
|
return _emailCacheClient.insertItem(keyCache, emailCache);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> storeMultipleEmails(AccountId accountId, UserName userName, List<EmailCache> emailsCache) {
|
Future<void> storeMultipleEmails(AccountId accountId, UserName userName, List<EmailCache> emailsCache) async {
|
||||||
return Future.wait(emailsCache.map((emailCache) => storeEmail(
|
final emailsToCache = Map.fromEntries(emailsCache.map(
|
||||||
accountId,
|
(emailCache) => MapEntry(
|
||||||
userName,
|
TupleKey(emailCache.id, accountId.asString, userName.value).encodeKey,
|
||||||
emailCache,
|
emailCache,
|
||||||
)));
|
),
|
||||||
|
));
|
||||||
|
await _emailCacheClient.insertMultipleItem(emailsToCache);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<EmailCache> getStoredEmail(AccountId accountId, UserName userName, EmailId emailId) async {
|
Future<EmailCache> getStoredEmail(AccountId accountId, UserName userName, EmailId emailId) async {
|
||||||
|
|||||||
@@ -369,7 +369,9 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
destinationMailboxId: reactionState.destinationMailboxId,
|
destinationMailboxId: reactionState.destinationMailboxId,
|
||||||
moveAction: reactionState.moveAction,
|
moveAction: reactionState.moveAction,
|
||||||
);
|
);
|
||||||
_checkIfCurrentMailboxCanLoadMore();
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
|
_checkIfCurrentMailboxCanLoadMore();
|
||||||
|
});
|
||||||
} else if (reactionState is DeleteEmailPermanentlySuccess
|
} else if (reactionState is DeleteEmailPermanentlySuccess
|
||||||
|| reactionState is DeleteMultipleEmailsPermanentlyAllSuccess
|
|| reactionState is DeleteMultipleEmailsPermanentlyAllSuccess
|
||||||
|| reactionState is DeleteMultipleEmailsPermanentlyHasSomeEmailFailure
|
|| reactionState is DeleteMultipleEmailsPermanentlyHasSomeEmailFailure
|
||||||
@@ -396,7 +398,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
final currentMailbox = mailboxDashBoardController.selectedMailbox.value;
|
final currentMailbox = mailboxDashBoardController.selectedMailbox.value;
|
||||||
if (currentMailbox == null) return;
|
if (currentMailbox == null) return;
|
||||||
|
|
||||||
final totalEmailsCount = currentMailbox.totalEmails?.value.value ?? 0;
|
final totalEmailsCount = currentMailbox.countTotalEmails;
|
||||||
if (totalEmailsCount == 0
|
if (totalEmailsCount == 0
|
||||||
|| mailboxDashBoardController.emailsInCurrentMailbox.isNotEmpty
|
|| mailboxDashBoardController.emailsInCurrentMailbox.isNotEmpty
|
||||||
) return;
|
) return;
|
||||||
|
|||||||
@@ -22,16 +22,17 @@ extension ListPresentationEmailExtension on List<PresentationEmail> {
|
|||||||
|
|
||||||
List<EmailId> get listEmailIds => map((email) => email.id).whereNotNull().toList();
|
List<EmailId> get listEmailIds => map((email) => email.id).whereNotNull().toList();
|
||||||
|
|
||||||
Map<MailboxId, List<EmailId>> get emailIdsByMailboxId => Map.from(
|
Map<MailboxId, List<EmailId>> get emailIdsByMailboxId {
|
||||||
where((email) => email.mailboxContain?.mailboxId != null && email.id != null)
|
final Map<MailboxId, List<EmailId>> result = {};
|
||||||
.fold(<MailboxId, List<EmailId>>{}, (combine, email) {
|
for (final email in this) {
|
||||||
final mailboxId = email.mailboxContain!.mailboxId!;
|
final mailboxId = email.mailboxContain?.mailboxId;
|
||||||
combine[mailboxId] ??= [];
|
final emailId = email.id;
|
||||||
combine[mailboxId]!.add(email.id!);
|
if (mailboxId != null && emailId != null) {
|
||||||
return combine;
|
(result[mailboxId] ??= []).add(emailId);
|
||||||
}
|
}
|
||||||
),
|
}
|
||||||
);
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
bool isAllCanDeletePermanently(Map<MailboxId, PresentationMailbox> mapMailbox) {
|
bool isAllCanDeletePermanently(Map<MailboxId, PresentationMailbox> mapMailbox) {
|
||||||
final listMailboxContain = map((email) => email.findMailboxContain(mapMailbox))
|
final listMailboxContain = map((email) => email.findMailboxContain(mapMailbox))
|
||||||
|
|||||||
Reference in New Issue
Block a user