TF-1923 Store list new email by ascending
(cherry picked from commit e2ad80e20bca3d72bf9799e957b995a24c0844c8)
This commit is contained in:
@@ -13,8 +13,8 @@ import 'package:tmail_ui_user/features/email/data/local/html_analyzer.dart';
|
||||
import 'package:tmail_ui_user/features/email/data/network/email_api.dart';
|
||||
import 'package:tmail_ui_user/features/email/data/repository/email_repository_impl.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/repository/email_repository.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/get_detailed_email_by_id_interator.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/store_new_email_interator.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/get_list_detailed_email_by_id_interator.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/store_list_new_email_interator.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/datasource/mailbox_datasource.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/datasource/state_datasource.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/data/datasource_impl/mailbox_cache_datasource_impl.dart';
|
||||
@@ -136,8 +136,8 @@ class FcmInteractorBindings extends InteractorsBindings {
|
||||
Get.lazyPut(() => GetNewReceiveEmailFromNotificationInteractor(
|
||||
Get.find<FCMRepositoryImpl>(),
|
||||
Get.find<EmailRepository>()));
|
||||
Get.lazyPut(() => GetDetailedEmailByIdInteractor(Get.find<EmailRepository>()));
|
||||
Get.lazyPut(() => StoreNewEmailInteractor(Get.find<EmailRepository>()));
|
||||
Get.lazyPut(() => GetListDetailedEmailByIdInteractor(Get.find<EmailRepository>()));
|
||||
Get.lazyPut(() => StoreListNewEmailInteractor(Get.find<EmailRepository>()));
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -9,9 +9,12 @@ import 'package:core/utils/platform_info.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||
import 'package:jmap_dart_client/jmap/core/user_name.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_comparator.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_comparator_property.dart';
|
||||
import 'package:model/email/email_property.dart';
|
||||
import 'package:model/email/presentation_email.dart';
|
||||
import 'package:model/extensions/list_presentation_email_extension.dart';
|
||||
@@ -22,9 +25,9 @@ import 'package:tmail_ui_user/features/base/action/ui_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/detailed_email.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/get_detailed_email_by_id_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/state/get_stored_state_email_state.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/get_detailed_email_by_id_interator.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/get_list_detailed_email_by_id_interator.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/get_stored_email_state_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/store_new_email_interator.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/usecases/store_list_new_email_interator.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/action/email_ui_action.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/push_notification/domain/exceptions/fcm_exception.dart';
|
||||
@@ -60,9 +63,9 @@ class EmailChangeListener extends ChangeListener {
|
||||
GetMailboxesNotPutNotificationsInteractor? _getMailboxesNotPutNotificationsInteractor;
|
||||
GetEmailChangesToRemoveNotificationInteractor? _getEmailChangesToRemoveNotificationInteractor;
|
||||
GetNewReceiveEmailFromNotificationInteractor? _getNewReceiveEmailFromNotificationInteractor;
|
||||
GetDetailedEmailByIdInteractor? _getDetailedEmailByIdInteractor;
|
||||
GetListDetailedEmailByIdInteractor? _getListDetailedEmailByIdInteractor;
|
||||
DynamicUrlInterceptors? _dynamicUrlInterceptors;
|
||||
StoreNewEmailInteractor? _storeNewEmailInteractor;
|
||||
StoreListNewEmailInteractor? _storeListNewEmailInteractor;
|
||||
|
||||
jmap.State? _newStateEmailDelivery;
|
||||
AccountId? _accountId;
|
||||
@@ -81,9 +84,9 @@ class EmailChangeListener extends ChangeListener {
|
||||
_getMailboxesNotPutNotificationsInteractor = getBinding<GetMailboxesNotPutNotificationsInteractor>();
|
||||
_getEmailChangesToRemoveNotificationInteractor = getBinding<GetEmailChangesToRemoveNotificationInteractor>();
|
||||
_getNewReceiveEmailFromNotificationInteractor = getBinding<GetNewReceiveEmailFromNotificationInteractor>();
|
||||
_getDetailedEmailByIdInteractor = getBinding<GetDetailedEmailByIdInteractor>();
|
||||
_getListDetailedEmailByIdInteractor = getBinding<GetListDetailedEmailByIdInteractor>();
|
||||
_dynamicUrlInterceptors = getBinding<DynamicUrlInterceptors>();
|
||||
_storeNewEmailInteractor = getBinding<StoreNewEmailInteractor>();
|
||||
_storeListNewEmailInteractor = getBinding<StoreListNewEmailInteractor>();
|
||||
} catch (e) {
|
||||
logError('EmailChangeListener::_internal(): IS NOT REGISTERED: ${e.toString()}');
|
||||
}
|
||||
@@ -252,8 +255,7 @@ class EmailChangeListener extends ChangeListener {
|
||||
_storeNewEmailAction(
|
||||
success.session,
|
||||
success.accountId,
|
||||
success.email,
|
||||
success.detailedEmail);
|
||||
success.mapDetailedEmail);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -322,21 +324,18 @@ class EmailChangeListener extends ChangeListener {
|
||||
|
||||
void _getListDetailedEmailByIdAction(Session? session, AccountId accountId, Set<EmailId> emailIds) {
|
||||
log('EmailChangeListener::_getListDetailedEmailByIdAction():emailIds: $emailIds');
|
||||
for (var emailId in emailIds) {
|
||||
_getDetailedEmailByIdAction(session, accountId, emailId);
|
||||
}
|
||||
}
|
||||
|
||||
void _getDetailedEmailByIdAction(Session? session, AccountId accountId, EmailId emailId) {
|
||||
if (_getDetailedEmailByIdInteractor != null &&
|
||||
if (_getListDetailedEmailByIdInteractor != null &&
|
||||
_dynamicUrlInterceptors != null &&
|
||||
session != null) {
|
||||
final baseDownloadUrl = session.getDownloadUrl(jmapUrl: _dynamicUrlInterceptors!.jmapUrl);
|
||||
consumeState(_getDetailedEmailByIdInteractor!.execute(
|
||||
consumeState(_getListDetailedEmailByIdInteractor!.execute(
|
||||
session,
|
||||
accountId,
|
||||
emailId,
|
||||
baseDownloadUrl
|
||||
emailIds,
|
||||
baseDownloadUrl,
|
||||
sort: <Comparator>{}
|
||||
..add(EmailComparator(EmailComparatorProperty.receivedAt)
|
||||
..setIsAscending(true))
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -344,16 +343,14 @@ class EmailChangeListener extends ChangeListener {
|
||||
void _storeNewEmailAction(
|
||||
Session session,
|
||||
AccountId accountId,
|
||||
Email email,
|
||||
DetailedEmail detailedEmail
|
||||
Map<Email, DetailedEmail> mapDetailedEmails
|
||||
) {
|
||||
log('EmailChangeListener::_handleGetDetailedEmailByIdActionSuccess():emailId: ${email.id}');
|
||||
if (_storeNewEmailInteractor != null) {
|
||||
consumeState(_storeNewEmailInteractor!.execute(
|
||||
log('EmailChangeListener::_storeNewEmailAction():mapDetailedEmails: ${mapDetailedEmails.length}');
|
||||
if (_storeListNewEmailInteractor != null) {
|
||||
consumeState(_storeListNewEmailInteractor!.execute(
|
||||
session,
|
||||
accountId,
|
||||
email,
|
||||
detailedEmail
|
||||
mapDetailedEmails
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user