diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs index fb4603622..0a57ae74c 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs @@ -761,6 +761,23 @@ namespace Flow.Launcher.Plugin.Program.Programs { return $"{DisplayName}: {Description}"; } + + public override bool Equals(object obj) + { + if (obj is Application other) + { + return UniqueIdentifier == other.UniqueIdentifier; + } + else + { + return false; + } + } + + public override int GetHashCode() + { + return UniqueIdentifier.GetHashCode(); + } } public enum PackageVersion diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs index 52673cc1d..5016bee12 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs @@ -586,6 +586,18 @@ namespace Flow.Launcher.Plugin.Program.Programs return UniqueIdentifier == other.UniqueIdentifier; } + public override bool Equals(object obj) + { + if (obj is Win32 other) + { + return UniqueIdentifier == other.UniqueIdentifier; + } + else + { + return false; + } + } + private static IEnumerable GetStartMenuPaths() { var directory1 = Environment.GetFolderPath(Environment.SpecialFolder.Programs); diff --git a/Plugins/Flow.Launcher.Plugin.Program/Settings.cs b/Plugins/Flow.Launcher.Plugin.Program/Settings.cs index fb28c1cf2..84cc2e4ee 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Settings.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Settings.cs @@ -20,7 +20,7 @@ namespace Flow.Launcher.Plugin.Program /// public List DisabledProgramSources { get; set; } = new List(); - [Obsolete, JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] + [Obsolete("Should use GetSuffixes() instead."), JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] public string[] ProgramSuffixes { get; set; } = null; public string[] CustomSuffixes { get; set; } = Array.Empty(); // Custom suffixes only public string[] CustomProtocols { get; set; } = Array.Empty();