From 2facd8cd7f47f957af02648e385a6fae075bc694 Mon Sep 17 00:00:00 2001 From: poka Date: Sun, 21 Aug 2022 01:30:26 +0200 Subject: [PATCH] lock identity name format on confirmation --- lib/providers/wallet_options.dart | 20 +++++++++++++++----- lib/screens/myWallets/wallet_options.dart | 2 +- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/lib/providers/wallet_options.dart b/lib/providers/wallet_options.dart index f2b5b2a..c1a2821 100644 --- a/lib/providers/wallet_options.dart +++ b/lib/providers/wallet_options.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'dart:async'; import 'package:gecko/globals.dart'; import 'package:gecko/providers/duniter_indexer.dart'; @@ -214,7 +215,7 @@ class WalletOptionsProvider with ChangeNotifier { return await sub.idtyStatus(address) == 'Validated'; } - Future validateIdentity(BuildContext context) async { + Future confirmIdentityPopup(BuildContext context) async { TextEditingController idtyName = TextEditingController(); SubstrateSdk sub = Provider.of(context, listen: false); WalletOptionsProvider walletOptions = @@ -238,6 +239,11 @@ class WalletOptionsProvider with ChangeNotifier { const SizedBox(height: 20), TextField( onChanged: (_) => notifyListeners(), + inputFormatters: [ + // FilteringTextInputFormatter.allow(RegExp("[0-9a-zA-Z]")), + FilteringTextInputFormatter.deny(RegExp(r'^ ')), + // FilteringTextInputFormatter.deny(RegExp(r' $')), + ], textAlign: TextAlign.center, autofocus: true, controller: idtyName, @@ -257,13 +263,17 @@ class WalletOptionsProvider with ChangeNotifier { "validate".tr(), style: TextStyle( fontSize: 21, - color: idtyName.text.length >= 2 + color: idtyName.text.length.clamp(3, 64) == + idtyName.text.length ? const Color(0xffD80000) : Colors.grey, ), ), onPressed: () async { - if (idtyName.text.length >= 2) { + idtyName.text = idtyName.text.trim().replaceAll(' ', ''); + + if (idtyName.text.length.clamp(3, 64) == + idtyName.text.length) { WalletData? defaultWallet = myWalletProvider.getDefaultWallet(); @@ -291,8 +301,8 @@ class WalletOptionsProvider with ChangeNotifier { MaterialPageRoute(builder: (context) { return TransactionInProgress( transType: 'comfirmIdty', - fromAddress: wallet.address, - toAddress: wallet.address, + fromAddress: getShortPubkey(wallet.address!), + toAddress: getShortPubkey(wallet.address!), ); }), ); diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart index 3d5743b..58f58ee 100644 --- a/lib/screens/myWallets/wallet_options.dart +++ b/lib/screens/myWallets/wallet_options.dart @@ -298,7 +298,7 @@ class WalletOptions extends StatelessWidget { onPrimary: Colors.white, // foreground ), onPressed: () { - walletProvider.validateIdentity(context); + walletProvider.confirmIdentityPopup(context); // Navigator.push( // context, // MaterialPageRoute(builder: (context) {