From a417f9e0d389078720e7c9ad860b0832099e52d9 Mon Sep 17 00:00:00 2001 From: poka Date: Thu, 11 Nov 2021 14:45:12 +0100 Subject: [PATCH] Improve walletHome view: Custom avatars and options buttons --- assets/avatars/0.png | Bin 0 -> 9453 bytes assets/avatars/1.png | Bin 0 -> 11941 bytes assets/avatars/2.png | Bin 0 -> 11431 bytes assets/chests/config.png | Bin 0 -> 7129 bytes assets/chests/miniChests.png | Bin 0 -> 5441 bytes lib/models/generateWallets.dart | 8 +- lib/models/myWallets.dart | 3 +- lib/models/walletData.dart | 8 +- lib/models/walletData.g.dart | 7 +- lib/models/walletOptions.dart | 2 +- lib/screens/myWallets/walletOptions.dart | 3 +- lib/screens/myWallets/walletsHome.dart | 291 ++++++++++++++++------- pubspec.lock | 14 ++ pubspec.yaml | 2 + 14 files changed, 241 insertions(+), 97 deletions(-) create mode 100755 assets/avatars/0.png create mode 100755 assets/avatars/1.png create mode 100755 assets/avatars/2.png create mode 100755 assets/chests/config.png create mode 100755 assets/chests/miniChests.png diff --git a/assets/avatars/0.png b/assets/avatars/0.png new file mode 100755 index 0000000000000000000000000000000000000000..c37955248205d6f9b1894967077db08d71913fe3 GIT binary patch literal 9453 zcmbW5^K%{C)4*?Rv$1Wov2Wa{v2EMAF>Y{U+l|q8kU?6k4IeSUcVfp>OxcV=gI z=FFTkdv-t3DoQeF$VA8h002!+R!Z%kPx_}Gi17bxsX$vZ0Dwd6tFG;?X5vNR?CNA` zV{bv>?&EAhVc~6K2>^JnU1aGbQMcj&KN^tPp}5J?LOJ^cuWth!lNLie7EW78cFDot zshGK=VYi$S%sc^NZ0tfxfK4*z9c&Q+*8KJt~UB7Zq@ zttLQl@yW2y*XU94;4OKL`)|7V-`1CVF-IvIf?9dbJlv$9z;!!#IZ;Zqz^z~H@pg|S z$^2Vf)ZLa6V%>UM!<`S?@W-7LLH@2mvF~g72%_;1cqbSQ)mMZ!yYo1O{$#K81KS&X z0hy|=?^4H<@AWwk(?8cQh3gjM^rNiX7bM&Dd`52jS4w5L_cMZ46ro`*mHVmhxlviuDHI(Lga=EtbxiGr$ z1!gLEU#{oB)EIC0Ah5*+_d**z&8NStj&A$3`=v|Z;wq|<8zRLc^UbRq{>`qEm2JD~ zN~P~1uk(6-`w|YUOzOQ2Th-pV{=+-KvTNs1NTc%z|tU13ZE@2CCAI_IzLaL z!%uKpZc!W|Ek~QKW@|I3e`2wq?#B9KNfXYsxHL`A=Eo1qnpTt1M!c$}iR$&^26~SA zziWD}TQ7vOXpTIDcFu1*BeC3*LgUpjdZBrM(Ta@>UmOuEVsQ^~Oxt%AF1sx+({B%B-qg1C zj4Y-YJwD{c&EIBkTdTH=4{czG-iX>Tf1Sz_Z( zsU`yZEn<27VoXzE`yt9u%9WmlU;P8el8syD^eW8NRS>n^RbbX=#Qq2tNBS)1{HEET z_>mZ`I(Nd$Ei+Wbrox%~XQDlZ?lsqku^%3~cMbm>_1hg%?bGY#)33IjB_1xO-3eP{!siAYJPaR`t$M_3M>UE z+*DmVKC0eGC|zA^TV=CucU`}G%6YJir@XgEYv!WP_8&nA9!_i{XsyZ?~qO^NC40sR+fqs+NjB^1`o?kn$Jc4R8(SM)W zeX{U7Yi}#HJ*Bw6^^=Q_oN*FKnJO!gJ1Mw5L%)e#_#Wma6O%adbvi>CmP)z%tbllJ zyy((;U4m~_?0}ed`1JZq3B1Wh;~{J>0bk&VlE%aY0Uy1uRGnEIFtklm>bkZF_8}qT zHrCvZ8K-MaIGeQ3S zdBg1Rz}J+MfAYj+SFED&RjPfLMUqg*KwF0Lf&hpW^-N2tz66RbUJQpp+9^|G=gB^oO#WD(fe(faw8ueOX+296%d@-!77zyzEr;J|$As7!OuQV+mS z7+yN{75ANjhNMoRrMY}RI~PB-x=rT3G{q8lw0gmgWIXF5QRap>tOzQwv*1cqh*j=p z6ypL;#*1OMLua1ZB)WQbls0+uAfHkiMew^MjN}r)0kb6lcNC(Cy@ud;OUwnLuPN|v z=E0aM5ZO*=>0I~^6|!_eX^4NZy<_ZYRMOX;PZZH%RyNXD+X6l9jP4Sgi~F{w4sHdu z*m2nzHe|!Z!PyO%ZLfrHrZR64>g=(f;V2kHVfa2zl$8oZRfrMoYwpAtQntay+=qHZ zq+q!ryIf-XGU|!nP~iA_%&n@FF187)O*Bxj$rD_q=?r9QM{+E;=RQ5a2Eu^rjZ4LY zzZ9itoH{_-@bab`PX+`0AMYN_l3k&fO8J7T^8d0u!$?63s>Otn=ubYhp^McU`qop<>lyM$ z7x5yB)`zl0>4Q*bZJm3w1=RTC)~t!*0yvc;|9%+6(Oy%@Zf+_vo50+Q*ZQ?Bg<+SL zherZ_Ay@>#i2|P35Iuaaptl9@`O_68HZo-eKzsM93l&w(a0=mql>TW$tuo6E5f6On zif*u>9bC9N>|dqA@4w-jIezhqVSv#^PY}(_NQ?p2)lQMWozQnF36T058@doUx+oC} z1D1CiST}10OIaMCEM)085IKIM<&0_#l8DQW!ElBB*cmYUTZ)*+E{V){(yJX{W}CDL z3n9S;IKo0@07D>jwX%2O-9(-;$3p7{ds}w%(tpG#O#Xss7`rc5rOl!sbr(OQ7ZI_> zJ^6^7Xsi>*3`qgKQ!f5A(ad~gf=jH9*Iy=DNZmro9H4qeqAeH?TL6!)c!`aa4{-Q? z#$iO|J3pBBPY9of68dRu4oQ;d*^Ge$u9Y;E*SK3IwZ;^9s0Uncv$e3y=;_^UGN(LG z1E@2*>OL!#f{zb#!5gcVaxOw1o|(9+kEEHWfv(~s3!tOR0hVz7EwCOvG^L(g!p+d*PP4f%bmFc ziW8`Fh>1V9d?|W1K0&Wsks^lUSkjpUX0PBnra?52RW<+t*SAepXU7ts#bYdKC?Yqw zy0E2-7p3k{a)Wa=_W9E%pI8bMP1w2ND!#T_ zLibf47uC%zSEovS?|^$#H-|K80iNpb&Nmhm~IrDcw!NP?(%pFT^UXwj*AOe2{YT?k!ZzWBBc zE>q4eYs?g9cA%?yww{4bWnPuA36~HHYC}~EAi4v>E+Aq$065I+6VP`1XncjhlY!71 zNl4{m89)C)-$m4qM`P)I)q;(T;?!}@I#{5@&ftMBqIj$xsHMsNGynsm8}<9wmq>+O zHp5QGvAq~O2Hc9slEBguDtJE$zbGenWtk+RB)N4Q6?Y}H;c#X5J>+6#XG2oM9G5eN z3XV%mF${Z(t^Q)DUNEz2F`WRJL&BUClkjV20&!_Ec&7gvQv%<`o`W#v{)Txc{hSXO zC+?L4E2uy0E6y>cHR`k-`I*SBXn$wsC&X9kk^*`u6MLvm%?WQ; zRh(`Rb$2Uie!eJ{GMJ_;4=*mvBC`KjL3$YZ2p{2D5CMc|1YpN_Wqn2m1E}Ok0jc$f z-EEVU!>o(o!mIZN-_6RKn0lDfj^-aI&?ZKz-KI z1c^&v6RWLy&8a3bs;OFA?UOn7|qK9>9OHCptTsV5%gz>4U|eL{~$jLT2R$8Wlb~`eFftcfx2?A zY(qln2W45)jE-UoolhkQk(67E#Zahj-5_qLRuh0S%=7(w2uHes>Q zx$fmq_F@=;P;kZ+3~D78GBVIYQ8~fLh=0*3R_PsE-Ni2IodLeEgqgmE6ykR1$#nq? z?!0A4xs>IuN=kKPWtO)xgDpj@$tR_yasoCHUMc=;W)w4ZTH0@OVI_D{*t0Yon4f0y zYVbM2`y_O+erld<%46`=Gaa)+bi^w`cVO0jPjNLWi zZTJxQA7L0xXpdcYQ`rZ(KdD_Q6_h`2Kp#DXMI4LWHcs$cuEYo&o@5$=Upkxn>M zzxDw2NP#(kXG;hpE>@t5;KGGV2E9{&i6U%x{Q$XJ&5IvqH1h?-6^dxcH$uO%X zowbmz(Lg@#=SDHDCdB?)8U6Jd`!;9eyX@N#g%z}a4tDz7wXkka$+MSD481rk0R z5>o=ts05@2rUt@%iCWRi(7$CAfWoVR%O(az_XXe7$fd7Elj-X6q`j z2EMotZ;UvK%d!3000JL4=1OJL+S{hBa#Bl%ULznQZvGTs<%RF);nQk+iT8dfR^ z&yo3b+jNH=$+Q2_0|ZXR3~j?fFGS3}uAdGS$nt;}zCaj0{JUbtGD0*hdLb5MuWu}_ z!!KM{baWJgvbgPi5Q6Zl(AlOs1lo{8b}*u{vy+R!DUSwf)>!+b!@^w;KiR#uq27Hn zD=mi!3vAO8P-UcLR8B{mV(0Cjk%@F~4|=D0ZRQs%k7lA?BMmeu zeqq@|+pGMlaMYztVhNO^6rm^MJq{U2&`&oA+}C$rnda`77T{GTp~FXZU}@!KCStmw zaZy+09ec3S*W`0@(Hz%U>Y@)aVJNR*am!u8#MU0bmO_N60+B4Vqh@OpO{suKE*KvL z`vjx3$yKn@@o?$|60Wa1LD!wFmVu@lUy%ocrwG>H3E@LJ#fmN0w})Fc`JkYuds3Hf zwN85`=udv6;R{1Qw+4gH(&(E}Y7bK}P6X4z^y^k_}>>_R*dT()?5n7pZd2jyzF9 z(89cSxlLuLU;$1W{t6~*o;u;;r`&5ksL^j}vRQml$)5>nqO7vs8>+Uw{Jf5jYPO~) z&^GE8x3(Vg9(?j10`dr8p@YRJFcJU1&XVBM9=0MOo;Hf?Q~(Meic}Z`HW~sFlN-&7 zi6m!BG3Q4Bjt)0IH&jFQ?P_iXzDPC|?|(;MK%zu4)h&3r`jB`llni35v<*H(ku0># z^SgBTmtf0jj7*6HKMNgP^Fu?UGdVES#?WlN#daDjhsfw-{&n5Iy+u>uDUN!edFrN6 zX!r^-fM$3sRY5m_Y?GN)n}gjWQhuzYo9sb!rzA4RG0OK}+2} zm6p+MgX5c)*VMutPN)c29$&nrpb=Vox2v9*1BA~MT-4od>v7(oHps!Is{bm{gH?e! zXa8Vf=y%bu(G*=>4d$pHwI%Exe^pfS=cd#(`#)h1f+c&dd>v%hf7tyLx`i?jjkiFD?a__cc{obqWbWje+yQFfu;f z`?x8JeX0S@H+%FI3Mi0+K`(bi1JS7llp5@x=EhbPLgDm(WN!ob(bhl~-Z9H>gFbI@J%i9#C_*p%&*KWGm?g9OxK3vwS3Fz_nT9)NJ3_cM z421IfSUSo28n?>9k33e_xo<9=|(M#0%MsC;b~;p$54HAqfveqcXWqA1oM1iDc-0& z%mDu_uY*|XEok;9aBMEgO+$fku_Uti@P*I!Je<;a>3^F6*1{lkk%$-SzD_4v*sn2& zHoD=0dN@goIc34<1u#)li6$4e&+q=0fAq6aarr;wL5ld;{38=?Y2e4bjUL0}d?cGD zsvV(g@`{p^tV?$z=|dJ>#KzC z355=4F&5$4mKZwXo2V>f_YJ=P%l7S7x75KF zt0+K$WxyL1MZGkU?ygcp>b(ZX4j5!>48ym>=(z7e zI2u8h!B188-rR|--d~p`36D=5ppLGF#t%K@ zNa~dINRG*h%@(>$jU4!ykobzX{BWuE$&bcpFYkP|zQ2vpN-SwjAgCQ=`cJvsM6B`p zQ#W58S3@P>-w8_>u$?Ic{Y)-`Vb-;N-3)Cv+RT&R92a9yjPv_n`Nfg=Jis^x9B@DU zIfoCFjpC`RCIxG)Q@;fJ77#`-Z8I52Eev#X9&FJEOXm$K;lhKEH4JDMmuxw+lZl3C zV~qTvmIXQucPtcruQ$*EhImPeWa%f;3Dguw*U7+7b}Eb(UCBa#R{)ry;*^Pza6`QM zt369q{^{wwI+-6zx4gfVpSD!qM)E*s?gz>fYionGRqmfCs zWQ|Kz^T15!OJ!XUS1lgXHhJHx+Co5}1HcwIK7Zk&@H>Dqc*xTh z>JbV43!)$+r~%yzBH@0bOZU8eRZv9b`S7k%k=fBH|%ct?v@>g<+77$TxZ{rNDKvga=)olk*{v0Ct&Ew9I zKM#*cj^diymP)h*PHoKFZsAx6{a)%Esn1`YeGm&am0qWPU%vDTz8!Ns*h# z>lfDeDg8C6)q1p$F>OO+Gt@cIfdJIxQVcXn?4l`3Wlrb$`E>Zj0ys+UTE@-Ag$VBz zi=AR|_w99tl1i_`9*cAc{U*RA>~BB;LEI{5P?>4^&#H|JMMER{Jw;*-rF-XWP6F21 zOzt51gbR5=E&&wS^TUn71QM#-!P;G$1jijh&yp6dp;=MbcaI^xN1NX&z(j6~-{9TO z@CIvoj?9pJI|r1r#8BxCRIVoq@lc_d?AhjXVe7BGk z9ay)8|7DtXkI*^Il&-S)Qh#k;bNP-m;d1jVFjcGWy=(K`J3x?go#myTb;0*&`7K`? zx6xQukr{-#VB_c~v_hmS*YT?jwYhLkl)qDF3Xiff@R!=l7_*VGgv0Ptdfvlc(vrphx%YpR=^dY%Ng|(A}sfJyx-(GTZy-Qyr~H_UT$YLy=}KmEKFsnbL+(5N z9iCPYJk~osX9=m$BZP##i~Pi1tJ}LTfOf7R%5doSVH?mUHHS7EifILAenAyzl?{%9 z2Q4>PmuKy|mYa$c#L(wb&C)XH%vJ$e|GqV;eI#2mcsNhV7?2y=4FvQ9 zl(ggFwne3(u5lr)fs$jsf0Ge{9G-PyK!@`L9OnEac;S-Fv8gnDWra-6?<{n>y@uyX^$lhAs1i?Baz zKqAW#66cEVCaNH#tE z^pqvh-_#n1@)?|9@96?+qr0S?`>Y-)Eh)u6o3?&2jF$laF4JdX#+%XYWL{t9<)j zbyDb?lA7hqvpms4xJGx+JUNz?zu>&LHq3y*AZF$(*j;KF=gJ6f_uQZl<6$J=!+wJ6 z2<*EL)_=Tn!sZ!xCc;)oIyL3Ofn6n#`7I%vEUB|~KeG zJKKslqcTzym=-VqD79u}HN_E`BhB!Sz=;o?%`|EL_RS4mZmgvGT>M}0Y7)C+Lbj^p zhKRahY1*04I}V<0o($`MS!w?&C!#(DlP6A@ zzVykt$D+~NR2iEJ`VkJEs!7-d?0z8cT50gF-)>m5^W#IkZBDE3=5=wac{j0G-~ z+}}CCiezSz!U|a>c62;f{|;-$?NH-$#r0#mP&JRSwm3aqvWGfw&UC{0Emu-Pa%M;o z(u=C`tI;j)atU%cFauDzg5_WOrCI;b+G|xye zM{t)cYzBMd7KA`A2yW?gVOi&|vb7sl+l~Jl>~*PJv4-v#$kBt~ zCS5<@cm6_2d!4t9m()=0gu8@?FH`&7$7n~qo2W8DrSbk9xq2x#iG>NfOMEz!5*T3X dA-&^QQAODYC7Bodn|}*FKn|!RRV!f}@;_IYnx_B& literal 0 HcmV?d00001 diff --git a/assets/avatars/1.png b/assets/avatars/1.png new file mode 100755 index 0000000000000000000000000000000000000000..49023c9fb7e7ae97ab4dd5b1afe3da6a2d385202 GIT binary patch literal 11941 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 { number: fields[1] as int, name: fields[2] as String, derivation: fields[3] as int, + imageName: fields[4] as String, ); } @override void write(BinaryWriter writer, WalletData obj) { writer - ..writeByte(4) + ..writeByte(5) ..writeByte(0) ..write(obj.chest) ..writeByte(1) @@ -35,7 +36,9 @@ class WalletDataAdapter extends TypeAdapter { ..writeByte(2) ..write(obj.name) ..writeByte(3) - ..write(obj.derivation); + ..write(obj.derivation) + ..writeByte(4) + ..write(obj.imageName); } @override diff --git a/lib/models/walletOptions.dart b/lib/models/walletOptions.dart index 147d9a6..81b14bb 100644 --- a/lib/models/walletOptions.dart +++ b/lib/models/walletOptions.dart @@ -130,7 +130,7 @@ class WalletOptionsProvider with ChangeNotifier { WalletData _walletTarget = myWalletClass.getWalletData(_walletID); _walletTarget.name = _newName; - await walletBox.putAt(_walletTarget.key, _walletTarget); + await walletBox.put(_walletTarget.key, _walletTarget); _newWalletName.text = ''; } diff --git a/lib/screens/myWallets/walletOptions.dart b/lib/screens/myWallets/walletOptions.dart index fdc633a..adc0884 100644 --- a/lib/screens/myWallets/walletOptions.dart +++ b/lib/screens/myWallets/walletOptions.dart @@ -107,7 +107,8 @@ class WalletOptions extends StatelessWidget { await _walletOptions.changeAvatar(); }, child: Image.asset( - 'assets/chopp-gecko2.png', + 'assets/avatars/${wallet.imageName}', + width: 110, )), InkWell( onTap: () async { diff --git a/lib/screens/myWallets/walletsHome.dart b/lib/screens/myWallets/walletsHome.dart index 0d5e69e..1de430f 100644 --- a/lib/screens/myWallets/walletsHome.dart +++ b/lib/screens/myWallets/walletsHome.dart @@ -9,6 +9,7 @@ import 'package:gecko/screens/myWallets/chooseChest.dart'; import 'package:gecko/screens/myWallets/walletOptions.dart'; import 'package:gecko/screens/onBoarding/0_noKeychainFound.dart'; import 'package:provider/provider.dart'; +import 'package:assorted_layout_widgets/assorted_layout_widgets.dart'; class WalletsHome extends StatelessWidget { final _derivationKey = GlobalKey(); @@ -57,9 +58,35 @@ class WalletsHome extends StatelessWidget { Widget chestOptions(BuildContext context) { return Column(children: [ + SizedBox(height: 50), SizedBox( - height: 90, - child: ElevatedButton( + height: 120, + width: 445, + child: ElevatedButton.icon( + icon: Image.asset( + 'assets/chests/config.png', + ), + style: ElevatedButton.styleFrom( + elevation: 2, + primary: floattingYellow, // background + onPrimary: Colors.black, // foreground + ), + onPressed: () => null, + label: Text( + " Paramétrer ce coffre", + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.w700, + color: Color(0xff8a3c0f), + ), + ), + )), + SizedBox(height: 30), + SizedBox( + height: 120, + width: 445, + child: ElevatedButton.icon( + icon: Image.asset('assets/chests/miniChests.png'), style: ElevatedButton.styleFrom( elevation: 2, primary: floattingYellow, // background @@ -71,11 +98,16 @@ class WalletsHome extends StatelessWidget { return ChooseChest(); }), ), - child: Text( - "Changer de coffre", - style: TextStyle(fontSize: 16), + label: Text( + " Changer de coffre", + style: TextStyle( + fontSize: 25, + fontWeight: FontWeight.w700, + color: Color(0xff8a3c0f), + ), ), - )) + )), + SizedBox(height: 30) ]); } @@ -105,6 +137,7 @@ class WalletsHome extends StatelessWidget { List _listWallets = _myWalletProvider.listWallets; return CustomScrollView(slivers: [ + SliverToBoxAdapter(child: SizedBox(height: 20)), SliverGrid.count( key: Key('listWallets'), crossAxisCount: 2, @@ -113,92 +146,112 @@ class WalletsHome extends StatelessWidget { mainAxisSpacing: 0, children: [ for (WalletData _repository in _listWallets) + // if (_repository.number.clamp(0, 2) == _repository.number) hasImage = true Padding( - padding: EdgeInsets.all(16), - child: GestureDetector( - 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)), - child: Column(children: [ - Expanded( - child: Container( - width: double.infinity, - height: double.infinity, - decoration: BoxDecoration( - gradient: RadialGradient( - radius: 1, - colors: [ - Colors.green[100], - Colors.green[500], - ], - )), - child: - // SvgPicture.asset('assets/chopp-gecko2.png', - // semanticsLabel: 'Gecko', height: 48), - Image.asset( - 'assets/chopp-gecko2.png', - ), - )), - ListTile( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.vertical( - bottom: Radius.circular(12))), - // contentPadding: const EdgeInsets.only(left: 7.0), - tileColor: _repository.id()[1] == defaultWallet.id()[1] - ? orangeC - : Color(0xffFFD58D), - // leading: Text('IMAGE'), - - // subtitle: Text(_repository.split(':')[3], - // style: TextStyle(fontSize: 12.0, fontFamily: 'Monospace')), - title: Center( - child: Padding( - padding: EdgeInsets.symmetric(horizontal: 5), - child: Text(_repository.name, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 16.0, - color: _repository.id()[1] == - defaultWallet.id()[1] - ? Color(0xffF9F9F1) - : Colors.black)))), - // dense: true, - onTap: () { - Navigator.push( - context, - SmoothTransition( + padding: EdgeInsets.all(16), + child: GestureDetector( + onTap: () async { + await _walletOptions.readLocalWallet( + context, + _repository, + _myWalletProvider.pinCode, + _myWalletProvider.pinLenght); + Navigator.push( + context, + SmoothTransition( page: WalletOptions( - wallet: _repository, - ), + wallet: _repository, + ))); + + // Navigator.push(context, + // MaterialPageRoute(builder: (context) { + // return UnlockingWallet(wallet: _repository); + // })); + }, + child: ClipOvalShadow( + shadow: Shadow( + color: Colors.transparent, + offset: Offset(0, 0), + blurRadius: 5, + ), + clipper: CustomClipperOval(), + child: ClipRRect( + borderRadius: BorderRadius.all(Radius.circular(12)), + child: Column(children: [ + Expanded( + child: Container( + width: double.infinity, + height: double.infinity, + decoration: BoxDecoration( + gradient: RadialGradient( + radius: 0.6, + colors: [ + Colors.green[400], + Color(0xFFE7E7A6), + ], + )), + child: + // SvgPicture.asset('assets/chopp-gecko2.png', + // semanticsLabel: 'Gecko', height: 48), + Image.asset( + 'assets/avatars/${_repository.imageName}', + alignment: Alignment.bottomCenter, + scale: 0.5, ), - ); - }, - ) - ]), - ), - ), - ), - addNewDerivation(context) + )), + ListTile( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.vertical( + bottom: Radius.circular(12))), + // contentPadding: const EdgeInsets.only(left: 7.0), + tileColor: + _repository.id()[1] == defaultWallet.id()[1] + ? orangeC + : Color(0xffFFD58D), + // leading: Text('IMAGE'), + + // subtitle: Text(_repository.split(':')[3], + // style: TextStyle(fontSize: 12.0, fontFamily: 'Monospace')), + title: Center( + child: Padding( + padding: + EdgeInsets.symmetric(horizontal: 5), + child: Text(_repository.name, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 16.0, + color: _repository.id()[1] == + defaultWallet.id()[1] + ? Color(0xffF9F9F1) + : Colors.black)))), + // dense: true, + onTap: () { + Navigator.push( + context, + SmoothTransition( + page: WalletOptions( + wallet: _repository, + ), + ), + ); + }, + ) + ]), + ), + ), + )), + addNewDerivation(context), + // SizedBox(height: 1), + // Padding( + // padding: EdgeInsets.symmetric(horizontal: 35), + // child: Text( + // 'Ajouter un portefeuille', + // textAlign: TextAlign.center, + // style: TextStyle(fontSize: 18), + // )) ]), // SliverToBoxAdapter(child: Spacer()), - SliverPadding( - padding: EdgeInsets.symmetric(horizontal: 30), - sliver: SliverToBoxAdapter(child: chestOptions(context)), - ), + SliverToBoxAdapter(child: chestOptions(context)), ]); } @@ -231,7 +284,7 @@ class WalletsHome extends StatelessWidget { color: Color(0xFFFCB437)), )), )), - ) + ), ]))); } @@ -285,3 +338,65 @@ class WalletsHome extends StatelessWidget { ); } } + +// extension Range on num { +// bool isBetween(num from, num to) { +// return from < this && this < to; +// } +// } + +class CustomClipperOval extends CustomClipper { + @override + Rect getClip(Size size) { + return Rect.fromCircle( + center: new Offset(size.width / 2, size.width / 2), + radius: size.width / 2 + 3); + } + + @override + bool shouldReclip(CustomClipper oldClipper) { + return false; + } +} + +class ClipOvalShadow extends StatelessWidget { + final Shadow shadow; + final CustomClipper clipper; + final Widget child; + + ClipOvalShadow({ + @required this.shadow, + @required this.clipper, + @required this.child, + }); + + @override + Widget build(BuildContext context) { + return CustomPaint( + painter: _ClipOvalShadowPainter( + clipper: this.clipper, + shadow: this.shadow, + ), + child: ClipRect(child: child, clipper: this.clipper), + ); + } +} + +class _ClipOvalShadowPainter extends CustomPainter { + final Shadow shadow; + final CustomClipper clipper; + + _ClipOvalShadowPainter({@required this.shadow, @required this.clipper}); + + @override + void paint(Canvas canvas, Size size) { + var paint = shadow.toPaint(); + var clipRect = clipper.getClip(size).shift(Offset(0, 0)); + canvas.drawOval(clipRect, paint); + } + + @override + bool shouldRepaint(CustomPainter oldDelegate) { + return true; + } +} diff --git a/pubspec.lock b/pubspec.lock index ee51741..0f54e3b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -29,6 +29,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.3.0" + assorted_layout_widgets: + dependency: "direct main" + description: + name: assorted_layout_widgets + url: "https://pub.dartlang.org" + source: hosted + version: "5.2.1" async: dependency: transitive description: @@ -584,6 +591,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.12.10" + matrix4_transform: + dependency: transitive + description: + name: matrix4_transform + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" meta: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index b3ffe6a..3d75118 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -53,6 +53,7 @@ dependencies: truncate: ^3.0.1 unorm_dart: ^0.2.0 xml: ^5.3.0 + assorted_layout_widgets: ^5.2.1 flutter_icons: android: "ic_launcher" @@ -76,6 +77,7 @@ flutter: - images/ - config/gva_endpoints.json - assets/ + - assets/avatars/ - assets/chests/ - assets/icon/ - assets/onBoarding/