Skip to content

Commit ec7b481

Browse files
authored
Merge branch 'dev' into bump_versions
2 parents 96b93c9 + 7208b72 commit ec7b481

File tree

198 files changed

+7314
-1072
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

198 files changed

+7314
-1072
lines changed

.github/workflows/default_plugins.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
steps:
1313
- uses: actions/checkout@v5
1414
- name: Setup .NET
15-
uses: actions/setup-dotnet@v4
15+
uses: actions/setup-dotnet@v5
1616
with:
1717
dotnet-version: 9.0.x
1818

.github/workflows/dotnet.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
"**/SolutionAssemblyInfo.cs"
3030
version: ${{ env.FlowVersion }}.${{ env.BUILD_NUMBER }}
3131
- name: Setup .NET
32-
uses: actions/setup-dotnet@v4
32+
uses: actions/setup-dotnet@v5
3333
with:
3434
dotnet-version: 9.0.x
3535
# cache: true

Flow.Launcher.Core/ExternalPlugins/PluginsManifest.cs

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Threading.Tasks;
55
using CommunityToolkit.Mvvm.DependencyInjection;
66
using Flow.Launcher.Plugin;
7+
using Flow.Launcher.Infrastructure;
78

89
namespace Flow.Launcher.Core.ExternalPlugins
910
{
@@ -12,10 +13,10 @@ public static class PluginsManifest
1213
private static readonly string ClassName = nameof(PluginsManifest);
1314

1415
private static readonly CommunityPluginStore mainPluginStore =
15-
new("https://raw.githubusercontent.com/Flow-Launcher/Flow.Launcher.PluginsManifest/plugin_api_v2/plugins.json",
16-
"https://fastly.jsdelivr.net/gh/Flow-Launcher/Flow.Launcher.PluginsManifest@plugin_api_v2/plugins.json",
17-
"https://gcore.jsdelivr.net/gh/Flow-Launcher/Flow.Launcher.PluginsManifest@plugin_api_v2/plugins.json",
18-
"https://cdn.jsdelivr.net/gh/Flow-Launcher/Flow.Launcher.PluginsManifest@plugin_api_v2/plugins.json");
16+
new("https://raw.githubusercontent.com/Flow-Launcher/Flow.Launcher.PluginsManifest/main/plugins.json",
17+
"https://fastly.jsdelivr.net/gh/Flow-Launcher/Flow.Launcher.PluginsManifest@main/plugins.json",
18+
"https://gcore.jsdelivr.net/gh/Flow-Launcher/Flow.Launcher.PluginsManifest@main/plugins.json",
19+
"https://cdn.jsdelivr.net/gh/Flow-Launcher/Flow.Launcher.PluginsManifest@main/plugins.json");
1920

2021
private static readonly SemaphoreSlim manifestUpdateLock = new(1);
2122

@@ -39,13 +40,23 @@ public static async Task<bool> UpdateManifestAsync(bool usePrimaryUrlOnly = fals
3940
var results = await mainPluginStore.FetchAsync(token, usePrimaryUrlOnly).ConfigureAwait(false);
4041

4142
// If the results are empty, we shouldn't update the manifest because the results are invalid.
42-
if (results.Count != 0)
43-
{
44-
UserPlugins = results;
45-
lastFetchedAt = DateTime.Now;
43+
if (results.Count == 0)
44+
return false;
45+
46+
lastFetchedAt = DateTime.Now;
4647

47-
return true;
48+
var updatedPluginResults = new List<UserPlugin>();
49+
var appVersion = SemanticVersioning.Version.Parse(Constant.Version);
50+
51+
for (int i = 0; i < results.Count; i++)
52+
{
53+
if (IsMinimumAppVersionSatisfied(results[i], appVersion))
54+
updatedPluginResults.Add(results[i]);
4855
}
56+
57+
UserPlugins = updatedPluginResults;
58+
59+
return true;
4960
}
5061
}
5162
catch (Exception e)
@@ -59,5 +70,16 @@ public static async Task<bool> UpdateManifestAsync(bool usePrimaryUrlOnly = fals
5970

6071
return false;
6172
}
73+
74+
private static bool IsMinimumAppVersionSatisfied(UserPlugin plugin, SemanticVersioning.Version appVersion)
75+
{
76+
if (string.IsNullOrEmpty(plugin.MinimumAppVersion) || appVersion >= SemanticVersioning.Version.Parse(plugin.MinimumAppVersion))
77+
return true;
78+
79+
API.LogDebug(ClassName, $"Plugin {plugin.Name} requires minimum Flow Launcher version {plugin.MinimumAppVersion}, "
80+
+ $"but current version is {Constant.Version}. Plugin excluded from manifest.");
81+
82+
return false;
83+
}
6284
}
6385
}

