This commit is contained in:
Juan Gilsanz Polo 2023-04-15 02:02:40 +02:00
parent f54770dbba
commit d152293594
14 changed files with 57 additions and 41 deletions

View file

@ -46,7 +46,7 @@ bool compareBetaVersions({
} }
} }
bool versionIsGreater({ bool serverVersionIsAhead({
required String currentVersion, required String currentVersion,
required String referenceVersion, required String referenceVersion,
String? referenceVersionBeta String? referenceVersionBeta
@ -66,16 +66,16 @@ bool versionIsGreater({
if (newSplit[0] == currentSplit[0] && newSplit[1] == currentSplit[1] && newSplit[2] == currentSplit[2] && newBeta == currentBeta) { if (newSplit[0] == currentSplit[0] && newSplit[1] == currentSplit[1] && newSplit[2] == currentSplit[2] && newBeta == currentBeta) {
return true; return true;
} }
else if (newSplit[0] > currentSplit[0]) { else if (newSplit[0] < currentSplit[0]) {
return true; return true;
} }
else if (newSplit[1] > currentSplit[1]) { else if (newSplit[1] < currentSplit[1]) {
return true; return true;
} }
else if (newSplit[2] > currentSplit[2]) { else if (newSplit[2] < currentSplit[2]) {
return true; return true;
} }
else if (newBeta > currentBeta) { else if (newBeta < currentBeta) {
return true; return true;
} }
else { else {
@ -93,13 +93,13 @@ bool versionIsGreater({
if (newSplit[0] == currentSplit[0] && newSplit[1] == currentSplit[1] && newSplit[2] == currentSplit[2]) { if (newSplit[0] == currentSplit[0] && newSplit[1] == currentSplit[1] && newSplit[2] == currentSplit[2]) {
return true; return true;
} }
else if (newSplit[0] > currentSplit[0]) { else if (newSplit[0] < currentSplit[0]) {
return true; return true;
} }
else if (newSplit[1] > currentSplit[1]) { else if (newSplit[1] < currentSplit[1]) {
return true; return true;
} }
else if (newSplit[2] > currentSplit[2]) { else if (newSplit[2] < currentSplit[2]) {
return true; return true;
} }
else { else {

View file

@ -0,0 +1,5 @@
Map<String, dynamic> removePropFromMap(Map<String, dynamic> o, String prop) {
Map<String, dynamic> obj = {...o};
obj.remove(prop);
return o;
}

View file

@ -24,12 +24,12 @@ class ServerStatusData {
bool safeBrowsingEnabled; bool safeBrowsingEnabled;
bool parentalControlEnabled; bool parentalControlEnabled;
final String serverVersion; final String serverVersion;
bool safeSeachBing; bool? safeSeachBing;
bool safeSearchGoogle; bool? safeSearchGoogle;
bool safeSearchDuckduckgo; bool? safeSearchDuckduckgo;
bool safeSearchPixabay; bool? safeSearchPixabay;
bool safeSearchYandex; bool? safeSearchYandex;
bool safeSearchYoutube; bool? safeSearchYoutube;
ServerStatusData({ ServerStatusData({
required this.stats, required this.stats,
@ -56,8 +56,10 @@ class ServerStatusData {
clients: json["clients"] != null ? List<Client>.from(json["clients"].map((x) => Client.fromJson(x))) : [], clients: json["clients"] != null ? List<Client>.from(json["clients"].map((x) => Client.fromJson(x))) : [],
generalEnabled: json['status']['protection_enabled'], generalEnabled: json['status']['protection_enabled'],
timeGeneralDisabled: json['status']['protection_disabled_duration'] ?? 0, timeGeneralDisabled: json['status']['protection_disabled_duration'] ?? 0,
disabledUntil: json['status']['protection_disabled_duration'] > 0 disabledUntil: json['status']['protection_disabled_duration'] != null
? json['status']['protection_disabled_duration'] > 0
? generateTimeDeadline(json['status']['protection_disabled_duration']) ? generateTimeDeadline(json['status']['protection_disabled_duration'])
: null
: null, : null,
filteringStatus: FilteringStatus.fromJson(json['filtering']), filteringStatus: FilteringStatus.fromJson(json['filtering']),
filteringEnabled: json['filtering']['enabled'], filteringEnabled: json['filtering']['enabled'],

View file

@ -411,7 +411,7 @@ class ServersProvider with ChangeNotifier {
_protectionsManagementProcess.add('safeSearch'); _protectionsManagementProcess.add('safeSearch');
notifyListeners(); notifyListeners();
final result = versionIsGreater( final result = serverVersionIsAhead(
currentVersion: serverStatus.data!.serverVersion, currentVersion: serverStatus.data!.serverVersion,
referenceVersion: 'v0.107.28', referenceVersion: 'v0.107.28',
referenceVersionBeta: 'v0.108.0-b.33' referenceVersionBeta: 'v0.108.0-b.33'

View file

@ -13,6 +13,7 @@ import 'package:adguard_home_manager/screens/clients/options_modal.dart';
import 'package:adguard_home_manager/widgets/tab_content_list.dart'; import 'package:adguard_home_manager/widgets/tab_content_list.dart';
import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/functions/snackbar.dart';
import 'package:adguard_home_manager/functions/maps_fns.dart';
import 'package:adguard_home_manager/constants/enums.dart'; import 'package:adguard_home_manager/constants/enums.dart';
import 'package:adguard_home_manager/classes/process_modal.dart'; import 'package:adguard_home_manager/classes/process_modal.dart';
import 'package:adguard_home_manager/services/http_requests.dart'; import 'package:adguard_home_manager/services/http_requests.dart';
@ -74,7 +75,13 @@ class _AddedListState extends State<AddedList> {
final result = await postUpdateClient(server: serversProvider.selectedServer!, data: { final result = await postUpdateClient(server: serversProvider.selectedServer!, data: {
'name': client.name, 'name': client.name,
'data': client.toJson() 'data': serverVersionIsAhead(
currentVersion: serversProvider.serverStatus.data!.serverVersion,
referenceVersion: 'v0.107.28',
referenceVersionBeta: 'v0.108.0-b.33'
) == false
? removePropFromMap(client.toJson(), 'safesearch_enabled')
: removePropFromMap(client.toJson(), 'safe_search')
}); });
processModal.close(); processModal.close();
@ -262,7 +269,7 @@ class _AddedListState extends State<AddedList> {
Icon( Icon(
Icons.search_rounded, Icons.search_rounded,
size: 19, size: 19,
color: versionIsGreater( color: serverVersionIsAhead(
currentVersion: serversProvider.serverStatus.data!.serverVersion, currentVersion: serversProvider.serverStatus.data!.serverVersion,
referenceVersion: 'v0.107.28', referenceVersion: 'v0.107.28',
referenceVersionBeta: 'v0.108.0-b.33' referenceVersionBeta: 'v0.108.0-b.33'

View file

@ -85,7 +85,7 @@ class _ClientScreenState extends State<ClientScreen> {
@override @override
void initState() { void initState() {
version = versionIsGreater( version = serverVersionIsAhead(
currentVersion: widget.serverVersion, currentVersion: widget.serverVersion,
referenceVersion: 'v0.107.28', referenceVersion: 'v0.107.28',
referenceVersionBeta: 'v0.108.0-b.33' referenceVersionBeta: 'v0.108.0-b.33'
@ -108,7 +108,7 @@ class _ClientScreenState extends State<ClientScreen> {
safeSearch = widget.client!.safeSearch!; safeSearch = widget.client!.safeSearch!;
} }
else { else {
enableSafeSearch = widget.client!.safesearchEnabled!; enableSafeSearch = widget.client!.safesearchEnabled ?? false;
} }
useGlobalSettingsServices = widget.client!.useGlobalBlockedServices; useGlobalSettingsServices = widget.client!.useGlobalBlockedServices;
blockedServices = widget.client!.blockedServices; blockedServices = widget.client!.blockedServices;
@ -132,7 +132,7 @@ class _ClientScreenState extends State<ClientScreen> {
filteringEnabled: enableFiltering ?? false, filteringEnabled: enableFiltering ?? false,
parentalEnabled: enableParentalControl ?? false, parentalEnabled: enableParentalControl ?? false,
safebrowsingEnabled: enableSafeBrowsing ?? false, safebrowsingEnabled: enableSafeBrowsing ?? false,
safesearchEnabled: version == true ? enableSafeSearch : null, safesearchEnabled: version == false ? enableSafeSearch : null,
safeSearch: version == true ? safeSearch : null, safeSearch: version == true ? safeSearch : null,
useGlobalBlockedServices: useGlobalSettingsServices, useGlobalBlockedServices: useGlobalSettingsServices,
blockedServices: blockedServices, blockedServices: blockedServices,
@ -170,6 +170,7 @@ class _ClientScreenState extends State<ClientScreen> {
enableFiltering = false; enableFiltering = false;
enableSafeBrowsing = false; enableSafeBrowsing = false;
enableParentalControl = false; enableParentalControl = false;
enableSafeSearch = false;
safeSearch.enabled = false; safeSearch.enabled = false;
}); });
} }
@ -180,6 +181,7 @@ class _ClientScreenState extends State<ClientScreen> {
enableFiltering = null; enableFiltering = null;
enableSafeBrowsing = null; enableSafeBrowsing = null;
enableParentalControl = null; enableParentalControl = null;
enableSafeSearch = null;
safeSearch.enabled = false; safeSearch.enabled = false;
}); });
} }
@ -533,7 +535,7 @@ class _ClientScreenState extends State<ClientScreen> {
: null : null
), ),
if ( if (
versionIsGreater( serverVersionIsAhead(
currentVersion: serversProvider.serverStatus.data!.serverVersion, currentVersion: serversProvider.serverStatus.data!.serverVersion,
referenceVersion: 'v0.107.28', referenceVersion: 'v0.107.28',
referenceVersionBeta: 'v0.108.0-b.33' referenceVersionBeta: 'v0.108.0-b.33'
@ -554,7 +556,7 @@ class _ClientScreenState extends State<ClientScreen> {
onTap: openSafeSearchModal, onTap: openSafeSearchModal,
), ),
if ( if (
versionIsGreater( serverVersionIsAhead(
currentVersion: serversProvider.serverStatus.data!.serverVersion, currentVersion: serversProvider.serverStatus.data!.serverVersion,
referenceVersion: 'v0.107.28', referenceVersion: 'v0.107.28',
referenceVersionBeta: 'v0.108.0-b.33' referenceVersionBeta: 'v0.108.0-b.33'

View file

@ -9,6 +9,7 @@ import 'package:adguard_home_manager/screens/clients/client_screen.dart';
import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/functions/snackbar.dart';
import 'package:adguard_home_manager/functions/compare_versions.dart'; import 'package:adguard_home_manager/functions/compare_versions.dart';
import 'package:adguard_home_manager/models/clients.dart'; import 'package:adguard_home_manager/models/clients.dart';
import 'package:adguard_home_manager/functions/maps_fns.dart';
import 'package:adguard_home_manager/services/http_requests.dart'; import 'package:adguard_home_manager/services/http_requests.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';
@ -28,13 +29,13 @@ class ClientsFab extends StatelessWidget {
final result = await postAddClient( final result = await postAddClient(
server: serversProvider.selectedServer!, server: serversProvider.selectedServer!,
data: versionIsGreater( data: serverVersionIsAhead(
currentVersion: serversProvider.serverStatus.data!.serverVersion, currentVersion: serversProvider.serverStatus.data!.serverVersion,
referenceVersion: 'v0.107.28', referenceVersion: 'v0.107.28',
referenceVersionBeta: 'v0.108.0-b.33' referenceVersionBeta: 'v0.108.0-b.33'
) == false ) == false
? client.toJson().remove('safesearch_enabled') ? removePropFromMap(client.toJson(), 'safesearch_enabled')
: client.toJson().remove('safe_search') : removePropFromMap(client.toJson(), 'safe_search')
); );
processModal.close(); processModal.close();

View file

@ -339,7 +339,7 @@ class _SearchClientsWidgetState extends State<SearchClientsWidget> {
Icon( Icon(
Icons.search_rounded, Icons.search_rounded,
size: 19, size: 19,
color: versionIsGreater( color: serverVersionIsAhead(
currentVersion: serversProvider.serverStatus.data!.serverVersion, currentVersion: serversProvider.serverStatus.data!.serverVersion,
referenceVersion: 'v0.107.28', referenceVersion: 'v0.107.28',
referenceVersionBeta: 'v0.108.0-b.33' referenceVersionBeta: 'v0.108.0-b.33'

View file

@ -250,7 +250,7 @@ class _ManagementModalState extends State<ManagementModal> with SingleTickerProv
return Padding( return Padding(
padding: const EdgeInsets.symmetric(horizontal: 24), padding: const EdgeInsets.symmetric(horizontal: 24),
child: versionIsGreater( child: serverVersionIsAhead(
currentVersion: serversProvider.serverStatus.data!.serverVersion, currentVersion: serversProvider.serverStatus.data!.serverVersion,
referenceVersion: 'v0.107.28', referenceVersion: 'v0.107.28',
referenceVersionBeta: 'v0.108.0-b.33' referenceVersionBeta: 'v0.108.0-b.33'

View file

@ -192,7 +192,7 @@ class _LogsWidgetState extends State<LogsWidget> {
ProcessModal processModal = ProcessModal(context: context); ProcessModal processModal = ProcessModal(context: context);
processModal.open(AppLocalizations.of(context)!.updatingSettings); processModal.open(AppLocalizations.of(context)!.updatingSettings);
final result = versionIsGreater( final result = serverVersionIsAhead(
currentVersion: widget.serversProvider.serverStatus.data!.serverVersion, currentVersion: widget.serversProvider.serverStatus.data!.serverVersion,
referenceVersion: 'v0.107.28', referenceVersion: 'v0.107.28',
referenceVersionBeta: 'v0.108.0-b.33' referenceVersionBeta: 'v0.108.0-b.33'

View file

@ -64,7 +64,7 @@ class _LogsConfigModalWidgetState extends State<LogsConfigModalWidget> {
int loadStatus = 0; int loadStatus = 0;
void loadData() async { void loadData() async {
final result = versionIsGreater( final result = serverVersionIsAhead(
currentVersion: widget.serversProvider.serverStatus.data!.serverVersion, currentVersion: widget.serversProvider.serverStatus.data!.serverVersion,
referenceVersion: 'v0.107.28', referenceVersion: 'v0.107.28',
referenceVersionBeta: 'v0.108.0-b.33' referenceVersionBeta: 'v0.108.0-b.33'
@ -89,7 +89,7 @@ class _LogsConfigModalWidgetState extends State<LogsConfigModalWidget> {
@override @override
void initState() { void initState() {
retentionItems = versionIsGreater( retentionItems = serverVersionIsAhead(
currentVersion: widget.serversProvider.serverStatus.data!.serverVersion, currentVersion: widget.serversProvider.serverStatus.data!.serverVersion,
referenceVersion: 'v0.107.28', referenceVersion: 'v0.107.28',
referenceVersionBeta: 'v0.108.0-b.33' referenceVersionBeta: 'v0.108.0-b.33'

View file

@ -72,7 +72,6 @@ class _AccessSettingsWidgetState extends State<AccessSettingsWidget> with Ticker
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final serversProvider = Provider.of<ServersProvider>(context); final serversProvider = Provider.of<ServersProvider>(context);
print(serversProvider.clients.data!.clientsAllowedBlocked!.blockedHosts.length);
return Scaffold( return Scaffold(
body: DefaultTabController( body: DefaultTabController(
length: 3, length: 3,

View file

@ -81,12 +81,12 @@ class _SafeSearchSettingsScreenWidgetState extends State<SafeSearchSettingsScree
} }
else if (widget.serversProvider.serverStatus.loadStatus == 1) { else if (widget.serversProvider.serverStatus.loadStatus == 1) {
generalEnabled = widget.serversProvider.serverStatus.data!.safeSearchEnabled; generalEnabled = widget.serversProvider.serverStatus.data!.safeSearchEnabled;
bingEnabled = widget.serversProvider.serverStatus.data!.safeSeachBing; bingEnabled = widget.serversProvider.serverStatus.data!.safeSeachBing!;
duckduckgoEnabled = widget.serversProvider.serverStatus.data!.safeSearchDuckduckgo; duckduckgoEnabled = widget.serversProvider.serverStatus.data!.safeSearchDuckduckgo!;
googleEnabled = widget.serversProvider.serverStatus.data!.safeSearchGoogle; googleEnabled = widget.serversProvider.serverStatus.data!.safeSearchGoogle!;
pixabayEnabled = widget.serversProvider.serverStatus.data!.safeSearchPixabay; pixabayEnabled = widget.serversProvider.serverStatus.data!.safeSearchPixabay!;
yandexEnabled = widget.serversProvider.serverStatus.data!.safeSearchYandex; yandexEnabled = widget.serversProvider.serverStatus.data!.safeSearchYandex!;
youtubeEnabled = widget.serversProvider.serverStatus.data!.safeSearchYoutube; youtubeEnabled = widget.serversProvider.serverStatus.data!.safeSearchYoutube!;
} }
super.initState(); super.initState();
} }

View file

@ -51,7 +51,7 @@ class Settings extends StatelessWidget {
children: [ children: [
if (serversProvider.selectedServer != null) ...[ if (serversProvider.selectedServer != null) ...[
SectionLabel(label: AppLocalizations.of(context)!.serverSettings), SectionLabel(label: AppLocalizations.of(context)!.serverSettings),
if (versionIsGreater( if (serverVersionIsAhead(
currentVersion: serversProvider.serverStatus.data!.serverVersion, currentVersion: serversProvider.serverStatus.data!.serverVersion,
referenceVersion: 'v0.107.28', referenceVersion: 'v0.107.28',
referenceVersionBeta: 'v0.108.0-b.33' referenceVersionBeta: 'v0.108.0-b.33'