From 44eaee89a7340d8915c88adc96b54804bc3b84db Mon Sep 17 00:00:00 2001 From: poka Date: Sun, 14 Nov 2021 04:33:59 +0100 Subject: [PATCH] WIP: Make Cesium great again --- assets/chests/cesium.png | Bin 0 -> 58365 bytes lib/models/chestData.dart | 11 +- lib/models/chestData.g.dart | 7 +- lib/models/generateWallets.dart | 27 +- lib/models/myWallets.dart | 8 +- .../myWallets/cesiumWalletOptions.dart | 398 ++++++++++++++++++ lib/screens/myWallets/importWallet.dart | 11 +- lib/screens/myWallets/walletsHome.dart | 28 +- 8 files changed, 461 insertions(+), 29 deletions(-) create mode 100755 assets/chests/cesium.png create mode 100644 lib/screens/myWallets/cesiumWalletOptions.dart diff --git a/assets/chests/cesium.png b/assets/chests/cesium.png new file mode 100755 index 0000000000000000000000000000000000000000..f3028ac11102429529d34d733f145b7a8827be79 GIT binary patch literal 58365 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 z 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 HZyEkS@sp)G literal 0 HcmV?d00001 diff --git a/lib/models/chestData.dart b/lib/models/chestData.dart index fcacb10..a053289 100644 --- a/lib/models/chestData.dart +++ b/lib/models/chestData.dart @@ -16,7 +16,16 @@ class ChestData extends HiveObject { @HiveField(4) String imageName; - ChestData({this.dewif, this.name, this.defaultWallet, this.imageName}); + @HiveField(5) + bool isCesium; + + ChestData({ + this.dewif, + this.name, + this.defaultWallet, + this.imageName, + this.isCesium, + }); @override String toString() { diff --git a/lib/models/chestData.g.dart b/lib/models/chestData.g.dart index b6fee4c..9beaa42 100644 --- a/lib/models/chestData.g.dart +++ b/lib/models/chestData.g.dart @@ -21,13 +21,14 @@ class ChestDataAdapter extends TypeAdapter { name: fields[2] as String, defaultWallet: fields[3] as int, imageName: fields[4] as String, + isCesium: fields[5] as bool, ); } @override void write(BinaryWriter writer, ChestData obj) { writer - ..writeByte(4) + ..writeByte(5) ..writeByte(0) ..write(obj.dewif) ..writeByte(2) @@ -35,7 +36,9 @@ class ChestDataAdapter extends TypeAdapter { ..writeByte(3) ..write(obj.defaultWallet) ..writeByte(4) - ..write(obj.imageName); + ..write(obj.imageName) + ..writeByte(5) + ..write(obj.isCesium); } @override diff --git a/lib/models/generateWallets.dart b/lib/models/generateWallets.dart index 43718de..d74666f 100644 --- a/lib/models/generateWallets.dart +++ b/lib/models/generateWallets.dart @@ -57,13 +57,14 @@ class GenerateWalletsProvider with ChangeNotifier { } walletBox.add(myWallet); ChestData thisChest = ChestData( - dewif: _wallet.dewif, - name: chestName, - defaultWallet: 0, - imageName: '${chestNumber % 8}.png'); + dewif: _wallet.dewif, + name: chestName, + defaultWallet: 0, + imageName: '${chestNumber % 8}.png', + isCesium: false, + ); chestBox.add(thisChest); configBox.put('currentChest', chestNumber); - // walletBox.get(1) } void checkAskedWord(String inputWord, String _mnemo) { @@ -221,13 +222,15 @@ class GenerateWalletsProvider with ChangeNotifier { log.d(_walletPubkey); } - Future importCesiumWallet(context, _cesiumID, _cesiumPWD) async { + Future importCesiumWallet() async { // String _walletPubkey = await DubpRust.getLegacyPublicKey( // salt: _cesiumID, password: _cesiumPWD); // String shortPubkey = truncate(_walletPubkey, 9, // omission: "...", position: TruncatePosition.end); // await storeWallet( // actualWallet, 'Portefeuille Cesium - $shortPubkey', context); + // NewWallet myCesiumWallet = await DubpRust.genWalletFromDeprecatedSaltPassword(salt: _cesiumID, password: _cesiumPWD); + cesiumID.text = ''; cesiumPWD.text = ''; cesiumPubkey.text = ''; @@ -236,6 +239,18 @@ class GenerateWalletsProvider with ChangeNotifier { pin.text = ''; isCesiumIDVisible = false; isCesiumPWDVisible = false; + + ChestData cesiumChest = ChestData( + dewif: actualWallet.dewif, + name: 'Coffre à Cesium', + imageName: 'cesium.png', + defaultWallet: 0, + isCesium: true); + + int chestNumber = chestBox.length; + chestBox.add(cesiumChest); + configBox.put('currentChest', chestNumber); + notifyListeners(); } diff --git a/lib/models/myWallets.dart b/lib/models/myWallets.dart index fb77bb8..53d0da0 100644 --- a/lib/models/myWallets.dart +++ b/lib/models/myWallets.dart @@ -18,13 +18,7 @@ class MyWalletsProvider with ChangeNotifier { } bool checkIfWalletExist() { - if (appPath == null) { - return false; - } - - final List _walletList = readAllWallets(getCurrentChest()); - - if (_walletList.isEmpty) { + if (chestBox.isEmpty) { log.i('No wallets detected'); return false; } else { diff --git a/lib/screens/myWallets/cesiumWalletOptions.dart b/lib/screens/myWallets/cesiumWalletOptions.dart new file mode 100644 index 0000000..da1b043 --- /dev/null +++ b/lib/screens/myWallets/cesiumWalletOptions.dart @@ -0,0 +1,398 @@ +import 'dart:ui'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:gecko/globals.dart'; +import 'package:gecko/models/history.dart'; +import 'package:gecko/models/myWallets.dart'; +import 'package:gecko/models/queries.dart'; +import 'package:gecko/models/walletData.dart'; +import 'package:gecko/models/walletOptions.dart'; +import 'package:graphql_flutter/graphql_flutter.dart'; +import 'package:provider/provider.dart'; +import 'package:flutter/services.dart'; + +// ignore: must_be_immutable +class CesiumWalletOptions extends StatelessWidget { + CesiumWalletOptions({Key keyMyWallets, @required this.cesiumWallet}) + : super(key: keyMyWallets); + WalletData cesiumWallet; + int _nbrLinesName = 1; + bool _isNewNameValid = false; + + @override + Widget build(BuildContext context) { + SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); + WalletOptionsProvider _walletOptions = + Provider.of(context); + MyWalletsProvider _myWalletProvider = + Provider.of(context); + HistoryProvider _historyProvider = Provider.of(context); + + final int _currentChest = _myWalletProvider.getCurrentChest(); + final String shortPubkey = + _walletOptions.getShortPubkey(_walletOptions.pubkey.text); + + if (_walletOptions.nameController.text == null || + _isNewNameValid == false) { + _walletOptions.nameController.text = cesiumWallet.name; + } else { + cesiumWallet.name = _walletOptions.nameController.text; + } + + _walletOptions.nameController.text.length >= 15 + ? _nbrLinesName = 2 + : _nbrLinesName = 1; + if (_walletOptions.nameController.text.length >= 26 && isTall) + _nbrLinesName = 3; + + _walletOptions.walletID = [0, cesiumWallet.number]; + + WalletData defaultWallet = + _myWalletProvider.getDefaultWallet(_currentChest); + + _walletOptions.isDefaultWallet = + (defaultWallet.number == _walletOptions.walletID[1]); + + int currentChest = _myWalletProvider.getCurrentChest(); + + log.d("Wallet options: $currentChest:${cesiumWallet.number}"); + + return WillPopScope( + onWillPop: () { + _walletOptions.isEditing = false; + _walletOptions.isBalanceBlur = true; + Navigator.popUntil( + context, + ModalRoute.withName('/mywallets'), + ); + return Future.value(true); + }, + child: Scaffold( + resizeToAvoidBottomInset: false, + appBar: AppBar( + leading: IconButton( + icon: Icon(Icons.arrow_back, color: Colors.black), + onPressed: () { + _walletOptions.isEditing = false; + _walletOptions.isBalanceBlur = true; + Navigator.popUntil( + context, + ModalRoute.withName('/mywallets'), + ); + }), + title: SizedBox( + height: 22, + child: Text(_walletOptions.nameController.text), + )), + body: Builder( + builder: (ctx) => SafeArea( + child: Column(children: [ + Container( + height: isTall ? 15 : 0, + color: yellowC, + ), + Container( + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + yellowC, + Color(0xfffafafa), + ], + )), + child: Row(children: [ + SizedBox(width: 25), + InkWell( + onTap: () async { + await _walletOptions.changeAvatar(); + }, + child: Image.asset( + 'assets/avatars/${cesiumWallet.imageName}', + width: 110, + )), + InkWell( + onTap: () async { + await _walletOptions.changeAvatar(); + }, + child: Column(children: [ + Image.asset( + 'assets/walletOptions/camera.png', + ), + SizedBox(height: 100) + ])), + Column(children: [ + Row(children: [ + Column(children: [ + SizedBox( + width: 260, + child: TextField( + key: Key('walletName'), + autofocus: false, + focusNode: _walletOptions.walletNameFocus, + enabled: _walletOptions.isEditing, + controller: _walletOptions.nameController, + maxLines: _nbrLinesName, + textAlign: TextAlign.center, + decoration: InputDecoration( + border: InputBorder.none, + focusedBorder: InputBorder.none, + enabledBorder: InputBorder.none, + disabledBorder: InputBorder.none, + contentPadding: EdgeInsets.all(15.0), + ), + style: TextStyle( + fontSize: isTall ? 27 : 23, + color: Colors.black, + fontWeight: FontWeight.w400, + fontFamily: 'Monospace')), + ), + SizedBox(height: isTall ? 5 : 0), + Query( + options: QueryOptions( + document: gql(getBalance), + variables: { + 'pubkey': _walletOptions.pubkey.text, + }, + // pollInterval: Duration(seconds: 1), + ), + builder: (QueryResult result, + {VoidCallback refetch, FetchMore fetchMore}) { + if (result.hasException) { + return Text(result.exception.toString()); + } + + if (result.isLoading) { + return Text('Loading'); + } + + // List repositories = result.data['viewer']['repositories']['nodes']; + String wBalanceUD; + if (result.data['balance'] == null) { + wBalanceUD = '0.0'; + } else { + int wBalanceG1 = + result.data['balance']['amount']; + int currentUD = + result.data['currentUd']['amount']; + double wBalanceUDBrut = + wBalanceG1 / currentUD; // .toString(); + wBalanceUD = double.parse( + (wBalanceUDBrut).toStringAsFixed(2)) + .toString(); + } + return Row(children: [ + ImageFiltered( + imageFilter: ImageFilter.blur( + sigmaX: _walletOptions.isBalanceBlur + ? 6 + : 0, + sigmaY: _walletOptions.isBalanceBlur + ? 5 + : 0), + child: Text('$wBalanceUD', + style: TextStyle( + fontSize: isTall ? 20 : 18, + color: Colors.black)), + ), + Text(' DU', + style: TextStyle( + fontSize: isTall ? 20 : 18, + color: Colors.black)) + ]); + + // Text( + // '$wBalanceUD DU', + // style: TextStyle( + // fontSize: 20, color: Colors.black), + // ); + }, + ), + SizedBox(height: 5), + InkWell( + key: Key('displayBalance'), + onTap: () { + _walletOptions.bluringBalance(); + }, + child: Image.asset( + _walletOptions.isBalanceBlur + ? 'assets/walletOptions/icon_oeuil.png' + : 'assets/walletOptions/icon_oeuil_close.png', + )), + ]), + SizedBox(width: 0), + Column(children: [ + InkWell( + key: Key('renameWallet'), + onTap: () async { + _isNewNameValid = _walletOptions + .editWalletName(_walletOptions.walletID); + await Future.delayed( + Duration(milliseconds: 30)); + _walletOptions.walletNameFocus.requestFocus(); + }, + child: ClipRRect( + child: Image.asset( + _walletOptions.isEditing + ? 'assets/walletOptions/android-checkmark.png' + : 'assets/walletOptions/edit.png', + width: 20, + height: 20), + )), + SizedBox( + height: 60, + ) + ]) + ]), + ]), + ])), + SizedBox(height: 4 * ratio), + FutureBuilder( + future: _walletOptions + .generateQRcode(_walletOptions.pubkey.text), + builder: (context, snapshot) { + return snapshot.data != null + ? Image.memory(snapshot.data, + height: isTall ? 300 : 270) + : Text('-', style: TextStyle(fontSize: 20)); + }), + SizedBox(height: 15 * ratio), + GestureDetector( + key: Key('copyPubkey'), + onTap: () { + Clipboard.setData( + ClipboardData(text: _walletOptions.pubkey.text)); + _walletOptions.snackCopyKey(ctx); + }, + child: SizedBox( + height: 50, + child: Row(children: [ + SizedBox(width: 30), + Image.asset( + 'assets/walletOptions/key.png', + ), + SizedBox(width: 10), + Text("${shortPubkey.split(':')[0]}:", + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.w800, + fontFamily: 'Monospace', + color: Colors.black)), + Text(shortPubkey.split(':')[1], + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.w800, + fontFamily: 'Monospace')), + SizedBox(width: 15), + SizedBox( + height: 40, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + shape: RoundedRectangleBorder( + borderRadius: + new BorderRadius.circular(8), + ), + elevation: 1, + primary: orangeC, // background + onPrimary: Colors.black, // foreground + ), + onPressed: () { + Clipboard.setData(ClipboardData( + text: _walletOptions.pubkey.text)); + _walletOptions.snackCopyKey(ctx); + }, + child: Row(children: [ + Image.asset( + 'assets/walletOptions/copy-white.png', + ), + SizedBox(width: 7), + Text('Copier', + style: TextStyle( + fontSize: 15, + color: Colors.grey[50])) + ]))), + ]))), + SizedBox(height: 10 * ratio), + InkWell( + key: Key('displayHistory'), + onTap: () { + _historyProvider.isPubkey(ctx, _walletOptions.pubkey.text, + goHistory: true); + }, + child: SizedBox( + height: 50, + child: Row(children: [ + SizedBox(width: 30), + Image.asset( + 'assets/walletOptions/clock.png', + ), + SizedBox(width: 12), + Text('Historique des transactions', + style: + TextStyle(fontSize: 20, color: Colors.black)), + ]))), + SizedBox(height: 12 * ratio), + InkWell( + key: Key('setDefaultWallet'), + onTap: !_walletOptions.isDefaultWallet + ? () { + defaultWallet = cesiumWallet; + chestBox.get(currentChest).defaultWallet = + cesiumWallet.number; + _myWalletProvider.readAllWallets(_currentChest); + _myWalletProvider.rebuildWidget(); + } + : null, + child: SizedBox( + height: 50, + child: Row(children: [ + SizedBox(width: 31), + CircleAvatar( + backgroundColor: Colors.grey[ + _walletOptions.isDefaultWallet ? 300 : 500], + child: Image.asset( + 'assets/walletOptions/android-checkmark.png', + )), + SizedBox(width: 12), + Text( + _walletOptions.isDefaultWallet + ? 'Ce portefeuille est celui par defaut' + : 'Définir comme portefeuille par défaut', + style: TextStyle( + fontSize: 20, + color: _walletOptions.isDefaultWallet + ? Colors.grey[500] + : Colors.black)), + ]))), + SizedBox(height: 17 * ratio), + if (!_walletOptions.isDefaultWallet) + InkWell( + key: Key('deleteWallet'), + onTap: !_walletOptions.isDefaultWallet + ? () async { + await _walletOptions.deleteWallet( + context, cesiumWallet); + WidgetsBinding.instance.addPostFrameCallback((_) { + _myWalletProvider.listWallets = + _myWalletProvider + .readAllWallets(_currentChest); + _myWalletProvider.rebuildWidget(); + }); + } + : null, + child: Row(children: [ + SizedBox(width: 33), + Image.asset( + 'assets/walletOptions/trash.png', + ), + SizedBox(width: 14), + Text('Supprimer ce portefeuille', + style: TextStyle( + fontSize: 20, color: Color(0xffD80000))), + ])), + ]), + ), + ), + )); + } +} diff --git a/lib/screens/myWallets/importWallet.dart b/lib/screens/myWallets/importWallet.dart index 8bdff93..d7c7b55 100644 --- a/lib/screens/myWallets/importWallet.dart +++ b/lib/screens/myWallets/importWallet.dart @@ -169,15 +169,14 @@ class ImportWalletScreen extends StatelessWidget { _generateWalletProvider.isPinChanged ? () { _generateWalletProvider - .importCesiumWallet( - context, - _generateWalletProvider - .cesiumID.text, - _generateWalletProvider - .cesiumPWD.text) + .importCesiumWallet() .then((value) { _myWalletProvider.rebuildWidget(); _generateWalletProvider.resetImportView(); + Navigator.popUntil( + context, + ModalRoute.withName('/'), + ); }); } : null, diff --git a/lib/screens/myWallets/walletsHome.dart b/lib/screens/myWallets/walletsHome.dart index cbfb7dd..350b771 100644 --- a/lib/screens/myWallets/walletsHome.dart +++ b/lib/screens/myWallets/walletsHome.dart @@ -1,5 +1,6 @@ import 'package:flutter/services.dart'; import 'package:gecko/globals.dart'; +import 'package:gecko/models/chestData.dart'; import 'package:gecko/models/myWallets.dart'; import 'package:gecko/models/queries.dart'; import 'package:gecko/models/walletData.dart'; @@ -21,11 +22,15 @@ class WalletsHome extends StatelessWidget { MyWalletsProvider myWalletProvider = Provider.of(context); - final int _currentChest = myWalletProvider.getCurrentChest(); + final int _currentChestNumber = myWalletProvider.getCurrentChest(); + final ChestData _currentChest = chestBox.get(_currentChestNumber); + bool isWalletsExists; - myWalletProvider.listWallets = - myWalletProvider.readAllWallets(_currentChest); - final bool isWalletsExists = myWalletProvider.checkIfWalletExist(); + if (!_currentChest.isCesium) { + myWalletProvider.listWallets = + myWalletProvider.readAllWallets(_currentChestNumber); + isWalletsExists = myWalletProvider.checkIfWalletExist(); + } return WillPopScope( onWillPop: () { @@ -45,18 +50,27 @@ class WalletsHome extends StatelessWidget { ModalRoute.withName('/'), ); }), - title: Text(chestBox.get(_currentChest).name, + title: Text(_currentChest.name, key: Key('myWallets'), style: TextStyle(color: Colors.grey[850])), backgroundColor: Color(0xffFFD58D), ), body: SafeArea( - child: - !isWalletsExists ? NoKeyChainScreen() : myWalletsTiles(context), + child: !isWalletsExists + ? NoKeyChainScreen() + : _currentChest.isCesium + ? cesiumWalletOptions(context) + : myWalletsTiles(context), ), ), ); } + Widget cesiumWalletOptions(BuildContext context) { + return Column(children: [ + Center(child: Text('This is a Cesium wallet')), + ]); + } + Widget chestOptions(BuildContext context) { return Column(children: [ SizedBox(height: 50),