mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-06-03 13:20:34 +00:00
Some improvements
This commit is contained in:
parent
f6b747f729
commit
a5ba156e95
5 changed files with 124 additions and 78 deletions
92
lib/functions/get_filtered_status.dart
Normal file
92
lib/functions/get_filtered_status.dart
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||||
|
|
||||||
|
|
||||||
|
Map<String, dynamic> getFilteredStatus(BuildContext context, String filterKey) {
|
||||||
|
switch (filterKey) {
|
||||||
|
case 'NotFilteredNotFound':
|
||||||
|
return {
|
||||||
|
'filtered': false,
|
||||||
|
'label': AppLocalizations.of(context)!.processed,
|
||||||
|
'color': Colors.green,
|
||||||
|
'icon': Icons.verified_user_rounded,
|
||||||
|
};
|
||||||
|
|
||||||
|
case 'NotFilteredWhiteList':
|
||||||
|
return {
|
||||||
|
'filtered': false,
|
||||||
|
'label': AppLocalizations.of(context)!.processedWhitelist,
|
||||||
|
'color': Colors.green,
|
||||||
|
'icon': Icons.verified_user_rounded,
|
||||||
|
};
|
||||||
|
|
||||||
|
case 'NotFilteredError':
|
||||||
|
return {
|
||||||
|
'filtered': false,
|
||||||
|
'label': AppLocalizations.of(context)!.processedError,
|
||||||
|
'color': Colors.green,
|
||||||
|
'icon': Icons.verified_user_rounded,
|
||||||
|
};
|
||||||
|
|
||||||
|
case 'FilteredBlackList':
|
||||||
|
return {
|
||||||
|
'filtered': true,
|
||||||
|
'label': AppLocalizations.of(context)!.blockedBlacklist,
|
||||||
|
'color': Colors.red,
|
||||||
|
'icon': Icons.gpp_bad_rounded,
|
||||||
|
};
|
||||||
|
|
||||||
|
case 'FilteredSafeBrowsing':
|
||||||
|
return {
|
||||||
|
'filtered': true,
|
||||||
|
'label': AppLocalizations.of(context)!.blockedSafeBrowsing,
|
||||||
|
'color': Colors.red,
|
||||||
|
'icon': Icons.gpp_bad_rounded,
|
||||||
|
};
|
||||||
|
|
||||||
|
case 'FilteredParental':
|
||||||
|
return {
|
||||||
|
'filtered': true,
|
||||||
|
'label': AppLocalizations.of(context)!.blockedParental,
|
||||||
|
'color': Colors.red,
|
||||||
|
'icon': Icons.gpp_bad_rounded,
|
||||||
|
};
|
||||||
|
|
||||||
|
case 'FilteredInvalid':
|
||||||
|
return {
|
||||||
|
'filtered': true,
|
||||||
|
'label': AppLocalizations.of(context)!.blockedInvalid,
|
||||||
|
'color': Colors.red,
|
||||||
|
'icon': Icons.gpp_bad_rounded,
|
||||||
|
};
|
||||||
|
|
||||||
|
case 'FilteredSafeSearch':
|
||||||
|
return {
|
||||||
|
'filtered': true,
|
||||||
|
'label': AppLocalizations.of(context)!.blockedSafeSearch,
|
||||||
|
'color': Colors.red,
|
||||||
|
'icon': Icons.gpp_bad_rounded,
|
||||||
|
};
|
||||||
|
|
||||||
|
case 'FilteredBlockedService':
|
||||||
|
return {
|
||||||
|
'filtered': true,
|
||||||
|
'label': AppLocalizations.of(context)!.blockedService,
|
||||||
|
'color': Colors.red,
|
||||||
|
'icon': Icons.gpp_bad_rounded,
|
||||||
|
};
|
||||||
|
|
||||||
|
case 'Rewrite':
|
||||||
|
case 'RewriteEtcHosts':
|
||||||
|
case 'RewriteRule':
|
||||||
|
return {
|
||||||
|
'filtered': true,
|
||||||
|
'label': AppLocalizations.of(context)!.rewrite,
|
||||||
|
'color': Colors.blue,
|
||||||
|
'icon': Icons.shield_rounded,
|
||||||
|
};
|
||||||
|
|
||||||
|
default:
|
||||||
|
return {'filtered': null, 'label': 'Unknown'};
|
||||||
|
}
|
||||||
|
}
|
|
@ -111,7 +111,14 @@
|
||||||
"logsNotLoaded": "Logs list could not be loaded",
|
"logsNotLoaded": "Logs list could not be loaded",
|
||||||
"processed": "Processed (no list)",
|
"processed": "Processed (no list)",
|
||||||
"blockedBlacklist": "Blocked (blacklist)",
|
"blockedBlacklist": "Blocked (blacklist)",
|
||||||
|
"blockedSafeBrowsing": "Blocked (safe browsing)",
|
||||||
|
"blockedParental": "Blocked (parental filtering)",
|
||||||
|
"blockedInvalid": "Blocked (invalid)",
|
||||||
|
"blockedSafeSearch": "Blocked (safe search)",
|
||||||
|
"blockedService": "Blocked (blocked service)",
|
||||||
"processedWhitelist": "Processed (whitelist)",
|
"processedWhitelist": "Processed (whitelist)",
|
||||||
|
"processedError": "Processed (error)",
|
||||||
|
"rewrite": "Rewrite",
|
||||||
"status": "Status",
|
"status": "Status",
|
||||||
"result": "Result",
|
"result": "Result",
|
||||||
"time": "Time",
|
"time": "Time",
|
||||||
|
|
|
@ -111,7 +111,14 @@
|
||||||
"logsNotLoaded": "No se pudieron cargar los registros",
|
"logsNotLoaded": "No se pudieron cargar los registros",
|
||||||
"processed": "Procesada (sin lista)",
|
"processed": "Procesada (sin lista)",
|
||||||
"blockedBlacklist": "Bloqueada (lista negra)",
|
"blockedBlacklist": "Bloqueada (lista negra)",
|
||||||
|
"blockedSafeBrowsing": "Bloqueada (navegación segura)",
|
||||||
|
"blockedParental": "Bloqueada (control parental)",
|
||||||
|
"blockedInvalid": "Bloqueada (inválida)",
|
||||||
|
"blockedSafeSearch": "Bloqueada (búsqueda segura)",
|
||||||
|
"blockedService": "Bloqueada (servicio bloqueado)",
|
||||||
"processedWhitelist": "Procesada (lista blanca)",
|
"processedWhitelist": "Procesada (lista blanca)",
|
||||||
|
"processedError": "Procesada (error)",
|
||||||
|
"rewrite": "Reescrita",
|
||||||
"status": "Estado",
|
"status": "Estado",
|
||||||
"result": "Resultado",
|
"result": "Resultado",
|
||||||
"time": "Hora",
|
"time": "Hora",
|
||||||
|
|
|
@ -3,6 +3,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||||
|
|
||||||
import 'package:adguard_home_manager/screens/logs/log_list_tile.dart';
|
import 'package:adguard_home_manager/screens/logs/log_list_tile.dart';
|
||||||
|
|
||||||
|
import 'package:adguard_home_manager/functions/get_filtered_status.dart';
|
||||||
import 'package:adguard_home_manager/functions/format_time.dart';
|
import 'package:adguard_home_manager/functions/format_time.dart';
|
||||||
import 'package:adguard_home_manager/models/logs.dart';
|
import 'package:adguard_home_manager/models/logs.dart';
|
||||||
|
|
||||||
|
@ -18,54 +19,15 @@ class LogDetailsModal extends StatelessWidget {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
bool isLogBlocked() {
|
|
||||||
switch (log.reason) {
|
|
||||||
case 'NotFilteredNotFound':
|
|
||||||
return false;
|
|
||||||
|
|
||||||
case 'NotFilteredWhiteList':
|
|
||||||
return true;
|
|
||||||
|
|
||||||
case 'FilteredBlackList':
|
|
||||||
return true;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget getResult() {
|
Widget getResult() {
|
||||||
switch (log.reason) {
|
final filter = getFilteredStatus(context, log.reason);
|
||||||
case 'NotFilteredNotFound':
|
return Text(
|
||||||
return Text(
|
filter['label'],
|
||||||
AppLocalizations.of(context)!.processed,
|
style: TextStyle(
|
||||||
style: const TextStyle(
|
color: filter['color'],
|
||||||
color: Colors.green,
|
fontWeight: FontWeight.w500
|
||||||
fontWeight: FontWeight.w500
|
),
|
||||||
),
|
);
|
||||||
);
|
|
||||||
|
|
||||||
case 'NotFilteredWhiteList':
|
|
||||||
return Text(
|
|
||||||
AppLocalizations.of(context)!.processedWhitelist,
|
|
||||||
style: const TextStyle(
|
|
||||||
color: Colors.green,
|
|
||||||
fontWeight: FontWeight.w500
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
case 'FilteredBlackList':
|
|
||||||
return Text(
|
|
||||||
AppLocalizations.of(context)!.blockedBlacklist,
|
|
||||||
style: const TextStyle(
|
|
||||||
color: Colors.red,
|
|
||||||
fontWeight: FontWeight.w500
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
default:
|
|
||||||
return const Text("");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return DraggableScrollableSheet(
|
return DraggableScrollableSheet(
|
||||||
|
@ -228,11 +190,11 @@ class LogDetailsModal extends StatelessWidget {
|
||||||
children: [
|
children: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
blockUnblock(log, isLogBlocked() == true ? 'unblock' : 'block');
|
blockUnblock(log, getFilteredStatus(context, log.reason)['filtered'] == true ? 'unblock' : 'block');
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
},
|
},
|
||||||
child: Text(
|
child: Text(
|
||||||
isLogBlocked() == true
|
getFilteredStatus(context, log.reason)['filtered'] == true
|
||||||
? AppLocalizations.of(context)!.unblockDomain
|
? AppLocalizations.of(context)!.unblockDomain
|
||||||
: AppLocalizations.of(context)!.blockDomain
|
: AppLocalizations.of(context)!.blockDomain
|
||||||
)
|
)
|
||||||
|
|
|
@ -6,6 +6,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart';
|
||||||
|
|
||||||
import 'package:adguard_home_manager/screens/logs/log_details_modal.dart';
|
import 'package:adguard_home_manager/screens/logs/log_details_modal.dart';
|
||||||
|
|
||||||
|
import 'package:adguard_home_manager/functions/get_filtered_status.dart';
|
||||||
import 'package:adguard_home_manager/models/filtering_status.dart';
|
import 'package:adguard_home_manager/models/filtering_status.dart';
|
||||||
import 'package:adguard_home_manager/classes/process_modal.dart';
|
import 'package:adguard_home_manager/classes/process_modal.dart';
|
||||||
import 'package:adguard_home_manager/providers/servers_provider.dart';
|
import 'package:adguard_home_manager/providers/servers_provider.dart';
|
||||||
|
@ -57,35 +58,12 @@ class LogTile extends StatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget generateLogStatus() {
|
Widget generateLogStatus() {
|
||||||
switch (log.reason) {
|
final filter = getFilteredStatus(context, log.reason);
|
||||||
case "NotFilteredNotFound":
|
return logStatusWidget(
|
||||||
return logStatusWidget(
|
icon: filter['icon'],
|
||||||
icon: Icons.verified_user_rounded,
|
color: filter['color'],
|
||||||
color: Colors.green,
|
text: filter['label'],
|
||||||
text: AppLocalizations.of(context)!.processed,
|
);
|
||||||
);
|
|
||||||
|
|
||||||
case "FilteredBlackList":
|
|
||||||
return logStatusWidget(
|
|
||||||
icon: Icons.verified_user_rounded,
|
|
||||||
color: Colors.red,
|
|
||||||
text: AppLocalizations.of(context)!.blockedBlacklist,
|
|
||||||
);
|
|
||||||
|
|
||||||
case "NotFilteredWhiteList":
|
|
||||||
return logStatusWidget(
|
|
||||||
icon: Icons.verified_user_rounded,
|
|
||||||
color: Colors.green,
|
|
||||||
text: AppLocalizations.of(context)!.processedWhitelist,
|
|
||||||
);
|
|
||||||
|
|
||||||
default:
|
|
||||||
return logStatusWidget(
|
|
||||||
icon: Icons.shield_rounded,
|
|
||||||
color: Colors.grey,
|
|
||||||
text: "Unknwon"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void blockUnblock(Log log, String newStatus) async {
|
void blockUnblock(Log log, String newStatus) async {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue