From 142249adec209160c70ad2b70a9686ef0298a924 Mon Sep 17 00:00:00 2001 From: dettlaff Date: Thu, 10 Oct 2024 05:30:38 +0400 Subject: [PATCH 1/2] feat: add "other" records category --- assets/translations/en.json | 4 +- .../cubit/dns_records/dns_records_cubit.dart | 4 +- lib/ui/pages/dns_details/dns_details.dart | 40 +++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/assets/translations/en.json b/assets/translations/en.json index c1ca6d74..97dd974e 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -215,6 +215,8 @@ "services_subtitle": "Type “A” records required for each service.", "email_title": "Email", "email_subtitle": "Records necessary for secure email exchange.", + "other_title": "Other", + "other_subtitle": "Other records needed for the work of the SelfPrivacy", "update_list": "Update list" }, "backup": { @@ -725,4 +727,4 @@ "server_provider_unknown": "Unknown server provider", "server_provider_unknown_description": "Your server provider is not supported by this app version." } -} +} \ No newline at end of file diff --git a/lib/logic/cubit/dns_records/dns_records_cubit.dart b/lib/logic/cubit/dns_records/dns_records_cubit.dart index 55fa9b5a..b55831ce 100644 --- a/lib/logic/cubit/dns_records/dns_records_cubit.dart +++ b/lib/logic/cubit/dns_records/dns_records_cubit.dart @@ -140,7 +140,9 @@ class DnsRecordsCubit extends ServerConnectionDependentCubit { isSatisfied: foundMatch, category: pendingDnsRecord.type == 'A' ? DnsRecordsCategory.services - : DnsRecordsCategory.email, + : (pendingDnsRecord.type == 'CAA' + ? DnsRecordsCategory.other + : DnsRecordsCategory.email), ), ); } diff --git a/lib/ui/pages/dns_details/dns_details.dart b/lib/ui/pages/dns_details/dns_details.dart index 5efc329e..02ac48ae 100644 --- a/lib/ui/pages/dns_details/dns_details.dart +++ b/lib/ui/pages/dns_details/dns_details.dart @@ -198,6 +198,46 @@ class _DnsDetailsPageState extends State { ], ), ), + const SizedBox(height: 16.0), + ListTile( + title: Text( + 'domain.other_title'.tr(), + style: Theme.of(context).textTheme.headlineSmall!.copyWith( + color: Theme.of(context).colorScheme.secondary, + ), + ), + subtitle: Text( + 'domain.other_subtitle'.tr(), + style: Theme.of(context).textTheme.labelMedium, + ), + ), + ...dnsCubit.dnsRecords + .where( + (final dnsRecord) => + dnsRecord.category == DnsRecordsCategory.other, + ) + .map( + (final dnsRecord) => Column( + children: [ + ListTile( + leading: Icon( + dnsRecord.isSatisfied + ? Icons.check_circle_outline + : dnsCubit.dnsState == DnsRecordsStatus.refreshing + ? Icons.refresh + : Icons.error_outline, + color: dnsRecord.isSatisfied + ? goodColor + : dnsCubit.dnsState == DnsRecordsStatus.refreshing + ? neutralColor + : errorColor, + ), + title: Text(dnsRecord.displayName ?? dnsRecord.name), + subtitle: Text(dnsRecord.content), + ), + ], + ), + ), ], ); } From 8aacee7c9cb53bcb405522048a74c1d5775bf802 Mon Sep 17 00:00:00 2001 From: dettlaff Date: Thu, 10 Oct 2024 20:12:12 +0400 Subject: [PATCH 2/2] refactor: from review --- .../dns_providers/desired_dns_record.dart | 15 +++++++++++---- .../cubit/dns_records/dns_records_cubit.dart | 7 +------ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/lib/logic/api_maps/rest_maps/dns_providers/desired_dns_record.dart b/lib/logic/api_maps/rest_maps/dns_providers/desired_dns_record.dart index 4a64d49e..0d1bad66 100644 --- a/lib/logic/api_maps/rest_maps/dns_providers/desired_dns_record.dart +++ b/lib/logic/api_maps/rest_maps/dns_providers/desired_dns_record.dart @@ -10,7 +10,6 @@ class DesiredDnsRecord { required this.content, this.type = 'A', this.description = '', - this.category = DnsRecordsCategory.services, this.isSatisfied = false, this.displayName, }); @@ -20,16 +19,25 @@ class DesiredDnsRecord { final String content; final String description; final String? displayName; - final DnsRecordsCategory category; final bool isSatisfied; + DnsRecordsCategory get category { + switch (type) { + case 'A': + return DnsRecordsCategory.services; + case 'CAA': + return DnsRecordsCategory.other; + default: + return DnsRecordsCategory.email; + } + } + DesiredDnsRecord copyWith({ final String? name, final String? type, final String? content, final String? description, final String? displayName, - final DnsRecordsCategory? category, final bool? isSatisfied, }) => DesiredDnsRecord( @@ -37,7 +45,6 @@ class DesiredDnsRecord { type: type ?? this.type, content: content ?? this.content, description: description ?? this.description, - category: category ?? this.category, isSatisfied: isSatisfied ?? this.isSatisfied, displayName: displayName ?? this.displayName, ); diff --git a/lib/logic/cubit/dns_records/dns_records_cubit.dart b/lib/logic/cubit/dns_records/dns_records_cubit.dart index b55831ce..5dcc348f 100644 --- a/lib/logic/cubit/dns_records/dns_records_cubit.dart +++ b/lib/logic/cubit/dns_records/dns_records_cubit.dart @@ -122,7 +122,6 @@ class DnsRecordsCubit extends ServerConnectionDependentCubit { content: pendingDnsRecord.content!, isSatisfied: isSatisfied, type: pendingDnsRecord.type, - category: DnsRecordsCategory.email, ), ); } else { @@ -138,11 +137,7 @@ class DnsRecordsCubit extends ServerConnectionDependentCubit { displayName: pendingDnsRecord.displayName, content: pendingDnsRecord.content!, isSatisfied: foundMatch, - category: pendingDnsRecord.type == 'A' - ? DnsRecordsCategory.services - : (pendingDnsRecord.type == 'CAA' - ? DnsRecordsCategory.other - : DnsRecordsCategory.email), + type: pendingDnsRecord.type, ), ); }