|
16 | 16 | using VisualStudioDiscordRPC.Shared.Nests; |
17 | 17 | using VisualStudioDiscordRPC.Shared.Utils; |
18 | 18 | using Newtonsoft.Json; |
| 19 | +using System.Collections.Generic; |
19 | 20 |
|
20 | 21 | namespace VisualStudioDiscordRPC.Shared |
21 | 22 | { |
@@ -54,7 +55,7 @@ public void Init() |
54 | 55 |
|
55 | 56 | if (updateNotificationsEnabled) |
56 | 57 | { |
57 | | - DisplayVersionUpdateMessage(currentExtensionVersion); |
| 58 | + DisplayVersionUpdateMessage(previousVersion, currentExtensionVersion); |
58 | 59 | } |
59 | 60 | } |
60 | 61 | } |
@@ -146,42 +147,47 @@ private void ApplySettings() |
146 | 147 | _discordRpcController.SetPlug<SecondButtonNest>(_plugService.GetPlugById<BaseButtonPlug>(secondButtonPlug)); |
147 | 148 | } |
148 | 149 |
|
149 | | - private void DisplayVersionUpdateMessage(string version) |
| 150 | + private void DisplayVersionUpdateMessage(string previousVersion, string currentVersion) |
150 | 151 | { |
| 152 | + var releaseNotes = ReadReleaseNotesOfVersionRange(previousVersion, currentVersion); |
151 | 153 | var updateTextBuilder = new StringBuilder(); |
152 | | - updateTextBuilder.AppendLine(string.Format(ConstantStrings.NewVersionNotification, version)); |
153 | 154 |
|
154 | | - ReleaseNote currentVersionReleaseNote = ReadReleaseNoteOfVersion(version); |
155 | | - if (currentVersionReleaseNote != null) |
| 155 | + updateTextBuilder.AppendLine(string.Format(ConstantStrings.NewVersionNotification, currentVersion)); |
| 156 | + |
| 157 | + foreach (var releaseNote in releaseNotes) |
156 | 158 | { |
157 | 159 | updateTextBuilder.AppendLine(); |
158 | | - updateTextBuilder.AppendLine("Release notes: "); |
| 160 | + updateTextBuilder.AppendLine($"Release notes of {releaseNote.Version}:"); |
159 | 161 |
|
160 | | - string notesText = string.Join("\n", |
161 | | - currentVersionReleaseNote.Notes.Select(note => $" - {note}")); |
| 162 | + string notesText = string.Join("\n", |
| 163 | + releaseNote.Notes.Select(note => $" - {note}")); |
162 | 164 | updateTextBuilder.AppendLine(notesText); |
163 | 165 | } |
164 | 166 |
|
165 | 167 | MessageBox.Show(updateTextBuilder.ToString(), "Visual Studio Discord RPC Update", |
166 | 168 | MessageBoxButton.OK, MessageBoxImage.Information); |
167 | 169 | } |
168 | 170 |
|
169 | | - private ReleaseNote ReadReleaseNoteOfVersion(string version) |
| 171 | + private List<ReleaseNote> ReadReleaseNotesOfVersionRange(string startVersionString, string endVersionString) |
170 | 172 | { |
| 173 | + var result = new List<ReleaseNote>(); |
| 174 | + |
171 | 175 | string releaseNotePath = PathHelper.GetPackageInstallationPath("RELEASE_NOTES.txt"); |
172 | 176 | string releaseNotesText = File.ReadAllText(releaseNotePath); |
173 | 177 |
|
174 | 178 | var releaseNotesParser = new ReleaseNotesParser(releaseNotesText); |
175 | 179 |
|
| 180 | + var startVersion = new Version(startVersionString); |
| 181 | + var endVersion = new Version(endVersionString); |
| 182 | + |
176 | 183 | while (releaseNotesParser.ReadReleaseNote(out ReleaseNote releaseNote)) |
177 | 184 | { |
178 | | - if (releaseNote.Version == version) |
179 | | - { |
180 | | - return releaseNote; |
181 | | - } |
| 185 | + var version = new Version(releaseNote.Version); |
| 186 | + if (version > startVersion && version <= endVersion) |
| 187 | + result.Add(releaseNote); |
182 | 188 | } |
183 | 189 |
|
184 | | - return null; |
| 190 | + return result; |
185 | 191 | } |
186 | 192 | } |
187 | 193 | } |
0 commit comments