public bool HasTag(PackageTag tag) { return((m_Tag & tag) == tag); }
internal VisualElement GetTag(PackageTag tag) { return(root.Q <VisualElement>("tag-" + tag)); }
public PlaceholderPackage(string uniqueId, PackageType type = PackageType.None, PackageTag tag = PackageTag.None, PackageProgress progress = PackageProgress.None) { m_Type = type; m_UniqueId = uniqueId; m_Progress = progress; m_VersionList = new PlaceholderVersionList(new PlaceholderPackageVersion(uniqueId, uniqueId, tag)); }
private PackageTagLabel(string text, string tooltipText, PackageTag tag = PackageTag.None) : base(text) { AddToClassList(tag.ToString()); tooltip = tooltipText; }
public PlaceholderPackage(string uniqueId, string displayName, PackageType type = PackageType.None, PackageTag tag = PackageTag.None, PackageProgress progress = PackageProgress.None, UIError error = null) { m_Type = type; m_UniqueId = uniqueId; m_Progress = progress; m_VersionList = new PlaceholderVersionList(new PlaceholderPackageVersion(uniqueId, uniqueId, displayName, tag, error)); m_Errors = new List <UIError>(); }
public int CreatePackageTag(PackageTag packageTag) { _db.PackageTags.Add(packageTag); _db.SaveChanges(); return(packageTag.Id); }
public bool HasTag(PackageTag tag) { return(HasTag(tag.ToString())); }
public PlaceholderPackageVersion(string packageUniqueId, string uniqueId, string displayName, PackageTag tag = PackageTag.None, UIError error = null) { m_PackageUniqueId = packageUniqueId; m_UniqueId = uniqueId; m_DisplayName = displayName; m_Tag = tag; m_Version = new SemVersion(0); m_Errors = error != null ? new UIError[] { error } : new UIError[0]; }
internal VisualElement GetTag(PackageTag tag) { return(Cache.Get <VisualElement>("tag-" + tag)); }
public PlaceholderPackage(string uniqueId, PackageTag tag = PackageTag.None, PackageSource source = PackageSource.Unknown, PackageState state = PackageState.InProgress) { m_UniqueId = uniqueId; m_State = state; m_Version = new PlaceholderPackageVersion(uniqueId, uniqueId, tag, source); }
public AssetStorePackageVersion(string productId, IDictionary <string, object> productDetail, SpecificVersionInfo localInfo = null) { if (productDetail == null) { throw new ArgumentNullException(nameof(productDetail)); } m_Errors = new List <Error>(); m_Type = "assetstore"; m_Tag = PackageTag.AssetStore; m_PackageUniqueId = productId; try { var description = productDetail.ContainsKey("description") ? productDetail["description"] as string : string.Empty; m_Description = CleanUpHtml(description); var publisher = new Dictionary <string, object>(); if (productDetail.ContainsKey("productPublisher")) { publisher = productDetail["productPublisher"] as Dictionary <string, object>; if (publisher.ContainsKey("url") && publisher["url"] is string && (string)publisher["url"] == "http://unity3d.com") { m_Author = "Unity Technologies Inc."; } else { m_Author = publisher.ContainsKey("name") ? publisher["name"] as string : L10n.Tr("Unknown publisher"); } m_PublisherId = publisher.ContainsKey("externalRef") ? publisher["externalRef"] as string : string.Empty; } else { m_Author = string.Empty; m_PublisherId = string.Empty; } m_Category = string.Empty; if (productDetail.ContainsKey("category")) { var categoryInfo = productDetail["category"] as IDictionary <string, object>; m_Category = categoryInfo["name"] as string; } if (localInfo != null) { m_VersionString = localInfo.versionString; m_VersionId = localInfo.versionId; SemVersion semVer; if (!SemVersion.TryParse(m_VersionString.Trim(), out semVer)) { semVer = new SemVersion(0); } m_Version = semVer; m_PublishedDate = DateTime.Parse(localInfo.publishedDate); } else if (productDetail.ContainsKey("version")) { var versionInfo = productDetail["version"] as IDictionary <string, object>; m_VersionString = versionInfo["name"] as string; m_VersionId = versionInfo["id"] as string; SemVersion semVer; if (!SemVersion.TryParse(m_VersionString.Trim(), out semVer)) { semVer = new SemVersion(0); } m_Version = semVer; if (versionInfo.ContainsKey("publishedDate")) { var date = versionInfo["publishedDate"] as string; m_PublishedDate = DateTime.Parse(date); } else { m_PublishedDate = new DateTime(); } } else { m_VersionString = string.Empty; m_VersionId = string.Empty; m_Version = new SemVersion(0); } m_DisplayName = productDetail.ContainsKey("displayName") ? productDetail["displayName"] as string : $"Package {m_PackageUniqueId}@{m_VersionId}"; m_SupportedUnityVersions = new List <SemVersion>(); if (productDetail.ContainsKey("supportedUnityVersions")) { var supportedVersions = productDetail["supportedUnityVersions"] as IList <object>; foreach (var supportedVersion in supportedVersions.Where(v => v is string)) { SemVersion version; if (SemVersion.TryParse(supportedVersion as string, out version)) { m_SupportedUnityVersions.Add(version); } } m_SupportedUnityVersions.Sort((left, right) => left.CompareByPrecedence(right)); } if (localInfo != null) { var simpleVersion = Regex.Replace(localInfo.supportedVersion, @"(?<major>\d+)\.(?<minor>\d+).(?<patch>\d+)[abfp].+", "${major}.${minor}.${patch}"); SemVersion.TryParse(simpleVersion.Trim(), out m_SupportedUnityVersion); } else { m_SupportedUnityVersion = m_SupportedUnityVersions.LastOrDefault(); } m_Images = new List <PackageImage>(); if (productDetail.ContainsKey("mainImage")) { var mainImage = productDetail["mainImage"] as IDictionary <string, object>; var thumbnailUrl = mainImage["url"] as string; thumbnailUrl = thumbnailUrl.Replace("//d2ujflorbtfzji.cloudfront.net/", "//assetstorev1-prd-cdn.unity3d.com/"); m_Images.Add(new PackageImage { type = PackageImage.ImageType.Main, thumbnailUrl = "http:" + thumbnailUrl, url = string.Empty }); } if (productDetail.ContainsKey("images")) { var images = productDetail["images"] as IList <object>; foreach (var image in images) { var imageInfo = image as IDictionary <string, object>; var type = imageInfo["type"] as string; if (string.IsNullOrEmpty(type)) { continue; } var imageType = PackageImage.ImageType.Screenshot; var thumbnailUrl = imageInfo["thumbnailUrl"] as string; thumbnailUrl = thumbnailUrl.Replace("//d2ujflorbtfzji.cloudfront.net/", "//assetstorev1-prd-cdn.unity3d.com/"); if (type == "sketchfab") { imageType = PackageImage.ImageType.Sketchfab; } else if (type == "youtube") { imageType = PackageImage.ImageType.Youtube; } var imageUrl = imageInfo["imageUrl"] as string; if (imageType == PackageImage.ImageType.Screenshot) { imageUrl = "http:" + imageUrl; } m_Images.Add(new PackageImage { type = imageType, thumbnailUrl = "http:" + thumbnailUrl, url = imageUrl }); } } m_SizeInfos = new List <PackageSizeInfo>(); if (productDetail.ContainsKey("uploads")) { var uploads = productDetail["uploads"] as IDictionary <string, object>; foreach (var key in uploads.Keys) { var simpleVersion = Regex.Replace(key, @"(?<major>\d+)\.(?<minor>\d+).(?<patch>\d+)[abfp].+", "${major}.${minor}.${patch}"); SemVersion version; if (SemVersion.TryParse(simpleVersion.Trim(), out version)) { var info = uploads[key] as IDictionary <string, object>; var assetCount = info["assetCount"] as string; var downloadSize = info["downloadSize"] as string; m_SizeInfos.Add(new PackageSizeInfo { supportedUnityVersion = version, assetCount = string.IsNullOrEmpty(assetCount) ? 0 : ulong.Parse(assetCount), downloadSize = string.IsNullOrEmpty(downloadSize) ? 0 : ulong.Parse(downloadSize) }); } } m_SizeInfos.Sort((left, right) => left.supportedUnityVersion.CompareByPrecedence(right.supportedUnityVersion)); } m_Links = new List <PackageLink>(); var slug = productDetail.ContainsKey("slug") ? productDetail["slug"] as string : m_PackageUniqueId; m_Links.Add(new PackageLink { name = "View in the Asset Store", url = $"/packages/p/{slug}" }); if (publisher.ContainsKey("url")) { var url = publisher["url"] as string; if (!string.IsNullOrEmpty(url) && Uri.IsWellFormedUriString(url, UriKind.RelativeOrAbsolute)) { m_Links.Add(new PackageLink { name = "Publisher Web Site", url = url }); } } if (publisher.ContainsKey("supportUrl")) { var url = publisher["supportUrl"] as string; if (!string.IsNullOrEmpty(url) && Uri.IsWellFormedUriString(url, UriKind.RelativeOrAbsolute)) { m_Links.Add(new PackageLink { name = "Publisher Support", url = url }); } } if (productDetail.ContainsKey("state")) { var state = productDetail["state"] as string; if (state.Equals("published", StringComparison.InvariantCultureIgnoreCase)) { m_Tag |= PackageTag.Published; } else if (state.Equals("deprecated", StringComparison.InvariantCultureIgnoreCase)) { m_Tag |= PackageTag.Deprecated; } } m_LocalPath = productDetail.ContainsKey("localPath") ? productDetail["localPath"] as string : string.Empty; m_IsAvailableOnDisk = !string.IsNullOrEmpty(m_LocalPath) && File.Exists(m_LocalPath); } catch (Exception e) { m_Errors.Add(new Error(NativeErrorCode.Unknown, e.Message)); } }
/// <summary> /// Update package info. /// </summary> #if UNITY_2019_3_OR_NEWER void UpdatePackageVersions(UpmPackage package, IEnumerable <string> versions) { var pInfo = package.installedVersion as UpmPackageVersion; var json = JsonUtility.ToJson(pInfo.packageInfo); string packageName, repoUrl, installedRefName; PackageUtils.SplitPackageId(pInfo.uniqueId, out packageName, out repoUrl, out installedRefName); Debug.LogFormat("[UpdatePackageVersions] packageName = {0}, count = {1}, current = {2}", package.name, versions.Count(), pInfo.version); var versionInfos = versions .Select(ver => { Debug.LogFormat("[UpdatePackageVersions] version = {0}", ver); var splited = ver.Split(','); var refName = splited[0]; var version = splited[1]; var semver = SemVersion.Parse(version == refName ? version : version + "-" + refName); var info = JsonUtility.FromJson <PackageInfo>(json); Expose.FromObject(info).Set("m_Version", version); Expose.FromObject(info).Set("m_Git", new GitInfo("", refName)); var p = new UpmPackageVersion(info, false, semver, pInfo.displayName); // Update tag. PackageTag tag = PackageTag.Git | PackageTag.Installable | PackageTag.Removable; if ((semver.Major == 0 && string.IsNullOrEmpty(semver.Prerelease)) || PackageTag.Preview.ToString().Equals(semver.Prerelease.Split('.')[0], StringComparison.InvariantCultureIgnoreCase)) { tag |= PackageTag.Preview; } if (semver.IsRelease()) { tag |= PackageTag.Release; } else { if ((semver.Major == 0 && string.IsNullOrEmpty(semver.Prerelease)) || PackageTag.Preview.ToString().Equals(semver.Prerelease.Split('.')[0], StringComparison.InvariantCultureIgnoreCase)) { tag |= PackageTag.Preview; } } Expose.FromObject(p).Set("m_Tag", tag); Expose.FromObject(p).Set("m_IsFullyFetched", true); Expose.FromObject(p).Set("m_PackageId", string.Format("{0}@{1}#{2}", packageName, repoUrl, semver)); return(p); }) .Concat(new[] { pInfo }) .Where(p => p == pInfo || p.version != pInfo.version) .OrderBy(x => x.version) .ToArray(); if (0 < versionInfos.Length) { // Add verify tag on latest version. var latest = versionInfos .Where(x => x.version.IsRelease()) .LastOrDefault(); if (latest != null) { var tag = Expose.FromObject(latest).Get("m_Tag").As <PackageTag>(); tag |= PackageTag.Verified; Expose.FromObject(latest).Set("m_Tag", tag); } // Unlock version tag. var t = Expose.FromObject(pInfo).Get("m_Tag").As <PackageTag>(); Expose.FromObject(pInfo).Set("m_Tag", t & ~PackageTag.VersionLocked); Debug.LogFormat("[UpdatePackageVersions] package source changing"); package.UpdateVersions(versionInfos); } }
public bool HasTag(PackageTag tag) { return(tag == PackageTag.InDevelopment); }
internal VisualElement GetTag(PackageTag tag) { return(Cache.Get <VisualElement>(tag + "Tag")); }
public PlaceholderPackageVersion(string packageUniqueId, string uniqueId, PackageTag tag = PackageTag.None, PackageSource source = PackageSource.Unknown) { m_PackageUniqueId = packageUniqueId; m_UniqueId = uniqueId; m_Tag = tag; }
internal Label GetTagLabel(PackageTag tag) { return(cache.Get <Label>("tag" + tag)); }