From fa696c2a6044b6769319be9bb327af03ca856d41 Mon Sep 17 00:00:00 2001 From: Oleksandr Sobol Date: Tue, 21 Apr 2020 21:23:40 +0300 Subject: [PATCH] CWA-198 | implemented menu screen; added menu widget; added images to menu items and fixed menu actions --- assets/images/2.0x/eye.png | Bin 0 -> 873 bytes assets/images/2.0x/key.png | Bin 0 -> 667 bytes assets/images/2.0x/monero.png | Bin 0 -> 2230 bytes assets/images/2.0x/nodes.png | Bin 0 -> 1142 bytes assets/images/2.0x/open_book.png | Bin 0 -> 685 bytes assets/images/2.0x/reconnect.png | Bin 0 -> 793 bytes assets/images/2.0x/settings.png | Bin 0 -> 830 bytes assets/images/2.0x/wallet.png | Bin 0 -> 551 bytes assets/images/3.0x/eye.png | Bin 0 -> 1188 bytes assets/images/3.0x/key.png | Bin 0 -> 906 bytes assets/images/3.0x/monero.png | Bin 0 -> 3522 bytes assets/images/3.0x/nodes.png | Bin 0 -> 1472 bytes assets/images/3.0x/open_book.png | Bin 0 -> 1005 bytes assets/images/3.0x/reconnect.png | Bin 0 -> 1122 bytes assets/images/3.0x/settings.png | Bin 0 -> 1249 bytes assets/images/3.0x/wallet.png | Bin 0 -> 733 bytes assets/images/eye.png | Bin 0 -> 475 bytes assets/images/key.png | Bin 0 -> 422 bytes assets/images/monero.png | Bin 0 -> 1130 bytes assets/images/nodes.png | Bin 0 -> 633 bytes assets/images/open_book.png | Bin 0 -> 377 bytes assets/images/reconnect.png | Bin 0 -> 476 bytes assets/images/settings.png | Bin 0 -> 498 bytes assets/images/wallet.png | Bin 0 -> 365 bytes lib/palette.dart | 3 + lib/src/screens/dashboard/dashboard_page.dart | 6 +- lib/src/screens/dashboard/wallet_menu.dart | 25 ++- .../dashboard/widgets/menu_widget.dart | 205 ++++++++++++++++++ 28 files changed, 230 insertions(+), 9 deletions(-) create mode 100644 assets/images/2.0x/eye.png create mode 100644 assets/images/2.0x/key.png create mode 100644 assets/images/2.0x/monero.png create mode 100644 assets/images/2.0x/nodes.png create mode 100644 assets/images/2.0x/open_book.png create mode 100644 assets/images/2.0x/reconnect.png create mode 100644 assets/images/2.0x/settings.png create mode 100644 assets/images/2.0x/wallet.png create mode 100644 assets/images/3.0x/eye.png create mode 100644 assets/images/3.0x/key.png create mode 100644 assets/images/3.0x/monero.png create mode 100644 assets/images/3.0x/nodes.png create mode 100644 assets/images/3.0x/open_book.png create mode 100644 assets/images/3.0x/reconnect.png create mode 100644 assets/images/3.0x/settings.png create mode 100644 assets/images/3.0x/wallet.png create mode 100644 assets/images/eye.png create mode 100644 assets/images/key.png create mode 100644 assets/images/monero.png create mode 100644 assets/images/nodes.png create mode 100644 assets/images/open_book.png create mode 100644 assets/images/reconnect.png create mode 100644 assets/images/settings.png create mode 100644 assets/images/wallet.png create mode 100644 lib/src/screens/dashboard/widgets/menu_widget.dart diff --git a/assets/images/2.0x/eye.png b/assets/images/2.0x/eye.png new file mode 100644 index 0000000000000000000000000000000000000000..4389fb7e4a4f163d74be9ce036bc27bca88951c4 GIT binary patch literal 873 zcmV-v1D5=WP) z;M`y$Heh?Y@~W|u@pyXt*-+AGTGiF{>eE%#LOe1_F(uVbZZdawcNt#K&d&O!{4-xn zL1P>6>F_d}QYt5fW5=Z z8~|$3FoWv1Gc)!9t85k)PDdKBe{@v=vpggyrMI;{pXW7SK)SzQ zgV!$jKIEHW<)4qPJp9(8I^a-sr?6158ejv*!4?kA85!IOrPNtCI=tW2`t@!v%xqxL z>0BUv?kFSFC~zjEqi7T(#8Rn?mALcx3@M!bIk#*N(5h!P@}B3oER7&R8K?2f z(bWem{r3NgNK6@5j{5liRg(mj?3$%%DyEa6y(TH->VQ{%s3P11gH7d_D%dH!JYa@J zHp8{g3*G6kp-EHEhgYk-Kr>pQNLvnrZxt4*y#Ch*m|-)5Z!9+#6DDcam`&rmx4>O9*!b6|gKOApm1&Rr+bM(L_(Ow3KfIhgV82uV`cP0os)O5^~bs z_S@&b$I(0WqqK~CKMCk5uWudsr#j`M^wH@r`SxsTz5-DG00000NkvXXu0mjfcy5n| literal 0 HcmV?d00001 diff --git a/assets/images/2.0x/key.png b/assets/images/2.0x/key.png new file mode 100644 index 0000000000000000000000000000000000000000..439ef2f2e9d82de01a6aa48d52dfeb791d4bd66e GIT binary patch literal 667 zcmV;M0%ZM(P)_QG)6p^J9m>UQME{e#j6A0a4 zs}u>AX>}u^+L{6}vmfaN)X>|r?`=;{cOztg_MiWyXgvOkh;NaoN&uzV1H=He4m8n8 zYiqr~XfHwv2=R0>@qy^eDqkiVDXr_aa3BvQ^rjIDh4x`*u#rf>&(2`ehMb9yuGZEnyUkip=VWzpD1UQ!|s(Knj#q1o9x~@E=QU zSeb-*kn_7n5z&FH@kz+J1n=L?1?o}Bxgo{L1>Pf(hkWKf45Q@r(*icZhVlTw83|7zp8l>3A@`s}$QlyBeR0VYa9Ti3#90kOJ zh>8+X29eN$FqDK)3^jRv=e^xz!?yFv?t(w&CU4)~n|?&x243c|wShNQ z@F^Ga_xr|pEQZhcrT}vgztM8^;g#GL_V9}MQN zXW@l5mjE4ZV!IhQzMXE&dfM2P^MJ+g0h|AXM~2fTJQeHBmy8&0*IN-7Q{tGXh+yQuTC2;eLaB+TXNJ*!f zQ3gib;6bN=cgMjAO)|(QD8PIGCvsm{!poDP zrCBR}>kDipq>}AxfY-R(N*#p@N*QCwHQq&8=tj*YkZE~!df}Vqq(^wcQaqPi!{eNc zYJx0F#wx02KrnLi2iJa6)t{=*ZqNQq;aeiD6fFWqTn1Dg(vB$OENB^;1=Ta)AZ}F) zFXRnPzwkotMZhgDIT_K2v!EdKB76xv4lNhn3taqQ^=moJr4so(Gwg78&C|9b^xPl1 zuoPhSLuW3AR;r=d^@3Yb7~5!&W<7_LAi_`W#jW~a^*w_t`Hqorusyc5;+6=_fJ3-P zI}%+Uu#Mm0%zY*KN(c$Rcv|FpIh}yByF-nM8|7CZ_~LTaAklQU$6~*qOeMqB}h@VQ(3Lio| zPb~-0HNd_90##@6@J{arHGU|;sqjL_JbhmS9mEFcWy_YDcp;IYuBM47K$p&H zqSI4MG)nM8c%iY{pKBE08KAbRtDFG65>E;7gwM=|BP7_WqfUU9&{TDGdfxBc6F8+~ z zzWsGT-;cQVYrz$pl(_^G8w1E-6iD?)b={&8PYH)}#??T;{ibIi28;=tu zNFcMtxsmU+qetHFGoV%-sEGC)(pG*AH3pVsQVZXz2aLK3o~aw031hgmt^LuyC&E86 z2gpini>nym!?{Fe022k9d8u49K2hfwV9=L9Yx?f(E^{utKdhka8$x@GM&mj|lH97@|ukrG7V@%V0%6X8YH5uwZK z#K-|FBU}b8QxsSOxOC#z(glTpRo`)hp3H56dYf=a9Q zSC80(p^V3uB(+(ayderHe1szsQ6ps4)KxHhYG4DXN8W&2XCTr{h(KhvT^BG+0SG1aMJDoJ?ff zuEZ0uilSo=bAj0tImoi?g1)#SnV48a;d@3ahE9Yl1yp@*J|1RR{TV*MDM%0Ex4gh9 zKUO>C566=N1gpL{0|RIq@*NdgdiqfMEC!t#I&a~1zi#lXfDoJw$59b^d^iae1EAwtiVxTP`PK?q+-QWOx5Rfczf#?nA1z7%gv zN^-R6*QcLlL?50gCTGM&K|&DKs^|Q3pM@# zdNp2_s0q;B_ncX}&2~F)X*&tw?R4IJ^XAQ)?>z*P)vfPy3UJl{i~?fa3ByWtW}*oe zsqLJ4y49+IF_V$Pm;*I3Qmt0TeCwP~-wI(aS3_e82C=D(S${P>zK3g@M`febPRibQ zv>vks@nQSqlt2qzN(y}b*`tyOzIimNl{%#bdP)6V?^aoXQtyO09!;2)oULvi6??#0 zj46KJ|5=pgXvcY%250$wepyyg+66JjhcAdlWtk+`(y^f5|* zjc5YzGh)NZ2%jccZmz9Tj6Zl{9u`KvdQUDCbpl}^^fgMTP!E$*O!m!}h00s?WSn$jM z`U!%L5f@~0Sa24EJ|tZe)bYk7ySPL43(n$-U{_Z~qqV;&@E0BM!N^nADWD&YYyd>elfRDLSp0)2p;Dr8%M9+YjRoXS2)l9iJ}M zwVI>>T({8BaneKuN$}W?bzl)DytHrLDt&ob>tuk=bd4O%Ne+00OrgwnOh#w{(?KxC z&4p^=5WBg=lgNm~ccBmA72eJ}(b#nyKQudCBmqt=LJ-7CUO3G%sQ}$}r)jK7EB4mBWncZVZA({cPc41wV=;C#i_uDhS?gkca&#kJ7yeZrc7n^v9# zj}k#+hjj632gyW~fp%}7C3^KJq6Ur2Ht?)YNCZ}jNk+;9`Ts&q>K-Ec#2p*V9d6g7 z0TFcM$$*Vgnf<^fh+Wt66pJ#~a3Gv92x*bTKPAOvBlT%|Ivq%q>g4lv5N^>?GZL=l z(cWvl3%%kgda5aY(Fi~CZKojV*&%A3zRLTQx$2^Yj-!>!AVrnDQguxt_5+K&o|)Kf z(c6)(<&#u1$s_LbwpPHi>w zgIbt=ysovbbjXEBf_S~Om~p!qRM;2$q+z2C+$5a2d3v7z2WU14aT2KS=Kufz07*qo IM6N<$f|<1$m;e9( literal 0 HcmV?d00001 diff --git a/assets/images/2.0x/open_book.png b/assets/images/2.0x/open_book.png new file mode 100644 index 0000000000000000000000000000000000000000..84c2428ceafb068d393abe0657e28fbba7bbc609 GIT binary patch literal 685 zcmV;e0#f~nP)|**D1e z2BJ_j_%}r=4L#2=NB5y9SNzm`;*y zyN+WAF?H>ZB*yqC;tR)V{pgO)rPe{PLYZs;DSOCi7`7aa>u%X=!OCG53XMTzuNXM# z4EHr+)SQ)opgkhVO5}KW`gYE(DT92J3zKt-S;P!V`O1n6dSqzu_3<2p^J_ImD!(l~A$H0$T^ zgfBOwd_mu|*1qAKTv7u|pOwP|x7{V|oDxzh7?n^9M;$hIre`oOxntsRH~D)AIa;5Z z^}(`gWL8}%j|?0S&#zzU*5vG(TRt*G?5B}#|KQ!uv{-{wra|$~+`QNX7J#1=rdODN zCizY3*hDbVzD4I3>yD0S zQX&9nv-i1KKh7G*aSKX*T-ToQ)9&c%R#G~Ev{w^MqabxCIG-O%ng9em#5{>f159cc z%H*BR+F9PsR;WCtp#bHPyGDHvR-eujtrgECbvMkiJ$p=?{QBen+uT&F!c*fvf*}mJ TC-&y~00000NkvXXu0mjfmKZTM literal 0 HcmV?d00001 diff --git a/assets/images/2.0x/reconnect.png b/assets/images/2.0x/reconnect.png new file mode 100644 index 0000000000000000000000000000000000000000..dda61e3160333fed0ba32909393d0a0cb383a66f GIT binary patch literal 793 zcmV+!1LpjRP)hNye3-%1rDGL&cDW@d>OOpj5)fc`8}@tci!rE9Wp@dJQ~takkdc=x?wz)o_9>!X(f?&dZU6HoU(KE zfh1h@?^;B7xtt);$^zKoyy^6noS$3Kk4Lmo$}#Q0&AZb>Yg2s8u~n4>EF5mY`5U_^ zKqgQbek5tGR5}lASn*My+IXvEmU@f}JqXLSIA_lQ6kom=OIM;X2MwZZc>*f(&2*0o7dj zAb~vMCnb}L6hLQgtxlk(T|N}K&*!(sw3VTGlUnKa`!~SVY>NfDO|`BDJid~T1ptx8z0>~N}xE61Et6_}?eJKUIFx2<1>(QRkQ^-cH( X0lRkqhFGY~00000NkvXXu0mjfqpEG0 literal 0 HcmV?d00001 diff --git a/assets/images/2.0x/settings.png b/assets/images/2.0x/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..53918cb0ab0ea5934c5d9effb65d7eb71f99557d GIT binary patch literal 830 zcmV-E1Ht@>P)BD1Hg9F~*K{&b+mGaIQaDb}>G7r%@Uy z_oxovy6!!Ox!_IBGD28Zv%H}ja?bBC+HGTsLfzDSZcIlpD10ZQ5o z#CbM*Vg(+uP#Ip27qvq+CFEN;PU!zcxFh2HV9iK?#0GQ(sGDU%)HQpPkW<=HDMxlh zgv(}m8YF?bu%bSIGML7w&WF}~TUUsqpsh|vn9iBkn7rI&JoxK~#7F#g{!& z!ax+q_q~MF93eOGqY&-j1j-2vGmdBn4i;8It7d>IQppj*3BW4QaRcKGQdl`**S8r6 zk>R7sCch$io4ncg-{kGSU0_RI9j}atmqLglO9=#+fMJZ9wUc0%56H{gU^b-NHB$fu z@R9RM^Zvr$_FlIK(}q|F510^hmKFeI>f2ms+6T2NTV3qI>`OY4?Y8QrDoYXSyGwmH zqJ~y5TQ{fQn?AS;;xS zN;$Z>Q7V9bfz@?9bDxjuBrI~ovHd=sP+{`fTG(+`0;1_g!L1$d=E?=^AlmwcLe%mR zAcWhxJFiJI_gWwY1T13!AdZPt6nZRUemU>Q0?;t}Bq_bKzyWB$?We@P5LU*E<5_@s p1SuZPl2B0!GywPE_UtqH{0}ggkdHPh+9d!0002ovPDHLkV1ljaE&3?Y3HJA;gm8Jk6y{OU9A`i`f`c$C$d~INx_S7HaI4nAm{*qst5_jmvD1 z!Ul`mOv{oxL^gmF=doBG3uo9g!Ff&gdc~-Q7#mPJx=i(Av9eZiDQozxidd|H zYy1CWnV~-@8Y&O>st75I+ZziFW&k4t_K$yU3C8oGt^&p3QiZp#o?V2^^#L0((?7v% z$S~VIjn~f)nFgT-&WZ3@Sxu#inLIgLOA$YmTM&Y^sY z1;ci_-NpBBUerCZFud1pXSn0I$~lZR#`*TguRqelvd%+|fUIzw#ULZb8c@Q-j%A%` zlqY0&*5*!C#k=h`+>LGe-Hjp+Lg$L#kWWXKSt&$0Y>_Y{c!2Wf+R%vOh1=wOa=}LX z#(Ru7zA8a(i-lwCX$$qnb(_8t+PL0C#N+f%m!*^BZnTz1)}w^p=lj5J z?kUHql|zKu3;7UeQ2sY!4vEIbV3KMOInFUotXlB3*kNQE>Am%2b;#SjMaVj8Lbeq?{LS0FmR&= zGuLD5;P`4;U1g6?x(NGqXGRdgGI)(jjKXsup>YTQP{}h|g zjD(CKm;6eBD;>bvXnqu7u7Vbw&4bnJo`jpT+Glqm-nsiNMUW6K zM1BA1y-8RqS#1B%AJc$1Vb9>mH^^eOMZouY1t7sm70ieVSJ##>aM7t;5 zz?5_K*r=4>zzha@7BbFlFo3C)!^{H6>Tt>_)j^qn)$0*%GcyS=MxMafC;tM9FiIZX zr`@Vn=ntg`7$)ydg?JR)q!wV9Ja_=jqq!rNR02$sr!D8}R&_Anlz0x9P8%BeMe>A1 z5im*~?Gkgo5=Ne|Gy*1l9(P>M!IQhOt9+~g-Q?-?f#D_{cTzPh#L7srg!eY}QDH{g zOAD{RHa3QxW+hR97%3nR@=>P`8Q*&yH-$Xm+9cLY-X-hHi#*}K2xuXXldrwIRfmG` zHv+~NDMk1KZYp^K*F^r`mhw-TTNKtbkavU9)&w%|$d;XL=8en(=wtv4BKxMk;GADX z`ja^%ET+>_zIp3s`|+JCFpTs9gn*>~22cc4QpkoCf{K6vtPoPAkY82qZk@skfg`DI gg73L`mc&``8z<{RghAD(qW}N^07*qoM6N<$f=OtSjQ{`u literal 0 HcmV?d00001 diff --git a/assets/images/3.0x/monero.png b/assets/images/3.0x/monero.png new file mode 100644 index 0000000000000000000000000000000000000000..94eed5046a10c8a49079efe200956479e142fd7e GIT binary patch literal 3522 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 literal 0 HcmV?d00001 diff --git a/assets/images/3.0x/nodes.png b/assets/images/3.0x/nodes.png new file mode 100644 index 0000000000000000000000000000000000000000..29caea1114edfd1cef0f6070f5fc899a885369ea GIT binary patch literal 1472 zcmV;x1wZ*fW(K_bR*VDkjn5)vomu>`RU2md4v;6+bfK54aUcTG)IS9eu?-HKw|-#=-pTCJsw znZ@5msWWYizqvB^h)TlNWr*se)Nuv68f;Tng(2)}Z>-LDFs>q@gVSyP(aKW52DGV^vvrpbWq6&1GFubKr zt+qrC{QY0gBLO73{`%*9jU>>zgmw^rwmS$Mlhj@O!pltvERTb=idbYbkSpcdd=9QB1FnM4=%0Nq)c zYlmUDO!iVisIA#TK9)F<=wbspLsh&?dF3x+%=P?O?q@q}U9pW`qD#3H?i`%9j5Vv$ zVwB3`o^VWbDO*S2fwZ>QoC7W2@ND6B=mI5ft`oX4vjHho>G3Gqpw`Kv5`>~ z;e4R=A5;L)Ks1o#fRs|sj2Td1eDn}UChYZg`2|sC;bnH5ERB#)4|u5+Js#0Oid*F< z+CcYb-iN;|xXx;HrH6n~YSP#&^7lwR?GaV@v3H5GFHFxP-J{uY|5N_vhh9*s(h)l(kx8nK)O;&id4Fpo7Rbm9dNb8c9F7+ z9Wd!ZK^7*e1Co9|DN^`wd-0JyRwc75?Lbvzq$(#$IUqG2S&5I@?PK%>EUC0y6;6m9 z5E~CU6tmGPx_~Y<%eZNs5N%?q@zNGJD^pFnv7Hepv*sl?G-!dd{y%9Xh7pKn4+bQC z5Ff~*VYA7NYr}Gm|Cd1fiqYj3;Pt%0bR@X>^Es*w%dQbh8ATvE&PM3%CJr35gz+&X z?R23`Iua507`3a(DcVn>qcQV&ywiHf7o|$U4UOcsCwiCTA|zU3ob5!nl!OopU`+Vf zB?B%&GBjKQ*iYI?8i>TVl;}h$KJ&?Z;o$7(5lJAsJ*}2f0&Jj{zM-MPxzhTb+c%e~ zS}>)=Ev3U-@hxQxkP-g!ajWubU|zfX`MZBoSztf8qQKl>2Dg-4ISU0#tlJU9H!2g6 zc-(kuhh3suN+rBmtQt~EIV@xmiN>LmQiDy+rw4&jKS<6mFB6tsO&aW_Gmgym=IxtL aG5$X{zd+s-k}7xr0000? literal 0 HcmV?d00001 diff --git a/assets/images/3.0x/open_book.png b/assets/images/3.0x/open_book.png new file mode 100644 index 0000000000000000000000000000000000000000..3e41ebc25a85c330b774578e2695951bf26f9d10 GIT binary patch literal 1005 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 LNkvXXu0mjfc7{ks literal 0 HcmV?d00001 diff --git a/assets/images/3.0x/wallet.png b/assets/images/3.0x/wallet.png new file mode 100644 index 0000000000000000000000000000000000000000..afc427964d9f9772b05c62201740fee193e50561 GIT binary patch literal 733 zcmV<30wVp1P)r=p-U8T^Xa_JSBUY2tQ&TSdR0kv05FZ`P$s`;|0sl z!Eved%)7zq4*12tKKJ?qj-h#FD-TajTxCylL^WKah9EjDAowvH{Lg3`ZTs;}J~+`5 zqR@3fQs(YFjJ50P8~}q5yoJ(~k*Ld~5x~3=!i{byDh?#_(hj$o0(2uy2!a9d*1jSU z5B$!LsWobZ00mDIH#|M<#O=lixS}2(1=9ookHYh4+c*Jn?gbQ$i2}Nu^!#}_}yg@j|q!e8ZR6;aQF3@&eA8Q$p|ok~cqWNSMDNvQItsvxQ}gDcoyj1!HOQ{Z&_Wvo7mI~&V~;`*zIwy5p%@4`YO zZogQ>>JlNPT&3jWyHL1;-yJ(nb=KD-5jVWuJ9^4P<$@;sah%U-pS{ijC$Zv4ZKH?#)L|EgYyZ1#)QgXq6w8+Ss0ZLW5e+T@CIUqu|eMepTH|@WZ4;K zmOFC(bUMiA33eNU*opfsHim0J? zjMyS$?v>*Uc(Np``YM6gAXiVFg5J1(RcV^RSg@^ z#a41JrF|^iVa4k$g_G9}e2L`h_Hn2NGEpX8K&eP%taEMIEH)h=?kKoiL3JB6Zzc$u zCGukB+`j*X3)Lc;aP31T9#kzrU5YhDLgoNQANOy~QyC92S)Aul}_VRE1F-X^UPkRK=5?})PAVEGzYVgs)?gRX1d;)+NzKd<0 Rbsqo#002ovPDHLkV1hK|#CZS! literal 0 HcmV?d00001 diff --git a/assets/images/key.png b/assets/images/key.png new file mode 100644 index 0000000000000000000000000000000000000000..0fb694f8dfda61145831a5b6ca7021da8ff1c3cd GIT binary patch literal 422 zcmV;X0a^ZuP)KK*SaWyhG{ZZfx5ar~L77*a(~uW!e1SG4yj(K9n8NS8}D8>32& zPW-n)XWfy@p}K4t$8)kK6oLOSV**~QiIq~hI7J-Tifdar3%~vWCQw0SE5IC_B>L&x zGFZ>Uu-o+50kEK|{+DHS)?F0Cx)L&e!er{CNfLcG8jI1XCpI<;U_tHmqk4U|4P?bl zFx~EgVpE#;M<@|DwM~_$m%Y{nR8VdX7-DQ>!z>b_d;QwRt>AMNk~ zlkgRTpzt4?I0(y%S;7bkg(8*}Y6s%} z-Molp#OA}iG&YcBnc78fK?UgP=*797W;GYBgE&ISvqi%Ypl4zL|IX9W4y}ua zEcuMYZBGGu2D($}RaQHAx{1bs-dqmZQQ()~fckpi(>vgP8E}h1t15>Ns_B1lY9ty3 z=sEZuUqCM&VedBz7`+PU+8@4nbR9Uh$Pr_MMkVU;m)eK7@)&9~)M2HSJdzHF7``#LzXClDNT;f;Y2|12aMYzawy~jPcY_@6K3o{ItSc$p}7k2`$ zpEz|nh-@MjUH}R?`?f!Olb=}9R4+dY3vPr-F4CsCnyYU(#SdNjIwB%j-ZMY78fkDQ zjL$g2eNf1UESE_xqW)uGw56hxWxM{G>m1{$xXRnK?xVX+;~DPabXXOkM$f`AHcfSP zkkAht2lO=$N?*vSCnbrJbtbukVpWPS&Ni&anuMn2*f#}ud=uY|Ysa1Bq&YNyb%})6 zNl17vSMaaU=qOQG&m*+#09uT5TYw$o>^9AGy~s(+no_a?-cFH3KKO@qki1v9)zV$d zceyZ6vR~x|FYq}NQiJcMwu|A zJxP3_@P=ORS6tQ z|G1)k^}na_eFa8sozfFhiL?ef`zsADvqJ%@*Xc)UlB6cN;-=tfTX~@w`(c>H!n| ztyZU=1YW;p~(*xKbw9Ge(zz?+L{5lubj# zxZiDrLXrhNuf-i&XW)taJMiJ?M-MGLQPzg&+9J;8q!Vk*kcgV>bT6+mFvfi6y)8Dh z#=gABb2ViN1@~dO)&-@0NgTL<&P+^<2|S{h*>rzrBaH5jaI#_7EW96-9qfwm=fm}RyDFM^e@g%t0+7s_ zu9nQy)Cr3DFzsdPeupVmjM_UuR5PbVuQH=Eg zSV^y`AgHmTVE86flj@h_tiq{1TxYi3rA5JkQoH9MIkqG@|G=?jBJj#(4}P^3A=ZDS zoW|g=eBUK36z^pSkUikM$vEGGsjDa*l?iF2m4y?npR9~*&iiyOn?##-0Dxqjj4iD@ z)a03IQvY0XrfA{hVB^`82{Q$Ddbl}W_Wdfg?eW#kOVt!8H8Ee`yFcwp# zQag_s#t-0s5H|(Zd*6;zOLPOZ~} literal 0 HcmV?d00001 diff --git a/assets/images/settings.png b/assets/images/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..dbfee77ec49bfa95b19712ba492b1a7ef087b262 GIT binary patch literal 498 zcmVM78Ti=`9VX?8D>pM`7bpl}OdbR8uh!j+E|T zGQ#JKjTvd?Z#dc(ZV9`Kj`C#8sUf<*X_Pwa1PGQ24(%X%wJP3Toy-FYnQYcW)*c#n#19S#-Mqf<}?f;j}B@BHVIflz_X-K{Mm9Br3n(x9}~b!jIufJ)&B?IwYN z4OeI-l9<|h4|;=18(cbJk_9rCo8cTJ*w18~b^F*A(3HZoXSH61<4-5b`xqEFdpPEN z2{hKIWT7@4qrz}n0BA-#NNkas=ZA9++Yc6pc|?hUg?=~EqeY5|{i9$ej$Co@ynH%o on1GFau(SGFzi-O3n}!kj1*(C#uHDM`5C8xG07*qoM6N<$f~HTk9 zw07GkkPAduRDT7Ltk-TP3b}HshTQ$4leHf;=6MJcJ1CAKeOI0Vl+j#7HY8FH00000 LNkvXXu0mjfy>yQ0 literal 0 HcmV?d00001 diff --git a/lib/palette.dart b/lib/palette.dart index ce7d9e28b..8e08253f8 100644 --- a/lib/palette.dart +++ b/lib/palette.dart @@ -85,4 +85,7 @@ class PaletteDark { static const Color historyPanel = Color.fromRGBO(33, 43, 73, 1.0); static const Color historyPanelText = Color.fromRGBO(91, 112, 146, 1.0); static const Color historyPanelButton = Color.fromRGBO(39, 53, 96, 1.0); + static const Color menuHeader = Color.fromRGBO(41, 52, 84, 1.0); + static const Color menuList = Color.fromRGBO(48, 59, 95, 1.0); + static const Color menuDivider = Color.fromRGBO(48, 59, 95, 1.0); } \ No newline at end of file diff --git a/lib/src/screens/dashboard/dashboard_page.dart b/lib/src/screens/dashboard/dashboard_page.dart index 0a4e57a15..792097214 100644 --- a/lib/src/screens/dashboard/dashboard_page.dart +++ b/lib/src/screens/dashboard/dashboard_page.dart @@ -4,6 +4,7 @@ import 'package:cake_wallet/palette.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/wallet_card.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/trade_history_panel.dart'; +import 'package:cake_wallet/src/screens/dashboard/widgets/menu_widget.dart'; class DashboardPage extends BasePage { final _bodyKey = GlobalKey(); @@ -52,7 +53,10 @@ class DashboardPageBodyState extends State { highlightColor: Colors.transparent, splashColor: Colors.transparent, padding: EdgeInsets.all(0), - onPressed: () {}, + onPressed: () => showDialog( + builder: (_) => MenuWidget(), + context: context + ), child: menuButton), ), ), diff --git a/lib/src/screens/dashboard/wallet_menu.dart b/lib/src/screens/dashboard/wallet_menu.dart index 1e48ee325..ecc80e700 100644 --- a/lib/src/screens/dashboard/wallet_menu.dart +++ b/lib/src/screens/dashboard/wallet_menu.dart @@ -10,12 +10,22 @@ class WalletMenu { final List items = [ S.current.reconnect, - S.current.rescan, S.current.wallets, + S.current.nodes, S.current.show_seed, S.current.show_keys, - S.current.accounts, - S.current.address_book_menu + S.current.address_book_menu, + S.current.settings_title + ]; + + final List images = [ + Image.asset('assets/images/reconnect.png'), + Image.asset('assets/images/wallet.png'), + Image.asset('assets/images/nodes.png'), + Image.asset('assets/images/eye.png'), + Image.asset('assets/images/key.png'), + Image.asset('assets/images/open_book.png'), + Image.asset('assets/images/settings.png'), ]; final BuildContext context; @@ -26,11 +36,10 @@ class WalletMenu { _presentReconnectAlert(context); break; case 1: - Navigator.of(context).pushNamed(Routes.rescan); + Navigator.of(context).pushNamed(Routes.walletList); break; case 2: - Navigator.of(context).pushNamed(Routes.walletList); - + // FIXME: apply Nodes break; case 3: Navigator.of(context).pushNamed(Routes.auth, @@ -49,10 +58,10 @@ class WalletMenu { : null); break; case 5: - Navigator.of(context).pushNamed(Routes.accountList); + Navigator.of(context).pushNamed(Routes.addressBook); break; case 6: - Navigator.of(context).pushNamed(Routes.addressBook); + Navigator.of(context).pushNamed(Routes.settings); break; default: break; diff --git a/lib/src/screens/dashboard/widgets/menu_widget.dart b/lib/src/screens/dashboard/widgets/menu_widget.dart new file mode 100644 index 000000000..a37e505d2 --- /dev/null +++ b/lib/src/screens/dashboard/widgets/menu_widget.dart @@ -0,0 +1,205 @@ +import 'dart:async'; +import 'dart:ui'; +import 'package:flutter/material.dart'; +import 'package:cake_wallet/palette.dart'; +import 'package:cake_wallet/src/screens/dashboard/wallet_menu.dart'; +import 'package:cake_wallet/src/stores/wallet/wallet_store.dart'; +import 'package:provider/provider.dart'; + +class MenuWidget extends StatefulWidget { + @override + MenuWidgetState createState() => MenuWidgetState(); +} + +class MenuWidgetState extends State { + final moneroIcon = Image.asset('assets/images/monero.png'); + double menuWidth; + double screenWidth; + double opacity; + bool isDraw; + + @override + void initState() { + menuWidth = 0; + screenWidth = 0; + opacity = 0; + isDraw = false; + super.initState(); + WidgetsBinding.instance.addPostFrameCallback(afterLayout); + } + + void afterLayout(dynamic _) { + screenWidth = MediaQuery.of(context).size.width; + setState(() { + menuWidth = screenWidth; + opacity = 1; + }); + Timer(Duration(milliseconds: 350), () => + setState(() => isDraw = true) + ); + } + + @override + Widget build(BuildContext context) { + final walletMenu = WalletMenu(context); + final walletStore = Provider.of(context); + final itemCount = walletMenu.items.length; + + return GestureDetector( + onTap: () => Navigator.of(context).pop(), + child: Container( + color: Colors.transparent, + child: BackdropFilter( + filter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0), + child: Container( + decoration: BoxDecoration(color: PaletteDark.historyPanel.withOpacity(0.75)), + child: Padding( + padding: EdgeInsets.only(left: 40), + child: GestureDetector( + onTap: () => null, + child: Container( + width: double.infinity, + height: double.infinity, + alignment: Alignment.centerRight, + child: AnimatedContainer( + alignment: Alignment.centerLeft, + width: menuWidth, + height: double.infinity, + duration: Duration(milliseconds: 500), + curve: Curves.fastOutSlowIn, + decoration: BoxDecoration( + borderRadius: BorderRadius.only(topLeft: Radius.circular(24), bottomLeft: Radius.circular(24)), + color: PaletteDark.menuList.withOpacity(opacity) + ), + child: isDraw + ? ListView.separated( + itemBuilder: (_, index) { + + if (index == 0) { + return Container( + height: 144, + padding: EdgeInsets.only(left: 24, top: 69, right: 24, bottom: 35), + decoration: BoxDecoration( + borderRadius: BorderRadius.only(topLeft: Radius.circular(24)), + color: PaletteDark.menuHeader + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + moneroIcon, + SizedBox(width: 16), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + walletStore.name, + style: TextStyle( + color: Colors.white, + decoration: TextDecoration.none, + fontFamily: 'Lato', + fontSize: 20, + fontWeight: FontWeight.bold + ), + ), + Text( + walletStore.account.label, + style: TextStyle( + color: PaletteDark.walletCardText, + decoration: TextDecoration.none, + fontFamily: 'Lato', + fontSize: 12 + ), + ) + ], + ) + ) + ], + ), + ); + } + + index -= 1; + final item = walletMenu.items[index]; + final image = walletMenu.images[index] ?? Offstage(); + + return GestureDetector( + onTap: () { + Navigator.of(context).pop(); + walletMenu.action(index); + }, + child: index == itemCount - 1 + ? Container( + height: 144, + padding: EdgeInsets.only(left: 24, right: 24, top: 35, bottom: 69), + alignment: Alignment.topLeft, + decoration: BoxDecoration( + borderRadius: BorderRadius.only(bottomLeft: Radius.circular(24)), + color: PaletteDark.menuList, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + image, + SizedBox(width: 16), + Expanded( + child: Text( + item, + style: TextStyle( + decoration: TextDecoration.none, + color: Colors.white, + fontFamily: 'Lato', + fontSize: 20, + fontWeight: FontWeight.bold + ), + ) + ) + ], + ), + ) + : Container( + height: 91, + padding: EdgeInsets.only(left: 24, right: 24), + color: PaletteDark.menuList, + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + image, + SizedBox(width: 16), + Expanded( + child: Text( + item, + style: TextStyle( + decoration: TextDecoration.none, + color: Colors.white, + fontFamily: 'Lato', + fontSize: 20, + fontWeight: FontWeight.bold + ), + ) + ) + ], + ), + ), + ); + }, + separatorBuilder: (_, index) => + Divider( + height: 1, + color: PaletteDark.walletCardText, + ), + itemCount: itemCount + 1) + : Offstage() + ), + ), + ) + ), + ), + ), + ), + ); + } +} \ No newline at end of file