TF-3977 Separate settings keys for easier in conflict

This commit is contained in:
dab246
2025-09-09 11:12:57 +07:00
committed by Dat H. Pham
parent 7fdfb97fc5
commit 5a88f3c36f
27 changed files with 290 additions and 206 deletions
@@ -3,7 +3,10 @@ import 'dart:ui';
import 'package:tmail_ui_user/features/manage_account/data/datasource/manage_account_datasource.dart';
import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart';
import 'package:tmail_ui_user/features/manage_account/data/local/preferences_setting_manager.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/model/preferences/preferences_root.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_config.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_setting.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/spam_report_config.dart';
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/thread_detail_config.dart';
import 'package:tmail_ui_user/main/exceptions/exception_thrower.dart';
class ManageAccountDataSourceImpl extends ManageAccountDataSource {
@@ -26,14 +29,27 @@ class ManageAccountDataSourceImpl extends ManageAccountDataSource {
}
@override
Future<void> updateLocalSettings(PreferencesRoot preferencesRoot) {
Future<PreferencesSetting> toggleLocalSettingsState(PreferencesConfig preferencesConfig) {
return Future.sync(() async {
return await _preferencesSettingManager.savePreferences(preferencesRoot);
if (preferencesConfig is ThreadDetailConfig) {
await _preferencesSettingManager.updateThread(
preferencesConfig.isEnabled,
);
} else if (preferencesConfig is SpamReportConfig) {
await _preferencesSettingManager.updateSpamReport(
isEnabled: preferencesConfig.isEnabled,
);
} else {
await _preferencesSettingManager.savePreferences(
preferencesConfig,
);
}
return await _preferencesSettingManager.loadPreferences();
}).catchError(_exceptionThrower.throwException);
}
@override
Future<PreferencesRoot> getLocalSettings() {
Future<PreferencesSetting> getLocalSettings() {
return Future.sync(() async {
return await _preferencesSettingManager.loadPreferences();
}).catchError(_exceptionThrower.throwException);