Fixed some bugs

This commit is contained in:
Juan Gilsanz Polo 2024-09-11 22:32:26 +02:00
parent 7579e2d580
commit 7bb7ad40c4
8 changed files with 28 additions and 15 deletions

View file

@ -5,7 +5,7 @@ DnsStatistics dnsStatisticsFromJson(String str) => DnsStatistics.fromJson(json.d
String dnsStatisticsToJson(DnsStatistics data) => json.encode(data.toJson()); String dnsStatisticsToJson(DnsStatistics data) => json.encode(data.toJson());
class DnsStatistics { class DnsStatistics {
final String timeUnits; final String? timeUnits;
final List<Map<String, int>> topQueriedDomains; final List<Map<String, int>> topQueriedDomains;
final List<Map<String, int>> topClients; final List<Map<String, int>> topClients;
final List<Map<String, int>> topBlockedDomains; final List<Map<String, int>> topBlockedDomains;

View file

@ -152,19 +152,25 @@ class DnsProvider with ChangeNotifier {
data: value data: value
); );
void updateValue(dynamic parameter, dynamic value) {
if (value != null) {
parameter = value;
}
}
if (result.successful == true) { if (result.successful == true) {
DnsInfo data = dnsInfo!; DnsInfo data = dnsInfo!;
data.ratelimit = value['ratelimit']; updateValue(data.ratelimit, value['ratelimit']);
data.ednsCsEnabled = value['edns_cs_enabled']; updateValue(data.ednsCsEnabled, value['edns_cs_enabled']);
data.dnssecEnabled = value['dnssec_enabled']; updateValue(data.dnssecEnabled, value['dnssec_enabled']);
data.disableIpv6 = value['disable_ipv6']; updateValue(data.disableIpv6, value['disable_ipv6']);
data.blockingMode = value['blocking_mode']; updateValue(data.blockingMode, value['blocking_mode']);
data.blockingIpv4 = value['blocking_ipv4']; updateValue(data.blockingIpv4, value['blocking_ipv4']);
data.blockingIpv6 = value['blocking_ipv6']; updateValue(data.blockingIpv6, value['blocking_ipv6']);
data.blockedResponseTtl = value['blocked_response_ttl']; updateValue(data.blockedResponseTtl, value['blocked_response_ttl']);
data.ratelimitSubnetLenIpv4 = value['ratelimit_subnet_len_ipv4']; updateValue(data.ratelimitSubnetLenIpv4, value['ratelimit_subnet_len_ipv4']);
data.ratelimitSubnetLenIpv6 = value['ratelimit_subnet_len_ipv6']; updateValue(data.ratelimitSubnetLenIpv6, value['ratelimit_subnet_len_ipv6']);
data.ratelimitWhitelist = value['ratelimit_whitelist']; updateValue(data.ratelimitWhitelist, value['ratelimit_whitelist']);
setDnsInfoData(data); setDnsInfoData(data);
return result; return result;
} }

View file

@ -137,6 +137,8 @@ class AddFiltersButton extends StatelessWidget {
} }
void confirmAddList({required String name, required String url, required String type}) async { void confirmAddList({required String name, required String url, required String type}) async {
if (!context.mounted) return;
ProcessModal processModal = ProcessModal(); ProcessModal processModal = ProcessModal();
processModal.open(AppLocalizations.of(context)!.addingList); processModal.open(AppLocalizations.of(context)!.addingList);

View file

@ -162,7 +162,7 @@ class _CustomRulesListState extends State<CustomRulesList> {
TextButton.icon( TextButton.icon(
onPressed: () async { onPressed: () async {
final result = await filteringProvider.fetchFilters(); final result = await filteringProvider.fetchFilters();
if (result == false) { if (result == false && context.mounted) {
showSnackbar( showSnackbar(
appConfigProvider: appConfigProvider, appConfigProvider: appConfigProvider,
label: AppLocalizations.of(context)!.errorLoadFilters, label: AppLocalizations.of(context)!.errorLoadFilters,

View file

@ -34,6 +34,7 @@ class HomeAppBar extends StatelessWidget {
void navigateServers() { void navigateServers() {
Future.delayed(const Duration(milliseconds: 0), (() { Future.delayed(const Duration(milliseconds: 0), (() {
if (!context.mounted) return;
Navigator.of(context).push( Navigator.of(context).push(
MaterialPageRoute(builder: (context) => const Servers()) MaterialPageRoute(builder: (context) => const Servers())
); );

View file

@ -115,7 +115,7 @@ class _ClientsModalState extends State<ClientsModal> {
void searchAddedClient(_ClientLog client) { void searchAddedClient(_ClientLog client) {
final notIps = client.ids?.where((e) => isIpAddress(e) == false).toList(); final notIps = client.ids?.where((e) => isIpAddress(e) == false).toList();
if (notIps == null) return; if (notIps == null || notIps.isEmpty) return;
logsProvider.setSearchText('"${notIps[0]}"'); logsProvider.setSearchText('"${notIps[0]}"');
Navigator.of(context).pop(); Navigator.of(context).pop();
} }

View file

@ -96,6 +96,8 @@ class LogTile extends StatelessWidget {
} }
void blockUnblock({required String domain, required String newStatus}) async { void blockUnblock({required String domain, required String newStatus}) async {
if (!context.mounted) return;
final ProcessModal processModal = ProcessModal(); final ProcessModal processModal = ProcessModal();
processModal.open(AppLocalizations.of(context)!.savingUserFilters); processModal.open(AppLocalizations.of(context)!.savingUserFilters);
@ -124,6 +126,8 @@ class LogTile extends StatelessWidget {
} }
void confirmAddClient(Client client) async { void confirmAddClient(Client client) async {
if (!context.mounted) return;
ProcessModal processModal = ProcessModal(); ProcessModal processModal = ProcessModal();
processModal.open(AppLocalizations.of(context)!.addingClient); processModal.open(AppLocalizations.of(context)!.addingClient);

View file

@ -138,7 +138,7 @@ class _StatisticsSettingsState extends State<StatisticsSettings> {
"enabled": _generalSwitch, "enabled": _generalSwitch,
"interval": _retentionTime == "custom" "interval": _retentionTime == "custom"
? Duration(hours: int.parse(_customTimeController.text)).inMilliseconds ? Duration(hours: int.parse(_customTimeController.text)).inMilliseconds
: int.parse(_retentionTime!), : int.parse(_retentionTime ?? _retentionItems[0]),
"ignored": _ignoredDomainsControllers.map((e) => e.controller.text).toList() "ignored": _ignoredDomainsControllers.map((e) => e.controller.text).toList()
} }
); );