|
1 | 1 | // File: SafeNotes/EventHandlers.cs |
2 | 2 | using MaterialSkin; |
| 3 | +using Newtonsoft.Json.Linq; |
3 | 4 | using System; |
4 | 5 | using System.Diagnostics; |
5 | 6 | using System.Drawing; |
6 | 7 | using System.IO; |
7 | | -using System.Windows.Forms; |
8 | | -using System.Security.Cryptography; |
9 | | -using System.Security; |
| 8 | +using System.Linq; |
| 9 | +using System.Net.Http; |
10 | 10 | using System.Runtime.InteropServices; |
11 | | -using System.Text.RegularExpressions; |
| 11 | +using System.Security; |
| 12 | +using System.Security.Cryptography; |
12 | 13 | using System.Text; |
13 | | -using System.Linq; |
| 14 | +using System.Text.RegularExpressions; |
| 15 | +using System.Threading.Tasks; |
| 16 | +using System.Windows.Forms; |
14 | 17 |
|
15 | 18 | namespace SafeNotes |
16 | 19 | { |
@@ -89,6 +92,37 @@ private async void MainForm_Load(object sender, EventArgs e) |
89 | 92 | ApplyDateCheckbox.Checked = _settings.SaveDate; |
90 | 93 | DisableNotificationsCheckbox.Checked = _settings.DisableNotifications; |
91 | 94 | RequirePinToLogin.Checked = _settings.RequirePinCode; |
| 95 | + |
| 96 | + // Fetch latest release info to populate ReleaseNotesMultiText |
| 97 | + try |
| 98 | + { |
| 99 | + using (var http = new HttpClient()) |
| 100 | + { |
| 101 | + http.DefaultRequestHeaders.UserAgent.ParseAdd("SafeNotesUpdater/1.0"); |
| 102 | + string repo = "Thymester/SafeNotes"; |
| 103 | + |
| 104 | + // Get all releases as JSON array |
| 105 | + var json = await http.GetStringAsync($"https://api.github.com/repos/{repo}/releases"); |
| 106 | + var releases = JArray.Parse(json); |
| 107 | + |
| 108 | + ReleaseNotesMultiText.Clear(); |
| 109 | + |
| 110 | + foreach (var release in releases) |
| 111 | + { |
| 112 | + string latestVersion = release["tag_name"]?.ToString() ?? "Unknown"; |
| 113 | + string releaseTitle = release["name"]?.ToString() ?? "No title"; |
| 114 | + string releaseBody = release["body"]?.ToString() ?? "No changelog available"; |
| 115 | + |
| 116 | + ReleaseNotesMultiText.AppendText( |
| 117 | + $"Title: {releaseTitle}\r\nVersion: {latestVersion}\r\n\nChangelog:\r\n{releaseBody}\r\n\r\n------------------------\r\n\r\n" |
| 118 | + ); |
| 119 | + } |
| 120 | + } |
| 121 | + } |
| 122 | + catch (Exception ex) |
| 123 | + { |
| 124 | + ReleaseNotesMultiText.Text = $"Unable to fetch release notes: {ex.Message}"; |
| 125 | + } |
92 | 126 | } |
93 | 127 |
|
94 | 128 | private void RequirePenToLogin_CheckedChanged(object sender, EventArgs e) |
|
0 commit comments