From 8b40b706b7d104ff63b76800e90cd33fc9e60ca4 Mon Sep 17 00:00:00 2001 From: poka Date: Fri, 9 Dec 2022 19:55:40 +0100 Subject: [PATCH] BIG WIP --- .../scenarios/identity_revocation.dart | 4 +- integration_test/utility/general_actions.dart | 7 +- integration_test/utility/tests_utility.dart | 21 ++-- lib/main.dart | 101 +++++++----------- lib/providers/cesium_plus.dart | 8 +- lib/providers/chest_provider.dart | 10 +- lib/providers/duniter_indexer.dart | 7 +- lib/providers/generate_wallets.dart | 6 +- lib/providers/home.dart | 2 +- lib/providers/my_wallets.dart | 6 +- lib/providers/search.dart | 13 +-- lib/providers/settings_provider.dart | 7 +- lib/providers/substrate_sdk.dart | 6 +- lib/providers/wallet_options.dart | 7 +- lib/providers/wallets_profiles.dart | 8 +- lib/screens/activity.dart | 56 +++++----- lib/screens/certifications.dart | 5 +- lib/screens/myWallets/change_pin.dart | 2 +- lib/screens/myWallets/chest_options.dart | 2 +- lib/screens/myWallets/choose_wallet.dart | 2 +- lib/screens/myWallets/import_g1_v1.dart | 2 +- lib/screens/myWallets/manage_membership.dart | 2 +- lib/screens/myWallets/migrate_identity.dart | 2 +- lib/screens/myWallets/restore_chest.dart | 2 +- lib/screens/myWallets/show_seed.dart | 4 +- lib/screens/myWallets/unlocking_wallet.dart | 2 +- lib/screens/myWallets/wallet_options.dart | 2 +- lib/screens/myWallets/wallets_home.dart | 72 ++++++------- lib/screens/my_contacts.dart | 2 +- lib/screens/onBoarding/1.dart | 2 +- lib/screens/onBoarding/10.dart | 2 +- .../onBoarding/11_congratulations.dart | 2 +- lib/screens/onBoarding/2.dart | 2 +- lib/screens/onBoarding/3.dart | 2 +- lib/screens/onBoarding/4.dart | 2 +- lib/screens/onBoarding/5.dart | 2 +- lib/screens/onBoarding/6.dart | 2 +- lib/screens/onBoarding/7.dart | 2 +- lib/screens/onBoarding/8.dart | 2 +- lib/screens/onBoarding/9.dart | 2 +- lib/screens/qrcode_fullscreen.dart | 3 +- lib/screens/search_result.dart | 2 +- lib/screens/settings.dart | 11 +- lib/screens/template_screen.dart | 5 +- lib/screens/transaction_in_progress.dart | 2 +- lib/screens/wallet_view.dart | 2 +- lib/widgets/balance.dart | 17 +-- lib/widgets/bottom_app_bar.dart | 2 +- lib/widgets/cert_tile.dart | 2 +- lib/widgets/certifications.dart | 2 +- lib/widgets/certs_counter.dart | 2 +- lib/widgets/certs_received.dart | 3 +- lib/widgets/certs_sent.dart | 3 +- lib/widgets/contacts_list.dart | 2 +- lib/widgets/header_profile.dart | 2 +- lib/widgets/idty_status.dart | 2 +- lib/widgets/name_by_address.dart | 2 +- lib/widgets/search_identity_query.dart | 2 +- lib/widgets/search_result_list.dart | 2 +- lib/widgets/template.dart | 2 +- lib/widgets/transaction_tile.dart | 14 ++- lib/widgets/ud_unit_display.dart | 2 +- lib/widgets/wallet_name.dart | 2 +- 63 files changed, 248 insertions(+), 232 deletions(-) diff --git a/integration_test/scenarios/identity_revocation.dart b/integration_test/scenarios/identity_revocation.dart index 8fff4c7..14aa464 100644 --- a/integration_test/scenarios/identity_revocation.dart +++ b/integration_test/scenarios/identity_revocation.dart @@ -22,9 +22,9 @@ void main() async { // Create test5 identity await bkPay( fromAddress: test1.address, destAddress: test5.address, amount: 30); - sub.reload(); + subR.reload(); await bkCertify(fromAddress: test1.address, destAddress: test5.address); - sub.reload(); + subR.reload(); await sleep(); // Certify test5 to become member diff --git a/integration_test/utility/general_actions.dart b/integration_test/utility/general_actions.dart index 15489ff..012da6d 100644 --- a/integration_test/utility/general_actions.dart +++ b/integration_test/utility/general_actions.dart @@ -92,8 +92,9 @@ Future restoreChest() async { } Future onboardingNewChest() async { - final generateWalletProvider = - Provider.of(homeContext, listen: false); + late GenerateWalletsProvider generateWalletsProviderR; + // StateProvider((ref) => generateWalletsProviderR = ref.read(generateWalletsProvider)); + // Open screen create new wallet await tapKey(keyOnboardingNewChest); @@ -122,7 +123,7 @@ Future onboardingNewChest() async { // Enter asked word final askedWordNumber = int.parse(getWidgetText(keyAskedWord)); - List mnemonic = generateWalletProvider.generatedMnemonic!.split(' '); + List mnemonic = generateWalletsProviderR.generatedMnemonic!.split(' '); final askedWord = mnemonic[askedWordNumber - 1]; await enterText(keyInputWord, askedWord); diff --git a/integration_test/utility/tests_utility.dart b/integration_test/utility/tests_utility.dart index e22f16e..aecd557 100644 --- a/integration_test/utility/tests_utility.dart +++ b/integration_test/utility/tests_utility.dart @@ -16,7 +16,10 @@ final bool isHumanReading = dotenv.env['isHumanReading'] == 'true' ? true : false; Timeout testTimeout([int seconds = 120]) => Timeout(Duration(seconds: isHumanReading ? 600 : seconds)); -final sub = Provider.of(homeContext, listen: false); +// final subR = Provider.of(homeContext, listen: false); + late SubstrateSdk subR; + StateProvider( + (ref) => subR = ref.read(sub)); late WidgetTester tester; // TEST WALLETS CONSTS @@ -177,9 +180,9 @@ Future spawnBlock({int number = 1, int duration = 200, int? until}) async { await sleep(duration); } if (until != null) { - number = until - sub.blocNumber; + number = until - subR.blocNumber; } - await sub.spawnBlock(number); + await subR.spawnBlock(number); await sleep(200); } @@ -188,7 +191,7 @@ Future bkPay( {required String fromAddress, required String destAddress, required double amount}) async { - sub.pay( + subR.pay( fromAddress: fromAddress, destAddress: destAddress, amount: amount, @@ -203,7 +206,7 @@ Future bkCertify( {required String fromAddress, required String destAddress, bool spawnBloc = true}) async { - sub.certify(fromAddress, destAddress, 'AAAAA'); + subR.certify(fromAddress, destAddress, 'AAAAA'); if (spawnBloc) { await sleep(500); await spawnBlock(); @@ -214,7 +217,7 @@ Future bkCertify( // Confirm my identity in background Future bkConfirmIdentity( {required String fromAddress, required String name}) async { - sub.confirmIdentity(fromAddress, name, 'AAAAA'); + subR.confirmIdentity(fromAddress, name, 'AAAAA'); await sleep(500); await spawnBlock(); await sleep(500); @@ -227,7 +230,7 @@ Future bkSetNode([String? endpoint]) async { endpoint = 'ws://$ipAddress:9944'; } configBox.put('customEndpoint', endpoint); - sub.connectNode(homeContext); + subR.connectNode(homeContext); } // Restore chest in background @@ -256,7 +259,7 @@ Future _addImportAccount( required int number, required String name, required int derivation}) async { - final address = await sub.importAccount( + final address = await subR.importAccount( mnemonic: mnemonic, derivePath: '//$derivation', password: 'AAAAA'); final myWallet = WalletData( chest: chest, @@ -282,7 +285,7 @@ Future bkDeleteAllWallets() async { await chestBox.clear(); await configBox.delete('defaultWallet'); await configBox.delete('isUdUnit'); - await sub.deleteAllAccounts(); + await subR.deleteAllAccounts(); myWalletProvider.pinCode = ''; myWalletProvider.reload(); } diff --git a/lib/main.dart b/lib/main.dart index e14b004..e7d7001 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -22,17 +22,7 @@ import 'package:gecko/globals.dart'; import 'package:gecko/models/chest_data.dart'; import 'package:gecko/models/g1_wallets_list.dart'; import 'package:gecko/models/wallet_data.dart'; -import 'package:gecko/providers/cesium_plus.dart'; -import 'package:gecko/providers/chest_provider.dart'; -import 'package:gecko/providers/duniter_indexer.dart'; -import 'package:gecko/providers/generate_wallets.dart'; -import 'package:gecko/providers/settings_provider.dart'; -import 'package:gecko/providers/substrate_sdk.dart'; -import 'package:gecko/providers/wallets_profiles.dart'; import 'package:gecko/providers/home.dart'; -import 'package:gecko/providers/my_wallets.dart'; -import 'package:gecko/providers/search.dart'; -import 'package:gecko/providers/wallet_options.dart'; import 'package:gecko/screens/home.dart'; import 'package:flutter/material.dart'; import 'package:gecko/screens/myWallets/wallets_home.dart'; @@ -119,66 +109,51 @@ Future main() async { } } -class Gecko extends StatelessWidget { +class Gecko extends ConsumerWidget { const Gecko({Key? key}) : super(key: key); @override - Widget build(BuildContext context) { + Widget build(BuildContext context, WidgetRef ref) { // To configure multi_endpoints GraphQLProvider: https://stackoverflow.com/q/70656513/8301867 - return MultiProvider( - providers: [ - ChangeNotifierProvider(create: (_) => HomeProvider()), - ChangeNotifierProvider(create: (_) => WalletsProfilesProvider('')), - ChangeNotifierProvider(create: (_) => MyWalletsProvider()), - ChangeNotifierProvider(create: (_) => ChestProvider()), - ChangeNotifierProvider(create: (_) => GenerateWalletsProvider()), - ChangeNotifierProvider(create: (_) => WalletOptionsProvider()), - ChangeNotifierProvider(create: (_) => SearchProvider()), - ChangeNotifierProvider(create: (_) => CesiumPlusProvider()), - ChangeNotifierProvider(create: (_) => SubstrateSdk()), - ChangeNotifierProvider(create: (_) => DuniterIndexer()), - ChangeNotifierProvider(create: (_) => SettingsProvider()) - ], - child: MaterialApp( - localizationsDelegates: context.localizationDelegates, - supportedLocales: context.supportedLocales, - locale: context.locale, - builder: (context, widget) => ResponsiveWrapper.builder( - BouncingScrollWrapper.builder(context, widget!), - maxWidth: 1200, - minWidth: 480, - defaultScale: true, - breakpoints: [ - const ResponsiveBreakpoint.resize(480, name: MOBILE), - const ResponsiveBreakpoint.autoScale(800, name: TABLET), - const ResponsiveBreakpoint.resize(1000, name: DESKTOP), - ], - background: Container(color: backgroundColor)), - title: 'Ğecko', - theme: ThemeData( - appBarTheme: const AppBarTheme( - color: Color(0xffFFD58D), - foregroundColor: Color(0xFF000000), - ), - primaryColor: const Color(0xffFFD58D), - textTheme: const TextTheme( - bodyText1: TextStyle(fontSize: 16), - bodyText2: TextStyle(fontSize: 18), - ).apply( - bodyColor: const Color(0xFF000000), - ), - colorScheme: - ColorScheme.fromSwatch().copyWith(secondary: Colors.grey[850]), + return MaterialApp( + localizationsDelegates: context.localizationDelegates, + supportedLocales: context.supportedLocales, + locale: context.locale, + builder: (context, widget) => ResponsiveWrapper.builder( + BouncingScrollWrapper.builder(context, widget!), + maxWidth: 1200, + minWidth: 480, + defaultScale: true, + breakpoints: [ + const ResponsiveBreakpoint.resize(480, name: MOBILE), + const ResponsiveBreakpoint.autoScale(800, name: TABLET), + const ResponsiveBreakpoint.resize(1000, name: DESKTOP), + ], + background: Container(color: backgroundColor)), + title: 'Ğecko', + theme: ThemeData( + appBarTheme: const AppBarTheme( + color: Color(0xffFFD58D), + foregroundColor: Color(0xFF000000), ), - home: const HomeScreen(), - initialRoute: "/", - routes: { - '/mywallets': (context) => const WalletsHome(), - '/search': (context) => const SearchScreen(), - '/searchResult': (context) => const SearchResultScreen(), - }, + primaryColor: const Color(0xffFFD58D), + textTheme: const TextTheme( + bodyText1: TextStyle(fontSize: 16), + bodyText2: TextStyle(fontSize: 18), + ).apply( + bodyColor: const Color(0xFF000000), + ), + colorScheme: + ColorScheme.fromSwatch().copyWith(secondary: Colors.grey[850]), ), + home: const HomeScreen(), + initialRoute: "/", + routes: { + '/mywallets': (context) => const WalletsHome(), + '/search': (context) => const SearchScreen(), + '/searchResult': (context) => const SearchResultScreen(), + }, ); } } diff --git a/lib/providers/cesium_plus.dart b/lib/providers/cesium_plus.dart index 379e523..65c758f 100644 --- a/lib/providers/cesium_plus.dart +++ b/lib/providers/cesium_plus.dart @@ -2,11 +2,12 @@ import 'dart:convert'; import 'dart:io'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:gecko/globals.dart'; import 'package:path_provider/path_provider.dart'; // import 'package:http/http.dart' as http; -class CesiumPlusProvider with ChangeNotifier { +class CesiumPlusProvider extends ChangeNotifier { TextEditingController cesiumName = TextEditingController(); CancelToken avatarCancelToken = CancelToken(); @@ -157,3 +158,8 @@ class CesiumPlusProvider with ChangeNotifier { Image defaultAvatar(double size) => Image.asset(('assets/icon_user.png'), height: size); + + +final cesiumPlusProvider = ChangeNotifierProvider((ref) { + return CesiumPlusProvider(); +}); diff --git a/lib/providers/chest_provider.dart b/lib/providers/chest_provider.dart index ace2170..0a8b334 100644 --- a/lib/providers/chest_provider.dart +++ b/lib/providers/chest_provider.dart @@ -9,16 +9,16 @@ import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/providers/substrate_sdk.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class ChestProvider with ChangeNotifier { +class ChestProvider extends ChangeNotifier { void reload() { notifyListeners(); } Future deleteChest(context, ChestData chest) async { final bool? answer = await (_confirmDeletingChest(context, chest.name)); - final sub = Provider.of(context, listen: false); + final subR = Provider.of(context, listen: false); if (answer ?? false) { - await sub.deleteAccounts(getChestWallets(chest)); + await subR.deleteAccounts(getChestWallets(chest)); await chestBox.delete(chest.key); final myWalletProvider = Provider.of(context, listen: false); @@ -77,3 +77,7 @@ class ChestProvider with ChangeNotifier { ); } } + +final chestProvider = ChangeNotifierProvider((ref) { + return ChestProvider(); +}); diff --git a/lib/providers/duniter_indexer.dart b/lib/providers/duniter_indexer.dart index 3184de8..d175ef2 100644 --- a/lib/providers/duniter_indexer.dart +++ b/lib/providers/duniter_indexer.dart @@ -4,12 +4,13 @@ import 'dart:io'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/models/queries_indexer.dart'; import 'package:gecko/providers/substrate_sdk.dart'; import 'package:graphql_flutter/graphql_flutter.dart'; -class DuniterIndexer with ChangeNotifier { +class DuniterIndexer extends ChangeNotifier { Map walletNameIndexer = {}; String? fetchMoreCursor; Map? pageInfo; @@ -330,3 +331,7 @@ int weekNumber(DateTime date) { int dayOfYear = int.parse(DateFormat("D").format(date)); return ((dayOfYear - date.weekday + 10) / 7).floor(); } + +final duniterIndexer = ChangeNotifierProvider((ref) { + return DuniterIndexer(); +}); diff --git a/lib/providers/generate_wallets.dart b/lib/providers/generate_wallets.dart index f23a8b1..ba91601 100644 --- a/lib/providers/generate_wallets.dart +++ b/lib/providers/generate_wallets.dart @@ -14,7 +14,7 @@ import 'package:polkawallet_sdk/api/apiKeyring.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import "package:unorm_dart/unorm_dart.dart" as unorm; -class GenerateWalletsProvider with ChangeNotifier { +class GenerateWalletsProvider extends ChangeNotifier { GenerateWalletsProvider(); // NewWallet generatedWallet; durt.NewWallet? actualWallet; @@ -468,3 +468,7 @@ class GenerateWalletsProvider with ChangeNotifier { } } } + +final generateWalletsProvider = ChangeNotifierProvider((ref) { + return GenerateWalletsProvider(); +}); diff --git a/lib/providers/home.dart b/lib/providers/home.dart index 65276fb..b7d9ea7 100644 --- a/lib/providers/home.dart +++ b/lib/providers/home.dart @@ -20,7 +20,7 @@ import 'package:package_info_plus/package_info_plus.dart'; import 'package:path_provider/path_provider.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class HomeProvider with ChangeNotifier { +class HomeProvider extends ChangeNotifier { bool? isSearching; Icon searchIcon = const Icon(Icons.search); final TextEditingController searchQuery = TextEditingController(); diff --git a/lib/providers/my_wallets.dart b/lib/providers/my_wallets.dart index ba1376b..7c0b89a 100644 --- a/lib/providers/my_wallets.dart +++ b/lib/providers/my_wallets.dart @@ -234,8 +234,8 @@ class MyWalletsProvider extends ChangeNotifier { } } - // Finally, we are using StateNotifierProvider to allow the UI to interact with -// our TodosNotifier class. +// Finally, we are using StateNotifierProvider to allow the UI to interact with +// our MyWalletsProvider class. final myWalletsProvider = ChangeNotifierProvider((ref) { return MyWalletsProvider(); -}); \ No newline at end of file +}); diff --git a/lib/providers/search.dart b/lib/providers/search.dart index aed638a..ec60a32 100644 --- a/lib/providers/search.dart +++ b/lib/providers/search.dart @@ -1,8 +1,9 @@ import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:gecko/models/g1_wallets_list.dart'; import 'package:gecko/providers/wallets_profiles.dart'; -class SearchProvider with ChangeNotifier { +class SearchProvider extends ChangeNotifier { TextEditingController searchController = TextEditingController(); List searchResult = []; final cacheDuring = 20 * 60 * 1000; //First number is minutes @@ -80,10 +81,6 @@ class SearchProvider with ChangeNotifier { } } -// List? _parseG1Wallets(var responseBody) { -// final parsed = responseBody.cast>(); - -// return parsed -// .map((json) => G1WalletsList.fromJson(json)) -// .toList(); -// } +final searchProvider = ChangeNotifierProvider((ref) { + return SearchProvider(); +}); diff --git a/lib/providers/settings_provider.dart b/lib/providers/settings_provider.dart index 9db6eb7..ff39e2b 100644 --- a/lib/providers/settings_provider.dart +++ b/lib/providers/settings_provider.dart @@ -1,7 +1,12 @@ import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; -class SettingsProvider with ChangeNotifier { +class SettingsProvider extends ChangeNotifier { void reload() { notifyListeners(); } } + +final settingsProvider = ChangeNotifierProvider((ref) { + return SettingsProvider(); +}); diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart index bc37cb0..fa41158 100644 --- a/lib/providers/substrate_sdk.dart +++ b/lib/providers/substrate_sdk.dart @@ -24,7 +24,7 @@ import 'package:truncate/truncate.dart'; import 'package:pointycastle/pointycastle.dart' as pc; import "package:hex/hex.dart"; -class SubstrateSdk with ChangeNotifier { +class SubstrateSdk extends ChangeNotifier { final WalletSDK sdk = WalletSDK(); final Keyring keyring = Keyring(); String generatedMnemonic = ''; @@ -1139,3 +1139,7 @@ Uint8List _int32bytes(int value) => double round(double number, [int decimal = 2]) { return double.parse((number.toStringAsFixed(decimal))); } + +final sub = ChangeNotifierProvider((ref) { + return SubstrateSdk(); +}); diff --git a/lib/providers/wallet_options.dart b/lib/providers/wallet_options.dart index c970609..349edd7 100644 --- a/lib/providers/wallet_options.dart +++ b/lib/providers/wallet_options.dart @@ -18,7 +18,7 @@ import 'package:image_picker/image_picker.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:image_cropper/image_cropper.dart'; -class WalletOptionsProvider with ChangeNotifier { +class WalletOptionsProvider extends ChangeNotifier { TextEditingController address = TextEditingController(); final TextEditingController _newWalletName = TextEditingController(); bool isWalletUnlock = false; @@ -385,3 +385,8 @@ class WalletOptionsProvider with ChangeNotifier { return addressGet; } } + +final walletOptionsProvider = + ChangeNotifierProvider((ref) { + return WalletOptionsProvider(); +}); diff --git a/lib/providers/wallets_profiles.dart b/lib/providers/wallets_profiles.dart index 5782ab2..8175fcf 100644 --- a/lib/providers/wallets_profiles.dart +++ b/lib/providers/wallets_profiles.dart @@ -1,6 +1,7 @@ import 'dart:io'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/models/g1_wallets_list.dart'; import 'package:gecko/screens/wallet_view.dart'; @@ -9,7 +10,7 @@ import 'package:permission_handler/permission_handler.dart'; // import 'package:qrscan/qrscan.dart' as scanner; import 'package:barcode_scan2/barcode_scan2.dart'; -class WalletsProfilesProvider with ChangeNotifier { +class WalletsProfilesProvider extends ChangeNotifier { WalletsProfilesProvider(this.address); String address = ''; @@ -161,3 +162,8 @@ snackCopySeed(context) { duration: const Duration(seconds: 4)); ScaffoldMessenger.of(context).showSnackBar(snackBar); } + +final walletsProfilesProvider = + ChangeNotifierProvider((ref) { + return WalletsProfilesProvider(''); +}); diff --git a/lib/screens/activity.dart b/lib/screens/activity.dart index 8aac027..3cc936a 100644 --- a/lib/screens/activity.dart +++ b/lib/screens/activity.dart @@ -13,31 +13,26 @@ import 'package:gecko/widgets/transaction_tile.dart'; import 'package:graphql_flutter/graphql_flutter.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class ActivityScreen extends StatefulWidget with ChangeNotifier { +class ActivityScreen extends ConsumerWidget { ActivityScreen({required this.address, required this.avatar, this.username}) : super(key: keyActivityScreen); final String address; final String? username; final Image avatar; - @override - State createState() => _ActivityScreenState(); -} - -class _ActivityScreenState extends State { // @override - // void initState() { - // super.initState(); - // } - final ScrollController scrollController = ScrollController(); + final double avatarsSize = 80; + FetchMore? fetchMore; + FetchMoreOptions? opts; + final GlobalKey _scaffoldKey = GlobalKey(); @override - Widget build(BuildContext context) { + Widget build(BuildContext context, WidgetRef ref) { return Scaffold( key: _scaffoldKey, appBar: AppBar( @@ -50,13 +45,14 @@ class _ActivityScreenState extends State { ), bottomNavigationBar: const GeckoBottomAppBar(), body: Column(children: [ - HeaderProfile(address: widget.address, username: widget.username), - historyQuery(context), + HeaderProfile(address: address, username: username), + historyQuery(ref), ])); } - Widget historyQuery(context) { - final duniterIndexer = Provider.of(context, listen: false); + Widget historyQuery(WidgetRef ref) { + final duniterIndexerW = ref.read(duniterIndexer); + int nPage = 1; int nRepositories = 20; @@ -93,7 +89,7 @@ class _ActivityScreenState extends State { options: QueryOptions( document: gql(getHistoryByAddressQ), variables: { - 'address': widget.address, + 'address': address, 'number': 20, 'cursor': null }, @@ -129,7 +125,7 @@ class _ActivityScreenState extends State { } if (result.isNotLoading) { - if (duniterIndexer.fetchMoreCursor == null) nPage = 1; + if (duniterIndexerW.fetchMoreCursor == null) nPage = 1; // log.d('nPage: $nPage'); @@ -143,8 +139,8 @@ class _ActivityScreenState extends State { nRepositories = 120; } nPage++; - opts = duniterIndexer.mergeQueryResult( - result, opts, widget.address, nRepositories); + opts = duniterIndexerW.mergeQueryResult( + result, opts, address, nRepositories); } // Build history list @@ -154,7 +150,7 @@ class _ActivityScreenState extends State { child: ListView( key: keyListTransactions, controller: scrollController, - children: [historyView(context, result)], + children: [historyView(ref, result)], ), ), ), @@ -162,7 +158,7 @@ class _ActivityScreenState extends State { if (t is ScrollEndNotification && scrollController.position.pixels >= scrollController.position.maxScrollExtent * 0.7 && - duniterIndexer.pageInfo!['hasNextPage'] && + duniterIndexerW.pageInfo!['hasNextPage'] && result.isNotLoading) { fetchMore!(opts!); } @@ -175,15 +171,15 @@ class _ActivityScreenState extends State { ); } - Widget historyView(context, result) { - final duniterIndexer = Provider.of(context, listen: false); + Widget historyView(WidgetRef ref, result) { + final duniterIndexerW = ref.read(duniterIndexer); int keyID = 0; const double avatarSize = 200; String? lastDateDelimiter; bool? isDouble; bool isMigrationPassed = false; - return duniterIndexer.transBC == null + return duniterIndexerW.transBC == null ? Column(children: [ const SizedBox(height: 50), Text( @@ -193,7 +189,7 @@ class _ActivityScreenState extends State { ]) : Column(children: [ Column( - children: duniterIndexer.transBC!.map((repository) { + children: duniterIndexerW.transBC!.map((repository) { final answer = computeHistoryView(repository, lastDateDelimiter, isDouble); isDouble = lastDateDelimiter == answer['dateDelimiter'] || @@ -229,24 +225,24 @@ class _ActivityScreenState extends State { ), ), TransactionTile( - widget: widget, + username: username ?? '', keyID: keyID, avatarSize: avatarSize, repository: repository, dateForm: answer['dateForm'], finalAmount: answer['finalAmount'], - duniterIndexer: duniterIndexer, - context: context), + duniterIndexer: duniterIndexerW), ]); }).toList()), - if (result.isLoading && duniterIndexer.pageInfo!['hasPreviousPage']) + if (result.isLoading && + duniterIndexerW.pageInfo!['hasPreviousPage']) Row( mainAxisAlignment: MainAxisAlignment.center, children: const [ CircularProgressIndicator(), ], ), - if (!duniterIndexer.pageInfo!['hasNextPage']) + if (!duniterIndexerW.pageInfo!['hasNextPage']) Column( children: const [ SizedBox(height: 15), diff --git a/lib/screens/certifications.dart b/lib/screens/certifications.dart index 67237e7..86c7a3b 100644 --- a/lib/screens/certifications.dart +++ b/lib/screens/certifications.dart @@ -1,5 +1,6 @@ import 'package:accordion/controllers.dart'; import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:gecko/globals.dart'; import 'package:flutter/material.dart'; import 'package:gecko/widgets/certs_received.dart'; @@ -7,7 +8,7 @@ import 'package:gecko/widgets/certs_counter.dart'; import 'package:gecko/widgets/certs_sent.dart'; import 'package:accordion/accordion.dart'; -class CertificationsScreen extends StatelessWidget { +class CertificationsScreen extends ConsumerWidget { const CertificationsScreen( {Key? key, required this.address, required this.username}) : super(key: key); @@ -15,7 +16,7 @@ class CertificationsScreen extends StatelessWidget { final String username; @override - Widget build(BuildContext context) { + Widget build(BuildContext context, WidgetRef ref) { return Scaffold( backgroundColor: backgroundColor, appBar: AppBar( diff --git a/lib/screens/myWallets/change_pin.dart b/lib/screens/myWallets/change_pin.dart index 1bc9509..e510b29 100644 --- a/lib/screens/myWallets/change_pin.dart +++ b/lib/screens/myWallets/change_pin.dart @@ -13,7 +13,7 @@ import 'package:gecko/screens/myWallets/unlocking_wallet.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class ChangePinScreen extends StatelessWidget with ChangeNotifier { +class ChangePinScreen extends ConsumerWidget extends ChangeNotifier { ChangePinScreen( {Key? keyMyWallets, required this.walletName, diff --git a/lib/screens/myWallets/chest_options.dart b/lib/screens/myWallets/chest_options.dart index 162def6..af50529 100644 --- a/lib/screens/myWallets/chest_options.dart +++ b/lib/screens/myWallets/chest_options.dart @@ -18,7 +18,7 @@ import 'package:gecko/screens/myWallets/unlocking_wallet.dart'; import 'package:gecko/widgets/bottom_app_bar.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class ChestOptions extends StatelessWidget { +class ChestOptions extends ConsumerWidget { const ChestOptions({Key? keyMyWallets, required this.walletProvider}) : super(key: keyMyWallets); final MyWalletsProvider walletProvider; diff --git a/lib/screens/myWallets/choose_wallet.dart b/lib/screens/myWallets/choose_wallet.dart index 3f50778..fd99f10 100644 --- a/lib/screens/myWallets/choose_wallet.dart +++ b/lib/screens/myWallets/choose_wallet.dart @@ -16,7 +16,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; // import 'package:gecko/models/home.dart'; // import 'package:flutter_riverpod/flutter_riverpod.dart'; -class ChooseWalletScreen extends StatelessWidget { +class ChooseWalletScreen extends ConsumerWidget { ChooseWalletScreen({Key? key, required this.pin}) : super(key: key); final String pin; WalletData? selectedWallet; diff --git a/lib/screens/myWallets/import_g1_v1.dart b/lib/screens/myWallets/import_g1_v1.dart index 85f8ba1..bf67ff7 100644 --- a/lib/screens/myWallets/import_g1_v1.dart +++ b/lib/screens/myWallets/import_g1_v1.dart @@ -18,7 +18,7 @@ import 'package:gecko/widgets/certifications.dart'; import 'package:gecko/widgets/idty_status.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class ImportG1v1 extends StatelessWidget { +class ImportG1v1 extends ConsumerWidget { const ImportG1v1({Key? key}) : super(key: key); @override diff --git a/lib/screens/myWallets/manage_membership.dart b/lib/screens/myWallets/manage_membership.dart index b6ba8ee..4a7a35c 100644 --- a/lib/screens/myWallets/manage_membership.dart +++ b/lib/screens/myWallets/manage_membership.dart @@ -21,7 +21,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; // import 'package:gecko/screens/transaction_in_progress.dart'; // import 'package:flutter_riverpod/flutter_riverpod.dart'; -class ManageMembership extends StatelessWidget { +class ManageMembership extends ConsumerWidget { const ManageMembership({Key? key, required this.address}) : super(key: key); final String address; diff --git a/lib/screens/myWallets/migrate_identity.dart b/lib/screens/myWallets/migrate_identity.dart index d095161..7f69893 100644 --- a/lib/screens/myWallets/migrate_identity.dart +++ b/lib/screens/myWallets/migrate_identity.dart @@ -15,7 +15,7 @@ import 'package:gecko/screens/myWallets/unlocking_wallet.dart'; import 'package:gecko/screens/transaction_in_progress.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class MigrateIdentityScreen extends StatelessWidget { +class MigrateIdentityScreen extends ConsumerWidget { const MigrateIdentityScreen({Key? key}) : super(key: key); @override diff --git a/lib/screens/myWallets/restore_chest.dart b/lib/screens/myWallets/restore_chest.dart index a7f776f..89039c9 100644 --- a/lib/screens/myWallets/restore_chest.dart +++ b/lib/screens/myWallets/restore_chest.dart @@ -13,7 +13,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; // import 'package:gecko/models/home.dart'; // import 'package:flutter_riverpod/flutter_riverpod.dart'; -class RestoreChest extends StatelessWidget { +class RestoreChest extends ConsumerWidget { const RestoreChest({Key? key, this.skipIntro = false}) : super(key: key); final bool skipIntro; diff --git a/lib/screens/myWallets/show_seed.dart b/lib/screens/myWallets/show_seed.dart index 4f538a1..5685428 100644 --- a/lib/screens/myWallets/show_seed.dart +++ b/lib/screens/myWallets/show_seed.dart @@ -14,7 +14,7 @@ import 'package:printing/printing.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:pdf/widgets.dart' as pw; -class ShowSeed extends StatelessWidget { +class ShowSeed extends ConsumerWidget { const ShowSeed( {Key? keyMyWallets, required this.walletName, @@ -204,7 +204,7 @@ class ShowSeed extends StatelessWidget { } } -class PrintWallet extends StatelessWidget { +class PrintWallet extends ConsumerWidget { const PrintWallet(this.sentence, {Key? key}) : super(key: key); final String? sentence; diff --git a/lib/screens/myWallets/unlocking_wallet.dart b/lib/screens/myWallets/unlocking_wallet.dart index 93b3712..46f9faf 100644 --- a/lib/screens/myWallets/unlocking_wallet.dart +++ b/lib/screens/myWallets/unlocking_wallet.dart @@ -16,7 +16,7 @@ import 'package:pin_code_fields/pin_code_fields.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:gecko/globals.dart'; -class UnlockingWallet extends StatelessWidget { +class UnlockingWallet extends ConsumerWidget { UnlockingWallet({required this.wallet}) : super(key: keyUnlockWallet); WalletData wallet; late int currentChestNumber; diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart index 91ccd10..0967c5e 100644 --- a/lib/screens/myWallets/wallet_options.dart +++ b/lib/screens/myWallets/wallet_options.dart @@ -26,7 +26,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:qr_flutter/qr_flutter.dart'; -class WalletOptions extends StatelessWidget { +class WalletOptions extends ConsumerWidget { const WalletOptions({Key? keyMyWallets, required this.wallet}) : super(key: keyMyWallets); final WalletData wallet; diff --git a/lib/screens/myWallets/wallets_home.dart b/lib/screens/myWallets/wallets_home.dart index d093f5c..36cfc08 100644 --- a/lib/screens/myWallets/wallets_home.dart +++ b/lib/screens/myWallets/wallets_home.dart @@ -30,13 +30,13 @@ class WalletsHome extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - // final myWalletProvider = Provider.of(context); - final listWallets = ref.watch(myWalletsProvider).listWallets; + // final myWalletsProviderR = Provider.of(context); + final myWalletsProviderR = ref.read(myWalletsProvider); - final currentChestNumber = myWalletProvider.getCurrentChest(); + final currentChestNumber = myWalletsProviderR.getCurrentChest(); final ChestData currentChest = chestBox.get(currentChestNumber)!; - myWalletProvider.listWallets = - myWalletProvider.readAllWallets(currentChestNumber); + myWalletsProviderR.listWallets = + myWalletsProviderR.readAllWallets(currentChestNumber); return WillPopScope( onWillPop: () { @@ -72,7 +72,7 @@ class WalletsHome extends ConsumerWidget { ), backgroundColor: const Color(0xffFFD58D), ), - bottomNavigationBar: myWalletProvider.lastFlyBy == '' + bottomNavigationBar: myWalletsProviderR.lastFlyBy == '' ? const GeckoBottomAppBar( actualRoute: 'safeHome', ) @@ -88,16 +88,16 @@ class WalletsHome extends ConsumerWidget { } Widget dragInfo(BuildContext context) { - final myWalletProvider = + final myWalletsProviderR = Provider.of(context, listen: false); - final walletDataFrom = - myWalletProvider.getWalletDataByAddress(myWalletProvider.dragAddress); + final walletDataFrom = myWalletsProviderR + .getWalletDataByAddress(myWalletsProviderR.dragAddress); final walletDataTo = - myWalletProvider.getWalletDataByAddress(myWalletProvider.lastFlyBy); + myWalletsProviderR.getWalletDataByAddress(myWalletsProviderR.lastFlyBy); final bool isSameAddress = - myWalletProvider.dragAddress == myWalletProvider.lastFlyBy; + myWalletsProviderR.dragAddress == myWalletsProviderR.lastFlyBy; final screenWidth = MediaQuery.of(homeContext).size.width; return Container( @@ -118,7 +118,7 @@ class WalletsHome extends ConsumerWidget { ); } - Widget chestOptions(BuildContext context, final myWalletProvider) { + Widget chestOptions(BuildContext context, final myWalletsProviderR) { return Column(children: [ const SizedBox(height: 50), SizedBox( @@ -136,7 +136,7 @@ class WalletsHome extends ConsumerWidget { onPressed: () => Navigator.push( context, MaterialPageRoute(builder: (context) { - return ChestOptions(walletProvider: myWalletProvider); + return ChestOptions(walletProvider: myWalletsProviderR); }), ), label: Text( @@ -208,10 +208,10 @@ class WalletsHome extends ConsumerWidget { } Widget myWalletsTiles(BuildContext context, int currentChestNumber) { - final myWalletProvider = Provider.of(context); + final myWalletsProviderR = Provider.of(context); final walletOptions = Provider.of(context, listen: false); - final bool isWalletsExists = myWalletProvider.checkIfWalletExist(); + final bool isWalletsExists = myWalletsProviderR.checkIfWalletExist(); final sub = Provider.of(context, listen: false); final duniterIndexer = Provider.of(context, listen: false); @@ -219,7 +219,7 @@ class WalletsHome extends ConsumerWidget { return const Text(''); } - if (myWalletProvider.listWallets.isEmpty) { + if (myWalletsProviderR.listWallets.isEmpty) { return Expanded( child: Column(children: const [ Center( @@ -231,12 +231,12 @@ class WalletsHome extends ConsumerWidget { } // Get wallet list and sort by derivation number - List listWallets = myWalletProvider.listWallets; + List listWallets = myWalletsProviderR.listWallets; listWallets.sort((p1, p2) { return Comparable.compare(p1.number!, p2.number!); }); - WalletData? defaultWallet = myWalletProvider.getDefaultWallet(); + WalletData? defaultWallet = myWalletsProviderR.getDefaultWallet(); final screenWidth = MediaQuery.of(context).size.width; int nTule = 2; @@ -269,11 +269,11 @@ class WalletsHome extends ConsumerWidget { // feedbackOffset: const Offset(-500, -500), // dragAnchorStrategy: childDragAnchorStrategy, onDragStarted: () => - myWalletProvider.dragAddress = repository.address, + myWalletsProviderR.dragAddress = repository.address, onDragEnd: (_) { - myWalletProvider.lastFlyBy = ''; - myWalletProvider.dragAddress = ''; - myWalletProvider.reload(); + myWalletsProviderR.lastFlyBy = ''; + myWalletsProviderR.dragAddress = ''; + myWalletsProviderR.reload(); }, feedback: ElevatedButton( onPressed: () {}, @@ -291,16 +291,16 @@ class WalletsHome extends ConsumerWidget { onAccept: (senderAddress) async { log.d( 'INTERPAY: sender: $senderAddress --- receiver: ${repository.address}'); - final walletData = myWalletProvider + final walletData = myWalletsProviderR .getWalletDataByAddress(senderAddress); await sub.setCurrentWallet(walletData!); sub.reload(); paymentPopup(context, repository.address); }, onMove: (details) { - if (repository.address != myWalletProvider.lastFlyBy) { - myWalletProvider.lastFlyBy = repository.address; - myWalletProvider.reload(); + if (repository.address != myWalletsProviderR.lastFlyBy) { + myWalletsProviderR.lastFlyBy = repository.address; + myWalletsProviderR.reload(); } }, onWillAccept: (senderAddress) => @@ -430,7 +430,7 @@ class WalletsHome extends ConsumerWidget { : const Text(''); }), ]), - SliverToBoxAdapter(child: chestOptions(context, myWalletProvider)), + SliverToBoxAdapter(child: chestOptions(context, myWalletsProviderR)), ]); } @@ -458,10 +458,10 @@ class WalletsHome extends ConsumerWidget { } Widget addNewDerivation(context) { - final myWalletProvider = Provider.of(context); + final myWalletsProviderR = Provider.of(context); String newDerivationName = - '${'wallet'.tr()} ${myWalletProvider.listWallets.last.number! + 2}'; + '${'wallet'.tr()} ${myWalletsProviderR.listWallets.last.number! + 2}'; return Padding( padding: const EdgeInsets.all(16), child: ClipRRect( @@ -471,11 +471,11 @@ class WalletsHome extends ConsumerWidget { child: InkWell( key: keyAddDerivation, onTap: () async { - if (!myWalletProvider.isNewDerivationLoading) { + if (!myWalletsProviderR.isNewDerivationLoading) { WalletData? defaultWallet = - myWalletProvider.getDefaultWallet(); + myWalletsProviderR.getDefaultWallet(); String? pin; - if (myWalletProvider.pinCode == '') { + if (myWalletsProviderR.pinCode == '') { pin = await Navigator.push( context, MaterialPageRoute( @@ -485,8 +485,8 @@ class WalletsHome extends ConsumerWidget { ), ); } - if (pin != null || myWalletProvider.pinCode != '') { - await myWalletProvider.generateNewDerivation( + if (pin != null || myWalletsProviderR.pinCode != '') { + await myWalletsProviderR.generateNewDerivation( context, newDerivationName); } } @@ -496,7 +496,7 @@ class WalletsHome extends ConsumerWidget { height: double.infinity, decoration: const BoxDecoration(color: floattingYellow), child: Center( - child: myWalletProvider.isNewDerivationLoading + child: myWalletsProviderR.isNewDerivationLoading ? const SizedBox( height: 60, width: 60, @@ -532,7 +532,7 @@ class CustomClipperOval extends CustomClipper { } } -class ClipOvalShadow extends StatelessWidget { +class ClipOvalShadow extends ConsumerWidget { final Shadow shadow; final CustomClipper clipper; final Widget child; diff --git a/lib/screens/my_contacts.dart b/lib/screens/my_contacts.dart index 8f4efef..2ed51a5 100644 --- a/lib/screens/my_contacts.dart +++ b/lib/screens/my_contacts.dart @@ -9,7 +9,7 @@ import 'package:gecko/widgets/bottom_app_bar.dart'; import 'package:gecko/widgets/contacts_list.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class ContactsScreen extends StatelessWidget { +class ContactsScreen extends ConsumerWidget { const ContactsScreen({Key? key}) : super(key: key); @override diff --git a/lib/screens/onBoarding/1.dart b/lib/screens/onBoarding/1.dart index 281c74a..f8fee5f 100644 --- a/lib/screens/onBoarding/1.dart +++ b/lib/screens/onBoarding/1.dart @@ -6,7 +6,7 @@ import 'package:gecko/globals.dart'; import 'package:gecko/screens/common_elements.dart'; import 'package:gecko/screens/onBoarding/2.dart'; -class OnboardingStepOne extends StatelessWidget { +class OnboardingStepOne extends ConsumerWidget { const OnboardingStepOne({Key? key}) : super(key: key); @override diff --git a/lib/screens/onBoarding/10.dart b/lib/screens/onBoarding/10.dart index f1d703e..fd74d2b 100644 --- a/lib/screens/onBoarding/10.dart +++ b/lib/screens/onBoarding/10.dart @@ -18,7 +18,7 @@ import 'package:gecko/screens/onBoarding/11_congratulations.dart'; import 'package:pin_code_fields/pin_code_fields.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class OnboardingStepTen extends StatelessWidget { +class OnboardingStepTen extends ConsumerWidget { OnboardingStepTen({Key? validationKey, this.scanDerivation = false}) : super(key: validationKey); diff --git a/lib/screens/onBoarding/11_congratulations.dart b/lib/screens/onBoarding/11_congratulations.dart index 110ceb8..1d3ecec 100644 --- a/lib/screens/onBoarding/11_congratulations.dart +++ b/lib/screens/onBoarding/11_congratulations.dart @@ -7,7 +7,7 @@ import 'package:gecko/globals.dart'; import 'package:gecko/models/widgets_keys.dart'; import 'package:gecko/screens/common_elements.dart'; -class OnboardingStepEleven extends StatelessWidget { +class OnboardingStepEleven extends ConsumerWidget { const OnboardingStepEleven({Key? key}) : super(key: key); @override diff --git a/lib/screens/onBoarding/2.dart b/lib/screens/onBoarding/2.dart index 0a176bc..64c7ecc 100644 --- a/lib/screens/onBoarding/2.dart +++ b/lib/screens/onBoarding/2.dart @@ -7,7 +7,7 @@ import 'package:gecko/globals.dart'; import 'package:gecko/screens/common_elements.dart'; import 'package:gecko/screens/onBoarding/3.dart'; -class OnboardingStepTwo extends StatelessWidget { +class OnboardingStepTwo extends ConsumerWidget { const OnboardingStepTwo({Key? key}) : super(key: key); @override diff --git a/lib/screens/onBoarding/3.dart b/lib/screens/onBoarding/3.dart index 468ff15..2a26cea 100644 --- a/lib/screens/onBoarding/3.dart +++ b/lib/screens/onBoarding/3.dart @@ -7,7 +7,7 @@ import 'package:gecko/globals.dart'; import 'package:gecko/screens/common_elements.dart'; import 'package:gecko/screens/onBoarding/4.dart'; -class OnboardingStepThree extends StatelessWidget { +class OnboardingStepThree extends ConsumerWidget { const OnboardingStepThree({Key? key}) : super(key: key); @override diff --git a/lib/screens/onBoarding/4.dart b/lib/screens/onBoarding/4.dart index 9cc1493..608c95f 100644 --- a/lib/screens/onBoarding/4.dart +++ b/lib/screens/onBoarding/4.dart @@ -7,7 +7,7 @@ import 'package:gecko/globals.dart'; import 'package:gecko/screens/common_elements.dart'; import 'package:gecko/screens/onBoarding/5.dart'; -class OnboardingStepFor extends StatelessWidget { +class OnboardingStepFor extends ConsumerWidget { const OnboardingStepFor({Key? key}) : super(key: key); @override diff --git a/lib/screens/onBoarding/5.dart b/lib/screens/onBoarding/5.dart index d1051f3..62b67a2 100644 --- a/lib/screens/onBoarding/5.dart +++ b/lib/screens/onBoarding/5.dart @@ -220,7 +220,7 @@ Widget arrayCell(dataWord) { ); } -class PrintWallet extends StatelessWidget { +class PrintWallet extends ConsumerWidget { const PrintWallet(this.sentence, {Key? key}) : super(key: key); final String? sentence; diff --git a/lib/screens/onBoarding/6.dart b/lib/screens/onBoarding/6.dart index 4f77c24..4534781 100644 --- a/lib/screens/onBoarding/6.dart +++ b/lib/screens/onBoarding/6.dart @@ -12,7 +12,7 @@ import 'package:gecko/screens/onBoarding/7.dart'; import 'package:gecko/screens/onBoarding/9.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class OnboardingStepSix extends StatelessWidget { +class OnboardingStepSix extends ConsumerWidget { OnboardingStepSix( {Key? key, required this.skipIntro, required this.generatedMnemonic}) : super(key: key); diff --git a/lib/screens/onBoarding/7.dart b/lib/screens/onBoarding/7.dart index e02681f..a601ca3 100644 --- a/lib/screens/onBoarding/7.dart +++ b/lib/screens/onBoarding/7.dart @@ -6,7 +6,7 @@ import 'package:gecko/globals.dart'; import 'package:gecko/screens/common_elements.dart'; import 'package:gecko/screens/onBoarding/8.dart'; -class OnboardingStepSeven extends StatelessWidget { +class OnboardingStepSeven extends ConsumerWidget { const OnboardingStepSeven({Key? key, this.scanDerivation = false}) : super(key: key); final bool scanDerivation; diff --git a/lib/screens/onBoarding/8.dart b/lib/screens/onBoarding/8.dart index 5d478b9..742dac5 100644 --- a/lib/screens/onBoarding/8.dart +++ b/lib/screens/onBoarding/8.dart @@ -6,7 +6,7 @@ import 'package:gecko/globals.dart'; import 'package:gecko/screens/common_elements.dart'; import 'package:gecko/screens/onBoarding/9.dart'; -class OnboardingStepEight extends StatelessWidget { +class OnboardingStepEight extends ConsumerWidget { const OnboardingStepEight({Key? key, this.scanDerivation = false}) : super(key: key); final bool scanDerivation; diff --git a/lib/screens/onBoarding/9.dart b/lib/screens/onBoarding/9.dart index 475290f..77211d8 100644 --- a/lib/screens/onBoarding/9.dart +++ b/lib/screens/onBoarding/9.dart @@ -9,7 +9,7 @@ import 'package:gecko/screens/common_elements.dart'; import 'package:gecko/screens/onBoarding/10.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class OnboardingStepNine extends StatelessWidget { +class OnboardingStepNine extends ConsumerWidget { const OnboardingStepNine({Key? key, this.scanDerivation = false}) : super(key: key); final bool scanDerivation; diff --git a/lib/screens/qrcode_fullscreen.dart b/lib/screens/qrcode_fullscreen.dart index 2972799..2e04071 100644 --- a/lib/screens/qrcode_fullscreen.dart +++ b/lib/screens/qrcode_fullscreen.dart @@ -1,5 +1,6 @@ // ignore_for_file: must_be_immutable +import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:gecko/globals.dart'; import 'package:flutter/material.dart'; import 'package:gecko/providers/substrate_sdk.dart'; @@ -7,7 +8,7 @@ import 'package:qr_flutter/qr_flutter.dart'; // import 'package:gecko/models/home.dart'; // import 'package:flutter_riverpod/flutter_riverpod.dart'; -class QrCodeFullscreen extends StatelessWidget { +class QrCodeFullscreen extends ConsumerWidget { TextEditingController tplController = TextEditingController(); QrCodeFullscreen(this.address, {this.color, Key? key}) : super(key: key); diff --git a/lib/screens/search_result.dart b/lib/screens/search_result.dart index 4c73aaa..3ecde7f 100644 --- a/lib/screens/search_result.dart +++ b/lib/screens/search_result.dart @@ -10,7 +10,7 @@ import 'package:gecko/widgets/bottom_app_bar.dart'; import 'package:gecko/widgets/search_result_list.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class SearchResultScreen extends StatelessWidget { +class SearchResultScreen extends ConsumerWidget { const SearchResultScreen({Key? key}) : super(key: key); @override diff --git a/lib/screens/settings.dart b/lib/screens/settings.dart index bc99d7a..188caf1 100644 --- a/lib/screens/settings.dart +++ b/lib/screens/settings.dart @@ -11,13 +11,13 @@ import 'package:gecko/globals.dart'; import 'package:polkawallet_sdk/api/types/networkParams.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class SettingsScreen extends StatelessWidget { +class SettingsScreen extends ConsumerWidget { final MyWalletsProvider _myWallets = MyWalletsProvider(); SettingsScreen({Key? key}) : super(key: key); @override - Widget build(BuildContext context) { + Widget build(BuildContext context, WidgetRef ref) { const double buttonHigh = 50; const double buttonWidth = 240; const double fontSize = 16; @@ -77,9 +77,10 @@ class SettingsScreen extends StatelessWidget { ); } - Widget chooseCurrencyUnit(BuildContext context) { - HomeProvider homeProvider = - Provider.of(context, listen: false); + Widget chooseCurrencyUnit(BuildContext context, WidgetRef ref) { + // HomeProvider homeProvider = + // Provider.of(context, listen: false); + final homeProviderR = ref.read(myWalletsProvider); return InkWell( key: keyUdUnit, onTap: () async { diff --git a/lib/screens/template_screen.dart b/lib/screens/template_screen.dart index 7a006b7..946e28a 100644 --- a/lib/screens/template_screen.dart +++ b/lib/screens/template_screen.dart @@ -1,11 +1,12 @@ +import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:gecko/globals.dart'; import 'package:flutter/material.dart'; -class TemplateScreen extends StatelessWidget { +class TemplateScreen extends ConsumerWidget { const TemplateScreen({Key? key}) : super(key: key); @override - Widget build(BuildContext context) { + Widget build(BuildContext context, WidgetRef ref) { // final _homeProvider = Provider.of(context); return Scaffold( diff --git a/lib/screens/transaction_in_progress.dart b/lib/screens/transaction_in_progress.dart index a402614..d204673 100644 --- a/lib/screens/transaction_in_progress.dart +++ b/lib/screens/transaction_in_progress.dart @@ -10,7 +10,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; // import 'package:gecko/models/home.dart'; // import 'package:flutter_riverpod/flutter_riverpod.dart'; -class TransactionInProgress extends StatelessWidget { +class TransactionInProgress extends ConsumerWidget { const TransactionInProgress( {Key? key, this.transType = 'pay', this.fromAddress, this.toAddress}) : super(key: key); diff --git a/lib/screens/wallet_view.dart b/lib/screens/wallet_view.dart index 2608a29..b7b2ca4 100644 --- a/lib/screens/wallet_view.dart +++ b/lib/screens/wallet_view.dart @@ -27,7 +27,7 @@ import 'package:gecko/widgets/page_route_no_transition.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:qr_flutter/qr_flutter.dart'; -class WalletViewScreen extends StatelessWidget { +class WalletViewScreen extends ConsumerWidget { const WalletViewScreen( {required this.address, required this.username, this.avatar, Key? key}) : super(key: key); diff --git a/lib/widgets/balance.dart b/lib/widgets/balance.dart index 0be94b9..53056eb 100644 --- a/lib/widgets/balance.dart +++ b/lib/widgets/balance.dart @@ -5,7 +5,7 @@ import 'package:gecko/providers/wallet_options.dart'; import 'package:gecko/widgets/ud_unit_display.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class Balance extends StatelessWidget { +class Balance extends ConsumerWidget { const Balance( {Key? key, required this.address, @@ -20,8 +20,9 @@ class Balance extends StatelessWidget { @override Widget build(BuildContext context) { - final walletOptions = + final walletOptionsR = Provider.of(context, listen: false); + final homeProviderR = ref.read(myWalletsProvider); return Column(children: [ Consumer(builder: (context, sdk, _) { return FutureBuilder( @@ -30,10 +31,10 @@ class Balance extends StatelessWidget { AsyncSnapshot> globalBalance) { if (globalBalance.connectionState != ConnectionState.done || globalBalance.hasError) { - if (walletOptions.balanceCache[address] != null && - walletOptions.balanceCache[address] != -1) { + if (walletOptionsR.balanceCache[address] != null && + walletOptionsR.balanceCache[address] != -1) { return Row(children: [ - Text(walletOptions.balanceCache[address]!.toString(), + Text(walletOptionsR.balanceCache[address]!.toString(), style: TextStyle( fontSize: isTall ? size : size * 0.9, color: color)), @@ -51,12 +52,12 @@ class Balance extends StatelessWidget { ); } } - walletOptions.balanceCache[address] = + walletOptionsR.balanceCache[address] = globalBalance.data!['transferableBalance']!; - if (walletOptions.balanceCache[address] != -1) { + if (walletOptionsR.balanceCache[address] != -1) { return Row(children: [ Text( - walletOptions.balanceCache[address]!.toString(), + walletOptionsR.balanceCache[address]!.toString(), style: TextStyle( fontSize: isTall ? size : size * 0.9, color: color, diff --git a/lib/widgets/bottom_app_bar.dart b/lib/widgets/bottom_app_bar.dart index e643a5c..1c991f0 100644 --- a/lib/widgets/bottom_app_bar.dart +++ b/lib/widgets/bottom_app_bar.dart @@ -12,7 +12,7 @@ import 'package:gecko/screens/myWallets/wallets_home.dart'; import 'package:gecko/screens/search.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class GeckoBottomAppBar extends StatelessWidget { +class GeckoBottomAppBar extends ConsumerWidget { const GeckoBottomAppBar({Key? key, this.actualRoute = ''}) : super(key: key); final String actualRoute; diff --git a/lib/widgets/cert_tile.dart b/lib/widgets/cert_tile.dart index 4ccef80..e063fc4 100644 --- a/lib/widgets/cert_tile.dart +++ b/lib/widgets/cert_tile.dart @@ -5,7 +5,7 @@ import 'package:gecko/providers/cesium_plus.dart'; import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/screens/wallet_view.dart'; -class CertTile extends StatelessWidget { +class CertTile extends ConsumerWidget { const CertTile({ Key? key, required this.listCerts, diff --git a/lib/widgets/certifications.dart b/lib/widgets/certifications.dart index 1d02bfc..1338d0f 100644 --- a/lib/widgets/certifications.dart +++ b/lib/widgets/certifications.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:gecko/providers/substrate_sdk.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class Certifications extends StatelessWidget { +class Certifications extends ConsumerWidget { const Certifications( {Key? key, required this.address, diff --git a/lib/widgets/certs_counter.dart b/lib/widgets/certs_counter.dart index 2642803..f73a0cb 100644 --- a/lib/widgets/certs_counter.dart +++ b/lib/widgets/certs_counter.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:gecko/providers/substrate_sdk.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class CertsCounter extends StatelessWidget { +class CertsCounter extends ConsumerWidget { const CertsCounter({Key? key, required this.address, this.isSent = false}) : super(key: key); final String address; diff --git a/lib/widgets/certs_received.dart b/lib/widgets/certs_received.dart index 32c274e..d17f0c0 100644 --- a/lib/widgets/certs_received.dart +++ b/lib/widgets/certs_received.dart @@ -1,12 +1,13 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/models/queries_indexer.dart'; import 'package:gecko/models/widgets_keys.dart'; import 'package:gecko/widgets/cert_tile.dart'; import 'package:graphql_flutter/graphql_flutter.dart'; -class CertsReceived extends StatelessWidget { +class CertsReceived extends ConsumerWidget { const CertsReceived({Key? key, required this.address}) : super(key: key); final String address; diff --git a/lib/widgets/certs_sent.dart b/lib/widgets/certs_sent.dart index 689f7f5..bc1cdaf 100644 --- a/lib/widgets/certs_sent.dart +++ b/lib/widgets/certs_sent.dart @@ -1,12 +1,13 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/models/queries_indexer.dart'; import 'package:gecko/models/widgets_keys.dart'; import 'package:gecko/widgets/cert_tile.dart'; import 'package:graphql_flutter/graphql_flutter.dart'; -class CertsSent extends StatelessWidget { +class CertsSent extends ConsumerWidget { const CertsSent({Key? key, required this.address}) : super(key: key); final String address; diff --git a/lib/widgets/contacts_list.dart b/lib/widgets/contacts_list.dart index cc374d2..bff9f01 100644 --- a/lib/widgets/contacts_list.dart +++ b/lib/widgets/contacts_list.dart @@ -12,7 +12,7 @@ import 'package:gecko/screens/wallet_view.dart'; import 'package:gecko/widgets/balance.dart'; import 'package:gecko/widgets/name_by_address.dart'; -class ContactsList extends StatelessWidget { +class ContactsList extends ConsumerWidget { const ContactsList({ Key? key, required this.myContacts, diff --git a/lib/widgets/header_profile.dart b/lib/widgets/header_profile.dart index d2c16c5..94b54cb 100644 --- a/lib/widgets/header_profile.dart +++ b/lib/widgets/header_profile.dart @@ -15,7 +15,7 @@ import 'package:gecko/widgets/idty_status.dart'; import 'package:gecko/widgets/page_route_no_transition.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class HeaderProfile extends StatelessWidget { +class HeaderProfile extends ConsumerWidget { const HeaderProfile({ Key? key, required this.address, diff --git a/lib/widgets/idty_status.dart b/lib/widgets/idty_status.dart index 001c3d1..56662a9 100644 --- a/lib/widgets/idty_status.dart +++ b/lib/widgets/idty_status.dart @@ -7,7 +7,7 @@ import 'package:gecko/widgets/animated_text.dart'; import 'package:gecko/widgets/name_by_address.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class IdentityStatus extends StatelessWidget { +class IdentityStatus extends ConsumerWidget { const IdentityStatus( {Key? key, required this.address, diff --git a/lib/widgets/name_by_address.dart b/lib/widgets/name_by_address.dart index 20d5e24..335b0df 100644 --- a/lib/widgets/name_by_address.dart +++ b/lib/widgets/name_by_address.dart @@ -9,7 +9,7 @@ import 'package:graphql_flutter/graphql_flutter.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:truncate/truncate.dart'; -class NameByAddress extends StatelessWidget { +class NameByAddress extends ConsumerWidget { const NameByAddress( {Key? key, required this.wallet, diff --git a/lib/widgets/search_identity_query.dart b/lib/widgets/search_identity_query.dart index 22936e9..f0749f7 100644 --- a/lib/widgets/search_identity_query.dart +++ b/lib/widgets/search_identity_query.dart @@ -13,7 +13,7 @@ import 'package:gecko/widgets/balance.dart'; import 'package:graphql_flutter/graphql_flutter.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class SearchIdentityQuery extends StatelessWidget { +class SearchIdentityQuery extends ConsumerWidget { const SearchIdentityQuery({Key? key, required this.name}) : super(key: key); final String name; diff --git a/lib/widgets/search_result_list.dart b/lib/widgets/search_result_list.dart index 21305d7..b21886d 100644 --- a/lib/widgets/search_result_list.dart +++ b/lib/widgets/search_result_list.dart @@ -13,7 +13,7 @@ import 'package:gecko/widgets/balance.dart'; import 'package:gecko/widgets/name_by_address.dart'; import 'package:gecko/widgets/search_identity_query.dart'; -class SearchResult extends StatelessWidget { +class SearchResult extends ConsumerWidget { const SearchResult({ Key? key, required this.searchProvider, diff --git a/lib/widgets/template.dart b/lib/widgets/template.dart index 33b2edd..82cb40f 100644 --- a/lib/widgets/template.dart +++ b/lib/widgets/template.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:gecko/providers/substrate_sdk.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; -class TemplateWidget extends StatelessWidget { +class TemplateWidget extends ConsumerWidget { const TemplateWidget( {Key? key, required this.address, this.color = Colors.black}) : super(key: key); diff --git a/lib/widgets/transaction_tile.dart b/lib/widgets/transaction_tile.dart index 7ffcbf3..c98e1a6 100644 --- a/lib/widgets/transaction_tile.dart +++ b/lib/widgets/transaction_tile.dart @@ -1,36 +1,34 @@ import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.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/substrate_sdk.dart'; -import 'package:gecko/screens/activity.dart'; import 'package:gecko/screens/wallet_view.dart'; import 'package:gecko/widgets/page_route_no_transition.dart'; -class TransactionTile extends StatelessWidget { +class TransactionTile extends ConsumerWidget { const TransactionTile({ Key? key, - required this.widget, + required this.username, required this.keyID, required this.avatarSize, required this.repository, required this.dateForm, required this.finalAmount, required this.duniterIndexer, - required this.context, }) : super(key: key); - final ActivityScreen widget; + final String username; final int keyID; final double avatarSize; final List repository; final String dateForm; final String finalAmount; final DuniterIndexer duniterIndexer; - final BuildContext context; @override - Widget build(BuildContext context) { + Widget build(BuildContext context, WidgetRef ref) { final newKey = keyID + 1; return Padding( padding: const EdgeInsets.only(right: 0), @@ -85,7 +83,7 @@ class TransactionTile extends StatelessWidget { PageNoTransit(builder: (context) { return WalletViewScreen( address: repository[1], - username: widget.username ?? '', + username: username, ); }), ); diff --git a/lib/widgets/ud_unit_display.dart b/lib/widgets/ud_unit_display.dart index 942b155..8eb0f81 100644 --- a/lib/widgets/ud_unit_display.dart +++ b/lib/widgets/ud_unit_display.dart @@ -2,7 +2,7 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; import 'package:gecko/globals.dart'; -class UdUnitDisplay extends StatelessWidget { +class UdUnitDisplay extends ConsumerWidget { const UdUnitDisplay({ Key? key, required this.size, diff --git a/lib/widgets/wallet_name.dart b/lib/widgets/wallet_name.dart index b1a2b63..db72f62 100644 --- a/lib/widgets/wallet_name.dart +++ b/lib/widgets/wallet_name.dart @@ -3,7 +3,7 @@ import 'package:gecko/globals.dart'; import 'package:gecko/models/wallet_data.dart'; import 'package:truncate/truncate.dart'; -class WalletName extends StatelessWidget { +class WalletName extends ConsumerWidget { const WalletName( {Key? key, required this.wallet,