TF-1074 Handle go to path /session
This commit is contained in:
@@ -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));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user