mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-06-01 20:32:18 +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",
|
||||
"processed": "Processed (no list)",
|
||||
"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)",
|
||||
"processedError": "Processed (error)",
|
||||
"rewrite": "Rewrite",
|
||||
"status": "Status",
|
||||
"result": "Result",
|
||||
"time": "Time",
|
||||
|
|
|
@ -111,7 +111,14 @@
|
|||
"logsNotLoaded": "No se pudieron cargar los registros",
|
||||
"processed": "Procesada (sin lista)",
|
||||
"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)",
|
||||
"processedError": "Procesada (error)",
|
||||
"rewrite": "Reescrita",
|
||||
"status": "Estado",
|
||||
"result": "Resultado",
|
||||
"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/functions/get_filtered_status.dart';
|
||||
import 'package:adguard_home_manager/functions/format_time.dart';
|
||||
import 'package:adguard_home_manager/models/logs.dart';
|
||||
|
||||
|
@ -18,54 +19,15 @@ class LogDetailsModal extends StatelessWidget {
|
|||
|
||||
@override
|
||||
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() {
|
||||
switch (log.reason) {
|
||||
case 'NotFilteredNotFound':
|
||||
return Text(
|
||||
AppLocalizations.of(context)!.processed,
|
||||
style: const TextStyle(
|
||||
color: Colors.green,
|
||||
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("");
|
||||
}
|
||||
final filter = getFilteredStatus(context, log.reason);
|
||||
return Text(
|
||||
filter['label'],
|
||||
style: TextStyle(
|
||||
color: filter['color'],
|
||||
fontWeight: FontWeight.w500
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
return DraggableScrollableSheet(
|
||||
|
@ -228,11 +190,11 @@ class LogDetailsModal extends StatelessWidget {
|
|||
children: [
|
||||
TextButton(
|
||||
onPressed: () {
|
||||
blockUnblock(log, isLogBlocked() == true ? 'unblock' : 'block');
|
||||
blockUnblock(log, getFilteredStatus(context, log.reason)['filtered'] == true ? 'unblock' : 'block');
|
||||
Navigator.pop(context);
|
||||
},
|
||||
child: Text(
|
||||
isLogBlocked() == true
|
||||
getFilteredStatus(context, log.reason)['filtered'] == true
|
||||
? AppLocalizations.of(context)!.unblockDomain
|
||||
: 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/functions/get_filtered_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/providers/servers_provider.dart';
|
||||
|
@ -57,35 +58,12 @@ class LogTile extends StatelessWidget {
|
|||
}
|
||||
|
||||
Widget generateLogStatus() {
|
||||
switch (log.reason) {
|
||||
case "NotFilteredNotFound":
|
||||
return logStatusWidget(
|
||||
icon: Icons.verified_user_rounded,
|
||||
color: Colors.green,
|
||||
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"
|
||||
);
|
||||
}
|
||||
final filter = getFilteredStatus(context, log.reason);
|
||||
return logStatusWidget(
|
||||
icon: filter['icon'],
|
||||
color: filter['color'],
|
||||
text: filter['label'],
|
||||
);
|
||||
}
|
||||
|
||||
void blockUnblock(Log log, String newStatus) async {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue