diff --git a/assets/chests/secret_code.png b/assets/chests/secret_code.png
old mode 100755
new mode 100644
index 10ef999edbde1ee10c2b680667db3849947799a3..495717efc3c27a9cb9a57a017244e518cba01f92
Binary files a/assets/chests/secret_code.png and b/assets/chests/secret_code.png differ
diff --git a/assets/chests/vector.png b/assets/chests/vector.png
old mode 100755
new mode 100644
index 3fb42dba56fc072f97f8c4f62c36281a758e0237..9eb11a70397c24a644105146b15fcd2bab8470a7
Binary files a/assets/chests/vector.png and b/assets/chests/vector.png differ
diff --git a/assets/copy_key.png b/assets/copy_key.png
new file mode 100644
index 0000000000000000000000000000000000000000..8957f50508e12053f69ec383265e0a3b71494d92
Binary files /dev/null and b/assets/copy_key.png differ
diff --git a/assets/printer.png b/assets/printer.png
old mode 100755
new mode 100644
index ced5f5d0576f3f152f291dd4fb721220161033c0..aab7940cfbc6d9e7a23bd518a97ae29625ba5b72
Binary files a/assets/printer.png and b/assets/printer.png differ
diff --git a/assets/vector_white.png b/assets/vector_white.png
new file mode 100644
index 0000000000000000000000000000000000000000..347caaa90e815dde4964a9d48af0ae8eee90ec6d
Binary files /dev/null and b/assets/vector_white.png differ
diff --git a/assets/walletOptions/android-checkmark.png b/assets/walletOptions/android-checkmark.png
old mode 100755
new mode 100644
index 578859d6b12b932c7fc9668e0a5163c485ab242d..ef913f5ca47860d7dfb4bb5589ff682275883071
Binary files a/assets/walletOptions/android-checkmark.png and b/assets/walletOptions/android-checkmark.png differ
diff --git a/assets/walletOptions/camera.png b/assets/walletOptions/camera.png
old mode 100755
new mode 100644
index ce9ad0fb1edb6469fea18f112feec17b1dea9968..49fe6ba44958f2f38774b13529b2b82b906da54e
Binary files a/assets/walletOptions/camera.png and b/assets/walletOptions/camera.png differ
diff --git a/assets/walletOptions/clock.png b/assets/walletOptions/clock.png
old mode 100755
new mode 100644
index cf9a80270f311ac67d260b6be3bae8e744fb85a5..a4a684f2f9126fa416841623fce040b2759fcf67
Binary files a/assets/walletOptions/clock.png and b/assets/walletOptions/clock.png differ
diff --git a/assets/walletOptions/copy-white.png b/assets/walletOptions/copy-white.png
old mode 100755
new mode 100644
index 819e852fc49f7a8a7a519f2b9247f9aeabc66335..d085408ead44558311055d4250314e690d8e307a
Binary files a/assets/walletOptions/copy-white.png and b/assets/walletOptions/copy-white.png differ
diff --git a/assets/walletOptions/edit.png b/assets/walletOptions/edit.png
old mode 100755
new mode 100644
index a45788da6b98ff24811ebacd61d02ba9716887d4..3963753a74507d2dba0a1c6d3d741c1f284a5745
Binary files a/assets/walletOptions/edit.png and b/assets/walletOptions/edit.png differ
diff --git a/assets/walletOptions/icon_oeuil.png b/assets/walletOptions/icon_oeuil.png
old mode 100755
new mode 100644
index f707647c214f59072e8349f8bbf994aa3770b676..75c12ec985c01d131ea5ea80328ffcd115e02cca
Binary files a/assets/walletOptions/icon_oeuil.png and b/assets/walletOptions/icon_oeuil.png differ
diff --git a/assets/walletOptions/icon_oeuil_close.png b/assets/walletOptions/icon_oeuil_close.png
index 4a13e67ea0a5d9bae6eaf7f3e67d4ac6c5131406..db1dc512d666d476b3bc37ae9a5ac99aabe2401d 100644
Binary files a/assets/walletOptions/icon_oeuil_close.png and b/assets/walletOptions/icon_oeuil_close.png differ
diff --git a/assets/walletOptions/key.png b/assets/walletOptions/key.png
old mode 100755
new mode 100644
index 45c0e85ae5630256f68c58881ae717c3bd1d7049..bfabc3d6d799db5bc2de58d119059d59aa58b04e
Binary files a/assets/walletOptions/key.png and b/assets/walletOptions/key.png differ
diff --git a/assets/walletOptions/trash.png b/assets/walletOptions/trash.png
old mode 100755
new mode 100644
index 6dc972b9aaebf7ecb89d33a1dafa12d586692e89..2d008a034bf97e0244c6f4210ed4bab49c1c70ff
Binary files a/assets/walletOptions/trash.png and b/assets/walletOptions/trash.png differ
diff --git a/lib/main.dart b/lib/main.dart
index 39ed3d714b824b08c7d1bf66eaf68e1f2900c645..585f1cd395894871e1c0fd65efe52867b7e997e4 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -51,7 +51,6 @@ Future<void> main() async {
HomeProvider _homeProvider = HomeProvider();
appPath = await getApplicationDocumentsDirectory();
- await _homeProvider.createDefaultAvatar();
appVersion = await _homeProvider.getAppVersion();
prefs = await SharedPreferences.getInstance();
diff --git a/lib/models/cesium_plus.dart b/lib/models/cesium_plus.dart
index 4d2835d3fc75d1d94d3949079476a9f6a71d7865..8f872ed482eeb536fa64d29947232d090ef52e9b 100644
--- a/lib/models/cesium_plus.dart
+++ b/lib/models/cesium_plus.dart
@@ -8,7 +8,8 @@ import 'package:path_provider/path_provider.dart';
class CesiumPlusProvider with ChangeNotifier {
TextEditingController cesiumName = TextEditingController();
- bool isComplete = false;
+ Image defaultAvatar(double size) =>
+ Image.asset(('assets/icon_user.png'), height: size);
Future<List> _buildQuery(_pubkey) async {
var queryGetAvatar = json.encode({
@@ -77,27 +78,34 @@ class CesiumPlusProvider with ChangeNotifier {
return _name;
}
- Future<List> getAvatar(String _pubkey) async {
+ Future<Image> getAvatar(String _pubkey, double size) async {
List queryOptions = await _buildQuery(_pubkey);
- final response = await http.post((Uri.parse(queryOptions[0])),
- body: queryOptions[1], headers: queryOptions[2]);
- final responseJson = json.decode(response.body);
- if (responseJson['hits']['hits'].toString() == '[]') {
- return [File(appPath.path + '/default_avatar.png')];
+
+ http.Response response;
+ try {
+ response = await http.post((Uri.parse(queryOptions[0])),
+ body: queryOptions[1], headers: queryOptions[2]);
+ } catch (e) {
+ log.e(e);
}
- final bool avatarExist =
- responseJson['hits']['hits'][0]['_source'].containsKey("avatar");
- if (!avatarExist) {
- return [File(appPath.path + '/default_avatar.png')];
+ final responseJson = json.decode(response.body);
+
+ if (responseJson['hits']['hits'].toString() == '[]' ||
+ !responseJson['hits']['hits'][0]['_source'].containsKey("avatar")) {
+ return defaultAvatar(size);
}
+
final _avatar =
responseJson['hits']['hits'][0]['_source']['avatar']['_content'];
var avatarFile =
File('${(await getTemporaryDirectory()).path}/avatar_$_pubkey.png');
await avatarFile.writeAsBytes(base64.decode(_avatar));
- isComplete = true;
- return [avatarFile];
+ return Image.file(
+ avatarFile,
+ height: size,
+ fit: BoxFit.cover,
+ );
}
}
diff --git a/lib/models/history.dart b/lib/models/history.dart
index 0d6294d89233dad717df7d1c492438f086021de9..b72d22b33a46020e6cb92a9a3774c6541e370014 100644
--- a/lib/models/history.dart
+++ b/lib/models/history.dart
@@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/models/my_wallets.dart';
import 'package:gecko/models/wallet_data.dart';
-import 'package:gecko/screens/history.dart';
+import 'package:gecko/screens/wallet_view.dart';
import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:jdenticon_dart/jdenticon_dart.dart';
import 'package:permission_handler/permission_handler.dart';
@@ -81,7 +81,7 @@ class HistoryProvider with ChangeNotifier {
if (regExp.hasMatch(pubkey) == true &&
pubkey.length > 42 &&
pubkey.length < 45) {
- log.d("C'est une pubkey !!!");
+ log.d("C'est une pubkey !");
this.pubkey = pubkey;
getShortPubkey(pubkey);
@@ -101,7 +101,7 @@ class HistoryProvider with ChangeNotifier {
Navigator.push(
context,
MaterialPageRoute(builder: (context) {
- return HistoryScreen();
+ return WalletViewScreen();
}),
);
notifyListeners();
@@ -238,6 +238,7 @@ class HistoryProvider with ChangeNotifier {
snackCopyKey(context) {
const snackBar = SnackBar(
+ padding: EdgeInsets.all(20),
content:
Text("Cette clé publique a été copié dans votre presse-papier."),
duration: Duration(seconds: 2));
diff --git a/lib/models/home.dart b/lib/models/home.dart
index 66a098cbb5c242ad736a2057606db6ae0a1e210f..1d8aacb4bbe7b06ac1211b9d5a339fd8920fb0c4 100644
--- a/lib/models/home.dart
+++ b/lib/models/home.dart
@@ -100,16 +100,6 @@ class HomeProvider with ChangeNotifier {
return _endpoint;
}
- Future createDefaultAvatar() async {
- File defaultAvatar = File(appPath.path + '/default_avatar.png');
- final bool isAvatarExist = await defaultAvatar.exists();
- if (!isAvatarExist) {
- final byteData = await rootBundle.load('assets/icon_user.png');
- await defaultAvatar.writeAsBytes(byteData.buffer
- .asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));
- }
- }
-
T getRandomElement<T>(List<T> list) {
final random = Random();
var i = random.nextInt(list.length);
diff --git a/lib/screens/history.dart b/lib/screens/history.dart
index 57d275fb987e37dc096772845616a1e0db9506d8..21fe283ed840e0e47a9e78c3eb209f4403c432dd 100644
--- a/lib/screens/history.dart
+++ b/lib/screens/history.dart
@@ -1,4 +1,3 @@
-import 'dart:io';
import 'package:flutter/services.dart';
import 'package:gecko/globals.dart';
import 'package:gecko/models/cesium_plus.dart';
@@ -191,40 +190,36 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
child: FutureBuilder(
future:
_cesiumPlusProvider.getAvatar(
- _historyProvider.pubkey),
- initialData: [
- File(appPath.path +
- '/default_avatar.png')
- ],
+ _historyProvider.pubkey,
+ 55),
builder: (BuildContext context,
- AsyncSnapshot<List> _avatar) {
- // _cesiumPlusProvider.isComplete = true;
+ AsyncSnapshot<Image> _avatar) {
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);
+ ConnectionState.done ||
+ _avatar.hasError) {
+ return Stack(children: [
+ _cesiumPlusProvider
+ .defaultAvatar(55),
+ Positioned(
+ top: 8,
+ right: 0,
+ width: 12,
+ height: 12,
+ child:
+ CircularProgressIndicator(
+ strokeWidth: 1,
+ color: orangeC,
+ ),
+ ),
+ ]);
}
if (_avatar.hasData) {
- return SingleChildScrollView(
- padding:
- const EdgeInsets.all(
- 0.0),
- child: Image.file(
- _avatar.data[0],
- height: avatarsSize));
+ return ClipOval(
+ child: _avatar.data,
+ );
}
- return Image.file(
- File(appPath.path +
- '/default_avatar.png'),
- height: avatarsSize);
+ return _cesiumPlusProvider
+ .defaultAvatar(55);
}),
),
GestureDetector(
@@ -448,7 +443,8 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier {
Navigator.pop(context);
}),
),
- if (result.isLoading)
+ if (result.isLoading &&
+ _historyProvider.pageInfo['hasPreviousPage'])
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: const <Widget>[
diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart
index 1e0ca916c0271c679abd9172881d845bde807788..b3e450e0d096ccf313b24596464b02c82a1b35d9 100644
--- a/lib/screens/myWallets/wallet_options.dart
+++ b/lib/screens/myWallets/wallet_options.dart
@@ -57,357 +57,362 @@ class WalletOptions extends StatelessWidget {
log.d("Wallet options: $currentChest:${wallet.number}");
return WillPopScope(
- onWillPop: () {
- _walletOptions.isEditing = false;
- _walletOptions.isBalanceBlur = true;
- Navigator.popUntil(
- context,
- ModalRoute.withName('/mywallets'),
- );
- return Future<bool>.value(true);
- },
- child: Scaffold(
- resizeToAvoidBottomInset: false,
- appBar: AppBar(
- toolbarHeight: 60 * ratio,
- leading: IconButton(
- icon: const 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: <Widget>[
- Container(
- height: isTall ? 15 : 0,
- color: yellowC,
- ),
- Container(
- decoration: BoxDecoration(
- gradient: LinearGradient(
- begin: Alignment.topCenter,
- end: Alignment.bottomCenter,
- colors: [
- yellowC,
- const Color(0xfffafafa),
- ],
- )),
- child: Row(children: <Widget>[
- const SizedBox(width: 25),
- InkWell(
- onTap: () async {
- File newAvatar =
- await _walletOptions.changeAvatar();
- if (newAvatar != null) {
- wallet.imageFile = newAvatar;
- }
- _walletOptions.reloadBuild();
- },
- child: wallet.imageFile == null
- ? Image.asset(
- 'assets/avatars/${wallet.imageName}',
- width: 110,
- )
- : Image.file(
- wallet.imageFile,
- width: 110,
- )),
- InkWell(
- onTap: () async {
- File newAvatar =
- await _walletOptions.changeAvatar();
- if (newAvatar != null) {
- wallet.imageFile = newAvatar;
- }
- _walletOptions.reloadBuild();
- },
- child: Column(children: <Widget>[
- Image.asset(
- 'assets/walletOptions/camera.png',
- ),
- const SizedBox(height: 100)
- ])),
- Column(children: <Widget>[
- Row(children: <Widget>[
- Column(children: <Widget>[
- SizedBox(
- width: 260,
- child: TextField(
- key: const Key('walletName'),
- autofocus: false,
- focusNode: _walletOptions.walletNameFocus,
- enabled: _walletOptions.isEditing,
- controller: _walletOptions.nameController,
- maxLines: _nbrLinesName,
- textAlign: TextAlign.center,
- decoration: const 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')),
+ onWillPop: () {
+ _walletOptions.isEditing = false;
+ _walletOptions.isBalanceBlur = true;
+ Navigator.popUntil(
+ context,
+ ModalRoute.withName('/mywallets'),
+ );
+ return Future<bool>.value(true);
+ },
+ child: Scaffold(
+ resizeToAvoidBottomInset: false,
+ appBar: AppBar(
+ toolbarHeight: 60 * ratio,
+ leading: IconButton(
+ icon: const 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: <Widget>[
+ Container(
+ height: isTall ? 15 : 0,
+ color: yellowC,
+ ),
+ Container(
+ decoration: BoxDecoration(
+ gradient: LinearGradient(
+ begin: Alignment.topCenter,
+ end: Alignment.bottomCenter,
+ colors: [
+ yellowC,
+ const Color(0xfffafafa),
+ ],
+ )),
+ child: Row(children: <Widget>[
+ const SizedBox(width: 25),
+ InkWell(
+ onTap: () async {
+ File newAvatar = await _walletOptions.changeAvatar();
+ if (newAvatar != null) {
+ wallet.imageFile = newAvatar;
+ }
+ _walletOptions.reloadBuild();
+ },
+ child: wallet.imageFile == null
+ ? Image.asset(
+ 'assets/avatars/${wallet.imageName}',
+ width: 110,
+ )
+ : Image.file(
+ wallet.imageFile,
+ width: 110,
+ )),
+ InkWell(
+ onTap: () async {
+ File newAvatar = await _walletOptions.changeAvatar();
+ if (newAvatar != null) {
+ wallet.imageFile = newAvatar;
+ }
+ _walletOptions.reloadBuild();
+ },
+ child: Column(children: <Widget>[
+ Image.asset(
+ 'assets/walletOptions/camera.png',
+ ),
+ const SizedBox(height: 100)
+ ])),
+ Column(children: <Widget>[
+ Row(children: <Widget>[
+ Column(children: <Widget>[
+ SizedBox(
+ width: 260,
+ child: TextField(
+ key: const Key('walletName'),
+ autofocus: false,
+ focusNode: _walletOptions.walletNameFocus,
+ enabled: _walletOptions.isEditing,
+ controller: _walletOptions.nameController,
+ maxLines: _nbrLinesName,
+ textAlign: TextAlign.center,
+ decoration: const 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),
),
- 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());
- }
+ builder: (QueryResult result,
+ {VoidCallback refetch, FetchMore fetchMore}) {
+ if (result.hasException) {
+ return Text(result.exception.toString());
+ }
- if (result.isLoading) {
- return const Text('Loading');
- }
+ if (result.isLoading) {
+ return const 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: <Widget>[
- 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',
+ // 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: <Widget>[
+ 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))
- ]);
+ color: Colors.black)),
+ ),
+ Text(' DU',
+ style: TextStyle(
+ fontSize: isTall ? 20 : 18,
+ color: Colors.black))
+ ]);
- // Text(
- // '$wBalanceUD DU',
- // style: TextStyle(
- // fontSize: 20, color: Colors.black),
- // );
+ // Text(
+ // '$wBalanceUD DU',
+ // style: TextStyle(
+ // fontSize: 20, color: Colors.black),
+ // );
+ },
+ ),
+ const SizedBox(height: 5),
+ InkWell(
+ key: const Key('displayBalance'),
+ onTap: () {
+ _walletOptions.bluringBalance();
},
- ),
- const SizedBox(height: 5),
- InkWell(
- key: const Key('displayBalance'),
- onTap: () {
- _walletOptions.bluringBalance();
- },
- child: Image.asset(
- _walletOptions.isBalanceBlur
- ? 'assets/walletOptions/icon_oeuil.png'
- : 'assets/walletOptions/icon_oeuil_close.png',
- )),
- ]),
- const SizedBox(width: 0),
- Column(children: <Widget>[
- InkWell(
- key: const Key('renameWallet'),
- onTap: () async {
- _isNewNameValid =
- _walletOptions.editWalletName(wallet.id(),
- isCesium: false);
- await Future.delayed(
- const 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),
- )),
- const SizedBox(
- height: 60,
- )
- ])
+ child: Image.asset(
+ _walletOptions.isBalanceBlur
+ ? 'assets/walletOptions/icon_oeuil.png'
+ : 'assets/walletOptions/icon_oeuil_close.png',
+ )),
]),
+ const SizedBox(width: 0),
+ Column(children: <Widget>[
+ InkWell(
+ key: const Key('renameWallet'),
+ onTap: () async {
+ _isNewNameValid = _walletOptions.editWalletName(
+ wallet.id(),
+ isCesium: false);
+ await Future.delayed(
+ const 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),
+ )),
+ const 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)
- : const Text('-', style: TextStyle(fontSize: 20));
- }),
- SizedBox(height: 15 * ratio),
- GestureDetector(
- key: const Key('copyPubkey'),
- onTap: () {
- Clipboard.setData(
- ClipboardData(text: _walletOptions.pubkey.text));
- _walletOptions.snackCopyKey(ctx);
- },
- child: SizedBox(
- height: 50,
- child: Row(children: <Widget>[
- const SizedBox(width: 30),
- Image.asset(
- 'assets/walletOptions/key.png',
+ ]),
+ ])),
+ 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)
+ : const Text('-', style: TextStyle(fontSize: 20));
+ }),
+ SizedBox(height: 15 * ratio),
+ GestureDetector(
+ key: const Key('copyPubkey'),
+ onTap: () {
+ Clipboard.setData(
+ ClipboardData(text: _walletOptions.pubkey.text));
+ _walletOptions.snackCopyKey(ctx);
+ },
+ child: SizedBox(
+ height: 50,
+ child: Row(children: <Widget>[
+ const SizedBox(width: 30),
+ Image.asset(
+ 'assets/walletOptions/key.png',
+ ),
+ const SizedBox(width: 20),
+ Text("${shortPubkey.split(':')[0]}:",
+ style: const TextStyle(
+ fontSize: 22,
+ fontWeight: FontWeight.w800,
+ fontFamily: 'Monospace',
+ color: Colors.black)),
+ Text(shortPubkey.split(':')[1],
+ style: const TextStyle(
+ fontSize: 22,
+ fontWeight: FontWeight.w800,
+ fontFamily: 'Monospace')),
+ const SizedBox(width: 15),
+ SizedBox(
+ height: 40,
+ child: ElevatedButton(
+ style: ElevatedButton.styleFrom(
+ shape: RoundedRectangleBorder(
+ borderRadius: BorderRadius.circular(8),
),
- const SizedBox(width: 20),
- Text("${shortPubkey.split(':')[0]}:",
- style: const TextStyle(
- fontSize: 22,
- fontWeight: FontWeight.w800,
- fontFamily: 'Monospace',
- color: Colors.black)),
- Text(shortPubkey.split(':')[1],
- style: const TextStyle(
- fontSize: 22,
- fontWeight: FontWeight.w800,
- fontFamily: 'Monospace')),
- const SizedBox(width: 15),
- SizedBox(
- height: 40,
- child: ElevatedButton(
- style: ElevatedButton.styleFrom(
- shape: RoundedRectangleBorder(
- borderRadius: 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: <Widget>[
- Image.asset(
- 'assets/walletOptions/copy-white.png',
- ),
- const SizedBox(width: 7),
- Text('Copier',
- style: TextStyle(
- fontSize: 15,
- color: Colors.grey[50]))
- ]))),
- ]))),
- SizedBox(height: 10 * ratio),
- InkWell(
- key: const Key('displayHistory'),
- onTap: () {
- _historyProvider.isPubkey(ctx, _walletOptions.pubkey.text,
- goHistory: true);
- },
- child: SizedBox(
- height: 50,
+ elevation: 1,
+ primary: orangeC, // background
+ onPrimary: Colors.black, // foreground
+ ),
+ onPressed: () {
+ Clipboard.setData(
+ ClipboardData(text: _walletOptions.pubkey.text));
+ _walletOptions.snackCopyKey(ctx);
+ },
child: Row(children: <Widget>[
- const SizedBox(width: 30),
Image.asset(
- 'assets/walletOptions/clock.png',
+ 'assets/walletOptions/copy-white.png',
),
- const SizedBox(width: 22),
- const Text('Historique des transactions',
- style:
- TextStyle(fontSize: 20, color: Colors.black)),
- ]))),
- SizedBox(height: 12 * ratio),
+ const SizedBox(width: 7),
+ Text(
+ 'Copier',
+ style:
+ TextStyle(fontSize: 15, color: Colors.grey[50]),
+ )
+ ]),
+ ),
+ ),
+ ]),
+ ),
+ ),
+ SizedBox(height: 10 * ratio),
+ InkWell(
+ key: const Key('displayHistory'),
+ onTap: () {
+ _historyProvider.isPubkey(ctx, _walletOptions.pubkey.text,
+ goHistory: true);
+ },
+ child: SizedBox(
+ height: 50,
+ child: Row(children: <Widget>[
+ const SizedBox(width: 30),
+ Image.asset(
+ 'assets/walletOptions/clock.png',
+ ),
+ const SizedBox(width: 22),
+ const Text('Historique des transactions',
+ style: TextStyle(fontSize: 20, color: Colors.black)),
+ ]),
+ ),
+ ),
+ SizedBox(height: 12 * ratio),
+ InkWell(
+ key: const Key('setDefaultWallet'),
+ onTap: !_walletOptions.isDefaultWallet
+ ? () {
+ defaultWallet = wallet;
+ chestBox.get(currentChest).defaultWallet =
+ wallet.number;
+ _myWalletProvider.readAllWallets(_currentChest);
+ _myWalletProvider.rebuildWidget();
+ }
+ : null,
+ child: SizedBox(
+ height: 50,
+ child: Row(children: <Widget>[
+ const SizedBox(width: 31),
+ CircleAvatar(
+ backgroundColor: Colors
+ .grey[_walletOptions.isDefaultWallet ? 300 : 500],
+ child: Image.asset(
+ 'assets/walletOptions/android-checkmark.png',
+ ),
+ ),
+ const SizedBox(width: 22),
+ 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: const Key('setDefaultWallet'),
- onTap: !_walletOptions.isDefaultWallet
- ? () {
- defaultWallet = wallet;
- chestBox.get(currentChest).defaultWallet =
- wallet.number;
- _myWalletProvider.readAllWallets(_currentChest);
+ key: const Key('deleteWallet'),
+ onTap: !_walletOptions.isDefaultWallet
+ ? () async {
+ await _walletOptions.deleteWallet(context, wallet);
+ WidgetsBinding.instance.addPostFrameCallback((_) {
+ _myWalletProvider.listWallets =
+ _myWalletProvider.readAllWallets(_currentChest);
_myWalletProvider.rebuildWidget();
- }
- : null,
- child: SizedBox(
- height: 50,
- child: Row(children: <Widget>[
- const SizedBox(width: 31),
- CircleAvatar(
- backgroundColor: Colors.grey[
- _walletOptions.isDefaultWallet ? 300 : 500],
- child: Image.asset(
- 'assets/walletOptions/android-checkmark.png',
- )),
- const SizedBox(width: 22),
- 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: const Key('deleteWallet'),
- onTap: !_walletOptions.isDefaultWallet
- ? () async {
- await _walletOptions.deleteWallet(
- context, wallet);
- WidgetsBinding.instance.addPostFrameCallback((_) {
- _myWalletProvider.listWallets =
- _myWalletProvider
- .readAllWallets(_currentChest);
- _myWalletProvider.rebuildWidget();
- });
- }
- : null,
- child: Row(children: <Widget>[
- const SizedBox(width: 33),
- Image.asset(
- 'assets/walletOptions/trash.png',
- ),
- const SizedBox(width: 24),
- const Text('Supprimer ce portefeuille',
- style: TextStyle(
- fontSize: 20, color: Color(0xffD80000))),
- ])),
- ]),
- ),
+ });
+ }
+ : null,
+ child: Row(children: <Widget>[
+ const SizedBox(width: 33),
+ Image.asset(
+ 'assets/walletOptions/trash.png',
+ ),
+ const SizedBox(width: 24),
+ const Text('Supprimer ce portefeuille',
+ style:
+ TextStyle(fontSize: 20, color: Color(0xffD80000))),
+ ]),
+ ),
+ ]),
),
- ));
+ ),
+ ),
+ );
}
}
diff --git a/lib/screens/search_result.dart b/lib/screens/search_result.dart
index 0be63ad35b75834e9f575434dc7948996658c857..1f09f52d8358d1af4d6b2025b0a0c796a333f50a 100644
--- a/lib/screens/search_result.dart
+++ b/lib/screens/search_result.dart
@@ -1,4 +1,3 @@
-import 'dart:io';
import 'package:flutter/services.dart';
import 'package:gecko/globals.dart';
import 'package:flutter/material.dart';
@@ -20,11 +19,8 @@ class SearchResultScreen extends StatelessWidget {
HistoryProvider _historyClass =
Provider.of<HistoryProvider>(context, listen: false);
- // int nbrResult = 0;
int keyID = 0;
- const double avatarsSize = 50;
-
- // _searchProvider.searchPubkey();
+ double _avatarSize = 55;
return Scaffold(
appBar: AppBar(
@@ -37,113 +33,117 @@ class SearchResultScreen extends StatelessWidget {
body: SafeArea(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 20),
- child:
- Column(crossAxisAlignment: CrossAxisAlignment.start, children: <
- Widget>[
- const SizedBox(height: 30),
- RichText(
- text: TextSpan(
- style: TextStyle(
- fontSize: 18,
- color: Colors.grey[700],
- ),
- children: <TextSpan>[
- const TextSpan(
- text: "Résultats pour ",
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: <Widget>[
+ const SizedBox(height: 30),
+ RichText(
+ text: TextSpan(
+ style: TextStyle(
+ fontSize: 18,
+ color: Colors.grey[700],
+ ),
+ children: <TextSpan>[
+ const TextSpan(
+ text: "Résultats pour ",
+ ),
+ TextSpan(
+ text: '"${_searchProvider.searchController.text}"',
+ style: const TextStyle(fontStyle: FontStyle.italic),
+ ),
+ ],
),
- TextSpan(
- text: '"${_searchProvider.searchController.text}"',
- style: const TextStyle(fontStyle: FontStyle.italic),
- ),
- ],
- ),
- ),
- const SizedBox(height: 40),
- const Text(
- 'Dans la blockchain Ğ1',
- style: TextStyle(fontSize: 20),
- ),
- const SizedBox(height: 20),
- FutureBuilder(
- future: _searchProvider.searchBlockchain(),
- // initialData: const [],
- builder: (context, snapshot) {
- if (snapshot.connectionState == ConnectionState.done) {
- return Expanded(
- child: ListView(children: <Widget>[
- for (G1WalletsList g1Wallet in snapshot.data)
- Padding(
- padding: const EdgeInsets.symmetric(horizontal: 5),
- child: ListTile(
- key: Key('searchResult${keyID++}'),
- contentPadding: const EdgeInsets.all(5),
- leading: FutureBuilder(
- future: _cesiumPlusProvider
- .getAvatar(g1Wallet.pubkey),
- initialData: [
- File(appPath.path + '/default_avatar.png')
- ],
- builder: (BuildContext context,
- AsyncSnapshot<List> _avatar) {
- 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: const EdgeInsets.all(0.0),
- child: Image.file(_avatar.data.single,
- height: avatarsSize));
- }
- return Image.file(
- File(appPath.path +
- '/default_avatar.png'),
- height: avatarsSize);
+ ),
+ const SizedBox(height: 40),
+ const Text(
+ 'Dans la blockchain Ğ1',
+ style: TextStyle(fontSize: 20),
+ ),
+ const SizedBox(height: 20),
+ FutureBuilder(
+ future: _searchProvider.searchBlockchain(),
+ builder: (context, snapshot) {
+ if (snapshot.connectionState == ConnectionState.done) {
+ return Expanded(
+ child: ListView(children: <Widget>[
+ for (G1WalletsList g1Wallet in snapshot.data)
+ Padding(
+ padding:
+ const EdgeInsets.symmetric(horizontal: 5),
+ child: ListTile(
+ key: Key('searchResult${keyID++}'),
+ horizontalTitleGap: 40,
+ contentPadding: const EdgeInsets.all(5),
+ leading: FutureBuilder(
+ future: _cesiumPlusProvider.getAvatar(
+ g1Wallet.pubkey, _avatarSize),
+ builder: (BuildContext context,
+ AsyncSnapshot<Image> _avatar) {
+ if (_avatar.connectionState !=
+ ConnectionState.done ||
+ _avatar.hasError) {
+ return Stack(children: [
+ _cesiumPlusProvider
+ .defaultAvatar(_avatarSize),
+ Positioned(
+ top: 8,
+ right: 0,
+ width: 12,
+ height: 12,
+ child: CircularProgressIndicator(
+ strokeWidth: 1,
+ color: orangeC,
+ ),
+ ),
+ ]);
+ }
+ if (_avatar.hasData) {
+ return ClipOval(child: _avatar.data);
+ }
+ return _cesiumPlusProvider
+ .defaultAvatar(_avatarSize);
+ }),
+ title: Row(children: <Widget>[
+ Text(
+ _historyClass
+ .getShortPubkey(g1Wallet.pubkey),
+ style: const TextStyle(
+ fontSize: 18,
+ fontFamily: 'Monospace',
+ fontWeight: FontWeight.w500),
+ textAlign: TextAlign.center),
+ ]),
+ subtitle: Row(children: <Widget>[
+ Text(g1Wallet?.id?.username ?? '',
+ style: const TextStyle(
+ fontSize: 18,
+ fontWeight: FontWeight.w500),
+ textAlign: TextAlign.center),
+ ]),
+ dense: false,
+ isThreeLine: false,
+ onTap: () {
+ _historyClass.isPubkey(
+ context, g1Wallet.pubkey);
}),
- title: Text(
- _historyClass.getShortPubkey(g1Wallet.pubkey),
- style: const TextStyle(
- fontSize: 15.0, fontFamily: 'Monospace'),
- textAlign: TextAlign.center),
- subtitle: Text(g1Wallet?.id?.username ?? '',
- style: const TextStyle(fontSize: 12.0),
- textAlign: TextAlign.center),
- trailing: Text("${g1Wallet.balance} Ğ1",
- style: const TextStyle(fontSize: 14.0),
- textAlign: TextAlign.justify),
- dense: false,
- isThreeLine: false,
- onTap: () {
- _historyClass.isPubkey(
- context, g1Wallet.pubkey);
- }),
- ),
- ]),
- );
- }
- return Center(
- heightFactor: 5,
- child: CircularProgressIndicator(
- strokeWidth: 3,
- backgroundColor: yellowC,
- color: orangeC,
- ),
- );
- },
- ),
- // Text(
- // _searchProvider.searchResult.toString(),
- // )
- ]),
+ ),
+ ]),
+ );
+ }
+ return Center(
+ heightFactor: 5,
+ child: CircularProgressIndicator(
+ strokeWidth: 3,
+ backgroundColor: yellowC,
+ color: orangeC,
+ ),
+ );
+ },
+ ),
+ // Text(
+ // _searchProvider.searchResult.toString(),
+ // )
+ ]),
),
),
);
diff --git a/lib/screens/wallet_view.dart b/lib/screens/wallet_view.dart
new file mode 100644
index 0000000000000000000000000000000000000000..8d3961e44b1ddc4918a98957966c9cfc0b22ff2a
--- /dev/null
+++ b/lib/screens/wallet_view.dart
@@ -0,0 +1,228 @@
+import 'dart:ui';
+
+import 'package:flutter/services.dart';
+import 'package:gecko/globals.dart';
+import 'package:flutter/material.dart';
+import 'package:gecko/models/cesium_plus.dart';
+import 'package:gecko/models/history.dart';
+import 'package:provider/provider.dart';
+// import 'package:gecko/models/home.dart';
+// import 'package:provider/provider.dart';
+
+// ignore: must_be_immutable
+class WalletViewScreen extends StatelessWidget {
+ TextEditingController tplController = TextEditingController();
+
+ WalletViewScreen({Key key}) : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
+ HistoryProvider _historyProvider = Provider.of<HistoryProvider>(context);
+ CesiumPlusProvider _cesiumPlusProvider =
+ Provider.of<CesiumPlusProvider>(context);
+ double _avatarSize = 150;
+
+ return Scaffold(
+ appBar: AppBar(
+ elevation: 0,
+ toolbarHeight: 60 * ratio,
+ title: const SizedBox(
+ height: 22,
+ child: Text('Voir un portefeuille'),
+ )),
+ body: SafeArea(
+ child: Column(children: <Widget>[
+ Container(
+ height: isTall ? 30 : 10,
+ color: yellowC,
+ ),
+ Container(
+ decoration: BoxDecoration(
+ gradient: LinearGradient(
+ begin: Alignment.topCenter,
+ end: Alignment.bottomCenter,
+ colors: [
+ yellowC,
+ const Color(0xFFE7811A),
+ ],
+ )),
+ child: Padding(
+ padding: const EdgeInsets.symmetric(horizontal: 30),
+ child: Row(children: <Widget>[
+ Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: <Widget>[
+ GestureDetector(
+ key: const Key('copyPubkey'),
+ onTap: () {
+ Clipboard.setData(
+ ClipboardData(text: _historyProvider.pubkey));
+ _historyProvider.snackCopyKey(context);
+ },
+ child: Text(
+ _historyProvider
+ .getShortPubkey(_historyProvider.pubkey),
+ style: const TextStyle(
+ fontSize: 30,
+ fontWeight: FontWeight.w800,
+ ),
+ ),
+ ),
+ const SizedBox(height: 15),
+ FutureBuilder(
+ future: _cesiumPlusProvider
+ .getName(_historyProvider.pubkey),
+ initialData: '...',
+ builder: (context, snapshot) {
+ return SizedBox(
+ width: 230,
+ child: Text(
+ snapshot.data ?? '-',
+ style: const TextStyle(
+ fontSize: 20, color: Color(0xff814C00)),
+ ),
+ );
+ }),
+ const SizedBox(height: 30),
+ ]),
+ const Spacer(),
+ Column(children: <Widget>[
+ FutureBuilder(
+ future: _cesiumPlusProvider.getAvatar(
+ _historyProvider.pubkey, _avatarSize),
+ builder: (BuildContext context,
+ AsyncSnapshot<Image> _avatar) {
+ if (_avatar.connectionState != ConnectionState.done ||
+ _avatar.hasError) {
+ return Stack(children: [
+ ClipOval(
+ child: _cesiumPlusProvider
+ .defaultAvatar(_avatarSize),
+ ),
+ Positioned(
+ top: 16.5,
+ right: 47.5,
+ width: 55,
+ height: 55,
+ child: CircularProgressIndicator(
+ strokeWidth: 6,
+ color: orangeC,
+ ),
+ ),
+ ]);
+ }
+ if (_avatar.hasData) {
+ return ClipOval(
+ child: _avatar.data,
+ );
+ }
+ return ClipOval(
+ child:
+ _cesiumPlusProvider.defaultAvatar(_avatarSize),
+ );
+ }),
+ const SizedBox(height: 30),
+ ]),
+ ]),
+ ),
+ ),
+ SizedBox(height: isTall ? 60 : 30),
+ Row(mainAxisAlignment: MainAxisAlignment.spaceAround, children: [
+ Column(children: <Widget>[
+ SizedBox(
+ height: 120,
+ child: ClipOval(
+ child: Material(
+ color: const Color(0xffFFD58D), // button color
+ child: InkWell(
+ key: const Key('viewHistory'),
+ splashColor: orangeC, // inkwell color
+ child: const Padding(
+ padding: EdgeInsets.all(15),
+ child: Image(
+ image: AssetImage(
+ 'assets/walletOptions/clock.png'),
+ height: 90)),
+ onTap: () {
+ null;
+ }),
+ ),
+ ),
+ ),
+ const SizedBox(height: 9),
+ const Text(
+ "Voir\nl'historique",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 20, fontWeight: FontWeight.w500),
+ ),
+ ]),
+ Column(children: <Widget>[
+ SizedBox(
+ height: 120,
+ child: ClipOval(
+ child: Material(
+ color: const Color(0xffFFD58D), // button color
+ child: InkWell(
+ key: const Key('copyKey'),
+ splashColor: orangeC, // inkwell color
+ child: const Padding(
+ padding: EdgeInsets.all(20),
+ child: Image(
+ image: AssetImage('assets/copy_key.png'),
+ height: 90)),
+ onTap: () {
+ Clipboard.setData(
+ ClipboardData(text: _historyProvider.pubkey));
+ _historyProvider.snackCopyKey(context);
+ }),
+ ),
+ ),
+ ),
+ const SizedBox(height: 9),
+ const Text(
+ "Copier\nla clef",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 20, fontWeight: FontWeight.w500),
+ ),
+ ]),
+ ]),
+ const Spacer(),
+ Container(
+ height: 120,
+ decoration: BoxDecoration(
+ color: const Color(0xff7c94b6),
+ borderRadius: const BorderRadius.all(Radius.circular(100)),
+ border: Border.all(
+ color: const Color(0xFF6c4204),
+ width: 4,
+ ),
+ ),
+ child: ClipOval(
+ child: Material(
+ color: orangeC, // button color
+ child: InkWell(
+ key: const Key('pay'),
+ splashColor: yellowC, // inkwell color
+ child: const Padding(
+ padding: EdgeInsets.all(16),
+ child: Image(
+ image: AssetImage('assets/vector_white.png'),
+ )),
+ onTap: () {
+ null;
+ }),
+ ),
+ ),
+ ),
+ const SizedBox(height: 9),
+ const Text(
+ "Faire un\nvirement",
+ textAlign: TextAlign.center,
+ style: TextStyle(fontSize: 20, fontWeight: FontWeight.w500),
+ ),
+ SizedBox(height: isTall ? 100 : 50)
+ ]),
+ ));
+ }
+}
diff --git a/pubspec.yaml b/pubspec.yaml
index b8c469294aed3ea680637d6c04b45e198a9ad82a..452286235b4bf7dd25d0b83520224511708e31e0 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -5,13 +5,16 @@ description: Pay with G1.
# 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.3+7
+version: 0.0.3+8
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
+ assorted_layout_widgets: ^5.2.1
bubble: ^1.2.1
+ carousel_slider: ^4.0.0
+ confirm_dialog: ^1.0.0
crypto: ^3.0.1
dubp:
path: packages/dubp_rs
@@ -21,6 +24,7 @@ dependencies:
flutter_driver:
sdk: flutter
flutter_launcher_icons: ^0.9.2
+ flutter_lints: ^1.0.4
flutter_logs: ^2.1.4
flutter_svg: ^0.22.0
graphql_flutter: ^5.0.0
@@ -29,6 +33,7 @@ dependencies:
http: ^0.13.4
image_gallery_saver: ^1.6.9
image_picker: ^0.8.4
+ infinite_scroll_pagination: ^3.1.0
intl: ^0.17.0
jdenticon_dart: ^2.0.0
logger: ^1.1.0
@@ -38,7 +43,7 @@ dependencies:
permission_handler: 8.1.6
pin_code_fields: ^7.3.0
printing: ^5.6.0
- provider: ^6.0.0
+ provider: ^6.0.1
qrscan: ^0.3.2
responsive_builder: ^0.4.1
responsive_framework: ^0.1.4
@@ -48,16 +53,9 @@ dependencies:
super_tooltip: ^1.0.1
sync_http: ^0.3.0
test: ^1.17.10
- # test_api: ^0.4.7
- # test: ^1.19.3
truncate: ^3.0.1
unorm_dart: ^0.2.0
xml: ^5.3.0
- assorted_layout_widgets: ^5.2.1
- carousel_slider: ^4.0.0
- flutter_lints: ^1.0.4
- confirm_dialog: ^1.0.0
- infinite_scroll_pagination: ^3.1.0
flutter_icons:
android: "ic_launcher"
@@ -66,12 +64,12 @@ flutter_icons:
cupertino_icons: ^1.0.0
dev_dependencies:
+ build_runner: ^2.1.2
flutter_test:
sdk: flutter
+ hive_generator: ^1.1.1
integration_test:
sdk: flutter
- hive_generator: ^1.1.1
- build_runner: ^2.1.2
# The following section is specific to Flutter.
flutter:
diff --git a/scripts/build-apk.sh b/scripts/build-apk.sh
index 86a0ac3b6fde253f524e09a8ae3f78616fbfdca5..368a81e14220acabc0b8536c7cdbe42301485f72 100755
--- a/scripts/build-apk.sh
+++ b/scripts/build-apk.sh
@@ -20,8 +20,8 @@ if [[ $1 == "bundle" ]]; then
flutter build appbundle --release --target-platform android-arm,android-arm64 --build-name $VERSION --build-number $BUILD
else
# flutter build apk --release --split-per-abi --target-platform android-arm,android-arm64 --build-name $VERSION --build-number $BUILD
-# flutter build apk --release --split-per-abi --build-name $VERSION --build-number $BUILD
- flutter build apk --release --build-name $VERSION --build-number $BUILD
+ flutter build apk --release --split-per-abi --build-name $VERSION --build-number $BUILD
+# flutter build apk --release --build-name $VERSION --build-number $BUILD
fi
if [[ -d $HOME/Téléchargements ]]; then