TF-3449 Setup Sender-set important flag in Setting View

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-02-20 02:11:28 +07:00
committed by Dat H. Pham
parent f40056ea99
commit d2ee165f49
41 changed files with 675 additions and 407 deletions
@@ -1,13 +1,13 @@
import 'package:json_annotation/json_annotation.dart';
class AlwaysReadReceiptNullableConverter implements JsonConverter<bool?, String?> {
const AlwaysReadReceiptNullableConverter();
class BooleanNullableConverter implements JsonConverter<bool?, String?> {
const BooleanNullableConverter();
@override
bool? fromJson(String? json) {
if (json == null) {
return null;
} else if (json == 'true') {
} else if (json.trim().toLowerCase() == 'true') {
return true;
} else {
return false;
@@ -1,6 +1,6 @@
import 'package:equatable/equatable.dart';
import 'package:json_annotation/json_annotation.dart';
import 'package:server_settings/server_settings/converter/always_read_receipt_nullable_converter.dart';
import 'package:server_settings/server_settings/converter/boolean_nullable_converter.dart';
import 'package:server_settings/server_settings/converter/server_settings_id_nullable_converter.dart';
import 'package:server_settings/server_settings/server_settings.dart';
import 'package:server_settings/server_settings/server_settings_id.dart';
@@ -28,23 +28,38 @@ class TMailServerSettings extends ServerSettings {
@JsonSerializable(
explicitToJson: true,
includeIfNull: false,
converters: [AlwaysReadReceiptNullableConverter()])
converters: [BooleanNullableConverter()]
)
class TMailServerSettingOptions with EquatableMixin {
@JsonKey(name: 'read.receipts.always')
final bool? alwaysReadReceipts;
TMailServerSettingOptions({this.alwaysReadReceipts});
@JsonKey(name: 'display.sender.priority')
final bool? displaySenderPriority;
TMailServerSettingOptions({
this.alwaysReadReceipts,
this.displaySenderPriority,
});
factory TMailServerSettingOptions.fromJson(Map<String, dynamic> json) =>
_$TMailServerSettingOptionsFromJson(json);
Map<String, dynamic> toJson() => _$TMailServerSettingOptionsToJson(this);
TMailServerSettingOptions copyWith({bool? alwaysReadReceipts}) {
TMailServerSettingOptions copyWith({
bool? alwaysReadReceipts,
bool? displaySenderPriority,
}) {
return TMailServerSettingOptions(
alwaysReadReceipts: alwaysReadReceipts ?? this.alwaysReadReceipts,
displaySenderPriority: displaySenderPriority ?? this.displaySenderPriority,
);
}
@override
List<Object?> get props => [alwaysReadReceipts];
List<Object?> get props => [
alwaysReadReceipts,
displaySenderPriority,
];
}
@@ -0,0 +1,8 @@
import 'package:server_settings/server_settings/tmail_server_settings.dart';
extension TmailServerSettingsExtension on TMailServerSettingOptions {
bool get isDisplaySenderPriority => displaySenderPriority ?? true;
bool get isAlwaysReadReceipts => alwaysReadReceipts ?? false;
}