TF-3372 Handling error for empty trash failure

This commit is contained in:
Dat PHAM HOANG
2024-12-31 13:02:46 +07:00
committed by Dat H. Pham
parent b07a142bcc
commit 7efe5ed31d
8 changed files with 86 additions and 43 deletions
@@ -1396,12 +1396,14 @@ class MailboxDashBoardController extends ReloadableController
onCancelSelectionEmail?.call();
final trashMailboxId = trashFolderId ?? mapDefaultMailboxIdByRole[PresentationMailbox.roleTrash];
final trashMailbox = mapMailboxById[trashMailboxId];
final totalEmailsInTrash = totalEmails == 0 ? trashMailbox?.countTotalEmails : totalEmails;
if (sessionCurrent != null && accountId.value != null && trashMailboxId != null) {
consumeState(_emptyTrashFolderInteractor.execute(
sessionCurrent!,
accountId.value!,
trashMailboxId,
totalEmails,
totalEmailsInTrash ?? 0,
_progressStateController
));
}
@@ -2458,7 +2460,7 @@ class MailboxDashBoardController extends ReloadableController
..onConfirmAction(AppLocalizations.of(context).delete_all, () {
popBack();
if (spamMailbox.countTotalEmails > 0) {
emptySpamFolderAction(spamFolderId: spamMailbox.id);
emptySpamFolderAction(spamFolderId: spamMailbox.id, totalEmails: spamMailbox.countTotalEmails);
} else {
appToast.showToastWarningMessage(
context,
@@ -2483,7 +2485,7 @@ class MailboxDashBoardController extends ReloadableController
..onConfirmButtonAction(AppLocalizations.of(context).delete_all, () {
popBack();
if (spamMailbox.countTotalEmails > 0) {
emptySpamFolderAction(spamFolderId: spamMailbox.id);
emptySpamFolderAction(spamFolderId: spamMailbox.id, totalEmails: spamMailbox.countTotalEmails);
} else {
appToast.showToastWarningMessage(
context,
@@ -25,11 +25,9 @@ class MarkMailboxAsReadLoadingBanner extends StatelessWidget with AppLoaderMixin
padding: MarkMailboxAsReadLoadingBannerStyle.bannerMargin,
child: horizontalLoadingWidget);
} else if (success is UpdatingMarkAsMailboxReadState) {
final percent = success.countRead / success.totalUnread;
return _buildProgressBanner(percent);
return _buildProgressBanner(success.countRead, success.totalUnread);
} else if (success is EmptyingFolderState) {
final percent = success.countEmailsDeleted / success.totalEmails;
return _buildProgressBanner(percent);
return _buildProgressBanner(success.countEmailsDeleted, success.totalEmails);
} else {
return const SizedBox.shrink();
}
@@ -37,7 +35,8 @@ class MarkMailboxAsReadLoadingBanner extends StatelessWidget with AppLoaderMixin
);
}
Padding _buildProgressBanner(double percent) {
Padding _buildProgressBanner(int progress, int total) {
final percent = total > 0 ? progress / total : 0.68;
return Padding(
padding: MarkMailboxAsReadLoadingBannerStyle.bannerMargin,
child: horizontalPercentLoadingWidget(percent)