Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion Knossos.NET/Classes/Knossos.cs
Original file line number Diff line number Diff line change
Expand Up @@ -423,12 +423,22 @@ private static async Task CheckKnetUpdates()

if (releaseAsset != null && releaseAsset.browser_download_url != null)
{
if(globalSettings.ignoredLauncherUpdates.Contains(latest.tag_name))
{
Log.Add(Log.LogSeverity.Information, "Knossos.CheckKnetUpdates()", "Launcher update: " + latest.tag_name + " is available, but it was skipped because it is on the ignore list.");
return;
}
if (!forceUpdateDownload && !globalSettings.autoUpdate)
{
MessageBox.MessageBoxResult result = MessageBox.MessageBoxResult.Cancel;
await Dispatcher.UIThread.Invoke(async () => {
result = await MessageBox.Show(null, "Knossos.NET " + latest.tag_name + ":\n" + latest.body + "\n\n\nIf you continue Knossos.NET will be re-started after download.", "An update is available", MessageBox.MessageBoxButtons.ContinueCancel);
result = await MessageBox.Show(null, "Knossos.NET " + latest.tag_name + ":\n" + latest.body + "\n\n\nIf you continue Knossos.NET will be re-started after download.", "An update is available", MessageBox.MessageBoxButtons.ContinueCancelSkipVersion);
}).ConfigureAwait(false);
if(result == MessageBox.MessageBoxResult.SkipVersion)
{
globalSettings.ignoredLauncherUpdates.Add(latest.tag_name);
globalSettings.Save();
}
if (result != MessageBox.MessageBoxResult.Continue)
{
return;
Expand Down
5 changes: 5 additions & 0 deletions Knossos.NET/Models/GlobalSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
using Avalonia.Threading;
using Knossos.NET.ViewModels;
using System.Threading.Tasks;
using System.Collections.Generic;

namespace Knossos.NET.Models
{
Expand Down Expand Up @@ -120,6 +121,9 @@ public AutoUpdateFsoBuilds(bool stable = false, bool rc = false, bool nightly =
public AutoUpdateFsoBuilds autoUpdateBuilds { get; set; } = new AutoUpdateFsoBuilds();
[JsonPropertyName("warn_new_settings_system")]
public bool warnNewSettingsSystem { get; set; } = true;
[JsonPropertyName("ignored_launcher_updates")]
public List<string> ignoredLauncherUpdates { get; set; } = new List<string>();


/*
* Settings that can wait to be saved at app close so we dont have to call save() all the time
Expand Down Expand Up @@ -670,6 +674,7 @@ public void Load()
mainMenuOpen = tempSettings.mainMenuOpen;
sortType = tempSettings.sortType;
portableFsoPreferences = tempSettings.portableFsoPreferences;
ignoredLauncherUpdates = tempSettings.ignoredLauncherUpdates;

ReadFS2IniValues();
Log.Add(Log.LogSeverity.Information, "GlobalSettings.Load()", "Global settings have been loaded");
Expand Down
15 changes: 11 additions & 4 deletions Knossos.NET/Views/Windows/MessageBox.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ public enum MessageBoxButtons
Details,
DetailsOKCancel,
DetailsContinueCancel,
DontWarnAgainOK
DontWarnAgainOK,
ContinueCancelSkipVersion,
}

public enum MessageBoxResult
Expand All @@ -29,7 +30,8 @@ public enum MessageBoxResult
No,
Continue,
Details,
DontWarnAgain
DontWarnAgain,
SkipVersion
}

public MessageBox()
Expand Down Expand Up @@ -84,12 +86,12 @@ void AddButton(string caption, MessageBoxResult r, bool def = false, string clas
AddButton("No", MessageBoxResult.No, true, "Cancel");
}

if (buttons == MessageBoxButtons.Continue || buttons == MessageBoxButtons.ContinueCancel || buttons == MessageBoxButtons.DetailsContinueCancel)
if (buttons == MessageBoxButtons.Continue || buttons == MessageBoxButtons.ContinueCancel || buttons == MessageBoxButtons.DetailsContinueCancel || buttons == MessageBoxButtons.ContinueCancelSkipVersion)
{
AddButton("Continue", MessageBoxResult.Continue, false, "Accept");
}

if (buttons == MessageBoxButtons.OKCancel || buttons == MessageBoxButtons.YesNoCancel || buttons == MessageBoxButtons.ContinueCancel || buttons == MessageBoxButtons.DetailsOKCancel || buttons == MessageBoxButtons.DetailsContinueCancel)
if (buttons == MessageBoxButtons.OKCancel || buttons == MessageBoxButtons.YesNoCancel || buttons == MessageBoxButtons.ContinueCancel || buttons == MessageBoxButtons.DetailsOKCancel || buttons == MessageBoxButtons.DetailsContinueCancel || buttons == MessageBoxButtons.ContinueCancelSkipVersion)
{
AddButton("Cancel", MessageBoxResult.Cancel, true, "Cancel");
}
Expand All @@ -105,6 +107,11 @@ void AddButton(string caption, MessageBoxResult r, bool def = false, string clas
AddButton("Don't warn again", MessageBoxResult.DontWarnAgain, false, "Option", 150);
}

if (buttons == MessageBoxButtons.ContinueCancelSkipVersion)
{
AddButton("Skip this version", MessageBoxResult.SkipVersion, false, "Option", 150);
}

var tcs = new TaskCompletionSource<MessageBoxResult>();
msgbox.Closed += delegate { tcs.TrySetResult(result); };

Expand Down