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)); } }
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; } })); }
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; } }