TF-996: fix some case when undo move mailbox

This commit is contained in:
ManhNTX
2022-10-31 15:08:27 +07:00
committed by Dat H. Pham
parent 78af37e0f5
commit b652f17acc
@@ -101,7 +101,7 @@ class EmailController extends BaseController with AppLoaderMixin {
); );
final Queue<EmailLoaded> presentationEmailsLoaded = Queue(); final Queue<EmailLoaded> presentationEmailsLoaded = Queue();
PageController? pageController; PageController? pageController;
int currentIndexPageView = 0; int currentIndexPageView = -1;
final canGetNewerEmail = true.obs; final canGetNewerEmail = true.obs;
final canGetOlderEmail = true.obs; final canGetOlderEmail = true.obs;
final StreamController<Either<Failure, Success>> _downloadProgressStateController = final StreamController<Either<Failure, Success>> _downloadProgressStateController =
@@ -640,7 +640,7 @@ class EmailController extends BaseController with AppLoaderMixin {
session, session,
EmailActionType.moveToSpam)); EmailActionType.moveToSpam));
} else { } else {
_moveToMailbox(accountId, MoveToMailboxRequest( _moveToMailbox(context, accountId, MoveToMailboxRequest(
{currentMailbox.id: [emailSelected.id]}, {currentMailbox.id: [emailSelected.id]},
destinationMailbox.id, destinationMailbox.id,
MoveAction.moving, MoveAction.moving,
@@ -650,13 +650,13 @@ class EmailController extends BaseController with AppLoaderMixin {
} }
} }
void _moveToMailbox(AccountId accountId, MoveToMailboxRequest moveRequest) { void _moveToMailbox(BuildContext context, AccountId accountId, MoveToMailboxRequest moveRequest) {
closeEmailView(context);
consumeState(_moveToMailboxInteractor.execute(accountId, moveRequest)); consumeState(_moveToMailboxInteractor.execute(accountId, moveRequest));
} }
void _moveToMailboxSuccess(MoveToMailboxSuccess success) { void _moveToMailboxSuccess(MoveToMailboxSuccess success) {
mailboxDashBoardController.dispatchState(Right(success)); mailboxDashBoardController.dispatchState(Right(success));
if (success.moveAction == MoveAction.moving && currentContext != null && currentOverlayContext != null) { if (success.moveAction == MoveAction.moving && currentContext != null && currentOverlayContext != null) {
_appToast.showBottomToast( _appToast.showBottomToast(
currentOverlayContext!, currentOverlayContext!,
@@ -688,7 +688,7 @@ class EmailController extends BaseController with AppLoaderMixin {
void _revertedToOriginalMailbox(MoveToMailboxRequest newMoveRequest) { void _revertedToOriginalMailbox(MoveToMailboxRequest newMoveRequest) {
final accountId = mailboxDashBoardController.accountId.value; final accountId = mailboxDashBoardController.accountId.value;
if (accountId != null) { if (accountId != null) {
_moveToMailbox(accountId, newMoveRequest); _moveToMailbox(currentContext!, accountId, newMoveRequest);
} }
} }
@@ -1004,6 +1004,9 @@ class EmailController extends BaseController with AppLoaderMixin {
} }
void closeEmailView(BuildContext context) { void closeEmailView(BuildContext context) {
presentationEmailsLoaded.removeWhere((e) => e.emailCurrent?.id == currentEmail?.id);
currentIndexPageView = -1;
_getEmailDeBouncer.value = null;
mailboxDashBoardController.clearSelectedEmail(); mailboxDashBoardController.clearSelectedEmail();
_currentEmailId = null; _currentEmailId = null;
_resetToOriginalValue(); _resetToOriginalValue();