diff --git a/assets/i18n/en.json b/assets/i18n/en.json index 4c35437..5bd7cc8 100644 --- a/assets/i18n/en.json +++ b/assets/i18n/en.json @@ -273,6 +273,8 @@ ,"Download manuale": "Manual download" ,"Apre la release più recente su GitHub": "Open the latest release on GitHub" ,"Installazione aggiornamento...": "Installing update..." + ,"Aggiornamento completato": "Update complete" + ,"Il progetto è pronto.": "Your project is ready." ,"Controlla aggiornamenti": "Check for updates" ,"Controllo aggiornamenti attivo": "Automatic update checks are active" ,"Controllo aggiornamenti non riuscito": "Update check failed" diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 33fac34..ee0cf36 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,9 @@ # AstroProject Forge — note di rilascio +## 1.0.2 — 28 luglio 2026 + +- Mostra una conferma discreta dopo il riavvio automatico, così è immediatamente visibile che l'aggiornamento è riuscito. + ## 1.0.1 — 28 luglio 2026 - Il pulsante **Aggiorna e riavvia** scarica e verifica l'installer, aggiorna l'app in modalità silenziosa e riapre automaticamente la nuova versione. diff --git a/dotnet/AstroForge.App/MainWindow.xaml b/dotnet/AstroForge.App/MainWindow.xaml index 71d696d..093cbee 100644 --- a/dotnet/AstroForge.App/MainWindow.xaml +++ b/dotnet/AstroForge.App/MainWindow.xaml @@ -734,5 +734,19 @@ + + + + + + + + + + diff --git a/dotnet/AstroForge.App/MainWindow.xaml.cs b/dotnet/AstroForge.App/MainWindow.xaml.cs index 23a704d..05f7ed9 100644 --- a/dotnet/AstroForge.App/MainWindow.xaml.cs +++ b/dotnet/AstroForge.App/MainWindow.xaml.cs @@ -37,6 +37,7 @@ public partial class MainWindow : Window private double _qualityPanHorizontal; private double _qualityPanVertical; private bool _localizationPending; + private bool _updatedOnLaunch; public MainWindow() { @@ -59,6 +60,7 @@ private void ApplyCommandLine() { if (args[index] == "--source" && index + 1 < args.Length) _viewModel.AddSource(args[++index]); else if (args[index] == "--library" && index + 1 < args.Length) _viewModel.LibraryPath = args[++index]; + else if (args[index] == "--updated") _updatedOnLaunch = true; } } @@ -307,9 +309,24 @@ private async void MainWindow_Loaded(object sender, RoutedEventArgs e) if (RootSurface.RenderTransform is System.Windows.Media.TranslateTransform translate) translate.BeginAnimation(System.Windows.Media.TranslateTransform.YProperty, new DoubleAnimation(8, 0, TimeSpan.FromMilliseconds(420)) { EasingFunction = new CubicEase { EasingMode = EasingMode.EaseOut } }); } + if (_updatedOnLaunch) ShowUpdateCompletedToast(); await CheckUpdatesAsync(false); } + private async void ShowUpdateCompletedToast() + { + UpdateCompletedText.Text = _viewModel.UiLanguage == UiLocalization.English + ? $"Updated to {ReleaseIdentity.Version}" + : $"Aggiornamento {ReleaseIdentity.Version} completato"; + UpdateCompletedToast.Visibility = Visibility.Visible; + UpdateCompletedToast.BeginAnimation(OpacityProperty, + new DoubleAnimation(0, 1, TimeSpan.FromMilliseconds(_viewModel.ReducedMotion ? 0 : 220))); + await Task.Delay(TimeSpan.FromSeconds(5)); + var fade = new DoubleAnimation(1, 0, TimeSpan.FromMilliseconds(_viewModel.ReducedMotion ? 0 : 260)); + fade.Completed += (_, _) => UpdateCompletedToast.Visibility = Visibility.Collapsed; + UpdateCompletedToast.BeginAnimation(OpacityProperty, fade); + } + private void WorkspaceTabs_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { if (!IsLoaded) return; diff --git a/version.json b/version.json index e4be149..85a8b2e 100644 --- a/version.json +++ b/version.json @@ -1,5 +1,5 @@ { - "version": "1.0.1", + "version": "1.0.2", "channel": "Stable", "releaseDate": "2026-07-28", "minimumWindowsBuild": 19045