コード例 #1
0
        public async Task CompareVersion()
        {
            var result = await updateChecker.CompareRelease();

            switch (result)
            {
            case VersionCompare.Error:
                logger.Warning("Failed to check latest version");
                log(Translate("VersionCheckError"));
                break;

            case VersionCompare.NeedsUpgrade:
                logger.Info("New version is available");
                log(Translate("VersionCheckNeedsUpgrade"));
                break;

            case VersionCompare.NewRelease:
                log(Translate("VersionCheckNewRelease"));
                break;

            case VersionCompare.UpToDate:
                logger.Info("Version is up-to-date");
                log(Translate("VersionCheckUpToDate"));
                break;

            default:
                throw new ArgumentException(nameof(result));
            }
        }
コード例 #2
0
ファイル: App.cs プロジェクト: ledudu/XOutput
        private Task CheckUpdate(UpdateChecker updateChecker, NotificationService notificationService)
        {
            return(updateChecker.CompareRelease(appVersion).ContinueWith(t => {
                switch (t.Result.Result)
                {
                case VersionCompareValues.NeedsUpgrade:
                    notificationService.Add(Notifications.NeedsVersionUpgrade, new List <string>()
                    {
                        t.Result.LatestVersion
                    });
                    break;

                case VersionCompareValues.Error:
                    notificationService.Add(Notifications.VersionCheckError, new List <string>()
                    {
                    }, NotificationTypes.Warning);
                    break;
                }
            }));
        }
コード例 #3
0
        private async void CheckForUpdates()
        {
            updateMessage.text        = "Checking...";
            updateMessage.color       = Color.gray;
            updateButton.interactable = false;

            UpdateChecker.Release release = await UpdateChecker.GetNewestReleaseAsync(CancellationToken.None);

            if (release != null)
            {
                int status = UpdateChecker.CompareRelease(release);
                if (status < 0)
                {
                    // GitHub version is lower than local version, the heck how
                    Plugin.Log.Info("Plugin version is higher than on GitHub???");
                    updateMessage.text = "Higher version";
                }
                else if (status == 0)
                {
                    // GitHub version is the same as local version
                    updateMessage.text = "Up to date";
                }
                else
                {
                    // GitHub version is higher than local version and plugin needs to be updated
                    Plugin.Log.Info("Plugin needs to be updated.");
                    updateMessage.text        = "Update available";
                    updateMessage.color       = Color.green;
                    updateButton.interactable = true;
                }
            }
            else
            {
                // Failed to get release information
                Plugin.Log.Info("Failed to retrieve release information.");
                updateMessage.text  = "Update check failed";
                updateMessage.color = Color.red;
            }
        }