From a43c32d62672a2422ac57cb4fe3721d7c8f056b3 Mon Sep 17 00:00:00 2001 From: Omar Date: Tue, 21 Jul 2026 19:18:15 +0300 Subject: [PATCH 1/2] add a back button so you can always go back from the hardware wallet connect screen --- .../connect_device/connect_device_page.dart | 39 ++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/lib/src/screens/connect_device/connect_device_page.dart b/lib/src/screens/connect_device/connect_device_page.dart index ed1ae3154..bde91e711 100644 --- a/lib/src/screens/connect_device/connect_device_page.dart +++ b/lib/src/screens/connect_device/connect_device_page.dart @@ -4,6 +4,7 @@ import "dart:io"; import "package:cake_wallet/entities/hardware_wallet/hardware_wallet_device.dart"; import "package:cake_wallet/generated/i18n.dart"; import "package:cake_wallet/main.dart"; +import "package:cake_wallet/new-ui/widgets/modern_button.dart"; import "package:cake_wallet/new-ui/widgets/new_primary_button.dart"; import "package:cake_wallet/routes.dart"; import "package:cake_wallet/src/screens/base_page.dart"; @@ -56,7 +57,43 @@ class ConnectDevicePage extends BasePage { : S.current.restore_title_from_hardware_wallet; @override - Widget? leading(BuildContext context) => !isReconnect ? super.leading(context) : null; + Widget? leading(BuildContext context) { + if (!isReconnect) { + return super.leading(context); + } + + return MergeSemantics( + child: Padding( + padding: const EdgeInsets.only(top: 4.0), + child: ButtonTheme( + minWidth: double.minPositive, + child: Semantics( + label: S.of(context).seed_alert_back, + child: ModernButton( + size: 37, + icon: Icon(CupertinoIcons.back), + iconColor: Theme.of(context).colorScheme.onSurfaceVariant, + onPressed: () => _onReconnectBack(context), + ), + ), + ), + ), + ); + } + + void _onReconnectBack(BuildContext context) { + final navigator = Navigator.of(context); + if (navigator.canPop()) { + navigator.pop(); + return; + } + + navigator.pushNamed( + Routes.walletList, + arguments: (BuildContext context) => + Navigator.of(context).pushNamedAndRemoveUntil(Routes.dashboard, (route) => false), + ); + } @override Widget body(BuildContext context) => PopScope( From d2521aa01c30950bca6afe4a29a4e7cd5da856be Mon Sep 17 00:00:00 2001 From: Omar Date: Tue, 21 Jul 2026 20:42:47 +0300 Subject: [PATCH 2/2] revert and just show the change wallet button if it's a reconnect --- .../connect_device/connect_device_page.dart | 41 +------------------ 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/lib/src/screens/connect_device/connect_device_page.dart b/lib/src/screens/connect_device/connect_device_page.dart index bde91e711..2c08bd23c 100644 --- a/lib/src/screens/connect_device/connect_device_page.dart +++ b/lib/src/screens/connect_device/connect_device_page.dart @@ -4,7 +4,6 @@ import "dart:io"; import "package:cake_wallet/entities/hardware_wallet/hardware_wallet_device.dart"; import "package:cake_wallet/generated/i18n.dart"; import "package:cake_wallet/main.dart"; -import "package:cake_wallet/new-ui/widgets/modern_button.dart"; import "package:cake_wallet/new-ui/widgets/new_primary_button.dart"; import "package:cake_wallet/routes.dart"; import "package:cake_wallet/src/screens/base_page.dart"; @@ -43,7 +42,7 @@ class ConnectDevicePage extends BasePage { ConnectDevicePage(ConnectDevicePageParams params, this.hardwareWalletVM) : walletType = params.walletType, onConnectDevice = params.onConnectDevice, - allowChangeWallet = params.allowChangeWallet, + allowChangeWallet = params.allowChangeWallet || params.isReconnect, isReconnect = params.isReconnect; final WalletType walletType; final OnConnectDevice onConnectDevice; @@ -57,43 +56,7 @@ class ConnectDevicePage extends BasePage { : S.current.restore_title_from_hardware_wallet; @override - Widget? leading(BuildContext context) { - if (!isReconnect) { - return super.leading(context); - } - - return MergeSemantics( - child: Padding( - padding: const EdgeInsets.only(top: 4.0), - child: ButtonTheme( - minWidth: double.minPositive, - child: Semantics( - label: S.of(context).seed_alert_back, - child: ModernButton( - size: 37, - icon: Icon(CupertinoIcons.back), - iconColor: Theme.of(context).colorScheme.onSurfaceVariant, - onPressed: () => _onReconnectBack(context), - ), - ), - ), - ), - ); - } - - void _onReconnectBack(BuildContext context) { - final navigator = Navigator.of(context); - if (navigator.canPop()) { - navigator.pop(); - return; - } - - navigator.pushNamed( - Routes.walletList, - arguments: (BuildContext context) => - Navigator.of(context).pushNamedAndRemoveUntil(Routes.dashboard, (route) => false), - ); - } + Widget? leading(BuildContext context) => !isReconnect ? super.leading(context) : null; @override Widget body(BuildContext context) => PopScope(