TF-3977 Add disable spam banner in preferences setting
This commit is contained in:
+2
@@ -2004,6 +2004,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
_getAllIdentities();
|
||||
notifyThreadDetailSettingUpdated();
|
||||
getServerSetting();
|
||||
spamReportController.getSpamReportStateAction();
|
||||
}
|
||||
|
||||
Future<List<PresentationEmail>> quickSearchEmails(String query) async {
|
||||
@@ -2074,6 +2075,7 @@ class MailboxDashBoardController extends ReloadableController
|
||||
_getAllIdentities();
|
||||
notifyThreadDetailSettingUpdated();
|
||||
getServerSetting();
|
||||
spamReportController.getSpamReportStateAction();
|
||||
}
|
||||
|
||||
void _handleUpdateVacationSuccess(UpdateVacationSuccess success) {
|
||||
|
||||
@@ -19,6 +19,8 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_spa
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/store_last_time_dismissed_spam_reported_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/store_spam_report_state_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/spam_report_loader_status.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
|
||||
class SpamReportController extends BaseController {
|
||||
final StoreSpamReportInteractor _storeSpamReportInteractor;
|
||||
@@ -29,6 +31,9 @@ class SpamReportController extends BaseController {
|
||||
final presentationSpamMailbox = Rxn<PresentationMailbox>();
|
||||
final spamReportState = Rx<SpamReportState>(SpamReportState.enabled);
|
||||
|
||||
AppLifecycleListener? _appLifecycleListener;
|
||||
SpamReportLoaderStatus _spamReportLoaderStatus = SpamReportLoaderStatus.idle;
|
||||
|
||||
SpamReportController(
|
||||
this._storeSpamReportInteractor,
|
||||
this._storeSpamReportStateInteractor,
|
||||
@@ -36,28 +41,60 @@ class SpamReportController extends BaseController {
|
||||
this._getSpamMailboxCachedInteractor
|
||||
);
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
super.onInit();
|
||||
_appLifecycleListener ??= AppLifecycleListener(
|
||||
onResume: () {
|
||||
if (_spamReportLoaderStatus == SpamReportLoaderStatus.loading) {
|
||||
return;
|
||||
}
|
||||
getSpamReportStateAction();
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void handleSuccessViewState(Success success) {
|
||||
super.handleSuccessViewState(success);
|
||||
if (success is StoreLastTimeDismissedSpamReportSuccess) {
|
||||
presentationSpamMailbox.value = null;
|
||||
} else if (success is GetSpamReportStateLoading) {
|
||||
_spamReportLoaderStatus = SpamReportLoaderStatus.loading;
|
||||
} else if (success is GetSpamReportStateSuccess) {
|
||||
spamReportState.value = success.spamReportState;
|
||||
_loadSpamReportConfigSuccess(success.spamReportState);
|
||||
} else if (success is StoreSpamReportStateSuccess) {
|
||||
spamReportState.value = success.spamReportState;
|
||||
getBinding<MailboxDashBoardController>()?.refreshSpamReportBanner();
|
||||
} else if (success is GetSpamMailboxCachedSuccess) {
|
||||
presentationSpamMailbox.value = success.spamMailbox.toPresentationMailbox();
|
||||
} else {
|
||||
super.handleSuccessViewState(success);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void handleFailureViewState(Failure failure) {
|
||||
super.handleFailureViewState(failure);
|
||||
if (failure is GetSpamMailboxCachedFailure) {
|
||||
presentationSpamMailbox.value = null;
|
||||
} else if (failure is GetSpamReportStateFailure) {
|
||||
_spamReportLoaderStatus = SpamReportLoaderStatus.completed;
|
||||
} else {
|
||||
super.handleFailureViewState(failure);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void handleErrorViewState(Object error, StackTrace stackTrace) {
|
||||
super.handleErrorViewState(error, stackTrace);
|
||||
_spamReportLoaderStatus = SpamReportLoaderStatus.completed;
|
||||
}
|
||||
|
||||
void _loadSpamReportConfigSuccess(SpamReportState newState) {
|
||||
spamReportState.value = newState;
|
||||
_spamReportLoaderStatus = SpamReportLoaderStatus.completed;
|
||||
getBinding<MailboxDashBoardController>()?.refreshSpamReportBanner();
|
||||
}
|
||||
|
||||
void dismissSpamReportAction(BuildContext context) {
|
||||
if (Get.isRegistered<MailboxDashBoardController>()) {
|
||||
final mailboxDashBoardController = Get.find<MailboxDashBoardController>();
|
||||
@@ -109,4 +146,10 @@ class SpamReportController extends BaseController {
|
||||
void setSpamPresentationMailbox(PresentationMailbox? spamMailbox) {
|
||||
presentationSpamMailbox.value = spamMailbox;
|
||||
}
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
_appLifecycleListener?.dispose();
|
||||
super.onClose();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user