Skip to content

Commit

Permalink
refactor logic for enabling/disabling Windows Update page in Settings
Browse files Browse the repository at this point in the history
  • Loading branch information
melo936 committed Jun 2, 2024
1 parent f66b65a commit 0891319
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 17 deletions.
4 changes: 2 additions & 2 deletions lib/screens/pages/updates_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ class _UpdatesPageState extends State<UpdatesPage> {
function: (value) {
_wuPageBool.value = value;
value
? _updatesService.enableVisibilityWU()
: _updatesService.disableVisibilityWU();
? _updatesService.disableVisibilityWU()
: _updatesService.enableVisibilityWU();
},
),
CardHighlightSwitch(
Expand Down
4 changes: 1 addition & 3 deletions lib/services/security_service.dart
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
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';

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 {
Expand Down
43 changes: 32 additions & 11 deletions lib/services/updates_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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")
Expand Down Expand Up @@ -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')
Expand All @@ -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 {
Expand Down
1 change: 0 additions & 1 deletion lib/widgets/download_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down

0 comments on commit 0891319

Please sign in to comment.