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