Add optionnal bottomAppBar
This commit is contained in:
parent
459b3f0c29
commit
79e0773820
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
|
@ -7,10 +7,16 @@ 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/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:hive_flutter/hive_flutter.dart';
|
||||||
import 'package:flutter/foundation.dart' show kIsWeb;
|
import 'package:flutter/foundation.dart' show kIsWeb;
|
||||||
import 'package:path_provider/path_provider.dart' as pp;
|
import 'package:path_provider/path_provider.dart' as pp;
|
||||||
import 'package:package_info_plus/package_info_plus.dart';
|
import 'package:package_info_plus/package_info_plus.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class HomeProvider with ChangeNotifier {
|
class HomeProvider with ChangeNotifier {
|
||||||
bool? isSearching;
|
bool? isSearching;
|
||||||
|
@ -20,9 +26,6 @@ class HomeProvider with ChangeNotifier {
|
||||||
Widget appBarExplorer =
|
Widget appBarExplorer =
|
||||||
Text('Explorateur', style: TextStyle(color: Colors.grey[850]));
|
Text('Explorateur', style: TextStyle(color: Colors.grey[850]));
|
||||||
|
|
||||||
bool isFirstBuild = true;
|
|
||||||
// AudioCache player = AudioCache(prefix: 'sounds/');
|
|
||||||
|
|
||||||
Future<void> initHive() async {
|
Future<void> initHive() async {
|
||||||
late Directory hivePath;
|
late Directory hivePath;
|
||||||
|
|
||||||
|
@ -132,6 +135,165 @@ class HomeProvider with ChangeNotifier {
|
||||||
// volume: volume, mode: PlayerMode.LOW_LATENCY, stayAwake: false);
|
// volume: volume, mode: PlayerMode.LOW_LATENCY, stayAwake: false);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
Widget bottomAppBar(BuildContext context, int index) {
|
||||||
|
MyWalletsProvider _myWalletProvider =
|
||||||
|
Provider.of<MyWalletsProvider>(context, listen: false);
|
||||||
|
WalletsProfilesProvider _historyProvider =
|
||||||
|
Provider.of<WalletsProfilesProvider>(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<MyWalletsProvider>(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<WalletsProfilesProvider>(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() {
|
void handleSearchEnd() {
|
||||||
searchIcon = Icon(
|
searchIcon = Icon(
|
||||||
Icons.search,
|
Icons.search,
|
||||||
|
|
|
@ -94,6 +94,7 @@ class HomeScreen extends StatelessWidget {
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
// bottomNavigationBar: _homeProvider.bottomBar(context, 1),
|
||||||
backgroundColor: const Color(0xffF9F9F1),
|
backgroundColor: const Color(0xffF9F9F1),
|
||||||
body: Builder(
|
body: Builder(
|
||||||
builder: (ctx) => StatefulWrapper(
|
builder: (ctx) => StatefulWrapper(
|
||||||
|
|
|
@ -3,6 +3,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/providers/chest_provider.dart';
|
import 'package:gecko/providers/chest_provider.dart';
|
||||||
|
import 'package:gecko/providers/home.dart';
|
||||||
import 'package:gecko/providers/my_wallets.dart';
|
import 'package:gecko/providers/my_wallets.dart';
|
||||||
import 'package:gecko/screens/myWallets/change_pin.dart';
|
import 'package:gecko/screens/myWallets/change_pin.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
@ -17,6 +18,8 @@ class ChestOptions extends StatelessWidget {
|
||||||
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
||||||
ChestProvider _chestProvider =
|
ChestProvider _chestProvider =
|
||||||
Provider.of<ChestProvider>(context, listen: false);
|
Provider.of<ChestProvider>(context, listen: false);
|
||||||
|
HomeProvider _homeProvider =
|
||||||
|
Provider.of<HomeProvider>(context, listen: false);
|
||||||
|
|
||||||
ChestData currentChest = chestBox.get(configBox.get('currentChest'))!;
|
ChestData currentChest = chestBox.get(configBox.get('currentChest'))!;
|
||||||
|
|
||||||
|
@ -37,6 +40,7 @@ class ChestOptions extends StatelessWidget {
|
||||||
height: 22,
|
height: 22,
|
||||||
child: Text(currentChest.name!),
|
child: Text(currentChest.name!),
|
||||||
)),
|
)),
|
||||||
|
bottomNavigationBar: _homeProvider.bottomAppBar(context, 2),
|
||||||
body: Builder(
|
body: Builder(
|
||||||
builder: (ctx) => SafeArea(
|
builder: (ctx) => SafeArea(
|
||||||
child: Column(children: <Widget>[
|
child: Column(children: <Widget>[
|
||||||
|
|
|
@ -2,6 +2,7 @@ import 'dart:async';
|
||||||
import 'package:flutter/material.dart';
|
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/providers/home.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:gecko/providers/substrate_sdk.dart';
|
import 'package:gecko/providers/substrate_sdk.dart';
|
||||||
|
@ -26,6 +27,8 @@ class WalletOptions extends StatelessWidget {
|
||||||
Provider.of<WalletsProfilesProvider>(context, listen: false);
|
Provider.of<WalletsProfilesProvider>(context, listen: false);
|
||||||
MyWalletsProvider _myWalletProvider =
|
MyWalletsProvider _myWalletProvider =
|
||||||
Provider.of<MyWalletsProvider>(context);
|
Provider.of<MyWalletsProvider>(context);
|
||||||
|
HomeProvider _homeProvider =
|
||||||
|
Provider.of<HomeProvider>(context, listen: false);
|
||||||
|
|
||||||
log.d(_walletOptions.address.text);
|
log.d(_walletOptions.address.text);
|
||||||
|
|
||||||
|
@ -62,6 +65,7 @@ class WalletOptions extends StatelessWidget {
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
bottomNavigationBar: _homeProvider.bottomAppBar(context, 2),
|
||||||
body: Builder(
|
body: Builder(
|
||||||
builder: (ctx) => SafeArea(
|
builder: (ctx) => SafeArea(
|
||||||
child: Column(children: <Widget>[
|
child: Column(children: <Widget>[
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
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/providers/home.dart';
|
||||||
import 'package:gecko/providers/my_wallets.dart';
|
import 'package:gecko/providers/my_wallets.dart';
|
||||||
import 'package:gecko/models/queries.dart';
|
import 'package:gecko/models/queries.dart';
|
||||||
import 'package:gecko/models/wallet_data.dart';
|
import 'package:gecko/models/wallet_data.dart';
|
||||||
|
@ -21,6 +22,8 @@ class WalletsHome extends StatelessWidget {
|
||||||
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
|
||||||
MyWalletsProvider myWalletProvider =
|
MyWalletsProvider myWalletProvider =
|
||||||
Provider.of<MyWalletsProvider>(context);
|
Provider.of<MyWalletsProvider>(context);
|
||||||
|
HomeProvider _homeProvider =
|
||||||
|
Provider.of<HomeProvider>(context, listen: false);
|
||||||
|
|
||||||
final int? _currentChestNumber = myWalletProvider.getCurrentChest();
|
final int? _currentChestNumber = myWalletProvider.getCurrentChest();
|
||||||
final ChestData _currentChest = chestBox.get(_currentChestNumber)!;
|
final ChestData _currentChest = chestBox.get(_currentChestNumber)!;
|
||||||
|
@ -53,6 +56,7 @@ class WalletsHome extends StatelessWidget {
|
||||||
style: TextStyle(color: Colors.grey[850])),
|
style: TextStyle(color: Colors.grey[850])),
|
||||||
backgroundColor: const Color(0xffFFD58D),
|
backgroundColor: const Color(0xffFFD58D),
|
||||||
),
|
),
|
||||||
|
bottomNavigationBar: _homeProvider.bottomAppBar(context, 2),
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
child: myWalletsTiles(context, _currentChestNumber!),
|
child: myWalletsTiles(context, _currentChestNumber!),
|
||||||
),
|
),
|
||||||
|
@ -154,8 +158,7 @@ class WalletsHome extends StatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
List _listWallets = _myWalletProvider.listWallets;
|
List _listWallets = _myWalletProvider.listWallets;
|
||||||
WalletData? defaultWallet =
|
WalletData? defaultWallet = _myWalletProvider.getDefaultWallet();
|
||||||
_myWalletProvider.getDefaultWallet();
|
|
||||||
final double screenWidth = MediaQuery.of(context).size.width;
|
final double screenWidth = MediaQuery.of(context).size.width;
|
||||||
int nTule = 2;
|
int nTule = 2;
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ class SearchScreen extends StatelessWidget {
|
||||||
SearchProvider _searchProvider = Provider.of<SearchProvider>(context);
|
SearchProvider _searchProvider = Provider.of<SearchProvider>(context);
|
||||||
final double screenHeight = MediaQuery.of(context).size.height;
|
final double screenHeight = MediaQuery.of(context).size.height;
|
||||||
|
|
||||||
|
|
||||||
return WillPopScope(
|
return WillPopScope(
|
||||||
onWillPop: () {
|
onWillPop: () {
|
||||||
_searchProvider.searchController.text = '';
|
_searchProvider.searchController.text = '';
|
||||||
|
|
|
@ -2,6 +2,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/providers/cesium_plus.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/substrate_sdk.dart';
|
||||||
import 'package:gecko/providers/wallet_options.dart';
|
import 'package:gecko/providers/wallet_options.dart';
|
||||||
import 'package:gecko/providers/my_wallets.dart';
|
import 'package:gecko/providers/my_wallets.dart';
|
||||||
|
@ -30,6 +31,8 @@ class WalletViewScreen extends StatelessWidget {
|
||||||
Provider.of<CesiumPlusProvider>(context, listen: false);
|
Provider.of<CesiumPlusProvider>(context, listen: false);
|
||||||
_walletViewProvider.pubkey = pubkey!;
|
_walletViewProvider.pubkey = pubkey!;
|
||||||
SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
|
SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
|
||||||
|
HomeProvider _homeProvider =
|
||||||
|
Provider.of<HomeProvider>(context, listen: false);
|
||||||
|
|
||||||
MyWalletsProvider _myWalletProvider =
|
MyWalletsProvider _myWalletProvider =
|
||||||
Provider.of<MyWalletsProvider>(context, listen: false);
|
Provider.of<MyWalletsProvider>(context, listen: false);
|
||||||
|
@ -46,11 +49,14 @@ class WalletViewScreen extends StatelessWidget {
|
||||||
child: Text('Voir un portefeuille'),
|
child: Text('Voir un portefeuille'),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
bottomNavigationBar: _homeProvider.bottomAppBar(context, 1),
|
||||||
|
// floatingActionButton: _homeProvider.floatingAction(context, 1),
|
||||||
|
// floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
child: Column(children: <Widget>[
|
child: Column(children: <Widget>[
|
||||||
headerProfileView(
|
headerProfileView(
|
||||||
context, _walletViewProvider, _cesiumPlusProvider),
|
context, _walletViewProvider, _cesiumPlusProvider),
|
||||||
SizedBox(height: isTall ? 120 : 70),
|
SizedBox(height: isTall ? 50 : 20),
|
||||||
Row(mainAxisAlignment: MainAxisAlignment.spaceAround, children: [
|
Row(mainAxisAlignment: MainAxisAlignment.spaceAround, children: [
|
||||||
Column(children: <Widget>[
|
Column(children: <Widget>[
|
||||||
SizedBox(
|
SizedBox(
|
||||||
|
@ -233,7 +239,7 @@ class WalletViewScreen extends StatelessWidget {
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: buttonFontSize, fontWeight: FontWeight.w500),
|
fontSize: buttonFontSize, fontWeight: FontWeight.w500),
|
||||||
),
|
),
|
||||||
SizedBox(height: isTall ? 120 : 70)
|
SizedBox(height: isTall ? 50 : 20)
|
||||||
]),
|
]),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue