Changed green and red with theme color and grey

This commit is contained in:
Juan Gilsanz Polo 2022-10-26 16:51:39 +02:00
parent 6b593dc195
commit 5e30ac4986
11 changed files with 134 additions and 47 deletions

View file

@ -1,8 +1,9 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:adguard_home_manager/providers/app_config_provider.dart';
Map<String, dynamic> getFilteredStatus(BuildContext context, String filterKey, bool isRow) {
Map<String, dynamic> getFilteredStatus(BuildContext context, AppConfigProvider appConfigProvider, String filterKey, bool isRow) {
switch (filterKey) {
case 'NotFilteredNotFound':
return {
@ -10,7 +11,9 @@ Map<String, dynamic> getFilteredStatus(BuildContext context, String filterKey, b
'label': isRow == true
? AppLocalizations.of(context)!.processedRow
: AppLocalizations.of(context)!.processed,
'color': Colors.green,
'color': appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green,
'icon': Icons.verified_user_rounded,
};
@ -20,7 +23,9 @@ Map<String, dynamic> getFilteredStatus(BuildContext context, String filterKey, b
'label': isRow == true
? AppLocalizations.of(context)!.processedWhitelistRow
: AppLocalizations.of(context)!.processedWhitelist,
'color': Colors.green,
'color': appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green,
'icon': Icons.verified_user_rounded,
};
@ -30,7 +35,9 @@ Map<String, dynamic> getFilteredStatus(BuildContext context, String filterKey, b
'label': isRow == true
? AppLocalizations.of(context)!.processedErrorRow
: AppLocalizations.of(context)!.processedError,
'color': Colors.green,
'color': appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green,
'icon': Icons.verified_user_rounded,
};
@ -40,7 +47,9 @@ Map<String, dynamic> getFilteredStatus(BuildContext context, String filterKey, b
'label': isRow == true
? AppLocalizations.of(context)!.blockedBlacklistRow
: AppLocalizations.of(context)!.blockedBlacklist,
'color': Colors.red,
'color': appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
'icon': Icons.gpp_bad_rounded,
};
@ -50,7 +59,9 @@ Map<String, dynamic> getFilteredStatus(BuildContext context, String filterKey, b
'label': isRow == true
? AppLocalizations.of(context)!.blockedSafeBrowsingRow
: AppLocalizations.of(context)!.blockedSafeBrowsing,
'color': Colors.red,
'color': appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
'icon': Icons.gpp_bad_rounded,
};
@ -60,7 +71,9 @@ Map<String, dynamic> getFilteredStatus(BuildContext context, String filterKey, b
'label': isRow == true
? AppLocalizations.of(context)!.blockedParentalRow
: AppLocalizations.of(context)!.blockedParental,
'color': Colors.red,
'color': appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
'icon': Icons.gpp_bad_rounded,
};
@ -70,7 +83,9 @@ Map<String, dynamic> getFilteredStatus(BuildContext context, String filterKey, b
'label': isRow == true
? AppLocalizations.of(context)!.blockedInvalidRow
: AppLocalizations.of(context)!.blockedInvalid,
'color': Colors.red,
'color': appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
'icon': Icons.gpp_bad_rounded,
};
@ -80,7 +95,9 @@ Map<String, dynamic> getFilteredStatus(BuildContext context, String filterKey, b
'label': isRow == true
? AppLocalizations.of(context)!.blockedSafeSearchRow
: AppLocalizations.of(context)!.blockedSafeSearch,
'color': Colors.red,
'color': appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
'icon': Icons.gpp_bad_rounded,
};
@ -90,7 +107,9 @@ Map<String, dynamic> getFilteredStatus(BuildContext context, String filterKey, b
'label': isRow == true
? AppLocalizations.of(context)!.blockedServiceRow
: AppLocalizations.of(context)!.blockedService,
'color': Colors.red,
'color': appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
'icon': Icons.gpp_bad_rounded,
};

View file

@ -234,32 +234,48 @@ class _AddedListState extends State<AddedList> {
Icons.filter_list_rounded,
size: 19,
color: widget.data[index].filteringEnabled == true
? Colors.green
: Colors.red,
? appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green
: appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
),
const SizedBox(width: 10),
Icon(
Icons.vpn_lock_rounded,
size: 18,
color: widget.data[index].safebrowsingEnabled == true
? Colors.green
: Colors.red,
? appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green
: appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
),
const SizedBox(width: 10),
Icon(
Icons.block,
size: 18,
color: widget.data[index].parentalEnabled == true
? Colors.green
: Colors.red,
? appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green
: appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
),
const SizedBox(width: 10),
Icon(
Icons.search_rounded,
size: 19,
color: widget.data[index].safesearchEnabled == true
? Colors.green
: Colors.red,
? appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green
: appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
)
],
)

View file

@ -289,32 +289,48 @@ class _SearchClientsWidgetState extends State<SearchClientsWidget> {
Icons.filter_list_rounded,
size: 19,
color: clientsScreen[index].filteringEnabled == true
? Colors.green
: Colors.red,
? appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green
: appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
),
const SizedBox(width: 10),
Icon(
Icons.vpn_lock_rounded,
size: 18,
color: clientsScreen[index].safebrowsingEnabled == true
? Colors.green
: Colors.red,
? appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green
: appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
),
const SizedBox(width: 10),
Icon(
Icons.block,
size: 18,
color: clientsScreen[index].parentalEnabled == true
? Colors.green
: Colors.red,
? appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green
: appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
),
const SizedBox(width: 10),
Icon(
Icons.search_rounded,
size: 19,
color: clientsScreen[index].safesearchEnabled == true
? Colors.green
: Colors.red,
? appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green
: appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
)
],
)

