TF-1083: merge one request when drag email when searching
This commit is contained in:
@@ -5,6 +5,7 @@ import 'package:core/core.dart';
|
|||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'package:core/core.dart';
|
|||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ import 'package:external_path/external_path.dart';
|
|||||||
import 'package:flutter_downloader/flutter_downloader.dart';
|
import 'package:flutter_downloader/flutter_downloader.dart';
|
||||||
import 'package:jmap_dart_client/http/http_client.dart';
|
import 'package:jmap_dart_client/http/http_client.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/core/capability/core_capability.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/patch_object.dart';
|
import 'package:jmap_dart_client/jmap/core/patch_object.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/reference_id.dart';
|
import 'package:jmap_dart_client/jmap/core/reference_id.dart';
|
||||||
@@ -38,6 +40,7 @@ import 'package:model/extensions/email_extension.dart';
|
|||||||
import 'package:model/extensions/keyword_identifier_extension.dart';
|
import 'package:model/extensions/keyword_identifier_extension.dart';
|
||||||
import 'package:model/extensions/list_email_id_extension.dart';
|
import 'package:model/extensions/list_email_id_extension.dart';
|
||||||
import 'package:model/extensions/mailbox_id_extension.dart';
|
import 'package:model/extensions/mailbox_id_extension.dart';
|
||||||
|
import 'package:model/extensions/session_extension.dart';
|
||||||
import 'package:model/oidc/token.dart';
|
import 'package:model/oidc/token.dart';
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
import 'package:tmail_ui_user/features/composer/domain/model/email_request.dart';
|
||||||
@@ -45,6 +48,7 @@ import 'package:tmail_ui_user/features/email/domain/model/move_to_mailbox_reques
|
|||||||
import 'package:tmail_ui_user/features/email/domain/state/download_attachment_for_web_state.dart';
|
import 'package:tmail_ui_user/features/email/domain/state/download_attachment_for_web_state.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_exception.dart';
|
import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_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/main/error/capability_validator.dart';
|
||||||
|
|
||||||
class EmailAPI {
|
class EmailAPI {
|
||||||
|
|
||||||
@@ -302,33 +306,74 @@ class EmailAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<List<EmailId>> moveToMailbox(AccountId accountId, MoveToMailboxRequest moveRequest) async {
|
Future<List<EmailId>> moveToMailbox(AccountId accountId, MoveToMailboxRequest moveRequest) async {
|
||||||
final setEmailMethod = SetEmailMethod(accountId)
|
|
||||||
..addUpdates(moveRequest.emailIds
|
|
||||||
.generateMapUpdateObjectMoveToMailbox(moveRequest.currentMailboxId, moveRequest.destinationMailboxId));
|
|
||||||
|
|
||||||
final requestBuilder = JmapRequestBuilder(_httpClient, ProcessingInvocation());
|
requireCapability(moveRequest.session, accountId, [CapabilityIdentifier.jmapCore, CapabilityIdentifier.jmapMail]);
|
||||||
|
|
||||||
final setEmailInvocation = requestBuilder.invocation(setEmailMethod);
|
final coreCapability = moveRequest.session.getCapabilityProperties<CoreCapability>(
|
||||||
|
accountId, CapabilityIdentifier.jmapCore);
|
||||||
|
final maxMethodCount = coreCapability.maxCallsInRequest.value.toInt();
|
||||||
|
|
||||||
final response = await (requestBuilder
|
var start = 0;
|
||||||
..usings(setEmailMethod.requiredCapabilities))
|
var end = 0;
|
||||||
.build()
|
|
||||||
.execute();
|
|
||||||
|
|
||||||
final setEmailResponse = response.parse<SetEmailResponse>(
|
final List<EmailId> listEmailIdResult = List.empty(growable: true);
|
||||||
setEmailInvocation.methodCallId,
|
final listCurrentMailboxesEntries = moveRequest.currentMailboxes.entries.toList();
|
||||||
SetEmailResponse.deserialize);
|
|
||||||
|
|
||||||
return Future.sync(() async {
|
while (end < moveRequest.currentMailboxes.length) {
|
||||||
final mapUpdated = setEmailResponse!.updated!;
|
start = end;
|
||||||
return moveRequest.emailIds
|
if (moveRequest.currentMailboxes.length - start >= maxMethodCount) {
|
||||||
.where((emailId) => mapUpdated.containsKey(emailId.id))
|
end = maxMethodCount;
|
||||||
.toList();
|
} else {
|
||||||
}).catchError((error) {
|
end = moveRequest.currentMailboxes.length;
|
||||||
throw error;
|
}
|
||||||
});
|
log('EmailAPI::moveToMailbox(): move from $start to $end / ${listCurrentMailboxesEntries.length}');
|
||||||
|
final currentExecuteList = listCurrentMailboxesEntries.sublist(start, end);
|
||||||
|
|
||||||
|
final requestBuilder = JmapRequestBuilder(_httpClient, ProcessingInvocation());
|
||||||
|
final currentSetEmailInvocations = currentExecuteList.map((currentItem) {
|
||||||
|
return SetEmailMethod(accountId)
|
||||||
|
..addUpdates(currentItem.value.generateMapUpdateObjectMoveToMailbox(currentItem.key, moveRequest.destinationMailboxId));
|
||||||
|
}).map(requestBuilder.invocation).toList();
|
||||||
|
|
||||||
|
final response = await (requestBuilder..usings({CapabilityIdentifier.jmapCore, CapabilityIdentifier.jmapMail}))
|
||||||
|
.build()
|
||||||
|
.execute();
|
||||||
|
|
||||||
|
Future.sync(() async {
|
||||||
|
final listSetEmailResponse = currentSetEmailInvocations
|
||||||
|
.map((currentInvocation) => response.parse(currentInvocation.methodCallId, SetEmailResponse.deserialize))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
listEmailIdResult.addAll(_getListEmailIdUpdatedFormSetEmailResponse(listSetEmailResponse, moveRequest));
|
||||||
|
|
||||||
|
}).catchError((error) {
|
||||||
|
throw error;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return listEmailIdResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<EmailId> _getListEmailIdUpdatedFormSetEmailResponse(List<SetEmailResponse?> listSetEmailResponse, MoveToMailboxRequest moveRequest) {
|
||||||
|
final List<EmailId> listEmailIdResult = List.empty(growable: true);
|
||||||
|
final listUpdated = listSetEmailResponse.map((e) => e!.updated!.keys).toList();
|
||||||
|
|
||||||
|
for (final listEmailId in listUpdated) {
|
||||||
|
List<EmailId> listEmailIdRequest = List.empty(growable: true);
|
||||||
|
for (var itemEmailIdMoveRequest in moveRequest.currentMailboxes.values) {
|
||||||
|
listEmailIdRequest.addAll(itemEmailIdMoveRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
listEmailIdResult.addAll(listEmailIdRequest
|
||||||
|
.where((emailId) => listEmailId.toList().contains(emailId.id))
|
||||||
|
.toList(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return listEmailIdResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Future<List<Email>> markAsStar(AccountId accountId, List<Email> emails, MarkStarAction markStarAction) async {
|
Future<List<Email>> markAsStar(AccountId accountId, List<Email> emails, MarkStarAction markStarAction) async {
|
||||||
final emailIds = emails.map((email) => email.id).toList();
|
final emailIds = emails.map((email) => email.id).toList();
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import 'package:core/core.dart';
|
|||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
import 'package:equatable/equatable.dart';
|
import 'package:equatable/equatable.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
@@ -7,26 +8,25 @@ import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
|
|||||||
|
|
||||||
class MoveToMailboxRequest with EquatableMixin {
|
class MoveToMailboxRequest with EquatableMixin {
|
||||||
|
|
||||||
final List<EmailId> emailIds;
|
final Map<MailboxId,List<EmailId>> currentMailboxes;
|
||||||
final MailboxId currentMailboxId;
|
|
||||||
final MailboxId destinationMailboxId;
|
final MailboxId destinationMailboxId;
|
||||||
final MoveAction moveAction;
|
final MoveAction moveAction;
|
||||||
final EmailActionType emailActionType;
|
final EmailActionType emailActionType;
|
||||||
final String? destinationPath;
|
final String? destinationPath;
|
||||||
|
final Session session;
|
||||||
|
|
||||||
MoveToMailboxRequest(
|
MoveToMailboxRequest(
|
||||||
this.emailIds,
|
this.currentMailboxes,
|
||||||
this.currentMailboxId,
|
|
||||||
this.destinationMailboxId,
|
this.destinationMailboxId,
|
||||||
this.moveAction,
|
this.moveAction,
|
||||||
this.emailActionType,
|
this.session,
|
||||||
{this.destinationPath}
|
this.emailActionType,{
|
||||||
);
|
this.destinationPath,
|
||||||
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
List<Object?> get props => [
|
List<Object?> get props => [
|
||||||
emailIds,
|
currentMailboxes,
|
||||||
currentMailboxId,
|
|
||||||
destinationMailboxId,
|
destinationMailboxId,
|
||||||
moveAction,
|
moveAction,
|
||||||
emailActionType,
|
emailActionType,
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'package:core/core.dart';
|
|||||||
import 'package:dartz/dartz.dart';
|
import 'package:dartz/dartz.dart';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
|
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
import 'package:jmap_dart_client/jmap/core/state.dart' as jmap;
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ class MoveToMailboxInteractor {
|
|||||||
if (result.isNotEmpty) {
|
if (result.isNotEmpty) {
|
||||||
yield Right(MoveToMailboxSuccess(
|
yield Right(MoveToMailboxSuccess(
|
||||||
result.first,
|
result.first,
|
||||||
moveRequest.currentMailboxId,
|
moveRequest.currentMailboxes.keys.first,
|
||||||
moveRequest.destinationMailboxId,
|
moveRequest.destinationMailboxId,
|
||||||
moveRequest.moveAction,
|
moveRequest.moveAction,
|
||||||
moveRequest.emailActionType,
|
moveRequest.emailActionType,
|
||||||
|
|||||||
@@ -505,27 +505,27 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
arguments: DestinationPickerArguments(accountId, MailboxActions.moveEmail)
|
arguments: DestinationPickerArguments(accountId, MailboxActions.moveEmail)
|
||||||
);
|
);
|
||||||
|
|
||||||
if (destinationMailbox != null && destinationMailbox is PresentationMailbox) {
|
if (destinationMailbox != null && destinationMailbox is PresentationMailbox && mailboxDashBoardController.sessionCurrent != null) {
|
||||||
if (destinationMailbox.isTrash) {
|
if (destinationMailbox.isTrash) {
|
||||||
_moveToTrashAction(context, accountId, MoveToMailboxRequest(
|
_moveToTrashAction(context, accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToTrash));
|
EmailActionType.moveToTrash));
|
||||||
} else if (destinationMailbox.isSpam) {
|
} else if (destinationMailbox.isSpam) {
|
||||||
_moveToSpamAction(context, accountId, MoveToMailboxRequest(
|
_moveToSpamAction(context, accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToSpam));
|
EmailActionType.moveToSpam));
|
||||||
} else {
|
} else {
|
||||||
_moveToMailbox(accountId, MoveToMailboxRequest(
|
_moveToMailbox(accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToMailbox,
|
EmailActionType.moveToMailbox,
|
||||||
destinationPath: destinationMailbox.mailboxPath));
|
destinationPath: destinationMailbox.mailboxPath));
|
||||||
}
|
}
|
||||||
@@ -547,10 +547,10 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
actionName: AppLocalizations.of(currentContext!).undo,
|
actionName: AppLocalizations.of(currentContext!).undo,
|
||||||
onActionClick: () {
|
onActionClick: () {
|
||||||
_revertedToOriginalMailbox(MoveToMailboxRequest(
|
_revertedToOriginalMailbox(MoveToMailboxRequest(
|
||||||
[success.emailId],
|
{success.destinationMailboxId: [success.emailId]},
|
||||||
success.destinationMailboxId,
|
|
||||||
success.currentMailboxId,
|
success.currentMailboxId,
|
||||||
MoveAction.undo,
|
MoveAction.undo,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
success.emailActionType));
|
success.emailActionType));
|
||||||
},
|
},
|
||||||
leadingIcon: SvgPicture.asset(
|
leadingIcon: SvgPicture.asset(
|
||||||
@@ -582,10 +582,10 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
|
|
||||||
if (accountId != null && currentMailbox != null && trashMailboxId != null) {
|
if (accountId != null && currentMailbox != null && trashMailboxId != null) {
|
||||||
_moveToTrashAction(context, accountId, MoveToMailboxRequest(
|
_moveToTrashAction(context, accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
trashMailboxId,
|
trashMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToTrash)
|
EmailActionType.moveToTrash)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -603,10 +603,10 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
|
|
||||||
if (accountId != null && currentMailbox != null && spamMailboxId != null) {
|
if (accountId != null && currentMailbox != null && spamMailboxId != null) {
|
||||||
_moveToSpamAction(context, accountId, MoveToMailboxRequest(
|
_moveToSpamAction(context, accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
spamMailboxId,
|
spamMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToSpam)
|
EmailActionType.moveToSpam)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -619,10 +619,10 @@ class EmailController extends BaseController with AppLoaderMixin {
|
|||||||
|
|
||||||
if (accountId != null && spamMailboxId != null && inboxMailboxId != null) {
|
if (accountId != null && spamMailboxId != null && inboxMailboxId != null) {
|
||||||
_moveToSpamAction(context, accountId, MoveToMailboxRequest(
|
_moveToSpamAction(context, accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{spamMailboxId: [email.id]},
|
||||||
spamMailboxId,
|
|
||||||
inboxMailboxId,
|
inboxMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.unSpam)
|
EmailActionType.unSpam)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -285,7 +285,7 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
|
|||||||
_openMailboxMenuAction(context, position, mailboxNode.item))
|
_openMailboxMenuAction(context, position, mailboxNode.item))
|
||||||
..addOnSelectMailboxFolderClick((mailboxNode) =>
|
..addOnSelectMailboxFolderClick((mailboxNode) =>
|
||||||
controller.selectMailboxNode(mailboxNode))
|
controller.selectMailboxNode(mailboxNode))
|
||||||
..addOnDragItemAccepted(controller.mailboxDashBoardController.dragSelectedMultipleEmailToMailbox))
|
..addOnDragItemAccepted(controller.mailboxDashBoardController.dragSelectedMultipleEmailToMailboxAction))
|
||||||
.build()),
|
.build()),
|
||||||
children: _buildListChildTileWidget(context, mailboxNode)
|
children: _buildListChildTileWidget(context, mailboxNode)
|
||||||
).build()
|
).build()
|
||||||
@@ -297,7 +297,7 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
|
|||||||
_openMailboxMenuAction(context, position, mailboxNode.item))
|
_openMailboxMenuAction(context, position, mailboxNode.item))
|
||||||
..addOnSelectMailboxFolderClick((mailboxNode) =>
|
..addOnSelectMailboxFolderClick((mailboxNode) =>
|
||||||
controller.selectMailboxNode(mailboxNode))
|
controller.selectMailboxNode(mailboxNode))
|
||||||
..addOnDragItemAccepted(controller.mailboxDashBoardController.dragSelectedMultipleEmailToMailbox))
|
..addOnDragItemAccepted(controller.mailboxDashBoardController.dragSelectedMultipleEmailToMailboxAction))
|
||||||
.build())
|
.build())
|
||||||
).toList() ?? <Widget>[];
|
).toList() ?? <Widget>[];
|
||||||
}
|
}
|
||||||
@@ -363,7 +363,7 @@ class MailboxView extends GetWidget<MailboxController> with AppLoaderMixin, Popu
|
|||||||
_responsiveUtils,
|
_responsiveUtils,
|
||||||
listMailbox[index],
|
listMailbox[index],
|
||||||
lastMailbox: controller.listMailboxSearched.last)
|
lastMailbox: controller.listMailboxSearched.last)
|
||||||
..addOnDragItemAccepted(controller.mailboxDashBoardController.dragSelectedMultipleEmailToMailbox)
|
..addOnDragItemAccepted(controller.mailboxDashBoardController.dragSelectedMultipleEmailToMailboxAction)
|
||||||
..addOnOpenMailboxAction((mailbox) => controller.openMailbox(context, mailbox))
|
..addOnOpenMailboxAction((mailbox) => controller.openMailbox(context, mailbox))
|
||||||
..addOnMenuActionClick((position, mailbox) => _openMailboxMenuAction(context, position, mailbox))
|
..addOnMenuActionClick((position, mailbox) => _openMailboxMenuAction(context, position, mailbox))
|
||||||
..addOnSelectMailboxActionClick((mailbox) => controller.selectMailboxSearched(context, mailbox)))
|
..addOnSelectMailboxActionClick((mailbox) => controller.selectMailboxSearched(context, mailbox)))
|
||||||
|
|||||||
+76
-54
@@ -471,10 +471,10 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
actionName: AppLocalizations.of(currentContext!).undo,
|
actionName: AppLocalizations.of(currentContext!).undo,
|
||||||
onActionClick: () {
|
onActionClick: () {
|
||||||
_revertedToOriginalMailbox(MoveToMailboxRequest(
|
_revertedToOriginalMailbox(MoveToMailboxRequest(
|
||||||
[success.emailId],
|
{success.destinationMailboxId: [success.emailId]},
|
||||||
success.destinationMailboxId,
|
|
||||||
success.currentMailboxId,
|
success.currentMailboxId,
|
||||||
MoveAction.undo,
|
MoveAction.undo,
|
||||||
|
sessionCurrent!,
|
||||||
success.emailActionType));
|
success.emailActionType));
|
||||||
},
|
},
|
||||||
leadingIcon: SvgPicture.asset(
|
leadingIcon: SvgPicture.asset(
|
||||||
@@ -625,24 +625,24 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
if (destinationMailbox != null && destinationMailbox is PresentationMailbox) {
|
if (destinationMailbox != null && destinationMailbox is PresentationMailbox) {
|
||||||
if (destinationMailbox.isTrash) {
|
if (destinationMailbox.isTrash) {
|
||||||
_moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest(
|
_moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest(
|
||||||
listEmails.listEmailIds,
|
{mailboxCurrent.id: listEmails.listEmailIds},
|
||||||
mailboxCurrent.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
sessionCurrent!,
|
||||||
EmailActionType.moveToTrash));
|
EmailActionType.moveToTrash));
|
||||||
} else if (destinationMailbox.isSpam) {
|
} else if (destinationMailbox.isSpam) {
|
||||||
_moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest(
|
_moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest(
|
||||||
listEmails.listEmailIds,
|
{mailboxCurrent.id: listEmails.listEmailIds},
|
||||||
mailboxCurrent.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
sessionCurrent!,
|
||||||
EmailActionType.moveToSpam));
|
EmailActionType.moveToSpam));
|
||||||
} else {
|
} else {
|
||||||
_moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest(
|
_moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest(
|
||||||
listEmails.listEmailIds,
|
{mailboxCurrent.id: listEmails.listEmailIds},
|
||||||
mailboxCurrent.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
sessionCurrent!,
|
||||||
EmailActionType.moveToMailbox,
|
EmailActionType.moveToMailbox,
|
||||||
destinationPath: destinationMailbox.mailboxPath));
|
destinationPath: destinationMailbox.mailboxPath));
|
||||||
}
|
}
|
||||||
@@ -650,49 +650,71 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void dragSelectedMultipleEmailToMailbox(
|
void dragSelectedMultipleEmailToMailboxAction(
|
||||||
List<PresentationEmail> listEmails,
|
List<PresentationEmail> listEmails,
|
||||||
PresentationMailbox destinationMailbox
|
PresentationMailbox destinationMailbox,
|
||||||
) async {
|
) {
|
||||||
for (final element in listEmails) {
|
if(searchController.isSearchEmailRunning){
|
||||||
final currentMailBox = searchController.isSearchEmailRunning
|
final Map<MailboxId,List<EmailId>> mapListEmailSelectedByMailBoxId = {};
|
||||||
? element.findMailboxContain(mapMailboxById)
|
for (var element in listEmails) {
|
||||||
: selectedMailbox.value;
|
final mailbox = element.findMailboxContain(mapMailboxById);
|
||||||
if (accountId.value != null && currentMailBox != null) {
|
if(mailbox != null) {
|
||||||
if (destinationMailbox.isTrash) {
|
if(mapListEmailSelectedByMailBoxId.containsKey(mailbox.id)) {
|
||||||
moveToMailbox(accountId.value!,
|
mapListEmailSelectedByMailBoxId[mailbox.id]?.add(element.id);
|
||||||
MoveToMailboxRequest(
|
|
||||||
[element].listEmailIds,
|
|
||||||
currentMailBox.id,
|
|
||||||
destinationMailbox.id,
|
|
||||||
MoveAction.moving,
|
|
||||||
EmailActionType.moveToTrash,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} else if (destinationMailbox.isSpam) {
|
|
||||||
moveToMailbox(accountId.value!,
|
|
||||||
MoveToMailboxRequest(
|
|
||||||
[element].listEmailIds,
|
|
||||||
currentMailBox.id,
|
|
||||||
destinationMailbox.id,
|
|
||||||
MoveAction.moving,
|
|
||||||
EmailActionType.moveToSpam,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
moveToMailbox(accountId.value!,
|
mapListEmailSelectedByMailBoxId.addAll({mailbox.id: [element.id]});
|
||||||
MoveToMailboxRequest(
|
|
||||||
[element].listEmailIds,
|
|
||||||
currentMailBox.id,
|
|
||||||
destinationMailbox.id,
|
|
||||||
MoveAction.moving,
|
|
||||||
EmailActionType.moveToMailbox,
|
|
||||||
destinationPath: destinationMailbox.mailboxPath,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
_handleDragSelectedMultipleEmailToMailboxAction(mapListEmailSelectedByMailBoxId, destinationMailbox);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if(selectedMailbox.value != null) {
|
||||||
|
_handleDragSelectedMultipleEmailToMailboxAction({selectedMailbox.value!.id: listEmails.listEmailIds}, destinationMailbox);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void _handleDragSelectedMultipleEmailToMailboxAction(
|
||||||
|
Map<MailboxId, List<EmailId>> mapListEmails,
|
||||||
|
PresentationMailbox destinationMailbox,
|
||||||
|
) async {
|
||||||
|
if (accountId.value != null ) {
|
||||||
|
if (destinationMailbox.isTrash) {
|
||||||
|
moveToMailbox(accountId.value!,
|
||||||
|
MoveToMailboxRequest(
|
||||||
|
mapListEmails,
|
||||||
|
destinationMailbox.id,
|
||||||
|
MoveAction.moving,
|
||||||
|
sessionCurrent!,
|
||||||
|
EmailActionType.moveToTrash,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
} else if (destinationMailbox.isSpam) {
|
||||||
|
moveToMailbox(accountId.value!,
|
||||||
|
MoveToMailboxRequest(
|
||||||
|
mapListEmails,
|
||||||
|
destinationMailbox.id,
|
||||||
|
MoveAction.moving,
|
||||||
|
sessionCurrent!,
|
||||||
|
EmailActionType.moveToSpam,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
moveToMailbox(accountId.value!,
|
||||||
|
MoveToMailboxRequest(
|
||||||
|
mapListEmails,
|
||||||
|
destinationMailbox.id,
|
||||||
|
MoveAction.moving,
|
||||||
|
sessionCurrent!,
|
||||||
|
EmailActionType.moveToMailbox,
|
||||||
|
destinationPath: destinationMailbox.mailboxPath,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dispatchAction(CancelSelectionAllEmailAction());
|
||||||
}
|
}
|
||||||
|
|
||||||
void _moveSelectedEmailMultipleToMailboxAction(
|
void _moveSelectedEmailMultipleToMailboxAction(
|
||||||
@@ -741,10 +763,10 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
final newDestinationMailboxId = currentMailboxId;
|
final newDestinationMailboxId = currentMailboxId;
|
||||||
if (newCurrentMailboxId != null && newDestinationMailboxId != null) {
|
if (newCurrentMailboxId != null && newDestinationMailboxId != null) {
|
||||||
_revertedSelectionEmailToOriginalMailbox(MoveToMailboxRequest(
|
_revertedSelectionEmailToOriginalMailbox(MoveToMailboxRequest(
|
||||||
movedEmailIds,
|
{newCurrentMailboxId: movedEmailIds},
|
||||||
newCurrentMailboxId,
|
|
||||||
newDestinationMailboxId,
|
newDestinationMailboxId,
|
||||||
MoveAction.undo,
|
MoveAction.undo,
|
||||||
|
sessionCurrent!,
|
||||||
emailActionType!,
|
emailActionType!,
|
||||||
destinationPath: destinationPath));
|
destinationPath: destinationPath));
|
||||||
}
|
}
|
||||||
@@ -776,10 +798,10 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
final trashMailboxId = getMailboxIdByRole(PresentationMailbox.roleTrash);
|
final trashMailboxId = getMailboxIdByRole(PresentationMailbox.roleTrash);
|
||||||
if (accountId.value != null && trashMailboxId != null) {
|
if (accountId.value != null && trashMailboxId != null) {
|
||||||
_moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest(
|
_moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest(
|
||||||
listEmails.listEmailIds,
|
{mailboxCurrent.id: listEmails.listEmailIds},
|
||||||
mailboxCurrent.id,
|
|
||||||
trashMailboxId,
|
trashMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
sessionCurrent!,
|
||||||
EmailActionType.moveToTrash)
|
EmailActionType.moveToTrash)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -789,10 +811,10 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
final spamMailboxId = getMailboxIdByRole(PresentationMailbox.roleSpam);
|
final spamMailboxId = getMailboxIdByRole(PresentationMailbox.roleSpam);
|
||||||
if (accountId.value != null && spamMailboxId != null) {
|
if (accountId.value != null && spamMailboxId != null) {
|
||||||
_moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest(
|
_moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest(
|
||||||
listEmail.listEmailIds,
|
{mailboxCurrent.id: listEmail.listEmailIds},
|
||||||
mailboxCurrent.id,
|
|
||||||
spamMailboxId,
|
spamMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
sessionCurrent!,
|
||||||
EmailActionType.moveToSpam)
|
EmailActionType.moveToSpam)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -803,10 +825,10 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
final inboxMailboxId = getMailboxIdByRole(PresentationMailbox.roleInbox);
|
final inboxMailboxId = getMailboxIdByRole(PresentationMailbox.roleInbox);
|
||||||
if (inboxMailboxId != null && accountId.value != null && spamMailboxId != null) {
|
if (inboxMailboxId != null && accountId.value != null && spamMailboxId != null) {
|
||||||
_moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest(
|
_moveSelectedEmailMultipleToMailboxAction(accountId.value!, MoveToMailboxRequest(
|
||||||
listEmail.listEmailIds,
|
{spamMailboxId: listEmail.listEmailIds},
|
||||||
spamMailboxId,
|
|
||||||
inboxMailboxId,
|
inboxMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
sessionCurrent!,
|
||||||
EmailActionType.unSpam)
|
EmailActionType.unSpam)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,11 +25,13 @@ class MoveMultipleEmailToMailboxInteractor {
|
|||||||
final currentEmailState = listState.last;
|
final currentEmailState = listState.last;
|
||||||
|
|
||||||
final result = await _emailRepository.moveToMailbox(accountId, moveRequest);
|
final result = await _emailRepository.moveToMailbox(accountId, moveRequest);
|
||||||
|
int totalEmail = 0;
|
||||||
if (moveRequest.emailIds.length == result.length) {
|
for (var element in moveRequest.currentMailboxes.values) {
|
||||||
|
totalEmail = totalEmail + element.length;
|
||||||
|
}if (totalEmail == result.length) {
|
||||||
yield Right(MoveMultipleEmailToMailboxAllSuccess(
|
yield Right(MoveMultipleEmailToMailboxAllSuccess(
|
||||||
result,
|
result,
|
||||||
moveRequest.currentMailboxId,
|
moveRequest.currentMailboxes.keys.first,
|
||||||
moveRequest.destinationMailboxId,
|
moveRequest.destinationMailboxId,
|
||||||
moveRequest.moveAction,
|
moveRequest.moveAction,
|
||||||
moveRequest.emailActionType,
|
moveRequest.emailActionType,
|
||||||
@@ -41,7 +43,7 @@ class MoveMultipleEmailToMailboxInteractor {
|
|||||||
} else {
|
} else {
|
||||||
yield Right(MoveMultipleEmailToMailboxHasSomeEmailFailure(
|
yield Right(MoveMultipleEmailToMailboxHasSomeEmailFailure(
|
||||||
result,
|
result,
|
||||||
moveRequest.currentMailboxId,
|
moveRequest.currentMailboxes.keys.first,
|
||||||
moveRequest.destinationMailboxId,
|
moveRequest.destinationMailboxId,
|
||||||
moveRequest.moveAction,
|
moveRequest.moveAction,
|
||||||
moveRequest.emailActionType,
|
moveRequest.emailActionType,
|
||||||
|
|||||||
@@ -52,10 +52,10 @@ mixin EmailActionController {
|
|||||||
|
|
||||||
if (currentMailbox != null && accountId != null && trashMailboxId != null) {
|
if (currentMailbox != null && accountId != null && trashMailboxId != null) {
|
||||||
_moveToTrashAction(accountId, MoveToMailboxRequest(
|
_moveToTrashAction(accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
trashMailboxId,
|
trashMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToTrash)
|
EmailActionType.moveToTrash)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -72,10 +72,10 @@ mixin EmailActionController {
|
|||||||
|
|
||||||
if (currentMailbox != null && accountId != null && spamMailboxId != null) {
|
if (currentMailbox != null && accountId != null && spamMailboxId != null) {
|
||||||
moveToSpamAction(accountId, MoveToMailboxRequest(
|
moveToSpamAction(accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
spamMailboxId,
|
spamMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToSpam)
|
EmailActionType.moveToSpam)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -88,10 +88,10 @@ mixin EmailActionController {
|
|||||||
|
|
||||||
if (inboxMailboxId != null && accountId != null && spamMailboxId != null) {
|
if (inboxMailboxId != null && accountId != null && spamMailboxId != null) {
|
||||||
moveToSpamAction(accountId, MoveToMailboxRequest(
|
moveToSpamAction(accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{spamMailboxId: [email.id]},
|
||||||
spamMailboxId,
|
|
||||||
inboxMailboxId,
|
inboxMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.unSpam)
|
EmailActionType.unSpam)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -114,24 +114,24 @@ mixin EmailActionController {
|
|||||||
if (destinationMailbox != null && destinationMailbox is PresentationMailbox) {
|
if (destinationMailbox != null && destinationMailbox is PresentationMailbox) {
|
||||||
if (destinationMailbox.isTrash) {
|
if (destinationMailbox.isTrash) {
|
||||||
moveToSpamAction(accountId, MoveToMailboxRequest(
|
moveToSpamAction(accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToTrash));
|
EmailActionType.moveToTrash));
|
||||||
} else if (destinationMailbox.isSpam) {
|
} else if (destinationMailbox.isSpam) {
|
||||||
moveToSpamAction(accountId, MoveToMailboxRequest(
|
moveToSpamAction(accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToSpam));
|
EmailActionType.moveToSpam));
|
||||||
} else {
|
} else {
|
||||||
_moveToMailboxAction(accountId, MoveToMailboxRequest(
|
_moveToMailboxAction(accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToMailbox,
|
EmailActionType.moveToMailbox,
|
||||||
destinationPath: destinationMailbox.mailboxPath));
|
destinationPath: destinationMailbox.mailboxPath));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -647,24 +647,24 @@ class ThreadController extends BaseController {
|
|||||||
if (destinationMailbox != null && destinationMailbox is PresentationMailbox) {
|
if (destinationMailbox != null && destinationMailbox is PresentationMailbox) {
|
||||||
if (destinationMailbox.isTrash) {
|
if (destinationMailbox.isTrash) {
|
||||||
_moveSelectedEmailMultipleToTrashAction(_accountId!, MoveToMailboxRequest(
|
_moveSelectedEmailMultipleToTrashAction(_accountId!, MoveToMailboxRequest(
|
||||||
listEmailIds,
|
{currentMailbox.id: listEmailIds},
|
||||||
currentMailbox.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToTrash));
|
EmailActionType.moveToTrash));
|
||||||
} else if (destinationMailbox.isSpam) {
|
} else if (destinationMailbox.isSpam) {
|
||||||
_moveSelectedEmailMultipleToSpamAction(_accountId!, MoveToMailboxRequest(
|
_moveSelectedEmailMultipleToSpamAction(_accountId!, MoveToMailboxRequest(
|
||||||
listEmailIds,
|
{currentMailbox.id: listEmailIds},
|
||||||
currentMailbox.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToSpam));
|
EmailActionType.moveToSpam));
|
||||||
} else {
|
} else {
|
||||||
_moveSelectedEmailMultipleToMailboxAction(_accountId!, MoveToMailboxRequest(
|
_moveSelectedEmailMultipleToMailboxAction(_accountId!, MoveToMailboxRequest(
|
||||||
listEmailIds,
|
{currentMailbox.id: listEmailIds},
|
||||||
currentMailbox.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToMailbox,
|
EmailActionType.moveToMailbox,
|
||||||
destinationPath: destinationMailbox.mailboxPath));
|
destinationPath: destinationMailbox.mailboxPath));
|
||||||
}
|
}
|
||||||
@@ -717,10 +717,10 @@ class ThreadController extends BaseController {
|
|||||||
final newDestinationMailboxId = currentMailboxId;
|
final newDestinationMailboxId = currentMailboxId;
|
||||||
if (newCurrentMailboxId != null && newDestinationMailboxId != null) {
|
if (newCurrentMailboxId != null && newDestinationMailboxId != null) {
|
||||||
_revertedSelectionEmailToOriginalMailbox(MoveToMailboxRequest(
|
_revertedSelectionEmailToOriginalMailbox(MoveToMailboxRequest(
|
||||||
movedEmailIds,
|
{newCurrentMailboxId: movedEmailIds},
|
||||||
newCurrentMailboxId,
|
|
||||||
newDestinationMailboxId,
|
newDestinationMailboxId,
|
||||||
MoveAction.undo,
|
MoveAction.undo,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
emailActionType!,
|
emailActionType!,
|
||||||
destinationPath: destinationPath));
|
destinationPath: destinationPath));
|
||||||
}
|
}
|
||||||
@@ -751,10 +751,10 @@ class ThreadController extends BaseController {
|
|||||||
if (_accountId != null && trashMailboxId != null) {
|
if (_accountId != null && trashMailboxId != null) {
|
||||||
final listEmailIds = listEmail.map((email) => email.id).toList();
|
final listEmailIds = listEmail.map((email) => email.id).toList();
|
||||||
_moveSelectedEmailMultipleToTrashAction(_accountId!, MoveToMailboxRequest(
|
_moveSelectedEmailMultipleToTrashAction(_accountId!, MoveToMailboxRequest(
|
||||||
listEmailIds,
|
{currentMailbox.id: listEmailIds},
|
||||||
currentMailbox.id,
|
|
||||||
trashMailboxId,
|
trashMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToTrash)
|
EmailActionType.moveToTrash)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -774,10 +774,10 @@ class ThreadController extends BaseController {
|
|||||||
if (_accountId != null && spamMailboxId != null) {
|
if (_accountId != null && spamMailboxId != null) {
|
||||||
final listEmailIds = listEmail.map((email) => email.id).toList();
|
final listEmailIds = listEmail.map((email) => email.id).toList();
|
||||||
_moveSelectedEmailMultipleToSpamAction(_accountId!, MoveToMailboxRequest(
|
_moveSelectedEmailMultipleToSpamAction(_accountId!, MoveToMailboxRequest(
|
||||||
listEmailIds,
|
{currentMailbox.id: listEmailIds},
|
||||||
currentMailbox.id,
|
|
||||||
spamMailboxId,
|
spamMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToSpam)
|
EmailActionType.moveToSpam)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -795,10 +795,10 @@ class ThreadController extends BaseController {
|
|||||||
if (inboxMailboxId != null && _accountId != null && spamMailboxId != null) {
|
if (inboxMailboxId != null && _accountId != null && spamMailboxId != null) {
|
||||||
final listEmailIds = listEmail.map((email) => email.id).toList();
|
final listEmailIds = listEmail.map((email) => email.id).toList();
|
||||||
_moveSelectedEmailMultipleToMailboxAction(_accountId!, MoveToMailboxRequest(
|
_moveSelectedEmailMultipleToMailboxAction(_accountId!, MoveToMailboxRequest(
|
||||||
listEmailIds,
|
{spamMailboxId: listEmailIds},
|
||||||
spamMailboxId,
|
|
||||||
inboxMailboxId,
|
inboxMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.unSpam)
|
EmailActionType.unSpam)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1086,24 +1086,24 @@ class ThreadController extends BaseController {
|
|||||||
if (destinationMailbox != null && destinationMailbox is PresentationMailbox) {
|
if (destinationMailbox != null && destinationMailbox is PresentationMailbox) {
|
||||||
if (destinationMailbox.isTrash) {
|
if (destinationMailbox.isTrash) {
|
||||||
_moveToTrashAction(accountId, MoveToMailboxRequest(
|
_moveToTrashAction(accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToTrash));
|
EmailActionType.moveToTrash));
|
||||||
} else if (destinationMailbox.isSpam) {
|
} else if (destinationMailbox.isSpam) {
|
||||||
_moveToSpamAction(accountId, MoveToMailboxRequest(
|
_moveToSpamAction(accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToSpam));
|
EmailActionType.moveToSpam));
|
||||||
} else {
|
} else {
|
||||||
_moveToMailboxAction(accountId, MoveToMailboxRequest(
|
_moveToMailboxAction(accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
destinationMailbox.id,
|
destinationMailbox.id,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToMailbox,
|
EmailActionType.moveToMailbox,
|
||||||
destinationPath: destinationMailbox.mailboxPath));
|
destinationPath: destinationMailbox.mailboxPath));
|
||||||
}
|
}
|
||||||
@@ -1125,10 +1125,10 @@ class ThreadController extends BaseController {
|
|||||||
actionName: AppLocalizations.of(currentContext!).undo,
|
actionName: AppLocalizations.of(currentContext!).undo,
|
||||||
onActionClick: () {
|
onActionClick: () {
|
||||||
_revertedToOriginalMailbox(MoveToMailboxRequest(
|
_revertedToOriginalMailbox(MoveToMailboxRequest(
|
||||||
[success.emailId],
|
{success.destinationMailboxId: [success.emailId]},
|
||||||
success.destinationMailboxId,
|
|
||||||
success.currentMailboxId,
|
success.currentMailboxId,
|
||||||
MoveAction.undo,
|
MoveAction.undo,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
success.emailActionType));
|
success.emailActionType));
|
||||||
},
|
},
|
||||||
leadingIcon: SvgPicture.asset(
|
leadingIcon: SvgPicture.asset(
|
||||||
@@ -1164,10 +1164,10 @@ class ThreadController extends BaseController {
|
|||||||
|
|
||||||
if (currentMailbox != null && accountId != null && trashMailboxId != null) {
|
if (currentMailbox != null && accountId != null && trashMailboxId != null) {
|
||||||
_moveToTrashAction(accountId, MoveToMailboxRequest(
|
_moveToTrashAction(accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
trashMailboxId,
|
trashMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToTrash)
|
EmailActionType.moveToTrash)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1180,10 +1180,10 @@ class ThreadController extends BaseController {
|
|||||||
|
|
||||||
if (currentMailbox != null && accountId != null && spamMailboxId != null) {
|
if (currentMailbox != null && accountId != null && spamMailboxId != null) {
|
||||||
_moveToSpamAction(accountId, MoveToMailboxRequest(
|
_moveToSpamAction(accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{currentMailbox.id: [email.id]},
|
||||||
currentMailbox.id,
|
|
||||||
spamMailboxId,
|
spamMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.moveToSpam)
|
EmailActionType.moveToSpam)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1196,10 +1196,10 @@ class ThreadController extends BaseController {
|
|||||||
|
|
||||||
if (inboxMailboxId != null && accountId != null && spamMailboxId != null) {
|
if (inboxMailboxId != null && accountId != null && spamMailboxId != null) {
|
||||||
_moveToSpamAction(accountId, MoveToMailboxRequest(
|
_moveToSpamAction(accountId, MoveToMailboxRequest(
|
||||||
[email.id],
|
{spamMailboxId: [email.id]},
|
||||||
spamMailboxId,
|
|
||||||
inboxMailboxId,
|
inboxMailboxId,
|
||||||
MoveAction.moving,
|
MoveAction.moving,
|
||||||
|
mailboxDashBoardController.sessionCurrent!,
|
||||||
EmailActionType.unSpam)
|
EmailActionType.unSpam)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user