diff --git a/assets/images/done.png b/assets/images/done.png index 62226f3bce4639e5e5010e0a8788450b2a4b484f..7fa52ae205683c9b353b4c5e7217a7e68f09064c 100644 GIT binary patch literal 3994 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 A>i_@% delta 1461 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 delta 1019 zcmVeDXa)+R4CaMbf=0m$FT@S+6xIsj?et0p0|k+JH>ZLilXUH{I)54%U5nEuOPVEa zO`5;v?9bRk)=+3y4 z)CjF?7`A%!Y2o{r3v^BNb1)6x;XcMS~*ZN z2W9lVw{O|=liCggL&Y0;3atdGr9&*#xmtif!jcSsCFm2ww10Q&NhqT4k>-KOGn0|W znN_vFs_QUN{~d%)7li|&<^-}=Kmi`6I~dFQ=F_h!;>~7?x?*|**{gsGgr0<`m-{hr z@?>lE-bgS@c!ofV(r?zQtL2~;n$yZgG?vxNus183C5Q@xN>vE`AT!>_4bxjJ?H|!q zI7RB+&!U5AaeoS_4GV95_tZzmZ?#EdtO}Pe4IOd7K@j_%hTUD-WWMDQyk?tAg#zoQ z7wxnc^~~@^;1V_(W{wBX9Ic*5W7UsxJ`DSI7;p>d=_PjG&$2o})aJ$=bQ`QysR1f1 zLu-ye^|av*-h}tDMZ$TWac*Y*#N1-$!nx)tW>p7diGNMtDOCkFyW6ensFeLEWev#T z76wDC-{28W{VaouEDf(+lk}ncbot$vUmev(rB_~28$4YQEH~zEzb?WLEMw;mE?i%M zI$+>4?IoDcy?|6Ifp_GWKwunK*A8JUeU^6C8p0~;;=1R4`9tE5sM4H$CGmdl1HJ`p ziA~}gkAHy$J<5i7&|WvtEPA1-5frjnwA8)0b0>)E&(rv|7{XtT{i0{4!_&e3Kfi`) zU6Se-$1{fCU7mp2lD+gkT3N!wBZ8TQ(J2?<91f#mmob}l;1S<79BeG0TdUxJnuA-` z;H%|12~9-ZKcxoNzrA?R--hCj3FK@OfkD1@<2;hx7=bGwdslw$#@{#^k)U-dQKw!~ ps8GgQCV>Gfg?v6CUPP(a;~)Dqbh0%zclrPT002ovPDHLkV1j{{-SYqd diff --git a/assets/images/icon_diamond.png b/assets/images/icon_diamond.png deleted file mode 100644 index c1104f368739e92994ef6f1a7cf52c5567d2144f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 883 zcmV-(1C0EMP)U2uuuMt59tZr~weppj{t7^{gOE-GkZpqQA>nuv*@ z1`3L*%cWw>>-kQ(aYlJ)n%bf{`B-UDeck^}Y8!hR@0vQ=(7lN)*+u zrV+qVfS zGxvDUY)@o9X=T@YeKI%EFhr(Oz)FB&M?p#h&KM>ecOP&$ZUk`y_iYo$t| zPCe~m=Ucr;OHppC49ti`(@HZkNiRzcL4(NWISLaDPoIS7lV8RrQXwE5gMt^LT(w|w z_Cd=o{T<84&D}|(hv`i&Hve8gA;&OF9j+5md5WW4hl1>YKY#eE>to^ z91kJa+ZS4w_xc~F`Om^_KWJ{M$9)^JPdf8O8iY%-Nq#nz?2^l%V+q3*m={CoHK?e4 zZtcd-1D`}At1SzU{Pkv~F54W*8u|6>#K^~Nc$$KnhKe3ABVrBmPW4US4f!2U5e0!zx93}R@KtC@z521k<{f1cVfwBt2>N164)S|`qMHhcq{2aF-SyqKZEnhWJ7mf$J>>vzdm@w_h-s-OO+FuVg!tk$= z1!sO*WL4}-ixk>v$`QkI%GLbWh`y;Nk97Uw$@qnLpj*TDtoNc>b8G#1DiHtx002ov JPDHLkV1jDrk%j;O diff --git a/assets/images/icon_flash.png b/assets/images/icon_flash.png deleted file mode 100644 index 9ca0a4e82245ecd8a67bb5aadfa7b6a6797cf6db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 747 zcmVWpvE{D6-_K4mRhiOR>&`4*Mdl_D6C;yJAMI6O`)BIjj^(W#Hg4U zSi&mbVRo0d$f6vrWAK^G7xg zpgB#hHGmBeC8$^-O6}SX$T*K@Irsu{2Bp|YYH;X-z8y&?hTh~7O{3BQ@eg<$9u~;S zrNlW&K(TPz?*+L}e7<>qJ2T$z@iM%2eJVt<(z5{9DOdv|V68*|1tS8Gilm}fBwYh5 zIp4fmvD_P@$3m#)7-fgSu@vb@I?0*{A1!jLbx;(7_J)DOUtX;Fg&loH0SS5RZ-E*I zV2eOqS&>pn3OEdyg1f|FOL(Yx_w`V0l zv-^F+o>D`p5HulD);Ui;mvLRpG_Keqw>CsI)yGsHkOtcunLy=FljON;>0XE1 zEzgoJw$QCVkmv3AI;iH|B34dnJ3iT=aMQAF1agxY8{83}cENsi=3l@m5NVo3pxO@x z1-BVN4IFHh>?xFSCQ`}cC3_5!_K>v%Fev03Wa9mjQ%vS?PNX2a*G!sr(><9886BAV zqVp2x0y-d0tPyO9a*^LQv}{kKi2uYfCw0%~rjgN!S2Eq0!3B|m=*sW}UwJrhUzWeJ dC@@dbuN}v^d?)saB|FnsSLnP$ zbA&{*!1m`FT`se&#*yjRX1CjGtQK=kNpZ2u<0&Gu**y7hNg^gr7K=sf^SLWFi*^61 z<+;D7IUp_4Ae$Aj?8(Yr@SHO%+XX@nhn=b_$|)nmHsif$%mn%2%uH+J>SgYq(k!8y z^pnrNu+nC8yjoaP;5C~q;ur{5KUfvlyE8#0&c7PW$jJEKn&tVwq**{0>8GA;^jd7@ zQyz~;^e%v&{lv(FA(@JSVPIUnYTWywOMMZ@%!a!+>XGX#%lZiKT zY=fqOP$)!^NQ4wcaRh_G7ibnp`CesN+2_h}#UufM?4pGWL&P-A!p=M$+hIli9S>>2$^&&&$oB z(a}-5dbORpy042*e2;6aB*&4Cz7>VCvYg`Dk3Kp}ot<5l@9h5OLww>88AY1a(2$v# zIqmqhYhColoBxa>YO~o0CNGN{=vlm&+-`T=JQ5eQa!$IyyS(F28=j?arg6OO^{e;~-mG^9kOn#XbD;BqAKMaZ2nOeuzw|V*ufo@kQ79au zwl+T+ot8vW+36N0`c;0Hahk?!|H9{X2(pmJ)wVX?{6gPaWM@zB^@2r?Ag) zRKL2885o|7 zSH<^Lt7@xWZ@uZ*Qe7}ib0xi@zS{rcho=X4*JZU@se&bvX}42%cQ-XRH^+!pR;&=3 zcDwUqQi+mF{`k!e4^x@fOMU(Qbgiq)VvU5B^WhfKfs_u@GvD5KYVl%^&^2)5#tpFn z>(X%>pGi0ek-f%>V&mPhQ9tjF&T*oOrgCGReN3}9Z2bWD2jAE5DW;?y}iAH zFi3uK(*`k3M@e?mIUb->H4Xn`CeqE#AJCbz=UDsM^x%V4x+j^Gq$LbS9_iv@_S`s9 zp(QMZk-#Xu`r1)pEmTa^^pY~~jL)vDsKBhtGweP3;Db{Qq!TIS0jDV=)7rk+A(1{Z# zG0FH+@zEFDDa12llr%_rOH0MX@b}l>Oehhp*#j_{UKEO zqwl7qql>h5FfL!dJSvg4c!_8y5m*#VZNhf`Ty1#%8s#O&_JczJBQ2 zd#t_Pm1;2RP9bOqTjiaFI^6w8oKKy0nZuMT><5RI37AYlCAn zULCkjXBHI{Eabp@)0#d=F1} z^Bu7qNO7@;ii!%vKJp|OCqsjS-e3QOj3KRrs6{)#T+ALnguwR?fBaLdXQAcV>gt51 zPdrCKq6VZD(SXV03dfB1NDp+AKJ=?b|I@qo`Pt@rF__?@Vi+TmNoM*I0X91kKp4+q z_Jd>;=?Sz10|BpnBCX)}cZeTay{Z=3BAP8YJ;o-lPxv5;4xc(@E-wyIH#PPZ9$zWX zj-2+T*#bF~j*bpOkO7R0j2%gJPg*^#m?mdN0EB_T!66#p&6S;{`&lFGZww3!@V$d# zY(W34Hs7ut8;$MhLqBiy1%g4gB7te=Iy$cr2-bR+motG=}&ls%8bHL)jG$tE>kQg?$9{Zo(TI(krFj1N~ z)9mxFsNDopJ1sdmHa0F|!!S=2c>N%Ze6-fIX@SP&vWLgm|KyhXM$(D2Nekj9eZHkD z*CixAJ|0b)BQ%rcWZ&?y0Zu~tY&QGLPi|SA(oz^s8bA!`blMxNw#+?tdqynPpaRlh>)=zA zaI4ed@IC*n&(Dge7IP-81xj|Gs$0D?FE798_U+qrZ#e4Roxa#t<~!8rCxejQZ8$}vGfd;Nf#Ia#v8h0Lf*mX}8uzWoeBnOn`NID<>Akyl_y-eYm7-8!^892F z3^jQ-Zr%1tlH362A9a)vM=&VrBU*?=LdVG<80wk=2M@pf_@9Gd~(Un%e#bBU6^|qg-!U={_6otgWKhG#iW=V`@{>WBwVgh8svVICwi=3X#KQX{Bg0;<-tL)tE&JF5D=RDa z@_R+84O`3R+SE1hIgy?qSi`{wmw}~+`KB7q&UvR^heYGWix;Ndk63ZVit?$42iTss zplT*l1hXX?;-|Tg22m!tlc(TqoFqccI%SNfmo%0zBl8pvM?`3bEm}b0Mkvb5oKZV6 zQv;*~WWB7!Jrq%P>LEHC(nteiQK7aF3gXDHBJ+w*#t~UoUSje-N=7;=0eMd(qBPPh zk&ZkP5m$jA7=BB%s45+l<;Z?*&&v~pyp-gM-rY>m+fPT9A{j2Mk3O& zH&3=V#Lf#j@Ifi6+j#|KfP8i`sBeSoFd-g2%wz^6=G+;(~ zmvseOE$Y>f3kvl)IXThQNIQqJw&Rdc-!_vy+4s#j<(tuC4yq z(2dqi+oqD$Ez~9)1R`w+#uLT-`9zuh#VPCreK}{6^`{+r0VpEI#DKNl|e`)WoZH?N4 zNsVOFfma)Nz7jzI89Zz10GFldW%jaQ4V+ol7rv5Oe?@{iSUL$D^u8$F}&r=$kFT2d1Mt>h>1$_Wejc;C{Z>NFkv Y2M&foRI_OqkN^Mx07*qoM6N<$f?oEr`v3p{ diff --git a/assets/images/mic_blur.png b/assets/images/mic_blur.png deleted file mode 100644 index cd6367e40b83ffa79fd93acff3e3615f20313409..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1906 zcmV-&2aWiNP)fW!;<2&a&MPSb1y@%c1U3&li zeFEFt(C+of`T4ou-rjcQeL{%8X)n0}kUZMm73-~!!^UDYYPXjwomMA6Ai{`CamfG% z&nH`3TlOaKE5O}umtH_C3FGRmMkQY9EOk1q)3S_|;6{>;@ZZ%Qh#-=c>fitdBS@}2a8DD2L`;Pg9 z&`?%7MA8RLh)+3ZchIGp)+W|kOAlUVDvSDqK``i#rqk)@^x69AWN&xZ&$amCq9veh z7pY|*s$4BPqk}BVKyVI8H33RnV6A1-@uW7MW=m1X8tV6ddWBo7Qw6C(gOwO+E^vP|@-Z|FSc(bpjuL{_GT>-2#u^A> zhG7J?nxO!$qK&Ju!Uwo@`Ytei`{a3V(?}^MnE44~C3s01f*~l4q`;VfFbEL1Mk`6B zB0|=TgpRu2)49M~Tl+4xeCmiFB2@0Z^F>iWt~4n8FGIr6bIwIcgUBe;?2o6F&0cRl zaJReT1En%d#lTsY8SA`3Fz*}~V<1ga$nq4l)!?+1s>o}``O24HW^67nTIpc|3N0OY z;-~m;XTe~YLb65j)i+2lvsGd|*kPB>+@Tw>8$gvFN(2%6PftlQn44-ByHoGzxo`~V!NKm;CH0LvfTh86s_78W21Lx`f-CDp1;qJ|AZ z>vwi`{9NF2flA5LI&v;J9m+u1Dpp;!T1Bv6wgwsERi5Woy9*)7#X_xma@$zZf^nRG92Zn%d(J!b$!v4u@-wlarNV?UUEX zsiFtW7@g(Wns?Aa4;-cBR4{RZTz)14c&eB!heFLojOzDCs zrT-eWqQ}4e<(A~6`&I4XQJoK_z=aR7+GOq5NX%;GP^-uc&YT>-C^MR2gfW1Rt z>x{LtaiOrCYF$y&LOv-4_Wgl(vBIp!ri|FuIcvNz1@;f)*AKV-djpr8&W01EoEbU; zV+`mBFh`w@szpUN3S!7+X6Y z7d#h1ASabus|6|+%mXLi#hQVU12pu-!GY-1@A8ZOY21H3TANJ9Kb}l7j*R`=y`|-^ z%-Y?lV1pt$IkEfu`>qVz+k7T(0n%RYFk;n8RS{^Q&ee&tRc%bIKe${TUJgIf){t6K zf8M^;{-#>1_c`-J6oKK`n^AF;O&-89`uQYWW-oeMN5(>*!n+1Ga zf+-3aYylr7Hb54|;0N7>MO_BsY~oO~poZT1ddqW+~N_$tbE zJ)jG#q~(pjkIJ;}fV5__ACw-^S*$oplaLat+7XkOIw>OV8uPSVo<|K?q$&@84{s7%GfO63>9iTST(f0hT!ELb)`}?PNT% zRyki55C3!XncEyJjFO@_7D2ceO1;d5jAiLR#fHfU=99i*4(cC(_NE*G(9qNy3@*-h z(>zOGC}Uns(Gp`~35`LfR`d1QM@dyJ)~4Up{vVhzuwr;yd*Ua+u8Jv{rXmRyPx^t5o6I(Cdnc)pz0}! z7%=I;N`e%@kH!fmM;FF8+M@6N0{iNjO^2`A2@D@?Y?v#RS2p&aBnh`lMKFmXUzjKm z5b!YIE=y@3;%}2o0^qjL;wH)07*qoM6N<$f-RSo-T(jq diff --git a/assets/svg/icon_diamond.svg b/assets/svg/icon_diamond.svg new file mode 100644 index 0000000..a944d26 --- /dev/null +++ b/assets/svg/icon_diamond.svg @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/svg/icon_flash.svg b/assets/svg/icon_flash.svg new file mode 100644 index 0000000..ff02f80 --- /dev/null +++ b/assets/svg/icon_flash.svg @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/svg/mic.svg b/assets/svg/mic.svg new file mode 100644 index 0000000..1cc78fe --- /dev/null +++ b/assets/svg/mic.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/svg/mic_blur.svg b/assets/svg/mic_blur.svg new file mode 100644 index 0000000..1dac0b1 --- /dev/null +++ b/assets/svg/mic_blur.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/common_ui/resources/my_assets.dart b/lib/common_ui/resources/my_assets.dart index bf6a215..28c55cd 100644 --- a/lib/common_ui/resources/my_assets.dart +++ b/lib/common_ui/resources/my_assets.dart @@ -4,17 +4,12 @@ class MyAssets { factory MyAssets() => _i; /// ----- Images ----- - static const String sample = 'assets/images/sample.png'; static const String shiaMind = 'assets/images/shia_mind.png'; static const String iconProfile = 'assets/images/icon_profile.png'; - static const String iconDiamond = 'assets/images/icon_diamond.png'; - static const String iconFlash = 'assets/images/icon_flash.png'; static const String iconCrown = 'assets/images/icon_crown.png'; static const String shiaMindGroup = 'assets/images/shia_mind_group.png'; static const String cup = 'assets/images/cup.png'; static const String addBackground = 'assets/images/add_background.png'; - static const String mic = 'assets/images/mic.png'; - static const String micBLur = 'assets/images/mic_blur.png'; static const String sampleAvatar = 'assets/images/sample_avatar.png'; static const String gem1 = 'assets/images/gem_1.png'; static const String gem2 = 'assets/images/gem_2.png'; @@ -37,7 +32,6 @@ class MyAssets { static const String done = 'assets/images/done.png'; /// ----- Svg ----- - static const String sampleSvg = 'assets/svg/sample.svg'; static const String iconHome = 'assets/svg/icon_home.svg'; static const String iconShop = 'assets/svg/icon_shop.svg'; static const String iconAwards = 'assets/svg/icon_awards.svg'; @@ -64,7 +58,10 @@ class MyAssets { static const String castAwardSilver = 'assets/svg/cast_award_silver.svg'; static const String castAwardBronze = 'assets/svg/cast_award_bronze.svg'; static const String iconRank = 'assets/svg/icon_rank.svg'; - + static const String iconFlash = 'assets/svg/icon_flash.svg'; + static const String iconDiamond = 'assets/svg/icon_diamond.svg'; + static const String mic = 'assets/svg/mic.svg'; + static const String micBLur = 'assets/svg/mic_blur.svg'; /// ----- Audios ----- static const String sampleAudio = 'assets/audios/sample.mp3'; @@ -72,14 +69,32 @@ class MyAssets { /// ----- Videos ----- static const String sampleVideo = 'assets/videos/sample.mp4'; - static const List images = [ shiaMind, - question, iconProfile, - iconDiamond, - iconFlash, iconCrown, shiaMindGroup, + cup, + addBackground, + sampleAvatar, + gem1, + gem2, + gem3, + gem4, + book1, + book2, + book3, + boost1, + boost2, + boost3, + boost4, + character1, + character2, + character3, + member1, + member2, + member3, + member4, + done, ]; } diff --git a/lib/features/home/presentation/pages/widgets/home_membership.dart b/lib/features/home/presentation/pages/widgets/home_membership.dart index f45cdfd..126f32d 100644 --- a/lib/features/home/presentation/pages/widgets/home_membership.dart +++ b/lib/features/home/presentation/pages/widgets/home_membership.dart @@ -37,7 +37,7 @@ class HomeMembership extends StatelessWidget { padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 13), child: Row( children: [ - const MyImage(asset: MyAssets.iconCrown), + const MyImage(asset: MyAssets.iconCrown, size: 24), 8.w.gapWidth, Text( context.translate.pro_membership, diff --git a/lib/features/intro/presentation/controller/intro_controller.dart b/lib/features/intro/presentation/controller/intro_controller.dart index 23b4a77..5059602 100644 --- a/lib/features/intro/presentation/controller/intro_controller.dart +++ b/lib/features/intro/presentation/controller/intro_controller.dart @@ -1,5 +1,7 @@ import 'package:flutter/cupertino.dart'; +import 'package:shia_game_flutter/common_ui/resources/my_assets.dart'; import 'package:shia_game_flutter/core/params/intro_params.dart'; +import 'package:shia_game_flutter/core/routers/my_routes.dart'; import 'package:shia_game_flutter/core/status/base_status.dart'; import 'package:shia_game_flutter/features/intro/domain/entity/intro_entity.dart'; import 'package:shia_game_flutter/features/intro/domain/usecases/get_intro_usecase.dart'; @@ -13,6 +15,7 @@ class IntroController extends GetxController with StateMixin { void onInit() { super.onInit(); change('', status: RxStatus.success()); + _goToMasterPage(); } @override @@ -35,6 +38,20 @@ class IntroController extends GetxController with StateMixin { final Rx getIntroStatus = Rx(const BaseInit()); /// ------ Functions ------ + Future _precacheImage() async { + await Future.wait( + MyAssets.images.map( + (e) => precacheImage(AssetImage(e), Get.context!), + ) + ); + } + + Future _goToMasterPage() async { + await _precacheImage(); + await Future.delayed(const Duration(seconds: 2), () { + Get.toNamed(Routes.masterPage); + }); + } /// ------ Api Calls ------ Future getIntro() async { diff --git a/lib/features/shop/presentation/ui/widgets/shop_item/styles/character_style.dart b/lib/features/shop/presentation/ui/widgets/shop_item/styles/character_style.dart index 6efcdd9..4384eb1 100644 --- a/lib/features/shop/presentation/ui/widgets/shop_item/styles/character_style.dart +++ b/lib/features/shop/presentation/ui/widgets/shop_item/styles/character_style.dart @@ -63,7 +63,7 @@ class CharacterStyle extends StatelessWidget { const PositionedDirectional( top: -0, end: -5, - child: MyImage(asset: MyAssets.done), + child: MyImage(asset: MyAssets.done, size: 40), ), ], ), diff --git a/lib/main.dart b/lib/main.dart index 98bea17..dedefa7 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -31,7 +31,7 @@ class MainApp extends StatelessWidget { fallbackLocale: const Locale('en', 'US'), supportedLocales: const [Locale('en', 'US')], getPages: appPages, - initialRoute: Routes.masterPage, + initialRoute: Routes.introPage, localizationsDelegates: const [ AppLocalizations.delegate, GlobalMaterialLocalizations.delegate,