Skip to content

Commit

Permalink
TF-2305 Cancel the "move to trash if no archive" feature
Browse files Browse the repository at this point in the history
  • Loading branch information
florentos17 committed Feb 5, 2025
1 parent 58160a6 commit 99b53ac
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 89 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2993,10 +2993,6 @@ class MailboxDashBoardController extends ReloadableController
return false;
}

bool hasArchiveMailbox() {
return getMailboxIdByRole(PresentationMailbox.roleArchive) != null;
}

void archiveMessage(BuildContext context, PresentationEmail email) {
final mailboxContain = email.findMailboxContain(mapMailboxById);
if (mailboxContain != null) {
Expand All @@ -3020,30 +3016,6 @@ class MailboxDashBoardController extends ReloadableController
}
}

void moveMessageToTrash(BuildContext context, PresentationEmail email) {
final mailboxContain = email.findMailboxContain(mapMailboxById);
if (mailboxContain != null) {
final trashMailboxId = getMailboxIdByRole(PresentationMailbox.roleTrash);
final trashMailboxPath = mapMailboxById[trashMailboxId]?.getDisplayName(context);
if (trashMailboxId != null) {
final moveToTrashMailboxRequest = MoveToMailboxRequest(
{mailboxContain.id: [email.id!]},
trashMailboxId,
MoveAction.moving,
EmailActionType.moveToMailbox,
destinationPath: trashMailboxPath
);
final Map<EmailId, bool> emailIdsWithReadStatus = email.id != null ? {email.id!: email.hasRead} : {};
moveToMailbox(
sessionCurrent!,
accountId.value!,
moveToTrashMailboxRequest,
emailIdsWithReadStatus
);
}
}
}

void _handleRestoreDeletedMessageSuccess(EmailRecoveryActionId emailRecoveryActionId) async {
log('MailboxDashBoardController::_handleRestoreDeletedMessageSuccess():emailRecoveryActionId: $emailRecoveryActionId');
_getRestoredDeletedMessage(emailRecoveryActionId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -338,11 +338,7 @@ mixin EmailActionController {
mailboxDashBoardController.archiveMessage(context, email);
}

void moveMessageToTrash(BuildContext context, PresentationEmail email) {
mailboxDashBoardController.moveMessageToTrash(context, email);
}

bool hasArchiveMailbox() {
return mailboxDashBoardController.hasArchiveMailbox();
return mailboxDashBoardController.getMailboxIdByRole(PresentationMailbox.roleArchive) != null;
}
}
5 changes: 2 additions & 3 deletions lib/features/thread/presentation/thread_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1406,7 +1406,7 @@ class ThreadController extends BaseController with EmailActionController {
ReadActions readActions = !email.hasRead ? ReadActions.markAsRead : ReadActions.markAsUnread;
markAsEmailRead(email, readActions, MarkReadAction.swipeOnThread);
} else if (direction == DismissDirection.endToStart) {
hasArchiveMailbox() ? archiveMessage(context, email) : moveMessageToTrash(context, email);
archiveMessage(context, email);
}
return false;
}
Expand All @@ -1420,13 +1420,12 @@ class ThreadController extends BaseController with EmailActionController {
return DismissDirection.none;
}

return isInArchiveMailbox(email) || (isInTrashMailbox(email) && !hasArchiveMailbox())
return isInArchiveMailbox(email) || !hasArchiveMailbox()
? DismissDirection.startToEnd
: DismissDirection.horizontal;
}

bool isInArchiveMailbox(PresentationEmail email) => email.mailboxContain?.isArchive == true;
bool isInTrashMailbox(PresentationEmail email) => email.mailboxContain?.isTrash == true;

void scrollToTop() {
if (listEmailController.hasClients) {
Expand Down
79 changes: 26 additions & 53 deletions lib/features/thread/presentation/thread_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -554,61 +554,34 @@ class ThreadView extends GetWidget<ThreadController>
],
),
),
secondaryBackground: controller.isInArchiveMailbox(presentationEmail) || (controller.isInTrashMailbox(presentationEmail) && !controller.hasArchiveMailbox())
? null
: controller.hasArchiveMailbox()
? Container(
color: AppColor.colorItemRecipientSelected,
padding: const EdgeInsetsDirectional.only(end: 16),
alignment: AlignmentDirectional.centerEnd,
child: Row(
children: [
const Spacer(),
CircleAvatar(
backgroundColor: AppColor.colorSpamReportBannerBackground,
radius: 24,
child: SvgPicture.asset(
controller.imagePaths.icMailboxArchived,
fit: BoxFit.fill,
)
),
const SizedBox(width: 11),
Text(
AppLocalizations.of(context).archiveMessage,
style: const TextStyle(
fontSize: 15,
color: AppColor.primaryColor,
),
),
],
),
)
: Container(
color: AppColor.colorActionDeleteConfirmDialog,
padding: const EdgeInsetsDirectional.only(end: 16),
alignment: AlignmentDirectional.centerEnd,
child: Row(
children: [
const Spacer(),
CircleAvatar(
backgroundColor: AppColor.primaryLightColor,
radius: 24,
child: SvgPicture.asset(
controller.imagePaths.icDeleteMailbox,
fit: BoxFit.fill,
)
),
const SizedBox(width: 11),
Text(
AppLocalizations.of(context).move_to_trash,
style: const TextStyle(
fontSize: 15,
color: AppColor.primaryLightColor,
),
secondaryBackground: controller.isInArchiveMailbox(presentationEmail) == false
? Container(
color: AppColor.colorItemRecipientSelected,
padding: const EdgeInsetsDirectional.only(end: 16),
alignment: AlignmentDirectional.centerEnd,
child: Row(
children: [
const Spacer(),
CircleAvatar(
backgroundColor: AppColor.colorSpamReportBannerBackground,
radius: 24,
child: SvgPicture.asset(
controller.imagePaths.icMailboxArchived,
fit: BoxFit.fill,
)
),
const SizedBox(width: 11),
Text(
AppLocalizations.of(context).archiveMessage,
style: const TextStyle(
fontSize: 15,
color: AppColor.primaryColor,
),
],
),
),
],
),
)
: null,
confirmDismiss: (direction) => controller.swipeEmailAction(context, presentationEmail, direction),
child: EmailTileBuilder(
key: Key('email_tile_builder_${presentationEmail.id?.asString}'),
Expand Down

0 comments on commit 99b53ac

Please sign in to comment.