refactoring: Declare keys for all widgets int widgets_keys.dart
This commit is contained in:
parent
dcb64c74b6
commit
cbbd4eee34
|
@ -1,5 +1,3 @@
|
|||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
|
@ -7,110 +5,51 @@ import 'package:integration_test/integration_test.dart';
|
|||
|
||||
import 'package:gecko/main.dart' as app;
|
||||
|
||||
import 'tests_utility.dart';
|
||||
|
||||
void main() {
|
||||
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
group('end-to-end test', () {
|
||||
testWidgets('Ğecko basics', (tester) async {
|
||||
group('Ğecko basics', () {
|
||||
testWidgets('Import chests', (tester) async {
|
||||
app.main();
|
||||
// await Future.delayed(const Duration(seconds: 5));
|
||||
await tester.pumpAndSettle(const Duration(seconds: 1));
|
||||
|
||||
// await deleteAllWallets(tester);
|
||||
await restoreChest(tester);
|
||||
|
||||
// Verify the Gecko is well connected.
|
||||
// await waitFor(tester, 'Vous êtes bien connecté');
|
||||
|
||||
// Open my chest
|
||||
await goKey(tester, 'manageWallets', duration: 500);
|
||||
// await goKey(tester, 'chooseChest');
|
||||
|
||||
// Enter secret code
|
||||
await enterText(tester, keyPinForm, 'AAAAA');
|
||||
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
// Verify the wallet 3 is here
|
||||
await waitFor(tester, 'Porteuille 3');
|
||||
});
|
||||
testWidgets('Send 10 ĞD to ChristCosmic', (tester) async {
|
||||
// await goKey(tester, buttonKey);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Customs actions
|
||||
Future deleteAllWallets(WidgetTester tester) async {
|
||||
await goKey(tester, 'drawerMenu');
|
||||
await goKey(tester, 'parameters');
|
||||
await goKey(tester, 'deleteAllWallets');
|
||||
await goKey(tester, 'confirmPopop');
|
||||
await goKey(tester, keyDrawerMenu);
|
||||
await goKey(tester, keyParameters);
|
||||
await goKey(tester, keyDeleteAllWallets);
|
||||
await goKey(tester, keyConfirm);
|
||||
await tester.pumpAndSettle();
|
||||
}
|
||||
|
||||
Future restoreChest(WidgetTester tester) async {
|
||||
await goKey(tester, 'restoreChest');
|
||||
await goKey(tester, keyRestoreChest);
|
||||
Clipboard.setData(const ClipboardData(
|
||||
text:
|
||||
'smart joy blossom stomach champion fun diary relief gossip hospital logic bike'));
|
||||
await tester.pumpAndSettle();
|
||||
await goKey(tester, 'pasteMnemonic');
|
||||
await goKey(tester, keyPastMnemonic);
|
||||
await tester.pumpAndSettle();
|
||||
await goKey(tester, 'goNext');
|
||||
await goKey(tester, 'goNext');
|
||||
await goKey(tester, 'goNext');
|
||||
await goKey(tester, 'goNext');
|
||||
await goKey(tester, 'cachePassword');
|
||||
await goKey(tester, keyGoNext);
|
||||
await goKey(tester, keyGoNext);
|
||||
await goKey(tester, keyGoNext);
|
||||
await goKey(tester, keyGoNext);
|
||||
await goKey(tester, keyCachePassword);
|
||||
await enterText(tester, keyPinForm, 'AAAAA');
|
||||
await waitFor(tester, 'Accéder à mon coffre');
|
||||
await goKey(tester, 'goWalletHome');
|
||||
await goKey(tester, keyGoWalletsHome);
|
||||
await waitFor(tester, 'ĞD');
|
||||
await goBack(tester);
|
||||
await waitFor(tester, "y'a pas de lézard");
|
||||
}
|
||||
|
||||
// CUSTOM METHODES
|
||||
Future goKey(WidgetTester tester, String buttonKey,
|
||||
{Finder? customFinder, int duration = 100}) async {
|
||||
await tester.pumpAndSettle(Duration(milliseconds: duration));
|
||||
final Finder finder = customFinder ?? find.byKey(Key(buttonKey));
|
||||
await tester.tap(finder);
|
||||
// await tester.pumpAndSettle(Duration(milliseconds: duration));
|
||||
}
|
||||
|
||||
Future goBack(WidgetTester tester) async {
|
||||
final NavigatorState navigator = tester.state(find.byType(Navigator));
|
||||
navigator.pop();
|
||||
await tester.pump();
|
||||
}
|
||||
|
||||
Future enterText(
|
||||
WidgetTester tester, GlobalKey<FormState> fieldKey, String textIn,
|
||||
[int duration = 200]) async {
|
||||
await tester.pumpAndSettle(Duration(milliseconds: duration));
|
||||
await tester.enterText(find.byKey(fieldKey), textIn);
|
||||
}
|
||||
|
||||
Future<void> waitFor(
|
||||
WidgetTester tester,
|
||||
String text, {
|
||||
Duration timeout = const Duration(seconds: 5),
|
||||
}) async {
|
||||
final end = DateTime.now().add(timeout);
|
||||
|
||||
Finder finder = find.textContaining(text);
|
||||
|
||||
do {
|
||||
if (DateTime.now().isAfter(end)) {
|
||||
throw Exception('Timed out waiting for text $text');
|
||||
}
|
||||
|
||||
await tester.pumpAndSettle();
|
||||
await Future.delayed(const Duration(milliseconds: 100));
|
||||
} while (finder.evaluate().isEmpty);
|
||||
}
|
||||
|
||||
extension Truncate on String {
|
||||
String truncate({required int max, String suffix = ''}) {
|
||||
return length < max
|
||||
? this
|
||||
: '${substring(0, substring(0, max - suffix.length).lastIndexOf(" "))}$suffix';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
// CUSTOM METHODES
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
||||
Future goKey(WidgetTester tester, Key buttonKey,
|
||||
{Finder? customFinder, int duration = 100}) async {
|
||||
await tester.pumpAndSettle(Duration(milliseconds: duration));
|
||||
final Finder finder = customFinder ?? find.byKey(buttonKey);
|
||||
log.d('INTEGRATION TEST: Tap on ${finder.description}}');
|
||||
await tester.tap(finder);
|
||||
// await tester.pumpAndSettle(Duration(milliseconds: duration));
|
||||
}
|
||||
|
||||
Future goBack(WidgetTester tester) async {
|
||||
final NavigatorState navigator = tester.state(find.byType(Navigator));
|
||||
log.d('INTEGRATION TEST: Go back');
|
||||
navigator.pop();
|
||||
await tester.pump();
|
||||
}
|
||||
|
||||
Future enterText(WidgetTester tester, Key fieldKey, String textIn,
|
||||
[int duration = 200]) async {
|
||||
await tester.pumpAndSettle(Duration(milliseconds: duration));
|
||||
log.d('INTEGRATION TEST: Enter text: $textIn');
|
||||
await tester.enterText(find.byKey(fieldKey), textIn);
|
||||
}
|
||||
|
||||
Future<void> waitFor(
|
||||
WidgetTester tester,
|
||||
String text, {
|
||||
Duration timeout = const Duration(seconds: 5),
|
||||
}) async {
|
||||
final end = DateTime.now().add(timeout);
|
||||
|
||||
Finder finder = find.textContaining(text);
|
||||
log.d('INTEGRATION TEST: Wait for: $text');
|
||||
|
||||
do {
|
||||
if (DateTime.now().isAfter(end)) {
|
||||
throw Exception('Timed out waiting for text $text');
|
||||
}
|
||||
|
||||
await tester.pumpAndSettle();
|
||||
await Future.delayed(const Duration(milliseconds: 100));
|
||||
} while (finder.evaluate().isEmpty);
|
||||
}
|
||||
|
||||
extension Truncate on String {
|
||||
String truncate({required int max, String suffix = ''}) {
|
||||
return length < max
|
||||
? this
|
||||
: '${substring(0, substring(0, max - suffix.length).lastIndexOf(" "))}$suffix';
|
||||
}
|
||||
}
|
|
@ -1,3 +1,74 @@
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
final keyPinForm = GlobalKey<FormState>();
|
||||
// General
|
||||
const keyInfoPopup = Key('keyInfoPopup');
|
||||
const keyGoNext = Key('keyGoNext');
|
||||
const keyCancel = Key('keyCancel');
|
||||
const keyConfirm = Key('keyConfirm');
|
||||
|
||||
// Home
|
||||
const keyParameters = Key('keyParameters');
|
||||
const keyContacts = Key('keyContacts');
|
||||
const keyDrawerMenu = Key('keyDrawerMenu');
|
||||
const keyManageWallets = Key('keyManageWallets');
|
||||
const keyRestoreChest = Key('keyRestoreChest');
|
||||
|
||||
// Wallets home
|
||||
const keyImportG1v1 = Key('keyImportG1v1');
|
||||
const keyChangeChest = Key('keyChangeChest');
|
||||
const keyListWallets = Key('keyListWallets');
|
||||
const keyAddDerivation = Key('keyAddDerivation');
|
||||
|
||||
// Wallet options
|
||||
const keyCopyAddress = Key('keyCopyAddress');
|
||||
const keyOpenActivity = Key('keyOpenActivity');
|
||||
const keyManageMembership = Key('keyManageMembership');
|
||||
const keySetDefaultWallet = Key('keySetDefaultWallet');
|
||||
const keyDeleteWallet = Key('keyDeleteWallet');
|
||||
const keyWalletName = Key('keyWalletName');
|
||||
const keyRenameWallet = Key('keyRenameWallet');
|
||||
|
||||
// Chest options
|
||||
const keyShowSeed = Key('keyShowSeed');
|
||||
const keyChangePin = Key('keyChangePin');
|
||||
const keycreateRootDerivation = Key('keycreateRootDerivation');
|
||||
const keyDeleteChest = Key('keyDeleteChest');
|
||||
|
||||
// Manage membership
|
||||
const keyMigrateIdentity = Key('keyMigrateIdentity');
|
||||
const keyRevokeIdty = Key('keyRevokeIdty');
|
||||
|
||||
// Choose chest
|
||||
const keyCreateNewChest = Key('keyCreateNewChest');
|
||||
const keyImportChest = Key('keyImportChest');
|
||||
|
||||
// Profile view
|
||||
const keyViewActivity = Key('keyViewActivity');
|
||||
const keyCertify = Key('keyCertify');
|
||||
const keyPay = Key('keyPay');
|
||||
|
||||
// Activity view
|
||||
const keyListTransactions = Key('keyListTransactions');
|
||||
|
||||
// Unlock wallet
|
||||
const keyPinForm = Key('keyPinForm');
|
||||
const keyPopButton = Key('keyPopButton');
|
||||
const keyCachePassword = Key('keyCachePassword');
|
||||
|
||||
// Settings
|
||||
const keyDeleteAllWallets = Key('keyDeleteAllWallets');
|
||||
|
||||
// Onboarding
|
||||
const keyPastMnemonic = Key('keyPastMnemonic');
|
||||
const keyBubbleSpeak = Key('keyBubbleSpeak');
|
||||
const keyGenerateMnemonic = Key('keyGenerateMnemonic');
|
||||
const keyAskedWord = Key('keyAskedWord');
|
||||
const keyInputWord = Key('keyInputWord');
|
||||
const keyGeneratedPin = Key('keyGeneratedPin');
|
||||
const keyGoWalletsHome = Key('keyGoWalletsHome');
|
||||
|
||||
// Unit keys
|
||||
Key keyMnemonicWord(String word) => Key('keyMnemonicWord$word');
|
||||
Key keyIndexerResult(int keyId) => Key('keyIndexerResult$keyId');
|
||||
Key keyTransaction(int keyId) => Key('keyTransaction$keyId');
|
||||
Key keySearchResult(int keyId) => Key('keySearchResult$keyId');
|
||||
|
|
|
@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/chest_data.dart';
|
||||
import 'package:gecko/models/wallet_data.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/my_wallets.dart';
|
||||
import 'package:gecko/providers/substrate_sdk.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
@ -59,13 +60,13 @@ class ChestProvider with ChangeNotifier {
|
|||
title: Text('areYouSureToDeleteWallet'.tr(args: [walletName!])),
|
||||
actions: <Widget>[
|
||||
TextButton(
|
||||
child: Text("no".tr(), key: const Key('cancelDeleting')),
|
||||
child: Text("no".tr(), key: keyCancel),
|
||||
onPressed: () {
|
||||
Navigator.pop(context, false);
|
||||
},
|
||||
),
|
||||
TextButton(
|
||||
child: Text("yes".tr(), key: const Key('confirmDeleting')),
|
||||
child: Text("yes".tr(), key: keyConfirm),
|
||||
onPressed: () {
|
||||
Navigator.pop(context, true);
|
||||
},
|
||||
|
|
|
@ -8,6 +8,7 @@ import 'package:gecko/globals.dart';
|
|||
import 'package:gecko/models/g1_wallets_list.dart';
|
||||
import 'package:gecko/models/queries_indexer.dart';
|
||||
import 'package:gecko/models/wallet_data.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/cesium_plus.dart';
|
||||
import 'package:gecko/providers/substrate_sdk.dart';
|
||||
import 'package:gecko/providers/wallet_options.dart';
|
||||
|
@ -301,7 +302,7 @@ class DuniterIndexer with ChangeNotifier {
|
|||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 5),
|
||||
child: ListTile(
|
||||
key: Key('searchResult${keyID++}'),
|
||||
key: keyIndexerResult(keyID++),
|
||||
horizontalTitleGap: 40,
|
||||
contentPadding: const EdgeInsets.all(5),
|
||||
leading: cesiumPlusProvider.defaultAvatar(avatarSize),
|
||||
|
|
|
@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'dart:async';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/duniter_indexer.dart';
|
||||
import 'package:gecko/providers/my_wallets.dart';
|
||||
import 'package:gecko/models/wallet_data.dart';
|
||||
|
@ -258,7 +259,7 @@ class WalletOptionsProvider with ChangeNotifier {
|
|||
Consumer<WalletOptionsProvider>(
|
||||
builder: (context, wOptions, _) {
|
||||
return TextButton(
|
||||
key: const Key('infoPopup'),
|
||||
key: keyInfoPopup,
|
||||
child: Text(
|
||||
"validate".tr(),
|
||||
style: TextStyle(
|
||||
|
@ -354,7 +355,7 @@ class WalletOptionsProvider with ChangeNotifier {
|
|||
Consumer<WalletOptionsProvider>(
|
||||
builder: (context, wOptions, _) {
|
||||
return TextButton(
|
||||
key: const Key('infoPopup'),
|
||||
key: keyInfoPopup,
|
||||
child: Text(
|
||||
"validate".tr(),
|
||||
style: TextStyle(
|
||||
|
@ -381,7 +382,7 @@ class WalletOptionsProvider with ChangeNotifier {
|
|||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
TextButton(
|
||||
key: const Key('cancel'),
|
||||
key: keyCancel,
|
||||
child: Text(
|
||||
"cancel".tr(),
|
||||
style: TextStyle(
|
||||
|
@ -457,7 +458,7 @@ class WalletOptionsProvider with ChangeNotifier {
|
|||
width: 260,
|
||||
child: Stack(children: <Widget>[
|
||||
TextField(
|
||||
key: const Key('walletName'),
|
||||
key: keyWalletName,
|
||||
autofocus: false,
|
||||
focusNode: walletNameFocus,
|
||||
enabled: isEditing,
|
||||
|
@ -481,7 +482,7 @@ class WalletOptionsProvider with ChangeNotifier {
|
|||
Positioned(
|
||||
right: 0,
|
||||
child: InkWell(
|
||||
key: const Key('renameWallet'),
|
||||
key: keyRenameWallet,
|
||||
onTap: () async {
|
||||
// _isNewNameValid =
|
||||
// walletProvider.editWalletName(wallet.id(), isCesium: false);
|
||||
|
|
|
@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/g1_wallets_list.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/cesium_plus.dart';
|
||||
import 'package:gecko/providers/substrate_sdk.dart';
|
||||
import 'package:gecko/providers/wallet_options.dart';
|
||||
|
@ -166,7 +167,7 @@ class WalletsProfilesProvider with ChangeNotifier {
|
|||
),
|
||||
Row(children: [
|
||||
GestureDetector(
|
||||
key: const Key('copyPubkey'),
|
||||
key: keyCopyAddress,
|
||||
onTap: () {
|
||||
Clipboard.setData(ClipboardData(text: address));
|
||||
snackCopyKey(context);
|
||||
|
|
|
@ -2,6 +2,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/queries_indexer.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/cesium_plus.dart';
|
||||
import 'package:gecko/providers/duniter_indexer.dart';
|
||||
import 'package:gecko/providers/home.dart';
|
||||
|
@ -132,7 +133,7 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
|
|||
child: Builder(
|
||||
builder: (context) => Expanded(
|
||||
child: ListView(
|
||||
key: const Key('listTransactions'),
|
||||
key: keyListTransactions,
|
||||
controller: scrollController,
|
||||
children: <Widget>[historyView(context, result)],
|
||||
),
|
||||
|
@ -286,7 +287,7 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
|
|||
child:
|
||||
// Row(children: [Column(children: [],)],)
|
||||
ListTile(
|
||||
key: Key('transaction${keyID++}'),
|
||||
key: keyTransaction(keyID++),
|
||||
contentPadding: const EdgeInsets.only(
|
||||
left: 20, right: 30, top: 15, bottom: 15),
|
||||
leading: ClipOval(
|
||||
|
|
|
@ -3,6 +3,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_markdown/flutter_markdown.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/substrate_sdk.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
|
@ -62,7 +63,7 @@ class CommonElements {
|
|||
width: 380 * ratio,
|
||||
height: 60 * ratio,
|
||||
child: ElevatedButton(
|
||||
key: const Key('goNext'),
|
||||
key: keyGoNext,
|
||||
style: ElevatedButton.styleFrom(
|
||||
elevation: 4,
|
||||
primary: orangeC, // background
|
||||
|
@ -248,7 +249,7 @@ Future<bool?> confirmPopup(BuildContext context, String title) async {
|
|||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
TextButton(
|
||||
key: const Key('confirmPopop'),
|
||||
key: keyConfirm,
|
||||
child: Text(
|
||||
"yes".tr(),
|
||||
style: const TextStyle(
|
||||
|
@ -296,7 +297,7 @@ Future<void> infoPopup(BuildContext context, String title) async {
|
|||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
TextButton(
|
||||
key: const Key('infoPopup'),
|
||||
key: keyInfoPopup,
|
||||
child: const Text(
|
||||
"D'accord",
|
||||
style: TextStyle(
|
||||
|
|
|
@ -5,6 +5,7 @@ import 'package:connectivity_plus/connectivity_plus.dart';
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/stateful_wrapper.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/chest_provider.dart';
|
||||
import 'package:gecko/providers/duniter_indexer.dart';
|
||||
import 'package:gecko/providers/home.dart';
|
||||
|
@ -64,7 +65,7 @@ class HomeScreen extends StatelessWidget {
|
|||
]),
|
||||
),
|
||||
ListTile(
|
||||
key: const Key('parameters'),
|
||||
key: keyParameters,
|
||||
title: Text('parameters'.tr()),
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
|
@ -77,7 +78,7 @@ class HomeScreen extends StatelessWidget {
|
|||
},
|
||||
),
|
||||
ListTile(
|
||||
key: const Key('contacts'),
|
||||
key: keyContacts,
|
||||
title: Text('contactsManagement'.tr()),
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
|
@ -89,26 +90,6 @@ class HomeScreen extends StatelessWidget {
|
|||
);
|
||||
},
|
||||
),
|
||||
|
||||
// ListTile(
|
||||
// key: const Key('substrateSandbox'),
|
||||
// title: const Text('Substrate debug'),
|
||||
// onTap: () {
|
||||
// Navigator.pop(context);
|
||||
// Navigator.push(
|
||||
// context,
|
||||
// MaterialPageRoute(builder: (context) {
|
||||
// return const SubstrateSandBox();
|
||||
// }),
|
||||
// );
|
||||
// },
|
||||
// ),
|
||||
|
||||
// ListTile(
|
||||
// title: const Text('A propos'),
|
||||
// onTap: () {
|
||||
// },
|
||||
// ),
|
||||
])),
|
||||
Align(
|
||||
alignment: FractionalOffset.bottomCenter,
|
||||
|
@ -220,7 +201,7 @@ Widget geckHome(context) {
|
|||
left: 15,
|
||||
child: Builder(
|
||||
builder: (context) => IconButton(
|
||||
key: const Key('drawerMenu'),
|
||||
key: keyDrawerMenu,
|
||||
icon: const Icon(
|
||||
Icons.menu,
|
||||
color: Colors.white,
|
||||
|
@ -343,7 +324,7 @@ Widget geckHome(context) {
|
|||
],
|
||||
),
|
||||
child: ClipOval(
|
||||
key: const Key('manageWallets'),
|
||||
key: keyManageWallets,
|
||||
child: Material(
|
||||
color: orangeC, // button color
|
||||
child: InkWell(
|
||||
|
@ -466,7 +447,7 @@ Widget welcomeHome(context) {
|
|||
left: 15,
|
||||
child: Builder(
|
||||
builder: (context) => IconButton(
|
||||
key: const Key('drawerMenu'),
|
||||
key: keyDrawerMenu,
|
||||
icon: const Icon(
|
||||
Icons.menu,
|
||||
color: Colors.white,
|
||||
|
@ -581,7 +562,7 @@ Widget welcomeHome(context) {
|
|||
width: 410,
|
||||
height: 70,
|
||||
child: OutlinedButton(
|
||||
key: const Key('restoreChest'),
|
||||
key: keyRestoreChest,
|
||||
style: OutlinedButton.styleFrom(
|
||||
side: BorderSide(width: 4, color: orangeC)),
|
||||
onPressed: () {
|
||||
|
|
|
@ -6,6 +6,7 @@ import 'package:gecko/globals.dart';
|
|||
import 'package:gecko/models/chest_data.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/models/wallet_data.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/chest_provider.dart';
|
||||
import 'package:gecko/providers/home.dart';
|
||||
import 'package:gecko/providers/my_wallets.dart';
|
||||
|
@ -58,7 +59,7 @@ class ChestOptions extends StatelessWidget {
|
|||
child: Column(children: <Widget>[
|
||||
SizedBox(height: 30 * ratio),
|
||||
InkWell(
|
||||
key: const Key('showSeed'),
|
||||
key: keyShowSeed,
|
||||
onTap: () async {
|
||||
MyWalletsProvider myWalletProvider =
|
||||
Provider.of<MyWalletsProvider>(context, listen: false);
|
||||
|
@ -108,7 +109,7 @@ class ChestOptions extends StatelessWidget {
|
|||
SizedBox(height: 10 * ratio),
|
||||
Consumer<SubstrateSdk>(builder: (context, sub, _) {
|
||||
return InkWell(
|
||||
key: const Key('changePin'),
|
||||
key: keyChangePin,
|
||||
onTap: sub.nodeConnected
|
||||
? () async {
|
||||
// await _chestProvider.changePin(context, cesiumWallet);
|
||||
|
@ -152,7 +153,7 @@ class ChestOptions extends StatelessWidget {
|
|||
SizedBox(height: 10 * ratio),
|
||||
Consumer<SubstrateSdk>(builder: (context, sub, _) {
|
||||
return InkWell(
|
||||
key: const Key('createRootDerivation'),
|
||||
key: keycreateRootDerivation,
|
||||
onTap: sub.nodeConnected
|
||||
? () async {
|
||||
await Navigator.push(
|
||||
|
@ -188,7 +189,7 @@ class ChestOptions extends StatelessWidget {
|
|||
}),
|
||||
SizedBox(height: 10 * ratio),
|
||||
InkWell(
|
||||
key: const Key('deleteChest'),
|
||||
key: keyDeleteChest,
|
||||
onTap: () async {
|
||||
await chestProvider.deleteChest(context, currentChest);
|
||||
},
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/my_wallets.dart';
|
||||
import 'package:gecko/models/wallet_data.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -156,7 +157,7 @@ class _ChooseChestState extends State<ChooseChest> {
|
|||
child: Align(
|
||||
alignment: Alignment.bottomCenter,
|
||||
child: InkWell(
|
||||
key: const Key('createNewChest'),
|
||||
key: keyCreateNewChest,
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
|
@ -179,7 +180,7 @@ class _ChooseChestState extends State<ChooseChest> {
|
|||
),
|
||||
),
|
||||
InkWell(
|
||||
key: const Key('importChest'),
|
||||
key: keyImportChest,
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
|
|
|
@ -7,6 +7,7 @@ import 'package:flutter/services.dart';
|
|||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/models/wallet_data.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/my_wallets.dart';
|
||||
import 'package:gecko/providers/substrate_sdk.dart';
|
||||
import 'package:gecko/providers/wallet_options.dart';
|
||||
|
@ -112,7 +113,7 @@ class ChooseWalletScreen extends StatelessWidget {
|
|||
return CustomScrollView(slivers: <Widget>[
|
||||
const SliverToBoxAdapter(child: SizedBox(height: 20)),
|
||||
SliverGrid.count(
|
||||
key: const Key('listWallets'),
|
||||
key: keyListWallets,
|
||||
crossAxisCount: nTule,
|
||||
childAspectRatio: 1,
|
||||
crossAxisSpacing: 0,
|
||||
|
|
|
@ -7,6 +7,7 @@ import 'package:flutter/services.dart';
|
|||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/models/wallet_data.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/my_wallets.dart';
|
||||
import 'package:gecko/providers/substrate_sdk.dart';
|
||||
import 'package:gecko/providers/wallet_options.dart';
|
||||
|
@ -173,7 +174,7 @@ class ImportG1v1 extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(height: 20),
|
||||
GestureDetector(
|
||||
key: const Key('copyPubkey'),
|
||||
key: keyCopyAddress,
|
||||
onTap: () {
|
||||
Clipboard.setData(
|
||||
ClipboardData(text: sub.g1V1NewAddress));
|
||||
|
|
|
@ -2,6 +2,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/screens/myWallets/migrate_identity.dart';
|
||||
// import 'package:gecko/models/wallet_data.dart';
|
||||
// import 'package:gecko/providers/my_wallets.dart';
|
||||
|
@ -41,7 +42,7 @@ class ManageMembership extends StatelessWidget {
|
|||
|
||||
Widget migrateIdentity(BuildContext context) {
|
||||
return InkWell(
|
||||
key: const Key('migrateIdentity'),
|
||||
key: keyMigrateIdentity,
|
||||
onTap: () async {
|
||||
Navigator.push(
|
||||
context,
|
||||
|
@ -64,7 +65,7 @@ class ManageMembership extends StatelessWidget {
|
|||
|
||||
Widget revokeMyIdentity(BuildContext context) {
|
||||
return InkWell(
|
||||
key: const Key('revokeIdty'),
|
||||
key: keyRevokeIdty,
|
||||
onTap: () async {
|
||||
// TODOO: Generate revoke document, and understand extrinsic identity.revokeIdentity options
|
||||
// final _answer = await confirmPopup(context,
|
||||
|
|
|
@ -3,6 +3,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/generate_wallets.dart';
|
||||
import 'package:gecko/providers/substrate_sdk.dart';
|
||||
import 'package:gecko/screens/common_elements.dart';
|
||||
|
@ -91,7 +92,7 @@ class RestoreChest extends StatelessWidget {
|
|||
width: 410,
|
||||
height: 70,
|
||||
child: ElevatedButton(
|
||||
key: const Key('goNext'),
|
||||
key: keyGoNext,
|
||||
style: ElevatedButton.styleFrom(
|
||||
elevation: 4,
|
||||
primary: orangeC, // background
|
||||
|
@ -131,7 +132,7 @@ class RestoreChest extends StatelessWidget {
|
|||
width: 190,
|
||||
height: 60,
|
||||
child: ElevatedButton(
|
||||
key: const Key('pasteMnemonic'),
|
||||
key: keyPastMnemonic,
|
||||
style: ElevatedButton.styleFrom(
|
||||
elevation: 4,
|
||||
primary: yellowC, // background
|
||||
|
@ -175,7 +176,7 @@ class RestoreChest extends StatelessWidget {
|
|||
color: Colors.white,
|
||||
child: Text(
|
||||
text,
|
||||
key: const Key('importText'),
|
||||
key: keyBubbleSpeak,
|
||||
textAlign: TextAlign.justify,
|
||||
style: const TextStyle(
|
||||
color: Colors.black, fontSize: 19, fontWeight: FontWeight.w400),
|
||||
|
|
|
@ -4,6 +4,7 @@ import 'package:flutter/services.dart';
|
|||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/models/wallet_data.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/my_wallets.dart';
|
||||
import 'package:gecko/providers/substrate_sdk.dart';
|
||||
import 'package:gecko/screens/common_elements.dart';
|
||||
|
@ -206,7 +207,7 @@ class ShowSeed extends StatelessWidget {
|
|||
),
|
||||
Text(
|
||||
dataWord,
|
||||
key: Key('word$dataWord'),
|
||||
key: keyMnemonicWord(dataWord),
|
||||
style: TextStyle(fontSize: 17 * ratio, color: Colors.black),
|
||||
),
|
||||
]),
|
||||
|
|
|
@ -53,7 +53,7 @@ class UnlockingWallet extends StatelessWidget {
|
|||
left: 15,
|
||||
child: Builder(
|
||||
builder: (context) => IconButton(
|
||||
key: const Key('popButton'),
|
||||
key: keyPopButton,
|
||||
icon: const Icon(
|
||||
Icons.arrow_back,
|
||||
color: Colors.black,
|
||||
|
@ -104,6 +104,7 @@ class UnlockingWallet extends StatelessWidget {
|
|||
SizedBox(height: 3 * ratio),
|
||||
if (canUnlock)
|
||||
InkWell(
|
||||
key: keyCachePassword,
|
||||
onTap: () {
|
||||
walletOptions.changePinCacheChoice();
|
||||
},
|
||||
|
@ -128,7 +129,7 @@ class UnlockingWallet extends StatelessWidget {
|
|||
const SizedBox(height: 10),
|
||||
// if (canUnlock)
|
||||
InkWell(
|
||||
key: const Key('chooseChest'),
|
||||
key: keyChangeChest,
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
|
|
|
@ -3,6 +3,7 @@ import 'dart:io';
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/duniter_indexer.dart';
|
||||
import 'package:gecko/providers/home.dart';
|
||||
import 'package:gecko/providers/my_wallets.dart';
|
||||
|
@ -213,7 +214,7 @@ class WalletOptions extends StatelessWidget {
|
|||
else
|
||||
const SizedBox(),
|
||||
if (isMember.data!)
|
||||
manageMemberStatus(context)
|
||||
manageMembership(context)
|
||||
]);
|
||||
}),
|
||||
]);
|
||||
|
@ -334,7 +335,7 @@ class WalletOptions extends StatelessWidget {
|
|||
Widget pubkeyWidget(WalletOptionsProvider walletProvider, BuildContext ctx) {
|
||||
final String shortPubkey = getShortPubkey(walletProvider.address.text);
|
||||
return GestureDetector(
|
||||
key: const Key('copyPubkey'),
|
||||
key: keyCopyAddress,
|
||||
onTap: () {
|
||||
Clipboard.setData(ClipboardData(text: walletProvider.address.text));
|
||||
snackCopyKey(ctx);
|
||||
|
@ -394,7 +395,7 @@ class WalletOptions extends StatelessWidget {
|
|||
WalletsProfilesProvider historyProvider,
|
||||
WalletOptionsProvider walletProvider) {
|
||||
return InkWell(
|
||||
key: const Key('displayActivity'),
|
||||
key: keyOpenActivity,
|
||||
onTap: () {
|
||||
// _historyProvider.nPage = 1;
|
||||
Navigator.push(
|
||||
|
@ -431,11 +432,11 @@ class WalletOptions extends StatelessWidget {
|
|||
);
|
||||
}
|
||||
|
||||
Widget manageMemberStatus(BuildContext context) {
|
||||
Widget manageMembership(BuildContext context) {
|
||||
WalletOptionsProvider walletOptions =
|
||||
Provider.of<WalletOptionsProvider>(context, listen: false);
|
||||
return InkWell(
|
||||
key: const Key('manageStatus'),
|
||||
key: keyManageMembership,
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
|
@ -471,7 +472,7 @@ class WalletOptions extends StatelessWidget {
|
|||
WalletData defaultWallet = myWalletProvider.getDefaultWallet();
|
||||
walletOptions.isDefaultWallet = (defaultWallet.number == wallet.id()[1]);
|
||||
return InkWell(
|
||||
key: const Key('setDefaultWallet'),
|
||||
key: keySetDefaultWallet,
|
||||
onTap: !walletProvider.isDefaultWallet
|
||||
? () async {
|
||||
await setDefaultWallet(context, currentChest);
|
||||
|
@ -544,7 +545,7 @@ class WalletOptions extends StatelessWidget {
|
|||
!hasConsumers.data! &&
|
||||
(balance > 2 || balance == 0);
|
||||
return InkWell(
|
||||
key: const Key('deleteWallet'),
|
||||
key: keyDeleteWallet,
|
||||
onTap: canDelete
|
||||
? () async {
|
||||
await walletProvider.deleteWallet(context, wallet);
|
||||
|
|
|
@ -4,6 +4,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/chest_data.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/duniter_indexer.dart';
|
||||
import 'package:gecko/providers/home.dart';
|
||||
import 'package:gecko/providers/my_wallets.dart';
|
||||
|
@ -59,7 +60,6 @@ class WalletsHome extends StatelessWidget {
|
|||
);
|
||||
}),
|
||||
title: Text(currentChest.name!,
|
||||
key: const Key('myWallets'),
|
||||
style: TextStyle(color: Colors.grey[850])),
|
||||
backgroundColor: const Color(0xffFFD58D),
|
||||
),
|
||||
|
@ -108,7 +108,7 @@ class WalletsHome extends StatelessWidget {
|
|||
)),
|
||||
const SizedBox(height: 30),
|
||||
InkWell(
|
||||
key: const Key('importG1v1'),
|
||||
key: keyImportG1v1,
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
|
@ -130,7 +130,7 @@ class WalletsHome extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(height: 5),
|
||||
InkWell(
|
||||
key: const Key('changeChest'),
|
||||
key: keyChangeChest,
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
|
@ -190,7 +190,7 @@ class WalletsHome extends StatelessWidget {
|
|||
return CustomScrollView(slivers: <Widget>[
|
||||
const SliverToBoxAdapter(child: SizedBox(height: 20)),
|
||||
SliverGrid.count(
|
||||
key: const Key('listWallets'),
|
||||
key: keyListWallets,
|
||||
crossAxisCount: nTule,
|
||||
childAspectRatio: 1,
|
||||
crossAxisSpacing: 0,
|
||||
|
@ -366,7 +366,7 @@ class WalletsHome extends StatelessWidget {
|
|||
child: Column(children: <Widget>[
|
||||
Expanded(
|
||||
child: InkWell(
|
||||
key: const Key('addDerivation'),
|
||||
key: keyAddDerivation,
|
||||
onTap: () async {
|
||||
if (!myWalletProvider.isNewDerivationLoading) {
|
||||
WalletData? defaultWallet =
|
||||
|
|
|
@ -2,6 +2,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/cesium_plus.dart';
|
||||
import 'package:gecko/models/g1_wallets_list.dart';
|
||||
import 'package:gecko/providers/duniter_indexer.dart';
|
||||
|
@ -71,7 +72,7 @@ class ContactsScreen extends StatelessWidget {
|
|||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 5),
|
||||
child: ListTile(
|
||||
key: Key('searchResult${keyID++}'),
|
||||
key: keySearchResult(keyID++),
|
||||
horizontalTitleGap: 40,
|
||||
contentPadding: const EdgeInsets.all(5),
|
||||
leading: cesiumPlusProvider
|
||||
|
|
|
@ -102,7 +102,7 @@ class OnboardingStepTen extends StatelessWidget {
|
|||
Consumer<SubstrateSdk>(builder: (context, sub, _) {
|
||||
return sub.nodeConnected
|
||||
? InkWell(
|
||||
key: const Key('cachePassword'),
|
||||
key: keyCachePassword,
|
||||
onTap: () {
|
||||
walletOptions.changePinCacheChoice();
|
||||
},
|
||||
|
|
|
@ -4,6 +4,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/screens/common_elements.dart';
|
||||
import 'package:gecko/screens/myWallets/wallets_home.dart';
|
||||
|
||||
|
@ -54,7 +55,7 @@ Widget finishButton(BuildContext context) {
|
|||
width: 380 * ratio,
|
||||
height: 60 * ratio,
|
||||
child: ElevatedButton(
|
||||
key: const Key('goWalletHome'),
|
||||
key: keyGoWalletsHome,
|
||||
style: ElevatedButton.styleFrom(
|
||||
elevation: 4,
|
||||
primary: orangeC,
|
||||
|
|
|
@ -4,6 +4,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/generate_wallets.dart';
|
||||
import 'package:gecko/providers/my_wallets.dart';
|
||||
import 'package:gecko/screens/common_elements.dart';
|
||||
|
@ -80,7 +81,7 @@ class _ChooseChestState extends State<OnboardingStepFive> {
|
|||
width: 380 * ratio,
|
||||
height: 60 * ratio,
|
||||
child: ElevatedButton(
|
||||
key: const Key('generateMnemonic'),
|
||||
key: keyGenerateMnemonic,
|
||||
style: ElevatedButton.styleFrom(
|
||||
elevation: 4,
|
||||
primary: const Color(0xffFFD58D),
|
||||
|
@ -174,7 +175,7 @@ Widget arrayCell(dataWord) {
|
|||
),
|
||||
Text(
|
||||
dataWord.split(':')[1],
|
||||
key: Key('word${dataWord.split(':')[0]}'),
|
||||
key: keyMnemonicWord(dataWord.split(':')[0]),
|
||||
style: TextStyle(fontSize: 17 * ratio, color: Colors.black),
|
||||
),
|
||||
]),
|
||||
|
|
|
@ -4,6 +4,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/generate_wallets.dart';
|
||||
import 'package:gecko/screens/common_elements.dart';
|
||||
import 'package:gecko/screens/onBoarding/7.dart';
|
||||
|
@ -66,7 +67,7 @@ class OnboardingStepSix extends StatelessWidget {
|
|||
true),
|
||||
SizedBox(height: isTall ? 70 : 20),
|
||||
Text('${generateWalletProvider.nbrWord + 1}',
|
||||
key: const Key('askedWord'),
|
||||
key: keyAskedWord,
|
||||
style: TextStyle(
|
||||
fontSize: isTall ? 17 : 15,
|
||||
color: orangeC,
|
||||
|
@ -81,7 +82,7 @@ class OnboardingStepSix extends StatelessWidget {
|
|||
)),
|
||||
width: 430,
|
||||
child: TextFormField(
|
||||
key: const Key('inputWord'),
|
||||
key: keyInputWord,
|
||||
autofocus: true,
|
||||
enabled: !generateWalletProvider.isAskedWordValid,
|
||||
controller: wordController,
|
||||
|
@ -206,7 +207,7 @@ Widget arrayCell(dataWord) {
|
|||
),
|
||||
Text(
|
||||
dataWord.split(':')[1],
|
||||
key: Key('word${dataWord.split(':')[0]}'),
|
||||
key: keyMnemonicWord(dataWord.split(':')[0]),
|
||||
style: const TextStyle(fontSize: 20, color: Colors.black),
|
||||
),
|
||||
]),
|
||||
|
|
|
@ -3,6 +3,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/generate_wallets.dart';
|
||||
import 'package:gecko/screens/common_elements.dart';
|
||||
import 'package:gecko/screens/onBoarding/10.dart';
|
||||
|
@ -52,7 +53,7 @@ class OnboardingStepNine extends StatelessWidget {
|
|||
alignment: Alignment.centerRight,
|
||||
children: <Widget>[
|
||||
TextField(
|
||||
key: const Key('generatedPin'),
|
||||
key: keyGeneratedPin,
|
||||
enabled: false,
|
||||
controller: generateWalletProvider.pin,
|
||||
maxLines: 1,
|
||||
|
@ -79,7 +80,7 @@ class OnboardingStepNine extends StatelessWidget {
|
|||
width: 380 * ratio,
|
||||
height: 60 * ratio,
|
||||
child: ElevatedButton(
|
||||
key: const Key('changeSecretCode'),
|
||||
key: keyChangePin,
|
||||
style: ElevatedButton.styleFrom(
|
||||
elevation: 4,
|
||||
primary: const Color(0xffFFD58D),
|
||||
|
|
|
@ -2,6 +2,7 @@ import 'package:easy_localization/easy_localization.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/cesium_plus.dart';
|
||||
import 'package:gecko/models/g1_wallets_list.dart';
|
||||
import 'package:gecko/providers/duniter_indexer.dart';
|
||||
|
@ -94,7 +95,7 @@ class SearchResultScreen extends StatelessWidget {
|
|||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 5),
|
||||
child: ListTile(
|
||||
key: Key('searchResult${keyID++}'),
|
||||
key: keySearchResult(keyID++),
|
||||
horizontalTitleGap: 40,
|
||||
contentPadding: const EdgeInsets.all(5),
|
||||
leading: cesiumPlusProvider
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/duniter_indexer.dart';
|
||||
import 'package:gecko/providers/my_wallets.dart';
|
||||
import 'package:gecko/providers/settings_provider.dart';
|
||||
|
@ -45,7 +46,7 @@ class SettingsScreen extends StatelessWidget {
|
|||
width: buttonWidth,
|
||||
child: Center(
|
||||
child: InkWell(
|
||||
key: const Key('deleteAllWallets'),
|
||||
key: keyDeleteAllWallets,
|
||||
onTap: () async {
|
||||
log.i('Oublier tous mes coffres');
|
||||
await _myWallets.deleteAllWallet(context);
|
||||
|
|
|
@ -5,6 +5,7 @@ import 'package:flutter/services.dart';
|
|||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/models/g1_wallets_list.dart';
|
||||
import 'package:gecko/models/widgets_keys.dart';
|
||||
import 'package:gecko/providers/cesium_plus.dart';
|
||||
import 'package:gecko/providers/home.dart';
|
||||
import 'package:gecko/providers/substrate_sdk.dart';
|
||||
|
@ -116,7 +117,7 @@ class WalletViewScreen extends StatelessWidget {
|
|||
child: Material(
|
||||
color: yellowC, //const Color(0xffFFD58D), // button color
|
||||
child: InkWell(
|
||||
key: const Key('viewHistory'),
|
||||
key: keyViewActivity,
|
||||
splashColor: orangeC, // inkwell color
|
||||
child: const Padding(
|
||||
padding: EdgeInsets.all(13),
|
||||
|
@ -206,7 +207,7 @@ class WalletViewScreen extends StatelessWidget {
|
|||
color:
|
||||
const Color(0xffFFD58D), // button color
|
||||
child: InkWell(
|
||||
key: const Key('certify'),
|
||||
key: keyCertify,
|
||||
splashColor: orangeC, // inkwell color
|
||||
child: const Padding(
|
||||
padding: EdgeInsets.only(bottom: 0),
|
||||
|
@ -290,7 +291,7 @@ class WalletViewScreen extends StatelessWidget {
|
|||
child: Material(
|
||||
color: const Color(0xffFFD58D), // button color
|
||||
child: InkWell(
|
||||
key: const Key('copyKey'),
|
||||
key: keyCopyAddress,
|
||||
splashColor: orangeC, // inkwell color
|
||||
child: const Padding(
|
||||
padding: EdgeInsets.all(20),
|
||||
|
@ -331,7 +332,7 @@ class WalletViewScreen extends StatelessWidget {
|
|||
child: Material(
|
||||
color: orangeC, // button color
|
||||
child: InkWell(
|
||||
key: const Key('pay'),
|
||||
key: keyPay,
|
||||
splashColor: yellowC,
|
||||
onTap: sub.nodeConnected
|
||||
? () {
|
||||
|
|
Loading…
Reference in New Issue