Add debug for history Query state

This commit is contained in:
poka 2021-02-07 02:59:48 +01:00
parent d80b1190ae
commit 4d9730739c
3 changed files with 173 additions and 150 deletions

View File

@ -11,10 +11,11 @@ import 'package:intl/intl.dart';
class HistoryProvider with ChangeNotifier { class HistoryProvider with ChangeNotifier {
String pubkey = ''; String pubkey = '';
HistoryProvider(this.pubkey); HistoryProvider(this.pubkey);
final TextEditingController outputPubkey = new TextEditingController(); final TextEditingController outputPubkey = TextEditingController();
bool isTheEnd = false; bool isTheEnd = false;
List transBC; List transBC;
bool isFirstBuild = true; bool isFirstBuild = true;
String fetchMoreCursor;
Future scan() async { Future scan() async {
await Permission.camera.request(); await Permission.camera.request();
@ -131,7 +132,9 @@ class HistoryProvider with ChangeNotifier {
final Map pageInfo = result.data['txsHistoryBc']['both']['pageInfo']; final Map pageInfo = result.data['txsHistoryBc']['both']['pageInfo'];
final String fetchMoreCursor = pageInfo['endCursor']; fetchMoreCursor = pageInfo['endCursor'];
print(pageInfo['hasPreviousPage']);
print(pageInfo['hasNextPage']);
if (fetchMoreCursor != null) { if (fetchMoreCursor != null) {
opts = FetchMoreOptions( opts = FetchMoreOptions(

View File

@ -90,6 +90,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
CesiumPlusProvider _cesiumPlusProvider = CesiumPlusProvider _cesiumPlusProvider =
Provider.of<CesiumPlusProvider>(context); Provider.of<CesiumPlusProvider>(context);
print("I'M HERE 1"); print("I'M HERE 1");
bool _isFirstExec = true;
return Expanded( return Expanded(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
@ -105,8 +106,8 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
}, },
), ),
builder: (QueryResult result, {fetchMore, refetch}) { builder: (QueryResult result, {fetchMore, refetch}) {
print("I'M HERE 2 !"); print("I'M HERE 2 ! $_isFirstExec");
print(result.source.isEager); // print(result.source.isEager);
if (result.isLoading && result.data == null) { if (result.isLoading && result.data == null) {
print("I'M HERE 3 !"); print("I'M HERE 3 !");
@ -136,6 +137,8 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
opts = _historyProvider.checkQueryResult( opts = _historyProvider.checkQueryResult(
result, opts, _outputPubkey.text); result, opts, _outputPubkey.text);
// _historyProvider.transBC = null;
// Build history list // Build history list
return NotificationListener( return NotificationListener(
child: Expanded( child: Expanded(
@ -149,45 +152,48 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
Container( if (_isFirstExec)
padding: const EdgeInsets.only(left: 30), Container(
child: FutureBuilder( padding: const EdgeInsets.only(left: 30),
future: _cesiumPlusProvider child: FutureBuilder(
.getAvatar(_historyProvider.pubkey), future: _cesiumPlusProvider
initialData: [ .getAvatar(_historyProvider.pubkey),
File(appPath.path + '/default_avatar.png') initialData: [
], File(appPath.path +
builder: (BuildContext context, '/default_avatar.png')
AsyncSnapshot<List> _avatar) { ],
cesiumData = _avatar.data; builder: (BuildContext context,
// _cesiumPlusProvider.isComplete = true; AsyncSnapshot<List> _avatar) {
if (_avatar.connectionState != cesiumData = _avatar.data;
ConnectionState.done) { // _cesiumPlusProvider.isComplete = true;
if (_avatar.connectionState !=
ConnectionState.done) {
return Image.file(
File(appPath.path +
'/default_avatar.png'),
height: 65);
}
if (_avatar.hasError) {
return Image.file(
File(appPath.path +
'/default_avatar.png'),
height: 65);
}
if (_avatar.hasData) {
return SingleChildScrollView(
padding: EdgeInsets.all(0.0),
child: Image.file(_avatar.data[0],
height: 65));
}
return Image.file( return Image.file(
File(appPath.path + File(appPath.path +
'/default_avatar.png'), '/default_avatar.png'),
height: 65); height: 65);
} })),
if (_avatar.hasError) { if (_isFirstExec)
return Image.file( Text(balance.toString() + ' Ğ1',
File(appPath.path + textAlign: TextAlign.center,
'/default_avatar.png'), style: TextStyle(fontSize: 30.0)),
height: 65);
}
if (_avatar.hasData) {
return SingleChildScrollView(
padding: EdgeInsets.all(0.0),
child: Image.file(_avatar.data[0],
height: 65));
}
return Image.file(
File(appPath.path +
'/default_avatar.png'),
height: 65);
})),
Text(balance.toString() + ' Ğ1',
textAlign: TextAlign.center,
style: TextStyle(fontSize: 30.0)),
Container( Container(
padding: const EdgeInsets.fromLTRB( padding: const EdgeInsets.fromLTRB(
30, 0, 15, 0), // .only(right: 15), 30, 0, 15, 0), // .only(right: 15),
@ -204,20 +210,21 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
color: Color(0xFFB16E16))) color: Color(0xFFB16E16)))
]), ]),
SizedBox(height: 10), SizedBox(height: 10),
Row( if (_isFirstExec)
mainAxisAlignment: MainAxisAlignment.spaceAround, Row(
crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [ crossAxisAlignment: CrossAxisAlignment.center,
Container( children: [
// padding: const EdgeInsets., Container(
child: FutureBuilder( // padding: const EdgeInsets.,
future: _cesiumPlusProvider child: FutureBuilder(
.getName(_historyProvider.pubkey), future: _cesiumPlusProvider
initialData: '', .getName(_historyProvider.pubkey),
builder: (context, snapshot) { initialData: '',
return Text(snapshot.data); builder: (context, snapshot) {
})) return Text(snapshot.data);
]), }))
]),
SizedBox(height: 20), SizedBox(height: 20),
const Divider( const Divider(
color: Colors.grey, color: Colors.grey,

View File

@ -1,4 +1,6 @@
import 'package:flutter/services.dart';
import 'package:gecko/models/generateWallets.dart'; import 'package:gecko/models/generateWallets.dart';
import 'package:gecko/models/walletOptions.dart';
import 'package:gecko/screens/myWallets/confirmWalletStorage.dart'; import 'package:gecko/screens/myWallets/confirmWalletStorage.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:printing/printing.dart'; import 'package:printing/printing.dart';
@ -21,6 +23,8 @@ class GenerateWalletsScreen extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
GenerateWalletsProvider _generateWalletProvider = GenerateWalletsProvider _generateWalletProvider =
Provider.of<GenerateWalletsProvider>(context); Provider.of<GenerateWalletsProvider>(context);
WalletOptionsProvider _walletOptions =
Provider.of<WalletOptionsProvider>(context);
_generateWalletProvider.generateMnemonic(); _generateWalletProvider.generateMnemonic();
print('IS GENERATED ? : ' + print('IS GENERATED ? : ' +
_generateWalletProvider.walletIsGenerated.toString()); _generateWalletProvider.walletIsGenerated.toString());
@ -45,103 +49,112 @@ class GenerateWalletsScreen extends StatelessWidget {
backgroundColor: Color( backgroundColor: Color(
0xffEFEFBF), //Color(0xffFFD68E), //Color.fromARGB(500, 204, 255, 255), 0xffEFEFBF), //Color(0xffFFD68E), //Color.fromARGB(500, 204, 255, 255),
))), ))),
body: SafeArea( body: Builder(
child: Column(children: <Widget>[ builder: (ctx) => SafeArea(
SizedBox(height: 20), child: Column(children: <Widget>[
toolTips(_toolTipPubkey, 'Clé publique:', SizedBox(height: 20),
"C'est votre RIB en Ğ1, les gens l'utiliseront pour vous payer"), toolTips(_toolTipPubkey, 'Clé publique:',
TextField( "C'est votre RIB en Ğ1, les gens l'utiliseront pour vous payer"),
enabled: false, GestureDetector(
controller: _generateWalletProvider.pubkey, onTap: () {
maxLines: 1, Clipboard.setData(ClipboardData(
textAlign: TextAlign.center, text: _generateWalletProvider.pubkey.text));
decoration: InputDecoration(), _walletOptions.snackCopyKey(ctx);
style: TextStyle( },
fontSize: 14.0, child: TextField(
color: Colors.black, enabled: false,
fontWeight: FontWeight.bold, controller: _generateWalletProvider.pubkey,
fontFamily: 'Monospace')), maxLines: 1,
SizedBox(height: 8), textAlign: TextAlign.center,
toolTips(_toolTipSentence, 'Phrase de restauration:', decoration: InputDecoration(),
"Notez et gardez cette phrase précieusement sur un papier, elle vous servira à restaurer votre portefeuille sur un autre appareil"), style: TextStyle(
TextField( fontSize: 14.0,
enabled: false, color: Colors.black,
controller: _generateWalletProvider.mnemonicController, fontWeight: FontWeight.bold,
maxLines: 3, fontFamily: 'Monospace'))),
textAlign: TextAlign.center, SizedBox(height: 8),
decoration: InputDecoration( toolTips(_toolTipSentence, 'Phrase de restauration:',
contentPadding: EdgeInsets.all(15.0), "Notez et gardez cette phrase précieusement sur un papier, elle vous servira à restaurer votre portefeuille sur un autre appareil"),
), TextField(
style: TextStyle( enabled: false,
fontSize: 22.0, controller: _generateWalletProvider.mnemonicController,
color: Colors.black, maxLines: 3,
fontWeight: FontWeight.w400)), textAlign: TextAlign.center,
SizedBox(height: 8), decoration: InputDecoration(
toolTips(_toolTipSecret, 'Code secret:', contentPadding: EdgeInsets.all(15.0),
"Retenez bien votre code secret, il vous sera demandé à chaque paiement, ainsi que pour configurer votre portefeuille"), ),
Container( style: TextStyle(
child: Stack( fontSize: 22.0,
alignment: Alignment.centerRight, color: Colors.black,
children: <Widget>[ fontWeight: FontWeight.w400)),
TextField( SizedBox(height: 8),
enabled: false, toolTips(_toolTipSecret, 'Code secret:',
controller: _generateWalletProvider.pin, "Retenez bien votre code secret, il vous sera demandé à chaque paiement, ainsi que pour configurer votre portefeuille"),
maxLines: 1, Container(
textAlign: TextAlign.center, child: Stack(
decoration: InputDecoration(), alignment: Alignment.centerRight,
style: TextStyle( children: <Widget>[
fontSize: 30.0, TextField(
color: Colors.black, enabled: false,
fontWeight: FontWeight.bold)), controller: _generateWalletProvider.pin,
IconButton( maxLines: 1,
icon: Icon(Icons.replay), textAlign: TextAlign.center,
color: Color(0xffD28928), decoration: InputDecoration(),
onPressed: () { style: TextStyle(
_generateWalletProvider.changePinCode(); fontSize: 30.0,
}, color: Colors.black,
), fontWeight: FontWeight.bold)),
], IconButton(
), icon: Icon(Icons.replay),
), color: Color(0xffD28928),
SizedBox(height: 20), onPressed: () {
new ElevatedButton( _generateWalletProvider.changePinCode();
style: ElevatedButton.styleFrom( },
primary: Color(0xffFFD68E), // background ),
onPrimary: Colors.black, // foreground ],
), ),
onPressed: _generateWalletProvider.walletIsGenerated ),
? () { SizedBox(height: 20),
_generateWalletProvider.nbrWord = new ElevatedButton(
_generateWalletProvider.getRandomInt(); style: ElevatedButton.styleFrom(
Navigator.push( primary: Color(0xffFFD68E), // background
context, onPrimary: Colors.black, // foreground
MaterialPageRoute(builder: (context) { ),
return ConfirmStoreWallet( onPressed: _generateWalletProvider.walletIsGenerated
generatedMnemonic: ? () {
_generateWalletProvider.generatedMnemonic, _generateWalletProvider.nbrWord =
generatedWallet: _generateWalletProvider.getRandomInt();
_generateWalletProvider.actualWallet); Navigator.push(
}), context,
); MaterialPageRoute(builder: (context) {
} return ConfirmStoreWallet(
: null, generatedMnemonic:
child: Text('Enregistrer ce portefeuille', _generateWalletProvider
style: TextStyle(fontSize: 20))), .generatedMnemonic,
SizedBox(height: 20), generatedWallet: _generateWalletProvider
GestureDetector( .actualWallet);
onTap: () { }),
Navigator.push( );
context, }
MaterialPageRoute(builder: (context) { : null,
return PrintWallet( child: Text('Enregistrer ce portefeuille',
_generateWalletProvider.generatedMnemonic, style: TextStyle(fontSize: 20))),
_generateWalletProvider.actualWallet.publicKey); SizedBox(height: 20),
}), GestureDetector(
); onTap: () {
}, Navigator.push(
child: Icon(Icons.print)) context,
]), MaterialPageRoute(builder: (context) {
)); return PrintWallet(
_generateWalletProvider.generatedMnemonic,
_generateWalletProvider
.actualWallet.publicKey);
}),
);
},
child: Icon(Icons.print))
]),
)));
} }
Widget toolTips(_key, _text, _message) { Widget toolTips(_key, _text, _message) {