Skip to content

Commit 010b6dd

Browse files
authored
Merge branch 'dev' into code_quality
2 parents 81ae8a4 + d3824f2 commit 010b6dd

File tree

34 files changed

+1437
-57
lines changed

34 files changed

+1437
-57
lines changed

.github/workflows/default_plugins.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
- name: Setup .NET
1515
uses: actions/setup-dotnet@v4
1616
with:
17-
dotnet-version: 7.0.x
17+
dotnet-version: 9.0.x
1818

1919
- name: Update Plugins To Production Version
2020
run: |
@@ -42,7 +42,7 @@ jobs:
4242

4343
- name: Build BrowserBookmark
4444
run: |
45-
dotnet publish 'Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj' --framework net7.0-windows -c Release -o "Flow.Launcher.Plugin.BrowserBookmark"
45+
dotnet publish 'Plugins/Flow.Launcher.Plugin.BrowserBookmark/Flow.Launcher.Plugin.BrowserBookmark.csproj' --framework net9.0-windows -c Release -o "Flow.Launcher.Plugin.BrowserBookmark"
4646
7z a -tzip "Flow.Launcher.Plugin.BrowserBookmark.zip" "./Flow.Launcher.Plugin.BrowserBookmark/*"
4747
rm -r "Flow.Launcher.Plugin.BrowserBookmark"
4848
@@ -66,7 +66,7 @@ jobs:
6666

6767
- name: Build Calculator
6868
run: |
69-
dotnet publish 'Plugins/Flow.Launcher.Plugin.Calculator/Flow.Launcher.Plugin.Calculator.csproj' --framework net7.0-windows -c Release -o "Flow.Launcher.Plugin.Calculator"
69+
dotnet publish 'Plugins/Flow.Launcher.Plugin.Calculator/Flow.Launcher.Plugin.Calculator.csproj' --framework net9.0-windows -c Release -o "Flow.Launcher.Plugin.Calculator"
7070
7z a -tzip "Flow.Launcher.Plugin.Calculator.zip" "./Flow.Launcher.Plugin.Calculator/*"
7171
rm -r "Flow.Launcher.Plugin.Calculator"
7272
@@ -90,7 +90,7 @@ jobs:
9090

9191
- name: Build Explorer
9292
run: |
93-
dotnet publish 'Plugins/Flow.Launcher.Plugin.Explorer/Flow.Launcher.Plugin.Explorer.csproj' --framework net7.0-windows -c Release -o "Flow.Launcher.Plugin.Explorer"
93+
dotnet publish 'Plugins/Flow.Launcher.Plugin.Explorer/Flow.Launcher.Plugin.Explorer.csproj' --framework net9.0-windows -c Release -o "Flow.Launcher.Plugin.Explorer"
9494
7z a -tzip "Flow.Launcher.Plugin.Explorer.zip" "./Flow.Launcher.Plugin.Explorer/*"
9595
rm -r "Flow.Launcher.Plugin.Explorer"
9696
@@ -114,7 +114,7 @@ jobs:
114114

115115
- name: Build PluginIndicator
116116
run: |
117-
dotnet publish 'Plugins/Flow.Launcher.Plugin.PluginIndicator/Flow.Launcher.Plugin.PluginIndicator.csproj' --framework net7.0-windows -c Release -o "Flow.Launcher.Plugin.PluginIndicator"
117+
dotnet publish 'Plugins/Flow.Launcher.Plugin.PluginIndicator/Flow.Launcher.Plugin.PluginIndicator.csproj' --framework net9.0-windows -c Release -o "Flow.Launcher.Plugin.PluginIndicator"
118118
7z a -tzip "Flow.Launcher.Plugin.PluginIndicator.zip" "./Flow.Launcher.Plugin.PluginIndicator/*"
119119
rm -r "Flow.Launcher.Plugin.PluginIndicator"
120120
@@ -138,7 +138,7 @@ jobs:
138138

