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