Skip to content

Commit 0249621

Browse files
committed
Add progress ring
1 parent af0e118 commit 0249621

File tree

2 files changed

+53
-4
lines changed

2 files changed

+53
-4
lines changed

Flow.Launcher/ReleaseNotesWindow.xaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,29 @@
163163
VerticalAlignment="Stretch"
164164
ClickAction="SafetyDisplayWithRelativePath"
165165
Loaded="MarkdownViewer_Loaded" />
166+
167+
<!-- Put this Grid in the same position as MarkdownViewer -->
168+
<Grid
169+
Grid.Row="1"
170+
Grid.Column="0"
171+
Grid.ColumnSpan="5"
172+
Height="510"
173+
Margin="15 0 20 0">
174+
<ui:ProgressRing
175+
x:Name="RefreshProgressRing"
176+
Width="30"
177+
Height="30"
178+
HorizontalAlignment="Center"
179+
VerticalAlignment="Center"
180+
IsActive="True" />
181+
<Button
182+
x:Name="RefreshButton"
183+
HorizontalAlignment="Center"
184+
VerticalAlignment="Center"
185+
Click="RefreshButton_Click"
186+
Content="{DynamicResource refresh}"
187+
Visibility="Collapsed" />
188+
</Grid>
166189
</Grid>
167190
</Border>
168191
</Grid>

Flow.Launcher/ReleaseNotesWindow.xaml.cs

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ private void Window_StateChanged(object sender, EventArgs e)
8181
private static async Task<string> GetReleaseNotesMarkdownAsync()
8282
{
8383
var releaseNotesJSON = await Http.GetStringAsync("https://api.github.com/repos/Flow-Launcher/Flow.Launcher/releases");
84-
84+
8585
if (string.IsNullOrEmpty(releaseNotesJSON))
8686
{
8787
return string.Empty;
@@ -150,11 +150,37 @@ private sealed class GitHubReleaseInfo
150150

151151
#endregion
152152

153-
[System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "VSTHRD100:Avoid async void methods", Justification = "<Pending>")]
154-
private async void MarkdownViewer_Loaded(object sender, RoutedEventArgs e)
153+
private void MarkdownViewer_Loaded(object sender, RoutedEventArgs e)
155154
{
156155
MarkdownViewer.MarkdownStyle = MarkdownStyle.GithubLike;
157-
MarkdownViewer.Markdown = await GetReleaseNotesMarkdownAsync();
156+
RefreshMarkdownViewer();
157+
}
158+
159+
private void RefreshButton_Click(object sender, RoutedEventArgs e)
160+
{
161+
RefreshButton.Visibility = Visibility.Collapsed;
162+
RefreshProgressRing.Visibility = Visibility.Visible;
163+
RefreshMarkdownViewer();
164+
}
165+
166+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "VSTHRD100:Avoid async void methods", Justification = "<Pending>")]
167+
private async void RefreshMarkdownViewer()
168+
{
169+
var output = await GetReleaseNotesMarkdownAsync().ConfigureAwait(false);
170+
171+
Application.Current.Dispatcher.Invoke(() =>
172+
{
173+
RefreshProgressRing.Visibility = Visibility.Collapsed;
174+
if (string.IsNullOrEmpty(output))
175+
{
176+
RefreshButton.Visibility = Visibility.Visible;
177+
}
178+
else
179+
{
180+
RefreshButton.Visibility = Visibility.Collapsed;
181+
MarkdownViewer.Markdown = output;
182+
}
183+
});
158184
}
159185
}
160186
}

0 commit comments

Comments
 (0)