TF-3977 Add disable spam banner in preferences setting

This commit is contained in:
dab246
2025-08-29 18:21:10 +07:00
committed by Dat H. Pham
parent 7f4dcf8b38
commit 612fc75f02
41 changed files with 534 additions and 404 deletions
@@ -4,19 +4,16 @@ import 'package:core/utils/app_logger.dart';
import 'package:dartz/dartz.dart';
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/get_local_settings_state.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/model/local_setting_options.dart';
class GetLocalSettingsInteractor {
const GetLocalSettingsInteractor(this._manageAccountRepository);
final ManageAccountRepository _manageAccountRepository;
Stream<Either<Failure, Success>> execute(
List<SupportedLocalSetting> supportedLocalSettings,
) async* {
Stream<Either<Failure, Success>> execute() async* {
try {
yield Right(GettingLocalSettingsState());
final result = await _manageAccountRepository.getLocalSettings(supportedLocalSettings);
final result = await _manageAccountRepository.getLocalSettings();
yield Right(GetLocalSettingsSuccess(result));
} catch (e) {
logError('$runtimeType::execute(): exception: $e');
@@ -4,7 +4,7 @@ import 'package:core/utils/app_logger.dart';
import 'package:dartz/dartz.dart';
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/update_local_settings_state.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/model/local_setting_options.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/model/preferences/preferences_root.dart';
class UpdateLocalSettingsInteractor {
const UpdateLocalSettingsInteractor(this._manageAccountRepository);
@@ -12,12 +12,12 @@ class UpdateLocalSettingsInteractor {
final ManageAccountRepository _manageAccountRepository;
Stream<Either<Failure, Success>> execute(
Map<SupportedLocalSetting, LocalSettingOptions?> localSettings,
PreferencesRoot preferencesRoot,
) async* {
try {
yield Right(UpdatingLocalSettingsState());
await _manageAccountRepository.updateLocalSettings(localSettings);
yield Right(UpdateLocalSettingsSuccess(localSettings));
await _manageAccountRepository.updateLocalSettings(preferencesRoot);
yield Right(UpdateLocalSettingsSuccess(preferencesRoot));
} catch (e) {
logError('$runtimeType::execute(): exception: $e');
yield Left(UpdateLocalSettingsFailure(exception: e));