Skip to content

Commit 9c8e7a9

Browse files
committed
Improve code quality
1 parent 8537114 commit 9c8e7a9

File tree

7 files changed

+87
-22
lines changed

7 files changed

+87
-22
lines changed

Flow.Launcher/Resources/Pages/WelcomePage1.xaml.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,19 @@ namespace Flow.Launcher.Resources.Pages
1010
public partial class WelcomePage1
1111
{
1212
public Settings Settings { get; private set; }
13+
private WelcomeViewModel _viewModel;
1314

1415
protected override void OnNavigatedTo(NavigationEventArgs e)
1516
{
1617
if (!IsInitialized)
1718
{
1819
Settings = Ioc.Default.GetRequiredService<Settings>();
20+
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
1921
InitializeComponent();
2022
}
2123
// Sometimes the navigation is not triggered by button click,
2224
// so we need to reset the page number
23-
Ioc.Default.GetRequiredService<WelcomeViewModel>().PageNum = 1;
25+
_viewModel.PageNum = 1;
2426
base.OnNavigatedTo(e);
2527
}
2628

Flow.Launcher/Resources/Pages/WelcomePage2.xaml.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,19 @@ namespace Flow.Launcher.Resources.Pages
1212
public partial class WelcomePage2
1313
{
1414
public Settings Settings { get; private set; }
15+
private WelcomeViewModel _viewModel;
1516

1617
protected override void OnNavigatedTo(NavigationEventArgs e)
1718
{
1819
if (!IsInitialized)
1920
{
2021
Settings = Ioc.Default.GetRequiredService<Settings>();
22+
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
2123
InitializeComponent();
2224
}
2325
// Sometimes the navigation is not triggered by button click,
2426
// so we need to reset the page number
25-
Ioc.Default.GetRequiredService<WelcomeViewModel>().PageNum = 2;
27+
_viewModel.PageNum = 2;
2628
base.OnNavigatedTo(e);
2729
}
2830

Flow.Launcher/Resources/Pages/WelcomePage3.xaml.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@ namespace Flow.Launcher.Resources.Pages
88
public partial class WelcomePage3
99
{
1010
public Settings Settings { get; private set; }
11+
private WelcomeViewModel _viewModel;
1112

1213
protected override void OnNavigatedTo(NavigationEventArgs e)
1314
{
1415
if (!IsInitialized)
1516
{
1617
Settings = Ioc.Default.GetRequiredService<Settings>();
18+
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
1719
InitializeComponent();
1820
}
1921
// Sometimes the navigation is not triggered by button click,
2022
// so we need to reset the page number
21-
Ioc.Default.GetRequiredService<WelcomeViewModel>().PageNum = 3;
23+
_viewModel.PageNum = 3;
2224
base.OnNavigatedTo(e);
2325
}
2426
}

Flow.Launcher/Resources/Pages/WelcomePage4.xaml.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@ namespace Flow.Launcher.Resources.Pages
88
public partial class WelcomePage4
99
{
1010
public Settings Settings { get; private set; }
11+
private WelcomeViewModel _viewModel;
1112

1213
protected override void OnNavigatedTo(NavigationEventArgs e)
1314
{
1415
if (!IsInitialized)
1516
{
1617
Settings = Ioc.Default.GetRequiredService<Settings>();
18+
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
1719
InitializeComponent();
1820
}
1921
// Sometimes the navigation is not triggered by button click,
2022
// so we need to reset the page number
21-
Ioc.Default.GetRequiredService<WelcomeViewModel>().PageNum = 4;
23+
_viewModel.PageNum = 4;
2224
base.OnNavigatedTo(e);
2325
}
2426
}

Flow.Launcher/Resources/Pages/WelcomePage5.xaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,15 @@
9898
Style="{DynamicResource DefaultCheckBoxStyle}"
9999
Unchecked="OnAutoStartupUncheck" />
100100
</StackPanel>
101+
<StackPanel Margin="0 30 0 0" Orientation="Horizontal">
102+
<CheckBox
103+
Checked="OnUseLogonTaskChecked"
104+
Content="{DynamicResource useLogonTaskForStartup}"
105+
IsChecked="{Binding Settings.UseLogonTaskForStartup}"
106+
Style="{DynamicResource DefaultCheckBoxStyle}"
107+
ToolTip="{DynamicResource useLogonTaskForStartupTooltip}"
108+
Unchecked="OnUseLogonTaskUncheck" />
109+
</StackPanel>
101110
<StackPanel Margin="0 0 0 0" Orientation="Horizontal">
102111
<CheckBox
103112
Checked="OnHideOnStartupChecked"

Flow.Launcher/Resources/Pages/WelcomePage5.xaml.cs

Lines changed: 65 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,107 @@
1-
using System.Windows;
1+
using System;
2+
using System.Windows;
23
using System.Windows.Navigation;
34
using CommunityToolkit.Mvvm.DependencyInjection;
4-
using Flow.Launcher.Infrastructure;
5+
using Flow.Launcher.Helper;
56
using Flow.Launcher.Infrastructure.UserSettings;
67
using Flow.Launcher.ViewModel;
7-
using Microsoft.Win32;
88

99
namespace Flow.Launcher.Resources.Pages
1010
{
1111
public partial class WelcomePage5
1212
{
1313
public Settings Settings { get; private set; }
14-
15-
private const string StartupPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
16-
public bool HideOnStartup { get; set; }
14+
private WelcomeViewModel _viewModel;
1715

1816
protected override void OnNavigatedTo(NavigationEventArgs e)
1917
{
2018
if (!IsInitialized)
2119
{
2220
Settings = Ioc.Default.GetRequiredService<Settings>();
21+
_viewModel = Ioc.Default.GetRequiredService<WelcomeViewModel>();
2322
InitializeComponent();
2423
}
2524
// Sometimes the navigation is not triggered by button click,
2625
// so we need to reset the page number
27-
Ioc.Default.GetRequiredService<WelcomeViewModel>().PageNum = 5;
26+
_viewModel.PageNum = 5;
2827
base.OnNavigatedTo(e);
2928
}
3029

3130
private void OnAutoStartupChecked(object sender, RoutedEventArgs e)
3231
{
33-
SetStartup();
32+
ChangeAutoStartup(true);
3433
}
34+
3535
private void OnAutoStartupUncheck(object sender, RoutedEventArgs e)
3636
{
37-
RemoveStartup();
37+
ChangeAutoStartup(false);
38+
}
39+
40+
private void ChangeAutoStartup(bool value)
41+
{
42+
Settings.StartFlowLauncherOnSystemStartup = value;
43+
try
44+
{
45+
if (value)
46+
{
47+
if (Settings.UseLogonTaskForStartup)
48+
{
49+
AutoStartup.ChangeToViaLogonTask();
50+
}
51+
else
52+
{
53+
AutoStartup.ChangeToViaRegistry();
54+
}
55+
}
56+
else
57+
{
58+
AutoStartup.DisableViaLogonTaskAndRegistry();
59+
}
60+
}
61+
catch (Exception e)
62+
{
63+
App.API.ShowMsg(App.API.GetTranslation("setAutoStartFailed"), e.Message);
64+
}
65+
}
66+
67+
private void OnUseLogonTaskChecked(object sender, RoutedEventArgs e)
68+
{
69+
ChangeUseLogonTask(true);
3870
}
3971

40-
private void RemoveStartup()
72+
private void OnUseLogonTaskUncheck(object sender, RoutedEventArgs e)
4173
{
42-
using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true);
43-
key?.DeleteValue(Constant.FlowLauncher, false);
44-
Settings.StartFlowLauncherOnSystemStartup = false;
74+
ChangeUseLogonTask(false);
4575
}
46-
private void SetStartup()
76+
77+
private void ChangeUseLogonTask(bool value)
4778
{
48-
using var key = Registry.CurrentUser.OpenSubKey(StartupPath, true);
49-
key?.SetValue(Constant.FlowLauncher, Constant.ExecutablePath);
50-
Settings.StartFlowLauncherOnSystemStartup = true;
79+
Settings.UseLogonTaskForStartup = value;
80+
if (Settings.StartFlowLauncherOnSystemStartup)
81+
{
82+
try
83+
{
84+
if (value)
85+
{
86+
AutoStartup.ChangeToViaLogonTask();
87+
}
88+
else
89+
{
90+
AutoStartup.ChangeToViaRegistry();
91+
}
92+
}
93+
catch (Exception e)
94+
{
95+
App.API.ShowMsg(App.API.GetTranslation("setAutoStartFailed"), e.Message);
96+
}
97+
}
5198
}
5299

53100
private void OnHideOnStartupChecked(object sender, RoutedEventArgs e)
54101
{
55102
Settings.HideOnStartup = true;
56103
}
104+
57105
private void OnHideOnStartupUnchecked(object sender, RoutedEventArgs e)
58106
{
59107
Settings.HideOnStartup = false;

Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public bool UseLogonTaskForStartup
7979
{
8080
try
8181
{
82-
if (UseLogonTaskForStartup)
82+
if (value)
8383
{
8484
AutoStartup.ChangeToViaLogonTask();
8585
}

0 commit comments

Comments
 (0)