TF-1074 Handle go to path /session

This commit is contained in:
dab246
2022-10-25 15:11:51 +07:00
committed by Dat H. Pham
parent 0ee990262f
commit 079bd404c2
12 changed files with 313 additions and 346 deletions
@@ -11,6 +11,7 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/identities/identity.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
@@ -507,47 +508,28 @@ class EmailController extends BaseController with AppLoaderMixin {
context: context,
arguments: arguments,
onSelectedMailbox: (destinationMailbox) {
_dispatchMoveToAction(
context,
accountId,
email,
currentMailbox,
destinationMailbox);
if (mailboxDashBoardController.sessionCurrent != null) {
_dispatchMoveToAction(
context,
accountId,
mailboxDashBoardController.sessionCurrent!,
email,
currentMailbox,
destinationMailbox);
}
});
} else {
final destinationMailbox = await push(
AppRoutes.destinationPicker,
arguments: arguments);
if (destinationMailbox != null && destinationMailbox is PresentationMailbox && mailboxDashBoardController.sessionCurrent != null) {
if (destinationMailbox.isTrash) {
_moveToTrashAction(context, accountId, MoveToMailboxRequest(
{currentMailbox.id: [email.id]},
destinationMailbox.id,
MoveAction.moving,
mailboxDashBoardController.sessionCurrent!,
EmailActionType.moveToTrash));
} else if (destinationMailbox.isSpam) {
_moveToSpamAction(context, accountId, MoveToMailboxRequest(
{currentMailbox.id: [email.id]},
destinationMailbox.id,
MoveAction.moving,
mailboxDashBoardController.sessionCurrent!,
EmailActionType.moveToSpam));
} else {
_moveToMailbox(accountId, MoveToMailboxRequest(
{currentMailbox.id: [email.id]},
destinationMailbox.id,
MoveAction.moving,
mailboxDashBoardController.sessionCurrent!,
EmailActionType.moveToMailbox,
destinationPath: destinationMailbox.mailboxPath));
}
}
if (destinationMailbox is PresentationMailbox) {
if (destinationMailbox != null &&
destinationMailbox is PresentationMailbox &&
mailboxDashBoardController.sessionCurrent != null) {
_dispatchMoveToAction(
context,
accountId,
mailboxDashBoardController.sessionCurrent!,
email,
currentMailbox,
destinationMailbox);
@@ -559,30 +541,31 @@ class EmailController extends BaseController with AppLoaderMixin {
void _dispatchMoveToAction(
BuildContext context,
AccountId accountId,
Session session,
PresentationEmail emailSelected,
PresentationMailbox currentMailbox,
PresentationMailbox destinationMailbox
) {
if (destinationMailbox.isTrash) {
_moveToTrashAction(context, accountId, MoveToMailboxRequest(
[emailSelected.id],
currentMailbox.id,
{currentMailbox.id: [emailSelected.id]},
destinationMailbox.id,
MoveAction.moving,
session,
EmailActionType.moveToTrash));
} else if (destinationMailbox.isSpam) {
_moveToSpamAction(context, accountId, MoveToMailboxRequest(
[emailSelected.id],
currentMailbox.id,
{currentMailbox.id: [emailSelected.id]},
destinationMailbox.id,
MoveAction.moving,
session,
EmailActionType.moveToSpam));
} else {
_moveToMailbox(accountId, MoveToMailboxRequest(
[emailSelected.id],
currentMailbox.id,
{currentMailbox.id: [emailSelected.id]},
destinationMailbox.id,
MoveAction.moving,
session,
EmailActionType.moveToMailbox,
destinationPath: destinationMailbox.mailboxPath));
}