From 79e0773820db5a67ad3ced52fd964c78fc6138ab Mon Sep 17 00:00:00 2001
From: poka <poka@p2p.legal>
Date: Fri, 27 May 2022 16:58:03 +0200
Subject: [PATCH] Add optionnal bottomAppBar

---
 assets/wallet.png                         | Bin 0 -> 2041 bytes
 lib/providers/home.dart                   | 168 +++++++++++++++++++++-
 lib/screens/home.dart                     |   1 +
 lib/screens/myWallets/chest_options.dart  |   4 +
 lib/screens/myWallets/wallet_options.dart |   4 +
 lib/screens/myWallets/wallets_home.dart   |   7 +-
 lib/screens/search.dart                   |   1 +
 lib/screens/wallet_view.dart              |  10 +-
 8 files changed, 188 insertions(+), 7 deletions(-)
 create mode 100755 assets/wallet.png

diff --git a/assets/wallet.png b/assets/wallet.png
new file mode 100755
index 0000000000000000000000000000000000000000..c700ad7ee6f796979098f4c519aca05aa9f3a0c2
GIT binary patch
literal 2041
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
Xv)Sa(i0<7U00000NkvXXu0mjfd8FAY

literal 0
HcmV?d00001

diff --git a/lib/providers/home.dart b/lib/providers/home.dart
index 56bf97d8..79770882 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<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,
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index 6429d7dd..1aa3ed2a 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 47bb5e12..4d462ed7 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<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>[
diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart
index 3614935b..85ac5d1a 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<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>[
diff --git a/lib/screens/myWallets/wallets_home.dart b/lib/screens/myWallets/wallets_home.dart
index 98895b34..2b7b9966 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<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;
 
diff --git a/lib/screens/search.dart b/lib/screens/search.dart
index d98b98a6..026a4df8 100644
--- a/lib/screens/search.dart
+++ b/lib/screens/search.dart
@@ -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 = '';
diff --git a/lib/screens/wallet_view.dart b/lib/screens/wallet_view.dart
index 63b2d34e..4ff71900 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<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)
           ]),
         ));
   }
-- 
GitLab