TF-1710 Show banner delete all spam emails
(cherry picked from commit 6b45dcd8de1ca83225994d8918c0998515634d40)
This commit is contained in:
+71
@@ -1978,6 +1978,77 @@ class MailboxDashBoardController extends ReloadableController {
|
||||
AppLocalizations.of(currentContext!).toast_message_empty_trash_folder_success);
|
||||
}
|
||||
}
|
||||
|
||||
bool isEmptySpamBannerEnabledOnWeb(BuildContext context) {
|
||||
return selectedMailbox.value != null &&
|
||||
selectedMailbox.value!.isSpam &&
|
||||
selectedMailbox.value!.countEmails > 0 &&
|
||||
!searchController.isSearchActive() &&
|
||||
_responsiveUtils.isWebDesktop(context);
|
||||
}
|
||||
|
||||
bool isEmptySpamBannerEnabledOnMobile(BuildContext context) {
|
||||
return selectedMailbox.value != null &&
|
||||
selectedMailbox.value!.isSpam &&
|
||||
selectedMailbox.value!.countEmails > 0 &&
|
||||
!searchController.isSearchActive() &&
|
||||
!_responsiveUtils.isWebDesktop(context);
|
||||
}
|
||||
|
||||
void openDialogEmptySpamFolder(BuildContext context) {
|
||||
final spamMailbox = selectedMailbox.value;
|
||||
if (spamMailbox == null || !spamMailbox.isSpam) {
|
||||
logError('MailboxDashBoardController::openDialogEmptySpamFolder: Selected mailbox is not spam');
|
||||
return;
|
||||
|
||||
}
|
||||
if (_responsiveUtils.isScreenWithShortestSide(context)) {
|
||||
(ConfirmationDialogActionSheetBuilder(context)
|
||||
..messageText(AppLocalizations.of(context).emptySpamMessageDialog)
|
||||
..onCancelAction(AppLocalizations.of(context).cancel, popBack)
|
||||
..onConfirmAction(AppLocalizations.of(context).delete_all, () {
|
||||
popBack();
|
||||
if (spamMailbox.countEmails > 0) {
|
||||
emptySpamFolderAction(spamFolderId: spamMailbox.id);
|
||||
} else {
|
||||
_appToast.showToastWarningMessage(
|
||||
context,
|
||||
AppLocalizations.of(context).noEmailInYourCurrentMailbox
|
||||
);
|
||||
}
|
||||
}))
|
||||
.show();
|
||||
} else {
|
||||
showDialog(
|
||||
context: context,
|
||||
barrierColor: AppColor.colorDefaultCupertinoActionSheet,
|
||||
builder: (context) => PointerInterceptor(child: (ConfirmDialogBuilder(_imagePaths)
|
||||
..key(const Key('confirm_dialog_empty_spam'))
|
||||
..title(AppLocalizations.of(context).emptySpamFolder)
|
||||
..content(AppLocalizations.of(context).emptySpamMessageDialog)
|
||||
..addIcon(SvgPicture.asset(_imagePaths.icRemoveDialog, fit: BoxFit.fill))
|
||||
..colorConfirmButton(AppColor.colorConfirmActionDialog)
|
||||
..styleTextConfirmButton(const TextStyle(
|
||||
fontSize: 17,
|
||||
fontWeight: FontWeight.w500,
|
||||
color: AppColor.colorActionDeleteConfirmDialog))
|
||||
..onCloseButtonAction(popBack)
|
||||
..onConfirmButtonAction(AppLocalizations.of(context).delete_all, () {
|
||||
popBack();
|
||||
if (spamMailbox.countEmails > 0) {
|
||||
emptySpamFolderAction(spamFolderId: spamMailbox.id);
|
||||
} else {
|
||||
_appToast.showToastWarningMessage(
|
||||
context,
|
||||
AppLocalizations.of(context).noEmailInYourCurrentMailbox
|
||||
);
|
||||
}
|
||||
})
|
||||
..onCancelButtonAction(AppLocalizations.of(context).cancel, popBack)
|
||||
).build())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
|
||||
@@ -21,6 +21,8 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/sear
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/download/download_task_item_widget.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/search_input_form_widget.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/styles/banner_delete_all_spam_emails_styles.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/widgets/banner_delete_all_spam_emails_widget.dart';
|
||||
import 'package:tmail_ui_user/features/thread/presentation/widgets/spam_banner/spam_report_banner_web_widget.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/top_bar_thread_selection.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/vacation_response_extension.dart';
|
||||
@@ -124,6 +126,21 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
Expanded(child: Column(children: [
|
||||
const SpamReportBannerWebWidget(),
|
||||
_buildEmptyTrashButton(context),
|
||||
Obx(() {
|
||||
if (controller.isEmptySpamBannerEnabledOnWeb(context)) {
|
||||
return Padding(
|
||||
padding: const EdgeInsetsDirectional.only(
|
||||
top: BannerDeleteAllSpamEmailsStyles.webTopMargin,
|
||||
end: BannerDeleteAllSpamEmailsStyles.webEndMargin
|
||||
),
|
||||
child: BannerDeleteAllSpamEmailsWidget(
|
||||
onTapAction: () => controller.openDialogEmptySpamFolder(context)
|
||||
),
|
||||
);
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
}),
|
||||
QuotasWarningBannerWidget(
|
||||
margin: EdgeInsets.only(
|
||||
right: AppUtils.isDirectionRTL(context) ? 0 : 16,
|
||||
|
||||
Reference in New Issue
Block a user