- Listen to keyboard events in PIN screen

- Fix PIN buttons style
This commit is contained in:
OmarHatem 2023-02-09 22:53:02 +02:00
parent a116241185
commit 677305f625

View file

@ -2,6 +2,7 @@ import 'package:cake_wallet/utils/show_bar.dart';
import 'package:another_flushbar/flushbar.dart'; import 'package:another_flushbar/flushbar.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/generated/i18n.dart';
import 'package:flutter/services.dart';
class PinCodeWidget extends StatefulWidget { class PinCodeWidget extends StatefulWidget {
PinCodeWidget( PinCodeWidget(
@ -117,7 +118,22 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
color: Theme.of(context).primaryTextTheme!.headline6!.color!, color: Theme.of(context).primaryTextTheme!.headline6!.color!,
); );
return Container( return RawKeyboardListener(
focusNode: FocusNode(),
autofocus: true,
onKey: (keyEvent) {
if (keyEvent is RawKeyDownEvent) {
if (keyEvent.logicalKey.keyLabel == "Backspace") {
_pop();
return;
}
int? number = int.tryParse(keyEvent.character ?? '');
if (number != null) {
_push(number);
}
}
},
child: Container(
color: Theme.of(context).backgroundColor, color: Theme.of(context).backgroundColor,
padding: EdgeInsets.only(left: 40.0, right: 40.0, bottom: 40.0), padding: EdgeInsets.only(left: 40.0, right: 40.0, bottom: 40.0),
child: Column(children: <Widget>[ child: Column(children: <Widget>[
@ -236,9 +252,10 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
left: marginLeft, right: marginRight), left: marginLeft, right: marginRight),
child: TextButton( child: TextButton(
onPressed: () => _pop(), onPressed: () => _pop(),
// FIX-ME: Style style: TextButton.styleFrom(
//color: Theme.of(context).backgroundColor, backgroundColor: Theme.of(context).backgroundColor,
//shape: CircleBorder(), shape: CircleBorder(),
),
child: deleteIconImage, child: deleteIconImage,
), ),
); );
@ -251,9 +268,10 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
left: marginLeft, right: marginRight), left: marginLeft, right: marginRight),
child: TextButton( child: TextButton(
onPressed: () => _push(index), onPressed: () => _push(index),
// FIX-ME: Style style: TextButton.styleFrom(
//color: Theme.of(context).backgroundColor, backgroundColor: Theme.of(context).backgroundColor,
//shape: CircleBorder(), shape: CircleBorder(),
),
child: Text('$index', child: Text('$index',
style: TextStyle( style: TextStyle(
fontSize: 30.0, fontSize: 30.0,
@ -268,6 +286,7 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
) )
: null)) : null))
]), ]),
),
); );
} }