private void UpdateExtraPackageInfos(UpmPackage package) { if (!package.versions.Any()) { return; } Dictionary <string, PackageInfo> extraVersions; if (m_ExtraPackageInfo.TryGetValue(package.name, out extraVersions)) { foreach (var version in package.versions.Cast <UpmPackageVersion>()) { if (version.isFullyFetched) { continue; } PackageInfo info; if (extraVersions.TryGetValue(version.version.ToString(), out info)) { version.UpdatePackageInfo(info); } } } // if the primary version is not fully fetched, trigger an extra fetch automatically right away to get results early // since the primary version's display name is used in the package list var primaryVersion = package.primaryVersion; if (!primaryVersion.isFullyFetched) { ExtraFetch(primaryVersion.uniqueId); } }
public AssetStorePackage(AssetStoreFetchedInfo fetchedInfo, UpmPackage package) { m_Errors = new List <Error>(); m_Progress = PackageProgress.None; m_Type = PackageType.AssetStore; m_Name = package?.name ?? string.Empty; m_ProductId = fetchedInfo?.id.ToString(); m_Images = fetchedInfo?.images ?? new List <PackageImage>(); m_Links = fetchedInfo?.links ?? new List <PackageLink>(); m_VersionList = new AssetStoreVersionList(); m_UpmVersionList = package?.versions as UpmVersionList ?? new UpmVersionList(); foreach (var version in m_UpmVersionList.Cast <UpmPackageVersion>()) { version.UpdateFetchedInfo(fetchedInfo); } if (string.IsNullOrEmpty(fetchedInfo?.id) || string.IsNullOrEmpty(fetchedInfo?.versionId)) { AddError(new Error(NativeErrorCode.Unknown, "Invalid product details.")); } else if (string.IsNullOrEmpty(package?.name)) { AddError(new Error(NativeErrorCode.Unknown, "Invalid package info.")); } }
// check if the preview versions be filtered out if the user have `show previews` turned off private static bool ShouldPreviewsBeRemoved(UpmPackage package) { if (IsPreviewInstalled(package)) { return(false); } return(package.versions.Any(v => !v.HasTag(PackageTag.Release))); }
internal static void UpdateVersions(this Package self, IEnumerable <PackageInfo> versions) { var latest = versions.OrderBy(v => v.GetVersion()).Last(); versions = versions.Select(v => { v.IsLatest = v == latest; v.State = v == latest ? PackageState.UpToDate : PackageState.Outdated; return(v); }); self.Set("source", versions); }
/// <summary> /// Update package info. /// </summary> static bool UpdatePackageVersions(Package package, IEnumerable <AvailableVersion> versions) { Debug.Log(kHeader, $"[UpdatePackageVersions] {package.GetName()} has {versions.Count()} versions"); var pInfoCurrent = package.GetInstalledVersion(); pInfoCurrent.UnlockVersion(); var versionInfos = versions .Select(v => v.ToPackageVersion(pInfoCurrent)) .Concat(new[] { pInfoCurrent }) .Where(pInfo => pInfo == pInfoCurrent || pInfo.GetVersion() != pInfoCurrent.GetVersion()) .OrderBy(pInfo => pInfo.GetVersion()) .ToArray(); if (package.GetVersionCount() != versionInfos.Length) { Debug.Log(kHeader, "[UpdatePackageVersions] package source changing"); package.UpdateVersions(versionInfos); return(true); } return(false); }
private UpmPackage CreateUpmPackage(PackageInfo searchInfo, PackageInfo installedInfo, string packageName = null) { if (searchInfo == null && installedInfo == null) { return(new UpmPackage(m_IOProxy, packageName, false, PackageType.Installable)); } UpmPackage result; if (searchInfo == null) { result = new UpmPackage(m_IOProxy, installedInfo, true, false); } else { result = new UpmPackage(m_IOProxy, searchInfo, false, true); if (installedInfo != null) { result.AddInstalledVersion(new UpmPackageVersion(m_IOProxy, installedInfo, true)); } } return(result); }
private UpmPackage CreateUpmPackage(PackageInfo searchInfo, PackageInfo installedInfo, string packageName = null) { if (searchInfo == null && installedInfo == null) { return(new UpmPackage(packageName, Enumerable.Empty <UpmPackageVersion>(), false)); } UpmPackage result; if (searchInfo == null) { result = new UpmPackage(installedInfo, true, false); } else { result = new UpmPackage(searchInfo, false, true); if (installedInfo != null) { result.AddInstalledVersion(new UpmPackageVersion(installedInfo, true)); } } return(result); }
private static void RemovePreviewVersions(UpmPackage package) { package.UpdateVersions(package.versions.Where(v => v.HasTag(PackageTag.Release)).Cast <UpmPackageVersion>()); }
internal static int GetVersionCount(this Package self) { return(self.source.Count()); }
internal static string GetName(this Package self) { return(self.Name); }
internal static PackageInfo GetInstalledVersion(this Package self) { return(self.Current); }
private static bool IsPreviewInstalled(UpmPackage package) { return((!package.installedVersion?.HasTag(PackageTag.Release)) ?? false); }
public AssetStorePackage(AssetStorePurchaseInfo purchaseInfo, AssetStoreProductInfo productInfo, UpmPackage package) { m_Errors = new List <UIError>(); m_Progress = PackageProgress.None; m_Type = PackageType.AssetStore; m_Name = package?.name ?? string.Empty; m_ProductId = productInfo?.id.ToString(); m_Images = productInfo?.images ?? new List <PackageImage>(); m_Links = productInfo?.links ?? new List <PackageLink>(); m_VersionList = new AssetStoreVersionList(); m_Labels = purchaseInfo?.tags; m_PurchasedTimeTicks = !string.IsNullOrEmpty(purchaseInfo?.purchasedTime) ? DateTime.Parse(purchaseInfo?.purchasedTime).Ticks : 0; m_UpmVersionList = package?.versions as UpmVersionList ?? new UpmVersionList(); foreach (var version in m_UpmVersionList.Cast <UpmPackageVersion>()) { version.UpdateProductInfo(productInfo); } m_AssetStoreLink = productInfo?.assetStoreLink.url; var firstPublishedDateString = productInfo?.firstPublishedDate ?? string.Empty; m_FirstPublishedDateTicks = !string.IsNullOrEmpty(firstPublishedDateString) ? DateTime.Parse(firstPublishedDateString).Ticks : 0; if (purchaseInfo == null) { AddError(new UIError(UIErrorCode.AssetStorePackageError, ApplicationUtil.instance.GetTranslationForText("Invalid purchase details."))); } if (string.IsNullOrEmpty(productInfo?.id) || string.IsNullOrEmpty(productInfo?.versionId)) { AddError(new UIError(UIErrorCode.AssetStorePackageError, ApplicationUtil.instance.GetTranslationForText("Invalid product details."))); } else if (string.IsNullOrEmpty(package?.name)) { AddError(new UIError(UIErrorCode.AssetStorePackageError, ApplicationUtil.instance.GetTranslationForText("Invalid package info."))); } }
public AssetStorePackage(AssetStoreUtils assetStoreUtils, IOProxy ioProxy, AssetStorePurchaseInfo purchaseInfo, AssetStoreProductInfo productInfo, UpmPackage package) { ResolveDependencies(assetStoreUtils, ioProxy); m_Errors = new List <UIError>(); m_Progress = PackageProgress.None; m_Type = PackageType.AssetStore; m_Name = package?.name ?? string.Empty; m_ProductId = productInfo?.id.ToString(); m_Images = productInfo?.images ?? new List <PackageImage>(); m_Links = productInfo?.links ?? new List <PackageLink>(); m_VersionList = new AssetStoreVersionList(assetStoreUtils, ioProxy); m_Labels = purchaseInfo?.tags; m_PurchasedTimeTicks = !string.IsNullOrEmpty(purchaseInfo?.purchasedTime) ? DateTime.Parse(purchaseInfo?.purchasedTime).Ticks : 0; m_UpmVersionList = package?.versions as UpmVersionList ?? new UpmVersionList(ioProxy); if (productInfo != null) { foreach (var version in m_UpmVersionList.Cast <UpmPackageVersion>()) { version.UpdateProductInfo(productInfo); } } m_AssetStoreLink = productInfo?.assetStoreLink.url; var firstPublishedDateString = productInfo?.firstPublishedDate ?? string.Empty; m_FirstPublishedDateTicks = !string.IsNullOrEmpty(firstPublishedDateString) ? DateTime.Parse(firstPublishedDateString).Ticks : 0; if (purchaseInfo == null) { var errorMessage = L10n.Tr("Unable to get purchase details because you may not have purchased this package."); AddError(new UIError(UIErrorCode.AssetStorePackageError, errorMessage)); } if (string.IsNullOrEmpty(productInfo?.id) || string.IsNullOrEmpty(productInfo?.versionId)) { AddError(new UIError(UIErrorCode.AssetStorePackageError, L10n.Tr("Invalid product details."))); } else if (string.IsNullOrEmpty(package?.name)) { AddError(new UIError(UIErrorCode.AssetStorePackageError, L10n.Tr("Invalid package info."))); } }