From a3e3c67c1c5e8013f835c4aa8245ff9a85df733d Mon Sep 17 00:00:00 2001 From: Juan Gilsanz Polo Date: Wed, 30 Nov 2022 23:35:31 +0100 Subject: [PATCH] Fixed whois issue logs --- lib/models/logs.dart | 2 +- lib/screens/logs/log_details_screen.dart | 34 ++++++++++++++++-------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/lib/models/logs.dart b/lib/models/logs.dart index 9ce3452..7061318 100644 --- a/lib/models/logs.dart +++ b/lib/models/logs.dart @@ -148,7 +148,7 @@ class ClientInfo { }); factory ClientInfo.fromJson(Map json) => ClientInfo( - whois: Whois.fromJson(json["whois"]), + whois: Whois.fromJson(Map.from(json["whois"])), name: json["name"], disallowedRule: json["disallowed_rule"], disallowed: json["disallowed"], diff --git a/lib/screens/logs/log_details_screen.dart b/lib/screens/logs/log_details_screen.dart index 0ccaf35..5386d0c 100644 --- a/lib/screens/logs/log_details_screen.dart +++ b/lib/screens/logs/log_details_screen.dart @@ -1,11 +1,11 @@ // ignore_for_file: use_build_context_synchronously -import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; -import 'package:adguard_home_manager/widgets/section_label.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/widgets/section_label.dart'; + import 'package:adguard_home_manager/screens/logs/log_list_tile.dart'; import 'package:adguard_home_manager/classes/process_modal.dart'; @@ -30,10 +30,14 @@ class LogDetailsScreen extends StatelessWidget { final serversProvider = Provider.of(context); final appConfigProvider = Provider.of(context); - Filter getList(int id) { - return serversProvider.filteringStatus!.filters.firstWhere((filter) => filter.id == id, orElse: () { - return serversProvider.filteringStatus!.whitelistFilters.firstWhere((filter) => filter.id == id); - }); + Filter? getList(int id) { + try { + return serversProvider.filteringStatus!.filters.firstWhere((filter) => filter.id == id, orElse: () { + return serversProvider.filteringStatus!.whitelistFilters.firstWhere((filter) => filter.id == id); + }); + } catch (_) { + return null; + } } Widget getResult() { @@ -202,11 +206,19 @@ class LogDetailsScreen extends StatelessWidget { ), if (log.rules.isNotEmpty) ...[ SectionLabel(label: AppLocalizations.of(context)!.rules), - ...log.rules.map((rule) => LogListTile( - icon: Icons.rule_rounded, - title: rule.text, - subtitle: getList(rule.filterListId).name, - )).toList() + ...log.rules.map((rule) { + final Filter? list = getList(rule.filterListId); + if (list != null) { + return LogListTile( + icon: Icons.rule_rounded, + title: rule.text, + subtitle: list.name + ); + } + else { + return const SizedBox(); + } + }).toList() ], if (log.answer.isNotEmpty) ...[ SectionLabel(label: AppLocalizations.of(context)!.answers),