Skip to content

Commit a7c163b

Browse files
committed
feat: Update progress
1 parent ac02e41 commit a7c163b

6 files changed

Lines changed: 114 additions & 84 deletions

File tree

Nickvision.Application.Shared/Controllers/MainWindowController.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,11 @@ public async Task CheckForUpdatesAsync(bool showNotificationForNoUpdates)
119119
public async Task WindowsUpdateAsync(IProgress<DownloadProgress> progress)
120120
{
121121
var res = await _updaterService.WindowsApplicationUpdateAsync(_latestVersion, progress);
122-
if (!res)
122+
if (res)
123+
{
124+
_notificationService.Send(new AppNotification(_translationService._("Starting {0} installer...", _appInfo.ShortName!), NotificationSeverity.Success));
125+
}
126+
else
123127
{
124128
_notificationService.Send(new AppNotification(_translationService._("Unable to download and install the update"), NotificationSeverity.Error));
125129
}

Nickvision.Application.WinUI/Views/MainWindow.xaml

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -129,17 +129,31 @@
129129
</TitleBar.LeftHeader>
130130

131131
<TitleBar.RightHeader>
132-
<Button x:Name="BtnPreview" Background="Transparent" BorderThickness="0">
133-
<Button.Content>
134-
<FontIcon FontFamily="{ThemeResource SymbolThemeFontFamily}" FontSize="18" Glyph="&#xE794;"/>
135-
</Button.Content>
136-
137-
<Button.Flyout>
138-
<Flyout>
139-
<TextBlock x:Name="LblPreview" TextWrapping="Wrap"/>
140-
</Flyout>
141-
</Button.Flyout>
142-
</Button>
132+
<StackPanel Orientation="Horizontal" Spacing="6">
133+
<Button x:Name="BtnPreview" Background="Transparent" BorderThickness="0" Visibility="Collapsed">
134+
<Button.Content>
135+
<FontIcon FontFamily="{ThemeResource SymbolThemeFontFamily}" FontSize="18" Glyph="&#xE794;"/>
136+
</Button.Content>
137+
138+
<Button.Flyout>
139+
<Flyout>
140+
<TextBlock x:Name="LblPreview" TextWrapping="Wrap"/>
141+
</Flyout>
142+
</Button.Flyout>
143+
</Button>
144+
145+
<Button x:Name="BtnUpdateProgress" Background="Transparent" BorderThickness="0" Visibility="Collapsed">
146+
<Button.Content>
147+
<ProgressRing x:Name="RingUpdateProcess" Width="24" Height="24" IsIndeterminate="False"/>
148+
</Button.Content>
149+
150+
<Button.Flyout>
151+
<Flyout x:Name="FlyoutUpdateProgress" Placement="Bottom">
152+
<TextBlock x:Name="LblUpdateProgress" TextWrapping="WrapWholeWords"/>
153+
</Flyout>
154+
</Button.Flyout>
155+
</Button>
156+
</StackPanel>
143157
</TitleBar.RightHeader>
144158
</TitleBar>
145159

Nickvision.Application.WinUI/Views/MainWindow.xaml.cs

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
using Nickvision.Application.WinUI.Controls;
1414
using Nickvision.Desktop.Application;
1515
using Nickvision.Desktop.Globalization;
16+
using Nickvision.Desktop.Network;
1617
using Nickvision.Desktop.Notifications;
1718
using Nickvision.Desktop.WinUI.Controls;
1819
using Nickvision.Desktop.WinUI.Helpers;
@@ -64,6 +65,7 @@ public MainWindow(IServiceProvider serviceProvider, MainWindowController control
6465
ExtendsContentIntoTitleBar = true;
6566
SetTitleBar(TitleBar);
6667
AppWindow.TitleBar.PreferredHeightOption = TitleBarHeightOption.Tall;
68+
BtnPreview.Visibility = _appInfo.Version!.IsPreview ? Visibility.Visible : Visibility.Collapsed;
6769
// Events
6870
AppWindow.Closing += Window_Closing;
6971
eventsService.AppNotificationSent += (sender, args) => DispatcherQueue.TryEnqueue(() => App_AppNotificationSent(sender, args));
@@ -85,7 +87,6 @@ public MainWindow(IServiceProvider serviceProvider, MainWindowController control
8587
MenuReportABug.Text = _translationService._("Report a Bug");
8688
MenuDiscussions.Text = _translationService._("Discussions");
8789
MenuAbout.Text = _translationService._("About {0}", _appInfo.ShortName!);
88-
BtnPreview.Visibility = _appInfo.Version!.IsPreview ? Visibility.Visible : Visibility.Collapsed;
8990
ToolTipService.SetToolTip(BtnPreview, _translationService._("You are running a preview version of {0}", _appInfo.ShortName!));
9091
LblPreview.Text = _translationService._("Thank you for testing the upcoming features and changes! ❤️");
9192
LblOpenFolder.Text = _translationService._("Open Folder");
@@ -217,7 +218,7 @@ private void App_FolderChanged(object? sender, FolderChangedEventArgs args)
217218
if (args.IsOpen)
218219
{
219220
ViewStack.SelectedIndex = (int)Pages.Folder;
220-
foreach(var file in args.Files)
221+
foreach (var file in args.Files)
221222
{
222223
ListFiles.Items.Add(Path.GetFileName(file));
223224
}
@@ -280,24 +281,25 @@ private async void About(object sender, RoutedEventArgs args)
280281

281282
private async void WindowsUpdate(object sender, RoutedEventArgs args)
282283
{
283-
//var progress = new Progress<DownloadProgress>();
284-
//progress.ProgressChanged += (s, p) =>
285-
//{
286-
// DispatcherQueue.TryEnqueue(() =>
287-
// {
288-
// if (p.Completed)
289-
// {
290-
// FlyoutProgress.Hide();
291-
// NavItemUpdates.Visibility = Visibility.Collapsed;
292-
// return;
293-
// }
294-
// var message = _translationService._("Downloading update: {0}%", Math.Round(p.Percentage * 100));
295-
// NavItemUpdates.Visibility = Visibility.Visible;
296-
// StsProgress.Description = message;
297-
// BarProgress.Value = p.Percentage * 100;
298-
// });
299-
//};
300-
//InfoBar.IsOpen = false;
301-
//await _controller.WindowsUpdateAsync(progress);
284+
var progress = new Progress<DownloadProgress>();
285+
progress.ProgressChanged += (s, p) =>
286+
{
287+
DispatcherQueue.TryEnqueue(() =>
288+
{
289+
if (p.Completed)
290+
{
291+
FlyoutUpdateProgress.Hide();
292+
BtnUpdateProgress.Visibility = Visibility.Collapsed;
293+
return;
294+
}
295+
var message = _translationService._("Downloading update: {0}%", Math.Round(p.Percentage * 100));
296+
BtnUpdateProgress.Visibility = Visibility.Visible;
297+
ToolTipService.SetToolTip(BtnUpdateProgress, message);
298+
RingUpdateProcess.Value = p.Percentage * 100;
299+
LblUpdateProgress.Text = message;
300+
});
301+
};
302+
InfoBar.IsOpen = false;
303+
await _controller.WindowsUpdateAsync(progress);
302304
}
303305
}

Nickvision.Application.WinUI/Views/SettingsPage.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ private void Page_Loaded(object sender, RoutedEventArgs args)
4848
private async void Cmb_SelectionChanged(object sender, SelectionChangedEventArgs args)
4949
{
5050
await ApplyChangesAsync();
51-
if(sender.Equals(CmbTheme))
51+
if (sender.Equals(CmbTheme))
5252
{
5353
await _controller.SaveConfigurationAsync();
5454
}

resources/po/application.pot

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ msgid ""
88
msgstr ""
99
"Project-Id-Version: PACKAGE VERSION\n"
1010
"Report-Msgid-Bugs-To: \n"
11-
"POT-Creation-Date: 2026-04-03 14:01-0400\n"
11+
"POT-Creation-Date: 2026-04-03 14:36-0400\n"
1212
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -91,13 +91,13 @@ msgstr ""
9191

9292
#: Nickvision.Application.GNOME/Blueprints/ShortcutsDialog.blp:33
9393
#: Nickvision.Application.GNOME/Views/MainWindow.cs:248
94-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:77
95-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:91
94+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:79
95+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:92
9696
msgid "Open Folder"
9797
msgstr ""
9898

9999
#: Nickvision.Application.GNOME/Blueprints/ShortcutsDialog.blp:38
100-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:78
100+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:80
101101
msgid "Close Folder"
102102
msgstr ""
103103

@@ -107,8 +107,8 @@ msgstr ""
107107

108108
#: Nickvision.Application.GNOME/Views/MainWindow.cs:182
109109
#: Nickvision.Application.WinUI/Controls/AboutDialog.xaml.cs:23
110-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:93
111-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:152
110+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:94
111+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:153
112112
msgid "Close"
113113
msgstr ""
114114

@@ -121,12 +121,12 @@ msgid "Password"
121121
msgstr ""
122122

123123
#: Nickvision.Application.GNOME/Views/MainWindow.cs:204
124-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:198
124+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:199
125125
msgid "Password Required"
126126
msgstr ""
127127

128128
#: Nickvision.Application.GNOME/Views/MainWindow.cs:204
129-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:192
129+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:193
130130
msgid ""
131131
"This app stores data in an encrypted database. As the system credential "
132132
"manager (secret service) is not available, please provide a password to use "
@@ -137,7 +137,7 @@ msgid ""
137137
msgstr ""
138138

139139
#: Nickvision.Application.GNOME/Views/MainWindow.cs:205
140-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:200
140+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:201
141141
msgid "Submit"
142142
msgstr ""
143143

@@ -149,7 +149,7 @@ msgstr[0] ""
149149
msgstr[1] ""
150150

151151
#: Nickvision.Application.GNOME/Views/MainWindow.cs:284
152-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:84
152+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:86
153153
msgid "GitHub Repo"
154154
msgstr ""
155155

@@ -259,7 +259,7 @@ msgid "Folder closed"
259259
msgstr ""
260260

261261
#: Nickvision.Application.WinUI/Controls/AboutDialog.xaml.cs:22
262-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:87
262+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:89
263263
#, csharp-format
264264
msgid "About {0}"
265265
msgstr ""
@@ -313,61 +313,66 @@ msgid ""
313313
"{3}"
314314
msgstr ""
315315

316-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:76
316+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:78
317317
msgid "File"
318318
msgstr ""
319319

320-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:79
320+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:81
321321
msgid "Exit"
322322
msgstr ""
323323

324-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:80
324+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:82
325325
msgid "Edit"
326326
msgstr ""
327327

328-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:81
328+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:83
329329
msgid "Help"
330330
msgstr ""
331331

332-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:82
333-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:92
332+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:84
333+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:93
334334
#: Nickvision.Application.WinUI/Views/SettingsPage.xaml.cs:24
335335
msgid "Settings"
336336
msgstr ""
337337

338-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:83
338+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:85
339339
msgid "Check for Updates"
340340
msgstr ""
341341

342-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:85
342+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:87
343343
msgid "Report a Bug"
344344
msgstr ""
345345

346-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:86
346+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:88
347347
msgid "Discussions"
348348
msgstr ""
349349

350-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:89
350+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:90
351351
#, csharp-format
352352
msgid "You are running a preview version of {0}"
353353
msgstr ""
354354

355-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:90
355+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:91
356356
msgid "Thank you for testing the upcoming features and changes! ❤️"
357357
msgstr ""
358358

359-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:124
359+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:125
360360
msgid "Open in Explorer"
361361
msgstr ""
362362

363-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:146
363+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:147
364364
msgid "Update"
365365
msgstr ""
366366

367-
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:183
367+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:184
368368
msgid "Enter password here"
369369
msgstr ""
370370

371+
#: Nickvision.Application.WinUI/Views/MainWindow.xaml.cs:297
372+
#, csharp-format
373+
msgid "Downloading update: {0}%"
374+
msgstr ""
375+
371376
#: Nickvision.Application.WinUI/Views/SettingsPage.xaml.cs:31
372377
msgid "Receive Preview Updates"
373378
msgstr ""

0 commit comments

Comments
 (0)