Flow.Launcher.Plugin/UserPlugin.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,5 +76,10 @@ public record UserPlugin
7676
/// Indicates whether the plugin is installed from a local path
7777
/// </summary>
7878
public bool IsFromLocalInstallPath => !string.IsNullOrEmpty(LocalInstallPath);
79+
80+
/// <summary>
81+
/// The minimum Flow Launcher version required for this plugin. Default is "".
82+
/// </summary>
83+
public string MinimumAppVersion { get; set; } = string.Empty;
7984
}
8085
}

Flow.Launcher/Languages/ar.xaml

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,26 @@
1616
<system:String x:Key="failedToInitializePluginsTitle">فشل في تهيئة الإضافات</system:String>
1717
<system:String x:Key="failedToInitializePluginsMessage">الإضافات: {0} - فشل في التحميل وسيتم تعطيلها، يرجى الاتصال بمطور الإضافة للحصول على المساعدة</system:String>
1818

19+
<!-- Portable -->
20+
<system:String x:Key="restartToDisablePortableMode">Flow Launcher needs to restart to finish disabling portable mode, after the restart your portable data profile will be deleted and roaming data profile kept</system:String>
21+
<system:String x:Key="restartToEnablePortableMode">Flow Launcher needs to restart to finish enabling portable mode, after the restart your roaming data profile will be deleted and portable data profile kept</system:String>
22+
<system:String x:Key="moveToDifferentLocation">Flow Launcher has detected you enabled portable mode, would you like to move it to a different location?</system:String>
23+
<system:String x:Key="shortcutsUninstallerCreated">Flow Launcher has detected you disabled portable mode, the relevant shortcuts and uninstaller entry have been created</system:String>
24+
<system:String x:Key="userDataDuplicated">Flow Launcher detected your user data exists both in {0} and {1}. {2}{2}Please delete {1} in order to proceed. No changes have occurred.</system:String>
25+
26+
<!-- Plugin Loader -->
27+
<system:String x:Key="pluginHasErrored">The following plugin has errored and cannot be loaded:</system:String>
28+
<system:String x:Key="pluginsHaveErrored">The following plugins have errored and cannot be loaded:</system:String>
29+
<system:String x:Key="referToLogs">Please refer to the logs for more information</system:String>
30+
31+
<!-- Http -->
32+
<system:String x:Key="pleaseTryAgain">Please try again</system:String>
33+
<system:String x:Key="parseProxyFailed">Unable to parse Http Proxy</system:String>
34+
35+
<!-- AbstractPluginEnvironment -->
36+
<system:String x:Key="failToInstallTypeScriptEnv">Failed to install TypeScript environment. Please try again later</system:String>
37+
<system:String x:Key="failToInstallPythonEnv">Failed to install Python environment. Please try again later.</system:String>
38+
1939
<!-- MainWindow -->
2040
<system:String x:Key="registerHotkeyFailed">فشل في تسجيل مفتاح التشغيل السريع &quot;{0}&quot;. قد يكون المفتاح مستخدمًا من قبل برنامج آخر. قم بتغيير المفتاح، أو قم بإغلاق البرنامج الآخر.</system:String>
2141
<system:String x:Key="unregisterHotkeyFailed">Failed to unregister hotkey &quot;{0}&quot;. Please try again or see log for details</system:String>
@@ -91,6 +111,7 @@
91111
<system:String x:Key="typingStartEn">دائمًا ابدأ الكتابة بوضع الإنجليزية</system:String>
92112
<system:String x:Key="typingStartEnTooltip">تغيير مؤقت لطريقة الإدخال إلى وضع الإنجليزية عند تنشيط Flow.</system:String>
93113
<system:String x:Key="autoUpdates">التحديث التلقائي</system:String>
114+
<system:String x:Key="autoUpdatesTooltip">Automatically check and update the app when available</system:String>
94115
<system:String x:Key="select">اختر</system:String>
95116
<system:String x:Key="hideOnStartup">إخفاء Flow Launcher عند بدء التشغيل</system:String>
96117
<system:String x:Key="hideOnStartupToolTip">يتم إخفاء نافذة بحث Flow Launcher في العلبة بعد بدء التشغيل.</system:String>
@@ -102,7 +123,20 @@
102123
<system:String x:Key="SearchPrecisionLow">منخفضة</system:String>
103124
<system:String x:Key="SearchPrecisionRegular">عادية</system:String>
104125
<system:String x:Key="ShouldUsePinyin">البحث باستخدام Pinyin</system:String>
105-
<system:String x:Key="ShouldUsePinyinToolTip">السماح باستخدام Pinyin للبحث. Pinyin هو نظام التهجئة الروماني القياسي لترجمة الصينية.</system:String>
126+
<system:String x:Key="ShouldUsePinyinToolTip">Pinyin is the standard system of romanized spelling for translating Chinese. Please note, enabling this can significantly increase memory usage during search.</system:String>
127+
<system:String x:Key="ShouldUseDoublePinyin">Use Double Pinyin</system:String>
128+
<system:String x:Key="ShouldUseDoublePinyinToolTip">Use Double Pinyin instead of Full Pinyin to search.</system:String>
129+
<system:String x:Key="DoublePinyinSchema">Double Pinyin Schema</system:String>
130+
<system:String x:Key="DoublePinyinSchemasXiaoHe">Xiao He</system:String>
131+
<system:String x:Key="DoublePinyinSchemasZiRanMa">Zi Ran Ma</system:String>
132+
<system:String x:Key="DoublePinyinSchemasWeiRuan">Wei Ruan</system:String>
133+
<system:String x:Key="DoublePinyinSchemasZhiNengABC">Zhi Neng ABC</system:String>
134+
<system:String x:Key="DoublePinyinSchemasZiGuangPinYin">Zi Guang Pin Yin</system:String>
135+
<system:String x:Key="DoublePinyinSchemasPinYinJiaJia">Pin Yin Jia Jia</system:String>
136+
<system:String x:Key="DoublePinyinSchemasXingKongJianDao">Xing Kong Jian Dao</system:String>
137+
<system:String x:Key="DoublePinyinSchemasDaNiu">Da Niu</system:String>
138+
<system:String x:Key="DoublePinyinSchemasXiaoLang">Xiao Lang</system:String>
139+
106140
<system:String x:Key="AlwaysPreview">دائمًا معاينة</system:String>
107141
<system:String x:Key="AlwaysPreviewToolTip">فتح لوحة المعاينة دائمًا عند تنشيط Flow. اضغط على {0} للتبديل بين المعاينة وعدمها.</system:String>
108142
<system:String x:Key="shadowEffectNotAllowed">تأثير الظل غير مسموح به بينما يتم تمكين تأثير التمويه في السمة الحالية</system:String>
@@ -131,6 +165,8 @@
131165
<system:String x:Key="KoreanImeOpenLinkButton">فتح</system:String>
132166
<system:String x:Key="KoreanImeRegistry">Use Previous Korean IME</system:String>
133167
<system:String x:Key="KoreanImeRegistryTooltip">You can change the Previous Korean IME settings directly from here</system:String>
168+
<system:String x:Key="KoreanImeSettingChangeFailTitle">Failed to change Korean IME setting</system:String>
169+
<system:String x:Key="KoreanImeSettingChangeFailSubTitle">Please check your system registry access or contact support.</system:String>
134170
<system:String x:Key="homePage">Home Page</system:String>
135171
<system:String x:Key="homePageToolTip">Show home page results when query text is empty.</system:String>
136172
<system:String x:Key="historyResultsForHomePage">Show History Results in Home Page</system:String>
@@ -142,6 +178,8 @@
142178
<system:String x:Key="autoRestartAfterChangingToolTip">Restart Flow Launcher automatically after installing/uninstalling/updating plugin via Plugin Store</system:String>
143179
<system:String x:Key="showUnknownSourceWarning">Show unknown source warning</system:String>
144180
<system:String x:Key="showUnknownSourceWarningToolTip">Show warning when installing plugins from unknown sources</system:String>
181+
<system:String x:Key="autoUpdatePlugins">Auto update plugins</system:String>
182+
<system:String x:Key="autoUpdatePluginsToolTip">Automatically check plugin updates and notify if there are any updates available</system:String>
145183

