diff --git a/lib/models/clients.dart b/lib/models/clients.dart index 9fc9b06..2c9f222 100644 --- a/lib/models/clients.dart +++ b/lib/models/clients.dart @@ -2,6 +2,7 @@ import 'dart:convert'; import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/models/clients_allowed_blocked.dart'; +import 'package:adguard_home_manager/models/safe_search.dart'; class Clients { LoadStatus loadStatus; @@ -100,9 +101,10 @@ class Client { final bool filteringEnabled; final bool parentalEnabled; final bool safebrowsingEnabled; - final bool safesearchEnabled; + final bool? safesearchEnabled; final bool useGlobalBlockedServices; final bool useGlobalSettings; + final SafeSearch? safeSearch; Client({ required this.name, @@ -116,6 +118,7 @@ class Client { required this.safesearchEnabled, required this.useGlobalBlockedServices, required this.useGlobalSettings, + required this.safeSearch, }); factory Client.fromJson(Map json) => Client( @@ -130,6 +133,9 @@ class Client { safesearchEnabled: json["safesearch_enabled"], useGlobalBlockedServices: json["use_global_blocked_services"], useGlobalSettings: json["use_global_settings"], + safeSearch: json["safe_search"] != null + ? SafeSearch.fromJson(json["safe_search"]) + : null ); Map toJson() => { @@ -142,6 +148,7 @@ class Client { "parental_enabled": parentalEnabled, "safebrowsing_enabled": safebrowsingEnabled, "safesearch_enabled": safesearchEnabled, + "safe_search": safeSearch, "use_global_blocked_services": useGlobalBlockedServices, "use_global_settings": useGlobalSettings, }; diff --git a/lib/models/safe_search.dart b/lib/models/safe_search.dart index 9fc69d7..4b960c9 100644 --- a/lib/models/safe_search.dart +++ b/lib/models/safe_search.dart @@ -1,25 +1,13 @@ -import 'package:adguard_home_manager/constants/enums.dart'; - class SafeSearch { - LoadStatus loadStatus = LoadStatus.loading; - SafeSearchData? data; + bool enabled = false; + bool bing = false; + bool duckduckgo = false; + bool google = false; + bool pixabay = false; + bool yandex = false; + bool youtube = false; SafeSearch({ - required this.loadStatus, - this.data - }); -} - -class SafeSearchData { - final bool enabled; - final bool bing; - final bool duckduckgo; - final bool google; - final bool pixabay; - final bool yandex; - final bool youtube; - - SafeSearchData({ required this.enabled, required this.bing, required this.duckduckgo, @@ -29,7 +17,7 @@ class SafeSearchData { required this.youtube, }); - factory SafeSearchData.fromJson(Map json) => SafeSearchData( + factory SafeSearch.fromJson(Map json) => SafeSearch( enabled: json["enabled"], bing: json["bing"], duckduckgo: json["duckduckgo"], diff --git a/lib/screens/clients/added_list.dart b/lib/screens/clients/added_list.dart index b18dcf4..0aeb121 100644 --- a/lib/screens/clients/added_list.dart +++ b/lib/screens/clients/added_list.dart @@ -16,6 +16,7 @@ import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/classes/process_modal.dart'; import 'package:adguard_home_manager/services/http_requests.dart'; +import 'package:adguard_home_manager/functions/compare_versions.dart'; import 'package:adguard_home_manager/models/clients.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; import 'package:adguard_home_manager/providers/servers_provider.dart'; @@ -146,6 +147,7 @@ class _AddedListState extends State { fullscreenDialog: true, builder: (BuildContext context) => ClientScreen( onConfirm: confirmEditClient, + serverVersion: serversProvider.serverStatus.data!.serverVersion, onDelete: deleteClient, client: client, ) @@ -260,13 +262,25 @@ class _AddedListState extends State { Icon( Icons.search_rounded, size: 19, - color: widget.data[index].safesearchEnabled == true - ? appConfigProvider.useThemeColorForStatus == true - ? Theme.of(context).colorScheme.primary - : Colors.green - : appConfigProvider.useThemeColorForStatus == true - ? Colors.grey - : Colors.red, + color: versionIsGreater( + currentVersion: serversProvider.serverStatus.data!.serverVersion, + referenceVersion: 'v0.107.28', + referenceVersionBeta: 'v0.108.0-b.33' + ) == true + ? widget.data[index].safeSearch!.enabled == true + ? appConfigProvider.useThemeColorForStatus == true + ? Theme.of(context).colorScheme.primary + : Colors.green + : appConfigProvider.useThemeColorForStatus == true + ? Colors.grey + : Colors.red + : widget.data[index].safesearchEnabled == true + ? appConfigProvider.useThemeColorForStatus == true + ? Theme.of(context).colorScheme.primary + : Colors.green + : appConfigProvider.useThemeColorForStatus == true + ? Colors.grey + : Colors.red, ) ], ) diff --git a/lib/screens/clients/client_screen.dart b/lib/screens/clients/client_screen.dart index 51dcb6e..9cd22b4 100644 --- a/lib/screens/clients/client_screen.dart +++ b/lib/screens/clients/client_screen.dart @@ -4,20 +4,26 @@ import 'package:uuid/uuid.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/clients/remove_client_modal.dart'; +import 'package:adguard_home_manager/screens/clients/safe_search_modal.dart'; import 'package:adguard_home_manager/screens/clients/services_modal.dart'; import 'package:adguard_home_manager/screens/clients/tags_modal.dart'; +import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; +import 'package:adguard_home_manager/functions/compare_versions.dart'; +import 'package:adguard_home_manager/models/safe_search.dart'; import 'package:adguard_home_manager/providers/servers_provider.dart'; import 'package:adguard_home_manager/models/clients.dart'; class ClientScreen extends StatefulWidget { final Client? client; + final String serverVersion; final void Function(Client) onConfirm; final void Function(Client)? onDelete; const ClientScreen({ Key? key, this.client, + required this.serverVersion, required this.onConfirm, this.onDelete, }) : super(key: key); @@ -46,6 +52,15 @@ class _ClientScreenState extends State { bool? enableSafeBrowsing; bool? enableParentalControl; bool? enableSafeSearch; + SafeSearch safeSearch = SafeSearch( + enabled: false, + bing: false, + duckduckgo: false, + google: false, + pixabay: false, + yandex: false, + youtube: false + ); bool useGlobalSettingsServices = true; List blockedServices = []; @@ -66,8 +81,16 @@ class _ClientScreenState extends State { } } + bool version = false; + @override void initState() { + version = versionIsGreater( + currentVersion: widget.serverVersion, + referenceVersion: 'v0.107.28', + referenceVersionBeta: 'v0.108.0-b.33' + ); + if (widget.client != null) { editMode = false; @@ -81,7 +104,12 @@ class _ClientScreenState extends State { enableFiltering = widget.client!.filteringEnabled; enableParentalControl = widget.client!.parentalEnabled; enableSafeBrowsing = widget.client!.safebrowsingEnabled; - enableSafeSearch = widget.client!.safesearchEnabled; + if (version == true) { + safeSearch = widget.client!.safeSearch!; + } + else { + enableSafeSearch = widget.client!.safesearchEnabled!; + } useGlobalSettingsServices = widget.client!.useGlobalBlockedServices; blockedServices = widget.client!.blockedServices; upstreamServers = widget.client!.upstreams.map((e) => { @@ -104,7 +132,8 @@ class _ClientScreenState extends State { filteringEnabled: enableFiltering ?? false, parentalEnabled: enableParentalControl ?? false, safebrowsingEnabled: enableSafeBrowsing ?? false, - safesearchEnabled: enableSafeSearch ?? false, + safesearchEnabled: version == true ? enableSafeSearch : null, + safeSearch: version == true ? safeSearch : null, useGlobalBlockedServices: useGlobalSettingsServices, blockedServices: blockedServices, upstreams: List.from(upstreamServers.map((e) => e['controller'].text)), @@ -141,7 +170,7 @@ class _ClientScreenState extends State { enableFiltering = false; enableSafeBrowsing = false; enableParentalControl = false; - enableSafeSearch = false; + safeSearch.enabled = false; }); } else if (useGlobalSettingsFiltering == false) { @@ -151,7 +180,7 @@ class _ClientScreenState extends State { enableFiltering = null; enableSafeBrowsing = null; enableParentalControl = null; - enableSafeSearch = null; + safeSearch.enabled = false; }); } } @@ -203,6 +232,17 @@ class _ClientScreenState extends State { ); } + void openSafeSearchModal() { + showDialog( + context: context, + builder: (context) => SafeSearchModal( + safeSearch: safeSearch, + disabled: !editMode, + onConfirm: (s) => setState(() => safeSearch = s) + ) + ); + } + Widget settignsTile({ required String label, required bool? value, @@ -233,10 +273,12 @@ class _ClientScreenState extends State { ? Switch( value: value!, onChanged: onChange, - activeColor: Theme.of(context).colorScheme.primary, ) : Padding( - padding: const EdgeInsets.symmetric(vertical: 14), + padding: const EdgeInsets.symmetric( + vertical: 14, + horizontal: 12 + ), child: Text( "Global", style: TextStyle( @@ -461,7 +503,6 @@ class _ClientScreenState extends State { onChanged: editMode == true ? (value) => enableDisableGlobalSettingsFiltering() : null, - activeColor: Theme.of(context).colorScheme.primary, ) ], ), @@ -491,7 +532,34 @@ class _ClientScreenState extends State { ? (value) => setState(() => enableParentalControl = value) : null ), - settignsTile( + if ( + versionIsGreater( + currentVersion: serversProvider.serverStatus.data!.serverVersion, + referenceVersion: 'v0.107.28', + referenceVersionBeta: 'v0.108.0-b.33' + ) == true + ) CustomListTile( + title: AppLocalizations.of(context)!.safeSearch, + padding: const EdgeInsets.symmetric( + horizontal: 42, + vertical: 16 + ), + trailing: Padding( + padding: const EdgeInsets.only(right: 16), + child: Icon( + Icons.chevron_right_rounded, + color: Theme.of(context).colorScheme.onSurfaceVariant, + ), + ), + onTap: openSafeSearchModal, + ), + if ( + versionIsGreater( + currentVersion: serversProvider.serverStatus.data!.serverVersion, + referenceVersion: 'v0.107.28', + referenceVersionBeta: 'v0.108.0-b.33' + ) == false + ) settignsTile( label: AppLocalizations.of(context)!.enableSafeSearch, value: enableSafeSearch, onChange: editMode == true @@ -529,7 +597,6 @@ class _ClientScreenState extends State { onChanged: editMode == true ? (value) => updateServicesGlobalSettings(value) : null, - activeColor: Theme.of(context).colorScheme.primary, ) ], ), diff --git a/lib/screens/clients/fab.dart b/lib/screens/clients/fab.dart index d916486..2c84151 100644 --- a/lib/screens/clients/fab.dart +++ b/lib/screens/clients/fab.dart @@ -7,6 +7,7 @@ import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:adguard_home_manager/screens/clients/client_screen.dart'; import 'package:adguard_home_manager/functions/snackbar.dart'; +import 'package:adguard_home_manager/functions/compare_versions.dart'; import 'package:adguard_home_manager/models/clients.dart'; import 'package:adguard_home_manager/services/http_requests.dart'; import 'package:adguard_home_manager/classes/process_modal.dart'; @@ -25,7 +26,16 @@ class ClientsFab extends StatelessWidget { ProcessModal processModal = ProcessModal(context: context); processModal.open(AppLocalizations.of(context)!.addingClient); - final result = await postAddClient(server: serversProvider.selectedServer!, data: client.toJson()); + final result = await postAddClient( + server: serversProvider.selectedServer!, + data: versionIsGreater( + currentVersion: serversProvider.serverStatus.data!.serverVersion, + referenceVersion: 'v0.107.28', + referenceVersionBeta: 'v0.108.0-b.33' + ) == false + ? client.toJson().remove('safesearch_enabled') + : client.toJson().remove('safe_search') + ); processModal.close(); @@ -58,6 +68,7 @@ class ClientsFab extends StatelessWidget { fullscreenDialog: true, builder: (BuildContext context) => ClientScreen( onConfirm: confirmAddClient, + serverVersion: serversProvider.serverStatus.data!.serverVersion, ) )); } diff --git a/lib/screens/clients/safe_search_modal.dart b/lib/screens/clients/safe_search_modal.dart new file mode 100644 index 0000000..9d51f01 --- /dev/null +++ b/lib/screens/clients/safe_search_modal.dart @@ -0,0 +1,196 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/app_localizations.dart'; + +import 'package:adguard_home_manager/widgets/custom_checkbox_list_tile.dart'; + +import 'package:adguard_home_manager/models/safe_search.dart'; + +class SafeSearchModal extends StatefulWidget { + final SafeSearch safeSearch; + final bool disabled; + final void Function(SafeSearch) onConfirm; + + const SafeSearchModal({ + Key? key, + required this.safeSearch, + required this.disabled, + required this.onConfirm + }) : super(key: key); + + @override + State createState() => _SafeSearchModalState(); +} + +class _SafeSearchModalState extends State { + bool generalEnabled = false; + bool bingEnabled = false; + bool duckduckgoEnabled = false; + bool googleEnabled = false; + bool pixabayEnabled = false; + bool yandexEnabled = false; + bool youtubeEnabled = false; + + @override + void initState() { + generalEnabled = widget.safeSearch.enabled; + bingEnabled = widget.safeSearch.bing; + duckduckgoEnabled = widget.safeSearch.duckduckgo; + googleEnabled = widget.safeSearch.google; + pixabayEnabled = widget.safeSearch.pixabay; + yandexEnabled = widget.safeSearch.yandex; + youtubeEnabled = widget.safeSearch.youtube; + + super.initState(); + } + + @override + Widget build(BuildContext context) { + return AlertDialog( + contentPadding: const EdgeInsets.symmetric(horizontal: 0, vertical: 16), + title: Column( + children: [ + Icon( + Icons.search_rounded, + size: 24, + color: Theme.of(context).listTileTheme.iconColor + ), + const SizedBox(height: 16), + Text( + AppLocalizations.of(context)!.safeSearch, + textAlign: TextAlign.center, + style: TextStyle( + color: Theme.of(context).colorScheme.onSurface + ), + ) + ], + ), + content: Wrap( + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Material( + color: Theme.of(context).colorScheme.primary.withOpacity(0.1), + borderRadius: BorderRadius.circular(28), + child: InkWell( + onTap: widget.disabled == true + ? null + : () => setState(() => generalEnabled = !generalEnabled), + borderRadius: BorderRadius.circular(28), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 5 + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + AppLocalizations.of(context)!.enable, + style: TextStyle( + fontSize: 16, + color: widget.disabled == true + ? Colors.grey + : Theme.of(context).colorScheme.onSurface + ), + ), + Switch( + value: generalEnabled, + onChanged: widget.disabled == true + ? null + : (value) => setState(() => generalEnabled = value), + ) + ], + ), + ), + ), + ), + ), + const SizedBox(height: 4, width: double.maxFinite), + CustomCheckboxListTile( + value: bingEnabled, + onChanged: (value) => setState(() => bingEnabled = value), + title: "Bing", + disabled: widget.disabled || !generalEnabled, + padding: const EdgeInsets.symmetric( + horizontal: 36, + vertical: 4 + ), + ), + CustomCheckboxListTile( + value: duckduckgoEnabled, + onChanged: (value) => setState(() => duckduckgoEnabled = value), + title: "DuckDuckGo", + disabled: widget.disabled || !generalEnabled, + padding: const EdgeInsets.symmetric( + horizontal: 36, + vertical: 4 + ), + ), + CustomCheckboxListTile( + value: googleEnabled, + onChanged: (value) => setState(() => googleEnabled = value), + title: "Google", + disabled: widget.disabled || !generalEnabled, + padding: const EdgeInsets.symmetric( + horizontal: 36, + vertical: 4 + ), + ), + CustomCheckboxListTile( + value: pixabayEnabled, + onChanged: (value) => setState(() => pixabayEnabled = value), + title: "Pixabay", + disabled: widget.disabled || !generalEnabled, + padding: const EdgeInsets.symmetric( + horizontal: 36, + vertical: 4 + ), + ), + CustomCheckboxListTile( + value: yandexEnabled, + onChanged: (value) => setState(() => yandexEnabled = value), + title: "Yandex", + disabled: widget.disabled || !generalEnabled, + padding: const EdgeInsets.symmetric( + horizontal: 36, + vertical: 4 + ), + ), + CustomCheckboxListTile( + value: youtubeEnabled, + onChanged: (value) => setState(() => youtubeEnabled = value), + title: "YouTube", + disabled: widget.disabled || !generalEnabled, + padding: const EdgeInsets.symmetric( + horizontal: 36, + vertical: 4 + ), + ), + ], + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text(AppLocalizations.of(context)!.cancel) + ), + TextButton( + onPressed: widget.disabled == false ? () { + widget.onConfirm( + SafeSearch( + enabled: generalEnabled, + bing: bingEnabled, + duckduckgo: duckduckgoEnabled, + google: googleEnabled, + pixabay: pixabayEnabled, + yandex: yandexEnabled, + youtube: youtubeEnabled + ) + ); + Navigator.pop(context); + } : null, + child: Text(AppLocalizations.of(context)!.confirm) + ), + ], + ); + } +} \ No newline at end of file diff --git a/lib/screens/clients/search_clients.dart b/lib/screens/clients/search_clients.dart index 9a570af..4ac2a66 100644 --- a/lib/screens/clients/search_clients.dart +++ b/lib/screens/clients/search_clients.dart @@ -13,6 +13,7 @@ import 'package:adguard_home_manager/widgets/custom_list_tile.dart'; import 'package:adguard_home_manager/services/http_requests.dart'; import 'package:adguard_home_manager/classes/process_modal.dart'; +import 'package:adguard_home_manager/functions/compare_versions.dart'; import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; import 'package:adguard_home_manager/models/clients.dart'; @@ -188,6 +189,7 @@ class _SearchClientsWidgetState extends State { onConfirm: confirmEditClient, onDelete: deleteClient, client: client, + serverVersion: serversProvider.serverStatus.data!.serverVersion, ) )); } @@ -337,13 +339,25 @@ class _SearchClientsWidgetState extends State { Icon( Icons.search_rounded, size: 19, - color: clientsScreen[index].safesearchEnabled == true - ? appConfigProvider.useThemeColorForStatus == true - ? Theme.of(context).colorScheme.primary - : Colors.green - : appConfigProvider.useThemeColorForStatus == true - ? Colors.grey - : Colors.red, + color: versionIsGreater( + currentVersion: serversProvider.serverStatus.data!.serverVersion, + referenceVersion: 'v0.107.28', + referenceVersionBeta: 'v0.108.0-b.33' + ) == true + ? clientsScreen[index].safeSearch!.enabled == true + ? appConfigProvider.useThemeColorForStatus == true + ? Theme.of(context).colorScheme.primary + : Colors.green + : appConfigProvider.useThemeColorForStatus == true + ? Colors.grey + : Colors.red + : clientsScreen[index].safesearchEnabled == true + ? appConfigProvider.useThemeColorForStatus == true + ? Theme.of(context).colorScheme.primary + : Colors.green + : appConfigProvider.useThemeColorForStatus == true + ? Colors.grey + : Colors.red, ) ], ) diff --git a/lib/screens/filters/add_custom_rule.dart b/lib/screens/filters/add_custom_rule.dart index a0941c1..3f1e1f2 100644 --- a/lib/screens/filters/add_custom_rule.dart +++ b/lib/screens/filters/add_custom_rule.dart @@ -200,7 +200,6 @@ class _AddCustomRuleState extends State { Switch( value: addImportant, onChanged: (value) => setState(() => addImportant = value), - activeColor: Theme.of(context).colorScheme.primary, ) ], ), diff --git a/lib/screens/home/management_modal.dart b/lib/screens/home/management_modal.dart index f562b57..83029b8 100644 --- a/lib/screens/home/management_modal.dart +++ b/lib/screens/home/management_modal.dart @@ -197,7 +197,6 @@ class _ManagementModalState extends State with SingleTickerProv filter: legacyMode == true ? 'general_legacy' : 'general' ); } : null, - activeColor: Theme.of(context).colorScheme.primary, ) ] ); @@ -357,7 +356,6 @@ class _ManagementModalState extends State with SingleTickerProv onChanged: disabled == false ? onChange : null, - activeColor: Theme.of(context).colorScheme.primary, ) ], ), diff --git a/lib/screens/logs/logs_config_modal.dart b/lib/screens/logs/logs_config_modal.dart index 472fd55..3d80a87 100644 --- a/lib/screens/logs/logs_config_modal.dart +++ b/lib/screens/logs/logs_config_modal.dart @@ -202,7 +202,6 @@ class _LogsConfigModalWidgetState extends State { Switch( value: generalSwitch, onChanged: (value) => setState(() => generalSwitch = value), - activeColor: Theme.of(context).colorScheme.primary, ) ], ), @@ -233,7 +232,6 @@ class _LogsConfigModalWidgetState extends State { Switch( value: anonymizeClientIp, onChanged: (value) => setState(() => anonymizeClientIp = value), - activeColor: Theme.of(context).colorScheme.primary, ) ], ), diff --git a/lib/screens/settings/advanced_setings.dart b/lib/screens/settings/advanced_setings.dart index f1da7f5..987d406 100644 --- a/lib/screens/settings/advanced_setings.dart +++ b/lib/screens/settings/advanced_setings.dart @@ -50,7 +50,6 @@ class AdvancedSettings extends StatelessWidget { trailing: Switch( value: appConfigProvider.overrideSslCheck, onChanged: updateSslCheck, - activeColor: Theme.of(context).colorScheme.primary, ), onTap: () => updateSslCheck(!appConfigProvider.overrideSslCheck), padding: const EdgeInsets.only( diff --git a/lib/screens/settings/dhcp/dhcp.dart b/lib/screens/settings/dhcp/dhcp.dart index 3ba3b68..a4a8319 100644 --- a/lib/screens/settings/dhcp/dhcp.dart +++ b/lib/screens/settings/dhcp/dhcp.dart @@ -449,7 +449,6 @@ class _DhcpWidgetState extends State { onChanged: selectedInterface != null ? (value) => setState(() => enabled = value) : null, - activeColor: Theme.of(context).colorScheme.primary, ), ], ), diff --git a/lib/screens/settings/encryption/master_switch.dart b/lib/screens/settings/encryption/master_switch.dart index af68536..f13c4fa 100644 --- a/lib/screens/settings/encryption/master_switch.dart +++ b/lib/screens/settings/encryption/master_switch.dart @@ -58,7 +58,6 @@ class EncryptionMasterSwitch extends StatelessWidget { Switch( value: value, onChanged: (value) => onChange(value), - activeColor: Theme.of(context).colorScheme.primary, ), ], ), diff --git a/lib/screens/settings/general_settings.dart b/lib/screens/settings/general_settings.dart index afad45e..fed1be1 100644 --- a/lib/screens/settings/general_settings.dart +++ b/lib/screens/settings/general_settings.dart @@ -69,7 +69,6 @@ class GeneralSettings extends StatelessWidget { trailing: Switch( value: appConfigProvider.hideZeroValues, onChanged: updateHideZeroValues, - activeColor: Theme.of(context).colorScheme.primary, ), onTap: () => updateHideZeroValues(!appConfigProvider.hideZeroValues), padding: const EdgeInsets.only( @@ -86,7 +85,6 @@ class GeneralSettings extends StatelessWidget { trailing: Switch( value: appConfigProvider.showNameTimeLogs, onChanged: updateShowNameTimeLogs, - activeColor: Theme.of(context).colorScheme.primary, ), onTap: () => updateShowNameTimeLogs(!appConfigProvider.showNameTimeLogs), padding: const EdgeInsets.only( diff --git a/lib/screens/settings/safe_search_settings.dart b/lib/screens/settings/safe_search_settings.dart index 1d8a31e..02a9c1d 100644 --- a/lib/screens/settings/safe_search_settings.dart +++ b/lib/screens/settings/safe_search_settings.dart @@ -4,11 +4,10 @@ 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/custom_switch_list_tile.dart'; +import 'package:adguard_home_manager/widgets/custom_checkbox_list_tile.dart'; import 'package:adguard_home_manager/classes/process_modal.dart'; import 'package:adguard_home_manager/functions/snackbar.dart'; -import 'package:adguard_home_manager/widgets/custom_checkbox_list_tile.dart'; import 'package:adguard_home_manager/models/server_status.dart'; import 'package:adguard_home_manager/services/http_requests.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; diff --git a/lib/services/http_requests.dart b/lib/services/http_requests.dart index 662acb0..041368e 100644 --- a/lib/services/http_requests.dart +++ b/lib/services/http_requests.dart @@ -2255,41 +2255,6 @@ Future requestUpdateServer({ } } -Future getSafeSearchSettings({ - required Server server, -}) async { - final result = await apiRequest( - urlPath: '/safesearch/status', - method: 'get', - server: server, - type: 'safesearch_settings' - ); - - if (result['hasResponse'] == true) { - if (result['statusCode'] == 200) { - return { - 'result': 'success', - 'data': SafeSearchData.fromJson(jsonDecode(result['body'])) - }; - } - else { - return { - 'result': 'error', - 'log': AppLog( - type: 'safesearch_settings', - dateTime: DateTime.now(), - message: 'error_code_not_expected', - statusCode: result['statusCode'].toString(), - resBody: result['body'], - ) - }; - } - } - else { - return result; - } -} - Future updateSafeSearchSettings({ required Server server, required Map body diff --git a/lib/widgets/add_server_modal.dart b/lib/widgets/add_server_modal.dart index 758876b..7fc830d 100644 --- a/lib/widgets/add_server_modal.dart +++ b/lib/widgets/add_server_modal.dart @@ -580,7 +580,6 @@ class _AddServerModalState extends State { onChanged: widget.server == null ? (value) => setState(() => defaultServer = value) : null, - activeColor: Theme.of(context).colorScheme.primary, ) ], ), @@ -606,7 +605,6 @@ class _AddServerModalState extends State { Switch( value: homeAssistant, onChanged: (value) => setState(() => homeAssistant = value), - activeColor: Theme.of(context).colorScheme.primary, ) ], ),