From 2313247407bd270266b0f7e8cfc3bf4edd07f5b9 Mon Sep 17 00:00:00 2001 From: Christien Rioux Date: Wed, 9 Apr 2025 18:24:46 -0400 Subject: [PATCH 1/2] fix popcontrol for android --- lib/router/views/router_shell.dart | 6 ++++-- lib/theme/views/pop_control.dart | 9 +++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/router/views/router_shell.dart b/lib/router/views/router_shell.dart index 8a7130f..164c452 100644 --- a/lib/router/views/router_shell.dart +++ b/lib/router/views/router_shell.dart @@ -2,13 +2,15 @@ import 'package:flutter/widgets.dart'; import '../../keyboard_shortcuts.dart'; import '../../notifications/notifications.dart'; +import '../../theme/theme.dart'; class RouterShell extends StatelessWidget { const RouterShell({required Widget child, super.key}) : _child = child; @override - Widget build(BuildContext context) => - NotificationsWidget(child: KeyboardShortcuts(child: _child)); + Widget build(BuildContext context) => PopControl( + dismissible: false, + child: NotificationsWidget(child: KeyboardShortcuts(child: _child))); final Widget _child; } diff --git a/lib/theme/views/pop_control.dart b/lib/theme/views/pop_control.dart index deaf785..d2e98f9 100644 --- a/lib/theme/views/pop_control.dart +++ b/lib/theme/views/pop_control.dart @@ -8,18 +8,15 @@ class PopControl extends StatelessWidget { super.key, }); - void _doDismiss(NavigatorState navigator) { + void _doDismiss(BuildContext context) { if (!dismissible) { return; } - navigator.pop(); + Navigator.of(context).pop(); } @override - // ignore: prefer_expression_function_bodies Widget build(BuildContext context) { - final navigator = Navigator.of(context); - final route = ModalRoute.of(context); if (route != null && route is PopControlDialogRoute) { WidgetsBinding.instance.addPostFrameCallback((_) { @@ -33,7 +30,7 @@ class PopControl extends StatelessWidget { if (didPop) { return; } - _doDismiss(navigator); + _doDismiss(context); return; }, child: child); From d0fe5c5519e18be5a595207a5e0d4d182779b5ac Mon Sep 17 00:00:00 2001 From: Christien Rioux Date: Wed, 9 Apr 2025 18:36:46 -0400 Subject: [PATCH 2/2] additional popcontrol for child route --- lib/router/cubits/router_cubit.dart | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/router/cubits/router_cubit.dart b/lib/router/cubits/router_cubit.dart index a15eb50..e5a2024 100644 --- a/lib/router/cubits/router_cubit.dart +++ b/lib/router/cubits/router_cubit.dart @@ -12,6 +12,7 @@ import 'package:veilid_support/veilid_support.dart'; import '../../../account_manager/account_manager.dart'; import '../../layout/layout.dart'; import '../../settings/settings.dart'; +import '../../theme/theme.dart'; import '../../tools/tools.dart'; import '../../veilid_processor/views/developer.dart'; import '../views/router_shell.dart'; @@ -105,11 +106,13 @@ class RouterCubit extends Cubit { builder: (context, state) { final extra = state.extra! as List; - return ShowRecoveryKeyPage( - writableSuperIdentity: - extra[0] as WritableSuperIdentity, - name: extra[1] as String, - isFirstAccount: extra[2] as bool); + return PopControl( + dismissible: false, + child: ShowRecoveryKeyPage( + writableSuperIdentity: + extra[0] as WritableSuperIdentity, + name: extra[1] as String, + isFirstAccount: extra[2] as bool)); }), ]), GoRoute(