Skip to content

Commit 286ae93

Browse files
committed
Improved environment initialization - checks the EV first to avoid an expensive setter operation if it's not needed
1 parent f3e68d7 commit 286ae93

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

CompactGUI/ViewModels/SettingsViewModel.vb

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,7 @@ Public Class SettingsViewModel : Inherits ObservableObject
1717

1818
Await AddExecutableToRegistry()
1919
Await SetEnv()
20-
If SettingsHandler.AppSettings.IsContextIntegrated Then
21-
Await Settings.AddContextMenus
22-
Else
23-
Await Settings.RemoveContextMenus
24-
End If
20+
Await If(SettingsHandler.AppSettings.IsContextIntegrated, Settings.AddContextMenus, Settings.RemoveContextMenus)
2521

2622
If SettingsHandler.AppSettings.IsStartMenuEnabled Then
2723
Settings.CreateStartMenuShortcut()
@@ -32,7 +28,10 @@ Public Class SettingsViewModel : Inherits ObservableObject
3228
End Function
3329

3430
Private Shared Async Function SetEnv() As Task
35-
Await Task.Run(Sub() Environment.SetEnvironmentVariable("IridiumIO", IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "IridiumIO"), EnvironmentVariableTarget.User))
31+
Dim desiredValue = IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "IridiumIO")
32+
Dim currentValue = Environment.GetEnvironmentVariable("IridiumIO", EnvironmentVariableTarget.User)
33+
If currentValue <> desiredValue Then Await Task.Run(Sub() Environment.SetEnvironmentVariable("IridiumIO", desiredValue, EnvironmentVariableTarget.User))
34+
3635
End Function
3736

3837
Private Sub SettingsPropertyChanged()

0 commit comments

Comments
 (0)