Add optionnal bottomAppBar

This commit is contained in:
poka 2022-05-27 16:58:03 +02:00
parent 459b3f0c29
commit 79e0773820
8 changed files with 188 additions and 7 deletions

BIN
assets/wallet.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -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<void> 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<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() {
searchIcon = Icon(
Icons.search,

View File

@ -94,6 +94,7 @@ class HomeScreen extends StatelessWidget {
],
),
),
// bottomNavigationBar: _homeProvider.bottomBar(context, 1),
backgroundColor: const Color(0xffF9F9F1),
body: Builder(
builder: (ctx) => StatefulWrapper(

View File

@ -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<ChestProvider>(context, listen: false);
HomeProvider _homeProvider =
Provider.of<HomeProvider>(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: <Widget>[

View File

@ -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<WalletsProfilesProvider>(context, listen: false);
MyWalletsProvider _myWalletProvider =
Provider.of<MyWalletsProvider>(context);
HomeProvider _homeProvider =
Provider.of<HomeProvider>(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: <Widget>[

View File

@ -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<MyWalletsProvider>(context);
HomeProvider _homeProvider =
Provider.of<HomeProvider>(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;

View File

@ -16,6 +16,7 @@ class SearchScreen extends StatelessWidget {
SearchProvider _searchProvider = Provider.of<SearchProvider>(context);
final double screenHeight = MediaQuery.of(context).size.height;
return WillPopScope(
onWillPop: () {
_searchProvider.searchController.text = '';

View File

@ -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<CesiumPlusProvider>(context, listen: false);
_walletViewProvider.pubkey = pubkey!;
SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
HomeProvider _homeProvider =
Provider.of<HomeProvider>(context, listen: false);
MyWalletsProvider _myWalletProvider =
Provider.of<MyWalletsProvider>(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: <Widget>[
headerProfileView(
context, _walletViewProvider, _cesiumPlusProvider),
SizedBox(height: isTall ? 120 : 70),
SizedBox(height: isTall ? 50 : 20),
Row(mainAxisAlignment: MainAxisAlignment.spaceAround, children: [
Column(children: <Widget>[
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)
]),
));
}