diff --git a/auth/lib/onboarding/view/setup_enter_secret_key_page.dart b/auth/lib/onboarding/view/setup_enter_secret_key_page.dart index 64837f8f5..f9b87c7d3 100644 --- a/auth/lib/onboarding/view/setup_enter_secret_key_page.dart +++ b/auth/lib/onboarding/view/setup_enter_secret_key_page.dart @@ -20,7 +20,6 @@ class _SetupEnterSecretKeyPageState extends State { late TextEditingController _issuerController; late TextEditingController _accountController; late TextEditingController _secretController; - late TextEditingController _digitsController; late bool _secretKeyObscured; @override @@ -35,9 +34,6 @@ class _SetupEnterSecretKeyPageState extends State { _secretController = TextEditingController( text: widget.code?.secret, ); - _digitsController = TextEditingController( - text: widget.code?.digits.toString(), - ); _secretKeyObscured = widget.code != null; super.initState(); } @@ -118,31 +114,7 @@ class _SetupEnterSecretKeyPageState extends State { ), controller: _accountController, ), - const SizedBox( - height: 20, - ), - TextFormField( - validator: (value) { - if (value == null || value.isEmpty) { - return "Please enter some number"; - } - if (int.tryParse(value) == null) { - return "Please enter a valid number"; - } - return null; - }, - readOnly: widget.code?.type == Type.steam, - keyboardType: TextInputType.number, - decoration: InputDecoration( - hintText: l10n.digitsAccountHint, - labelText: l10n.digitsAccountHint, - floatingLabelBehavior: FloatingLabelBehavior.auto, - ), - controller: _digitsController, - ), - const SizedBox( - height: 40, - ), + const SizedBox(height: 40), SizedBox( width: 400, child: OutlinedButton( @@ -184,10 +156,15 @@ class _SetupEnterSecretKeyPageState extends State { final account = _accountController.text.trim(); final issuer = _issuerController.text.trim(); final secret = _secretController.text.trim().replaceAll(' ', ''); - final digits = int.tryParse(_digitsController.text.trim()) ?? - (widget.code?.type == Type.steam - ? Code.steamDigits - : Code.defaultDigits); + final isStreamCode = issuer.toLowerCase() == "steam"; + late int digits; + if (widget.code != null) { + digits = widget.code!.digits; + } else if (isStreamCode) { + digits = Code.steamDigits; + } else { + digits = Code.defaultDigits; + } if (widget.code != null && widget.code!.secret != secret) { ButtonResult? result = await showChoiceActionSheet( context, @@ -204,7 +181,7 @@ class _SetupEnterSecretKeyPageState extends State { } final Code newCode = widget.code == null ? Code.fromAccountAndSecret( - Type.totp, + isStreamCode ? Type.steam : Type.totp, account, issuer, secret, @@ -214,7 +191,6 @@ class _SetupEnterSecretKeyPageState extends State { account: account, issuer: issuer, secret: secret, - digits: digits, ); // Verify the validity of the code getOTP(newCode);