139139
- name: Build PluginsManager
140140
run: |
141-
dotnet publish 'Plugins/Flow.Launcher.Plugin.PluginsManager/Flow.Launcher.Plugin.PluginsManager.csproj' --framework net7.0-windows -c Release -o "Flow.Launcher.Plugin.PluginsManager"
141+
dotnet publish 'Plugins/Flow.Launcher.Plugin.PluginsManager/Flow.Launcher.Plugin.PluginsManager.csproj' --framework net9.0-windows -c Release -o "Flow.Launcher.Plugin.PluginsManager"
142142
7z a -tzip "Flow.Launcher.Plugin.PluginsManager.zip" "./Flow.Launcher.Plugin.PluginsManager/*"
143143
rm -r "Flow.Launcher.Plugin.PluginsManager"
144144
@@ -162,7 +162,7 @@ jobs:
162162

163163
- name: Build ProcessKiller
164164
run: |
165-
dotnet publish 'Plugins/Flow.Launcher.Plugin.ProcessKiller/Flow.Launcher.Plugin.ProcessKiller.csproj' --framework net7.0-windows -c Release -o "Flow.Launcher.Plugin.ProcessKiller"
165+
dotnet publish 'Plugins/Flow.Launcher.Plugin.ProcessKiller/Flow.Launcher.Plugin.ProcessKiller.csproj' --framework net9.0-windows -c Release -o "Flow.Launcher.Plugin.ProcessKiller"
166166
7z a -tzip "Flow.Launcher.Plugin.ProcessKiller.zip" "./Flow.Launcher.Plugin.ProcessKiller/*"
167167
rm -r "Flow.Launcher.Plugin.ProcessKiller"
168168
@@ -186,7 +186,7 @@ jobs:
186186

187187
- name: Build Program
188188
run: |
189-
dotnet publish 'Plugins/Flow.Launcher.Plugin.Program/Flow.Launcher.Plugin.Program.csproj' --framework net7.0-windows10.0.19041.0 -c Release -o "Flow.Launcher.Plugin.Program"
189+
dotnet publish 'Plugins/Flow.Launcher.Plugin.Program/Flow.Launcher.Plugin.Program.csproj' --framework net9.0-windows10.0.19041.0 -c Release -o "Flow.Launcher.Plugin.Program"
190190
7z a -tzip "Flow.Launcher.Plugin.Program.zip" "./Flow.Launcher.Plugin.Program/*"
191191
rm -r "Flow.Launcher.Plugin.Program"
192192
@@ -210,7 +210,7 @@ jobs:
210210

211211
- name: Build Shell
212212
run: |
213-
dotnet publish 'Plugins/Flow.Launcher.Plugin.Shell/Flow.Launcher.Plugin.Shell.csproj' --framework net7.0-windows -c Release -o "Flow.Launcher.Plugin.Shell"
213+
dotnet publish 'Plugins/Flow.Launcher.Plugin.Shell/Flow.Launcher.Plugin.Shell.csproj' --framework net9.0-windows -c Release -o "Flow.Launcher.Plugin.Shell"
214214
7z a -tzip "Flow.Launcher.Plugin.Shell.zip" "./Flow.Launcher.Plugin.Shell/*"
215215
rm -r "Flow.Launcher.Plugin.Shell"
216216
@@ -234,7 +234,7 @@ jobs:
234234

235235
- name: Build Sys
236236
run: |
237-
dotnet publish 'Plugins/Flow.Launcher.Plugin.Sys/Flow.Launcher.Plugin.Sys.csproj' --framework net7.0-windows -c Release -o "Flow.Launcher.Plugin.Sys"
237+
dotnet publish 'Plugins/Flow.Launcher.Plugin.Sys/Flow.Launcher.Plugin.Sys.csproj' --framework net9.0-windows -c Release -o "Flow.Launcher.Plugin.Sys"
238238
7z a -tzip "Flow.Launcher.Plugin.Sys.zip" "./Flow.Launcher.Plugin.Sys/*"
239239
rm -r "Flow.Launcher.Plugin.Sys"
240240
@@ -258,7 +258,7 @@ jobs:
258258

