TF-3707 Handle empty spam folder with clear mailbox method

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-05-06 17:47:57 +07:00
committed by Dat H. Pham
parent 322c449d49
commit afbebb7eb7
6 changed files with 94 additions and 39 deletions
+26 -2
View File
@@ -2,11 +2,13 @@ import 'dart:io';
import 'package:core/domain/exceptions/web_session_exception.dart';
import 'package:core/presentation/state/failure.dart';
import 'package:core/presentation/state/success.dart';
import 'package:core/presentation/utils/app_toast.dart';
import 'package:core/utils/app_logger.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:model/email/email_action_type.dart';
import 'package:model/mailbox/presentation_mailbox.dart';
import 'package:tmail_ui_user/features/email/domain/model/move_action.dart';
import 'package:tmail_ui_user/features/email/domain/state/parse_email_by_blob_id_state.dart';
import 'package:tmail_ui_user/features/email/domain/state/preview_email_from_eml_file_state.dart';
@@ -14,6 +16,7 @@ import 'package:tmail_ui_user/features/home/data/exceptions/session_exceptions.d
import 'package:tmail_ui_user/features/home/domain/state/get_session_state.dart';
import 'package:tmail_ui_user/features/login/data/network/oidc_error.dart';
import 'package:tmail_ui_user/features/login/domain/exceptions/authentication_exception.dart';
import 'package:tmail_ui_user/features/mailbox/domain/state/clear_mailbox_state.dart';
import 'package:tmail_ui_user/features/starting_page/domain/state/sign_in_twake_workplace_state.dart';
import 'package:tmail_ui_user/features/starting_page/domain/state/sign_up_twake_workplace_state.dart';
import 'package:tmail_ui_user/features/thread/domain/state/empty_spam_folder_state.dart';
@@ -73,9 +76,11 @@ class ToastManager {
if (failure is GetSessionFailure) {
message = getMessageByException(currentContext!, failure.exception)
?? AppLocalizations.of(currentContext!).unknownError;
} else if (failure is EmptySpamFolderFailure) {
} else if (failure is EmptySpamFolderFailure ||
(failure is ClearMailboxFailure && failure.mailboxRole == PresentationMailbox.roleSpam)) {
message = AppLocalizations.of(currentContext!).emptySpamFolderFailed;
} else if (failure is EmptyTrashFolderFailure) {
} else if (failure is EmptyTrashFolderFailure ||
(failure is ClearMailboxFailure && failure.mailboxRole == PresentationMailbox.roleTrash)) {
message = AppLocalizations.of(currentContext!).emptyTrashFolderFailed;
} else if (failure is MoveMultipleEmailToMailboxFailure
&& failure.emailActionType == EmailActionType.moveToSpam
@@ -109,4 +114,23 @@ class ToastManager {
appToast.showToastErrorMessage(currentOverlayContext!, message!);
}
}
void showMessageSuccess(Success success) {
if (currentContext == null || currentOverlayContext == null) {
logError('ToastManager::showMessageSuccess: Context is null');
return;
}
String? message;
if (success is ClearMailboxSuccess ||
success is EmptySpamFolderSuccess ||
success is EmptyTrashFolderSuccess) {
message = AppLocalizations.of(currentContext!).toast_message_empty_trash_folder_success;
}
if (message?.isNotEmpty == true) {
appToast.showToastSuccessMessage(currentOverlayContext!, message!);
}
}
}