diff --git a/lib/pages/boxing_page.dart b/lib/pages/boxing_page.dart index 95a3a0a..4369e3b 100644 --- a/lib/pages/boxing_page.dart +++ b/lib/pages/boxing_page.dart @@ -83,7 +83,7 @@ class BoxingPage extends StatefulWidget { State createState() => _BoxingPageState(); } -class _BoxingPageState extends State { +class _BoxingPageState extends State with WidgetsBindingObserver { static const _androidKeyCodeButtonR1 = 103; final _scannerService = ScannerService(); @@ -147,6 +147,7 @@ class _BoxingPageState extends State { @override void initState() { super.initState(); + WidgetsBinding.instance.addObserver(this); final arguments = widget.arguments; if (arguments != null) { _mode = arguments.initialMode; @@ -163,6 +164,7 @@ class _BoxingPageState extends State { @override void dispose() { + WidgetsBinding.instance.removeObserver(this); _boxNoController.removeListener(_onBoxNoTextChanged); _scanSubscription?.cancel(); _focusNode.dispose(); @@ -180,6 +182,13 @@ class _BoxingPageState extends State { } } + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + if (state == AppLifecycleState.resumed) { + _requestFocus(); + } + } + void _onKeyEvent(KeyEvent event) { if (event is! KeyDownEvent || _isAutoProcessing) return; if (_isModeSwitchKey(event)) {