Skip to content

Commit c33669f

Browse files
authored
1915 Skip update version (#1926)
* Skip update version #1915 * override skip with user request #1915
1 parent b28b9a7 commit c33669f

16 files changed

+155
-10
lines changed

OneMore/Commands/Tools/UpdateCommand.cs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//************************************************************************************************
2-
// Copyright © 2021 Steven M Cohn. All rights reserved.
2+
// Copyright © 2021 Steven M Cohn. All rights reserved.
33
//************************************************************************************************
44

55
namespace River.OneMoreAddIn.Commands
@@ -24,9 +24,12 @@ public UpdateCommand()
2424

2525
public override async Task Execute(params object[] args)
2626
{
27+
// intentional user request from About box; otherwise, silent check on startup
28+
var requested = args.Length > 0 && args[0] is bool req && req;
29+
2730
if (!HttpClientFactory.IsNetworkAvailable())
2831
{
29-
if (args.Length > 0 && args[0] is bool report && report)
32+
if (requested)
3033
{
3134
ShowInfo(Properties.Resources.NetwordConnectionUnavailable);
3235
}
@@ -38,7 +41,7 @@ public override async Task Execute(params object[] args)
3841

3942
if (!await updater.FetchLatestRelease())
4043
{
41-
if (args.Length > 0 && args[0] is bool report && report)
44+
if (requested)
4245
{
4346
MoreMessageBox.ShowErrorWithLogLink(owner,
4447
"Error fetching latest release; please see logs");
@@ -47,9 +50,16 @@ public override async Task Execute(params object[] args)
4750
return;
4851
}
4952

53+
// user previously asked to skip this release and has not intentionally
54+
// requested for a new update check from the About box
55+
if (updater.IsSkippedRelease && !requested)
56+
{
57+
return;
58+
}
59+
5060
if (updater.IsUpToDate)
5161
{
52-
if (args.Length > 0 && args[0] is bool report && report)
62+
if (requested)
5363
{
5464
// up to date...
5565
using var dialog = new UpdateDialog(updater);
@@ -60,10 +70,15 @@ public override async Task Execute(params object[] args)
6070
}
6171

6272
using var question = new UpdateDialog(updater);
63-
if (question.ShowDialog(owner) == DialogResult.OK)
73+
var result = question.ShowDialog(owner);
74+
if (result == DialogResult.OK)
6475
{
6576
Updated = await updater.Update();
6677
}
78+
else if (result == DialogResult.Ignore)
79+
{
80+
updater.SkipRelease();
81+
}
6782
}
6883
}
6984
}

OneMore/Commands/Tools/UpdateDialog.Designer.cs

Lines changed: 48 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

OneMore/Commands/Tools/UpdateDialog.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public UpdateDialog(IUpdateReport info)
6767
"upCurrentVersionLabel",
6868
"upLastUpdatedLabel=UpdateDialog_lastUpdatedLabel",
6969
"upOKButton",
70+
"upSkipButton",
7071
"cancelButton=word_Cancel"
7172
});
7273
}
@@ -134,5 +135,11 @@ private void TimerTick(object sender, EventArgs e)
134135
{
135136
TopMost = true;
136137
}
138+
139+
private void SkipRelease(object sender, EventArgs e)
140+
{
141+
DialogResult = upSkipButton.DialogResult;
142+
Close();
143+
}
137144
}
138145
}

OneMore/Commands/Tools/Updater/Updater.cs

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//************************************************************************************************
2-
// Copyright © 2020 Steven M Cohn. All rights reserved.
2+
// Copyright © 2020 Steven M Cohn. All rights reserved.
33
//************************************************************************************************
44

55
#pragma warning disable S1075 // URIs should not be hardcoded
@@ -23,14 +23,15 @@ namespace River.OneMoreAddIn.Commands.Tools.Updater
2323
internal class Updater : Loggable, IUpdateReport
2424
{
2525
private const string LatestUrl = "https://api.github.com/repos/stevencohn/onemore/releases";
26-
private const string Latest = "/latest";
26+
//private const string Latest = "/latest";
2727
private const string LatestN = "?per_page=5";
2828
private const string TagUrl = "https://github.com/stevencohn/OneMore/releases/tag";
2929

3030
private GitRelease release;
3131
private readonly string productCode;
3232

3333

34+
public bool IsSkippedRelease { get; private set; }
3435
public bool IsUpToDate { get; private set; }
3536
public string InstalledDate { get; private set; }
3637
public string InstalledUrl { get; private set; }
@@ -171,6 +172,13 @@ public async Task<bool> FetchLatestRelease()
171172
var releaseVersion = new Version(plainver);
172173
IsUpToDate = currentVersion >= releaseVersion;
173174

175+
// check if this version is skipped...
176+
var collection = new Settings.SettingsProvider().GetCollection("General");
177+
if (collection.Get<string>("SkippedUpdateVersion") == release.tag_name)
178+
{
179+
IsSkippedRelease = true;
180+
}
181+
174182
return true;
175183
}
176184

