diff --git a/lib/api.dart b/lib/api.dart index 2952d47..8a3676d 100644 --- a/lib/api.dart +++ b/lib/api.dart @@ -80,7 +80,7 @@ Future getBalance(String pubkey) async { // Get history Future getHistory(String pubkey) async { print(pubkey); - var number = 3; + var number = 20; var query = """{ txsHistoryBc( pubkeyOrScript: "$pubkey" diff --git a/lib/main.dart b/lib/main.dart index 741bd31..1c8186f 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -42,141 +42,120 @@ class _MyAppState extends State { @override Widget build(BuildContext context) { return MaterialApp( - home: Scaffold( - backgroundColor: Colors.grey[300], - body: Builder( - builder: (BuildContext context) { - return ListView( - children: [ - Container( - color: Colors.white, - child: Column( - children: [ - SizedBox(height: 20), - TextField( - // enabled: false, - onChanged: (text) { - print("Clé tappé: $text"); - isPubkey(text); - }, - controller: this._outputPubkey, - maxLines: 1, - textAlign: TextAlign.center, - decoration: InputDecoration( - hintText: - 'Tappez/Collez une clé publique, ou scannez', - hintStyle: TextStyle(fontSize: 15), - contentPadding: EdgeInsets.symmetric( - horizontal: 7, vertical: 15), - border: InputBorder.none, - focusedBorder: InputBorder.none, - enabledBorder: InputBorder.none, - errorBorder: InputBorder.none, - disabledBorder: InputBorder.none, - ), - style: TextStyle( - fontSize: 15.0, - color: Colors.black, - fontWeight: FontWeight.bold)), - TextField( - // Affichage balance - enabled: false, - controller: this._outputBalance, - maxLines: 1, - textAlign: TextAlign.center, - decoration: InputDecoration( - hintText: '', - hintStyle: TextStyle(fontSize: 15), - contentPadding: EdgeInsets.symmetric( - horizontal: 7, vertical: 15), - focusedBorder: InputBorder.none, - enabledBorder: InputBorder.none, - errorBorder: InputBorder.none, - disabledBorder: InputBorder.none, - ), - style: - TextStyle(fontSize: 30.0, color: Colors.black)), - TextField( - // Affichage history - enabled: false, - controller: this._outputHistory, - maxLines: null, - keyboardType: TextInputType.multiline, - decoration: InputDecoration( - prefixIcon: Icon(Icons.wrap_text), - hintText: '', - hintStyle: TextStyle(fontSize: 15), - contentPadding: EdgeInsets.symmetric( - horizontal: 7, vertical: 15), - focusedBorder: InputBorder.none, - enabledBorder: InputBorder.none, - errorBorder: InputBorder.none, - disabledBorder: InputBorder.none, - ), - style: TextStyle( - fontSize: 13.0, - height: 1.5, - color: Colors.black)), - SizedBox(height: 20), - this._buttonGroup(), - SizedBox(height: 70), - // Expanded( - // child: ListView.builder( - // padding: const EdgeInsets.all(8), - // itemCount: names.length, - // itemBuilder: (BuildContext context, int index) { - // return Container( - // height: 50, - // margin: EdgeInsets.all(2), - // child: Center( - // child: Text( - // '${names[index]} (${msgCount[index]})', - // style: TextStyle(fontSize: 18), - // )), - // ); - // })) - ], - ), - ), - ], - ); - }, - ) - // floatingActionButton: FloatingActionButton( - // onPressed: () => _scanBytes(), - // tooltip: 'Prennez une photo', - // child: const Icon(Icons.camera_alt), - // ), - ), - ); - } - - Widget _buttonGroup() { - return Row( - children: [ - Expanded( - flex: 1, - child: SizedBox( - height: 120, - child: InkWell( - onTap: _scan, - child: Card( - child: Column( + home: Scaffold( + backgroundColor: Colors.grey[300], + body: Builder( + builder: (BuildContext context) { + return ListView( children: [ - Expanded( - flex: 2, - child: Image.asset('images/scanner.png'), + Container( + color: Colors.white, + child: Column( + children: [ + SizedBox(height: 20), + TextField( + // enabled: false, + onChanged: (text) { + print("Clé tappé: $text"); + isPubkey(text); + }, + controller: this._outputPubkey, + maxLines: 1, + textAlign: TextAlign.center, + decoration: InputDecoration( + hintText: + 'Tappez/Collez une clé publique, ou scannez', + hintStyle: TextStyle(fontSize: 15), + contentPadding: EdgeInsets.symmetric( + horizontal: 7, vertical: 15), + border: InputBorder.none, + focusedBorder: InputBorder.none, + enabledBorder: InputBorder.none, + errorBorder: InputBorder.none, + disabledBorder: InputBorder.none, + ), + style: TextStyle( + fontSize: 15.0, + color: Colors.black, + fontWeight: FontWeight.bold)), + TextField( + // Affichage balance + enabled: false, + controller: this._outputBalance, + maxLines: 1, + textAlign: TextAlign.center, + decoration: InputDecoration( + hintText: '', + hintStyle: TextStyle(fontSize: 15), + contentPadding: EdgeInsets.symmetric( + horizontal: 7, vertical: 15), + focusedBorder: InputBorder.none, + enabledBorder: InputBorder.none, + errorBorder: InputBorder.none, + disabledBorder: InputBorder.none, + ), + style: TextStyle( + fontSize: 30.0, color: Colors.black)), + TextField( + // Affichage history + enabled: false, + controller: this._outputHistory, + maxLines: null, + keyboardType: TextInputType.multiline, + decoration: InputDecoration( + prefixIcon: Icon(Icons.wrap_text), + hintText: '', + hintStyle: TextStyle(fontSize: 15), + contentPadding: EdgeInsets.symmetric( + horizontal: 7, vertical: 15), + focusedBorder: InputBorder.none, + enabledBorder: InputBorder.none, + errorBorder: InputBorder.none, + disabledBorder: InputBorder.none, + ), + style: TextStyle( + fontSize: 13.0, + height: 1.5, + color: Colors.black)), + SizedBox(height: 20), + SizedBox(height: 70), + // Expanded( + // child: ListView.builder( + // padding: const EdgeInsets.all(8), + // itemCount: names.length, + // itemBuilder: (BuildContext context, int index) { + // return Container( + // height: 50, + // margin: EdgeInsets.all(2), + // child: Center( + // child: Text( + // '${names[index]} (${msgCount[index]})', + // style: TextStyle(fontSize: 18), + // )), + // ); + // })) + ], + ), ), - Divider(height: 20), - Expanded(flex: 1, child: Text("Scanner")), ], + ); + }, + ), + floatingActionButton: Container( + height: 80.0, + width: 80.0, + child: FittedBox( + child: FloatingActionButton( + onPressed: () => _scan(), + // label: Text('Scanner'), + child: Container( + height: 40.0, + width: 40.0, + child: Image.asset('images/scanner.png')), + backgroundColor: Color.fromARGB(500, 204, 255, 255), ), ), - ), - ), - ), - ], - ); + ))); } Future checkNode() async { @@ -188,8 +167,10 @@ class _MyAppState extends State { Future _scan() async { await Permission.camera.request(); String barcode = await scanner.scan(); - this._outputPubkey.text = ""; - isPubkey(barcode); + // this._outputPubkey.text = ""; + if (barcode != null) { + isPubkey(barcode); + } return barcode; } diff --git a/pubspec.yaml b/pubspec.yaml index 4258c7f..a6fc6c1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 1.0.0+1 +version: 0.0.0+3 environment: sdk: ">=2.7.0 <3.0.0" diff --git a/scripts/build-apk.sh b/scripts/build-apk.sh index a90bb35..7dc3af0 100755 --- a/scripts/build-apk.sh +++ b/scripts/build-apk.sh @@ -1,13 +1,18 @@ #!/bin/bash -[[ -z $1 ]] && echo "Please choose a version." && exit 1 +# [[ -z $1 ]] && echo "Please choose a version." && exit 1 -flutter build apk --split-per-abi +fVersion=$(grep "version: " pubspec.yaml | awk '{ print $2 }') APPNAME="gecko" -VERSION="$1" +VERSION=$(awk -F '+' '{ print $1 }' <<<$fVersion) +BUILD=$(awk -F '+' '{ print $2 }' <<<$fVersion) ori_app="app.apk" +echo "Nom du build final: ${APPNAME}-${VERSION}+${BUILD}.apk" + +flutter build apk --split-per-abi --build-name $VERSION --build-number $BUILD + if [[ -d $HOME/Téléchargements ]]; then DL="$HOME/Téléchargements" elif [[ -d $HOME/Downloads ]]; then @@ -16,7 +21,7 @@ else DL="/tmp" fi -appPath="$DL/${APPNAME}-${VERSION}.apk" +appPath="$DL/${APPNAME}-${VERSION}+${BUILD}.apk" mv build/app/outputs/flutter-apk/$ori_app "$appPath" && echo "$appPath" || exit 1 exit 0