Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        private static bool IsReadyToShow(Sdk sdk)
        {
            if (sdk == null)
            {
                return(false);
            }

            var currentVersion = sdk.currentVersion;
            var latestVersion  = sdk.version;

            return(!string.IsNullOrEmpty(latestVersion) &&
                   (!string.IsNullOrEmpty(currentVersion) ||
                    VersionUtils.CompareVersions(currentVersion, latestVersion) < 0) &&
                   !HasShown(sdk));
        }
Esempio n. 3
0
        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);
        }