From 1d77d45fe276e691abe0042080aa039ca2279b21 Mon Sep 17 00:00:00 2001
From: Vic <10308169+VictoriousRaptor@users.noreply.github.com>
Date: Sat, 17 Dec 2022 22:00:04 +0800
Subject: [PATCH] Add an option to enable/dsiable UWP indexing
---
.../Languages/en.xaml | 2 ++
Plugins/Flow.Launcher.Plugin.Program/Main.cs | 5 +----
.../Programs/UWP.cs | 18 ++++++++++++++----
.../Flow.Launcher.Plugin.Program/Settings.cs | 1 +
.../Views/ProgramSetting.xaml | 11 ++++++++++-
.../Views/ProgramSetting.xaml.cs | 12 ++++++++++++
6 files changed, 40 insertions(+), 9 deletions(-)
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Languages/en.xaml b/Plugins/Flow.Launcher.Plugin.Program/Languages/en.xaml
index 8d642b600..fb663f1a4 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Languages/en.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Languages/en.xaml
@@ -22,6 +22,8 @@
Indexing
Index Sources
Options
+ UWP Apps
+ When enabled, Flow will load UWP Applications
Start Menu
When enabled, Flow will load programs from the start menu
Registry
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Main.cs b/Plugins/Flow.Launcher.Plugin.Program/Main.cs
index c94c1dca2..340d882da 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Main.cs
+++ b/Plugins/Flow.Launcher.Plugin.Program/Main.cs
@@ -5,7 +5,6 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Controls;
-using Flow.Launcher.Infrastructure;
using Flow.Launcher.Infrastructure.Logger;
using Flow.Launcher.Infrastructure.Storage;
using Flow.Launcher.Plugin.Program.Programs;
@@ -115,9 +114,7 @@ namespace Flow.Launcher.Plugin.Program
public static void IndexUwpPrograms()
{
- var windows10 = new Version(10, 0);
- var support = Environment.OSVersion.Version.Major >= windows10.Major;
- var applications = support ? UWP.All() : Array.Empty();
+ var applications = UWP.All(_settings);
_uwps = applications;
ResetCache();
}
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs
index 28641dd00..35f0814a7 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs
+++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs
@@ -199,11 +199,14 @@ namespace Flow.Launcher.Plugin.Program.Programs
},
};
- public static Application[] All()
+ public static Application[] All(Settings settings)
{
- var windows10 = new Version(10, 0);
- var support = Environment.OSVersion.Version.Major >= windows10.Major;
- if (support)
+ var support = SupportUWP();
+ if (!support && settings.EnableUWP)
+ {
+ settings.EnableUWP = false;
+ }
+ if (settings.EnableUWP)
{
var applications = CurrentUserPackages().AsParallel().SelectMany(p =>
{
@@ -241,6 +244,13 @@ namespace Flow.Launcher.Plugin.Program.Programs
}
}
+ public static bool SupportUWP()
+ {
+ var windows10 = new Version(10, 0);
+ var support = Environment.OSVersion.Version.Major >= windows10.Major;
+ return support;
+ }
+
private static IEnumerable CurrentUserPackages()
{
var u = WindowsIdentity.GetCurrent().User;
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Settings.cs b/Plugins/Flow.Launcher.Plugin.Program/Settings.cs
index 34da42f1f..f59facaa4 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Settings.cs
+++ b/Plugins/Flow.Launcher.Plugin.Program/Settings.cs
@@ -119,6 +119,7 @@ namespace Flow.Launcher.Plugin.Program
public bool HideAppsPath { get; set; } = true;
public bool EnableRegistrySource { get; set; } = true;
public bool EnablePathSource { get; set; } = false;
+ public bool EnableUWP { get; set; } = true;
public string CustomizedExplorer { get; set; } = Explorer;
public string CustomizedArgs { get; set; } = ExplorerArgs;
diff --git a/Plugins/Flow.Launcher.Plugin.Program/Views/ProgramSetting.xaml b/Plugins/Flow.Launcher.Plugin.Program/Views/ProgramSetting.xaml
index 957042de5..fa97de4f2 100644
--- a/Plugins/Flow.Launcher.Plugin.Program/Views/ProgramSetting.xaml
+++ b/Plugins/Flow.Launcher.Plugin.Program/Views/ProgramSetting.xaml
@@ -7,6 +7,9 @@
Height="520"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
mc:Ignorable="d">
+
+
+
@@ -27,6 +30,13 @@
Margin="0,0,14,0"
HorizontalAlignment="Right"
DockPanel.Dock="Right">
+
-
_settings.EnableUWP;
+ set
+ {
+ _settings.EnableUWP = value;
+ ReIndexing();
+ }
+ }
+
public string CustomizedExplorerPath
{
get => _settings.CustomizedExplorer;
@@ -89,6 +99,8 @@ namespace Flow.Launcher.Plugin.Program.Views
set => _settings.CustomizedArgs = value;
}
+ public bool ShowUWPCheckbox => UWP.SupportUWP();
+
public ProgramSetting(PluginInitContext context, Settings settings, Win32[] win32s, UWP.Application[] uwps)
{
this.context = context;