Skip to content

Commit 432a9ca

Browse files
committed
feature: show current version and the publish date of new version (#1930)
Signed-off-by: leo <longshuang@msn.cn>
1 parent 79f44c7 commit 432a9ca

File tree

6 files changed

+53
-16
lines changed

6 files changed

+53
-16
lines changed

src/App.JsonCodeGen.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Globalization;
34
using System.Text.Json;
45
using System.Text.Json.Serialization;
56

@@ -8,6 +9,21 @@
89

910
namespace SourceGit
1011
{
12+
public class DateTimeConverter : JsonConverter<DateTime>
13+
{
14+
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
15+
{
16+
return DateTime.ParseExact(reader.GetString(), FORMAT, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal).ToLocalTime();
17+
}
18+
19+
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
20+
{
21+
writer.WriteStringValue(value.ToUniversalTime().ToString(FORMAT));
22+
}
23+
24+
private const string FORMAT = "yyyy-MM-ddTHH:mm:ssZ";
25+
}
26+
1127
public class ColorConverter : JsonConverter<Color>
1228
{
1329
public override Color Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
@@ -54,6 +70,7 @@ public override void Write(Utf8JsonWriter writer, DataGridLength value, JsonSeri
5470
IgnoreReadOnlyFields = true,
5571
IgnoreReadOnlyProperties = true,
5672
Converters = [
73+
typeof(DateTimeConverter),
5774
typeof(ColorConverter),
5875
typeof(GridLengthConverter),
5976
typeof(DataGridLengthConverter),

src/Models/SelfUpdate.cs

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,28 @@ public class Version
1212
[JsonPropertyName("tag_name")]
1313
public string TagName { get; set; }
1414

15+
[JsonPropertyName("published_at")]
16+
public DateTime PublishedAt { get; set; }
17+
1518
[JsonPropertyName("body")]
1619
public string Body { get; set; }
1720

18-
public bool IsNewVersion
21+
[JsonIgnore]
22+
public System.Version CurrentVersion { get; }
23+
24+
[JsonIgnore]
25+
public string CurrentVersionStr => $"v{CurrentVersion.Major}.{CurrentVersion.Minor:D2}";
26+
27+
[JsonIgnore]
28+
public bool IsNewVersion => CurrentVersion.CompareTo(new System.Version(TagName.Substring(1))) < 0;
29+
30+
[JsonIgnore]
31+
public string ReleaseDateStr => PublishedAt.ToString(DateTimeFormat.Active.DateOnly);
32+
33+
public Version()
1934
{
20-
get
21-
{
22-
try
23-
{
24-
System.Version version = new System.Version(TagName.Substring(1));
25-
System.Version current = Assembly.GetExecutingAssembly().GetName().Version!;
26-
return current.CompareTo(version) < 0;
27-
}
28-
catch
29-
{
30-
return false;
31-
}
32-
}
35+
var assembly = Assembly.GetExecutingAssembly().GetName();
36+
CurrentVersion = assembly.Version ?? new System.Version();
3337
}
3438
}
3539

src/Resources/Locales/en_US.axaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -815,9 +815,11 @@
815815
<x:String x:Key="Text.ScanRepositories.UseCustomDir" xml:space="preserve">Scan another custom directory</x:String>
816816
<x:String x:Key="Text.SelfUpdate" xml:space="preserve">Check for Updates...</x:String>
817817
<x:String x:Key="Text.SelfUpdate.Available" xml:space="preserve">New version of this software is available: </x:String>
818+
<x:String x:Key="Text.SelfUpdate.CurrentVersion" xml:space="preserve">Current Version: </x:String>
818819
<x:String x:Key="Text.SelfUpdate.Error" xml:space="preserve">Check for updates failed!</x:String>
819820
<x:String x:Key="Text.SelfUpdate.GotoDownload" xml:space="preserve">Download</x:String>
820821
<x:String x:Key="Text.SelfUpdate.IgnoreThisVersion" xml:space="preserve">Skip This Version</x:String>
822+
<x:String x:Key="Text.SelfUpdate.ReleaseDate" xml:space="preserve">New Version Release Date: </x:String>
821823
<x:String x:Key="Text.SelfUpdate.Title" xml:space="preserve">Software Update</x:String>
822824
<x:String x:Key="Text.SelfUpdate.UpToDate" xml:space="preserve">There are currently no updates available.</x:String>
823825
<x:String x:Key="Text.SetSubmoduleBranch" xml:space="preserve">Set Submodule's Branch</x:String>

src/Resources/Locales/zh_CN.axaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -819,9 +819,11 @@
819819
<x:String x:Key="Text.ScanRepositories.UseCustomDir" xml:space="preserve">扫描其他自定义路径</x:String>
820820
<x:String x:Key="Text.SelfUpdate" xml:space="preserve">检测更新...</x:String>
821821
<x:String x:Key="Text.SelfUpdate.Available" xml:space="preserve">检测到软件有版本更新: </x:String>
822+
<x:String x:Key="Text.SelfUpdate.CurrentVersion" xml:space="preserve">当前版本 :</x:String>
822823
<x:String x:Key="Text.SelfUpdate.Error" xml:space="preserve">获取最新版本信息失败!</x:String>
823824
<x:String x:Key="Text.SelfUpdate.GotoDownload" xml:space="preserve">下 载</x:String>
824825
<x:String x:Key="Text.SelfUpdate.IgnoreThisVersion" xml:space="preserve">忽略此版本</x:String>
826+
<x:String x:Key="Text.SelfUpdate.ReleaseDate" xml:space="preserve">新版发布时间 :</x:String>
825827
<x:String x:Key="Text.SelfUpdate.Title" xml:space="preserve">软件更新</x:String>
826828
<x:String x:Key="Text.SelfUpdate.UpToDate" xml:space="preserve">当前已是最新版本。</x:String>
827829
<x:String x:Key="Text.SetSubmoduleBranch" xml:space="preserve">修改子模块追踪分支</x:String>

src/Resources/Locales/zh_TW.axaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -819,9 +819,11 @@
819819
<x:String x:Key="Text.ScanRepositories.UseCustomDir" xml:space="preserve">掃描其他自訂目錄</x:String>
820820
<x:String x:Key="Text.SelfUpdate" xml:space="preserve">檢查更新...</x:String>
821821
<x:String x:Key="Text.SelfUpdate.Available" xml:space="preserve">軟體有版本更新:</x:String>
822+
<x:String x:Key="Text.SelfUpdate.CurrentVersion" xml:space="preserve">目前版本: </x:String>
822823
<x:String x:Key="Text.SelfUpdate.Error" xml:space="preserve">取得最新版本資訊失敗!</x:String>
823824
<x:String x:Key="Text.SelfUpdate.GotoDownload" xml:space="preserve">下載</x:String>
824825
<x:String x:Key="Text.SelfUpdate.IgnoreThisVersion" xml:space="preserve">忽略此版本</x:String>
826+
<x:String x:Key="Text.SelfUpdate.ReleaseDate" xml:space="preserve">新版本發行日期: </x:String>
825827
<x:String x:Key="Text.SelfUpdate.Title" xml:space="preserve">軟體更新</x:String>
826828
<x:String x:Key="Text.SelfUpdate.UpToDate" xml:space="preserve">目前已是最新版本。</x:String>
827829
<x:String x:Key="Text.SetSubmoduleBranch" xml:space="preserve">設定子模組的追蹤分支</x:String>

src/Views/SelfUpdate.axaml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,25 @@
5151
</Border>
5252
</StackPanel>
5353

54+
<TextBlock Margin="0,8,0,0">
55+
<Run Text="{DynamicResource Text.SelfUpdate.CurrentVersion}" FontWeight="Bold" Foreground="{DynamicResource Brush.FG2}"/>
56+
<Run Text="{Binding CurrentVersionStr, Mode=OneWay}"/>
57+
</TextBlock>
58+
59+
<TextBlock Margin="0,2,0,0">
60+
<Run Text="{DynamicResource Text.SelfUpdate.ReleaseDate}" FontWeight="Bold" Foreground="{DynamicResource Brush.FG2}"/>
61+
<Run Text="{Binding ReleaseDateStr, Mode=OneWay}"/>
62+
</TextBlock>
63+
5464
<Border Width="500" MaxHeight="400"
55-
Margin="0,8"
65+
Margin="0,8,0,0"
5666
Background="{DynamicResource Brush.Contents}"
5767
BorderThickness="1"
5868
BorderBrush="{DynamicResource Brush.Border2}">
5969
<v:UpdateInfoView/>
6070
</Border>
6171

62-
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
72+
<StackPanel Margin="0,8,0,0" Orientation="Horizontal" HorizontalAlignment="Center">
6373
<Button Classes="flat primary"
6474
Height="30"
6575
Click="GotoDownload"

0 commit comments

Comments
 (0)