From bde1028c70486f96a89e4a436e9fe6ccb43f24dc Mon Sep 17 00:00:00 2001 From: poka Date: Thu, 18 Feb 2021 04:42:57 +0100 Subject: [PATCH] Fix bugs reports in forum; change Sentry mode --- android/app/build.gradle | 1 + assets/qrcode-scan.png | Bin 0 -> 6713 bytes lib/main.dart | 96 ++++++++++++++++++++--------- lib/models/generateWallets.dart | 43 +++++++------ lib/models/history.dart | 10 +-- lib/models/home.dart | 4 ++ lib/screens/history.dart | 8 ++- lib/screens/home.dart | 7 +-- lib/screens/myWallets/generateWallets.dart | 2 + lib/screens/myWallets/importWallet.dart | 23 +------ lib/screens/myWallets/walletsHome.dart | 8 ++- pubspec.lock | 83 ++++++++++++++++++++++++- pubspec.yaml | 10 ++- 13 files changed, 203 insertions(+), 92 deletions(-) create mode 100644 assets/qrcode-scan.png diff --git a/android/app/build.gradle b/android/app/build.gradle index 0038032..c892da8 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -49,6 +49,7 @@ android { targetSdkVersion 29 versionCode flutterVersionCode.toInteger() versionName flutterVersionName + multiDexEnabled true } signingConfigs { diff --git a/assets/qrcode-scan.png b/assets/qrcode-scan.png new file mode 100644 index 0000000000000000000000000000000000000000..acd14345289f834eaf1e52ba98d4a856b954c6f6 GIT binary patch literal 6713 zcmb_h2{@GN+t--NRJPtzw4hYeb~Ix*45K2cNgcG%E@&-S_>wpT~IL=f3afo=XQT%%m5s zTqGeOA#J|f#8N^61tCg8N)mol-dX=zLSkOr0kX9z6irNw;SIsTg9qpEKaZN4nsZ8H zV`Cj1ZHTvT7kd$jdWMDsB9Uljw$sp%sH3B!tE+2dWUylgBpSh+NYvNX)+P`L(4?iM z1+l(97fRSvtEA@ zpb1`cOtInb$svGxsF@poxX;cY_Whyx0ibg3f*J_s#{U8SUY7A;!5WXTd48Cf}b`K1W5Y{e>Nl{KpC*Kgd6 z!>em(Y3u3{^o@+S@7TH1#A5$p%1NKIzWxD$!J*XX%Q3NWSFR=`Ca0vPrQJx+$jHpf zx^??r?jy#t!s6%8ODn5tTH8K+>g?+7>mOuuCnqQQe1Sk96beP6Y@?;{MNwdxn{2lZ zXdk{Iq^>fPuiik2wI@7{+Ku1rQ7*0cOZ1g<6}KXa<|%CY<<BuTi~n3!ebO{nGtVItf6)_KS6{T}1>SL`LAQZI zLiI+hTy|#urAu5(PD<1Cljf=URhu^DS|%%U9FUc2vDf!R{dUB*K;zvDY=VkftT}6; z{5np7=fIA}@t5vTq`=Pi4>l5L^K>YE25 zjofa9f%k4W|5qXxM#u2TrHaT~rn$SMx%YTLfEIg?n>nbc@h>ZD@c33R(XqHj_3 z!b+&il$#5@HMcd~EtpUVOM3uF0{6rB_)M1Y+ZN(_K6BgIW1zl9_u5p({-+nc0GDY? z`QrB?u6ON0%GYYqLsID05yJ)a^0zjWsgLX({?frW7sy^>Q-vR*8>uTlgEdG%^~x|r zUZ5Zyu>1YWnI{UWL6m#IoL*i_UH%I&U98-kzr2FFw(7+?H-1J0rbM8d0#wgOYN@GC zC=~nRBN+P7S#nuE|2-ur}5!jgUm`UiDhaGaa z^PEhWEhkV+A>kv)){ranq-Z|?$2iftTFK?4W}#C=q;;-2kJ%BrKMo`4rM?j{lHhmQ z%CHi0!g$$MoU0KSL6k@s2{yYcs35{_MCC?M9Gcvd`XYaZ(ON!D+A!Rf9TR08=iAld zjOr%v^cy*?PAW9rl7g$Op~>`&8FEQ>7ovQX4_^2;t}Q$5&K`OD$s*V!8FR0;8@z~O z7_>V~ryV%#x?`l43b;c5-3F8PZ!sfVHMeK%VP6f7V(e`<+`Lf$9fGj~^1fB94a0Y= z5u%kV%4ttv|B%=&dn;x1wg$3^ef1tlYc5;ofP6UUiW;CSj$+uQgzVd$j7b=hs$!|_ zE5qKaL%(G$mv<`EnofBPU7YN8g>*Ler=Np(a=9GT7jL`;Ii(xK{1MC+O`5ltJlA(` zd~oqwa^|Nwx?}oTdm=)=6&q1~I6hhK&!PYyHsO7CXm?dwapL2oYzOF9S8%*EZ7tb(On>Q0GqvAv3(0Hfe}bQ$OIOsY51`RwxT0raPnHI9q*6q+pcGV4rVCpp zWx`bWfRL-r7Xo7!PS3-PqkxoDFg9}uWH_{bG?@D8@(r+`9&#j#L{6<821N%b`KnO! z$nQ&c<>53CKdhAYOh=p9Jkm6wdXQDtHB%!<=t{Y(&^FUXaj(CTTX5meZ={Xp6EYSy zFN#m^}4${%9NrD|@WlnGxx0%k+n*9`i7KJuw<9nZjylZ_jk#&6(G@u`m;t%_YHL}n90 z1=ShfW5E9#A7`S)js}H=gehDVlbSxt0ZFR`3de%0WdY;V*eI33@8e$@V=54#a{Lcj z(P0%IF5Fhvj@PSrbDg3#8ck8-<3O9J2rxb-F)6}P3WPwUG`VKE_YmPu+>luop z%K+d8X>zHX5PBQGz-AiPeui>7Z;V+eW;TeKN{2+z7N1fKO1u*-{0O$I5qH-^(y77y zMRlflooqrPMoaVI#act}lY^@Cly_<8Fj^W9FTOGK4jEKcgz{w!d1qc|T-Mi;ogF^% zOX}TqYS8Un{>HvtSro$JU~JPwndF0U8HZY%51O=RlS&6}_SpW@vUo<9`R7QC5$J zD$vh^E#U5$+XcrQWU)1odM$!4uu z9eTO9)ubrH^LdPt#OlNMP?=e334LspS{dVGLIani_>KlHCbxB#})@lUMw3!|UFYox}YAM-oqKKC>!6_`WV#lcv@#>|W)J zy8YSDeX`l?PI7sa9{@7+a{6cM&y*C*tp=(DqUe+68M054)-tW)jB<&!ieY$QujqsM zWaqjw54hU(XiGLYhq+9!&@Q`^Y`l#StxI0xTb2k(dmH+sk=-{Kt|^%QYk2{ckU5m> ziYo5^wF^(X^Ocw5otPiAq(b9=iG91hmwVBTt$5G9#EWF!59%yTd$kJNWL-L9Ctm7H zaB2F%{|MBODCM0!gWda%^Eqqf1#AX${8-eL&`afN!&cKgEQ)#iv(m! z(v80>mP5aPrYLLD=tvad9|lG2KWgB&r6Y=ph~hgz9C=bvH3i7ijsGlK{)YNaqtnIx zU4xC9_yI{@12>O8uW8D>k+)L(d_30!)B3Yc)77tF!G+b9GV1j|w6Eb0~K3<0HQ3*p# z;qV8mdqcioN87_=lm=!Pg`q@x`ANRL4ct`I7!JKWCqIX7+#!hYCp#aqJw(nt7535q zi{GlY72Bjk>QzGM*Atf^uQ#}HFJf|RM@)-S#80{XpMWjLRBzVw1GIBYi;~4;?=PlB z^jYwyX;I>T0`8tml8v#YQgA=-i&=}jzNOG>+i>&#nd7Ly@2d8-Hd@;0uACr(r6F=Q)#ivHdW4!KC-U~DJvO*^YWlV%4)+HjG!*Ap2128hU% zEDT)Ni?kVHd60kl6UNETr<3DBEteAZ_6-;y z3w2+j2ftnxDDbAVS%e#TUu|Z*E@J8i5~rq^3CHXAh6tSAYMAL(p$EO=Q|$%aY2>Ga z**uLSK3=63nzUm3)2^wJphNRbTgYR_1)|BeAswU$(4+OHRO&Z4jN4aLfUY1VH}EG1=Jtlh%7!D!8VcfqYy&3XzJ5cfA1VmXb(R`WjeD z%gav11(Z{(Bt`3XjjGt{iNY~UY{d_C^cHD}IFKGgW98Hr?b2*STi|kdvi5jQpRBxs zXLxC_0#D0(IN>@%%&nx>l6wkdhZ`;pt$L0Ia9oap_SP6IFoQ*cG!D)R&9i(N?ld9o~I%ByT6vDQQ7 znaz|}8s^AAzHG-9f$lKSVuVgTs-#wun@|u9_A-xRPsXsiDz=Vx=YUonMrnA*C{=FJ zYk^QdN5JVYQWm8iMV(L~gY+>slxP(!A30fnc3X*3C4jUhZLIs~d*$VKt&9lk}MklA%08g?`ph3Rq*kk1Y4fAYhr24JiF zluo};kS8L?U&u5*R>;!kWWIMyW-2d5T%jUIVSBRwWBpY!h&z<-DQv&tKia=Y7Ua31 z;MyO*t9}`miDfVAFGoMGLElm5^td~2mmy~clb!X)Wo{BW;PY(}@H3iA!iQJ95DRs{ zGS&Yv0fYU$r?_C(R?CimzJ-++%2;oQy)xsV z(HfmumOdQ3;iCqvg?amDV^C*zm2Rq)m{H>JOYhX=m%{q^TyjA89w(JH6E_=Td@ZU$}EDm?c=BI4K>`Q z86BWbd%*K;_VH+E+kYM6Cfih9##rYv;?wuOHxe({Sf}br&h!k;?QnT*lkQ*c>ME}* zo}+D8{R0$FxXK&+Bp!E_C;dN(Uas<1*rr3`#EJYLKYu<#{8c*59XG_shkvaYgfYG< z4Mu!AB;XCOay}^ajsGxI9)}t{9*b8Usr3As)?t1kBkD8oEk`RWv2MP4dIG8}TB+|A zAOUCX!zY{-EC7o`E3)6S~~nW=FHUo z=5g>u4Xn_hJqwn9Q?NDFW11OQp9o;K>nN3)f6CQB2^4zSjc2Tdn@b_f~ks?j)36p_L6E5uc=ibs!H~D0vTI+RPLcR--38 zSnR{?N}q+@xdnx1goooXIoh_rdC9Ho8%+1>>8{SUOCdWK>z3JQ)kZOb+q0;AszNvO zUL{&t+RJElbqGA@HvnGzcwaC6lqvQx0pGHS>${IK!8VQlN_IYlPkMe~O5abUQWs5m zYuH=u943^4tpUoCHdE;n*i7vsPN&wCo%YDBcwTh7E@Joim36R*ptiDP+tSUN+vyDU zv&6I8UM4fbr-M#YFl^N{q5iD$ z85}Ckef8bDZ*I!yKL@H{c`PQruf61kQg>=Rr51=|FM(${M^ck}${w8A!&sBLK+2-h z)w%jh)!iO#;0%0ey&6UEQ9FY(%Y(KGwCbQUD(i{(6?#O&EU}kF6pI#M@xM#M7YX(q z%6~Ky%F%;!jfS~MQN9LR=88brkjVMbd(c3NwzkTz6E}3C`oW_Ipg74=iL2i?bZx@$ ze$u#QGA0DuI@bVFu*9*GHIS+M)@Gk}hB!2b;dtIgzqz6~dwr|MeZ)N_f3Sh)4Vy?b z-{RP!=&9$~LW_}sPHR_`S-ZD#;Nax-0$Vl`XYrCYk*7!LEw#nY6M<%?YJD>EKTh zm3y(PtD^YR{&i!@U9(-m3<| z0{BL&kJ&}LK_R06OD9GQuYYn5q~xndaf@@Sp~ zTVO#oSfCRS`q=XRYgR;7V6ODULM#^BPkGr?(zalx@<->JDov;6T5mBIlOFNZY14fl zKG4tZQ%qsosvvZd)33`LYe|uV#eQS+6g#QA&F5)>f-W;vr%k_%d0R@UNelzswwot| UO=3U69~>miO)X3w?QlN-U#g%2g8%>k literal 0 HcmV?d00001 diff --git a/lib/main.dart b/lib/main.dart index 700fe12..eabf207 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -12,45 +12,84 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:graphql_flutter/graphql_flutter.dart'; import 'package:provider/provider.dart'; -import 'package:sentry_flutter/sentry_flutter.dart'; import 'package:flutter/foundation.dart'; import 'package:shared_preferences/shared_preferences.dart'; +import 'package:sentry_flutter/sentry_flutter.dart'; +import 'package:catcher/catcher.dart'; + +// import 'dart:io'; +// import 'package:flutter_logs/flutter_logs.dart'; +// import 'package:downloads_path_provider/downloads_path_provider.dart'; final bool enableSentry = true; -// Future getJsonEndpoints() { -// return rootBundle.loadString('config/gva_endpoints.json'); -// } - Future main() async { - WidgetsFlutterBinding.ensureInitialized(); - HomeProvider _homeProvider = HomeProvider(); - await _homeProvider.getAppPath(); - await _homeProvider.createDefaultAvatar(); - appVersion = await _homeProvider.getAppVersion(); - prefs = await SharedPreferences.getInstance(); - final HiveStore _store = - await HiveStore.open(path: '${appPath.path}/gqlCache'); + try { + WidgetsFlutterBinding.ensureInitialized(); - // Get a valid GVA endpoint - endPointGVA = await _homeProvider.getValidEndpoint(); + // var downloadsDirectory = DownloadsPathProvider.downloadsDirectory; + // File logFile = File(downloadsDirectory.toString() + '/gecko.log'); - if (kReleaseMode && enableSentry) { - await SentryFlutter.init( - (options) { - options.dsn = - 'https://c09587b46eaa42e8b9fda28d838ed180@o496840.ingest.sentry.io/5572110'; - }, - appRunner: () => runApp(Gecko(endPointGVA, _store)), - ); - } else { - print('Debug mode enabled: No sentry alerte'); + // await FlutterLogs.initLogs( + // logLevelsEnabled: [ + // LogLevel.INFO, + // LogLevel.WARNING, + // LogLevel.ERROR, + // LogLevel.SEVERE + // ], + // timeStampFormat: TimeStampFormat.TIME_FORMAT_READABLE, + // directoryStructure: DirectoryStructure.FOR_EVENT, + // logTypesEnabled: ["Locations", "APIs"], + // logFileExtension: LogFileExtension.LOG, + // logsWriteDirectoryName: downloadsDirectory.toString(), + // logsExportDirectoryName: downloadsDirectory.toString()); - runApp(Gecko(endPointGVA, _store)); + HomeProvider _homeProvider = HomeProvider(); + await _homeProvider.getAppPath(); + await _homeProvider.createDefaultAvatar(); + appVersion = await _homeProvider.getAppVersion(); + prefs = await SharedPreferences.getInstance(); + final HiveStore _store = + await HiveStore.open(path: '${appPath.path}/gqlCache'); + + // Get a valid GVA endpoint + endPointGVA = await _homeProvider.getValidEndpoint(); + + if (kReleaseMode && enableSentry) { + CatcherOptions debugOptions = CatcherOptions(DialogReportMode(), [ + SentryHandler(SentryClient(SentryOptions( + dsn: + "https://c09587b46eaa42e8b9fda28d838ed180@o496840.ingest.sentry.io/5572110"))) + ]); + // CatcherOptions releaseOptions = CatcherOptions(NotificationReportMode(), [ + // EmailManualHandler(["poka@p2p.legal"]) + // ]); + Catcher( + rootWidget: Gecko(endPointGVA, _store), debugConfig: debugOptions); + + // await SentryFlutter.init( + // (options) { + // options.dsn = + // 'https://c09587b46eaa42e8b9fda28d838ed180@o496840.ingest.sentry.io/5572110'; + // }, + // appRunner: () => runApp(Gecko(endPointGVA, _store)), + // ); + } else { + print('Debug mode enabled: No sentry alerte'); + + runApp(Gecko(endPointGVA, _store)); + } + } catch (e, stack) { + print(e); + if (kReleaseMode) { + await Sentry.captureException( + e, + stackTrace: stack, + ); + } } } -// ignore: must_be_immutable class Gecko extends StatelessWidget { Gecko(this.randomEndpoint, this._store); final String randomEndpoint; @@ -68,8 +107,8 @@ class Gecko extends StatelessWidget { link: _httpLink, ), ); - DubpRust.setup(); + return MultiProvider( providers: [ // Provider(create: (context) => HistoryProvider()), @@ -84,6 +123,7 @@ class Gecko extends StatelessWidget { child: GraphQLProvider( client: _client, child: MaterialApp( + navigatorKey: Catcher.navigatorKey, title: 'Ğecko', theme: ThemeData( primaryColor: Color(0xffFFD58D), diff --git a/lib/models/generateWallets.dart b/lib/models/generateWallets.dart index 77f1431..d7947eb 100644 --- a/lib/models/generateWallets.dart +++ b/lib/models/generateWallets.dart @@ -7,7 +7,6 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:gecko/globals.dart'; -import 'package:sentry_flutter/sentry_flutter.dart' as sentry; import 'package:pdf/pdf.dart'; import 'package:pdf/widgets.dart' as pw; import 'package:printing/printing.dart'; @@ -81,6 +80,9 @@ class GenerateWalletsProvider with ChangeNotifier { .writeAsString('$nbrWallet:$_name:$_derivationNbr:$_pubkey'); } + print('CODE PIN :::'); + print(wallet.pin); + Navigator.pop(context, true); return _name; @@ -147,14 +149,8 @@ class GenerateWalletsProvider with ChangeNotifier { this.actualWallet = await generateWallet(this.generatedMnemonic); walletIsGenerated = true; // notifyListeners(); - } catch (e, stack) { + } catch (e) { print(e); - if (kReleaseMode) { - await sentry.Sentry.captureException( - e, - stackTrace: stack, - ); - } } // await checkIfWalletExist(); return generatedMnemonic; @@ -167,14 +163,8 @@ class GenerateWalletsProvider with ChangeNotifier { mnemonic: generatedMnemonic, secretCodeType: SecretCodeType.letters, walletType: WalletType.bip32Ed25519); - } catch (e, stack) { + } catch (e) { print(e); - if (kReleaseMode) { - await sentry.Sentry.captureException( - e, - stackTrace: stack, - ); - } } mnemonicController.text = generatedMnemonic; @@ -243,6 +233,8 @@ class GenerateWalletsProvider with ChangeNotifier { salt: _cesiumID, password: _cesiumPWD); cesiumPubkey.text = _walletPubkey; + pin.text = actualWallet.pin; + isPinChanged = true; print(_walletPubkey); } @@ -274,13 +266,24 @@ class GenerateWalletsProvider with ChangeNotifier { notifyListeners(); } - void showPinIfEmpty() { - if (!isPinChanged) { - changePinCode(reload: true); - isPinChanged = true; - } + void resetImportView() { + cesiumID.text = ''; + cesiumPWD.text = ''; + cesiumPubkey.text = ''; + pin.text = ''; + canImport = false; + isPinChanged = false; + isCesiumIDVisible = false; + isCesiumPWDVisible = false; + actualWallet = null; + notifyListeners(); } + // void makeError() { + // var tata = File(appPath.path + '/ddfhjftjfg'); + // tata.readAsLinesSync(); + // } + void reloadBuild() { notifyListeners(); } diff --git a/lib/models/history.dart b/lib/models/history.dart index da3ce26..0b6f6fb 100644 --- a/lib/models/history.dart +++ b/lib/models/history.dart @@ -3,7 +3,6 @@ import 'package:flutter/material.dart'; import 'package:gecko/globals.dart'; import 'package:graphql_flutter/graphql_flutter.dart'; import 'package:permission_handler/permission_handler.dart'; -import 'package:sentry/sentry.dart' as sentry; import 'package:qrscan/qrscan.dart' as scanner; import 'dart:math'; import 'package:intl/intl.dart'; @@ -28,14 +27,8 @@ class HistoryProvider with ChangeNotifier { String barcode; try { barcode = await scanner.scan(); - } catch (e, stack) { + } catch (e) { print(e); - if (kReleaseMode) { - await sentry.Sentry.captureException( - e, - stackTrace: stack, - ); - } return 'false'; } if (barcode != null) { @@ -63,7 +56,6 @@ class HistoryProvider with ChangeNotifier { getShortPubkey(pubkey); this.outputPubkey.text = pubkey; - print(pubkeyShort); isHistoryScreen = false; historySwitchButtun = "Voir l'historique"; diff --git a/lib/models/home.dart b/lib/models/home.dart index 9d854de..6928728 100644 --- a/lib/models/home.dart +++ b/lib/models/home.dart @@ -6,6 +6,8 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'dart:async'; import 'package:gecko/globals.dart'; +import 'package:gecko/screens/history.dart'; +import 'package:gecko/screens/myWallets/walletsHome.dart'; import 'package:package_info/package_info.dart'; import 'package:path_provider/path_provider.dart'; @@ -15,6 +17,8 @@ class HomeProvider with ChangeNotifier { Icon searchIcon = Icon(Icons.search); final TextEditingController searchQuery = new TextEditingController(); Widget appBarTitle = Text('Ğecko', style: TextStyle(color: Colors.grey[850])); + List currentTab = [HistoryScreen(), WalletsHome()]; + get currentIndex => _currentIndex; diff --git a/lib/screens/history.dart b/lib/screens/history.dart index 12c5d2b..a46980c 100644 --- a/lib/screens/history.dart +++ b/lib/screens/history.dart @@ -48,7 +48,9 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier { child: Container( height: 40.0, width: 40.0, - child: Image.asset('images/scanner.png')), + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 3), + child: Image.asset('assets/qrcode-scan.png'))), backgroundColor: Color( 0xffEFEFBF), //Color(0xffFFD68E), //Color.fromARGB(500, 204, 255, 255), ), @@ -174,7 +176,9 @@ class HistoryScreen extends StatelessWidget with ChangeNotifier { text: _historyProvider.pubkey)); _historyProvider.snackCopyKey(context); }, - child: Text(_historyProvider.pubkeyShort, + child: Text( + _historyProvider + .getShortPubkey(_historyProvider.pubkey), style: TextStyle( fontSize: 22, fontWeight: FontWeight.w800, diff --git a/lib/screens/home.dart b/lib/screens/home.dart index dc5ca63..3132443 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -1,17 +1,12 @@ import 'package:gecko/globals.dart'; import 'package:gecko/models/history.dart'; import 'package:gecko/models/home.dart'; -import 'package:gecko/screens/history.dart'; import 'package:flutter/material.dart'; import 'dart:ui'; -import 'package:gecko/screens/myWallets/walletsHome.dart'; import 'package:gecko/screens/settings.dart'; import 'package:provider/provider.dart'; -// ignore: must_be_immutable class HomeScreen extends StatelessWidget { - var currentTab = [HistoryScreen(), WalletsHome()]; - @override Widget build(BuildContext context) { HomeProvider _homeProvider = Provider.of(context); @@ -116,7 +111,7 @@ class HomeScreen extends StatelessWidget { backgroundColor: Color(0xffFFD58D), ), backgroundColor: Color(0xffF9F9F1), - body: currentTab[_homeProvider.currentIndex], + body: _homeProvider.currentTab[_homeProvider.currentIndex], bottomNavigationBar: BottomNavigationBar( backgroundColor: Color(0xffFFD58D), fixedColor: Colors.grey[850], diff --git a/lib/screens/myWallets/generateWallets.dart b/lib/screens/myWallets/generateWallets.dart index 0c16321..9b2f9fb 100644 --- a/lib/screens/myWallets/generateWallets.dart +++ b/lib/screens/myWallets/generateWallets.dart @@ -21,6 +21,8 @@ class GenerateWalletsScreen extends StatelessWidget { GenerateWalletsProvider _generateWalletProvider = Provider.of(context); _generateWalletProvider.generateMnemonic(); + + // _generateWalletProvider.makeError(); print('IS GENERATED ? : ' + _generateWalletProvider.walletIsGenerated.toString()); return Scaffold( diff --git a/lib/screens/myWallets/importWallet.dart b/lib/screens/myWallets/importWallet.dart index 2a548af..5955469 100644 --- a/lib/screens/myWallets/importWallet.dart +++ b/lib/screens/myWallets/importWallet.dart @@ -18,19 +18,9 @@ class ImportWalletScreen extends StatelessWidget { WalletOptionsProvider _walletOptions = Provider.of(context); - _generateWalletProvider.showPinIfEmpty(); - return WillPopScope( onWillPop: () { - _generateWalletProvider.cesiumID.text = ''; - _generateWalletProvider.cesiumPWD.text = ''; - _generateWalletProvider.cesiumPubkey.text = ''; - _generateWalletProvider.pin.text = ''; - _generateWalletProvider.canImport = false; - _generateWalletProvider.isPinChanged = false; - _generateWalletProvider.isCesiumIDVisible = false; - _generateWalletProvider.isCesiumPWDVisible = false; - _generateWalletProvider.reloadBuild(); + _generateWalletProvider.resetImportView(); return Future.value(true); }, child: Scaffold( @@ -38,15 +28,7 @@ class ImportWalletScreen extends StatelessWidget { leading: IconButton( icon: Icon(Icons.arrow_back, color: Colors.black), onPressed: () { - _generateWalletProvider.cesiumID.text = ''; - _generateWalletProvider.cesiumPWD.text = ''; - _generateWalletProvider.cesiumPubkey.text = ''; - _generateWalletProvider.pin.text = ''; - _generateWalletProvider.canImport = false; - _generateWalletProvider.isPinChanged = false; - _generateWalletProvider.isCesiumIDVisible = false; - _generateWalletProvider.isCesiumPWDVisible = false; - _generateWalletProvider.reloadBuild(); + _generateWalletProvider.resetImportView(); Navigator.of(context).pop(); }), title: SizedBox( @@ -195,6 +177,7 @@ class ImportWalletScreen extends StatelessWidget { .cesiumPWD.text) .then((value) { _myWalletProvider.rebuildWidget(); + _generateWalletProvider.resetImportView(); }); } : null, diff --git a/lib/screens/myWallets/walletsHome.dart b/lib/screens/myWallets/walletsHome.dart index e66b0d3..9ea2c06 100644 --- a/lib/screens/myWallets/walletsHome.dart +++ b/lib/screens/myWallets/walletsHome.dart @@ -9,6 +9,7 @@ import 'package:provider/provider.dart'; // ignore: must_be_immutable class WalletsHome extends StatelessWidget { final _derivationKey = GlobalKey(); + int firstWalletDerivation; @override Widget build(BuildContext context) { @@ -20,9 +21,14 @@ class WalletsHome extends StatelessWidget { myWalletProvider.listWallets = myWalletProvider.getAllWalletsNames(); final bool isWalletsExists = myWalletProvider.checkIfWalletExist(); + if (myWalletProvider.listWallets != '') { + firstWalletDerivation = + int.parse(myWalletProvider.listWallets.split('\n')[0].split(':')[2]); + } + return Scaffold( floatingActionButton: Visibility( - visible: (isWalletsExists), + visible: (isWalletsExists && firstWalletDerivation != -1), child: Container( height: 80.0, width: 80.0, diff --git a/pubspec.lock b/pubspec.lock index efabd63..9a59dae 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -36,6 +36,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.0-nullsafety.1" + catcher: + dependency: "direct main" + description: + name: catcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.1" characters: dependency: transitive description: @@ -106,6 +113,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.5" + device_info: + dependency: transitive + description: + name: device_info + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + device_info_platform_interface: + dependency: transitive + description: + name: device_info_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + dio: + dependency: transitive + description: + name: dio + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.10" dubp: dependency: "direct main" description: @@ -160,6 +188,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.8.1" + flutter_logs: + dependency: "direct main" + description: + name: flutter_logs + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.3" + flutter_mailer: + dependency: transitive + description: + name: flutter_mailer + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" flutter_plugin_android_lifecycle: dependency: transitive description: @@ -177,6 +219,13 @@ packages: description: flutter source: sdk version: "0.0.0" + fluttertoast: + dependency: transitive + description: + name: fluttertoast + url: "https://pub.dartlang.org" + source: hosted + version: "7.1.6" globbing: dependency: transitive description: @@ -317,6 +366,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.6.2" + logger: + dependency: "direct main" + description: + name: logger + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.4" + logging: + dependency: transitive + description: + name: logging + url: "https://pub.dartlang.org" + source: hosted + version: "0.11.4" + mailer: + dependency: transitive + description: + name: mailer + url: "https://pub.dartlang.org" + source: hosted + version: "3.3.0" matcher: dependency: transitive description: @@ -331,6 +401,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.3.0-nullsafety.3" + mime: + dependency: transitive + description: + name: mime + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.7" nested: dependency: transitive description: @@ -500,19 +577,19 @@ packages: source: hosted version: "0.24.1" sentry: - dependency: transitive + dependency: "direct main" description: name: sentry url: "https://pub.dartlang.org" source: hosted - version: "4.0.1" + version: "4.0.4" sentry_flutter: dependency: "direct main" description: name: sentry_flutter url: "https://pub.dartlang.org" source: hosted - version: "4.0.1" + version: "4.0.4" shared_preferences: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 74b7c4c..f38a631 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -5,7 +5,7 @@ description: A new Flutter project. # 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.1+6 +version: 0.0.1+8 environment: sdk: ">=2.7.0 <3.0.0" @@ -23,7 +23,6 @@ dependencies: graphql_flutter: ^4.0.0 #^3.1.0 provider: ^4.3.2+3 truncate: ^2.1.2 - sentry_flutter: ^4.0.1 path_provider: ^1.6.24 pin_code_fields: ^6.0.2 http: ^0.12.2 @@ -34,7 +33,11 @@ dependencies: sync_http: ^0.2.0 crypto: ^2.1.5 fast_base58: - + logger: ^0.9.4 + flutter_logs: ^2.1.3 + sentry: ^4.0.4 + sentry_flutter: ^4.0.4 + catcher: ^0.4.1 flutter_icons: android: "ic_launcher" @@ -57,3 +60,4 @@ flutter: - assets/ - assets/OpenSans-Regular.ttf - assets/icon_user.png + - assets/qrcode-scan.png