From bf8f5d1e60463d41738860bdc293803396316570 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Wed, 26 Feb 2025 15:26:20 +0800
Subject: [PATCH 1/6] Downgrade dependency injection version
---
Flow.Launcher/Flow.Launcher.csproj | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Flow.Launcher/Flow.Launcher.csproj b/Flow.Launcher/Flow.Launcher.csproj
index f8ace91f871..6c2378f78af 100644
--- a/Flow.Launcher/Flow.Launcher.csproj
+++ b/Flow.Launcher/Flow.Launcher.csproj
@@ -91,8 +91,8 @@
-
-
+
+
all
From 397c6ee639679c078c12db751178159c8a2988f3 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Wed, 26 Feb 2025 15:32:59 +0800
Subject: [PATCH 2/6] Add message box to show exception
---
Flow.Launcher/App.xaml.cs | 81 +++++++++++++++++++++---------
Flow.Launcher/Flow.Launcher.csproj | 1 +
2 files changed, 58 insertions(+), 24 deletions(-)
diff --git a/Flow.Launcher/App.xaml.cs b/Flow.Launcher/App.xaml.cs
index 8374fc9fe9a..277e5dc0ca4 100644
--- a/Flow.Launcher/App.xaml.cs
+++ b/Flow.Launcher/App.xaml.cs
@@ -35,31 +35,64 @@ public partial class App : IDisposable, ISingleInstanceApp
public App()
{
// Initialize settings
- var storage = new FlowLauncherJsonStorage();
- _settings = storage.Load();
- _settings.SetStorage(storage);
- _settings.WMPInstalled = WindowsMediaPlayerHelper.IsWindowsMediaPlayerInstalled();
+ try
+ {
+ var storage = new FlowLauncherJsonStorage();
+ _settings = storage.Load();
+ _settings.SetStorage(storage);
+ _settings.WMPInstalled = WindowsMediaPlayerHelper.IsWindowsMediaPlayerInstalled();
+ }
+ catch (Exception e)
+ {
+ ShowErrorMsgBoxAndFailFast("Cannot load setting storage, please check local data directory", e);
+ return;
+ }
// Configure the dependency injection container
- var host = Host.CreateDefaultBuilder()
- .UseContentRoot(AppContext.BaseDirectory)
- .ConfigureServices(services => services
- .AddSingleton(_ => _settings)
- .AddSingleton(sp => new Updater(sp.GetRequiredService(), Launcher.Properties.Settings.Default.GithubRepo))
- .AddSingleton()
- .AddSingleton()
- .AddSingleton()
- .AddSingleton()
- .AddSingleton()
- .AddSingleton()
- .AddSingleton()
- .AddSingleton()
- ).Build();
- Ioc.Default.ConfigureServices(host.Services);
+ try
+ {
+ var host = Host.CreateDefaultBuilder()
+ .UseContentRoot(AppContext.BaseDirectory)
+ .ConfigureServices(services => services
+ .AddSingleton(_ => _settings)
+ .AddSingleton(sp => new Updater(sp.GetRequiredService(), Launcher.Properties.Settings.Default.GithubRepo))
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ .AddSingleton()
+ ).Build();
+ Ioc.Default.ConfigureServices(host.Services);
+ }
+ catch (Exception e)
+ {
+ ShowErrorMsgBoxAndFailFast("Cannot configure dependency injection container, please open new issue in Flow.Launcher", e);
+ return;
+ }
// Initialize the public API and Settings first
- API = Ioc.Default.GetRequiredService();
- _settings.Initialize();
+ try
+ {
+ API = Ioc.Default.GetRequiredService();
+ _settings.Initialize();
+ }
+ catch (Exception e)
+ {
+ ShowErrorMsgBoxAndFailFast("Cannot initialize api and settings, please open new issue in Flow.Launcher", e);
+ return;
+ }
+ }
+
+ private static void ShowErrorMsgBoxAndFailFast(string message, Exception e)
+ {
+ // Firstly show users the message
+ MessageBox.Show(e.ToString(), message, MessageBoxButton.OK, MessageBoxImage.Error);
+
+ // Flow cannot construct its App instance, so ensure Flow crashes w/ the exception info.
+ Environment.FailFast(message, e);
}
[STAThread]
@@ -132,17 +165,17 @@ private void AutoStartup()
{
// we try to enable auto-startup on first launch, or reenable if it was removed
// but the user still has the setting set
- if (_settings.StartFlowLauncherOnSystemStartup && !Helper.AutoStartup.IsEnabled)
+ if (_settings.StartFlowLauncherOnSystemStartup && !Infrastructure.AutoStartup.IsEnabled)
{
try
{
if (_settings.UseLogonTaskForStartup)
{
- Helper.AutoStartup.EnableViaLogonTask();
+ Infrastructure.AutoStartup.EnableViaLogonTask();
}
else
{
- Helper.AutoStartup.EnableViaRegistry();
+ Infrastructure.AutoStartup.EnableViaRegistry();
}
}
catch (Exception e)
diff --git a/Flow.Launcher/Flow.Launcher.csproj b/Flow.Launcher/Flow.Launcher.csproj
index f2be60f7af6..c2e51584409 100644
--- a/Flow.Launcher/Flow.Launcher.csproj
+++ b/Flow.Launcher/Flow.Launcher.csproj
@@ -91,6 +91,7 @@
+
From 7cc32f3021549c39eb0943a8c1cc7c6908885f71 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Wed, 26 Feb 2025 15:40:18 +0800
Subject: [PATCH 3/6] Fix build issue
---
Flow.Launcher/App.xaml.cs | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/Flow.Launcher/App.xaml.cs b/Flow.Launcher/App.xaml.cs
index 277e5dc0ca4..447eca79267 100644
--- a/Flow.Launcher/App.xaml.cs
+++ b/Flow.Launcher/App.xaml.cs
@@ -165,17 +165,17 @@ private void AutoStartup()
{
// we try to enable auto-startup on first launch, or reenable if it was removed
// but the user still has the setting set
- if (_settings.StartFlowLauncherOnSystemStartup && !Infrastructure.AutoStartup.IsEnabled)
+ if (_settings.StartFlowLauncherOnSystemStartup && !Helper.AutoStartup.IsEnabled)
{
try
{
if (_settings.UseLogonTaskForStartup)
{
- Infrastructure.AutoStartup.EnableViaLogonTask();
+ Helper.AutoStartup.EnableViaLogonTask();
}
else
{
- Infrastructure.AutoStartup.EnableViaRegistry();
+ Helper.AutoStartup.EnableViaRegistry();
}
}
catch (Exception e)
From fb9980e90a87add97d37d6a48bdf276e171e094c Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Thu, 27 Feb 2025 10:39:57 +0800
Subject: [PATCH 4/6] Upgrade nuget packages
---
Flow.Launcher/Flow.Launcher.csproj | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/Flow.Launcher/Flow.Launcher.csproj b/Flow.Launcher/Flow.Launcher.csproj
index c2e51584409..cc43bd2ac7d 100644
--- a/Flow.Launcher/Flow.Launcher.csproj
+++ b/Flow.Launcher/Flow.Launcher.csproj
@@ -91,9 +91,8 @@
-
-
-
+
+
all
@@ -105,7 +104,7 @@
-
+
From a153bb6baef1fe0a5c9ab5e4bfe25ed771ceed44 Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Thu, 27 Feb 2025 12:38:45 +0800
Subject: [PATCH 5/6] Test Jack251970.TaskScheduler package
---
Flow.Launcher/Flow.Launcher.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Flow.Launcher/Flow.Launcher.csproj b/Flow.Launcher/Flow.Launcher.csproj
index cc43bd2ac7d..d77847bef96 100644
--- a/Flow.Launcher/Flow.Launcher.csproj
+++ b/Flow.Launcher/Flow.Launcher.csproj
@@ -104,7 +104,7 @@
-
+
From 406b1961b2b837512bec4ce74c0cc7ea4b07e7ea Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Thu, 27 Feb 2025 13:25:21 +0800
Subject: [PATCH 6/6] Test updated Jack251970.TaskScheduler package
---
Flow.Launcher/Flow.Launcher.csproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Flow.Launcher/Flow.Launcher.csproj b/Flow.Launcher/Flow.Launcher.csproj
index d77847bef96..33d13614f8a 100644
--- a/Flow.Launcher/Flow.Launcher.csproj
+++ b/Flow.Launcher/Flow.Launcher.csproj
@@ -104,7 +104,7 @@
-
+