TF-3977 Separate settings keys for easier in conflict
This commit is contained in:
@@ -1,50 +0,0 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/preferences/preferences_setting.dart';
|
||||
|
||||
part 'preferences_root.g.dart';
|
||||
|
||||
@JsonSerializable(explicitToJson: true)
|
||||
class PreferencesRoot with EquatableMixin {
|
||||
final PreferencesSetting setting;
|
||||
|
||||
PreferencesRoot({required this.setting});
|
||||
|
||||
factory PreferencesRoot.initial() {
|
||||
return PreferencesRoot(
|
||||
setting: PreferencesSetting.initial(),
|
||||
);
|
||||
}
|
||||
|
||||
factory PreferencesRoot.fromJson(Map<String, dynamic> json) =>
|
||||
_$PreferencesRootFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$PreferencesRootToJson(this);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [setting];
|
||||
}
|
||||
|
||||
extension PreferencesRootExtension on PreferencesRoot {
|
||||
PreferencesRoot copyWith({PreferencesSetting? setting}) {
|
||||
return PreferencesRoot(
|
||||
setting: setting ?? this.setting,
|
||||
);
|
||||
}
|
||||
|
||||
PreferencesRoot updateThreadDetail(bool enabled) {
|
||||
return copyWith(setting: setting.updateThreadDetail(enabled));
|
||||
}
|
||||
|
||||
PreferencesRoot updateSpamReport({
|
||||
bool? isEnabled,
|
||||
int? lastTimeDismissedMilliseconds,
|
||||
}) {
|
||||
return copyWith(
|
||||
setting: setting.updateSpamReport(
|
||||
isEnabled: isEnabled,
|
||||
lastTimeDismissedMilliseconds: lastTimeDismissedMilliseconds,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/preferences/spam_report_config.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/preferences/thread_detail_config.dart';
|
||||
|
||||
part 'preferences_setting.g.dart';
|
||||
|
||||
@JsonSerializable(explicitToJson: true)
|
||||
class PreferencesSetting with EquatableMixin {
|
||||
final ThreadDetailConfig threadDetail;
|
||||
final SpamReportConfig spamReport;
|
||||
|
||||
PreferencesSetting({
|
||||
required this.threadDetail,
|
||||
required this.spamReport,
|
||||
});
|
||||
|
||||
factory PreferencesSetting.initial() {
|
||||
return PreferencesSetting(
|
||||
threadDetail: ThreadDetailConfig.initial(),
|
||||
spamReport: SpamReportConfig.initial(),
|
||||
);
|
||||
}
|
||||
|
||||
factory PreferencesSetting.fromJson(Map<String, dynamic> json) =>
|
||||
_$PreferencesSettingFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$PreferencesSettingToJson(this);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [threadDetail, spamReport];
|
||||
}
|
||||
|
||||
extension PreferencesSettingExtension on PreferencesSetting {
|
||||
PreferencesSetting copyWith({
|
||||
ThreadDetailConfig? threadDetail,
|
||||
SpamReportConfig? spamReport,
|
||||
}) {
|
||||
return PreferencesSetting(
|
||||
threadDetail: threadDetail ?? this.threadDetail,
|
||||
spamReport: spamReport ?? this.spamReport,
|
||||
);
|
||||
}
|
||||
|
||||
PreferencesSetting updateThreadDetail(bool enabled) {
|
||||
return copyWith(threadDetail: threadDetail.copyWith(isEnabled: enabled));
|
||||
}
|
||||
|
||||
PreferencesSetting updateSpamReport({
|
||||
bool? isEnabled,
|
||||
int? lastTimeDismissedMilliseconds,
|
||||
}) {
|
||||
return copyWith(
|
||||
spamReport: spamReport.copyWith(
|
||||
isEnabled: isEnabled ?? spamReport.isEnabled,
|
||||
lastTimeDismissedMilliseconds: lastTimeDismissedMilliseconds ??
|
||||
spamReport.lastTimeDismissedMilliseconds,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/spam_report_state.dart';
|
||||
|
||||
part 'spam_report_config.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class SpamReportConfig with EquatableMixin {
|
||||
final bool isEnabled;
|
||||
final int lastTimeDismissedMilliseconds;
|
||||
|
||||
SpamReportConfig({
|
||||
this.isEnabled = true,
|
||||
this.lastTimeDismissedMilliseconds = 0,
|
||||
});
|
||||
|
||||
factory SpamReportConfig.initial() {
|
||||
return SpamReportConfig(
|
||||
isEnabled: true,
|
||||
lastTimeDismissedMilliseconds: 0,
|
||||
);
|
||||
}
|
||||
|
||||
factory SpamReportConfig.fromJson(Map<String, dynamic> json) =>
|
||||
_$SpamReportConfigFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$SpamReportConfigToJson(this);
|
||||
|
||||
@override
|
||||
List<Object> get props => [isEnabled, lastTimeDismissedMilliseconds];
|
||||
}
|
||||
|
||||
extension SpamReportConfigExtension on SpamReportConfig {
|
||||
SpamReportConfig copyWith({
|
||||
bool? isEnabled,
|
||||
int? lastTimeDismissedMilliseconds,
|
||||
}) {
|
||||
return SpamReportConfig(
|
||||
isEnabled: isEnabled ?? this.isEnabled,
|
||||
lastTimeDismissedMilliseconds:
|
||||
lastTimeDismissedMilliseconds ?? this.lastTimeDismissedMilliseconds,
|
||||
);
|
||||
}
|
||||
|
||||
SpamReportState get spamReportState =>
|
||||
isEnabled ? SpamReportState.enabled : SpamReportState.disabled;
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'thread_detail_config.g.dart';
|
||||
|
||||
@JsonSerializable()
|
||||
class ThreadDetailConfig with EquatableMixin {
|
||||
final bool isEnabled;
|
||||
|
||||
ThreadDetailConfig({this.isEnabled = false});
|
||||
|
||||
factory ThreadDetailConfig.initial() {
|
||||
return ThreadDetailConfig(
|
||||
isEnabled: false,
|
||||
);
|
||||
}
|
||||
|
||||
factory ThreadDetailConfig.fromJson(Map<String, dynamic> json) =>
|
||||
_$ThreadDetailConfigFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$ThreadDetailConfigToJson(this);
|
||||
|
||||
@override
|
||||
List<Object> get props => [isEnabled];
|
||||
}
|
||||
|
||||
extension ThreadDetailConfigExtension on ThreadDetailConfig {
|
||||
ThreadDetailConfig copyWith({bool? isEnabled}) {
|
||||
return ThreadDetailConfig(
|
||||
isEnabled: isEnabled ?? this.isEnabled,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
|
||||
import 'package:server_settings/server_settings/tmail_server_settings.dart';
|
||||
import 'package:server_settings/server_settings/tmail_server_settings_extension.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/preferences/preferences_setting.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_setting.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
enum PreferencesOptionType {
|
||||
@@ -63,9 +63,9 @@ enum PreferencesOptionType {
|
||||
case PreferencesOptionType.senderPriority:
|
||||
return settingOption?.isDisplaySenderPriority ?? false;
|
||||
case PreferencesOptionType.thread:
|
||||
return preferencesSetting.threadDetail.isEnabled;
|
||||
return preferencesSetting.threadConfig.isEnabled;
|
||||
case PreferencesOptionType.spamReport:
|
||||
return preferencesSetting.spamReport.isEnabled;
|
||||
return preferencesSetting.spamReportConfig.isEnabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user