private IEnumerator CheckSelfUpdate() { yield return(null); _selfUpdateStatus = "Checking for new versions of SDK Manager"; var unityWebRequest = new UnityWebRequest(ManifestSource.SelfUpdateURL) { downloadHandler = new DownloadHandlerBuffer(), timeout = 10, }; if (!string.IsNullOrEmpty(unityWebRequest.error)) { Debug.LogError(unityWebRequest.error); } yield return(unityWebRequest.SendWebRequest()); var responseJson = unityWebRequest.downloadHandler.text; if (string.IsNullOrEmpty(responseJson)) { Debug.LogError("Unable to retrieve SDK Manager manifest"); yield break; } unityWebRequest.Dispose(); selfUpdateSdk = JsonUtility.FromJson <Sdk>(responseJson); if (selfUpdateSdk == null) { yield break; } var currentVersion = ElephantSdkManagerVersion.SDK_VERSION.Replace("v", string.Empty); var latestVersion = selfUpdateSdk.version.Replace("v", string.Empty); if (VersionUtils.CompareVersions(currentVersion, latestVersion) < 0 && !VersionUtils.IsEqualVersion(currentVersion, latestVersion)) { _selfUpdateStatus = "New Version Available"; _canUpdateSelf = true; } else { _selfUpdateStatus = "Up To Date"; _canUpdateSelf = false; } }
private void SdkRow(Sdk sdkInfo, Func <bool, bool> customButton = null) { var sdkName = sdkInfo.sdkName; var latestVersion = sdkInfo.version.Replace("v", string.Empty); var cur = sdkInfo.currentVersion; cur = !string.IsNullOrEmpty(cur) ? sdkInfo.currentVersion.Replace("v", string.Empty) : ""; var isInst = !string.IsNullOrEmpty(cur); var canInst = !string.IsNullOrEmpty(latestVersion) && (!isInst || VersionUtils.CompareVersions(cur, latestVersion) < 0); var stillWorking = _editorCoroutine != null || _downloader != null; GUILayout.Space(4); using (new EditorGUILayout.HorizontalScope(GUILayout.ExpandWidth(false))) { GUILayout.Space(10); EditorGUILayout.LabelField(new GUIContent { text = sdkName }); GUILayout.Button(new GUIContent { text = string.IsNullOrEmpty(cur) ? "--" : cur, }, canInst ? EditorStyles.boldLabel : EditorStyles.label); GUILayout.Space(3); GUILayout.Button(new GUIContent { text = latestVersion ?? "--", }, canInst ? EditorStyles.boldLabel : EditorStyles.label); GUILayout.Space(3); if (customButton == null || !customButton(canInst)) { GUI.enabled = !stillWorking && (canInst) && !VersionUtils.IsEqualVersion(cur, latestVersion); if (GUILayout.Button(new GUIContent { text = isInst ? "Upgrade" : "Install", }, _fieldWidth)) { this.StartCoroutine(DownloadSDK(sdkInfo)); } GUI.enabled = true; } GUILayout.Space(5); } GUILayout.Space(4); }