From 697e7d1da5f9cee990f19684f3236ef15e0fb760 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=BB=D0=B0=D0=B4=D0=B8=D0=BC=D0=B8=D1=80=20=D0=94?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=BB=D0=BE=D0=B2?= Date: Sat, 21 Dec 2024 07:05:58 +0400 Subject: [PATCH] Lab7 --- .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 11045 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 5595 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 18667 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 36795 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 63198 bytes lib/components/resources.g.dart | 10 + lib/components/utils/debounce.dart | 8 +- lib/data/dtos/characters_dto.dart | 13 +- lib/data/mappers/characters_mapper.dart | 29 +- lib/data/repositories/api_interface.dart | 4 +- lib/data/repositories/mock_repository.dart | 55 ++-- lib/data/repositories/rick_repository.dart | 18 +- lib/domain/models/card.dart | 17 +- lib/domain/models/home.dart | 2 +- lib/main.dart | 52 +++- lib/presentation/common/svg_objects.dart | 35 +++ .../details_page/details_page.dart | 6 +- lib/presentation/home_page/bloc/bloc.dart | 4 +- lib/presentation/home_page/bloc/events.dart | 6 +- lib/presentation/home_page/bloc/state.dart | 12 +- lib/presentation/home_page/card.dart | 94 +++--- lib/presentation/home_page/home_page.dart | 136 ++++++--- lib/presentation/like_bloc/like_state.g.dart | 56 ++++ pubspec.lock | 289 ++++++++++++++++-- pubspec.yaml | 85 ++---- .../flutter/generated_plugin_registrant.cc | 3 + windows/flutter/generated_plugins.cmake | 1 + 27 files changed, 648 insertions(+), 287 deletions(-) create mode 100644 lib/components/resources.g.dart create mode 100644 lib/presentation/common/svg_objects.dart create mode 100644 lib/presentation/like_bloc/like_state.g.dart diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index db77bb4b7b0906d62b1847e87f15cdcacf6a4f29..9618f19a3f0e38c0b09e00b34abdf17dbf1f3177 100644 GIT binary patch literal 11045 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 literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 17987b79bb8a35cc66c3c1fd44f5a5526c1b78be..38f41b185b0260c9865ad3a72bdc3ca779a88d76 100644 GIT binary patch literal 5595 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 literal 721 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy!iOI#yLg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+5i=O3-AeX1=1l$e`s#|#^}+&7(N@w0CIr{$Oe+Uk^K-ZP~83C zcc@hG6rikF&NPT(23>y!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index d5f1c8d34e7a88e3f88bea192c3a370d44689c3c..7964696164f73dce7bb8a6970e4fbe14b11cd728 100644 GIT binary patch literal 36795 zcmV)DK*7I>P)PyA07*naRCr$Oy$66KXLT<6b*0X^rzfY)K`Ut$kYqq)3^o{Ff{iZ8zFfdOkTGDu z_Qm$IaRNt-dG^KEzF@-zEF*#m!ho_+TxnOEcV{QhbWi8p)m2?p@165k_4ck88IcTr zjJ?cicDkph>#K9V^PTUU--jQ6{P-RCF5Us(ck$RCKlI1%0DcUhAA{h#dI$dh4507z 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 literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 4d6372eebdb28e45604e46eeda8dd24651419bc0..b5dd3fe85352ef7b83313edb216f4451cd3010b7 100644 GIT binary patch literal 63198 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%0D>W#J0? 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%0Dt}PFK{o)EI9%3_^^%3l7AeGaqRLDr8%AoQ+!0WT zL!(cEN6?Uo<#O~15G8J5!9-=)ls{kk4CWpMa`8$DR9CJR%P-Lj$c5QMXi$BZKqU~d z{r>FFzwitH;2-|P$G?s?kX%oRip3y`B?&REU;M>ieCY>%;5&a$1c0a$Ir{Z)c2djB zvPUevBsGB{6!XUD#9Kf}=jogQlYsP6?a#9Z9;Hq&oe(c}%3v;Pl*W@GI^`k;tvaT| z9Rs+xPI!6?h0( zM;iOHDg5pjTdS87h{r?l`Rr`o9ZRp^uuy_G5=HT#fJ`EUKl;oo2t~sP2ZHF4gG{{vtHTXV=_26w zp;|2B^3#t)8)&e5oVa>z4{OV5SS$)+(Ig6mGL8@Tv5;9nW@Q!GVj0DJj`t_gWCE$h z4D%$kDd2SbI8&39`fxa8RXU5^j^(8lM#xfDCGIf)bc%_KSU#CpmXP`?+BZ^e zAwwfoWOthPrv&^KmYT;{Hj46?ol}OLxdP(0I(@G-2fl`=(n!_%CG$M zzmi$n2%8luaVH7@62pB$e>}+&a-qV$w5(%ESDpY+iwi)EStSQ`s!?ViGg*XR5J_tc zdQ4oeW*=bKX+RkcSd_M2EigAA8uFo5uVC1#LFxCH`*7y+^RSt1aJyUxN0Vqa>MRp7 zXcSqml=2=a&(pH1*Kcr10DAy-Gmzik#m>$Vl$jg*M~5(vdx*uuX!l3ZR5O<$X1fLc zND_DQQ%nbKJas;WGw07iF_UEE1f9VE!}f%s319q+Hvls=xn|@mZ59WJ#9}Cy3oPf} ztoK+>aC38!r9|S9RebqNe+8G@iOtP*^hwELsG!wpa%n=+=#^?2HakhhyEyYKuB^fv z3h*w04xMZqsqr1nraVPbG=&3WA+v~JFvJSf+-Qh?Kw`YqN1@`nQGbrps~lvN*k zT@{~y4LUi`?1;jp@(j5V}}Vux#Whc)~>Vi@k#DKWZe)iL!OC)0Ja=tJ0QFK-)kIkrD5g2fl zgFuSsilv5_<<M{=VRc=z>d+#0|{wig;|pJS3qG$6iD;0UTY_i2 z^wJA>?MrW?)@VZ;C~PoJ#FmY-+ZbsoTwV{{E+-o84#r~>Mp_T)Op^Bl7K;t>beg#U zW{VZW!H}IbNqKL1Z5^l1p5=)SeU@&QpLYrRm|qwNjw$nx`8Js|y(j?2;s&4zkp!p- z#JfmRk|-s#eRxO9pRo{9VD>P7-t^uID6(%uohxoWAe`!tn%)^`>HR z>>pV!b8oXXLGWnS+iv_^>x6*wF!d*#AY z$K&fvL59lf$x$$5Wtl5_2O4$Lf{T9Au!G!$$eW1_}S*E^U05G0SdV^5_{Kjwmn;-k&2VVF&hC;~h zT)&!V{K-;?tOGRRtA0eTiX-Eq!@@7z?w}wL69Ylartz8VzXe!MU_8VslBPhG=>(Rk z@D`)pK%-EA+V7%VE-{;I&~2jItHU&z!s83GU@RF@`+R<={WfCBIB!IQ;SgWNZjT>> zUK^#t0fJs1dc6*k3u|J1ZWc=)GV0LCFSuAjwcWyv>o?FJbdXLj!sAIIpF2c!aTy!y zq$-!hgWY``7J4WiAK{xn^bFhqH`6X@kr#}Iuygx9OMaie^dw648jkMn!s(BqP;H^t z?&I3k+j#QgHhR@8+FcFxu7($%zl2i$2o`ECU4CSD~lGK#a|6g6-U}!guK$xRcqCnG1+;4rO}dyg zijfU{W>Tt!;M3Ho6Cjej;$HjGYyajKe&L`0UtezvEKlD2)_I>v5Y-^ApZS@eeCdaO z=m-9bfSwv-M*LF|uq53?l(-2S(b0%c(&8w>=>{M=pU|igunGzQ`bi@z!9b!_xvEbe z6!={ZsGSb%=Fz;?C-i3Scn{5Lg-4_}uYUy*e}tPjVuKMp+v9g&c`3st7*x+YtWMSq zT3_G9&i(<`)-tG7iqN{mqOv2JT!NyKQ6Ek9HP{_4SS)VTN(Gdu_Alkp?6lzw##x=2 zRS{evD8n``zVH&Nl_olh1;yh$Fzv%1^x@p&PvbM6_yjU536^%;KR&|6C!a+q8p4e? zuVG4r4u_L*N^igUE>@RgP}(&fmlA=-<{$$QFUI6otkE1^#YnTFT5B^b!(ubT>2-s8 zGq=~xi!D0b+DJt_m1Kt+Dmm$_kew18lter!YI2ycv9ZOBG~U88kXqc@(sxS`&J6?@ zsT;~Vp#s7(hrH;rH?lULLz(s3Uo5+*r=!}R7HKQ6Kx1PCUBa8LN3q!!+11A;rK|$@gJg=C(gbY-wiqgL^BD70YCrzQ!GeT zZ*+MpOw6lTG{)oAq0)uT?nJAaXXWWcDkErLvkABFBx^W@lN}?gynO00VZAlf5F<4R z6E%r$^g1=9Ha6MZdu9C;?%mr(U+JJ#?cv}ci}M#w@veeA0!r03YK=agc=96Db{BUa z>|$|k8^vM)-D(5gD47xq2qdp5~5kj3u) zQwO2s61@HpnyoU%!zoi1$p`Fs=K&g(7GC0>TxGH9WSpiLTbgjXOEaMk6%KHCCWbCd2S}eW;e}ca8ON$Hq zd60Y}m8aThf>b)mp92|gkl`MgkVuGu*!RdXM3x{r0#sjgim9Crbzzv7*!=2LvUw1Y z4HDBGxltBUyArD}$|q6M2q9%r&XC~>ZH#H^M86W0f&xQ2U{dcvO*$QZvq?O*v}dBg zp?+uYuyF8`KlWqB2Kaqd;l5q~(212E!Q2Rc>JR_(uUvZK;`bZ(0Ftss_-tO8vz8>W z#KcufO^K}2xPfM@2!Wa?fCT1)rVzXZq<>3+GafPypZ-jB9gQfdAsK5!R(G3>x~P_N zY=T|P9$-4?qEs$2N4C}I;q19h4uoJJf-6_vV3`uP-GY_%G%Cd`9zS;;>Vza-RMaY2 zIQ=nfpFW43Tkr5xhxGPCsWnVZ7HA5|DcYb+O=vf}xbe>02>7B{SY1R%onZIw0YZrw z0t8UAP2se8V3`ts*@1kef<~>*x6|I?5sr__*gE$Z>Xib*VbVM$To09ZcHF*xA7f3! z@=B5wl!=bu0@oDVJ#?Bx1B_yMeGPAX`87QE;s@~FJJ)zLN}{x0rwh?U9O|Hh zrG-W04tIEtABbn5j(~1qpLY?lbOsJz2*EIc#ayV>8|;9yyL%V)dJ_rC>UJ|G7B4>e zhkp!DAc{yP4zJgVRBQ>V(qwlQnzS4o9WYak{C}=qyM-iBmoAXQeuu!;EMo$P2d{Z{LL3Va3@Cm)J$-xLU=*VU@+V0wE&1&v;J~ zjU}1&w7SB58GSafcmx5mmi0Ip7EM7;2Z?TMnxE6=mJb2B^VkXF zBWi8Bspnq6I_I1Ihfr*In4BUH7vJ&*?2bG?bWmwQCLuN=Q3?Sxoz7$E6ArgAYMWW1q@Tvdy)4%l3e&y5e(*Qp-0s49YASXd{ROrhuzqI&of9+qs zMvW7_UMX-Ynts|0YJ&7)pvrMZAR}ptP_s}YrsWu;NAJ&IG75)fo(Uf~2V$ ze|V}&;#ews3Yg4OXpIVjUMI9}8^zK-lwKW;avp=O0<+x;k2{7|vy9P*F!p^0wk@s1 z7*})o$!DObU0BRx)QU$eCcCh98b=35Y}={y+lWNc2t*@TTsw`4&BnsGjY1Pw-g%dK zyPN0EWvic_c8xesYH>rlrNCct-kD$5s=lncq6 zf9|udA|56EQ>*aZ8mk~3e<~HC$pDk{DZ7)uvfJ+!sMethmnQ^&*nvZ85RS3@^J#27fM(c|wns^LisehEIlJOUn=$nlv#FK*x?5=lS~hb3P80wU*9N z7Dq;x*wp{-(G4*nVgI+E__-Iq_{A?CKY{^z2nKDO{K((SU*E40<}&Ed|NJwbURp|@ zA=tBgGGgc}-U#UlEYPq5YD-fdVhK?Y@YAR9l?2V{5NrB|G{T~TJ{S(!7L;B{quOG* zMT^Y>r`3c}yNsZjwxu)7Mx^IigJn9#t*dW~hT7)9cr-()P-fM*g{1_4nDIE7a8I$h zy~(!-)usf3vs&$d#fwlhg1fi!=ntw`Ohs`1nafC}H`vlOcYKJ_ei_HPec0R)9F`hL zFQzc8+Y#Rur!H3;Ac)jaB&g$ukWDM z89?b)Frw*`UAR4ZeO@R^AK{n~^dk9ll2UB6n+V5~xOY2;-e8DG)Q@O1jFt5j+S_B41PxU|D20CN-o^ttj4Z8+S#w0d|+JRfY(@>s&38BxlJ-xJ>fZlrm?L}x{6 z1d&&=U=gxIJUI#(1bq458?;Pipgq{zzx~YfANf0vY=EhekO3f~NdNKGGtGxVaYjgl z`?r4kw|?%aryl=NYIqIX=eexjL-n6dhM{_&ZF=aMGK{;#bwH$Ou@$B_NKsV`lmU7@ z6^%xlog>Mp+U2n$Ojq$}2$$1>QNIS0)`vzCgY~MAAel{2EtHYUq>(RFSxjnTp2BK3 zu}le-D1kr>s|#r~2uz0wD<|K$`GA|kdv~i?UG!mfIfcbD=MWAh8INKjz*8O!m7j7k{Vs-gakuJ1wW@oFpVU2}rvUqy$7vP%Mvl@memZS49*Q z#p~aOsHh-%vGDLNC$0w$(Ia{4)Yw(smt?=!!d-}L$4_w$=MS(cLqL0q5nEN*sZ zc4xlj^LamSd14Vxw-e^RBB#1iDhqE&XLMp?JB>()4eTiLnFemS^*92450qvFix-!m zRO|4$JR+{KxvUHfgWcglB9#^vD8sh-?$RBP3{{)UBjrr9p<;ev0g=(DcnGCSUp5sOvqDvYI)RWhdAI(Nn^yOM_^36+^FgkyquYT=;zq#w~ zpZfi0qd+{{2DoM)@N+-+GpFA2BX@mFn+1IHb|2Po+yp~tjGu}82=9X&AifnljG6d1 zXn|&v$qdduxhCGAtnnB2%wlF(+h2n7moGxCm7zDa5#i?G7THu9+(bE)Wu|kFFXpjFC;UC;X>t9 zJm9A{kXveb!rBZIp@2v`h_us}Zg?c4>2=+!)MM82J1Nt&EfiU!gkES3>`?ciWp*=W zNgI+#uVZX_9O215Nad37dILzrldxEva5z2q z%GVypjW_JW+DZ)PE}X~I>?kZ&w?K+Zmt!cFR9R?5m+G~eq(M$hMv=|tupY~z+SUev zL5mU7;{lA!O`@W9MIDwaD)76Vuoycs)arKXP@7g6~a63H+jgDhH+hBvQVOpwYn;#I#wmwY%X)^)>kqdyY^h_|EJpk zT34%;LcesD-+dy2%yHPc1E+qo)?ehU7A48C~G4>yIN1}yJ( zHA><%!I8GwhFY)6Fbu6GjA)}%FGI;C(5#olGNoQFqthZ}+7kn+R-MWt-VoaeMx)5* z3NYKeP+GJZAAwTLVR~i~?qCT2@#P2LvN^Et;5-&DUxC}>f5;2PQ+nzIMD6raCvbV zeK4HD28&sbYNaL{+aK~{E0%%J??Nn=L`i80U74@bsLzA(s2{;-1nqWBW-A7|*^!@O zh9F1rSPJ8lBjRhcwzP~^w+B}^j8?ygvFQoGV#3_SEL^?-Tw> zty)<#ys>w3faG8k8pBh@wVb?b9Jc{}FH~uAzq;tOIm^}9!qik;?Fj`iA<3>k&=zPL zfSZTkBcMu;rItneY_klk&9x{lEwzRM9S$GcQc3XU;qNUuYJF}v16u6{&YZpQ&u@Lp zPrduO*8k760fslg?s6FH+aR*b#XqB(grvJ4v5 zZbEscmY64ZXW%*@m#8L`;Pu+7Hqh-;5!REm$9gFVhpvrkK7~>tgGRZ8nyRANsEe7d z!(v23?ZE4>A+~ZBQ*-mMF<84&Mb~JM-^u53!Rz;+qtjvY$|{s{9i!tBRI7RM*LPU0 zXzL7^IeY`Ux-QyE8KpuNmoBg2iAT?)12-!53hXwc`2N$G?#372fU)S9)b1C~pMjI1 z-l~d5Qw4M;oISfPy$$_2+YLodLl^B*Hd8`t9*;(0*7vctl@uI4SFFlr91XbTHVgWl zaJuL*Zk9Cq7H>yIF9(g+=SDGK#Mt;K;_+?x0ztHTZTLa~gvQ6wS34M=Uyv{jmxu98 zymd_?zTrHE$vGlclDH(!T?`_Hq{D|s^%>Yh$Z5{oK+}Z}8KBxwOXI?D>MZD>+~h;M zl&AC}Tq9icESIW3z#ABaQZ6AETg0&wH{#s+^N5U$z&9R2v)a;< z<82NJyV%~|6e~n7B3~$s3Y*!bqr?Mtp*(2w}8!!bvY2&1GU>t965Rr7tfx-zWq_m?>~U0)tC&WnkpyiMsb^N zbSN1lf$og~e=_6LW6Q0s^#Du`o%VD3eo8Un;_ciXs8$dV!yr zNybgf*H~r$#+U)-4y$cIYNQb|dk3v}7}BjZ4yScXEY$TwbeUy%PSAu79gw$b`r&!%;eK$exDyFj0m95+LP4LlHFbga(JI zT*yij<%)uGxgw_%=Kwr?Sl{u)aam1pngC0`Ef$E4S_Otq1FMUt(W^6cr6CG0s=(%^ zCtxQmxxR*=%Owa@l`RI+hcm`>krVSM2Ly0r$pAwQH_ z6|=`~h1>1Im9uBW%&OBfAv8XPc(QoHG@+6!F13XR#CKo1=%s0?!)dlk>pQ>xnBQz4lYhL#T z;Q~YiK)@x&O)Q3ngfI_(pe}G;+Mg+qijD|zvvTV1TQEjzE#O`&uV6i*p)U&%hxOnaY z(pwwI=c~|LEYR6p7#p7w%JcgAn)D|+lSP8WUvk@vWeB(bx|08SSewNRhEH)wbD0qu!7ODz|}N54YV0k4KwVnECv4^%x|@b0Es$o>&<2F*%@+ z8-O=eTQ&e6iytAhbvJ#v(_)r_T>W~_=`9F z`JaFI$sOp=H5FjrRR8QSZ`}R$XDfqj|MX8E`}pkq>`|@p8RD`UJj%(W<`SmqJ++Hb zn{p0azDRy5SL;Y+vRK>72+xQ0J2#K6NBVOc4x3336CyV*Gv5gn#;%G|HYqgeQYnw7 zs=(!Si8`!NuV7?s68U@%vDh}kK|e-AL8!G7>^`pu%T=|ERzu4c>v#1sP`5k1Q0pA- zsfdh?VgF4pl@oIF$^~q1ZzEq(aPY`+sI4Y+dNW!rBN|NxX*i*%ZQS$8&%Liv0+$`*x=#h|tWKSL$$^(=Fy)ya-73wOWlr^`=sc zP7b8^Ividp2WpCf(8#ouARB8-5)P8i7GSh_aPY)QaeXG$>NDEHvwg+EQM&#Xr--+X2#3I&A?k=V2Pu7 zj&c^jO{H;mh9wXmduQ`4^mvo$YLCE~0XG0&D}J4^uN3s~x#cEcPML|oie{g3@#5t( zr%t`{?x#V2p0@mXrY87V%b?%=-S^)0@>jg{J@n)!73r*m@EcH1qfDf=B29-=5MRjxaS(*mDGhYlgnW(D!hRg8s$ zLPcmdD{xvJNXKKS6m!^n-BHx*3gXEOA_2byPVgeBC}l*)rx2MK!`AX;$qKAis<4{v zs8$;S$2lAp%Bamme*^()t&t=8Xj#8 zHd>HNCt%hY=gQ)4lbQPhmF-0j7?2SUT|M;M0`7idYu#CD!hIh z+?Ec;CTCzY>rt+-wy)sanahYJD#(;ulJv-inTUnkp%;nb{N%VOmq?Y~*vcR>;zlUs zgHlpOGa!x-A$kBs@c848iFd{EgY&Sv-I$!6fWz#>`EyUeVC)$CC*jKSC0x3&ir97w^;QQ; ziwxMd@O>g-8|+pW&R$vAq0J0)$=EY6i-DVESVr;IAUHDA zgwv{?Cn)I{!-kiQ>ktN&=MxtSZK^yhskIF!M0tTdMWn+x3BpQ}U)ICD|NieEedo`; z^AC5O{@)UY_jHT=nVR68WzdisG4uOXr?|&1lBh!aO=g3r@WHhtN>!h_A09l_{XrYr^I8V|_IZqt%5> zY6}Yo_F-dv9p!vl+$WA7J0`wGy!{@0=uxE73d{~45{ZH|iUx}TU40+=jtSXZ5p~wl zI>2t~!D6#Y$i>O)ufzJzEaTkY6);IN#^*Bv`9**wM9#m<|%3m7a}PKyc!gx zCWlj@P|#ebIlXl_P%P$u=%|v`R(~M z!MksP-5LR5i2l+q{p|a0yXD3^)7dJvQh5oy;3Bq>MQAo*-`;u5&P?FK*|P|Sf;f5T zki6)*d|IdkkDpsatqph_gi_7I932b$aA4mYOuZ&*wW=UW-F5@*W);hg)8CzSGk}?zy%SIyZe(s6K;PZOn zaCtB>GcRA`f6JuPgWNCD9Gr6K#S?La0|Df6Ioa$~vC;m84RWQbXuW`e+$6g&i)E%H zY*USbK?()mYu-wfJ&Kuv(S#?TIQ{8&zT=m73SV}YKblhK89tuv26(n+*mm1(w;j6U zj+cI_(={Mh(K>gV#R#X>442b_*T4GvF%t4&ZFLRPvokOebMEzU>D*c5Qfc(fW~pJ1 zUUvY=Odeb53_@-Xw=%s#FlXI_Wy?H{_BxWrQ}9p zxHb7nwH^@L%p;S|AeGFbRIkHs?Bej@35-wf6N6ncQj6(r)N2iFrLu@;dni;}XmlND z>$(UA{DONcrK02=(-x5iz)XK3W76xlV`g?zYHGgOk;oV_sVq!Z65rNw;qo$kUXMgE zC6XzDA&JMc%oL=}phI-e9z-XmFg-mlngznntjTFB$OYyP_+{g3NRNip2+XNA5Kn9i z1SyRy6MK3(6tXE~w$^a)@G&&HeVN&8ZO711$}&T^?e-T#$I`2*Vts85KCfGXPuRZ^ zVdLvacW3&va%f8DIxb#1aA?kTCP~|Ix!vN~8t{4r_N5U(KA*?-`i4Nl7OP2m5ym^Q zeAAn)B)+}jo_juXe!%+~nqTd9fBTL%z%w<&atqvb_g(*cWNhNqs@fFz&TO^8W-?%6 z)Qcbc(YK)2YoJ=r!xtJ6fjF-+wNjB$e{6eO-lQHOtsbznx+&i~;`Ly5JP421F04=D z`rHKNbQ1B6RT&)78JZlI7GXuRMFi#f)HV)YcSxp|EWHSEZY2{iGOrZC=EfF|Tz^bX zUVX0vuRwWjeB=Hv!>sG!$oKyc^mdofdOM9altvSUVg+Rmgmgx@JV8ACz$57EYUsBs zICA8$aMsOjG8YXfq|?Y}GuTX55zo}bXQ*dzqeZ!4tA+7sSmppqjk&@RC=CUbVgr+t zqbQY2m|K{U0TUUXoIj8Paq;4s46icT0;a~Is5F|0ZzbV&Sz&S7B{4>+R$;T6;2UV1 z=Vs^eqFZhkF%4%E?RrBtKp+^9h3BAEB3YV>f_#QIR}r!GH5e==D3vOlPA4kOrdZHh z`oR7Z$MM*sj|%y0X=NGFkrC|QzYk6)*`|7|t}Marvkm2e`ID$kb|F6IC zo4+@-KIh_pUd`{$^5&Uth^K3YuX=}amT~OZu|p?ryx|_3lfo0a#8Dp$yx|94j$=oU zp{C~L1TtG3l)B4f>SRht1|%WMB9@mo5Zj8QRIVZ-CbJF(4`3wZhSNqxnGV%bPRf;X zCL@Y2rCN}v&`c%;pU;EM%}wOfDI7m`9Bsj^8^Rm$hI}GzBpdSbr7Jjj(=A#`NhvEy z>Smi2rR_~Qbv<)Og+SMDGs%SE9|o*#Y(r6Lmtw_wYy(EU396DoDB!@t93z*yaOri3 zEnO63CY8z|UeaM}Gl_|*Fyfgy>P?7H-R^P1ZZnG?XR@H8Sj;2r4+&5}NRX%Mi*7mw zrAE7y3z(UkMK+T`s=$*sh3gK?p-@$%R#ufV{63$gFY1jJINW~tT@Hzj?dtkCdi^FV@t^tTvi7jdh{VMS(uYo!osmc3}fSyLP=S?vM3JshYlV>rj$c^ za~md`1D7~i9t&e?asqXwDYh_by@KhfD8i8up<+~v6&Z$6;IwD&UeucnWK$V5>Z)We zbB#<*jSJq-oBF{1{SqR+vAQlU9HiFe3kAtao}8RQt=*Jnn3B|5MZtyTl{ao~Ca-n+ zUsL(@?KZ(Xe{P5d?d%131IWKuz3Nr(o!hhUMvvVhfzU6y@hEOOc@)eTu2r&dyMiKe z?+$Dm~ zaPG`9CZaxM3nk(47wKA^C3HH5YN;T!YIndd0eq{mEjZ}~)Bzg3w)9{#le3t=ZXdQ{ zo0y%M5xPdL)4+6O6p!5h0JgVdGSH$dHIqqW-@biVTH6##b=bosO}8Y|FI`y@4FyZe z3cX2PR>>ef{p2OI)fOCf6Kqy)rJj_abe*G`jlq4ir%~HIG#UeUY4T$^dG7ULb=uJ7 zAXR7(ntp_p1Wgur;Ei3xXyK^a#w0lMMDeiupV)uOx7B zX$_%J7#4Cc9VWQUfZeP^zg6T2&%;bwpT8}?e`&*$;0X5Kxz_O8|#Rtv*_qd=o{R~RVrxf zy%PMVw9L@A8!~UOv0?YSU^5v}$QCd$9Ymp2#{9x{`0VE%5XS5N0}I$rXHY6t&}}xw zKE+}%L2VHsQ=l{3#JAMva$saB;aZg$#ok`iMl#LG5H zCbz`bO$OK;7C6i%3F2nYz(}b=ArF=2Q>`{8CPqaJR4mm+#wa1qA(hJ#+ zp(WLF4Mn9bdCo0OFDr--WwIQGvP7~OXq!lOsb+`RZuiil%_Et_Rx2vJ%_X%4%y+({ z*=(*oP3`}Tli%-T14y4Wpic~MfnlJwz@mTq(Lek7AAa*2-bT@y5TZmZPcBbK=JS1V zMSm)YLHlK>@8x8e>LR`=1r(JYzIfli3ocD4)NQxQXCs5Dqd`;)S)g5$6iK^Yhe9b0 zi^(7-IWu~LfdI@#lhn5y*>hYkEJKmaF@44+1TD23M`UzLHlT}va%K;za6s2?qTTDj zKxa1SaN+VQij@YEnGB-QAT0elP8=A+cz6W$MhRVB>!emNnzPY{!EVLe-UGOB`s>K& zs@RC7QEhNuV3R1;N~MNOstlLgF3xq;avLtc6%%8OZ{3z;l>OHophgiolLw#v?7v}Z zd;%2;O1fPX(piZ@68|K9A2zE6scZoa{!NXBgk{%js{HSkVCM{#rJ#h>fu_3RYav<_ zhKg8>@Ox=3Uy;o~t*_Z?k^~t}$9s*YFg+z1lJo>S(;!XQOq5Y&7y%(&dXti7Z6uVb zgU4f)611x}(XMrnuJuskdoWmmPdN^;E6|{8t3eNojVV$8$k}c9%iJnZRzAsFXsB7aut@J3B2RYheZnIeZYNCK<9r z(eqPJ&Bagjh(QspLKg1GG%hYKVRdaoB#mx|L*i5OnKX>19-J1FBrbxvVet*AKdJNG zw{Jgkxh&RK*KqvkQKS;vf^bYk$7C_E?squcl9)m?1zpynebgEX94;@Mqx&Veg63Fe zn+biR3-xvvmsiN_EWv;-B4HDFn;(HM5W&h? zLL4Bt2vf;48to3$av27jNt#4jBa+rYEkib!hq-Ukrs{efQgosih|Pt5%w~LGYe*ua z-D*K3=s_k|6mu{N(S<|I!4@6ddTk*kdVMZo=#tz=N;CyHn;Ur)S{edn;YqEdFv$$J z+X17F^Xra8xaRT=Y?Yd5ax*^7qU8LBrzmG5qVS?dywj6hH+hDqRJccXEdJfd&+|I{ zhY$N4_Q}<6(e#hnziZ6}Y#;dJ-+A4e-~5K(^?N*;x8t)sx+sr&S^z_%T7X)}z&|!G z#4}>hR+|lWn_aG0HjMQ6q(ij1-$HR~1>09HK~XDE)hgy@=cJCUlq#5;nHJhXVk;&a zz-+b43%ebU2~5Y|uTd+Ah@2dp@XTJ+x^}q@p!>9Gwp#8gjtx@`*T|Il&|0py1#=T?Zz&4^{_L=zG}M+(My{Lrv)*SE$1k zu%lF=Xk`Q|Yuj-7yzuz^f?!edXSMlZG+1%*;ziu~hF758tc(6QmCj>%WkY;(3dIuA z+i}SZ=(XEI`SAJ!*p6qBFBecRRiTPnswcwzAx2L=p{`3*N~}2qHg(x;qS@tui6|BY zGqiGHW6!~x)x^e}^n*Ua;h?znk&B-%DA-CBQE6)%K-`pNu%{OmD>sA5*hh^9U{#*t zn)>frA3|+FA2#`{eIH$}`N$pdC)HGF{eJ(~0ep7X=|7zMKJU~2+t~oapV_S$9+pCK z3w-4ZpZwF?PTlfi`GW_4z>q4drNTV*A@T{9CLIAiHNwhTpSQ&B1jNS&10FW1GNoih z5(6@H%-hmKO(&39K96RlfNVaCY9%X^MhZRBsUk*3yyAtqx_A-6@Tgp+;b0K4*b=%m z?KPvvr_=66vsA#?^{)|Cm60xJW(%^_I{e-s9zJ~uN~U&_>qXm#I?>$<646g`D_7+ z9sDaO(D(k;!SHc|o5CMuQFOv4lXNv5lA*hOti}-cH>!X9byfPB{F;^m+0S z%Xj!Z$d!u-@IY#|q;#Rsg$zNaa57`SX3w2E< zq+c}Z)NL3=z$2m8q_I#CHHay7nRGB&#NZN*rcO@(DofpKoQSdk`h8gGM8V#%-9=L@ z&^0fU!Ld%G+h4dw>9f=F95u9K)G0y*w8blA4Sv`me@{@*MV-khf=Kz=lD@LESf=8v(rbR z)<#wBB3*8v(r93Fa~=D~$6(E#!^xYDVrpTp40>{jb!qa0L9NUpluBK(jSY0Bh*T~G zrCt&AWqT_rU-yQ_#a-^)`HL8xm_oa4l18zu>p^Muu(?$git|tW#NGJvm%o6qkXK}q znKDH{J+zx$#J6HHd=d_i)hvx^uL6uRIhumDi(MZ3=qB%rIUWPKP$YV!iHj(;%&nYPln?73*{^RGy4B9pI&n zjfpk9PSS7~e6OXzUArn6mJ|-14t4|k03FnBU!q-@Bxf|6?rgPMS9UeN-_hy+?cM;p zZ-Je?fY_S)r(+|72NG{Ba`o;?f0RKj%`zm zDe>79dWN1{+0r;S8c?zcaaCShTolNxU9SqHSIigCX*c8)v)Zf!BPbo>+cCHub~LLM z*z7K$L@;|da^U;09Zw+awL{0jmr_Het;1%vjI~%!Hc+=&#faMqN9H0H4o~C2@fSf+ z=pMZ$DK!pZlorwH7!iz&!WD^%>DA`us;J{O*W*~fvVzgcG5E*kL~_{eba46d3MM8O zxIz(6#-*50nkGDXZVjW+2u8vo6!Qs0A_3^EHmt74#G;)O+t}tN><$;K4l8w$NW@bp z6iGO1i_Z?J(xMNb$rVp)>$cVYO>?c=^6+TR2byeayF1L)>Jf z89R&`H>uu(luljXPXPSgF2dWj3~!&U;{KNBe7;Ta&Ii~joF4{id{ZfO@0afR%Uf=~ z@g_0G70$Wl0Yrl+y?83}YdccE<$MrhQPB&C)uN80dKHD(Dr_#2tDGW&F_0IM&xjLS zp7w>z@l`AEc>So?6kNJ|9((uhfqO6s^?LkRyznHZCTCD7<|Rsq%CLz;FGHp4hSzCC zIhR1M-ay}=N3z_&#q}i8>5BZ#cDD^P0Xr&}zKR=fJ&wuw15ipidCt(tgqU-gnP=7q zd?O>Uc)~K|TUtDe(WyBpTP{BSFeay_P}jL+TJHA;u(Gm^LZO72g$d+KRk4F<_HYgxzhvlZh&hI$9N0KO>p;{@7(+DcmL8o)6)}TjY}tJv4YeSnrmyGGkj?W zl^ZKbEnJ&7fLsl7BQ)w&)G}LA;xG(>MoL6p(5OP!>mZv+AQjt|P`iN7Cr#Al%jXfD z2x4?3idI{N*_$Y#!bqkvLe|Qc8`#WNkj$3h zA>+|$L4E52Jlzyd-FB;>JZ57bPNxf{QW>>E0Tv_BH5f%>Oq+7PykGm`J-F%A9f)rw zu(Eg#+=!0IG&1?3uo@Tk9mdkqG7PB09f=~jofEeV{&&AGjJ3@qIy$q&wnn0(D3(i5 zDvG=|flyHB&Fkx{Fi}+A=^~pii$I<6I@`4RH@X3g3JX@ zLYmiO6G2X+*+DX0fU2@rqHTE(Zi^0nza4gJtjQ`hnNi6VP^h+%sdZ6jjW0Sh9qc+F zU^l?yq2n7}y$#5gS|~F+;%PPj7meGbgWak@p7pk_SLzwxxTEwT~Lk3w#UltzORh^GxKe-H|%xbZm1ww;|nAe$(gP08s?8;wFP z2fNJ#cW?n`*6aAhXFrdZ-Ef`e1VQlFaC#w^&Q+ljp$Sq z9+#EQC#YnyQX^N&S%k(HFh0K*7PD2%bmL1G;P8czO{E2rr8Kf^+@C^tn&DDsKrs`&nMlp3HF{`}=cLoY zZ#BqVz--fLDf1SqWEv;3Rivs-8C(r-8>Tkq zrq_{RMfAbI*$Fx5;tI{1;VE0bVH;0mh@lV7R$aI%%nfKORhcQ&73yngn$(jN^>l0z zxdhc+eW)aG74o7H*6CUzim9=tuN2^;fQC}cmI}@)5*0H}uaxl*pZGVt`3G)+)#woG zm6zP{GOTYYIDP3HCZB)DPiuw2}CAm z#de%i+T!*W`eqAOm(O8pdJk4NljwrE#cm`MNufm7RRdh^J|d$LY$q}jq_Mskhf&Y0 zGY`ITZV7s`6I0U@$Yv9$mMT)aTOEXU0k_jDr#@ldQmKZ^>)TQ~@oHrVHa7zo7$Ho* z+kp-Z%=$WE$<~{6+!F_Pp;+^SS;_2CDoT6chs#n!Lg`>B6CdHvD-b+sliCW&dh0eI$X5jv#p(j{1n#uVsNro&CN z=@!83fO-YZW)-RR4TOUs(aCZ+)l-Vd#$$3bWHV_gZy5TV$s{o|H-}uYDD(qzZTce2 z>0xAK3}-j%xbKk*Vqfyo7ahduvr9O7Xa+albOY|a?-AI2A(ZJ5SFK|2hy(SNN6{nw zpsrwiVhk>?1=G{BXwssks-V-TVr>2ZT)_w&b~{=fRU&gJSV9kBVp)G^Nj+8&F*@tM3O|OIBPPbx3mALYjLAf(zdcL5g&(0J4x%3Lp_B}fr;+;9eSNnk<|M52+ddL5G z+sDVpMzuefU4el}f;I&v!_sIr31x!4f*7ERjXEd9HMG<+>^2KB$!$33JV#1#J}Vsj zK1c3#1&UI{`qCB6(O9R)>gp9qNo@9d*j!tI+iI5qkJDj+%^k(PXR?T`ZQ=EAcny?t z6@UE?_uy5x9mdI%H{kwrw8#P$m4pfUJILuaYlA}_K3zh1vT9r^NpbpaA zNyBD2rJYn7oGEoWBdR1ETdW_X0k&FbnQoCOEax(fHjRn(XsL|>J)sMq-z1xxg=}4I z%Pmq;yC|#7)zkvAX+pq~$!pWY@1^@RIWStLSH9RrzS=}h=o1DU-aCzUvyNh^0GFF# zBBZOh?pj>iBGZ$LemL#jiTZrUrO$U`1MHj-58dRr_lJgB*5Ci#cm2TYU-#1drKA{+cQc0pI+yGQL(T#zPa;|B|SI@*@>vi#CKmKMcZshRyAHN5$zwH=$ z1~Wc)?*lk^_&Pj!VOef~H^1gK%sFzXD|uuyHCSyXm~9pWeLlDxUYRRoa#`%%w+Bvd z0Ihx%N!6|x+ZGC0nCy13PDyTVN(>UAT*AMtRv*bkPF(lQR;y4MxN10{BJAAe zq`KYK6ji#uP%4Ii166m7l5#M=%|Pcly4Gp4fDU2Oeh+3N;PcTyJ)}IRb~3=|b(@ zXD)30%dXR(h|h4~^@5Z>FZ2d@x>9I&KVbbofAhh&z3ip8znzW{^1+ci^Tg;$FH$&) zr&}Tk?DRMTs3Et$EON)tXasg|2s(=cwNe^gr2-r6v+D)TIJaEH`jthDjZLE8Wz-L2 zGwaCYN_h04M-d&P=%k3~*f@%92YQwfq+_dSwi~#-SrnU-|M?Sd#A>RD&)@q1jvU#G zN4{|pZkrW9`a`e9gnkVceFKFegZi{6Bn48}Ro1MWI z9h^RM2Is$i8ilHgx%p|h=oa1AqoCF>Id@3pj@j)v;)xWT!658TzbMcOl_vBS8#0-y z1Z-0!XQ4A%wzWH!$bKTx9td7;NS0m z7~|1^EHZy+0y>)=!O{JiP$O5yne!L%s^X^$(Uv5n0*`r@*thoP&-NHl^>HU&Kl@JGf`DWuV9m2u?y8?blZG0`TRzp#jN zUtdI_qQD*W%Eq!<`>?v~Fxf(~f%sU3VhSCT36-h|RSK5-ENzgMW_YJ=Q+Cepa% zMpJ95cIr}WWU#>N3!qeKz~c*vM#AEDiuj!UkA%sYS!xn(hd6W?`+XD{GE&H4Y3Tyg zLKgK(S#BpLxzNdtb|x%stX2a&ZuTJ>@x66%ItAmyG0`j$nWI#B~I*f$faJwy_ zC+y+lhcP=p4~N-;^B2xQZS|4PWQ15}wYgEL)nKxFKmCb+{^IXmWAP91{^uohdA6GU zyKw^yA9F~P*trRYrO>b^uzu{LfBHwqj~=?6`cA$fv@_wGL(QjLCwk2tt=*`jRq`iSqcY~-T-!t{T|l8!M|jL3=#e`Z zK-&<-#ME{8@|W(#nBRnY#{eJ0r1dTo)du!0%;IyO`3%-#NtpEpyz!0`Sn$;lrz*^7 zhS{biEnd0A7$mR2wFZ+B(deY4K@zv0otehS$OKBIDlT8Rh~-OLC@T#>--XBHKycI} z(!_SpjAFJ5gVljdE+bx|&6W}8FKt2Xn-NdtG3s*)-I}LxWIQ0e9JSL&K3|5@7l6YX zh5=^r|J0kzaL`WCMe9PdaE4fB3|-i?&qiUBS{Qyu>k{(%Ifo&oi54l{4wP~MvCU;% zIR6b4;@hwpyCSr4yFA!`=m6H1mxNIoj7;DQ_dO_LmWaz#8_MOz{eSkMzx~C*;vZuDtloB(K3c4d_VI$8{=>56xo(!{`hB~h z(P2L@%?8_SMVCV@ zf$>P!wV>0e33Aj^t7xiK$q&e;lPFhfxbe1^p;Rr4fSbJh>rcHBips~*A+foFv**@C zX;s|XfXmoN-{KG*?4##5#R1_p-+v1CedSRsZ)FAcd(n{@+&E`Kw^>88S%*IqL8Vf~ zl`EH}6w8;&aQlNedGm|m3`d2pUsyYX{Ra*R@BhNN%W(OoFg|}628R=#(MfErTof2` zY4I|$sZH!Zb|a48`rlAiDmeGp*YS`4=My-yxXS$^L_0#Rgpk9dF1TGbSnO`-^cFO_ zdi3;WNy_Bnw_2<)+AN~CB{xW1`q&pp5Qb6Q{MZXv4a_cJe61E{A{K|HVGNPx_Qv<8 zr|+R&E+DzJf@&oVB~QUo8-5QRErKZ2nqWesQejY^Q=Xr}>60^a;wj{?SVX|@4}?)~ zb%oQ^>gsX+!llz6{>zX2ca^d)t@Ig|Jv;49b~e2)*y8_gZGheV!0;yE1{m6`3uWT? z;p;-b{oY^x@Sc71bIgF<-bx^zVDN-PJocxj#t`x||F?j2DkrB>yQyGuY!s0wLuv@! zwWSnLvT?aZD0Xp&Cg5`W0E@;OBJ3)8WP-=((9`R1`OK5}=%4>JlBpzaJ#hdfr7Q4X zJf6bWzOe)&TDbcMzYh;Qcn*(WiNj;J=XE8g`?&-0%xwZO{zxvSIRyPZ8<6!8Ca~EN?IYn;3Tq%c*>4YY+Jc$G& zm>P?qSkA%bFbV03n&VJp1f}g&)YS&|o_vWcFv5L&H|bAFOK~w;GH4_H4thBA*hBd0 z|NT6wl>%OdI7M{x^7h|v*3^I(n`!zS?jd#5j zhJFu=rys`n!Xb>$9}>DkrA7rB8(XTX48p}BuZ3KlYFUvD%bJ;skHQ@exoFfS#I}u? zn7#S~K7{;U80}`XYE9(wMXapHWunW;?8WmJaPPl-Mi3K4slaMBNfazk|7Kf{zR?D^ z-!BdeHmg+{aKg(Pg@ll#QU3p7ZiBI>rT0)KX#f{6|2N&2`B(-iPpK%g8ku8Y7W|*m z#AaLb`y|`5P%U9|bsh6_Gw3x{IGuJBN=1RPeIB9+73Rr6Y_##`fA=X&``viavHf`Gulyq3_Kx>p z@%$yc^(XJbufO}9BJQr{i()fkb_bD4r$x9;dq#@;sWzi6Ih_`kmzTxhiAWI_8Zmn= z44c)AY^f^WOV>44x50o+tw}BJHGc6w_TQHHK?6ZtL;Y2Og2X&!jVoER+jQJ~I%T4ZBgNh1rP|(jq;8)c(Al4NUT3PX)19p=S?o z5pE971^9i9M(e7R8^trEYY=9owwKYiCM#X=Xp+pZ3)0%#unm3(n)ucT7bjAypZn)~ z-tpwuA7z&B?y_h1;(x*G{@tj}x3jRH>(30yc3giuvj)DU96GvxcI>v3dp~&Ox&w3G zKtxhps8}N3gf%pA?MEMaNZ>o@J9xtn{|M$5_DgvqupMDOmNyJoGq9}CJT8X{47w=~ zseim%DZ{K4i>TEq;y(A0KmAjD|10l+cWfH3zw2$7^3$cwiTC{K|G;Oy^dPRREa6k1 zy+{0aSOPSZDvUOVB*j;h8qS_Qhncw91`1cSu`dw*;Nz~(DjNYs=I3AE4N$?}A9ot-6{oTZqa;qHNiE-H9YxL zr4F5m!VuQ8+BAA?bp^lotG|l3{Mg;lnZ5X#|M_cp<;};$LGI2Uz6*9&K!|$Lu`#L3 zTV$Xn5{QhAN(^Z>l@h16shN2>Z9C15czqIPWO>7dcx7c-$ad7)k{Gxdi^FC#iqHSt z^pwmjm=v=X+s0@xAP`|)sUsRClGVf&8iv&y8Uz^(KvC)_6*Z=T5@)%xxg4C)^YR%_%KfBsUW&`N9kt4+R5aSSw)}6?z;M#5uZLR)qGf>!}!J zR)EDQHj;X?Nvz%NPM7$U@}pE$P*qg<8%9ThFze}Pr%GAoaoNNafE%S&Z-^8#p3R|L zZ3vU#1E@cFSq&m3yTl@$XoyWuc(^M^tBd0asJ&{|95rq|7YC*&u0@1Zv*q+ ze&hqccJlheucwQd2x^E_Krf*WMziL3*;45gk%G7;Gr%i^Kkb&T91cp(o`moY_5Q2t1m-4vyDd?000(5NklW$6sBgITa8J(C3svfJL~x9tk25Ye_mJ_qhpOp#3=OaDJV+Y2vFgRD#h# zPURxj*rN0rJ-je2rUR`$O^F@wxm;-UJCbV<3Wdb_MG&`v=P3PL=@!A?ftkfLFPohl zl>r!=^lC+c!%2(EzL4T*V<-m~8|q#gvGw)O{Pug__j?0mXD7@#nC;RAbrdSoOhZ!Q}+zsoCDfF8dey_R;;_YInRG)3P;IcTIr zIFyTCN*$I*deVQjR6$yp(;l1?=UkyEcIA;s7{w~R@H-eA8Ig8@H;r1?thjS2Z8J~^ z&fg^%3duB+Cm^*546x=V<<8{qzy(9IR|-?AiUP0OjZ88r4%ig@=SvETl`_UgL-KQU zx2C%T5h9Tu+HIO?Rl6fGNSw$L`sD4SnaXPUYiwj$zVL?QLYIV{fxka*Bl_`E3&2~k zl-fjMr!JynaW}{6YQ(^~oMw;@L?CD@5jh(F2P8aK&38eCQ zA=K4sP4O$`>u9$-&|(2&BD+PdUlej_Y^*H(_22!~Uww3N>T|*G{I|2={jOpC&(yGf zCyKD=+6eFdzH1H2hMQnGEW5f1-gM`y?l^Yzy5A1^0wO}^!aaKA5d1+eE}S_Hi@`37 zk&MPtIfv-@xNuL(wYoH&8|yKc4TKjtx-ZD$A!~AGW?D{8rXMnLbZaw($VgzotQ_i- zNy=k-x(>x`LF(INHYKK1)H=tu)7aSD#w|wIwo*E0W1LZoc(a1g7@L z1;U@N)>JI7B+y0!L0?d7p2^_twZ*H6y;iwW7i5me)AH&zib@AY1I@cqID6*IZ+`ZZ zpZLNx7XNN?+xKMge=lx;rz?ks5ln21hX~QtO>q0|Hy^nDwwvDN_W1UBTrNzEjUt_i zqnyv<;DG}|oMVH@$kn}j_sSrLSGX4K3B+St5)+z8riC8B)0(F_2RK6Q)%B4~rs4H^ z1={44nKd}eC!V^z0SehXoSd#&84IfA>T-&F_WWg-dwrB!4TSw}Op>m_GRvCZEb595n12+}FC7hsO?=6i zAIQo=OHV13tLU^LGXf*&*d{&R^Y$OX%U}6Q)cZQT^i@A7kgd!ED4Ap`kHv^5ANxAx z^Ei0yu#|~Ly-^xqrJ;EYvE-v&JZ~RvIKsaM&My2uY{hd(7s|+FO3Z6peDd)}-v8i( z_g~tz_=f|o;mQA>Uh`k;H2!u^^6&KLcHRU#A<}DY0=XIf*Z=ytUyJyBubG~ig45-M zTCZVxdP;aWd{a8@zJ&A%fd#Uo$52jPGZufFq#BoKQfG6Iv?AWqH9Kj8DI%{I0+HYB@@I*N9W zPIO7}P9^%o-&=e|n_6@dHz|X#spzBpGL_2U!uboI`}JS{P3H9u7yGc}*}eF8=l6cs z8{TUz*zZLNv>S!m4Uw`O8nQ@-CDGN-@A{>mecdg$-2AIE(^EPMUz{F~279t9?eqn9 zWLeN?F-we`9dd~;$T_65T>LBI^jh= z4;y2n$toEF(^KQHP;X$OzfVVQ9QHAM4t_LRG{54yVy|F_+vybfXdz$0@@4|DL|Uv1 z$=M(AJFtIY0o~pJjnbRsb)ss88K7OG%-=xId&>F*mEp9Lr)RG#Cw!;L!0f&(1|l^?TI5t7*kKUA z=4nqW7N$n>gC{2E4w8__r1YAKQdvczQkDfwtpZQiR+IK5CZOBGb5%A+)g1|EKAPvzPV|EL`nOmUYeV#)$HKX;u>lV6@H%^ zqhUY1OEMkE{-StMtc#J$(Il9H4@Jw1Uvvl9YqivMK0Ef_bg0ttoEuA7`8qD9;s zoNDIFHJJmjOjzDnL%mXi$!gKaT~;FkKBqM0q-s+j&J&!2EA}5uq~yu1-6opD1(6!w z3Vd#ET5c46eLI;H>1M#|7xONbHQcnEauZD|mdnyeGYN;OI02tuhI9PA>S{}95?!># zP>iQ`yG0Ah9%iPdq!*DgigBgfG%e;AFG=u+*XPFJLksY_U8t3-5@N?lS8h(D)e5J_ zEmB5t>ghB7wu5G~En(!@Y^J|*W%bYB^&7wQPlF-W&XfOICC~0=_j|hd|Et^pyEo%* zeen<>+Swai-4J)a_SLg@|L_}sW_ot|woo`IyqaoN5z#nNAhlLQtEWe~rpRP<-|RT% zW@iODCBzwv#gWStWgry_2L{=-TDC0*NSQ)e8crgdPMb}PsEXApd=3}(EzBSi@k^u4 zl8XzQEJ&gvU0qM|hq=JnOYooEF!bOTaS5e`c9|=biX|-!+G^H@Zlb_4it38ZZG*g@ zJ}0j(EmC&So3L~dEk&!1#CAe9CcS_-2y=Su2!{gjIjLFD7@gYHM>x2Nt?dlXoWCsO zwiCw=!te8H&(&_DT&T#+C)sME6f;Qfn>a_1f;+x{WoOu-YsFV-nKiw3eHOZL`{LV>?BalMAzxQCKYo@#I(QO+iOkzBoJ%E&RI+ zVN5c-jjYJEwRLnErrqz!i90eH7Bq?{KW7U>dqjanoS%s(^hDC@1#9Pq`2X8GyVy3* zDvm#K?bvag#7XnHuE|2%rK{9WMny%@D6D9jG$xpsCRKt2n=)(sOy0nn}yd z|LfPTJ@@0EzHr)TSTTWbrZ{z$M>n%H6!;s_08DRS2FG@m$TkFhIsC)tzyGa+2ljoP zX83`jL5TrmT%XJtT9N@$=}cM;k+F$+V@7BYXCYl`Cad1PbWNpay$J=x7mO;Q)DNXu zSt^SpVCU$t%+=%zO2Oz7D#f|koGQ7ljAN8dh7_P=7uu@GEf`%w9RmZz+Lr5DWZ>O;ssto`UYf~oVV(TlN=z*QfjCNsaNz$6&in{s?63H9_LTg zYmI~@1?nx9_B@MJi8bZ%J%A`ojP+09wC3O^NIPxt1Y> zpL*&GyFUN9&zuNHqmOY44h;>-l(@xGLG|_ZsGiPF$qXgBI)v{!xsu8|B~>UDrPB-E z4vu8Y{T60cM%Bkg?w5>7*)7U0ETj$aZcc5cUsGHHxNvQ12uLyT9%OL{d>H{53CAS! zgoHsXoY90V1S!vp6oS5Js13`!8RF#@=^kT|G|Mcg@_IA|I)Y>ZQ5r@i3#RdQz9DFu zrGc+w0F6Y9vzT|pBcg>O>jY(_noYf8a&qeQn`hpB>GbKpeCVJ00Np(Ks{y}ZDNnN* zKoBL;MqtJUrXiT#K(0T2{Ik10acJL{cR%#t6KqlMO(rF`-rboHumOlAIYp5Gc&SP> zILwohMb43k+y;fB1C91aHrk_nL&BVM99i*+7){Lfh^ctYqdWu+j4dZ;E>dPD zyAdp}EXyPeSx3aXm8s4vviGa4%}b%?<}xbA9G)#(#8Z&zLH^C4Fz6NqGb+~5E3!w3 z24w`jPqnlG*lktf36_^-aURC#7K&;*GovnFx$^rzoqqk5Q>Xq6@O2<-2DTdbTD}~_ z^&67%G^+sw1<0m1(CeCPLl8>je}|7AJu>u_XTJ2s(H)~t4h{@<_V==nI3ZP6G&6uv z^7O0Tu47Jgs0tO&Enx(89=Pd(lG&!j6=-f27KEGUOY_n>1s!pmqMDJ>AMMiO*wN9p zmSLjCP$-p^lXYaC4+8}ew(*5-2*V;!m*G^T9m@pb$dF6I%@NNL=(F(#NjAnwb(q&V z(7RPOMG|mJ5bQs%@OwWVTA}Y(=5n_vw^Wh}?yadQ=l1QX*Is)0l~><*hC5grrP_*=!Y);k*fjJbXGnqMASJbx^@f^F( zqB1Rk(c(POf;+GBl?9O&kd4Bdc!fFUZ(_Hr@)&|=K+ZDl+1WWUhHx}03QPhbVKyxoiq?3AhY2D&0C5$fsc zkfIQ$tk+WM1(sxk=%k{d`nUI#HuF6&Cs3`&ILnF1GH!gY%x;)}Mn zsO{VO)Q*u6)k7ZwnXWA%&$1 zIy5|R_YfP?)vCgXcy6>gG^Mo1Jug9%j#F@@e?a1rRiz50CFQVxmx&kfyAc1bsA7q2 znJfjT$2cNdAi&=q7y34v$;`cV?)=~X`ohnCan=C6EMqh%kNrEho8PvKp((h2H83?B z1qyl}wl@gM7}@mbE-&DFg}aRA*=N6TVE^7dNBVnv9!_?5k9EY`RWuft;FMfDsYYS| z(dZP5vXqVyAT-gyu_>N0%7y0jY`&;UC7M-2GR%ss4M8l@XPQrF_vCp9NC{*+x;s@@ zqFt)O%>6_HA=xPxF&cdj1(jl{9&4nQR^)j}$F3|dDkn#?ir4SFG+(}&%jeJExH0ke zi@$#PT?@!2@a2)dYNQY6z5%T&xNg7-x}a1@U=mhpx4@+YT~t~2LDE&KJ6TVj=02j%&Q&a_~pwhXV$PtislRhoYmnSNVi&xx|d+qkE+aJDj=A92x zsT2+88t_5D*Wfk{Ac*3ad3>EcHNoEWz;E^-xSlt#)24RTNE?LS%~TEa_VsH480CJGb@q^$&F?ll_UVL~lIa)*XqoCc`Z)iAW?oN^z~cSdj(OfSk>Xo2{OWwBVEFXx;>AzLVxGMU-z%ycR>Jvn*v*12;RX8ZxMW+19Tt1~k;u&Z4* z4F+IWjgSkDLFO!wIcF+jb~+onclz#No8GC_V96_P1W{~7S5hkfavX6#`aoEfN_ zuO;Yp+X1C{`s&|JfSTOgKKX4A5Olk3K<59yAy52`90Pn5L(m?gnrAS}{U03Cz|d4^io*}?0kJ?(3y4DSUr8}%_ZFoRC*YJqL7fVW-%9F%3zz&3BI#@U1J zTkSbF>fi1ozpu?sf!6bZ1${V6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` diff --git a/lib/components/resources.g.dart b/lib/components/resources.g.dart new file mode 100644 index 0000000..915a8d9 --- /dev/null +++ b/lib/components/resources.g.dart @@ -0,0 +1,10 @@ +/// Generate by [asset_generator](https://github.com/fluttercandies/flutter_asset_generator) library. +/// PLEASE DO NOT EDIT MANUALLY. +// ignore_for_file: constant_identifier_names +class R { + const R._(); + + static const String ASSETS_SVG_RU_SVG = 'assets/svg/ru.svg'; + + static const String ASSETS_SVG_US_SVG = 'assets/svg/us.svg'; +} diff --git a/lib/components/utils/debounce.dart b/lib/components/utils/debounce.dart index 44231fe..6e1c470 100644 --- a/lib/components/utils/debounce.dart +++ b/lib/components/utils/debounce.dart @@ -11,10 +11,10 @@ class Debounce { static Timer? _timer; static void run( - VoidCallback action, { - Duration delay = const Duration(milliseconds: 500), - }) { + VoidCallback action, { + Duration delay = const Duration(milliseconds: 500), + }) { _timer?.cancel(); _timer = Timer(delay, action); } -} \ No newline at end of file +} diff --git a/lib/data/dtos/characters_dto.dart b/lib/data/dtos/characters_dto.dart index a7fa1f8..841bde3 100644 --- a/lib/data/dtos/characters_dto.dart +++ b/lib/data/dtos/characters_dto.dart @@ -4,16 +4,19 @@ part 'characters_dto.g.dart'; @JsonSerializable(createToJson: false) class CharactersDto { - final List? data; - final PaginationDto? pagination; + final List? results; + final PaginationDto? info; - const CharactersDto({this.data, this.pagination,}); + const CharactersDto({ + this.results, + this.info, + }); factory CharactersDto.fromJson(Map json) => _$CharactersDtoFromJson(json); } @JsonSerializable(createToJson: false) -class CharacterDataDto{ +class CharacterDataDto { final int? id; final String? name; final String? status; @@ -51,4 +54,4 @@ class PaginationDto { final page = uri.queryParameters['page']; return page != null ? int.tryParse(page) : null; } -} \ No newline at end of file +} diff --git a/lib/data/mappers/characters_mapper.dart b/lib/data/mappers/characters_mapper.dart index 3997d24..0649e46 100644 --- a/lib/data/mappers/characters_mapper.dart +++ b/lib/data/mappers/characters_mapper.dart @@ -3,27 +3,28 @@ import 'package:flutter_labs_app/domain/models/card.dart'; import '../../domain/models/home.dart'; -extension CharacterDataDtoModel on CharacterDataDto{ +extension CharacterDataDtoModel on CharacterDataDto { CardDate toDomain() => CardDate( - name ?? 'UNKNOW', - imageUrl: image, - descriptionText: _makeDescriptionText(species, status), - ); + name ?? 'UNKNOW', + imageUrl: image, + descriptionText: _makeDescriptionText(species, status), + id: id.toString(), + ); - String _makeDescriptionText(String? species, String? status){ + String _makeDescriptionText(String? species, String? status) { return species != null && status != null ? 'species: $species \n status: $status' : species != null - ? 'species: $species' - :status != null - ? 'status: $status' - : ''; + ? 'species: $species' + : status != null + ? 'status: $status' + : ''; } } extension CharactersDataDtoModel on CharactersDto { HomeData toDomain() => HomeData( - data: data?.map((e) => e.toDomain()).toList(), - nextPage: pagination?.next, - ); -} \ No newline at end of file + data: results?.map((e) => e.toDomain()).toList(), + nextPage: info?.next, + ); +} diff --git a/lib/data/repositories/api_interface.dart b/lib/data/repositories/api_interface.dart index 53c2b34..f058b1d 100644 --- a/lib/data/repositories/api_interface.dart +++ b/lib/data/repositories/api_interface.dart @@ -3,6 +3,6 @@ import 'package:flutter_labs_app/domain/models/home.dart'; typedef OnErrorCallback = void Function(String? error); -abstract class ApiInterface{ +abstract class ApiInterface { Future loadData({OnErrorCallback? onError}); -} \ No newline at end of file +} diff --git a/lib/data/repositories/mock_repository.dart b/lib/data/repositories/mock_repository.dart index fb5f712..1214049 100644 --- a/lib/data/repositories/mock_repository.dart +++ b/lib/data/repositories/mock_repository.dart @@ -3,34 +3,37 @@ import 'package:flutter_labs_app/data/repositories/api_interface.dart'; import 'package:flutter_labs_app/domain/models/card.dart'; import 'package:flutter_labs_app/domain/models/home.dart'; -class MockRepository extends ApiInterface{ +class MockRepository extends ApiInterface { @override - Future loadData({OnErrorCallback? onError}) async{ + Future loadData({OnErrorCallback? onError}) async { return HomeData( data: [ - CardDate( - 'Hi', - descriptionText: 'hello', - icon: Icons.h_mobiledata_sharp, - imageUrl: 'https://avatars.mds.yandex.net/i?id=7cb577fccf8b7354b5248cb8101dd09433fa521f-4253662-images-thumbs&n=13', - ), - CardDate( - 'Privet', - descriptionText: 'hello', - icon: Icons.pages, - imageUrl: 'https://avatars.mds.yandex.net/i?id=34f57633c955c47b56c68537076e5bfabb4a397b-4577841-images-thumbs&n=13', - ), - CardDate( - 'Arigato', - descriptionText: 'hello', - icon: Icons.account_tree_sharp, - imageUrl: 'https://avatars.mds.yandex.net/i?id=d3e8f5e5c373aec40e18fdb5bc28f98367e0f0d9-4271037-images-thumbs&n=13', - ), - CardDate( - 'Last', - descriptionText: 'hello', - ) - ], + CardDate( + 'Hi', + descriptionText: 'hello', + icon: Icons.h_mobiledata_sharp, + imageUrl: + 'https://avatars.mds.yandex.net/i?id=7cb577fccf8b7354b5248cb8101dd09433fa521f-4253662-images-thumbs&n=13', + ), + CardDate( + 'Privet', + descriptionText: 'hello', + icon: Icons.pages, + imageUrl: + 'https://avatars.mds.yandex.net/i?id=34f57633c955c47b56c68537076e5bfabb4a397b-4577841-images-thumbs&n=13', + ), + CardDate( + 'Arigato', + descriptionText: 'hello', + icon: Icons.account_tree_sharp, + imageUrl: + 'https://avatars.mds.yandex.net/i?id=d3e8f5e5c373aec40e18fdb5bc28f98367e0f0d9-4271037-images-thumbs&n=13', + ), + CardDate( + 'Last', + descriptionText: 'hello', + ) + ], ); } -} \ No newline at end of file +} diff --git a/lib/data/repositories/rick_repository.dart b/lib/data/repositories/rick_repository.dart index 5fd1b77..e8d82f7 100644 --- a/lib/data/repositories/rick_repository.dart +++ b/lib/data/repositories/rick_repository.dart @@ -6,7 +6,7 @@ import 'package:flutter_labs_app/domain/models/card.dart'; import 'package:flutter_labs_app/domain/models/home.dart'; import 'package:pretty_dio_logger/pretty_dio_logger.dart'; -class RickRepository extends ApiInterface{ +class RickRepository extends ApiInterface { static final Dio _dio = Dio() ..interceptors.add(PrettyDioLogger( requestHeader: true, @@ -22,23 +22,23 @@ class RickRepository extends ApiInterface{ int page = 1, int pageSize = 20, }) async { - try{ + try { const String url = '$_baseUrl/api/character'; final Response response = await _dio.get>( - url, - queryParameters: { - 'name': q, - 'page': page, - }, + url, + queryParameters: { + 'name': q, + 'page': page, + }, ); final CharactersDto dto = CharactersDto.fromJson(response.data as Map); final HomeData? data = dto.toDomain(); return data; - } on DioException catch (e){ + } on DioException catch (e) { onError?.call(e.error?.toString()); return null; } } -} \ No newline at end of file +} diff --git a/lib/domain/models/card.dart b/lib/domain/models/card.dart index 8e3eef3..b26125f 100644 --- a/lib/domain/models/card.dart +++ b/lib/domain/models/card.dart @@ -1,16 +1,17 @@ import 'package:flutter/material.dart'; -class CardDate{ +class CardDate { final String text; final String descriptionText; final IconData icon; final String? imageUrl; + final String? id; CardDate( - this.text, - { - required this.descriptionText, - this.icon = Icons.ac_unit_outlined, - this.imageUrl = 'https://via.placeholder.com/150', - }); -} \ No newline at end of file + this.text, { + required this.descriptionText, + this.icon = Icons.ac_unit_outlined, + this.imageUrl = 'https://via.placeholder.com/150', + this.id, + }); +} diff --git a/lib/domain/models/home.dart b/lib/domain/models/home.dart index bc73e24..982b567 100644 --- a/lib/domain/models/home.dart +++ b/lib/domain/models/home.dart @@ -5,4 +5,4 @@ class HomeData { final int? nextPage; HomeData({this.data, this.nextPage}); -} \ No newline at end of file +} diff --git a/lib/main.dart b/lib/main.dart index 47ee0bb..1c78b2a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,8 +1,15 @@ +import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_labs_app/data/repositories/rick_repository.dart'; import 'package:flutter_labs_app/presentation/home_page/bloc/bloc.dart'; import 'package:flutter_labs_app/presentation/home_page/home_page.dart'; +import 'package:flutter_labs_app/presentation/like_bloc/like_bloc.dart'; +import 'package:flutter_labs_app/presentation/locale_bloc/locale_bloc.dart'; +import 'package:flutter_labs_app/presentation/locale_bloc/locale_state.dart'; + +import 'components/locale/l10n/app_locale.dart'; void main() { runApp(const MyApp()); @@ -13,21 +20,36 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { - return MaterialApp( - title: 'Flutter Demo', - debugShowCheckedModeBanner: false, - theme: ThemeData( - colorScheme: ColorScheme.fromSeed(seedColor: Colors.limeAccent), - useMaterial3: true, - ), - home: RepositoryProvider( - lazy: true, - create: (_) => RickRepository(), - child: BlocProvider( - lazy: false, - create: (context) => HomeBloc(context.read()), - child: const MyHomePage(title: 'Danilov V.V.'), - ), + return BlocProvider( + lazy: false, + create: (context) => LocaleBloc(Locale(Platform.localeName)), + child: BlocBuilder( + builder: (context, state) { + return MaterialApp( + title: 'Flutter Demo', + locale: state.currentLocale, + localizationsDelegates: AppLocale.localizationsDelegates, + supportedLocales: AppLocale.supportedLocales, + debugShowCheckedModeBanner: false, + theme: ThemeData( + colorScheme: ColorScheme.fromSeed(seedColor: Colors.limeAccent), + useMaterial3: true, + ), + home: RepositoryProvider( + lazy: true, + create: (_) => RickRepository(), + child: BlocProvider( + lazy: false, + create: (context) => LikeBloc(), + child: BlocProvider( + lazy: false, + create: (context) => HomeBloc(context.read()), + child: const MyHomePage(title: 'Danilov V.V.'), + ), + ), + ), + ); + }, ), ); } diff --git a/lib/presentation/common/svg_objects.dart b/lib/presentation/common/svg_objects.dart new file mode 100644 index 0000000..4d16d7d --- /dev/null +++ b/lib/presentation/common/svg_objects.dart @@ -0,0 +1,35 @@ +import 'package:flutter/widgets.dart'; +import 'package:flutter_svg/flutter_svg.dart'; + +import '../../components/resources.g.dart'; + +abstract class SvgObjects { + static void init() { + final pics = [ + R.ASSETS_SVG_RU_SVG, + R.ASSETS_SVG_US_SVG, + ]; + for (final String p in pics) { + final loader = SvgAssetLoader(p); + svg.cache.putIfAbsent(loader.cacheKey(null), () => loader.loadBytes(null)); + } + } +} + +class SvgRu extends StatelessWidget { + const SvgRu({super.key}); + + @override + Widget build(BuildContext context) { + return SvgPicture.asset(R.ASSETS_SVG_RU_SVG); + } +} + +class SvgUk extends StatelessWidget { + const SvgUk({super.key}); + + @override + Widget build(BuildContext context) { + return SvgPicture.asset(R.ASSETS_SVG_US_SVG); + } +} diff --git a/lib/presentation/details_page/details_page.dart b/lib/presentation/details_page/details_page.dart index 022e3df..e84ba9a 100644 --- a/lib/presentation/details_page/details_page.dart +++ b/lib/presentation/details_page/details_page.dart @@ -1,13 +1,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_labs_app/domain/models/card.dart'; -class DetailsPage extends StatelessWidget{ +class DetailsPage extends StatelessWidget { final CardDate data; const DetailsPage(this.data, {super.key}); @override - Widget build(BuildContext context){ + Widget build(BuildContext context) { return Scaffold( appBar: AppBar(), body: Column( @@ -36,4 +36,4 @@ class DetailsPage extends StatelessWidget{ ), ); } -} \ No newline at end of file +} diff --git a/lib/presentation/home_page/bloc/bloc.dart b/lib/presentation/home_page/bloc/bloc.dart index 2b790a9..ab9f966 100644 --- a/lib/presentation/home_page/bloc/bloc.dart +++ b/lib/presentation/home_page/bloc/bloc.dart @@ -25,7 +25,7 @@ class HomeBloc extends Bloc { onError: (e) => error = e, ); - if (event.nextPage != null){ + if (event.nextPage != null) { data?.data?.insertAll(0, state.data?.data ?? []); } @@ -36,4 +36,4 @@ class HomeBloc extends Bloc { error: error, )); } -} \ No newline at end of file +} diff --git a/lib/presentation/home_page/bloc/events.dart b/lib/presentation/home_page/bloc/events.dart index 631aa03..cefba70 100644 --- a/lib/presentation/home_page/bloc/events.dart +++ b/lib/presentation/home_page/bloc/events.dart @@ -1,10 +1,10 @@ -abstract class HomeEvent{ +abstract class HomeEvent { const HomeEvent(); } -class HomeLoadDataEvent extends HomeEvent{ +class HomeLoadDataEvent extends HomeEvent { final String? search; final int? nextPage; const HomeLoadDataEvent({this.search, this.nextPage}); -} \ No newline at end of file +} diff --git a/lib/presentation/home_page/bloc/state.dart b/lib/presentation/home_page/bloc/state.dart index 2cad4e2..159b8d3 100644 --- a/lib/presentation/home_page/bloc/state.dart +++ b/lib/presentation/home_page/bloc/state.dart @@ -30,9 +30,9 @@ class HomeState extends Equatable { @override List get props => [ - data, - isLoading, - isPaginationLoading, - error, - ]; -} \ No newline at end of file + data, + isLoading, + isPaginationLoading, + error, + ]; +} diff --git a/lib/presentation/home_page/card.dart b/lib/presentation/home_page/card.dart index be51115..83232d2 100644 --- a/lib/presentation/home_page/card.dart +++ b/lib/presentation/home_page/card.dart @@ -1,50 +1,48 @@ part of 'home_page.dart'; -typedef OnLikeCallback = void Function(String title, bool isLiked)?; +typedef OnLikeCallback = void Function(String? id, String title, bool isLiked)?; -class _Card extends StatefulWidget { +class _Card extends StatelessWidget { final String text; final String descriptionText; final IconData icon; final String? imageUrl; final OnLikeCallback onLike; final VoidCallback? onTap; + final String? id; + final bool isLiked; - const _Card( - this.text, - { - required this.descriptionText, - this.icon = Icons.ac_unit_outlined, - this.imageUrl, - this.onLike, - this.onTap - } - ); + const _Card(this.text, + {required this.descriptionText, + this.icon = Icons.ac_unit_outlined, + this.imageUrl, + this.onLike, + this.onTap, + this.id, + this.isLiked = false, + }); factory _Card.fromData( - CardDate data, { - OnLikeCallback onLike, - VoidCallback? onTap, - }) => _Card( - data.text, - descriptionText: data.descriptionText, - icon: data.icon, - imageUrl: data.imageUrl, - onLike: onLike, - onTap: onTap, - ); - - @override - State<_Card> createState() => _CardState(); -} - -class _CardState extends State<_Card> { - bool isLiked = false; + CardDate data, { + OnLikeCallback onLike, + VoidCallback? onTap, + bool isLiked = false, + }) => + _Card( + data.text, + descriptionText: data.descriptionText, + icon: data.icon, + imageUrl: data.imageUrl, + onLike: onLike, + onTap: onTap, + id: data.id, + isLiked: isLiked, + ); @override Widget build(BuildContext context) { return GestureDetector( - onTap: widget.onTap, + onTap: onTap, child: Container( margin: const EdgeInsets.all(16), constraints: const BoxConstraints(minHeight: 140), @@ -61,10 +59,8 @@ class _CardState extends State<_Card> { spreadRadius: 4, offset: const Offset(0, 5), blurRadius: 8, - blurStyle: BlurStyle.normal - ) - ] - ), + blurStyle: BlurStyle.normal) + ]), child: IntrinsicHeight( child: Row( crossAxisAlignment: CrossAxisAlignment.start, @@ -78,7 +74,7 @@ class _CardState extends State<_Card> { height: double.infinity, width: 120, child: Image.network( - widget.imageUrl ?? '', + imageUrl ?? '', fit: BoxFit.cover, ), ), @@ -90,43 +86,34 @@ class _CardState extends State<_Card> { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - widget.text, + text, style: Theme.of(context).textTheme.headlineLarge, ), - Text( - widget.descriptionText, - style: Theme.of(context).textTheme.bodyLarge - ), + Text(descriptionText, style: Theme.of(context).textTheme.bodyLarge), ], ), ), ), Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ Padding( padding: const EdgeInsets.only(left: 8.0, right: 8.0), - child: Icon(widget.icon), + child: Icon(icon), ), Padding( padding: const EdgeInsets.only(left: 8.0, right: 8.0), child: GestureDetector( - onTap: (){ - setState(() { - isLiked = !isLiked; - }); - widget.onLike?.call(widget.text, isLiked); - }, + onTap: () => onLike?.call(id, text, isLiked), child: AnimatedSwitcher( duration: const Duration(milliseconds: 300), child: isLiked - ?const Icon( + ? const Icon( Icons.favorite, color: Colors.redAccent, key: ValueKey(0), ) - :const Icon( + : const Icon( Icons.favorite_border, key: ValueKey(1), ), @@ -137,8 +124,7 @@ class _CardState extends State<_Card> { ), ], ), - ) - ), + )), ); } -} \ No newline at end of file +} diff --git a/lib/presentation/home_page/home_page.dart b/lib/presentation/home_page/home_page.dart index afe9f45..ddb7f51 100644 --- a/lib/presentation/home_page/home_page.dart +++ b/lib/presentation/home_page/home_page.dart @@ -1,12 +1,20 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_labs_app/components/extensions/context_x.dart'; import 'package:flutter_labs_app/data/repositories/mock_repository.dart'; import 'package:flutter_labs_app/data/repositories/rick_repository.dart'; import 'package:flutter_labs_app/presentation/details_page/details_page.dart'; import '../../components/utils/debounce.dart'; import '../../domain/models/card.dart'; +import '../common/svg_objects.dart'; +import '../like_bloc/like_bloc.dart'; +import '../like_bloc/like_event.dart'; +import '../like_bloc/like_state.dart'; +import '../locale_bloc/locale_bloc.dart'; +import '../locale_bloc/locale_events.dart'; +import '../locale_bloc/locale_state.dart'; import 'bloc/bloc.dart'; import 'bloc/events.dart'; import 'bloc/state.dart'; @@ -48,8 +56,11 @@ class _BodyState extends State { @override void initState() { + SvgObjects.init(); + WidgetsBinding.instance.addPostFrameCallback((_) { context.read().add(const HomeLoadDataEvent()); + context.read().add(const LoadLikesEvent()); }); scrollController.addListener(_onNextPageListener); @@ -60,9 +71,8 @@ class _BodyState extends State { if (scrollController.position.atEdge) { final bloc = context.read(); if (!bloc.state.isPaginationLoading) { - bloc.add(HomeLoadDataEvent( - search: searchController.text, - nextPage: bloc.state.data?.nextPage)); + bloc.add( + HomeLoadDataEvent(search: searchController.text, nextPage: bloc.state.data?.nextPage)); } } } @@ -81,7 +91,7 @@ class _BodyState extends State { WidgetsBinding.instance.addPostFrameCallback((_) { ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text( - 'Лайк на $title ${isLiked ? 'поставлен' : 'убран'}', + '$title ${isLiked ? context.locale.liked : context.locale.disliked}', style: Theme.of(context).textTheme.bodyLarge, ), backgroundColor: Colors.orangeAccent, @@ -91,14 +101,11 @@ class _BodyState extends State { } void _navToDetails(BuildContext context, CardDate data) { - Navigator.push( - context, CupertinoPageRoute(builder: (context) => DetailsPage(data))); + Navigator.push(context, CupertinoPageRoute(builder: (context) => DetailsPage(data))); } Future _onRefresh() { - context - .read() - .add(HomeLoadDataEvent(search: searchController.text)); + context.read().add(HomeLoadDataEvent(search: searchController.text)); return Future.value(null); } @@ -108,45 +115,72 @@ class _BodyState extends State { padding: EdgeInsets.only(top: MediaQuery.of(context).padding.top), child: Column( children: [ - Padding( - padding: const EdgeInsets.all(12), - child: CupertinoSearchTextField( - controller: searchController, - onChanged: (search) { - Debounce.run(() => context - .read() - .add(HomeLoadDataEvent(search: search))); - })), + Row( + children: [ + Expanded( + flex: 4, + child: Padding( + padding: const EdgeInsets.all(12), + child: CupertinoSearchTextField( + controller: searchController, + placeholder: context.locale.search, + onChanged: (search) { + Debounce.run( + () => context.read().add(HomeLoadDataEvent(search: search))); + })), + ), + GestureDetector( + onTap: () => + context.read().add(const ChangeLocaleEvent()), + child: SizedBox.square( + dimension: 50, + child: Padding( + padding: const EdgeInsets.only(right: 12), + child: BlocBuilder( + builder: (context, state) { + return state.currentLocale.languageCode == 'ru' + ? const SvgRu() + : const SvgUk(); + }, + ), + ), + ), + ), + ], + ), BlocBuilder( builder: (context, state) => state.error != null - ? Text( - state.error ?? '', - style: Theme.of(context).textTheme.headlineSmall?.copyWith(color: Colors.red), - ) - : state.isLoading - ? CircularProgressIndicator() - : Expanded( - child: RefreshIndicator( - onRefresh: _onRefresh, - child: ListView.builder( - controller: scrollController, - padding: EdgeInsets.zero, - itemCount: state.data?.data?.length ?? 0, - itemBuilder: (context, index) { - final data = state.data?.data?[index]; - return data != null - ? _Card.fromData( - data, - onLike: (title, isLiked) => - _showSnackbar( - context, title, isLiked), - onTap: () => - _navToDetails(context, data), - ) - : const SizedBox.shrink(); - }), - ), - )), + ? Text( + state.error ?? '', + style: + Theme.of(context).textTheme.headlineSmall?.copyWith(color: Colors.red), + ) + : state.isLoading + ? CircularProgressIndicator() + : BlocBuilder( + builder: (context, likeState) => Expanded( + child: RefreshIndicator( + onRefresh: _onRefresh, + child: ListView.builder( + controller: scrollController, + padding: EdgeInsets.zero, + itemCount: state.data?.data?.length ?? 0, + itemBuilder: (context, index) { + final data = state.data?.data?[index]; + return data != null + ? _Card.fromData( + data, + onLike: _onLike, + isLiked: likeState.likedIds?.contains(data.id) == true, + onTap: () => _navToDetails(context, data), + ) + : const SizedBox.shrink(); + } + ), + ), + ) + ) + ), BlocBuilder( builder: (context, state) => state.isPaginationLoading ? const CircularProgressIndicator() @@ -154,4 +188,12 @@ class _BodyState extends State { ], )); } -} \ No newline at end of file + + void _onLike(String? id, String title, bool isLiked) { + print("$id $title, $isLiked"); + if (id != null) { + context.read().add(ChangeLikeEvent(id)); + _showSnackbar(context, title, !isLiked); + } + } +} diff --git a/lib/presentation/like_bloc/like_state.g.dart b/lib/presentation/like_bloc/like_state.g.dart new file mode 100644 index 0000000..365d8fd --- /dev/null +++ b/lib/presentation/like_bloc/like_state.g.dart @@ -0,0 +1,56 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'like_state.dart'; + +// ************************************************************************** +// CopyWithGenerator +// ************************************************************************** + +abstract class _$LikeStateCWProxy { + LikeState likedIds(List? likedIds); + + /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `LikeState(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. + /// + /// Usage + /// ```dart + /// LikeState(...).copyWith(id: 12, name: "My name") + /// ```` + LikeState call({ + List? likedIds, + }); +} + +/// Proxy class for `copyWith` functionality. This is a callable class and can be used as follows: `instanceOfLikeState.copyWith(...)`. Additionally contains functions for specific fields e.g. `instanceOfLikeState.copyWith.fieldName(...)` +class _$LikeStateCWProxyImpl implements _$LikeStateCWProxy { + final LikeState _value; + + const _$LikeStateCWProxyImpl(this._value); + + @override + LikeState likedIds(List? likedIds) => this(likedIds: likedIds); + + @override + + /// This function **does support** nullification of nullable fields. All `null` values passed to `non-nullable` fields will be ignored. You can also use `LikeState(...).copyWith.fieldName(...)` to override fields one at a time with nullification support. + /// + /// Usage + /// ```dart + /// LikeState(...).copyWith(id: 12, name: "My name") + /// ```` + LikeState call({ + Object? likedIds = const $CopyWithPlaceholder(), + }) { + return LikeState( + likedIds: likedIds == const $CopyWithPlaceholder() + ? _value.likedIds + // ignore: cast_nullable_to_non_nullable + : likedIds as List?, + ); + } +} + +extension $LikeStateCopyWith on LikeState { + /// Returns a callable class that can be used as follows: `instanceOfLikeState.copyWith(...)` or like so:`instanceOfLikeState.copyWith.fieldName(...)`. + // ignore: library_private_types_in_public_api + _$LikeStateCWProxy get copyWith => _$LikeStateCWProxyImpl(this); +} diff --git a/pubspec.lock b/pubspec.lock index 6db7ca4..c277ca7 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,23 +5,26 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 + sha256: ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a url: "https://pub.dev" source: hosted - version: "72.0.0" - _macros: - dependency: transitive - description: dart - source: sdk - version: "0.3.2" + version: "61.0.0" analyzer: dependency: transitive description: name: analyzer - sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 + sha256: ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562 url: "https://pub.dev" source: hosted - version: "6.7.0" + version: "5.13.0" + archive: + dependency: transitive + description: + name: archive + sha256: "6199c74e3db4fbfbd04f66d739e72fe11c8a8957d5f219f1f4482dbde6420b5a" + url: "https://pub.dev" + source: hosted + version: "4.0.2" args: dependency: transitive description: @@ -134,6 +137,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.3" + cli_util: + dependency: transitive + description: + name: cli_util + sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c + url: "https://pub.dev" + source: hosted + version: "0.4.2" clock: dependency: transitive description: @@ -166,6 +177,22 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.2" + copy_with_extension: + dependency: transitive + description: + name: copy_with_extension + sha256: "9c17d2b9a041ad19c97aa544c46a60f192cd409529bb9cfb98f48f336bb84d31" + url: "https://pub.dev" + source: hosted + version: "4.0.4" + copy_with_extension_gen: + dependency: "direct main" + description: + name: copy_with_extension_gen + sha256: "19ab5e5095a9047315b42a6c2bb7ddf59a85cd23a75278500661ced4299165e9" + url: "https://pub.dev" + source: hosted + version: "4.0.4" crypto: dependency: transitive description: @@ -186,10 +213,10 @@ packages: dependency: transitive description: name: dart_style - sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab" + sha256: "1efa911ca7086affd35f463ca2fc1799584fb6aa89883cf0af8e3664d6a02d55" url: "https://pub.dev" source: hosted - version: "2.3.7" + version: "2.3.2" dio: dependency: "direct main" description: @@ -222,6 +249,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + url: "https://pub.dev" + source: hosted + version: "2.1.3" file: dependency: transitive description: @@ -251,6 +286,14 @@ packages: url: "https://pub.dev" source: hosted version: "8.1.6" + flutter_launcher_icons: + dependency: "direct dev" + description: + name: flutter_launcher_icons + sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" + url: "https://pub.dev" + source: hosted + version: "0.13.1" flutter_lints: dependency: "direct dev" description: @@ -259,11 +302,37 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.0" + flutter_localization: + dependency: "direct main" + description: + name: flutter_localization + sha256: "9b3b8825146a3850297a0ec3686b326d618328dca4cd5178b764af9303a26379" + url: "https://pub.dev" + source: hosted + version: "0.2.2" + flutter_localizations: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + sha256: "8c5d68a82add3ca76d792f058b186a0599414f279f00ece4830b9b231b570338" + url: "https://pub.dev" + source: hosted + version: "2.0.7" flutter_test: dependency: "direct dev" description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" frontend_server_client: dependency: transitive description: @@ -288,6 +357,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.2" + http: + dependency: transitive + description: + name: http + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 + url: "https://pub.dev" + source: hosted + version: "1.2.2" http_multi_server: dependency: transitive description: @@ -304,6 +381,22 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.2" + image: + dependency: transitive + description: + name: image + sha256: "8346ad4b5173924b5ddddab782fc7d8a6300178c8b1dc427775405a01701c4a6" + url: "https://pub.dev" + source: hosted + version: "4.5.2" + intl: + dependency: "direct main" + description: + name: intl + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf + url: "https://pub.dev" + source: hosted + version: "0.19.0" io: dependency: transitive description: @@ -332,10 +425,10 @@ packages: dependency: "direct dev" description: name: json_serializable - sha256: c2fcb3920cf2b6ae6845954186420fca40bc0a8abcc84903b7801f17d7050d7c + sha256: ea1432d167339ea9b5bb153f0571d0039607a873d6e04e0117af043f14a1fd4b url: "https://pub.dev" source: hosted - version: "6.9.0" + version: "6.8.0" leak_tracker: dependency: transitive description: @@ -376,14 +469,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" - macros: - dependency: transitive - description: - name: macros - sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" - url: "https://pub.dev" - source: hosted - version: "0.1.2-main.4" matcher: dependency: transitive description: @@ -440,6 +525,62 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.0" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + url: "https://pub.dev" + source: hosted + version: "6.0.2" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" pool: dependency: transitive description: @@ -448,6 +589,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.5.1" + posix: + dependency: transitive + description: + name: posix + sha256: a0117dc2167805aa9125b82eee515cc891819bac2f538c83646d355b16f58b9a + url: "https://pub.dev" + source: hosted + version: "6.0.1" pretty_dio_logger: dependency: "direct main" description: @@ -480,6 +629,62 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 + url: "https://pub.dev" + source: hosted + version: "2.2.3" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "02a7d8a9ef346c9af715811b01fbd8e27845ad2c41148eefd31321471b41863d" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" + url: "https://pub.dev" + source: hosted + version: "2.5.4" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e + url: "https://pub.dev" + source: hosted + version: "2.4.2" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" shelf: dependency: transitive description: @@ -589,6 +794,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.0" + vector_graphics: + dependency: transitive + description: + name: vector_graphics + sha256: "27d5fefe86fb9aace4a9f8375b56b3c292b64d8c04510df230f849850d912cb7" + url: "https://pub.dev" + source: hosted + version: "1.1.15" + vector_graphics_codec: + dependency: transitive + description: + name: vector_graphics_codec + sha256: "2430b973a4ca3c4dbc9999b62b8c719a160100dcbae5c819bae0cacce32c9cdb" + url: "https://pub.dev" + source: hosted + version: "1.1.12" + vector_graphics_compiler: + dependency: transitive + description: + name: vector_graphics_compiler + sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad" + url: "https://pub.dev" + source: hosted + version: "1.1.16" vector_math: dependency: transitive description: @@ -637,6 +866,22 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.1" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + xml: + dependency: transitive + description: + name: xml + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + url: "https://pub.dev" + source: hosted + version: "6.5.0" yaml: dependency: transitive description: @@ -647,4 +892,4 @@ packages: version: "3.1.2" sdks: dart: ">=3.5.3 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54" + flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index 585021a..f1ec955 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,101 +1,54 @@ name: flutter_labs_app description: "A new Flutter project." -# The following line prevents the package from being accidentally published to -# pub.dev using `flutter pub publish`. This is preferred for private packages. + publish_to: 'none' # Remove this line if you wish to publish to pub.dev -# The following defines the version and build number for your application. -# A version number is three numbers separated by dots, like 1.2.43 -# followed by an optional build number separated by a +. -# Both the version and the builder number may be overridden in flutter -# build by specifying --build-name and --build-number, respectively. -# In Android, build-name is used as versionName while build-number used as versionCode. -# Read more about Android versioning at https://developer.android.com/studio/publish/versioning -# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. -# Read more about iOS versioning at -# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -# In Windows, build-name is used as the major, minor, and patch parts -# of the product and file versions while build-number is used as the build suffix. version: 1.0.0+1 environment: sdk: ^3.5.3 -# Dependencies specify other packages that your package needs in order to work. -# To automatically upgrade your package dependencies to the latest versions -# consider running `flutter pub upgrade --major-versions`. Alternatively, -# dependencies can be manually updated by changing the version numbers below to -# the latest version available on pub.dev. To see which dependencies have newer -# versions available, run `flutter pub outdated`. dependencies: flutter: sdk: flutter - - # The following adds the Cupertino Icons font to your application. - # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.8 json_annotation: ^4.9.0 dio: ^5.4.2+1 pretty_dio_logger: ^1.3.1 + copy_with_extension_gen: ^4.0.0 #BLoC equatable: ^2.0.5 flutter_bloc: ^8.1.5 + flutter_localization: + intl: 0.19.0 + + shared_preferences: 2.2.3 + flutter_svg: 2.0.7 + dev_dependencies: flutter_test: sdk: flutter + #Иконки + flutter_launcher_icons: 0.13.1 + build_runner: ^2.4.9 json_serializable: ^6.7.1 - - # The "flutter_lints" package below contains a set of recommended lints to - # encourage good coding practices. The lint set provided by the package is - # activated in the `analysis_options.yaml` file located at the root of your - # package. See that file for information about deactivating specific lint - # rules and activating additional ones. flutter_lints: ^4.0.0 -# For information on the generic Dart part of this file, see the -# following page: https://dart.dev/tools/pub/pubspec +flutter_icons: + android: "ic_launcher" + ios: true + image_path: "assets/launcher.jpg" + min_sdk_android: 21 -# The following section is specific to Flutter packages. flutter: - - # The following line ensures that the Material Icons font is - # included with your application, so that you can use the icons in - # the material Icons class. + generate: true uses-material-design: true - # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg - - # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.dev/to/resolution-aware-images - - # For details regarding adding assets from package dependencies, see - # https://flutter.dev/to/asset-from-package - - # To add custom fonts to your application, add a fonts section here, - # in this "flutter" section. Each entry in this list should have a - # "family" key with the font family name, and a "fonts" key with a - # list giving the asset and other descriptors for the font. For - # example: - # fonts: - # - family: Schyler - # fonts: - # - asset: fonts/Schyler-Regular.ttf - # - asset: fonts/Schyler-Italic.ttf - # style: italic - # - family: Trajan Pro - # fonts: - # - asset: fonts/TrajanPro.ttf - # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 - # - # For details regarding fonts from package dependencies, - # see https://flutter.dev/to/font-from-package + assets: + - assets/svg/ diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 8b6d468..9f5b3e5 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -6,6 +6,9 @@ #include "generated_plugin_registrant.h" +#include void RegisterPlugins(flutter::PluginRegistry* registry) { + FlutterLocalizationPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FlutterLocalizationPluginCApi")); } diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index b93c4c3..f040a63 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -3,6 +3,7 @@ # list(APPEND FLUTTER_PLUGIN_LIST + flutter_localization ) list(APPEND FLUTTER_FFI_PLUGIN_LIST