259259
- name: Build Url
260260
run: |
261-
dotnet publish 'Plugins/Flow.Launcher.Plugin.Url/Flow.Launcher.Plugin.Url.csproj' --framework net7.0-windows -c Release -o "Flow.Launcher.Plugin.Url"
261+
dotnet publish 'Plugins/Flow.Launcher.Plugin.Url/Flow.Launcher.Plugin.Url.csproj' --framework net9.0-windows -c Release -o "Flow.Launcher.Plugin.Url"
262262
7z a -tzip "Flow.Launcher.Plugin.Url.zip" "./Flow.Launcher.Plugin.Url/*"
263263
rm -r "Flow.Launcher.Plugin.Url"
264264
@@ -282,7 +282,7 @@ jobs:
282282

283283
- name: Build WebSearch
284284
run: |
285-
dotnet publish 'Plugins/Flow.Launcher.Plugin.WebSearch/Flow.Launcher.Plugin.WebSearch.csproj' --framework net7.0-windows -c Release -o "Flow.Launcher.Plugin.WebSearch"
285+
dotnet publish 'Plugins/Flow.Launcher.Plugin.WebSearch/Flow.Launcher.Plugin.WebSearch.csproj' --framework net9.0-windows -c Release -o "Flow.Launcher.Plugin.WebSearch"
286286
7z a -tzip "Flow.Launcher.Plugin.WebSearch.zip" "./Flow.Launcher.Plugin.WebSearch/*"
287287
rm -r "Flow.Launcher.Plugin.WebSearch"
288288
@@ -306,7 +306,7 @@ jobs:
306306

307307
- name: Build WindowsSettings
308308
run: |
309-
dotnet publish 'Plugins/Flow.Launcher.Plugin.WindowsSettings/Flow.Launcher.Plugin.WindowsSettings.csproj' --framework net7.0-windows -c Release -o "Flow.Launcher.Plugin.WindowsSettings"
309+
dotnet publish 'Plugins/Flow.Launcher.Plugin.WindowsSettings/Flow.Launcher.Plugin.WindowsSettings.csproj' --framework net9.0-windows -c Release -o "Flow.Launcher.Plugin.WindowsSettings"
310310
7z a -tzip "Flow.Launcher.Plugin.WindowsSettings.zip" "./Flow.Launcher.Plugin.WindowsSettings/*"
311311
rm -r "Flow.Launcher.Plugin.WindowsSettings"
312312

.github/workflows/dotnet.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
- name: Setup .NET
3232
uses: actions/setup-dotnet@v4
3333
with:
34-
dotnet-version: 7.0.x
34+
dotnet-version: 9.0.x
3535
# cache: true
3636
# cache-dependency-path: |
3737
# Flow.Launcher/packages.lock.json

Flow.Launcher.Core/Flow.Launcher.Core.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net7.0-windows</TargetFramework>
4+
<TargetFramework>net9.0-windows</TargetFramework>
55
<UseWpf>true</UseWpf>
66
<UseWindowsForms>true</UseWindowsForms>
77
<OutputType>Library</OutputType>
@@ -12,6 +12,7 @@
1212
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
1313
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
1414
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
15+
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
1516
</PropertyGroup>
1617

1718
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">

