diff --git a/assets/wallet.png b/assets/wallet.png new file mode 100755 index 0000000..c700ad7 Binary files /dev/null and b/assets/wallet.png differ diff --git a/lib/providers/home.dart b/lib/providers/home.dart index 56bf97d..7977088 100644 --- a/lib/providers/home.dart +++ b/lib/providers/home.dart @@ -7,10 +7,16 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'dart:async'; import 'package:gecko/globals.dart'; +import 'package:gecko/models/wallet_data.dart'; +import 'package:gecko/providers/my_wallets.dart'; +import 'package:gecko/providers/wallets_profiles.dart'; +import 'package:gecko/screens/myWallets/unlocking_wallet.dart'; +import 'package:gecko/screens/search.dart'; import 'package:hive_flutter/hive_flutter.dart'; import 'package:flutter/foundation.dart' show kIsWeb; import 'package:path_provider/path_provider.dart' as pp; import 'package:package_info_plus/package_info_plus.dart'; +import 'package:provider/provider.dart'; class HomeProvider with ChangeNotifier { bool? isSearching; @@ -20,9 +26,6 @@ class HomeProvider with ChangeNotifier { Widget appBarExplorer = Text('Explorateur', style: TextStyle(color: Colors.grey[850])); - bool isFirstBuild = true; - // AudioCache player = AudioCache(prefix: 'sounds/'); - Future initHive() async { late Directory hivePath; @@ -132,6 +135,165 @@ class HomeProvider with ChangeNotifier { // volume: volume, mode: PlayerMode.LOW_LATENCY, stayAwake: false); // } + Widget bottomAppBar(BuildContext context, int index) { + MyWalletsProvider _myWalletProvider = + Provider.of(context, listen: false); + WalletsProfilesProvider _historyProvider = + Provider.of(context, listen: false); + + const bool _showBottomBar = true; + + return Visibility( + visible: _showBottomBar, + child: Container( + color: yellowC, + width: double.infinity, + height: 80, + child: Expanded( + child: Row( + // mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + const Spacer(flex: 1), + IconButton( + iconSize: 50, + icon: const Image(image: AssetImage('assets/loupe-noire.png')), + onPressed: () { + Navigator.popUntil( + context, + ModalRoute.withName('/'), + ); + Navigator.push( + context, + MaterialPageRoute(builder: (context) { + return const SearchScreen(); + }), + ); + }, + ), + // SizedBox(width: 0), + const Spacer(flex: 2), + IconButton( + iconSize: 60, + icon: const Image( + image: AssetImage('assets/qrcode-scan.png'), height: 50), + onPressed: () async { + Navigator.popUntil( + context, + ModalRoute.withName('/'), + ); + await _historyProvider.scan(context); + }, + ), + const Spacer(flex: 2), + IconButton( + iconSize: 60, + icon: const Image(image: AssetImage('assets/wallet.png')), + onPressed: () { + WalletData? defaultWallet = + _myWalletProvider.getDefaultWallet(); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) { + return UnlockingWallet( + wallet: defaultWallet, + action: "mywallets", + ); + }, + ), + ); + }, + ), + const Spacer(flex: 1), + ], + ), + ), + ), + ); + } + + // BottomAppBar bottomAppBar(BuildContext context, int index) { + // MyWalletsProvider _myWalletProvider = + // Provider.of(context, listen: false); + + // return BottomAppBar( + // color: yellowC, + // notchMargin: 0, //not + // child: SizedBox( + // height: 70, + // child: Row( + // children: [ + // const Spacer(flex: 1), + // IconButton( + // iconSize: 50, + // icon: const Image(image: AssetImage('assets/loupe-noire.png')), + // onPressed: () { + // Navigator.popUntil( + // context, + // ModalRoute.withName('/'), + // ); + // Navigator.push( + // context, + // MaterialPageRoute(builder: (context) { + // return const SearchScreen(); + // }), + // ); + // }, + // ), + // const Spacer(flex: 4), + // IconButton( + // iconSize: 60, + // icon: const Image(image: AssetImage('assets/wallet.png')), + // onPressed: () { + // WalletData? defaultWallet = + // _myWalletProvider.getDefaultWallet(); + // Navigator.push( + // context, + // MaterialPageRoute( + // builder: (context) { + // return UnlockingWallet( + // wallet: defaultWallet, + // action: "mywallets", + // ); + // }, + // ), + // ); + // }, + // ), + // const Spacer(flex: 1), + // ], + // )), + // ); + // } + + // Widget floatingAction(BuildContext context, index) { + // WalletsProfilesProvider _historyProvider = + // Provider.of(context, listen: false); + // return SizedBox( + // height: 90, + // width: 90, + // child: FittedBox( + // child: FloatingActionButton( + // // shape: const RoundedRectangleBorder( + // // borderRadius: BorderRadius.all(Radius.elliptical(150, 100)), + // // ), + // backgroundColor: yellowC, + // elevation: 0, + // onPressed: () async { + // Navigator.popUntil( + // context, + // ModalRoute.withName('/'), + // ); + // await _historyProvider.scan(context); + // }, + // child: const Image( + // image: AssetImage('assets/qrcode-scan.png'), + // height: 35), //icon inside button + // ), + // ), + // ); + // } + void handleSearchEnd() { searchIcon = Icon( Icons.search, diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 6429d7d..1aa3ed2 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -94,6 +94,7 @@ class HomeScreen extends StatelessWidget { ], ), ), + // bottomNavigationBar: _homeProvider.bottomBar(context, 1), backgroundColor: const Color(0xffF9F9F1), body: Builder( builder: (ctx) => StatefulWrapper( diff --git a/lib/screens/myWallets/chest_options.dart b/lib/screens/myWallets/chest_options.dart index 47bb5e1..4d462ed 100644 --- a/lib/screens/myWallets/chest_options.dart +++ b/lib/screens/myWallets/chest_options.dart @@ -3,6 +3,7 @@ import 'package:gecko/globals.dart'; import 'package:gecko/models/chest_data.dart'; import 'package:flutter/services.dart'; import 'package:gecko/providers/chest_provider.dart'; +import 'package:gecko/providers/home.dart'; import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/screens/myWallets/change_pin.dart'; import 'package:provider/provider.dart'; @@ -17,6 +18,8 @@ class ChestOptions extends StatelessWidget { SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); ChestProvider _chestProvider = Provider.of(context, listen: false); + HomeProvider _homeProvider = + Provider.of(context, listen: false); ChestData currentChest = chestBox.get(configBox.get('currentChest'))!; @@ -37,6 +40,7 @@ class ChestOptions extends StatelessWidget { height: 22, child: Text(currentChest.name!), )), + bottomNavigationBar: _homeProvider.bottomAppBar(context, 2), body: Builder( builder: (ctx) => SafeArea( child: Column(children: [ diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart index 3614935..85ac5d1 100644 --- a/lib/screens/myWallets/wallet_options.dart +++ b/lib/screens/myWallets/wallet_options.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/models/chest_data.dart'; +import 'package:gecko/providers/home.dart'; import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/models/wallet_data.dart'; import 'package:gecko/providers/substrate_sdk.dart'; @@ -26,6 +27,8 @@ class WalletOptions extends StatelessWidget { Provider.of(context, listen: false); MyWalletsProvider _myWalletProvider = Provider.of(context); + HomeProvider _homeProvider = + Provider.of(context, listen: false); log.d(_walletOptions.address.text); @@ -62,6 +65,7 @@ class WalletOptions extends StatelessWidget { }), ), ), + bottomNavigationBar: _homeProvider.bottomAppBar(context, 2), body: Builder( builder: (ctx) => SafeArea( child: Column(children: [ diff --git a/lib/screens/myWallets/wallets_home.dart b/lib/screens/myWallets/wallets_home.dart index 98895b3..2b7b996 100644 --- a/lib/screens/myWallets/wallets_home.dart +++ b/lib/screens/myWallets/wallets_home.dart @@ -1,6 +1,7 @@ import 'package:flutter/services.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/models/chest_data.dart'; +import 'package:gecko/providers/home.dart'; import 'package:gecko/providers/my_wallets.dart'; import 'package:gecko/models/queries.dart'; import 'package:gecko/models/wallet_data.dart'; @@ -21,6 +22,8 @@ class WalletsHome extends StatelessWidget { SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); MyWalletsProvider myWalletProvider = Provider.of(context); + HomeProvider _homeProvider = + Provider.of(context, listen: false); final int? _currentChestNumber = myWalletProvider.getCurrentChest(); final ChestData _currentChest = chestBox.get(_currentChestNumber)!; @@ -53,6 +56,7 @@ class WalletsHome extends StatelessWidget { style: TextStyle(color: Colors.grey[850])), backgroundColor: const Color(0xffFFD58D), ), + bottomNavigationBar: _homeProvider.bottomAppBar(context, 2), body: SafeArea( child: myWalletsTiles(context, _currentChestNumber!), ), @@ -154,8 +158,7 @@ class WalletsHome extends StatelessWidget { } List _listWallets = _myWalletProvider.listWallets; - WalletData? defaultWallet = - _myWalletProvider.getDefaultWallet(); + WalletData? defaultWallet = _myWalletProvider.getDefaultWallet(); final double screenWidth = MediaQuery.of(context).size.width; int nTule = 2; diff --git a/lib/screens/search.dart b/lib/screens/search.dart index d98b98a..026a4df 100644 --- a/lib/screens/search.dart +++ b/lib/screens/search.dart @@ -16,6 +16,7 @@ class SearchScreen extends StatelessWidget { SearchProvider _searchProvider = Provider.of(context); final double screenHeight = MediaQuery.of(context).size.height; + return WillPopScope( onWillPop: () { _searchProvider.searchController.text = ''; diff --git a/lib/screens/wallet_view.dart b/lib/screens/wallet_view.dart index 63b2d34..4ff7190 100644 --- a/lib/screens/wallet_view.dart +++ b/lib/screens/wallet_view.dart @@ -2,6 +2,7 @@ import 'package:flutter/services.dart'; import 'package:gecko/globals.dart'; import 'package:flutter/material.dart'; import 'package:gecko/providers/cesium_plus.dart'; +import 'package:gecko/providers/home.dart'; import 'package:gecko/providers/substrate_sdk.dart'; import 'package:gecko/providers/wallet_options.dart'; import 'package:gecko/providers/my_wallets.dart'; @@ -30,6 +31,8 @@ class WalletViewScreen extends StatelessWidget { Provider.of(context, listen: false); _walletViewProvider.pubkey = pubkey!; SubstrateSdk _sub = Provider.of(context, listen: false); + HomeProvider _homeProvider = + Provider.of(context, listen: false); MyWalletsProvider _myWalletProvider = Provider.of(context, listen: false); @@ -46,11 +49,14 @@ class WalletViewScreen extends StatelessWidget { child: Text('Voir un portefeuille'), ), ), + bottomNavigationBar: _homeProvider.bottomAppBar(context, 1), + // floatingActionButton: _homeProvider.floatingAction(context, 1), + // floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, body: SafeArea( child: Column(children: [ headerProfileView( context, _walletViewProvider, _cesiumPlusProvider), - SizedBox(height: isTall ? 120 : 70), + SizedBox(height: isTall ? 50 : 20), Row(mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ Column(children: [ SizedBox( @@ -233,7 +239,7 @@ class WalletViewScreen extends StatelessWidget { style: TextStyle( fontSize: buttonFontSize, fontWeight: FontWeight.w500), ), - SizedBox(height: isTall ? 120 : 70) + SizedBox(height: isTall ? 50 : 20) ]), )); }