TF-3050 Fix synchronize button should refresh all mailbox and emails
This commit is contained in:
@@ -26,4 +26,6 @@ class CloseEmailDetailedViewAction extends EmailUIAction {}
|
|||||||
|
|
||||||
class HideEmailContentViewAction extends EmailUIAction {}
|
class HideEmailContentViewAction extends EmailUIAction {}
|
||||||
|
|
||||||
class ShowEmailContentViewAction extends EmailUIAction {}
|
class ShowEmailContentViewAction extends EmailUIAction {}
|
||||||
|
|
||||||
|
class RefreshAllEmailAction extends EmailUIAction {}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
import 'package:core/presentation/state/failure.dart';
|
||||||
|
import 'package:core/presentation/state/success.dart';
|
||||||
|
|
||||||
|
class RefreshingAllMailbox extends LoadingState {}
|
||||||
|
|
||||||
|
class RefreshAllMailboxSuccess extends UIState {}
|
||||||
|
|
||||||
|
class RefreshAllMailboxFailure extends FeatureFailure {
|
||||||
|
|
||||||
|
RefreshAllMailboxFailure({dynamic exception}) : super(exception: exception);
|
||||||
|
}
|
||||||
@@ -33,4 +33,6 @@ class OpenMailboxAction extends MailboxUIAction {
|
|||||||
List<Object?> get props => [presentationMailbox];
|
List<Object?> get props => [presentationMailbox];
|
||||||
}
|
}
|
||||||
|
|
||||||
class SystemBackToInboxAction extends MailboxUIAction {}
|
class SystemBackToInboxAction extends MailboxUIAction {}
|
||||||
|
|
||||||
|
class RefreshAllMailboxAction extends MailboxUIAction {}
|
||||||
@@ -2,6 +2,7 @@ import 'dart:async';
|
|||||||
|
|
||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
@@ -28,6 +29,7 @@ import 'package:tmail_ui_user/features/email/domain/state/get_restored_deleted_m
|
|||||||
import 'package:tmail_ui_user/features/email/domain/state/mark_as_email_read_state.dart';
|
import 'package:tmail_ui_user/features/email/domain/state/mark_as_email_read_state.dart';
|
||||||
import 'package:tmail_ui_user/features/email/domain/state/move_to_mailbox_state.dart';
|
import 'package:tmail_ui_user/features/email/domain/state/move_to_mailbox_state.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
import 'package:tmail_ui_user/features/email/presentation/model/composer_arguments.dart';
|
||||||
|
import 'package:tmail_ui_user/features/home/data/exceptions/session_exceptions.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/constants/mailbox_constants.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/constants/mailbox_constants.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/exceptions/set_mailbox_name_exception.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/exceptions/set_mailbox_name_exception.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
||||||
@@ -44,6 +46,7 @@ import 'package:tmail_ui_user/features/mailbox/domain/state/delete_multiple_mail
|
|||||||
import 'package:tmail_ui_user/features/mailbox/domain/state/get_all_mailboxes_state.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/state/get_all_mailboxes_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/state/move_mailbox_state.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/state/move_mailbox_state.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/domain/state/refresh_all_mailboxes_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/state/refresh_changes_all_mailboxes_state.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/state/refresh_changes_all_mailboxes_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/state/rename_mailbox_state.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/state/rename_mailbox_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/state/subscribe_mailbox_state.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/state/subscribe_mailbox_state.dart';
|
||||||
@@ -207,23 +210,30 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
|||||||
@override
|
@override
|
||||||
void onDone() {
|
void onDone() {
|
||||||
super.onDone();
|
super.onDone();
|
||||||
viewState.value.fold((failure) => null, (success) {
|
viewState.value.fold(
|
||||||
if (success is GetAllMailboxSuccess) {
|
(failure) {
|
||||||
_handleCreateDefaultFolderIfMissing(mailboxDashBoardController.mapDefaultMailboxIdByRole);
|
if (failure is GetAllMailboxFailure) {
|
||||||
_handleDataFromNavigationRouter();
|
mailboxDashBoardController.updateRefreshAllMailboxState(Left(RefreshAllMailboxFailure()));
|
||||||
mailboxDashBoardController.getSpamReportBanner();
|
|
||||||
if (PlatformInfo.isIOS) {
|
|
||||||
_updateMailboxIdsBlockNotificationToKeychain(success.mailboxList);
|
|
||||||
}
|
}
|
||||||
} else if (success is RefreshChangesAllMailboxSuccess) {
|
},
|
||||||
_selectSelectedMailboxDefault();
|
(success) {
|
||||||
mailboxDashBoardController.refreshSpamReportBanner();
|
if (success is GetAllMailboxSuccess) {
|
||||||
|
mailboxDashBoardController.updateRefreshAllMailboxState(Right(RefreshAllMailboxSuccess()));
|
||||||
|
_handleCreateDefaultFolderIfMissing(mailboxDashBoardController.mapDefaultMailboxIdByRole);
|
||||||
|
_handleDataFromNavigationRouter();
|
||||||
|
mailboxDashBoardController.getSpamReportBanner();
|
||||||
|
if (PlatformInfo.isIOS) {
|
||||||
|
_updateMailboxIdsBlockNotificationToKeychain(success.mailboxList);
|
||||||
|
}
|
||||||
|
} else if (success is RefreshChangesAllMailboxSuccess) {
|
||||||
|
_selectSelectedMailboxDefault();
|
||||||
|
mailboxDashBoardController.refreshSpamReportBanner();
|
||||||
|
|
||||||
if (_newFolderId != null) {
|
if (_newFolderId != null) {
|
||||||
_redirectToNewFolder();
|
_redirectToNewFolder();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _registerObxStreamListener() {
|
void _registerObxStreamListener() {
|
||||||
@@ -307,6 +317,9 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
|||||||
_disableAllSearchEmail();
|
_disableAllSearchEmail();
|
||||||
_switchBackToMailboxDefault();
|
_switchBackToMailboxDefault();
|
||||||
mailboxDashBoardController.clearMailboxUIAction();
|
mailboxDashBoardController.clearMailboxUIAction();
|
||||||
|
} else if (action is RefreshAllMailboxAction) {
|
||||||
|
refreshAllMailbox();
|
||||||
|
mailboxDashBoardController.clearMailboxUIAction();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -328,6 +341,8 @@ class MailboxController extends BaseMailboxController with MailboxActionHandlerM
|
|||||||
final accountId = mailboxDashBoardController.accountId.value;
|
final accountId = mailboxDashBoardController.accountId.value;
|
||||||
if (session != null && accountId != null) {
|
if (session != null && accountId != null) {
|
||||||
consumeState(getAllMailboxInteractor!.execute(session, accountId));
|
consumeState(getAllMailboxInteractor!.execute(session, accountId));
|
||||||
|
} else {
|
||||||
|
consumeState(Stream.value(Left(GetAllMailboxFailure(NotFoundSessionException()))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,8 +20,6 @@ class DashBoardAction extends UIAction {
|
|||||||
List<Object?> get props => [];
|
List<Object?> get props => [];
|
||||||
}
|
}
|
||||||
|
|
||||||
class RefreshAllEmailAction extends DashBoardAction {}
|
|
||||||
|
|
||||||
class SelectionAllEmailAction extends DashBoardAction {}
|
class SelectionAllEmailAction extends DashBoardAction {}
|
||||||
|
|
||||||
class CancelSelectionAllEmailAction extends DashBoardAction {}
|
class CancelSelectionAllEmailAction extends DashBoardAction {}
|
||||||
|
|||||||
+30
-5
@@ -77,6 +77,7 @@ import 'package:tmail_ui_user/features/identity_creator/domain/usecase/get_ident
|
|||||||
import 'package:tmail_ui_user/features/mailbox/domain/exceptions/mailbox_exception.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/exceptions/mailbox_exception.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/model/create_new_mailbox_request.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/state/mark_as_mailbox_read_state.dart';
|
||||||
|
import 'package:tmail_ui_user/features/mailbox/domain/state/refresh_all_mailboxes_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox/domain/usecases/mark_as_mailbox_read_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/action/mailbox_ui_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
|
||||||
@@ -138,11 +139,11 @@ import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option
|
|||||||
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
|
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/empty_spam_folder_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/empty_spam_folder_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/empty_trash_folder_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/empty_trash_folder_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/get_all_email_state.dart';
|
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/get_email_by_id_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/get_email_by_id_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/mark_as_multiple_email_read_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/mark_as_multiple_email_read_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/mark_as_star_multiple_email_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/mark_as_star_multiple_email_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/move_multiple_email_to_mailbox_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/move_multiple_email_to_mailbox_state.dart';
|
||||||
|
import 'package:tmail_ui_user/features/thread/domain/state/refresh_all_email_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/usecases/empty_spam_folder_interactor.dart';
|
import 'package:tmail_ui_user/features/thread/domain/usecases/empty_spam_folder_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/usecases/empty_trash_folder_interactor.dart';
|
import 'package:tmail_ui_user/features/thread/domain/usecases/empty_trash_folder_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/usecases/get_email_by_id_interactor.dart';
|
import 'package:tmail_ui_user/features/thread/domain/usecases/get_email_by_id_interactor.dart';
|
||||||
@@ -225,7 +226,8 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
|
|||||||
final _isDraggingMailbox = RxBool(false);
|
final _isDraggingMailbox = RxBool(false);
|
||||||
final searchMailboxActivated = RxBool(false);
|
final searchMailboxActivated = RxBool(false);
|
||||||
final listSendingEmails = RxList<SendingEmail>();
|
final listSendingEmails = RxList<SendingEmail>();
|
||||||
final refreshingMailboxState = Rx<Either<Failure, Success>>(Right(UIState.idle));
|
final refreshingAllMailboxState = Rx<Either<Failure, Success>>(Right(UIState.idle));
|
||||||
|
final refreshingAllEmailState = Rx<Either<Failure, Success>>(Right(UIState.idle));
|
||||||
final attachmentDraggableAppState = Rxn<DraggableAppState>();
|
final attachmentDraggableAppState = Rxn<DraggableAppState>();
|
||||||
final isRecoveringDeletedMessage = RxBool(false);
|
final isRecoveringDeletedMessage = RxBool(false);
|
||||||
final localFileDraggableAppState = Rxn<DraggableAppState>();
|
final localFileDraggableAppState = Rxn<DraggableAppState>();
|
||||||
@@ -2266,10 +2268,33 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void refreshMailboxAction() async {
|
Future<void> refreshMailboxAction() async {
|
||||||
refreshingMailboxState.value = Right(RefreshAllEmailLoading());
|
updateRefreshAllMailboxState(Right(RefreshingAllMailbox()));
|
||||||
|
updateRefreshAllEmailState(Right(RefreshingAllEmail()));
|
||||||
|
|
||||||
await Future.delayed(const Duration(milliseconds: 500));
|
await Future.delayed(const Duration(milliseconds: 500));
|
||||||
dispatchAction(RefreshAllEmailAction());
|
|
||||||
|
dispatchMailboxUIAction(RefreshAllMailboxAction());
|
||||||
|
dispatchEmailUIAction(RefreshAllEmailAction());
|
||||||
|
}
|
||||||
|
|
||||||
|
void updateRefreshAllMailboxState(Either<Failure, Success> newState) {
|
||||||
|
refreshingAllMailboxState.value = newState;
|
||||||
|
}
|
||||||
|
|
||||||
|
void updateRefreshAllEmailState(Either<Failure, Success> newState) {
|
||||||
|
refreshingAllEmailState.value = newState;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool get isRefreshingAllMailboxAndEmail {
|
||||||
|
final isRefreshingMailbox = refreshingAllMailboxState.value.fold(
|
||||||
|
(failure) => false,
|
||||||
|
(success) => success is RefreshingAllMailbox);
|
||||||
|
final isRefreshingEmail = refreshingAllEmailState.value.fold(
|
||||||
|
(failure) => false,
|
||||||
|
(success) => success is RefreshingAllEmail);
|
||||||
|
log('MailboxDashBoardController::isRefreshingAllMailboxAndEmail:isRefreshingMailbox = $isRefreshingMailbox | isRefreshingEmail = $isRefreshingEmail');
|
||||||
|
return isRefreshingMailbox && isRefreshingEmail;
|
||||||
}
|
}
|
||||||
|
|
||||||
void selectAllEmailAction() {
|
void selectAllEmailAction() {
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ import 'package:tmail_ui_user/features/quotas/presentation/widget/quotas_banner_
|
|||||||
import 'package:tmail_ui_user/features/search/email/presentation/search_email_view.dart';
|
import 'package:tmail_ui_user/features/search/email/presentation/search_email_view.dart';
|
||||||
import 'package:tmail_ui_user/features/search/mailbox/presentation/search_mailbox_view.dart';
|
import 'package:tmail_ui_user/features/search/mailbox/presentation/search_mailbox_view.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/get_all_email_state.dart';
|
|
||||||
import 'package:tmail_ui_user/features/thread/presentation/styles/banner_delete_all_spam_emails_styles.dart';
|
import 'package:tmail_ui_user/features/thread/presentation/styles/banner_delete_all_spam_emails_styles.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/presentation/styles/banner_empty_trash_styles.dart';
|
import 'package:tmail_ui_user/features/thread/presentation/styles/banner_empty_trash_styles.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/presentation/thread_view.dart';
|
import 'package:tmail_ui_user/features/thread/presentation/thread_view.dart';
|
||||||
@@ -267,33 +266,20 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
|||||||
Widget _buildListButtonTopBar(BuildContext context) {
|
Widget _buildListButtonTopBar(BuildContext context) {
|
||||||
return Row(children: [
|
return Row(children: [
|
||||||
Obx(() {
|
Obx(() {
|
||||||
return controller.refreshingMailboxState.value.fold(
|
if (controller.isRefreshingAllMailboxAndEmail) {
|
||||||
(failure) {
|
return const TMailContainerWidget(
|
||||||
return TMailButtonWidget.fromIcon(
|
borderRadius: 10,
|
||||||
key: const Key('refresh_mailbox_button'),
|
padding: EdgeInsetsDirectional.symmetric(vertical: 8, horizontal: 8.5),
|
||||||
icon: controller.imagePaths.icRefresh,
|
child: CupertinoLoadingWidget(size: 16));
|
||||||
borderRadius: 10,
|
} else {
|
||||||
iconSize: 16,
|
return TMailButtonWidget.fromIcon(
|
||||||
onTapActionCallback: controller.refreshMailboxAction,
|
key: const Key('refresh_all_mailbox_and_email_button'),
|
||||||
);
|
icon: controller.imagePaths.icRefresh,
|
||||||
},
|
borderRadius: 10,
|
||||||
(success) {
|
iconSize: 16,
|
||||||
if (success is RefreshAllEmailLoading) {
|
onTapActionCallback: controller.refreshMailboxAction,
|
||||||
return const TMailContainerWidget(
|
);
|
||||||
borderRadius: 10,
|
}
|
||||||
padding: EdgeInsetsDirectional.symmetric(vertical: 8, horizontal: 8.5),
|
|
||||||
child: CupertinoLoadingWidget(size: 16));
|
|
||||||
} else {
|
|
||||||
return TMailButtonWidget.fromIcon(
|
|
||||||
key: const Key('refresh_mailbox_button'),
|
|
||||||
icon: controller.imagePaths.icRefresh,
|
|
||||||
borderRadius: 10,
|
|
||||||
iconSize: 16,
|
|
||||||
onTapActionCallback: controller.refreshMailboxAction,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}),
|
}),
|
||||||
Obx(() {
|
Obx(() {
|
||||||
if (controller.validateNoEmailsInTrashAndSpamFolder()) {
|
if (controller.validateNoEmailsInTrashAndSpamFolder()) {
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ import 'package:jmap_dart_client/jmap/core/state.dart';
|
|||||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||||
import 'package:model/email/presentation_email.dart';
|
import 'package:model/email/presentation_email.dart';
|
||||||
|
|
||||||
class RefreshAllEmailLoading extends LoadingState {}
|
|
||||||
|
|
||||||
class GetAllEmailLoading extends LoadingState {}
|
class GetAllEmailLoading extends LoadingState {}
|
||||||
|
|
||||||
class GetAllEmailSuccess extends UIState {
|
class GetAllEmailSuccess extends UIState {
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
import 'package:core/presentation/state/failure.dart';
|
||||||
|
import 'package:core/presentation/state/success.dart';
|
||||||
|
|
||||||
|
class RefreshingAllEmail extends LoadingState {}
|
||||||
|
|
||||||
|
class RefreshAllEmailSuccess extends UIState {}
|
||||||
|
|
||||||
|
class RefreshAllEmailFailure extends FeatureFailure {
|
||||||
|
|
||||||
|
RefreshAllEmailFailure({dynamic exception}) : super(exception: exception);
|
||||||
|
}
|
||||||
@@ -59,6 +59,7 @@ import 'package:tmail_ui_user/features/thread/domain/state/load_more_emails_stat
|
|||||||
import 'package:tmail_ui_user/features/thread/domain/state/mark_as_multiple_email_read_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/mark_as_multiple_email_read_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/mark_as_star_multiple_email_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/mark_as_star_multiple_email_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/move_multiple_email_to_mailbox_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/move_multiple_email_to_mailbox_state.dart';
|
||||||
|
import 'package:tmail_ui_user/features/thread/domain/state/refresh_all_email_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/refresh_changes_all_email_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/refresh_changes_all_email_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/search_email_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/search_email_state.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/state/search_more_email_state.dart';
|
import 'package:tmail_ui_user/features/thread/domain/state/search_more_email_state.dart';
|
||||||
@@ -203,7 +204,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
void handleFailureViewState(Failure failure) {
|
void handleFailureViewState(Failure failure) {
|
||||||
super.handleFailureViewState(failure);
|
super.handleFailureViewState(failure);
|
||||||
if (failure is SearchEmailFailure) {
|
if (failure is SearchEmailFailure) {
|
||||||
mailboxDashBoardController.refreshingMailboxState.value = Left(failure);
|
mailboxDashBoardController.updateRefreshAllEmailState(Left(RefreshAllEmailFailure()));
|
||||||
canSearchMore = false;
|
canSearchMore = false;
|
||||||
mailboxDashBoardController.emailsInCurrentMailbox.clear();
|
mailboxDashBoardController.emailsInCurrentMailbox.clear();
|
||||||
} else if (failure is SearchMoreEmailFailure) {
|
} else if (failure is SearchMoreEmailFailure) {
|
||||||
@@ -216,7 +217,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
openingEmail.value = false;
|
openingEmail.value = false;
|
||||||
popAndPush(AppRoutes.unknownRoutePage);
|
popAndPush(AppRoutes.unknownRoutePage);
|
||||||
} else if (failure is GetAllEmailFailure) {
|
} else if (failure is GetAllEmailFailure) {
|
||||||
mailboxDashBoardController.refreshingMailboxState.value = Left(failure);
|
mailboxDashBoardController.updateRefreshAllEmailState(Left(RefreshAllEmailFailure()));
|
||||||
canLoadMore = true;
|
canLoadMore = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -279,10 +280,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
});
|
});
|
||||||
|
|
||||||
ever(mailboxDashBoardController.dashBoardAction, (action) {
|
ever(mailboxDashBoardController.dashBoardAction, (action) {
|
||||||
if (action is RefreshAllEmailAction) {
|
if (action is SelectionAllEmailAction) {
|
||||||
refreshAllEmail();
|
|
||||||
mailboxDashBoardController.clearDashBoardAction();
|
|
||||||
} else if (action is SelectionAllEmailAction) {
|
|
||||||
setSelectAllEmailAction();
|
setSelectAllEmailAction();
|
||||||
mailboxDashBoardController.clearDashBoardAction();
|
mailboxDashBoardController.clearDashBoardAction();
|
||||||
} else if (action is CancelSelectionAllEmailAction) {
|
} else if (action is CancelSelectionAllEmailAction) {
|
||||||
@@ -343,6 +341,9 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
_refreshEmailChanges();
|
_refreshEmailChanges();
|
||||||
}
|
}
|
||||||
mailboxDashBoardController.clearEmailUIAction();
|
mailboxDashBoardController.clearEmailUIAction();
|
||||||
|
} else if (action is RefreshAllEmailAction) {
|
||||||
|
refreshAllEmail();
|
||||||
|
mailboxDashBoardController.clearEmailUIAction();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -448,12 +449,12 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _getAllEmailSuccess(GetAllEmailSuccess success) {
|
void _getAllEmailSuccess(GetAllEmailSuccess success) {
|
||||||
|
mailboxDashBoardController.updateRefreshAllEmailState(Right(RefreshAllEmailSuccess()));
|
||||||
|
|
||||||
if (success.currentMailboxId != selectedMailboxId) {
|
if (success.currentMailboxId != selectedMailboxId) {
|
||||||
log('ThreadController::_getAllEmailSuccess: GetAllForMailboxId = ${success.currentMailboxId?.asString} | SELECTED_MAILBOX_ID = ${selectedMailboxId?.asString} | SELECTED_MAILBOX_NAME = ${selectedMailbox?.name?.name}');
|
log('ThreadController::_getAllEmailSuccess: GetAllForMailboxId = ${success.currentMailboxId?.asString} | SELECTED_MAILBOX_ID = ${selectedMailboxId?.asString} | SELECTED_MAILBOX_NAME = ${selectedMailbox?.name?.name}');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mailboxDashBoardController.refreshingMailboxState.value = Right(success);
|
|
||||||
_currentEmailState = success.currentEmailState;
|
_currentEmailState = success.currentEmailState;
|
||||||
log('ThreadController::_getAllEmailSuccess():COUNT = ${success.emailList.length} | EMAIL_STATE = $_currentEmailState');
|
log('ThreadController::_getAllEmailSuccess():COUNT = ${success.emailList.length} | EMAIL_STATE = $_currentEmailState');
|
||||||
final newListEmail = success.emailList.syncPresentationEmail(
|
final newListEmail = success.emailList.syncPresentationEmail(
|
||||||
@@ -863,7 +864,7 @@ class ThreadController extends BaseController with EmailActionController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _searchEmailsSuccess(SearchEmailSuccess success) {
|
void _searchEmailsSuccess(SearchEmailSuccess success) {
|
||||||
mailboxDashBoardController.refreshingMailboxState.value = Right(success);
|
mailboxDashBoardController.updateRefreshAllEmailState(Right(RefreshAllEmailSuccess()));
|
||||||
log('ThreadController::_searchEmailsSuccess: COUNT = ${success.emailList.length}');
|
log('ThreadController::_searchEmailsSuccess: COUNT = ${success.emailList.length}');
|
||||||
final resultEmailSearchList = success.emailList
|
final resultEmailSearchList = success.emailList
|
||||||
.map((email) => email.toSearchPresentationEmail(mailboxDashBoardController.mapMailboxById))
|
.map((email) => email.toSearchPresentationEmail(mailboxDashBoardController.mapMailboxById))
|
||||||
|
|||||||
Reference in New Issue
Block a user