Skip to content

Commit 5e1ec2b

Browse files
committed
fix(avalonia): update PluginManager API calls for Release build
- Replace PluginManager.AllPlugins with GetAllLoadedPlugins() - Replace PluginManager.NonGlobalPlugins with GetNonGlobalPlugins() - Fix InitializePluginsAsync to pass IResultUpdateRegister parameter - Fix QueryBuilder.Build to pass required 3 parameters - Implement IResultUpdateRegister interface on MainViewModel
1 parent c51c029 commit 5e1ec2b

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

Flow.Launcher.Avalonia/App.axaml.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,9 @@ private async Task InitializePluginsAsync()
128128
{
129129
Log.Info(ClassName, "Loading plugins...");
130130
PluginManager.LoadPlugins(_settings!.PluginSettings);
131-
Log.Info(ClassName, $"Loaded {PluginManager.AllPlugins.Count} plugins");
131+
Log.Info(ClassName, $"Loaded {PluginManager.GetAllLoadedPlugins().Count} plugins");
132132

133-
await PluginManager.InitializePluginsAsync();
133+
await PluginManager.InitializePluginsAsync(_mainVM!);
134134
Log.Info(ClassName, "Plugins initialized");
135135

136136
// Update plugin translations after they are initialized

Flow.Launcher.Avalonia/ViewModel/MainViewModel.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public enum ActiveView
2828
/// <summary>
2929
/// MainViewModel for Avalonia - minimal implementation for plugin queries.
3030
/// </summary>
31-
public partial class MainViewModel : ObservableObject
31+
public partial class MainViewModel : ObservableObject, IResultUpdateRegister
3232
{
3333
private static readonly string ClassName = nameof(MainViewModel);
3434
private readonly Settings _settings;
@@ -190,6 +190,17 @@ public void OnPluginsReady()
190190
_ = QueryAsync();
191191
}
192192

193+
/// <summary>
194+
/// Register a plugin to receive results updated event.
195+
/// Required by IResultUpdateRegister for plugin initialization.
196+
/// </summary>
197+
public void RegisterResultsUpdatedEvent(PluginPair pair)
198+
{
199+
// Avalonia uses a simplified result update model - plugins that implement
200+
// IResultUpdated will have their events registered here when needed.
201+
// For now, this is a stub as the basic query flow handles result updates.
202+
}
203+
193204
public void RequestHide() => HideRequested?.Invoke();
194205

195206
/// <summary>
@@ -277,7 +288,7 @@ private async Task QueryAsync()
277288

278289
try
279290
{
280-
var query = QueryBuilder.Build(queryText, PluginManager.NonGlobalPlugins);
291+
var query = QueryBuilder.Build(QueryText, queryText, PluginManager.GetNonGlobalPlugins());
281292
if (query == null)
282293
{
283294
Results.Clear();

Flow.Launcher.Avalonia/ViewModel/SettingPages/PluginsSettingsViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public PluginsSettingsViewModel()
6464

6565
private void LoadPlugins()
6666
{
67-
var allPlugins = PluginManager.AllPlugins;
67+
var allPlugins = PluginManager.GetAllLoadedPlugins();
6868
foreach (var plugin in allPlugins.OrderBy(p => p.Metadata.Disabled).ThenBy(p => p.Metadata.Name))
6969
{
7070
Plugins.Add(new PluginItemViewModel(plugin, _settings));

0 commit comments

Comments
 (0)