mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
Fix dev build update check
This commit is contained in:
parent
231febfe39
commit
2da874509a
5 changed files with 32 additions and 26 deletions
|
@ -26,7 +26,6 @@ You should have received a copy of the GNU General Public License
|
|||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace ShareX.HelpersLib
|
||||
{
|
||||
|
@ -40,6 +39,7 @@ public class GitHubUpdateChecker : UpdateChecker
|
|||
private const string APIURL = "https://api.github.com";
|
||||
|
||||
private string ReleasesURL => $"{APIURL}/repos/{Owner}/{Repo}/releases";
|
||||
private string LatestReleaseURL => $"{ReleasesURL}/latest";
|
||||
|
||||
public GitHubUpdateChecker(string owner, string repo)
|
||||
{
|
||||
|
@ -105,22 +105,36 @@ protected List<GitHubRelease> GetReleases()
|
|||
return releases;
|
||||
}
|
||||
|
||||
protected GitHubRelease GetLatestRelease()
|
||||
{
|
||||
GitHubRelease latestRelease = null;
|
||||
|
||||
string response = URLHelpers.DownloadString(LatestReleaseURL);
|
||||
|
||||
if (!string.IsNullOrEmpty(response))
|
||||
{
|
||||
latestRelease = JsonConvert.DeserializeObject<GitHubRelease>(response);
|
||||
}
|
||||
|
||||
return latestRelease;
|
||||
}
|
||||
|
||||
protected GitHubRelease GetLatestRelease(bool includePreRelease)
|
||||
{
|
||||
GitHubRelease latestRelease = null;
|
||||
|
||||
List<GitHubRelease> releases = GetReleases();
|
||||
|
||||
if (releases != null && releases.Count > 0)
|
||||
if (includePreRelease)
|
||||
{
|
||||
if (includePreRelease)
|
||||
List<GitHubRelease> releases = GetReleases();
|
||||
|
||||
if (releases != null && releases.Count > 0)
|
||||
{
|
||||
latestRelease = releases[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
latestRelease = releases.FirstOrDefault(x => !x.prerelease);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
latestRelease = GetLatestRelease();
|
||||
}
|
||||
|
||||
return latestRelease;
|
||||
|
|
|
@ -36,7 +36,6 @@ public class GitHubUpdateManager : IDisposable
|
|||
public TimeSpan UpdateCheckInterval { get; private set; } = TimeSpan.FromHours(1);
|
||||
public string GitHubOwner { get; set; }
|
||||
public string GitHubRepo { get; set; }
|
||||
public bool IsDev { get; set; } // If current build is dev and latest stable release is same version as current build then it will be downloaded
|
||||
public bool IsPortable { get; set; } // If current build is portable then download URL will be opened in browser instead of downloading it
|
||||
public bool CheckPreReleaseUpdates { get; set; }
|
||||
|
||||
|
@ -44,15 +43,10 @@ public class GitHubUpdateManager : IDisposable
|
|||
private Timer updateTimer = null;
|
||||
private readonly object updateTimerLock = new object();
|
||||
|
||||
public GitHubUpdateManager(string owner, string repo)
|
||||
public GitHubUpdateManager(string owner, string repo, bool portable = false)
|
||||
{
|
||||
GitHubOwner = owner;
|
||||
GitHubRepo = repo;
|
||||
}
|
||||
|
||||
public GitHubUpdateManager(string owner, string repo, bool dev, bool portable) : this(owner, repo)
|
||||
{
|
||||
IsDev = dev;
|
||||
IsPortable = portable;
|
||||
}
|
||||
|
||||
|
@ -94,7 +88,6 @@ public GitHubUpdateChecker CreateUpdateChecker()
|
|||
{
|
||||
return new GitHubUpdateChecker(GitHubOwner, GitHubRepo)
|
||||
{
|
||||
IsDev = IsDev,
|
||||
IsPortable = IsPortable,
|
||||
IncludePreRelease = CheckPreReleaseUpdates
|
||||
};
|
||||
|
|
|
@ -38,7 +38,7 @@ public partial class UpdateMessageBox : Form
|
|||
|
||||
protected override bool ShowWithoutActivation => !ActivateWindow;
|
||||
|
||||
public UpdateMessageBox(UpdateChecker updateChecker, bool activateWindow = true, bool devBuild = false)
|
||||
public UpdateMessageBox(UpdateChecker updateChecker, bool activateWindow = true)
|
||||
{
|
||||
ActivateWindow = activateWindow;
|
||||
|
||||
|
@ -68,20 +68,19 @@ public UpdateMessageBox(UpdateChecker updateChecker, bool activateWindow = true,
|
|||
sbText.Append(Resources.UpdateMessageBox_UpdateMessageBox_CurrentVersion);
|
||||
sbText.Append(": ");
|
||||
sbText.Append(updateChecker.CurrentVersion);
|
||||
if (updateChecker.IsDev) sbText.Append(" Dev");
|
||||
sbText.AppendLine();
|
||||
sbText.Append(Resources.UpdateMessageBox_UpdateMessageBox_LatestVersion);
|
||||
sbText.Append(": ");
|
||||
sbText.Append(updateChecker.LatestVersion);
|
||||
if (devBuild) sbText.Append(" Dev");
|
||||
if (updateChecker.IsDev) sbText.Append(" Dev");
|
||||
if (updateChecker is GitHubUpdateChecker githubUpdateChecker && githubUpdateChecker.IsPreRelease) sbText.Append(" (Pre-release)");
|
||||
|
||||
lblText.Text = sbText.ToString();
|
||||
|
||||
lblViewChangelog.Visible = !devBuild;
|
||||
lblViewChangelog.Visible = !updateChecker.IsDev;
|
||||
}
|
||||
|
||||
public static DialogResult Start(UpdateChecker updateChecker, bool activateWindow = true, bool devBuild = false)
|
||||
public static DialogResult Start(UpdateChecker updateChecker, bool activateWindow = true)
|
||||
{
|
||||
DialogResult result = DialogResult.None;
|
||||
|
||||
|
@ -91,7 +90,7 @@ public static DialogResult Start(UpdateChecker updateChecker, bool activateWindo
|
|||
|
||||
try
|
||||
{
|
||||
using (UpdateMessageBox messageBox = new UpdateMessageBox(updateChecker, activateWindow, devBuild))
|
||||
using (UpdateMessageBox messageBox = new UpdateMessageBox(updateChecker, activateWindow))
|
||||
{
|
||||
result = messageBox.ShowDialog();
|
||||
}
|
||||
|
|
|
@ -355,7 +355,7 @@ private static void Run()
|
|||
SettingManager.LoadInitialSettings();
|
||||
|
||||
Uploader.UpdateServicePointManager();
|
||||
UpdateManager = new GitHubUpdateManager("ShareX", "ShareX", Dev, Portable);
|
||||
UpdateManager = new GitHubUpdateManager("ShareX", "ShareX", Portable);
|
||||
LanguageHelper.ChangeLanguage(Settings.Language);
|
||||
CleanupManager.CleanupAsync();
|
||||
Helpers.TryFixHandCursor();
|
||||
|
|
|
@ -1880,7 +1880,7 @@ public static async Task DownloadDevBuild()
|
|||
|
||||
await updateChecker.CheckUpdateAsync();
|
||||
|
||||
UpdateMessageBox.Start(updateChecker, true, true);
|
||||
UpdateMessageBox.Start(updateChecker, true);
|
||||
}
|
||||
|
||||
public static async Task DownloadAppVeyorBuild()
|
||||
|
@ -1894,7 +1894,7 @@ public static async Task DownloadAppVeyorBuild()
|
|||
|
||||
await updateChecker.CheckUpdateAsync();
|
||||
|
||||
UpdateMessageBox.Start(updateChecker, true, true);
|
||||
UpdateMessageBox.Start(updateChecker, true);
|
||||
}
|
||||
|
||||
public static Image CreateQRCode(string text, int width, int height)
|
||||
|
|
Loading…
Reference in a new issue