View file

@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:adguard_home_manager/providers/app_config_provider.dart';
import 'package:adguard_home_manager/functions/get_filtered_status.dart';
import 'package:adguard_home_manager/services/http_requests.dart';
import 'package:adguard_home_manager/providers/servers_provider.dart';
@ -48,6 +49,7 @@ class _CheckHostModalState extends State<CheckHostModal> {
@override
Widget build(BuildContext context) {
final serversProvider = Provider.of<ServersProvider>(context);
final appConfigProvider = Provider.of<AppConfigProvider>(context);
void checkHost() async {
if (mounted) {
@ -56,7 +58,7 @@ class _CheckHostModalState extends State<CheckHostModal> {
final result = await checkHostFiltered(server: serversProvider.selectedServer!, host: domainController.text);
if (result['result'] == 'success') {
final status = getFilteredStatus(context, result['data']['reason'], true);
final status = getFilteredStatus(context, appConfigProvider, result['data']['reason'], true);
if (mounted) {
setState(() => resultWidget = Row(
mainAxisAlignment: MainAxisAlignment.center,
@ -65,16 +67,24 @@ class _CheckHostModalState extends State<CheckHostModal> {
status['icon'],
size: 18,
color: status['filtered'] == true
? Colors.red
: Colors.green,
? appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red
: appConfigProvider.useThemeColorForStatus
? Theme.of(context).primaryColor
: Colors.green,
),
const SizedBox(width: 10),
Text(
status['label'],
style: TextStyle(
color: status['filtered'] == true
? Colors.red
: Colors.green,
? appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red
: appConfigProvider.useThemeColorForStatus
? Theme.of(context).primaryColor
: Colors.green,
fontWeight: FontWeight.w500
),
)

View file

@ -300,8 +300,12 @@ class _FiltersWidgetState extends State<FiltersWidget> with TickerProviderStateM
: Icons.cancel,
size: 12,
color: serversProvider.filtering.data!.enabled == true
? Colors.green
: Colors.red,
? appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green
: appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red
),
),
],

View file

@ -297,8 +297,12 @@ class _FiltersListState extends State<FiltersList> {
? Icons.check_circle_rounded
: Icons.cancel,
color: widget.data[index].enabled == true
? Colors.green
: Colors.red,
? appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green
: appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red
),
onTap: () => openDetailsModal(widget.data[index]),
),

View file

@ -1,9 +1,11 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:adguard_home_manager/screens/filters/filter_list_tile.dart';
import 'package:adguard_home_manager/functions/format_time.dart';
import 'package:adguard_home_manager/providers/app_config_provider.dart';
import 'package:adguard_home_manager/models/filtering.dart';
class ListDetailsModal extends StatelessWidget {
@ -26,6 +28,8 @@ class ListDetailsModal extends StatelessWidget {
@override
Widget build(BuildContext context) {
final appConfigProvider = Provider.of<AppConfigProvider>(context);
return Container(
decoration: BoxDecoration(
borderRadius: const BorderRadius.only(
@ -96,8 +100,12 @@ class ListDetailsModal extends StatelessWidget {
? AppLocalizations.of(context)!.enabled
: AppLocalizations.of(context)!.disabled,
color: list.enabled == true
? Colors.green
: Colors.red,
? appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green
: appConfigProvider.useThemeColorForStatus == true
? Colors.grey
: Colors.red,
bold: true,
),
FilterListTile(

View file

@ -1,10 +1,12 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
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/providers/app_config_provider.dart';
import 'package:adguard_home_manager/models/logs.dart';
class LogDetailsModal extends StatelessWidget {
@ -21,8 +23,10 @@ class LogDetailsModal extends StatelessWidget {
@override
Widget build(BuildContext context) {
final appConfigProvider = Provider.of<AppConfigProvider>(context);
Widget getResult() {
final filter = getFilteredStatus(context, log.reason, true);
final filter = getFilteredStatus(context, appConfigProvider, log.reason, true);
return Text(
filter['label'],
style: TextStyle(
@ -222,11 +226,11 @@ class LogDetailsModal extends StatelessWidget {
children: [
TextButton(
onPressed: () {
blockUnblock(log, getFilteredStatus(context, log.reason, true)['filtered'] == true ? 'unblock' : 'block');
blockUnblock(log, getFilteredStatus(context, appConfigProvider, log.reason, true)['filtered'] == true ? 'unblock' : 'block');
Navigator.pop(context);
},
child: Text(
getFilteredStatus(context, log.reason, true)['filtered'] == true
getFilteredStatus(context, appConfigProvider, log.reason, true)['filtered'] == true
? AppLocalizations.of(context)!.unblockDomain
: AppLocalizations.of(context)!.blockDomain
)

View file

@ -63,7 +63,7 @@ class LogTile extends StatelessWidget {
}
Widget generateLogStatus() {
final filter = getFilteredStatus(context, log.reason, false);
final filter = getFilteredStatus(context, appConfigProvider, log.reason, false);
return logStatusWidget(
icon: filter['icon'],
color: filter['color'],

View file

@ -542,7 +542,7 @@ class _EncryptionSettingsWidgetState extends State<EncryptionSettingsWidget> {
builder: (context) => EncryptionErrorModal(error: validDataError!)
)
} : null,
icon: generateStatus(localValidationValid, dataValidApi),
icon: generateStatus(context, appConfigProvider, localValidationValid, dataValidApi),
tooltip: generateStatusString(context, localValidationValid, dataValidApi)
),
IconButton(

View file

@ -1,6 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:adguard_home_manager/providers/app_config_provider.dart';
String? validateDomain(BuildContext context, String domain) {
RegExp regExp = RegExp(r'^([a-z0-9|-]+\.)*[a-z0-9|-]+\.[a-z]+$');
if (regExp.hasMatch(domain)) {
@ -50,7 +52,7 @@ String? validatePath(BuildContext context, String cert) {
}
}
Widget generateStatus(bool localValidation, int dataValidApi) {
Widget generateStatus(BuildContext context, AppConfigProvider appConfigProvider, bool localValidation, int dataValidApi) {
if (localValidation == true) {
if (dataValidApi == 0) {
return const SizedBox(
@ -62,15 +64,19 @@ Widget generateStatus(bool localValidation, int dataValidApi) {
);
}
else if (dataValidApi == 1) {
return const Icon(
return Icon(
Icons.check_circle_rounded,
color: Colors.green,
color: appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).primaryColor
: Colors.green,
);
}
else if (dataValidApi == 2) {
return const Icon(
return Icon(
Icons.cancel_rounded,
color: Colors.red,
color: appConfigProvider.useThemeColorForStatus == true
? Theme.of(context).listTileTheme.iconColor
: Colors.red,
);
}
else {