diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/AppxPackageHelper.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/AppxPackageHelper.cs index 73a25dd0d..62416609e 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/AppxPackageHelper.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/AppxPackageHelper.cs @@ -7,11 +7,10 @@ namespace Flow.Launcher.Plugin.Program.Programs { public class AppxPackageHelper { - private static readonly IAppxFactory appxFactory = (IAppxFactory)new AppxFactory(); - // This function returns a list of attributes of applications public static List GetAppsFromManifest(IStream stream) { + IAppxFactory appxFactory = (IAppxFactory)new AppxFactory(); List apps = new List(); var reader = appxFactory.CreateManifestReader(stream); var manifestApps = reader.GetApplications(); diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs index 0a57ae74c..b754aa5b4 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs @@ -41,8 +41,6 @@ namespace Flow.Launcher.Plugin.Program.Programs FullName = package.Id.FullName; FamilyName = package.Id.FamilyName; InitializeAppInfo(); - Apps = Apps.Where(a => !string.IsNullOrEmpty(a.UserModelId) && !string.IsNullOrEmpty(a.DisplayName)) - .ToArray(); } private void InitializeAppInfo() @@ -58,16 +56,13 @@ namespace Flow.Launcher.Plugin.Program.Programs if (hResult == Hresult.Ok) { - var apps = new List(); - List _apps = AppxPackageHelper.GetAppsFromManifest(stream); - foreach (var _app in _apps) - { - var app = new Application(_app, this); - apps.Add(app); - } - Apps = apps.Where(a => a.AppListEntry != "none").ToArray(); + Apps = _apps.Select(x => new Application(x, this)) + .Where(a => a.AppListEntry != "none" + && !string.IsNullOrEmpty(a.UserModelId) + && !string.IsNullOrEmpty(a.DisplayName)) + .ToArray(); } else {