private VisualElement RenderPackage(string name, PackageLock.Dependency package) { Box row = new Box(); row.style.borderTopWidth = new StyleFloat(0f); row.style.borderRightWidth = new StyleFloat(0f); row.style.borderBottomWidth = new StyleFloat(0f); row.style.borderLeftWidth = new StyleFloat(0f); row.style.flexDirection = FlexDirection.Row; row.style.minHeight = new StyleLength(25f); TextElement packageName = new TextElement(); packageName.text = name != "com.rellfy.gupu" ? name : "Git Package Updater"; packageName.style.width = new StyleLength(new Length(50, LengthUnit.Percent)); packageName.style.unityTextAlign = new StyleEnum <TextAnchor>( TextAnchor.MiddleCenter ); packageName.style.unityFontStyleAndWeight = new StyleEnum <FontStyle>(FontStyle.Bold); row.Add(packageName); VisualElement status; if (IsPackageUpdated(package, out string hash)) { TextElement updatedText = new TextElement(); updatedText.text = "latest"; updatedText.style.unityTextAlign = new StyleEnum <TextAnchor>( TextAnchor.MiddleCenter ); status = updatedText; } else { Button update = new Button(); update.text = "Update"; update.clickable.clicked += () => UpdatePackage(name, hash); status = update; } status.style.width = new StyleLength(new Length(50, LengthUnit.Percent)); row.Add(status); return(row); }
private bool IsPackageUpdated(PackageLock.Dependency package, out string hash) { hash = Updater.GetLastCommitHash(package.version); return(package.hash == hash); }