Skip to content

Commit e7b9120

Browse files
committed
When possible, replace "Unknown" version numbers with the ones cached on UniGetUI for WinGet packages
1 parent 2db8f62 commit e7b9120

2 files changed

Lines changed: 17 additions & 4 deletions

File tree

src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/NativeWinGetHelper.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using UniGetUI.PackageEngine.ManagerClasses.Classes;
1010
using UniGetUI.PackageEngine.PackageClasses;
1111
using UniGetUI.PackageEngine.Structs;
12+
using Windows.Media.Capture;
1213
using WindowsPackageManager.Interop;
1314

1415
namespace UniGetUI.PackageEngine.Managers.WingetManager;
@@ -160,10 +161,13 @@ public IReadOnlyList<Package> GetAvailableUpdates_UnSafe()
160161
source = Manager.SourcesHelper.Factory.GetSourceOrDefault(nativePackage.DefaultInstallVersion
161162
.PackageCatalog.Info.Name);
162163

164+
string version = nativePackage.InstalledVersion.Version;
165+
if (version == "Unknown") version = WinGetPkgOperationHelper.GetLastInstalledVersion(nativePackage.Id);
166+
163167
var UniGetUIPackage = new Package(
164168
nativePackage.Name,
165169
nativePackage.Id,
166-
nativePackage.InstalledVersion.Version,
170+
version,
167171
nativePackage.DefaultInstallVersion.Version,
168172
source,
169173
Manager);
@@ -172,8 +176,7 @@ public IReadOnlyList<Package> GetAvailableUpdates_UnSafe()
172176
{
173177
NativePackageHandler.AddPackage(UniGetUIPackage, nativePackage);
174178
packages.Add(UniGetUIPackage);
175-
logger.Log(
176-
$"Found package {nativePackage.Name} {nativePackage.Id} on source {source.Name}, from version {nativePackage.InstalledVersion.Version} to version {nativePackage.DefaultInstallVersion.Version}");
179+
logger.Log($"Found package {nativePackage.Name} {nativePackage.Id} on source {source.Name}, from version {nativePackage.InstalledVersion.Version} to version {nativePackage.DefaultInstallVersion.Version}");
177180
}
178181
else
179182
{
@@ -204,11 +207,15 @@ public IReadOnlyList<Package> GetInstalledPackages_UnSafe()
204207
{
205208
source = Manager.GetLocalSource(nativePackage.Id);
206209
}
210+
211+
string version = nativePackage.InstalledVersion.Version;
212+
if (version == "Unknown") version = WinGetPkgOperationHelper.GetLastInstalledVersion(nativePackage.Id);
213+
207214
logger.Log($"Found package {nativePackage.Name} {nativePackage.Id} on source {source.Name}");
208215
var UniGetUIPackage = new Package(
209216
nativePackage.Name,
210217
nativePackage.Id,
211-
nativePackage.InstalledVersion.Version,
218+
version,
212219
source,
213220
Manager);
214221
NativePackageHandler.AddPackage(UniGetUIPackage, nativePackage);

src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,4 +227,10 @@ public static bool UpdateAlreadyInstalled(IPackage package)
227227
{
228228
return Settings.GetDictionaryItem<string, string>(Settings.K.WinGetAlreadyUpgradedPackages, package.Id) == package.NewVersionString;
229229
}
230+
public static string GetLastInstalledVersion(string id)
231+
{
232+
var val = Settings.GetDictionaryItem<string, string>(Settings.K.WinGetAlreadyUpgradedPackages, id);
233+
if (val is null || val == "") val = "Unknown";
234+
return val;
235+
}
230236
}

0 commit comments

Comments
 (0)