TF-3977 Add disable spam banner in preferences setting
This commit is contained in:
+2
-2
@@ -69,7 +69,6 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/lo
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/search_datasource_impl.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/datasource_impl/session_storage_composer_datasoure_impl.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/local/local_sort_order_manager.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/local/local_spam_report_manager.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/network/linagora_ecosystem_api.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/repository/app_grid_repository_impl.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/repository/composer_cache_repository_impl.dart';
|
||||
@@ -100,6 +99,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/spam_report_controller.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/local/preferences_setting_manager.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/identity_repository.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_identities_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/identities/identity_interactors_bindings.dart';
|
||||
@@ -278,7 +278,7 @@ class MailboxDashBoardBindings extends BaseBindings {
|
||||
Get.find<HtmlTransform>(),
|
||||
Get.find<CacheExceptionThrower>()));
|
||||
Get.lazyPut(() => LocalSpamReportDataSourceImpl(
|
||||
Get.find<LocalSpamReportManager>(),
|
||||
Get.find<PreferencesSettingManager>(),
|
||||
Get.find<CacheExceptionThrower>(),
|
||||
));
|
||||
Get.lazyPut(() => HiveSpamReportDataSourceImpl(
|
||||
|
||||
+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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
enum SpamReportLoaderStatus { idle, loading, completed }
|
||||
Reference in New Issue
Block a user