146184
<!-- Setting Plugin -->
147185
<system:String x:Key="searchplugin">البحث عن إضافة</system:String>
@@ -223,6 +261,12 @@
223261
<system:String x:Key="ZipFiles">Zip files</system:String>
224262
<system:String x:Key="SelectZipFile">Please select zip file</system:String>
225263
<system:String x:Key="installLocalPluginTooltip">Install plugin from local path</system:String>
264+
<system:String x:Key="updateNoResultTitle">لا توجد تحديثات متاح</system:String>
265+
<system:String x:Key="updateNoResultSubtitle">جميع الإضافات محدث</system:String>
266+
<system:String x:Key="updateAllPluginsTitle">Plugin updates available</system:String>
267+
<system:String x:Key="updateAllPluginsButtonContent">Update plugins</system:String>
268+
<system:String x:Key="checkPluginUpdatesTooltip">Check plugin updates</system:String>
269+
<system:String x:Key="PluginsUpdateSuccessNoRestart">Plugins are successfully updated. Please restart Flow.</system:String>
226270

227271
<!-- Setting Theme -->
228272
<system:String x:Key="theme">السمة</system:String>
@@ -350,6 +394,28 @@
350394
<system:String x:Key="showBadges">Show Result Badges</system:String>
351395
<system:String x:Key="showBadgesToolTip">For supported plugins, badges are displayed to help distinguish them more easily.</system:String>
352396
<system:String x:Key="showBadgesGlobalOnly">Show Result Badges for Global Query Only</system:String>
397+
<system:String x:Key="showBadgesGlobalOnlyToolTip">Show badges for global query results only</system:String>
398+
<system:String x:Key="dialogJumpHotkey">Dialog Jump</system:String>
399+
<system:String x:Key="dialogJumpHotkeyToolTip">Enter shortcut to quickly navigate the Open/Save As dialog window to the path of the current file manager.</system:String>
400+
<system:String x:Key="dialogJump">Dialog Jump</system:String>
401+
<system:String x:Key="dialogJumpToolTip">When Open/Save As dialog window opens, quickly navigate to the current path of the file manager.</system:String>
402+
<system:String x:Key="autoDialogJump">Dialog Jump Automatically</system:String>
403+
<system:String x:Key="autoDialogJumpToolTip">When Open/Save As dialog window is displayed, automatically navigate to the path of the current file manager. (Experimental)</system:String>
404+
<system:String x:Key="showDialogJumpWindow">Show Dialog Jump Window</system:String>
405+
<system:String x:Key="showDialogJumpWindowToolTip">Display Dialog Jump search window when the open/save dialog window is shown to quickly navigate to file/folder locations.</system:String>
406+
<system:String x:Key="dialogJumpWindowPosition">Dialog Jump Window Position</system:String>
407+
<system:String x:Key="dialogJumpWindowPositionToolTip">Select position for the Dialog Jump search window</system:String>
408+
<system:String x:Key="DialogJumpWindowPositionUnderDialog">Fixed under the Open/Save As dialog window. Displayed on open and stays until the window is closed</system:String>
409+
<system:String x:Key="DialogJumpWindowPositionFollowDefault">Default search window position. Displayed when triggered by search window hotkey</system:String>
410+
<system:String x:Key="dialogJumpResultBehaviour">Dialog Jump Result Navigation Behaviour</system:String>
411+
<system:String x:Key="dialogJumpResultBehaviourToolTip">Behaviour to navigate Open/Save As dialog window to the selected result path</system:String>
412+
<system:String x:Key="DialogJumpResultBehaviourLeftClick">Left click or Enter key</system:String>
413+
<system:String x:Key="DialogJumpResultBehaviourRightClick">Right click</system:String>
414+
<system:String x:Key="dialogJumpFileResultBehaviour">Dialog Jump File Navigation Behaviour</system:String>
415+
<system:String x:Key="dialogJumpFileResultBehaviourToolTip">Behaviour to navigate Open/Save As dialog window when the result is a file path</system:String>
416+
<system:String x:Key="DialogJumpFileResultBehaviourFullPath">Fill full path in file name box</system:String>
417+
<system:String x:Key="DialogJumpFileResultBehaviourFullPathOpen">Fill full path in file name box and open</system:String>
418+
<system:String x:Key="DialogJumpFileResultBehaviourDirectory">Fill directory in path box</system:String>
353419

354420
<!-- Setting Proxy -->
355421
<system:String x:Key="proxy">بروكسي HTTP</system:String>
@@ -549,6 +615,11 @@
549615
<system:String x:Key="update_flowlauncher_update_files">تحديث الملفات</system:String>
550616
<system:String x:Key="update_flowlauncher_update_update_description">وصف التحديث</system:String>
551617

618+
<!-- Plugin Update Window -->
619+
<system:String x:Key="restartAfterUpdating">Restart Flow Launcher after updating plugins</system:String>
620+
<system:String x:Key="updatePluginCheckboxContent">{0}: Update from v{1} to v{2}</system:String>
621+
<system:String x:Key="updatePluginNoSelected">No plugin selected</system:String>
622+
552623
<!-- Welcome Window -->
553624
<system:String x:Key="Skip">تخطي</system:String>
554625
<system:String x:Key="Welcome_Page1_Title">مرحبًا بك في Flow Launcher</system:String>

0 commit comments

Comments
 (0)