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
@@ -2,19 +2,17 @@ import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/properties/properties.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
import 'package:tmail_ui_user/features/manage_account/data/local/local_setting_cache_manager.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/model/local_setting_detail/thread_detail_local_setting_detail.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/model/local_setting_options.dart';
import 'package:tmail_ui_user/features/manage_account/data/local/preferences_setting_manager.dart';
import 'package:tmail_ui_user/features/thread_detail/data/data_source/thread_detail_data_source.dart';
import 'package:tmail_ui_user/main/exceptions/exception_thrower.dart';
class ThreadDetailLocalDataSourceImpl implements ThreadDetailDataSource {
const ThreadDetailLocalDataSourceImpl(
this._localSettingCacheManager,
this._preferencesSettingManager,
this._exceptionThrower,
);
final LocalSettingCacheManager _localSettingCacheManager;
final PreferencesSettingManager _preferencesSettingManager;
final ExceptionThrower _exceptionThrower;
@override
@@ -30,10 +28,8 @@ class ThreadDetailLocalDataSourceImpl implements ThreadDetailDataSource {
@override
Future<bool> getThreadDetailStatus() {
return Future.sync(() async {
final localSetting = await _localSettingCacheManager.get([
SupportedLocalSetting.threadDetail,
]);
return (localSetting[SupportedLocalSetting.threadDetail]?.setting as ThreadDetailLocalSettingDetail?)?.value ?? false;
final preferencesRoot = await _preferencesSettingManager.loadPreferences();
return preferencesRoot.setting.spamReport.isEnabled;
}).catchError(_exceptionThrower.throwException);
}
}