@@ -181,6 +189,16 @@ public async Task<bool> FetchLatestRelease()
181189
}
182190

183191

192+
public void SkipRelease()
193+
{
194+
var provider = new Settings.SettingsProvider();
195+
var collection = provider.GetCollection("General");
196+
collection.Add("SkippedUpdateVersion", UpdateVersion);
197+
provider.SetCollection(collection);
198+
provider.Save();
199+
}
200+
201+
184202
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
185203

186204
public async Task<bool> Update()
@@ -261,6 +279,13 @@ public async Task<bool> Update()
261279
#endif
262280
});
263281

282+
// reset skipped version
283+
var provider = new Settings.SettingsProvider();
284+
var collection = provider.GetCollection("General");
285+
collection.Remove("SkippedUpdateVersion");
286+
provider.SetCollection(collection);
287+
provider.Save();
288+
264289
return true;
265290
}
266291
}

OneMore/Properties/Resources.Designer.cs

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

OneMore/Properties/Resources.ar-SA.resx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5234,6 +5234,10 @@ ISO-code then comma then language name</comment>
52345234
<value>تحديث</value>
52355235
<comment>button</comment>
52365236
</data>
5237+
<data name="UpdateDialog_upSkipButton.Text" xml:space="preserve">
5238+
<value>يتخطى</value>
5239+
<comment>button</comment>
5240+
</data>
52375241
<data name="UpdateDialog_upVersionLabel.Text" xml:space="preserve">
52385242
<value>تحديث الإصدار:</value>
52395243
<comment>label</comment>

OneMore/Properties/Resources.de-DE.resx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5229,6 +5229,10 @@ Umkehren</value>
52295229
<value>Aktualisieren</value>
52305230
<comment>button</comment>
52315231
</data>
5232+
<data name="UpdateDialog_upSkipButton.Text" xml:space="preserve">
5233+
<value>Überspringen</value>
5234+
<comment>button</comment>
5235+
</data>
52325236
<data name="UpdateDialog_upVersionLabel.Text" xml:space="preserve">
52335237
<value>Update-Version:</value>
52345238
<comment>label</comment>

OneMore/Properties/Resources.es-ES.resx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5234,6 +5234,10 @@ Invertir</value>
52345234
<value>Actualizar</value>
52355235
<comment>button</comment>
52365236
</data>
5237+
<data name="UpdateDialog_upSkipButton.Text" xml:space="preserve">
5238+
<value>Saltar</value>
5239+
<comment>button</comment>
5240+
</data>
52375241
<data name="UpdateDialog_upVersionLabel.Text" xml:space="preserve">
52385242
<value>Versión actualizada:</value>
52395243
<comment>label</comment>

OneMore/Properties/Resources.fr-FR.resx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5232,6 +5232,10 @@ Inverser</value>
52325232
<value>Mettre à jour</value>
52335233
<comment>button</comment>
52345234
</data>
5235+
<data name="UpdateDialog_upSkipButton.Text" xml:space="preserve">
5236+
<value>Sauter</value>
5237+
<comment>button</comment>
5238+
</data>
52355239
<data name="UpdateDialog_upVersionLabel.Text" xml:space="preserve">
52365240
<value>Version de mise à jour :</value>
52375241
<comment>label</comment>

OneMore/Properties/Resources.he-IL.resx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5233,6 +5233,10 @@ ISO-code then comma then language name</comment>
52335233
<value>עדכון</value>
52345234
<comment>button</comment>
52355235
</data>
5236+
<data name="UpdateDialog_upSkipButton.Text" xml:space="preserve">
5237+
<value>לְדַלֵג</value>
5238+
<comment>button</comment>
5239+
</data>
52365240
<data name="UpdateDialog_upVersionLabel.Text" xml:space="preserve">
52375241
<value>עדכון גירסא:</value>
52385242
<comment>label</comment>

0 commit comments

Comments
 (0)