fix: navigation is more consistant

This commit is contained in:
2026-08-05 10:57:53 +02:00
parent 2896074ce4
commit 2c734493cf
10 changed files with 159 additions and 78 deletions
+40 -34
View File
@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import '../utils/app_update_util.dart';
import '../utils/navigation.dart';
import '../viewmodels/update_progress_view_model.dart';
import '../l10n/app_localizations.dart';
import '../l10n/app_localizations_helpers.dart';
@@ -60,7 +60,7 @@ class _UpdateProgressViewState extends State<UpdateProgressView> {
TextButton(
onPressed: () {
Navigator.pop(context);
this.context.go('/bar');
this.context.popOrGo('/bar');
},
child: Text(l10n.later),
),
@@ -104,40 +104,46 @@ class _UpdateProgressViewState extends State<UpdateProgressView> {
Widget build(BuildContext context) {
final l10n = AppLocalizations.of(context);
return Scaffold(
appBar: AppBar(
leading: IconButton(
icon: const Icon(Icons.close),
onPressed: () => _showCancelDialog(),
return PopScope(
canPop: false,
onPopInvokedWithResult: (didPop, result) {
if (!didPop) _showCancelDialog();
},
child: Scaffold(
appBar: AppBar(
leading: IconButton(
icon: const Icon(Icons.close),
onPressed: () => _showCancelDialog(),
),
title: Text(l10n.updating),
centerTitle: true,
automaticallyImplyLeading: false,
),
title: Text(l10n.updating),
centerTitle: true,
automaticallyImplyLeading: false,
),
body: ListenableBuilder(
listenable: _vm,
builder: (context, child) {
return Center(
child: ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 480),
child: Padding(
padding: const EdgeInsets.all(32),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
_buildHeader(),
const SizedBox(height: 40),
_buildProgress(_vm),
const SizedBox(height: 24),
_buildStatus(_vm),
const Spacer(),
_buildVersionInfo(_vm),
],
body: ListenableBuilder(
listenable: _vm,
builder: (context, child) {
return Center(
child: ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 480),
child: Padding(
padding: const EdgeInsets.all(32),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
_buildHeader(),
const SizedBox(height: 40),
_buildProgress(_vm),
const SizedBox(height: 24),
_buildStatus(_vm),
const Spacer(),
_buildVersionInfo(_vm),
],
),
),
),
),
);
},
);
},
),
),
);
}
@@ -298,7 +304,7 @@ class _UpdateProgressViewState extends State<UpdateProgressView> {
onPressed: () {
Navigator.pop(context);
_vm.cancel();
this.context.go('/bar');
this.context.popOrGo('/bar');
},
child: Text(l10n.cancelUpdateAction),
),