HELLO PAYMENTS !!!
This commit is contained in:
parent
c5e902ba88
commit
0f88f55e04
|
@ -15,7 +15,8 @@ SharedPreferences prefs;
|
|||
String endPointGVA;
|
||||
int ramSys;
|
||||
|
||||
String cesiumPod = "https://g1.data.le-sou.org";
|
||||
// String cesiumPod = "https://g1.data.le-sou.org";
|
||||
String cesiumPod = "https://g1.data.e-is.pro";
|
||||
|
||||
// Responsive ratios
|
||||
bool isTall;
|
||||
|
|
|
@ -29,6 +29,8 @@ class HistoryProvider with ChangeNotifier {
|
|||
bool isHistoryScreen = false;
|
||||
String historySwitchButtun = "Voir l'historique";
|
||||
String rawSvg;
|
||||
TextEditingController payAmount = TextEditingController();
|
||||
TextEditingController payComment = TextEditingController();
|
||||
|
||||
Future scan(context) async {
|
||||
await Permission.camera.request();
|
||||
|
@ -48,16 +50,31 @@ class HistoryProvider with ChangeNotifier {
|
|||
return barcode;
|
||||
}
|
||||
|
||||
void pay(context, amount, comment) {
|
||||
void pay(BuildContext context, String pinCode) {
|
||||
// MyWalletsProvider _myWalletProvider = MyWalletsProvider();
|
||||
String dewif =
|
||||
File(walletsDirectory.path + '${defaultWallet.chest}/wallet.dewif')
|
||||
File(walletsDirectory.path + '/${defaultWallet.chest}/wallet.dewif')
|
||||
.readAsLinesSync()[0];
|
||||
try {
|
||||
print(defaultWallet.derivation);
|
||||
print(payAmount.text);
|
||||
print(payComment.text);
|
||||
print(dewif);
|
||||
print(endPointGVA);
|
||||
print(pinCode);
|
||||
print(pubkey);
|
||||
DubpRust.simplePaymentFromTransparentAccount(
|
||||
accountIndex: 0,
|
||||
amount: 1,
|
||||
accountIndex: defaultWallet.derivation,
|
||||
amount: double.parse(payAmount.text),
|
||||
txComment: payComment.text,
|
||||
dewif: dewif,
|
||||
gvaEndpoint: endPointGVA,
|
||||
secretCode: pinCode,
|
||||
recipient: pubkey);
|
||||
} catch (e) {
|
||||
log.e("ERROR DUBP PAYMENTS");
|
||||
log.e(e);
|
||||
}
|
||||
}
|
||||
|
||||
String isPubkey(context, pubkey, {bool goHistory}) {
|
||||
|
|
|
@ -7,6 +7,9 @@ import 'package:provider/provider.dart';
|
|||
|
||||
class MyWalletsProvider with ChangeNotifier {
|
||||
List<WalletData> listWallets = [];
|
||||
String pinCode;
|
||||
int pinLenght;
|
||||
|
||||
Future initWalletFolder() async {
|
||||
getDefaultWallet();
|
||||
|
||||
|
|
|
@ -328,9 +328,6 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
|
|||
}
|
||||
|
||||
Widget payView(context, HistoryProvider _historyProvider) {
|
||||
TextEditingController payAmount = new TextEditingController();
|
||||
TextEditingController payComment = new TextEditingController();
|
||||
|
||||
return Stack(
|
||||
clipBehavior: Clip.hardEdge,
|
||||
children: <Widget>[
|
||||
|
@ -344,7 +341,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
|
|||
Padding(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
child: TextField(
|
||||
controller: payComment,
|
||||
controller: _historyProvider.payComment,
|
||||
maxLines: 2,
|
||||
textAlign: TextAlign.center,
|
||||
decoration: InputDecoration(),
|
||||
|
@ -357,7 +354,7 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
|
|||
Padding(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
child: TextFormField(
|
||||
controller: payAmount,
|
||||
controller: _historyProvider.payAmount,
|
||||
textAlign: TextAlign.center,
|
||||
maxLines: 1,
|
||||
keyboardType: TextInputType.number,
|
||||
|
@ -378,7 +375,8 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
|
|||
// _historyProvider.pay(payAmount.text, payComment.text);
|
||||
Navigator.push(context,
|
||||
MaterialPageRoute(builder: (context) {
|
||||
return UnlockingWallet(wallet: defaultWallet);
|
||||
return UnlockingWallet(
|
||||
wallet: defaultWallet, action: "pay");
|
||||
}));
|
||||
},
|
||||
child: Padding(
|
||||
|
|
|
@ -4,6 +4,7 @@ import 'package:gecko/models/history.dart';
|
|||
import 'package:gecko/models/home.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/models/myWallets.dart';
|
||||
import 'package:gecko/screens/myWallets/unlockingWallet.dart';
|
||||
import 'package:gecko/screens/onBoarding/0_noKeychainFound.dart';
|
||||
import 'dart:ui';
|
||||
import 'package:gecko/screens/settings.dart';
|
||||
|
@ -270,8 +271,17 @@ class HomeScreen extends StatelessWidget {
|
|||
height: 57)),
|
||||
onTap: () {
|
||||
isWalletsExists
|
||||
? Navigator.pushNamed(
|
||||
context, '/mywallets')
|
||||
? Navigator.push(context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) {
|
||||
return UnlockingWallet(
|
||||
wallet: defaultWallet,
|
||||
action: "mywallets",
|
||||
);
|
||||
}))
|
||||
|
||||
// Navigator.pushNamed(
|
||||
// context, '/mywallets')
|
||||
: Navigator.push(context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) {
|
||||
|
|
|
@ -2,22 +2,21 @@ import 'dart:async';
|
|||
|
||||
import 'package:dubp/dubp.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/models/history.dart';
|
||||
import 'package:gecko/models/myWallets.dart';
|
||||
import 'package:gecko/models/walletOptions.dart';
|
||||
import 'package:gecko/screens/commonElements.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/screens/myWallets/walletOptions.dart';
|
||||
import 'package:pin_code_fields/pin_code_fields.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
||||
// ignore: must_be_immutable
|
||||
class UnlockingWallet extends StatelessWidget {
|
||||
UnlockingWallet({
|
||||
Key keyUnlockWallet,
|
||||
@required this.wallet,
|
||||
}) : super(key: keyUnlockWallet);
|
||||
UnlockingWallet(
|
||||
{Key keyUnlockWallet, @required this.wallet, @required this.action})
|
||||
: super(key: keyUnlockWallet);
|
||||
WalletData wallet;
|
||||
String action;
|
||||
|
||||
// ignore: close_sinks
|
||||
StreamController<ErrorAnimationType> errorController;
|
||||
|
@ -76,6 +75,9 @@ class UnlockingWallet extends StatelessWidget {
|
|||
TextEditingController _enterPin = TextEditingController();
|
||||
WalletOptionsProvider _walletOptions =
|
||||
Provider.of<WalletOptionsProvider>(context);
|
||||
MyWalletsProvider _myWalletProvider =
|
||||
Provider.of<MyWalletsProvider>(context);
|
||||
HistoryProvider _historyProvider = Provider.of<HistoryProvider>(context);
|
||||
|
||||
return Form(
|
||||
key: formKey,
|
||||
|
@ -127,6 +129,9 @@ class UnlockingWallet extends StatelessWidget {
|
|||
log.d("Completed");
|
||||
final resultWallet = await _walletOptions.readLocalWallet(
|
||||
context, this.wallet, _pin.toUpperCase(), _pinLenght);
|
||||
// _myWalletProvider.pinCode = _pin.toUpperCase();
|
||||
_myWalletProvider.pinLenght = _pinLenght;
|
||||
|
||||
if (resultWallet == 'bad') {
|
||||
errorController.add(ErrorAnimationType
|
||||
.shake); // Triggering error shake animation
|
||||
|
@ -136,12 +141,12 @@ class UnlockingWallet extends StatelessWidget {
|
|||
} else {
|
||||
pinColor = Colors.green[400];
|
||||
// await Future.delayed(Duration(milliseconds: 50));
|
||||
Navigator.push(
|
||||
formKey.currentContext,
|
||||
SmoothTransition(
|
||||
page: WalletOptions(
|
||||
wallet: wallet,
|
||||
)));
|
||||
if (action == "mywallets") {
|
||||
Navigator.pushNamed(formKey.currentContext, '/mywallets');
|
||||
} else if (action == "pay") {
|
||||
print("Go payments");
|
||||
_historyProvider.pay(context, _pin.toUpperCase());
|
||||
}
|
||||
}
|
||||
},
|
||||
onChanged: (value) {
|
||||
|
|
|
@ -7,7 +7,6 @@ import 'package:gecko/models/myWallets.dart';
|
|||
import 'package:gecko/models/queries.dart';
|
||||
import 'package:gecko/models/walletOptions.dart';
|
||||
import 'package:graphql_flutter/graphql_flutter.dart';
|
||||
import 'dart:async';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
|
@ -62,9 +61,8 @@ class WalletOptions extends StatelessWidget {
|
|||
_walletOptions.isBalanceBlur = true;
|
||||
Navigator.popUntil(
|
||||
context,
|
||||
ModalRoute.withName('/'),
|
||||
ModalRoute.withName('/mywallets'),
|
||||
);
|
||||
Navigator.pushNamed(context, '/mywallets');
|
||||
return Future<bool>.value(true);
|
||||
},
|
||||
child: Scaffold(
|
||||
|
@ -77,9 +75,8 @@ class WalletOptions extends StatelessWidget {
|
|||
_walletOptions.isBalanceBlur = true;
|
||||
Navigator.popUntil(
|
||||
context,
|
||||
ModalRoute.withName('/'),
|
||||
ModalRoute.withName('/mywallets'),
|
||||
);
|
||||
Navigator.pushNamed(context, '/mywallets');
|
||||
}),
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
|
@ -405,7 +402,7 @@ class WalletOptions extends StatelessWidget {
|
|||
])),
|
||||
]),
|
||||
),
|
||||
)),
|
||||
);
|
||||
),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,8 @@ import 'package:gecko/globals.dart';
|
|||
import 'package:gecko/models/myWallets.dart';
|
||||
import 'package:gecko/models/walletOptions.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/screens/myWallets/unlockingWallet.dart';
|
||||
import 'package:gecko/screens/commonElements.dart';
|
||||
import 'package:gecko/screens/myWallets/walletOptions.dart';
|
||||
import 'package:gecko/screens/onBoarding/0_noKeychainFound.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
|
@ -33,8 +34,24 @@ class WalletsHome extends StatelessWidget {
|
|||
myWalletProvider.getDefaultWallet();
|
||||
}
|
||||
|
||||
return Scaffold(
|
||||
return WillPopScope(
|
||||
onWillPop: () {
|
||||
Navigator.popUntil(
|
||||
context,
|
||||
ModalRoute.withName('/'),
|
||||
);
|
||||
return Future<bool>.value(true);
|
||||
},
|
||||
child: Scaffold(
|
||||
appBar: AppBar(
|
||||
leading: IconButton(
|
||||
icon: Icon(Icons.arrow_back, color: Colors.black),
|
||||
onPressed: () {
|
||||
Navigator.popUntil(
|
||||
context,
|
||||
ModalRoute.withName('/'),
|
||||
);
|
||||
}),
|
||||
title: Text('Mes portefeuilles',
|
||||
style: TextStyle(color: Colors.grey[850])),
|
||||
backgroundColor: Color(0xffFFD58D),
|
||||
|
@ -63,12 +80,14 @@ class WalletsHome extends StatelessWidget {
|
|||
body: SafeArea(
|
||||
child: !isWalletsExists
|
||||
? NoKeyChainScreen()
|
||||
: myWalletsTiles(context)));
|
||||
: myWalletsTiles(context))));
|
||||
}
|
||||
|
||||
Widget myWalletsTiles(BuildContext context) {
|
||||
MyWalletsProvider _myWalletProvider =
|
||||
Provider.of<MyWalletsProvider>(context);
|
||||
WalletOptionsProvider _walletOptions =
|
||||
Provider.of<WalletOptionsProvider>(context);
|
||||
|
||||
final bool isWalletsExists = _myWalletProvider.checkIfWalletExist();
|
||||
|
||||
|
@ -99,11 +118,23 @@ class WalletsHome extends StatelessWidget {
|
|||
Padding(
|
||||
padding: EdgeInsets.all(16),
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
Navigator.push(context,
|
||||
MaterialPageRoute(builder: (context) {
|
||||
return UnlockingWallet(wallet: _repository);
|
||||
}));
|
||||
onTap: () async {
|
||||
await _walletOptions.readLocalWallet(
|
||||
context,
|
||||
_repository,
|
||||
_myWalletProvider.pinCode,
|
||||
_myWalletProvider.pinLenght);
|
||||
Navigator.push(
|
||||
context,
|
||||
SmoothTransition(
|
||||
page: WalletOptions(
|
||||
wallet: _repository,
|
||||
)));
|
||||
|
||||
// Navigator.push(context,
|
||||
// MaterialPageRoute(builder: (context) {
|
||||
// return UnlockingWallet(wallet: _repository);
|
||||
// }));
|
||||
},
|
||||
child: ClipRRect(
|
||||
borderRadius: BorderRadius.all(Radius.circular(12)),
|
||||
|
@ -150,10 +181,12 @@ class WalletsHome extends StatelessWidget {
|
|||
: Colors.black)))),
|
||||
// dense: true,
|
||||
onTap: () {
|
||||
Navigator.push(context,
|
||||
MaterialPageRoute(builder: (context) {
|
||||
return UnlockingWallet(wallet: _repository);
|
||||
}));
|
||||
Navigator.push(
|
||||
context,
|
||||
SmoothTransition(
|
||||
page: WalletOptions(
|
||||
wallet: _repository,
|
||||
)));
|
||||
},
|
||||
)
|
||||
]))))
|
||||
|
|
Loading…
Reference in New Issue