Flow.Launcher.Core/Plugin/PluginInstaller.cs

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -281,11 +281,12 @@ await DownloadFileAsync(
281281
/// <summary>
282282
/// Updates the plugin to the latest version available from its source.
283283
/// </summary>
284+
/// <param name="updateAllPlugins">Action to execute when the user chooses to update all plugins.</param>
284285
/// <param name="silentUpdate">If true, do not show any messages when there is no update available.</param>
285286
/// <param name="usePrimaryUrlOnly">If true, only use the primary URL for updates.</param>
286287
/// <param name="token">Cancellation token to cancel the update operation.</param>
287288
/// <returns></returns>
288-
public static async Task CheckForPluginUpdatesAsync(bool silentUpdate = true, bool usePrimaryUrlOnly = false, CancellationToken token = default)
289+
public static async Task CheckForPluginUpdatesAsync(Action<List<PluginUpdateInfo>> updateAllPlugins, bool silentUpdate = true, bool usePrimaryUrlOnly = false, CancellationToken token = default)
289290
{
290291
// Update the plugin manifest
291292
await API.UpdatePluginManifestAsync(usePrimaryUrlOnly, token);
@@ -334,14 +335,20 @@ where string.Compare(existingPlugin.Metadata.Version, pluginUpdateSource.Version
334335
API.GetTranslation("updateAllPluginsButtonContent"),
335336
() =>
336337
{
337-
UpdateAllPlugins(resultsForUpdate);
338+
updateAllPlugins(resultsForUpdate);
338339
},
339340
string.Join(", ", resultsForUpdate.Select(x => x.PluginExistingMetadata.Name)));
340341
}
341342

342-
private static void UpdateAllPlugins(IEnumerable<PluginUpdateInfo> resultsForUpdate)
343+
/// <summary>
344+
/// Updates all plugins that have available updates.
345+
/// </summary>
346+
/// <param name="resultsForUpdate"></param>
347+
/// <param name="restart"></param>
348+
public static async Task UpdateAllPluginsAsync(IEnumerable<PluginUpdateInfo> resultsForUpdate, bool restart)
343349
{
344-
_ = Task.WhenAll(resultsForUpdate.Select(async plugin =>
350+
var anyPluginSuccess = false;
351+
await Task.WhenAll(resultsForUpdate.Select(async plugin =>
345352
{
346353
var downloadToFilePath = Path.Combine(Path.GetTempPath(), $"{plugin.Name}-{plugin.NewVersion}.zip");
347354

@@ -363,13 +370,28 @@ await DownloadFileAsync(
363370
{
364371
return;
365372
}
373+
374+
anyPluginSuccess = true;
366375
}
367376
catch (Exception e)
368377
{
369378
API.LogException(ClassName, "Failed to update plugin", e);
370379
API.ShowMsgError(API.GetTranslation("ErrorUpdatingPlugin"));
371380
}
372381
}));
382+
383+
if (!anyPluginSuccess) return;
384+
385+
if (restart)
386+
{
387+
API.RestartApp();
388+
}
389+
else
390+
{
391+
API.ShowMsg(
392+
API.GetTranslation("updatebtn"),
393+
API.GetTranslation("PluginsUpdateSuccessNoRestart"));
394+
}
373395
}
374396

375397
/// <summary>
@@ -445,16 +467,16 @@ private static bool InstallSourceKnown(string url)
445467
x.Metadata.Website.StartsWith(constructedUrlPart)
446468
);
447469
}
470+
}
448471

449-
private record PluginUpdateInfo
450-
{
451-
public string ID { get; init; }
452-
public string Name { get; init; }
453-
public string Author { get; init; }
454-
public string CurrentVersion { get; init; }
455-
public string NewVersion { get; init; }
456-
public string IcoPath { get; init; }
457-
public PluginMetadata PluginExistingMetadata { get; init; }
458-
public UserPlugin PluginNewUserPlugin { get; init; }
459-
}
472+
public record PluginUpdateInfo
473+
{
474+
public string ID { get; init; }
475+
public string Name { get; init; }
476+
public string Author { get; init; }
477+
public string CurrentVersion { get; init; }
478+
public string NewVersion { get; init; }
479+
public string IcoPath { get; init; }
480+
public PluginMetadata PluginExistingMetadata { get; init; }
481+
public UserPlugin PluginNewUserPlugin { get; init; }
460482
}

0 commit comments

Comments
 (0)