public static async void GetUnityToolboxLatestVersionAsync(Action <UnityToolboxVersion> onVersionRetrieved)
        {
            try
            {
                using (HttpClient client = new HttpClient())
                {
                    var packageJson = await client.GetStringAsync(UnityToolboxPackageInfoURL);

                    var versionRaw = RetrievePackageVersionOutOfJson(packageJson);
                    if (versionRaw == null)
                    {
                        Debug.LogWarning("UnityToolbox was unable to parse package.json :(");
                        return;
                    }

                    var version = new UnityToolboxVersion(versionRaw);
                    if (onVersionRetrieved != null)
                    {
                        onVersionRetrieved(version);
                    }
                }
            }
            catch (HttpRequestException requestException)
            {
                Debug.LogWarning("UnityToolbox is unable to check version online :(. Exception is: " + requestException.Message);
            }
        }
        private void OnEnable()
        {
            _windowInstance = this;

            _installedVersion = UnityToolboxUtilities.GetUnityToolboxInstalledVersion();
            UnityToolboxUtilities.GetUnityToolboxLatestVersionAsync(version =>
            {
                _latestVersion = version;
                if (_windowInstance != null)
                {
                    _windowInstance.Repaint();
                }
            });
        }
 static UnityToolboxUpdateWindow()
 {
     if (AutoUpdateCheckIsEnabled)
     {
         UnityToolboxUtilities.GetUnityToolboxLatestVersionAsync(version =>
         {
             _installedVersion = UnityToolboxUtilities.GetUnityToolboxInstalledVersion();
             _latestVersion    = version;
             if (!_installedVersion.VersionsMatch(_latestVersion))
             {
                 var versions = "Installed version: " + _installedVersion.AsSting + ". Latest version: " + _latestVersion.AsSting;
                 Debug.Log("It's time to update UnityToolbox :)! Use \"Tools/UnityToolbox/Update UnityToolbox\". " + versions);
             }
         });
     }
 }
        public static UnityToolboxVersion GetUnityToolboxInstalledVersion()
        {
            var packageJsonPath = PackageJsonPath;

            if (packageJsonPath == null)
            {
                Debug.LogWarning("UnityToolbox is unable to check installed version :(");
                return(null);
            }

            var packageJsonContents = File.ReadAllText(packageJsonPath);
            var versionRaw          = RetrievePackageVersionOutOfJson(packageJsonContents);

            if (versionRaw == null)
            {
                Debug.LogWarning("UnityToolbox was unable to parse package.json :(");
                return(null);
            }

            var version = new UnityToolboxVersion(versionRaw);

            return(version);
        }
 public bool VersionsMatch(UnityToolboxVersion version)
 {
     return(BaseVersionMatch(version) && Patch == version.Patch);
 }
 /// <summary>
 /// Major & Minor versions match, skip patch releases
 /// </summary>
 public bool BaseVersionMatch(UnityToolboxVersion version)
 {
     return(Major == version.Major && Minor == version.Minor);
 }