diff --git a/lib/screens/pages/updates_page.dart b/lib/screens/pages/updates_page.dart index 6e0c11c..a0e6107 100644 --- a/lib/screens/pages/updates_page.dart +++ b/lib/screens/pages/updates_page.dart @@ -56,8 +56,8 @@ class _UpdatesPageState extends State { function: (value) { _wuPageBool.value = value; value - ? _updatesService.enableVisibilityWU() - : _updatesService.disableVisibilityWU(); + ? _updatesService.disableVisibilityWU() + : _updatesService.enableVisibilityWU(); }, ), CardHighlightSwitch( diff --git a/lib/services/security_service.dart b/lib/services/security_service.dart index fcc472c..94b18b4 100644 --- a/lib/services/security_service.dart +++ b/lib/services/security_service.dart @@ -1,7 +1,5 @@ import 'dart:io'; -import 'package:collection/collection.dart'; -import 'package:mixin_logger/mixin_logger.dart'; import 'package:revitool/services/network_service.dart'; import 'package:revitool/services/win_package_service.dart'; import 'package:win32_registry/win32_registry.dart'; @@ -9,7 +7,7 @@ import 'package:win32_registry/win32_registry.dart'; import '../utils.dart'; import 'registry_utils_service.dart'; import 'setup_service.dart'; -import 'package:process_run/shell_run.dart'; +import 'package:process_run/shell.dart'; import 'package:path/path.dart' as p; class SecurityService implements SetupService { diff --git a/lib/services/updates_service.dart b/lib/services/updates_service.dart index b36274b..ca34faf 100644 --- a/lib/services/updates_service.dart +++ b/lib/services/updates_service.dart @@ -4,8 +4,6 @@ import 'package:win32_registry/win32_registry.dart'; import 'registry_utils_service.dart'; class UpdatesService implements SetupService { - - static const _instance = UpdatesService._private(); factory UpdatesService() { return _instance; @@ -16,8 +14,7 @@ class UpdatesService implements SetupService { void recommendation() {} bool get statusPauseUpdatesWU { - return RegistryUtilsService - .readString( + return RegistryUtilsService.readString( RegistryHive.localMachine, r'SOFTWARE\Microsoft\WindowsUpdate\UX\Settings', "PauseUpdatesExpiryTime") @@ -107,8 +104,7 @@ class UpdatesService implements SetupService { } bool get statusVisibilityWU { - return RegistryUtilsService - .readString( + return RegistryUtilsService.readString( RegistryHive.localMachine, r'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer', 'SettingsPageVisibility') @@ -117,19 +113,44 @@ class UpdatesService implements SetupService { } void enableVisibilityWU() { + final currentValue = RegistryUtilsService.readString( + RegistryHive.localMachine, + r'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer', + 'SettingsPageVisibility'); + RegistryUtilsService.writeString( Registry.localMachine, r'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer', 'SettingsPageVisibility', - "hide:cortana;privacy-automaticfiledownloads;privacy-feedback;windowsinsider-optin;windowsinsider;windowsupdate"); + currentValue!.endsWith(";") + ? currentValue.replaceAll("windowsupdate;", "") + : currentValue.replaceAll("windowsupdate", "")); } void disableVisibilityWU() { - RegistryUtilsService.writeString( - Registry.localMachine, + final currentValue = RegistryUtilsService.readString( + RegistryHive.localMachine, r'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer', - 'SettingsPageVisibility', - "hide:cortana;privacy-automaticfiledownloads;privacy-feedback;"); + 'SettingsPageVisibility'); + + if (currentValue == null || currentValue.isEmpty) { + RegistryUtilsService.writeString( + Registry.localMachine, + r'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer', + 'SettingsPageVisibility', + "hide:windowsupdate"); + return; + } + if (!currentValue.contains("windowsupdate")) { + RegistryUtilsService.writeString( + Registry.localMachine, + r'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer', + 'SettingsPageVisibility', + currentValue.endsWith(";") || currentValue.endsWith(":") + ? "${currentValue}windowsupdate;" + : "$currentValue;windowsupdate;"); + return; + } } bool get statusDriversWU { diff --git a/lib/widgets/download_widget.dart b/lib/widgets/download_widget.dart index 852a597..e37d4ea 100644 --- a/lib/widgets/download_widget.dart +++ b/lib/widgets/download_widget.dart @@ -5,7 +5,6 @@ import 'package:fluent_ui/fluent_ui.dart'; import 'package:dio/dio.dart'; import 'package:revitool/extensions.dart'; import 'package:revitool/models/ms_store/packages_info.dart'; -import 'package:revitool/services/network_service.dart'; import '../services/msstore_service.dart'; import 'dialogs/msstore_dialogs.dart';