Skip to content

Commit c06042f

Browse files
committed
Fix API instance create twice issue & Make PluginManager.API private
1 parent 65f85cf commit c06042f

File tree

6 files changed

+12
-12
lines changed

6 files changed

+12
-12
lines changed

Flow.Launcher.Core/Plugin/PluginManager.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ public static class PluginManager
2929
public static readonly HashSet<PluginPair> GlobalPlugins = new();
3030
public static readonly Dictionary<string, PluginPair> NonGlobalPlugins = new();
3131

32-
public static IPublicAPI API { get; private set; } = Ioc.Default.GetRequiredService<IPublicAPI>();
32+
// We should not initialize API in static constructor because it will create another API instance
33+
private static IPublicAPI api = null;
34+
private static IPublicAPI API => api ??= Ioc.Default.GetRequiredService<IPublicAPI>();
3335

3436
private static PluginsSettings Settings;
3537
private static List<PluginMetadata> _metadatas;

Flow.Launcher/MainWindow.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ private void CheckFirstLaunch()
438438
if (_settings.FirstLaunch)
439439
{
440440
_settings.FirstLaunch = false;
441-
PluginManager.API.SaveAppAllSettings();
441+
App.API.SaveAppAllSettings();
442442
OpenWelcomeWindow();
443443
}
444444
}

Flow.Launcher/SettingPages/ViewModels/SettingsPaneAboutViewModel.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
using System.Windows;
77
using CommunityToolkit.Mvvm.Input;
88
using Flow.Launcher.Core;
9-
using Flow.Launcher.Core.Plugin;
109
using Flow.Launcher.Core.Resource;
1110
using Flow.Launcher.Infrastructure;
1211
using Flow.Launcher.Infrastructure.UserSettings;
@@ -77,15 +76,15 @@ private void AskClearLogFolderConfirmation()
7776
[RelayCommand]
7877
private void OpenSettingsFolder()
7978
{
80-
PluginManager.API.OpenDirectory(Path.Combine(DataLocation.DataDirectory(), Constant.Settings));
79+
App.API.OpenDirectory(Path.Combine(DataLocation.DataDirectory(), Constant.Settings));
8180
}
8281

8382
[RelayCommand]
8483
private void OpenParentOfSettingsFolder(object parameter)
8584
{
8685
string settingsFolderPath = Path.Combine(DataLocation.DataDirectory(), Constant.Settings);
8786
string parentFolderPath = Path.GetDirectoryName(settingsFolderPath);
88-
PluginManager.API.OpenDirectory(parentFolderPath);
87+
App.API.OpenDirectory(parentFolderPath);
8988
}
9089

9190

Flow.Launcher/SettingPages/Views/SettingsPanePluginStore.xaml.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
using System.Windows.Data;
44
using System.Windows.Input;
55
using System.Windows.Navigation;
6-
using Flow.Launcher.Core.Plugin;
76
using Flow.Launcher.SettingPages.ViewModels;
87
using Flow.Launcher.ViewModel;
98

@@ -49,7 +48,7 @@ private void SettingsPanePlugins_OnKeyDown(object sender, KeyEventArgs e)
4948

5049
private void Hyperlink_OnRequestNavigate(object sender, RequestNavigateEventArgs e)
5150
{
52-
PluginManager.API.OpenUrl(e.Uri.AbsoluteUri);
51+
App.API.OpenUrl(e.Uri.AbsoluteUri);
5352
e.Handled = true;
5453
}
5554

Flow.Launcher/ViewModel/MainViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,7 @@ private void OpenSetting()
442442
[RelayCommand]
443443
private void SelectHelp()
444444
{
445-
PluginManager.API.OpenUrl("https://www.flowlauncher.com/docs/#/usage-tips");
445+
App.API.OpenUrl("https://www.flowlauncher.com/docs/#/usage-tips");
446446
}
447447

448448
[RelayCommand]

Flow.Launcher/ViewModel/PluginViewModel.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,20 +134,20 @@ private void OpenPluginDirectory()
134134
{
135135
var directory = PluginPair.Metadata.PluginDirectory;
136136
if (!string.IsNullOrEmpty(directory))
137-
PluginManager.API.OpenDirectory(directory);
137+
App.API.OpenDirectory(directory);
138138
}
139139

140140
[RelayCommand]
141141
private void OpenSourceCodeLink()
142142
{
143-
PluginManager.API.OpenUrl(PluginPair.Metadata.Website);
143+
App.API.OpenUrl(PluginPair.Metadata.Website);
144144
}
145145

146146
[RelayCommand]
147147
private void OpenDeletePluginWindow()
148148
{
149-
PluginManager.API.ChangeQuery($"{PluginManagerActionKeyword} uninstall {PluginPair.Metadata.Name}".Trim(), true);
150-
PluginManager.API.ShowMainWindow();
149+
App.API.ChangeQuery($"{PluginManagerActionKeyword} uninstall {PluginPair.Metadata.Name}".Trim(), true);
150+
App.API.ShowMainWindow();
151151
}
152152

153153
public static bool IsActionKeywordRegistered(string newActionKeyword) => PluginManager.ActionKeywordRegistered(newActionKeyword);

0 commit comments

Comments
 (0)