From 497e28e86503ef196f7d9e9337336c1c0bbc2c49 Mon Sep 17 00:00:00 2001 From: poka Date: Mon, 22 Feb 2021 04:37:42 +0100 Subject: [PATCH 1/7] Apply home from Figma proposual (boris) --- assets/lock.png | Bin 0 -> 7723 bytes lib/screens/home.dart | 146 +++++++++++++++++++++++++++++++++++------- pubspec.yaml | 3 +- 3 files changed, 126 insertions(+), 23 deletions(-) create mode 100644 assets/lock.png diff --git a/assets/lock.png b/assets/lock.png new file mode 100644 index 0000000000000000000000000000000000000000..b6f1c56c4b6b670d63c55b1c76e0e9534699c38e GIT binary patch literal 7723 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[ + Padding( + padding: EdgeInsets.only(top: 22), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image( + image: AssetImage('assets/icon/gecko_final.png'), + height: 180), + ])), + Padding( + padding: EdgeInsets.only(top: 15), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "L’application de paiement Ğ1\nplus mobile qu’un lésard du Vietnam", + textAlign: TextAlign.center, + style: TextStyle(color: Colors.black, fontSize: 15), + ) + ])), + Padding( + padding: EdgeInsets.only(top: 60), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Column(children: [ + ClipOval( + child: Material( + color: Color(0xffFFD58D), // button color + child: Padding( + padding: EdgeInsets.all(17), + child: InkWell( + splashColor: Colors.black, // inkwell color + child: Image( + image: AssetImage('assets/qrcode-scan.png'), + height: 58), + onTap: () {}, + )), + ), + ), + SizedBox(height: 5), + Text( + "Payer par QR-Code", + textAlign: TextAlign.center, + style: TextStyle(color: Colors.black, fontSize: 13), + ) + ]) + ])), + Padding( + padding: EdgeInsets.only(top: 60), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Column(children: [ + ClipOval( + child: Material( + color: Color(0xffFFD58D), // button color + child: Padding( + padding: EdgeInsets.symmetric( + horizontal: 18, vertical: 14), + child: InkWell( + splashColor: Colors.black, // inkwell color + child: Image( + image: AssetImage('assets/blockchain.png'), + height: 65), + onTap: () {}, + )), + ), + ), + SizedBox(height: 5), + Text( + "Explorer\n", + textAlign: TextAlign.center, + style: TextStyle(color: Colors.black, fontSize: 13), + ) + ]), + SizedBox(width: 160), + Column(children: [ + ClipOval( + child: Material( + color: Color(0xffFFD58D), // button color + child: Padding( + padding: EdgeInsets.all(20), + child: InkWell( + splashColor: Colors.black, // inkwell color + child: Image( + image: AssetImage('assets/lock.png'), + height: 50), + onTap: () {}, + )), + ), + ), + SizedBox(height: 5), + Text( + "Gérer mes\nportefeuilles", + textAlign: TextAlign.center, + style: TextStyle(color: Colors.black, fontSize: 13), + ) + ]) + ])) + ]), + // bottomNavigationBar: BottomNavigationBar( + // backgroundColor: Color(0xffFFD58D), + // fixedColor: Colors.grey[850], + // unselectedItemColor: Color(0xffBD935C), + // type: BottomNavigationBarType.fixed, + // onTap: (index) { + // _homeProvider.currentIndex = index; + // }, + // currentIndex: _homeProvider.currentIndex, + // items: [ + // BottomNavigationBarItem( + // icon: Image.asset('assets/block-space-disabled.png', height: 26), + // activeIcon: Image.asset('assets/blockchain.png', height: 26), + // label: 'Explorateur', + // ), + // BottomNavigationBarItem( + // icon: Icon(Icons.lock), + // label: 'Mes portefeuilles', + // ), + // ], + // ), ); } } diff --git a/pubspec.yaml b/pubspec.yaml index ce9ab7b..49542f5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -5,7 +5,7 @@ description: A new Flutter project. # pub.dev using `pub publish`. This is preferred for private packages. publish_to: 'none' # Remove this line if you wish to publish to pub.dev -version: 0.0.1+11 +version: 0.0.1+13 environment: sdk: ">=2.7.0 <3.0.0" @@ -64,4 +64,5 @@ flutter: - assets/blockchain.png - assets/block-space.png - assets/block-space-disabled.png + - assets/lock.png From a2a85ce8bb9f701bcb5e3ebf9af18ba22ef642ab Mon Sep 17 00:00:00 2001 From: poka Date: Mon, 22 Feb 2021 08:49:29 +0100 Subject: [PATCH 2/7] Make routes for new home page buttons; Change Sentry alertes catching again --- lib/main.dart | 65 ++-- lib/models/history.dart | 9 +- lib/models/home.dart | 5 + lib/screens/history.dart | 48 ++- lib/screens/home.dart | 465 +++++++++++++------------ lib/screens/myWallets/walletsHome.dart | 5 + pubspec.yaml | 2 +- 7 files changed, 335 insertions(+), 264 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 7efdea8..f84ff3b 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,3 +1,5 @@ +import 'dart:async'; + import 'package:dubp/dubp.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/models/cesiumPlus.dart'; @@ -17,32 +19,11 @@ import 'package:shared_preferences/shared_preferences.dart'; import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:catcher/catcher.dart'; -// import 'dart:io'; -// import 'package:flutter_logs/flutter_logs.dart'; -// import 'package:downloads_path_provider/downloads_path_provider.dart'; - final bool enableSentry = true; Future main() async { WidgetsFlutterBinding.ensureInitialized(); - // var downloadsDirectory = DownloadsPathProvider.downloadsDirectory; - // File logFile = File(downloadsDirectory.toString() + '/gecko.log'); - - // await FlutterLogs.initLogs( - // logLevelsEnabled: [ - // LogLevel.INFO, - // LogLevel.WARNING, - // LogLevel.ERROR, - // LogLevel.SEVERE - // ], - // timeStampFormat: TimeStampFormat.TIME_FORMAT_READABLE, - // directoryStructure: DirectoryStructure.FOR_EVENT, - // logTypesEnabled: ["Locations", "APIs"], - // logFileExtension: LogFileExtension.LOG, - // logsWriteDirectoryName: downloadsDirectory.toString(), - // logsExportDirectoryName: downloadsDirectory.toString()); - HomeProvider _homeProvider = HomeProvider(); await _homeProvider.getAppPath(); await _homeProvider.createDefaultAvatar(); @@ -55,23 +36,33 @@ Future main() async { endPointGVA = await _homeProvider.getValidEndpoint(); if (kReleaseMode && enableSentry) { - CatcherOptions debugOptions = CatcherOptions(DialogReportMode(), [ - SentryHandler(SentryClient(SentryOptions( - dsn: - "https://c09587b46eaa42e8b9fda28d838ed180@o496840.ingest.sentry.io/5572110"))) - ]); - // CatcherOptions releaseOptions = CatcherOptions(NotificationReportMode(), [ - // EmailManualHandler(["poka@p2p.legal"]) + // CatcherOptions debugOptions = CatcherOptions(DialogReportMode(), [ + // SentryHandler(SentryClient(SentryOptions( + // dsn: + // "https://c09587b46eaa42e8b9fda28d838ed180@o496840.ingest.sentry.io/5572110"))) // ]); - Catcher(rootWidget: Gecko(endPointGVA, _store), debugConfig: debugOptions); + // // CatcherOptions releaseOptions = CatcherOptions(NotificationReportMode(), [ + // // EmailManualHandler(["poka@p2p.legal"]) + // // ]); + // Catcher(rootWidget: Gecko(endPointGVA, _store), debugConfig: debugOptions); - // await SentryFlutter.init( - // (options) { - // options.dsn = - // 'https://c09587b46eaa42e8b9fda28d838ed180@o496840.ingest.sentry.io/5572110'; - // }, - // appRunner: () => runApp(Gecko(endPointGVA, _store)), - // ); + await SentryFlutter.init((options) { + options.dsn = + 'https://c09587b46eaa42e8b9fda28d838ed180@o496840.ingest.sentry.io/5572110'; + }, appRunner: () => runApp(Gecko(endPointGVA, _store))); + + // runZoned>( + // () async { + // runApp(Gecko(endPointGVA, _store)); + // }, + // onError: (dynamic error, StackTrace stackTrace) { + // print("=================== CAUGHT DART ERROR"); + // // Sentry.captureException( + // // error, + // // stackTrace: stackTrace, + // // ); + // }, + // )); } else { print('Debug mode enabled: No sentry alerte'); @@ -108,6 +99,8 @@ class Gecko extends StatelessWidget { } } + // HistoryProvider _historyProvider = Provider.of(context); + // HistoryProvider('').snackNode(context); return MultiProvider( providers: [ // Provider(create: (context) => HistoryProvider()), diff --git a/lib/models/history.dart b/lib/models/history.dart index 966d14c..0585c29 100644 --- a/lib/models/history.dart +++ b/lib/models/history.dart @@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/models/home.dart'; +import 'package:gecko/screens/history.dart'; import 'package:graphql_flutter/graphql_flutter.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:provider/provider.dart'; @@ -64,6 +65,12 @@ class HistoryProvider with ChangeNotifier { isHistoryScreen = false; historySwitchButtun = "Voir l'historique"; _homeProvider.handleSearchEnd(); + Navigator.push( + context, + MaterialPageRoute(builder: (context) { + return HistoryScreen(); + }), + ); notifyListeners(); return pubkey; @@ -202,8 +209,8 @@ class HistoryProvider with ChangeNotifier { } final snackBar = SnackBar(content: Text(_message), duration: Duration(seconds: 2)); - Scaffold.of(context).showSnackBar(snackBar); isFirstBuild = false; + Scaffold.of(context).showSnackBar(snackBar); } } diff --git a/lib/models/home.dart b/lib/models/home.dart index c8eeeca..afacee6 100644 --- a/lib/models/home.dart +++ b/lib/models/home.dart @@ -17,6 +17,9 @@ class HomeProvider with ChangeNotifier { Icon searchIcon = Icon(Icons.search); final TextEditingController searchQuery = new TextEditingController(); Widget appBarTitle = Text('Ğecko', style: TextStyle(color: Colors.grey[850])); + Widget appBarExplorer = + Text('Explorateur', style: TextStyle(color: Colors.grey[850])); + List currentTab = [HistoryScreen(), WalletsHome()]; get currentIndex => _currentIndex; @@ -124,6 +127,8 @@ class HomeProvider with ChangeNotifier { color: Colors.grey[850], ); appBarTitle = Text('Ğecko', style: TextStyle(color: Colors.grey[850])); + appBarExplorer = + Text('Explorateur', style: TextStyle(color: Colors.grey[850])); isSearching = false; searchQuery.clear(); diff --git a/lib/screens/history.dart b/lib/screens/history.dart index 8a41aa5..f1f40f7 100644 --- a/lib/screens/history.dart +++ b/lib/screens/history.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:flutter/services.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/models/cesiumPlus.dart'; +import 'package:gecko/models/home.dart'; import 'package:gecko/models/queries.dart'; import 'package:gecko/models/history.dart'; import 'package:flutter/material.dart'; @@ -28,14 +29,55 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier { @override Widget build(BuildContext context) { HistoryProvider _historyProvider = Provider.of(context); + HomeProvider _homeProvider = Provider.of(context); this._outputPubkey.text = _historyProvider.pubkey; print('Build pubkey : ' + _historyProvider.pubkey); // _historyProvider.snackNode(context); - WidgetsBinding.instance.addPostFrameCallback((_) { - _historyProvider.snackNode(context); - }); + WidgetsBinding.instance.addPostFrameCallback((_) {}); return Scaffold( + appBar: AppBar( + title: _homeProvider.appBarExplorer, + actions: [ + Padding( + padding: EdgeInsets.symmetric(horizontal: 16), + child: IconButton( + icon: _homeProvider.searchIcon, + color: Colors.grey[850], + onPressed: () { + if (_homeProvider.searchIcon.icon == Icons.search) { + _homeProvider.searchIcon = Icon( + Icons.close, + color: Colors.grey[850], + ); + _homeProvider.appBarExplorer = TextField( + autofocus: true, + controller: _homeProvider.searchQuery, + onChanged: (text) { + print("Clé tappé: $text"); + final String searchResult = + _historyProvider.isPubkey(context, text); + if (searchResult != '') { + _homeProvider.currentIndex = 0; + } + }, + style: TextStyle( + color: Colors.grey[850], + ), + decoration: InputDecoration( + prefixIcon: + Icon(Icons.search, color: Colors.grey[850]), + hintText: "Rechercher ...", + hintStyle: TextStyle(color: Colors.grey[850])), + ); + _homeProvider.handleSearchStart(); + } else { + _homeProvider.handleSearchEnd(); + } + })) + ], + backgroundColor: Color(0xffFFD58D), + ), floatingActionButton: Container( height: 80.0, width: 80.0, diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 96b8aea..01c8403 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -2,6 +2,7 @@ import 'package:gecko/globals.dart'; import 'package:gecko/models/history.dart'; import 'package:gecko/models/home.dart'; import 'package:flutter/material.dart'; +import 'package:gecko/screens/myWallets/walletsHome.dart'; import 'dart:ui'; import 'package:gecko/screens/settings.dart'; import 'package:provider/provider.dart'; @@ -11,230 +12,248 @@ class HomeScreen extends StatelessWidget { Widget build(BuildContext context) { HomeProvider _homeProvider = Provider.of(context); HistoryProvider _historyProvider = Provider.of(context); - return Scaffold( - drawer: Drawer( - child: Column( - children: [ - Expanded( - child: ListView(padding: EdgeInsets.zero, children: [ - DrawerHeader( - child: Column(children: [ - SizedBox(height: 0), - Image( - image: AssetImage('assets/icon/gecko_final.png'), - height: 130), - ]), - decoration: BoxDecoration( - color: Color(0xffD28928), - ), - ), - ListTile( - title: Text('Paramètres'), - onTap: () { - Navigator.pop(context); - Navigator.push( - context, - MaterialPageRoute(builder: (context) { - return SettingsScreen(); - }), - ); - }, - ), - ListTile( - title: Text('A propos'), - onTap: () { - // Update the state of the app. - // ... - }, - ), - ])), - Container( - child: Align( - alignment: FractionalOffset.bottomCenter, - child: Text('Ğecko v$appVersion'))), - SizedBox(height: 20) - ], - ), - ), - appBar: AppBar( - leading: Builder( - builder: (context) => IconButton( - icon: new Icon(Icons.menu, color: Colors.grey[850]), - onPressed: () => Scaffold.of(context).openDrawer(), - )), - title: _homeProvider.appBarTitle, - actions: [ - Padding( - padding: EdgeInsets.symmetric(horizontal: 16), - child: IconButton( - icon: _homeProvider.searchIcon, - color: Colors.grey[850], - onPressed: () { - // Navigator.push( - // context, - // MaterialPageRoute(builder: (context) { - // return SearchList(); - // }), - // ); + // _historyProvider.snackNode(context); - if (_homeProvider.searchIcon.icon == Icons.search) { - _homeProvider.searchIcon = Icon( - Icons.close, - color: Colors.grey[850], - ); - _homeProvider.appBarTitle = TextField( - autofocus: true, - controller: _homeProvider.searchQuery, - onChanged: (text) { - print("Clé tappé: $text"); - final String searchResult = - _historyProvider.isPubkey(context, text); - if (searchResult != '') { - _homeProvider.currentIndex = 0; - } - }, - style: TextStyle( - color: Colors.grey[850], - ), - decoration: InputDecoration( - prefixIcon: - Icon(Icons.search, color: Colors.grey[850]), - hintText: "Rechercher ...", - hintStyle: TextStyle(color: Colors.grey[850])), - ); - _homeProvider.handleSearchStart(); - } else { - _homeProvider.handleSearchEnd(); - } - })) - ], - backgroundColor: Color(0xffFFD58D), - ), - backgroundColor: Color(0xffF9F9F1), - body: // _homeProvider.currentTab[_homeProvider.currentIndex], - Column(children: [ - Padding( - padding: EdgeInsets.only(top: 22), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Image( - image: AssetImage('assets/icon/gecko_final.png'), - height: 180), - ])), - Padding( - padding: EdgeInsets.only(top: 15), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - "L’application de paiement Ğ1\nplus mobile qu’un lésard du Vietnam", - textAlign: TextAlign.center, - style: TextStyle(color: Colors.black, fontSize: 15), - ) - ])), - Padding( - padding: EdgeInsets.only(top: 60), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Column(children: [ - ClipOval( - child: Material( - color: Color(0xffFFD58D), // button color - child: Padding( - padding: EdgeInsets.all(17), - child: InkWell( - splashColor: Colors.black, // inkwell color - child: Image( - image: AssetImage('assets/qrcode-scan.png'), - height: 58), - onTap: () {}, - )), - ), - ), - SizedBox(height: 5), - Text( - "Payer par QR-Code", - textAlign: TextAlign.center, - style: TextStyle(color: Colors.black, fontSize: 13), - ) - ]) - ])), - Padding( - padding: EdgeInsets.only(top: 60), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Column(children: [ - ClipOval( - child: Material( - color: Color(0xffFFD58D), // button color - child: Padding( - padding: EdgeInsets.symmetric( - horizontal: 18, vertical: 14), - child: InkWell( - splashColor: Colors.black, // inkwell color - child: Image( - image: AssetImage('assets/blockchain.png'), - height: 65), - onTap: () {}, - )), - ), - ), - SizedBox(height: 5), - Text( - "Explorer\n", - textAlign: TextAlign.center, - style: TextStyle(color: Colors.black, fontSize: 13), - ) + return Scaffold( + resizeToAvoidBottomInset: false, + drawer: Drawer( + child: Column( + children: [ + Expanded( + child: ListView(padding: EdgeInsets.zero, children: [ + DrawerHeader( + child: Column(children: [ + SizedBox(height: 0), + Image( + image: AssetImage('assets/icon/gecko_final.png'), + height: 130), ]), - SizedBox(width: 160), - Column(children: [ - ClipOval( - child: Material( - color: Color(0xffFFD58D), // button color - child: Padding( - padding: EdgeInsets.all(20), - child: InkWell( - splashColor: Colors.black, // inkwell color - child: Image( - image: AssetImage('assets/lock.png'), - height: 50), - onTap: () {}, - )), - ), - ), - SizedBox(height: 5), - Text( - "Gérer mes\nportefeuilles", - textAlign: TextAlign.center, - style: TextStyle(color: Colors.black, fontSize: 13), - ) - ]) - ])) - ]), - // bottomNavigationBar: BottomNavigationBar( - // backgroundColor: Color(0xffFFD58D), - // fixedColor: Colors.grey[850], - // unselectedItemColor: Color(0xffBD935C), - // type: BottomNavigationBarType.fixed, - // onTap: (index) { - // _homeProvider.currentIndex = index; - // }, - // currentIndex: _homeProvider.currentIndex, - // items: [ - // BottomNavigationBarItem( - // icon: Image.asset('assets/block-space-disabled.png', height: 26), - // activeIcon: Image.asset('assets/blockchain.png', height: 26), - // label: 'Explorateur', - // ), - // BottomNavigationBarItem( - // icon: Icon(Icons.lock), - // label: 'Mes portefeuilles', - // ), - // ], - // ), - ); + decoration: BoxDecoration( + color: Color(0xffD28928), + ), + ), + ListTile( + title: Text('Paramètres'), + onTap: () { + Navigator.pop(context); + Navigator.push( + context, + MaterialPageRoute(builder: (context) { + return SettingsScreen(); + }), + ); + }, + ), + ListTile( + title: Text('A propos'), + onTap: () { + // Update the state of the app. + // ... + }, + ), + ])), + Container( + child: Align( + alignment: FractionalOffset.bottomCenter, + child: Text('Ğecko v$appVersion'))), + SizedBox(height: 20) + ], + ), + ), + appBar: AppBar( + leading: Builder( + builder: (context) => IconButton( + icon: new Icon(Icons.menu, color: Colors.grey[850]), + onPressed: () => Scaffold.of(context).openDrawer(), + )), + title: _homeProvider.appBarTitle, + actions: [ + Padding( + padding: EdgeInsets.symmetric(horizontal: 16), + child: IconButton( + icon: _homeProvider.searchIcon, + color: Colors.grey[850], + onPressed: () { + // Navigator.push( + // context, + // MaterialPageRoute(builder: (context) { + // return SearchList(); + // }), + // ); + + if (_homeProvider.searchIcon.icon == Icons.search) { + _homeProvider.searchIcon = Icon( + Icons.close, + color: Colors.grey[850], + ); + _homeProvider.appBarTitle = TextField( + autofocus: true, + controller: _homeProvider.searchQuery, + onChanged: (text) { + print("Clé tappé: $text"); + final String searchResult = + _historyProvider.isPubkey(context, text); + if (searchResult != '') { + _homeProvider.currentIndex = 0; + } + }, + style: TextStyle( + color: Colors.grey[850], + ), + decoration: InputDecoration( + prefixIcon: + Icon(Icons.search, color: Colors.grey[850]), + hintText: "Rechercher ...", + hintStyle: TextStyle(color: Colors.grey[850])), + ); + _homeProvider.handleSearchStart(); + } else { + _homeProvider.handleSearchEnd(); + } + })) + ], + backgroundColor: Color(0xffFFD58D), + ), + backgroundColor: Color(0xffF9F9F1), + body: // _homeProvider.currentTab[_homeProvider.currentIndex], + Builder( + builder: (context) => Column(children: [ + // _historyProvider.snackNode(context), + // SnackBar(content: Text('tataaa')), + + Padding( + padding: EdgeInsets.only(top: 22), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image( + image: AssetImage('assets/icon/gecko_final.png'), + height: 180), + ])), + Padding( + padding: EdgeInsets.only(top: 15), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "L’application de paiement Ğ1\nplus mobile qu’un lésard du Vietnam", + textAlign: TextAlign.center, + style: TextStyle(color: Colors.black, fontSize: 15), + ) + ])), + Padding( + padding: EdgeInsets.only(top: 60), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Column(children: [ + ClipOval( + child: Material( + color: Color(0xffFFD58D), // button color + child: Padding( + padding: EdgeInsets.all(17), + child: InkWell( + splashColor: Colors.black, // inkwell color + child: Image( + image: + AssetImage('assets/qrcode-scan.png'), + height: 58), + onTap: () async { + await _historyProvider.scan(context); + }, + )), + ), + ), + SizedBox(height: 5), + Text( + "Payer par QR-Code", + textAlign: TextAlign.center, + style: TextStyle(color: Colors.black, fontSize: 13), + ) + ]) + ])), + Padding( + padding: EdgeInsets.only(top: 60), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Column(children: [ + ClipOval( + child: Material( + color: Color(0xffFFD58D), // button color + child: Padding( + padding: EdgeInsets.symmetric( + horizontal: 18, vertical: 14), + child: InkWell( + splashColor: Colors.black, // inkwell color + child: Image( + image: + AssetImage('assets/blockchain.png'), + height: 65), + onTap: () {}, + )), + ), + ), + SizedBox(height: 5), + Text( + "Explorer\n", + textAlign: TextAlign.center, + style: TextStyle(color: Colors.black, fontSize: 13), + ) + ]), + SizedBox(width: 140), + Column(children: [ + ClipOval( + child: Material( + color: Color(0xffFFD58D), // button color + child: Padding( + padding: EdgeInsets.all(20), + child: InkWell( + splashColor: Colors.black, // inkwell color + child: Image( + image: AssetImage('assets/lock.png'), + height: 50), + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) { + return WalletsHome(); + }), + ); + }, + )), + ), + ), + SizedBox(height: 5), + Text( + "Gérer mes\nportefeuilles", + textAlign: TextAlign.center, + style: TextStyle(color: Colors.black, fontSize: 13), + ) + ]) + ])) + ]), + // bottomNavigationBar: BottomNavigationBar( + // backgroundColor: Color(0xffFFD58D), + // fixedColor: Colors.grey[850], + // unselectedItemColor: Color(0xffBD935C), + // type: BottomNavigationBarType.fixed, + // onTap: (index) { + // _homeProvider.currentIndex = index; + // }, + // currentIndex: _homeProvider.currentIndex, + // items: [ + // BottomNavigationBarItem( + // icon: Image.asset('assets/block-space-disabled.png', height: 26), + // activeIcon: Image.asset('assets/blockchain.png', height: 26), + // label: 'Explorateur', + // ), + // BottomNavigationBarItem( + // icon: Icon(Icons.lock), + // label: 'Mes portefeuilles', + // ), + // ], + // ), + )); } } diff --git a/lib/screens/myWallets/walletsHome.dart b/lib/screens/myWallets/walletsHome.dart index 9ea2c06..a9611a1 100644 --- a/lib/screens/myWallets/walletsHome.dart +++ b/lib/screens/myWallets/walletsHome.dart @@ -27,6 +27,11 @@ class WalletsHome extends StatelessWidget { } return Scaffold( + appBar: AppBar( + title: Text('Mes portefeuilles', + style: TextStyle(color: Colors.grey[850])), + backgroundColor: Color(0xffFFD58D), + ), floatingActionButton: Visibility( visible: (isWalletsExists && firstWalletDerivation != -1), child: Container( diff --git a/pubspec.yaml b/pubspec.yaml index 49542f5..ecc162e 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -5,7 +5,7 @@ description: A new Flutter project. # pub.dev using `pub publish`. This is preferred for private packages. publish_to: 'none' # Remove this line if you wish to publish to pub.dev -version: 0.0.1+13 +version: 0.0.1+14 environment: sdk: ">=2.7.0 <3.0.0" From 646b86139ba8913c60e5940821901f9dd97ebf2e Mon Sep 17 00:00:00 2001 From: poka Date: Mon, 22 Feb 2021 08:54:40 +0100 Subject: [PATCH 3/7] Improve home button inkwell --- lib/screens/home.dart | 167 ++++++++++++++++++++++++++---------------- 1 file changed, 102 insertions(+), 65 deletions(-) diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 01c8403..13e782a 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -147,24 +147,37 @@ class HomeScreen extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Column(children: [ - ClipOval( - child: Material( - color: Color(0xffFFD58D), // button color - child: Padding( - padding: EdgeInsets.all(17), - child: InkWell( - splashColor: Colors.black, // inkwell color - child: Image( - image: - AssetImage('assets/qrcode-scan.png'), - height: 58), + Container( + child: ClipOval( + child: Material( + color: Color(0xffFFD58D), // button color + child: InkWell( + splashColor: + Color(0xffD28928), // inkwell color + child: Padding( + padding: EdgeInsets.all(17), + child: Image( + image: AssetImage( + 'assets/qrcode-scan.png'), + height: 58)), onTap: () async { await _historyProvider.scan(context); - }, - )), + }), + ), + ), + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.grey, + blurRadius: 4.0, + offset: Offset(2.0, 2.5), + spreadRadius: 0.5) + ], ), ), - SizedBox(height: 5), + SizedBox(height: 10), Text( "Payer par QR-Code", textAlign: TextAlign.center, @@ -174,64 +187,88 @@ class HomeScreen extends StatelessWidget { ])), Padding( padding: EdgeInsets.only(top: 60), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Column(children: [ - ClipOval( - child: Material( - color: Color(0xffFFD58D), // button color - child: Padding( - padding: EdgeInsets.symmetric( - horizontal: 18, vertical: 14), - child: InkWell( - splashColor: Colors.black, // inkwell color + child: + Row(mainAxisAlignment: MainAxisAlignment.center, children: < + Widget>[ + Column(children: [ + Container( + child: ClipOval( + child: Material( + color: Color(0xffFFD58D), // button color + child: InkWell( + splashColor: Color(0xffD28928), // inkwell color + child: Padding( + padding: EdgeInsets.symmetric( + horizontal: 18, vertical: 14), child: Image( image: AssetImage('assets/blockchain.png'), - height: 65), - onTap: () {}, - )), - ), + height: 65)), + onTap: () {}), ), - SizedBox(height: 5), - Text( - "Explorer\n", - textAlign: TextAlign.center, - style: TextStyle(color: Colors.black, fontSize: 13), - ) - ]), - SizedBox(width: 140), - Column(children: [ - ClipOval( - child: Material( - color: Color(0xffFFD58D), // button color - child: Padding( - padding: EdgeInsets.all(20), - child: InkWell( - splashColor: Colors.black, // inkwell color + ), + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.grey, + blurRadius: 4.0, + offset: Offset(2.0, 2.5), + spreadRadius: 0.5) + ], + ), + ), + SizedBox(height: 10), + Text( + "Explorer\n", + textAlign: TextAlign.center, + style: TextStyle(color: Colors.black, fontSize: 13), + ) + ]), + SizedBox(width: 140), + Column(children: [ + Container( + child: ClipOval( + child: Material( + color: Color(0xffFFD58D), // button color + child: InkWell( + splashColor: Color(0xffD28928), // inkwell color + child: Padding( + padding: EdgeInsets.all(20), child: Image( image: AssetImage('assets/lock.png'), - height: 50), - onTap: () { - Navigator.push( - context, - MaterialPageRoute(builder: (context) { - return WalletsHome(); - }), - ); - }, - )), - ), + height: 50)), + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) { + return WalletsHome(); + }), + ); + }), ), - SizedBox(height: 5), - Text( - "Gérer mes\nportefeuilles", - textAlign: TextAlign.center, - style: TextStyle(color: Colors.black, fontSize: 13), - ) - ]) - ])) + ), + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.grey, + blurRadius: 4.0, + offset: Offset(2.0, 2.5), + spreadRadius: 0.5) + ], + ), + ), + SizedBox(height: 10), + Text( + "Gérer mes\nportefeuilles", + textAlign: TextAlign.center, + style: TextStyle(color: Colors.black, fontSize: 13), + ) + ]) + ])) ]), // bottomNavigationBar: BottomNavigationBar( // backgroundColor: Color(0xffFFD58D), From b3cd00749de1edab1640c3bd9f0bd150a575fee0 Mon Sep 17 00:00:00 2001 From: poka Date: Mon, 22 Feb 2021 09:48:14 +0100 Subject: [PATCH 4/7] Align Logo --- lib/screens/home.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/screens/home.dart b/lib/screens/home.dart index 13e782a..ee1a738 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -126,6 +126,7 @@ class HomeScreen extends StatelessWidget { child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ + SizedBox(width: 7), Image( image: AssetImage('assets/icon/gecko_final.png'), height: 180), From 3b915be9d361254f64da6ef691b00464316a121c Mon Sep 17 00:00:00 2001 From: poka Date: Mon, 22 Feb 2021 19:44:58 +0100 Subject: [PATCH 5/7] Fix Snack display --- lib/screens/history.dart | 249 ++++++++++++------------ lib/screens/home.dart | 399 +++++++++++++++++++++------------------ 2 files changed, 343 insertions(+), 305 deletions(-) diff --git a/lib/screens/history.dart b/lib/screens/history.dart index f1f40f7..e9ec8cb 100644 --- a/lib/screens/history.dart +++ b/lib/screens/history.dart @@ -162,128 +162,139 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier { // Build history list return NotificationListener( - child: Expanded( - child: ListView( - controller: scrollController, - children: [ - SizedBox(height: 20), - if (_historyProvider.pubkey != '') - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ + child: Builder( + builder: (context) => Expanded( + child: ListView( + controller: scrollController, + children: [ + SizedBox(height: 20), + if (_historyProvider.pubkey != '') + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + if (_isFirstExec) + Container( + padding: const EdgeInsets.fromLTRB( + 12, 0, 5, 0), + child: FutureBuilder( + future: + _cesiumPlusProvider.getAvatar( + _historyProvider.pubkey), + initialData: [ + File(appPath.path + + '/default_avatar.png') + ], + builder: (BuildContext context, + AsyncSnapshot _avatar) { + cesiumData = _avatar.data; + // _cesiumPlusProvider.isComplete = true; + if (_avatar.connectionState != + ConnectionState.done) { + return Image.file( + File(appPath.path + + '/default_avatar.png'), + height: avatarsSize); + } + if (_avatar.hasError) { + return Image.file( + File(appPath.path + + '/default_avatar.png'), + height: avatarsSize); + } + if (_avatar.hasData) { + return SingleChildScrollView( + padding: + EdgeInsets.all(0.0), + child: Image.file( + _avatar.data[0], + height: avatarsSize)); + } + return Image.file( + File(appPath.path + + '/default_avatar.png'), + height: avatarsSize); + })), + GestureDetector( + onTap: () { + Clipboard.setData(ClipboardData( + text: _historyProvider.pubkey)); + _historyProvider.snackCopyKey(context); + }, + child: Text( + _historyProvider.getShortPubkey( + _historyProvider.pubkey), + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.w800, + fontFamily: 'Monospace')), + ), + Container( + padding: const EdgeInsets.fromLTRB( + 30, 0, 5, 0), // .only(right: 15), + child: Text('TODO')), + SizedBox(width: 0) + ]), + if (_isFirstExec) + Row( + mainAxisAlignment: + MainAxisAlignment.spaceAround, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + padding: const EdgeInsets.fromLTRB( + 0, 0, 0, 0), + // padding: const EdgeInsets., + child: FutureBuilder( + future: _cesiumPlusProvider.getName( + _historyProvider.pubkey), + initialData: '...', + builder: (context, snapshot) { + return Text( + snapshot.data != '' + ? snapshot.data + : '-', + style: + TextStyle(fontSize: 20)); + })) + ]), + SizedBox(height: 18), if (_isFirstExec) Container( padding: - const EdgeInsets.fromLTRB(12, 0, 5, 0), - child: FutureBuilder( - future: _cesiumPlusProvider - .getAvatar(_historyProvider.pubkey), - initialData: [ - File(appPath.path + - '/default_avatar.png') - ], - builder: (BuildContext context, - AsyncSnapshot _avatar) { - cesiumData = _avatar.data; - // _cesiumPlusProvider.isComplete = true; - if (_avatar.connectionState != - ConnectionState.done) { - return Image.file( - File(appPath.path + - '/default_avatar.png'), - height: avatarsSize); - } - if (_avatar.hasError) { - return Image.file( - File(appPath.path + - '/default_avatar.png'), - height: avatarsSize); - } - if (_avatar.hasData) { - return SingleChildScrollView( - padding: EdgeInsets.all(0.0), - child: Image.file(_avatar.data[0], - height: avatarsSize)); - } - return Image.file( - File(appPath.path + - '/default_avatar.png'), - height: avatarsSize); - })), - GestureDetector( - onTap: () { - Clipboard.setData(ClipboardData( - text: _historyProvider.pubkey)); - _historyProvider.snackCopyKey(context); - }, - child: Text( - _historyProvider - .getShortPubkey(_historyProvider.pubkey), - style: TextStyle( - fontSize: 22, - fontWeight: FontWeight.w800, - fontFamily: 'Monospace')), - ), - Container( - padding: const EdgeInsets.fromLTRB( - 30, 0, 5, 0), // .only(right: 15), - child: Text('TODO')), - SizedBox(width: 0) - ]), - if (_isFirstExec) - Row( - mainAxisAlignment: MainAxisAlignment.spaceAround, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Container( - padding: const EdgeInsets.fromLTRB(0, 0, 0, 0), - // padding: const EdgeInsets., - child: FutureBuilder( - future: _cesiumPlusProvider - .getName(_historyProvider.pubkey), - initialData: '...', - builder: (context, snapshot) { - return Text( - snapshot.data != '' - ? snapshot.data - : '-', - style: TextStyle(fontSize: 20)); - })) - ]), - SizedBox(height: 18), - if (_isFirstExec) - Container( - padding: const EdgeInsets.fromLTRB(0, 0, 0, 0), - child: Text(balance.toString() + ' Ğ1', - textAlign: TextAlign.center, - style: TextStyle(fontSize: 18.0))), - SizedBox(height: 20), - ElevatedButton( - style: ElevatedButton.styleFrom( - elevation: 1, - primary: Colors.grey[50], // background - onPrimary: Colors.black, // foreground - ), - onPressed: () { - _historyProvider.switchProfileView(); - }, - child: Text(_historyProvider.historySwitchButtun, - style: TextStyle( - fontSize: 15, color: Color(0xffD28928)))), - // const Divider( - // color: Colors.grey, - // height: 5, - // thickness: 0.5, - // indent: 0, - // endIndent: 0, - // ), - _historyProvider.isHistoryScreen - ? historyView(context, result) - : payView(context), - ], - )), + const EdgeInsets.fromLTRB(0, 0, 0, 0), + child: Text(balance.toString() + ' Ğ1', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 18.0))), + SizedBox(height: 20), + ElevatedButton( + style: ElevatedButton.styleFrom( + elevation: 1, + primary: Colors.grey[50], // background + onPrimary: Colors.black, // foreground + ), + onPressed: () { + _historyProvider.switchProfileView(); + }, + child: Text( + _historyProvider.historySwitchButtun, + style: TextStyle( + fontSize: 15, + color: Color(0xffD28928)))), + // const Divider( + // color: Colors.grey, + // height: 5, + // thickness: 0.5, + // indent: 0, + // endIndent: 0, + // ), + _historyProvider.isHistoryScreen + ? historyView(context, result) + : payView(context), + ], + ))), onNotification: (t) { if (t is ScrollEndNotification && scrollController.position.pixels >= diff --git a/lib/screens/home.dart b/lib/screens/home.dart index ee1a738..e0c7f14 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -12,8 +12,7 @@ class HomeScreen extends StatelessWidget { Widget build(BuildContext context) { HomeProvider _homeProvider = Provider.of(context); HistoryProvider _historyProvider = Provider.of(context); - // _historyProvider.snackNode(context); - + HistoryProvider _historyStatic = HistoryProvider(''); return Scaffold( resizeToAvoidBottomInset: false, drawer: Drawer( @@ -74,13 +73,6 @@ class HomeScreen extends StatelessWidget { icon: _homeProvider.searchIcon, color: Colors.grey[850], onPressed: () { - // Navigator.push( - // context, - // MaterialPageRoute(builder: (context) { - // return SearchList(); - // }), - // ); - if (_homeProvider.searchIcon.icon == Icons.search) { _homeProvider.searchIcon = Icon( Icons.close, @@ -115,183 +107,218 @@ class HomeScreen extends StatelessWidget { backgroundColor: Color(0xffFFD58D), ), backgroundColor: Color(0xffF9F9F1), - body: // _homeProvider.currentTab[_homeProvider.currentIndex], - Builder( - builder: (context) => Column(children: [ - // _historyProvider.snackNode(context), - // SnackBar(content: Text('tataaa')), - - Padding( - padding: EdgeInsets.only(top: 22), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - SizedBox(width: 7), - Image( - image: AssetImage('assets/icon/gecko_final.png'), - height: 180), - ])), - Padding( - padding: EdgeInsets.only(top: 15), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - "L’application de paiement Ğ1\nplus mobile qu’un lésard du Vietnam", - textAlign: TextAlign.center, - style: TextStyle(color: Colors.black, fontSize: 15), - ) - ])), - Padding( - padding: EdgeInsets.only(top: 60), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Column(children: [ - Container( - child: ClipOval( - child: Material( - color: Color(0xffFFD58D), // button color - child: InkWell( - splashColor: - Color(0xffD28928), // inkwell color - child: Padding( - padding: EdgeInsets.all(17), - child: Image( - image: AssetImage( - 'assets/qrcode-scan.png'), - height: 58)), - onTap: () async { - await _historyProvider.scan(context); - }), - ), - ), - decoration: BoxDecoration( - shape: BoxShape.circle, - color: Colors.white, - boxShadow: [ - BoxShadow( - color: Colors.grey, - blurRadius: 4.0, - offset: Offset(2.0, 2.5), - spreadRadius: 0.5) - ], - ), - ), - SizedBox(height: 10), - Text( - "Payer par QR-Code", - textAlign: TextAlign.center, - style: TextStyle(color: Colors.black, fontSize: 13), - ) - ]) - ])), - Padding( - padding: EdgeInsets.only(top: 60), - child: - Row(mainAxisAlignment: MainAxisAlignment.center, children: < - Widget>[ - Column(children: [ - Container( - child: ClipOval( - child: Material( - color: Color(0xffFFD58D), // button color - child: InkWell( - splashColor: Color(0xffD28928), // inkwell color - child: Padding( - padding: EdgeInsets.symmetric( - horizontal: 18, vertical: 14), - child: Image( - image: - AssetImage('assets/blockchain.png'), - height: 65)), - onTap: () {}), - ), - ), - decoration: BoxDecoration( - shape: BoxShape.circle, - color: Colors.white, - boxShadow: [ - BoxShadow( - color: Colors.grey, - blurRadius: 4.0, - offset: Offset(2.0, 2.5), - spreadRadius: 0.5) - ], - ), - ), - SizedBox(height: 10), - Text( - "Explorer\n", - textAlign: TextAlign.center, - style: TextStyle(color: Colors.black, fontSize: 13), - ) + body: Builder( + builder: (ctx) => StatefulWrapper( + onInit: () { + WidgetsBinding.instance.addPostFrameCallback((_) { + _historyStatic.snackNode(ctx); + }); + }, + child: Column(children: [ + Padding( + padding: EdgeInsets.only(top: 22), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox(width: 7), + Image( + image: + AssetImage('assets/icon/gecko_final.png'), + height: 180), + ])), + Padding( + padding: EdgeInsets.only(top: 15), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "L’application de paiement Ğ1\nplus mobile qu’un lésard du Vietnam", + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.black, fontSize: 15), + ) + ])), + Padding( + padding: EdgeInsets.only(top: 60), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Column(children: [ + Container( + child: ClipOval( + child: Material( + color: Color(0xffFFD58D), // button color + child: InkWell( + splashColor: Color( + 0xffD28928), // inkwell color + child: Padding( + padding: EdgeInsets.all(17), + child: Image( + image: AssetImage( + 'assets/qrcode-scan.png'), + height: 58)), + onTap: () async { + await _historyProvider + .scan(context); + }), + ), + ), + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.grey, + blurRadius: 4.0, + offset: Offset(2.0, 2.5), + spreadRadius: 0.5) + ], + ), + ), + SizedBox(height: 10), + Text( + "Payer par QR-Code", + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.black, fontSize: 13), + ) + ]) + ])), + Padding( + padding: EdgeInsets.only(top: 60), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Column(children: [ + Container( + child: ClipOval( + child: Material( + color: Color(0xffFFD58D), // button color + child: InkWell( + splashColor: Color( + 0xffD28928), // inkwell color + child: Padding( + padding: EdgeInsets.symmetric( + horizontal: 18, vertical: 14), + child: Image( + image: AssetImage( + 'assets/blockchain.png'), + height: 65)), + onTap: () {}), + ), + ), + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.grey, + blurRadius: 4.0, + offset: Offset(2.0, 2.5), + spreadRadius: 0.5) + ], + ), + ), + SizedBox(height: 10), + Text( + "Explorer\n", + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.black, fontSize: 13), + ) + ]), + SizedBox(width: 140), + Column(children: [ + Container( + child: ClipOval( + child: Material( + color: Color(0xffFFD58D), // button color + child: InkWell( + splashColor: Color( + 0xffD28928), // inkwell color + child: Padding( + padding: EdgeInsets.all(20), + child: Image( + image: AssetImage( + 'assets/lock.png'), + height: 50)), + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) { + return WalletsHome(); + }), + ); + }), + ), + ), + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.grey, + blurRadius: 4.0, + offset: Offset(2.0, 2.5), + spreadRadius: 0.5) + ], + ), + ), + SizedBox(height: 10), + Text( + "Gérer mes\nportefeuilles", + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.black, fontSize: 13), + ) + ]) + ])) ]), - SizedBox(width: 140), - Column(children: [ - Container( - child: ClipOval( - child: Material( - color: Color(0xffFFD58D), // button color - child: InkWell( - splashColor: Color(0xffD28928), // inkwell color - child: Padding( - padding: EdgeInsets.all(20), - child: Image( - image: AssetImage('assets/lock.png'), - height: 50)), - onTap: () { - Navigator.push( - context, - MaterialPageRoute(builder: (context) { - return WalletsHome(); - }), - ); - }), - ), - ), - decoration: BoxDecoration( - shape: BoxShape.circle, - color: Colors.white, - boxShadow: [ - BoxShadow( - color: Colors.grey, - blurRadius: 4.0, - offset: Offset(2.0, 2.5), - spreadRadius: 0.5) - ], - ), - ), - SizedBox(height: 10), - Text( - "Gérer mes\nportefeuilles", - textAlign: TextAlign.center, - style: TextStyle(color: Colors.black, fontSize: 13), - ) - ]) - ])) - ]), - // bottomNavigationBar: BottomNavigationBar( - // backgroundColor: Color(0xffFFD58D), - // fixedColor: Colors.grey[850], - // unselectedItemColor: Color(0xffBD935C), - // type: BottomNavigationBarType.fixed, - // onTap: (index) { - // _homeProvider.currentIndex = index; - // }, - // currentIndex: _homeProvider.currentIndex, - // items: [ - // BottomNavigationBarItem( - // icon: Image.asset('assets/block-space-disabled.png', height: 26), - // activeIcon: Image.asset('assets/blockchain.png', height: 26), - // label: 'Explorateur', - // ), - // BottomNavigationBarItem( - // icon: Icon(Icons.lock), - // label: 'Mes portefeuilles', - // ), - // ], - // ), - )); + // bottomNavigationBar: BottomNavigationBar( + // backgroundColor: Color(0xffFFD58D), + // fixedColor: Colors.grey[850], + // unselectedItemColor: Color(0xffBD935C), + // type: BottomNavigationBarType.fixed, + // onTap: (index) { + // _homeProvider.currentIndex = index; + // }, + // currentIndex: _homeProvider.currentIndex, + // items: [ + // BottomNavigationBarItem( + // icon: Image.asset('assets/block-space-disabled.png', height: 26), + // activeIcon: Image.asset('assets/blockchain.png', height: 26), + // label: 'Explorateur', + // ), + // BottomNavigationBarItem( + // icon: Icon(Icons.lock), + // label: 'Mes portefeuilles', + // ), + // ], + // ), + ))); + } +} + +class StatefulWrapper extends StatefulWidget { + final Function onInit; + final Widget child; + const StatefulWrapper({@required this.onInit, @required this.child}); + @override + _StatefulWrapperState createState() => _StatefulWrapperState(); +} + +class _StatefulWrapperState extends State { + @override + void initState() { + if (widget.onInit != null) { + widget.onInit(); + } + super.initState(); + } + + @override + Widget build(BuildContext context) { + return widget.child; } } From 521587ccfae118388b2572524ec5dd67020ae677 Mon Sep 17 00:00:00 2001 From: poka Date: Wed, 24 Feb 2021 08:34:39 +0100 Subject: [PATCH 6/7] Setup DubpRust in home, no main any more; Improve home view elements sizes --- Makefile.toml | 2 +- lib/main.dart | 13 ------------- lib/screens/home.dart | 18 ++++++++++-------- pubspec.yaml | 2 +- 4 files changed, 12 insertions(+), 23 deletions(-) diff --git a/Makefile.toml b/Makefile.toml index c468104..df6d1a7 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -1,7 +1,7 @@ [env] CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true CARGO_MAKE_WORKSPACE_INCLUDE_MEMBERS = ["native/dubp_rs"] -ANDROID_PLATFORM_VERSION = "22" +ANDROID_PLATFORM_VERSION = "21" TARGET_OS = "unknown" RELEASE = true DEV = false diff --git a/lib/main.dart b/lib/main.dart index f84ff3b..0b3fdc6 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,4 @@ import 'dart:async'; - -import 'package:dubp/dubp.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/models/cesiumPlus.dart'; import 'package:gecko/models/changePin.dart'; @@ -87,17 +85,6 @@ class Gecko extends StatelessWidget { link: _httpLink, ), ); - try { - DubpRust.setup(); - } catch (e, stack) { - print(e); - if (kReleaseMode) { - Sentry.captureException( - e, - stackTrace: stack, - ); - } - } // HistoryProvider _historyProvider = Provider.of(context); // HistoryProvider('').snackNode(context); diff --git a/lib/screens/home.dart b/lib/screens/home.dart index e0c7f14..54afc88 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -1,3 +1,4 @@ +import 'package:dubp/dubp.dart'; import 'package:gecko/globals.dart'; import 'package:gecko/models/history.dart'; import 'package:gecko/models/home.dart'; @@ -111,6 +112,7 @@ class HomeScreen extends StatelessWidget { builder: (ctx) => StatefulWrapper( onInit: () { WidgetsBinding.instance.addPostFrameCallback((_) { + DubpRust.setup(); _historyStatic.snackNode(ctx); }); }, @@ -124,10 +126,10 @@ class HomeScreen extends StatelessWidget { Image( image: AssetImage('assets/icon/gecko_final.png'), - height: 180), + height: 160), ])), Padding( - padding: EdgeInsets.only(top: 15), + padding: EdgeInsets.only(top: 12), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ @@ -139,7 +141,7 @@ class HomeScreen extends StatelessWidget { ) ])), Padding( - padding: EdgeInsets.only(top: 60), + padding: EdgeInsets.only(top: 40), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ @@ -156,7 +158,7 @@ class HomeScreen extends StatelessWidget { child: Image( image: AssetImage( 'assets/qrcode-scan.png'), - height: 58)), + height: 50)), onTap: () async { await _historyProvider .scan(context); @@ -185,7 +187,7 @@ class HomeScreen extends StatelessWidget { ]) ])), Padding( - padding: EdgeInsets.only(top: 60), + padding: EdgeInsets.only(top: 40), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ @@ -203,7 +205,7 @@ class HomeScreen extends StatelessWidget { child: Image( image: AssetImage( 'assets/blockchain.png'), - height: 65)), + height: 55)), onTap: () {}), ), ), @@ -227,7 +229,7 @@ class HomeScreen extends StatelessWidget { color: Colors.black, fontSize: 13), ) ]), - SizedBox(width: 140), + SizedBox(width: 100), Column(children: [ Container( child: ClipOval( @@ -241,7 +243,7 @@ class HomeScreen extends StatelessWidget { child: Image( image: AssetImage( 'assets/lock.png'), - height: 50)), + height: 45)), onTap: () { Navigator.push( context, diff --git a/pubspec.yaml b/pubspec.yaml index ecc162e..cd6a70f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -5,7 +5,7 @@ description: A new Flutter project. # pub.dev using `pub publish`. This is preferred for private packages. publish_to: 'none' # Remove this line if you wish to publish to pub.dev -version: 0.0.1+14 +version: 0.0.1+16 environment: sdk: ">=2.7.0 <3.0.0" From 10a34c18c41dd060a5d86db957a0d8449fef71de Mon Sep 17 00:00:00 2001 From: poka Date: Wed, 24 Feb 2021 09:01:32 +0100 Subject: [PATCH 7/7] Change to v0.0.1+17 --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index cd6a70f..21961d8 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -5,7 +5,7 @@ description: A new Flutter project. # pub.dev using `pub publish`. This is preferred for private packages. publish_to: 'none' # Remove this line if you wish to publish to pub.dev -version: 0.0.1+16 +version: 0.0.1+17 environment: sdk: ">=2.7.0 <3.0.0"