Skip to content

Commit 337ea6f

Browse files
committed
fix(Update): Only notify about the latest version, not all version higher than the current one
Fixes #806
1 parent f96f86b commit 337ea6f

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

SoundSwitch/Framework/Updater/UpdateChecker.cs

+10-3
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,11 @@ public UpdateChecker(Uri releaseUrl, bool checkBeta)
4545
Beta = checkBeta;
4646
}
4747

48-
private bool ProcessRelease(Release serverRelease)
48+
/// <summary>
49+
/// Process the release, and notify about it if it's newer than the version of the app.
50+
/// </summary>
51+
/// <returns>true if the release is newer and has been notified</returns>
52+
private bool ProcessAndNotifyRelease(Release serverRelease)
4953
{
5054
Log.Information("Checking version {version} ", serverRelease);
5155
if (serverRelease.Prerelease && !Beta)
@@ -91,10 +95,13 @@ public async Task CheckForUpdate(CancellationToken token)
9195
httpClient.DefaultRequestHeaders.UserAgent.Add(ApplicationInfo.CommentValue);
9296
httpClient.DefaultRequestHeaders.Accept.Add(MediaTypeWithQualityHeaderValue.Parse("application/json"));
9397
var releases = await httpClient.GetFromJsonAsync(_releaseUrl, GithubReleasesJsonContext.Default.ReleaseArray, token);
94-
foreach (var release in releases ?? Array.Empty<Release>())
98+
foreach (var release in (releases ?? Array.Empty<Release>()).OrderByDescending(release => new Version(release.TagName.Substring(1))))
9599
{
96100
token.ThrowIfCancellationRequested();
97-
ProcessRelease(release);
101+
if (ProcessAndNotifyRelease(release))
102+
{
103+
break;
104+
}
98105
}
99106
}
100107

0 commit comments

Comments
 (0)