From 0305116342d9696b4d8673923a0e0b8015e505b6 Mon Sep 17 00:00:00 2001 From: Duncan Sterken Date: Tue, 21 Jan 2020 08:53:23 +0100 Subject: [PATCH] uhm --- KentekenShit.Android/Assets/star_regular.png | Bin 0 -> 486 bytes KentekenShit.Android/Assets/star_solid.png | Bin 0 -> 351 bytes .../KentekenShit.Android.csproj | 9 +- .../Resources/drawable/star_regular.png | Bin 0 -> 486 bytes .../Resources/drawable/star_solid.png | Bin 0 -> 351 bytes KentekenShit.iOS/KentekenShit.iOS.csproj | 3 - KentekenShit/App.xaml.cs | 16 ++-- KentekenShit/AssemblyInfo.cs | 2 +- KentekenShit/Assets/star_regular - Copy.png | Bin 0 -> 39958 bytes KentekenShit/Assets/star_regular.png | Bin 0 -> 486 bytes KentekenShit/Assets/star_solid - Copy.png | Bin 0 -> 33325 bytes KentekenShit/Assets/star_solid.png | Bin 0 -> 351 bytes KentekenShit/Icon.cs | 79 ------------------ KentekenShit/KentekenShit.csproj | 7 +- KentekenShit/Models/HomeMenuItem.cs | 10 +-- KentekenShit/Models/Item.cs | 28 +++---- KentekenShit/Services/IDataStore.cs | 16 ++-- KentekenShit/Services/MockDataStore.cs | 56 +++++++------ KentekenShit/Services/SQLiteDataStore.cs | 34 ++++---- KentekenShit/ViewModels/AboutViewModel.cs | 14 ++-- KentekenShit/ViewModels/BaseViewModel.cs | 46 +++++----- KentekenShit/ViewModels/HistoryViewModel.cs | 48 +++++------ .../ViewModels/ItemDetailViewModel.cs | 34 ++++++-- KentekenShit/ViewModels/ItemsViewModel.cs | 46 +++++----- KentekenShit/ViewModels/LookupViewModel.cs | 2 +- KentekenShit/Views/AboutPage.xaml.cs | 10 +-- KentekenShit/Views/DetailsPage.xaml | 24 ++---- KentekenShit/Views/DetailsPage.xaml.cs | 34 ++++---- KentekenShit/Views/HistoryPage.xaml.cs | 44 +++++----- KentekenShit/Views/ItemDetailPage.xaml.cs | 26 +++--- KentekenShit/Views/ItemsPage.xaml.cs | 44 +++++----- KentekenShit/Views/LookupPage.xaml.cs | 22 ++--- KentekenShit/Views/MainPage.xaml.cs | 42 +++++----- KentekenShit/Views/MenuPage.xaml.cs | 32 +++---- KentekenShit/Views/NewItemPage.xaml.cs | 26 +++--- 35 files changed, 341 insertions(+), 413 deletions(-) create mode 100644 KentekenShit.Android/Assets/star_regular.png create mode 100644 KentekenShit.Android/Assets/star_solid.png create mode 100644 KentekenShit.Android/Resources/drawable/star_regular.png create mode 100644 KentekenShit.Android/Resources/drawable/star_solid.png create mode 100644 KentekenShit/Assets/star_regular - Copy.png create mode 100644 KentekenShit/Assets/star_regular.png create mode 100644 KentekenShit/Assets/star_solid - Copy.png create mode 100644 KentekenShit/Assets/star_solid.png delete mode 100644 KentekenShit/Icon.cs diff --git a/KentekenShit.Android/Assets/star_regular.png b/KentekenShit.Android/Assets/star_regular.png new file mode 100644 index 0000000000000000000000000000000000000000..de2d6f45ab5648cc17aa8bd32bc2003194155d89 GIT binary patch literal 486 zcmV@P)^>$oExQ@zH|!7H@DT1V1J*w(u$w9(j0&hj?BD@5ElL!w#&# zb}YxI*wQVWN%FoFYQl?rDvaZ0&TmIP&f;8FbAW9vf^}@om~eMKj8#RsjFT8i!o(0_ zyD~+Q&(pZ1sPZ)&$$2k}G#A$6S;j|SUafd#+uXq8oR2gJR%=gjy}t0jlTzhy&>%R- z-t3kOrQmobxL0fDxMi;7wmLO#FY~vyNpMS!4|1H${yddMi_76~!HG)GDOhbG{u)gk zJsK`9;sTc7CLU#B0@2ie5sh6(mA^QSfx9@0&-p%+Ppt15#^IA3@27(Zti%E_Kaj`n cUJ(QS0K5ZR<(<{dE&u=k07*qoM6N<$g1`pk8UO$Q literal 0 HcmV?d00001 diff --git a/KentekenShit.Android/Assets/star_solid.png b/KentekenShit.Android/Assets/star_solid.png new file mode 100644 index 0000000000000000000000000000000000000000..ed98e59cc37f11f7a5c828355e0cb75f3ba6f2f9 GIT binary patch literal 351 zcmV-l0igbgP)^ypb0<&jxJLmK_|D32%f+#VK@4C$FFDU)S9I4K?{CrNN3#xB zDqul9G1ipB4m_YQ5r2s;KkIQA8c@V6j#FTwFe;mM~hf(4xg;5K$z0Nce@xhebD_y=qgdlFqf#Bvj`RUDKrX>)ju`8r`Y zn5zt=ZOTvs?*8N^fy0<=02p#dvVc={{y>$Q&H{#2N>dn#TBB7}lLXEr?iX>N!$^eD x3VVE>Rg(nX#`6keSd70*S+6Kz6qkt_@C(lTF{50OKGOgI002ovPDHLkV1nG6mTdq4 literal 0 HcmV?d00001 diff --git a/KentekenShit.Android/KentekenShit.Android.csproj b/KentekenShit.Android/KentekenShit.Android.csproj index ae0f5b8..1d38166 100644 --- a/KentekenShit.Android/KentekenShit.Android.csproj +++ b/KentekenShit.Android/KentekenShit.Android.csproj @@ -54,9 +54,6 @@ - - - @@ -97,5 +94,11 @@ KentekenShit + + + + + + \ No newline at end of file diff --git a/KentekenShit.Android/Resources/drawable/star_regular.png b/KentekenShit.Android/Resources/drawable/star_regular.png new file mode 100644 index 0000000000000000000000000000000000000000..de2d6f45ab5648cc17aa8bd32bc2003194155d89 GIT binary patch literal 486 zcmV@P)^>$oExQ@zH|!7H@DT1V1J*w(u$w9(j0&hj?BD@5ElL!w#&# zb}YxI*wQVWN%FoFYQl?rDvaZ0&TmIP&f;8FbAW9vf^}@om~eMKj8#RsjFT8i!o(0_ zyD~+Q&(pZ1sPZ)&$$2k}G#A$6S;j|SUafd#+uXq8oR2gJR%=gjy}t0jlTzhy&>%R- z-t3kOrQmobxL0fDxMi;7wmLO#FY~vyNpMS!4|1H${yddMi_76~!HG)GDOhbG{u)gk zJsK`9;sTc7CLU#B0@2ie5sh6(mA^QSfx9@0&-p%+Ppt15#^IA3@27(Zti%E_Kaj`n cUJ(QS0K5ZR<(<{dE&u=k07*qoM6N<$g1`pk8UO$Q literal 0 HcmV?d00001 diff --git a/KentekenShit.Android/Resources/drawable/star_solid.png b/KentekenShit.Android/Resources/drawable/star_solid.png new file mode 100644 index 0000000000000000000000000000000000000000..ed98e59cc37f11f7a5c828355e0cb75f3ba6f2f9 GIT binary patch literal 351 zcmV-l0igbgP)^ypb0<&jxJLmK_|D32%f+#VK@4C$FFDU)S9I4K?{CrNN3#xB zDqul9G1ipB4m_YQ5r2s;KkIQA8c@V6j#FTwFe;mM~hf(4xg;5K$z0Nce@xhebD_y=qgdlFqf#Bvj`RUDKrX>)ju`8r`Y zn5zt=ZOTvs?*8N^fy0<=02p#dvVc={{y>$Q&H{#2N>dn#TBB7}lLXEr?iX>N!$^eD x3VVE>Rg(nX#`6keSd70*S+6Kz6qkt_@C(lTF{50OKGOgI002ovPDHLkV1nG6mTdq4 literal 0 HcmV?d00001 diff --git a/KentekenShit.iOS/KentekenShit.iOS.csproj b/KentekenShit.iOS/KentekenShit.iOS.csproj index be39376..0ffce1d 100644 --- a/KentekenShit.iOS/KentekenShit.iOS.csproj +++ b/KentekenShit.iOS/KentekenShit.iOS.csproj @@ -130,9 +130,6 @@ - - - diff --git a/KentekenShit/App.xaml.cs b/KentekenShit/App.xaml.cs index a252493..b79b5ca 100644 --- a/KentekenShit/App.xaml.cs +++ b/KentekenShit/App.xaml.cs @@ -1,8 +1,8 @@ -using System; -using Xamarin.Forms; -using Xamarin.Forms.Xaml; -using KentekenShit.Services; -using KentekenShit.Views; +using System; +using Xamarin.Forms; +using Xamarin.Forms.Xaml; +using KentekenShit.Services; +using KentekenShit.Views; namespace KentekenShit { @@ -11,10 +11,10 @@ public partial class App : Application public App() { - InitializeComponent(); + InitializeComponent(); - DependencyService.Register(); - MainPage = new MainPage(); + DependencyService.Register(); + MainPage = new MainPage(); } protected override void OnStart() diff --git a/KentekenShit/AssemblyInfo.cs b/KentekenShit/AssemblyInfo.cs index c859952..d8b7f1d 100644 --- a/KentekenShit/AssemblyInfo.cs +++ b/KentekenShit/AssemblyInfo.cs @@ -1,3 +1,3 @@ -using Xamarin.Forms.Xaml; +using Xamarin.Forms.Xaml; [assembly: XamlCompilation(XamlCompilationOptions.Compile)] \ No newline at end of file diff --git a/KentekenShit/Assets/star_regular - Copy.png b/KentekenShit/Assets/star_regular - Copy.png new file mode 100644 index 0000000000000000000000000000000000000000..eebe8bb3d2fb54e93cc91133bdac728f3ec5cf10 GIT binary patch literal 39958 zcmb4s3piET`~N!U;3)Uxl3Y$Cl3YvVw!7#e=`>8K&gg{FOgEPbg|^BN5>iysnQ2C* zjFcHesdh<-Fw;~_(n+V(Fo+qKbosw)ZS(u~<9WXS|NlJCJRR?T*Jpj!yWaJ#cfEU` zJ%@zei&e(!jYkNnEM2njGlUe&;J>ws3Lx3G(hmdzv~=M--^iTKC)-k=FS`8ouf3H| zQU`9RTj%pbBCd8UFg+At*LN>5JhlOCKNK{fQFG-EX#2lEIe$Ou{y6OZ@!j)cIk+V zK5y#ff@JGr8UAOgW=Y+KS|#|VzJdt8(W8Xl%pLxa1z_yLwgRrwUC;tp$&fvFarJZAg}ZGKN#UK z=|p0E6FG-H0mD!}ME})NbEaN&0~8w52;y4}MPXcrE(lH%^HbKhkVU8~4_cV8EuJL^ z=x;@jaFc_i$)B1W;pr{epNs+s|v?8!e6C_PJq?7)a340@Rhq2)trV(N>LpKdm!=HkH$s>*6 z8$!2|_JKgWfDFCqh|#NOE(6&9TNjaW?0r+=lJYzj>`5Ocyu?PaX$fyy zR)b2>ICdcL6}@2@@gGl<&h5ghsEHo!^^Q^PC{qJ35Tua4ureJAX8xFl2J5DX-MiL-w%cRM68Ohp+we~hPKAh z@5_$BxWsm&soG@yr6x=mo&?&{##pGY=`H%F^dfFJVNAn>ZEC`-VH`}Su^|QbI5Lh$ z#Ve08a2dVoq@z?z!ffv#tc$a;lO`Y`(6z$>Wt~~ zd2<_zRE0~7c#P#NA5W&Ay5M%=k);A(M?B0X^+y#ZI2T*aCUNwv>sFK~NS$+WOB>ex zaKjOoaBMiPAk}CX2NK7nqbDRM(3#g`*??gk=Z(HtUcX8~YTkhTG%|g3pOJ^RDKi&b z+~J~Be)LeJj_Y*kVwc7E;+Ua?r2M7CnCF_o#gH*z(uL%7`Ewujibgln83wIb|Zyv|E`308@6!M?u6r6iDh>~d~w7t z-J6f2?|P$QeMzp(`46l!@g{oaILfVII%xkfW?^ECk)`%zNK?RAxm*Ov=H;Vj_H=U+ z>bw&U(@vL+9&qEaZHi2x%MILcjK3H(??;{W;mXjE%@%NvBVo1i@LzmND>oPfKN*v4 z4qp@GV$Y$yx4NS9Z$z-vBr5+I5gR>sZg|WQ9&5*Ibmr)&AmOc3rT=tkhim3+@_|7| z#`vIlJKFgyiVuP>M^8hqFG=!>Wi;3~q5(T;6#xe~pq4_61$ zVWVv$Jp7kDa*r~EnGq(9X?W>pBsFR9z&(y$_mozN7HWApqzF{UjiJgM=hDM2We=X${!TjYp4P z5I2*9nqAI8hko9p=i@@NDk|bPY=MTyM|&jWS;9q~mEo`k=#8U?QIxa|p}oEDfU0;* z>H%o~F2JJw?z=cea~eWHk~i9j%+|b*oUeLZV6liTMz6rSpg)Zy+6}vK!!Z+XnfIRa zRc|zIIDSk+@m(W{Ljz6#t;jA8U;by!UpUdle|59Z5XQ8OObyW2}W^WJjyylDYc zsoiK3mnMA~OXs?L1T&VhnJ8{K;xvWgBqPb3b}XqFjVhjXe;AcJ;f+vtOwcnq@dsb( z+74?MRg9iE@x=RYQA=AiToaGUlTyT=M5G&mfDv+Ic<7?Kt&3HyTx{ z>@$S)pS8d>>BiB6j6C*bH1dD;4qr4Kb1{B;G^!6tg^MBCqg_7LE=G+}tjBy*$IO;S zUKdBVrVQt1_eVQYkLCS-B)U0-FZztRsO$q5Yn*U4#Ad~S|L^jQyuH&E**oq4LFt%4 zGmw3rFP_$pvzn)496Q46KCfthAIvj-YIK(&$exW+9%&_T5CuztT%&(AJ{`9eEWAFn&Z=p4u*R}LvoJ7SCHTg>HGd0 z)X7A_L^iUA3Vez6Il9%Wl2@eJ4v~ur96eQU?Nrp5)SUI8y?nGkzN(q%f}F!sp}Se^ z$q$3FTcX71emC-!x`4emvu6%`josNO>%3M@{_QeY@r|RiJ=)FdDo>c+2Wgq)zeR(; zr7N6}@I*LFi-a@UM*p1H&X@4o;lx3Ojvmlg_77AkvwGM$>06^`?Dvf)4IU2F2CLON zegw8jqo-SVboy?;_5p33$0D&oy8z(ljfVfz_L^!(bZcwCDW!tvE^zoTA2a%yc@H^K zwRU4@K7}-=ZLbgCU-%&iI|D<`D)d~h3p{3Z{bFEg%(85E{o^5kVwI)16|Lv>1CJTV zISLYa)`RM!b}vibW(5LdMkM{ga}AJTxIe6jt!%*VxpMaLnyuk5V3H4_^A%cZ85fQv%N`CGgquaP6& zRS!EZt-|_A>ZG6JD;X3X-77x zc>5Kz$9B41^z*I}n2|wk_(LDv3BQg9#U7!1njSn}H8Lm)?@L8|pO+}apxqLTrNEkR z;NBmXN6beuWI8&pmLuI$zYgfJM_9W1UTfiq3Y#Z4dmZC3F7;o43VWQPAFtZ>`K5a} z8cG$gAtjmb&uGdiLf)BogD0qh2r?Y{4}tr+P?hxDWE^BkpBltE^y&YsA6eExhmkxUZZ-%1*-^h)MY zhVAyiijDEqhmwCah{7bVLp;i=eHJJnGK-B*tk!+Ta$QR{)Pmr-`l#0lpEXC0#i#!& zF<`APnTgvlYx8b##76b7Wz+Elm0Epuy9djaO{j}fzYIZ5NBUs17i+Nn{Mz+c$o9h) z^$IqO*GK&?^dW5ekqJXPeKsnwHlbz^?;i5n$74R^w1Z8K5`Ut-&u?=d>1P3+WSguX zcA)%;Q7)6OCd;ZGy z*(3doPEMI!?`pVy=Y}1Qc72TXs~Li>Ls&Zj&3_NXk8CPcI+_A{k2Y`~zJU}2g^USu z&rh^|y=$xWP<1<}Bhm;|blDme24UkY98?R{m;+*TYq6h=oho76A2`Bjx< z3`e^ar4B%_rsomMVUUr7Ps#?*$qz4mFLQD;^Q+nmhG#<*(HJTD)Z3p1w%%bW4N4E+ zT!$+mqt6|5xYx#txg{CpciI&?BJoB$=0MJLcm;w=dd~B{1G~!IL8Y9n2;rVa2DHU% z0}oy7HH5k7;S%2}n!N9;VC6F=pi`tpCL=WOB8M(6UjY(*cERlq7_Rnn!vgVS;#`4V zU+~b`$crFxWc{!6*2DBIgCf8k$?S83|IkCa_i)jTIZ8~zsBWEHcDw-xG&aeLOr5?3 zNiAAo#i3kwzx}P*&Mu(=*Krbwt3=lAoQ*e{Y>?WL+@NNIOhrO%G;0u74P2$%scA0C|G@s>3BHF44V}0pawOdf&p*TGy+p}!|6d1pCvbn9yPyPvhJXUT!i$^jf!Ey>1k#a>GVb>7+wF5AeS z3jHcqrMV8ZVhmH
L6hC@Gz+y_klV4ZqKlfvaWPw_&qIgM@d>h8o@sAxvFEod(z z`>fbu9raa@E4VQ7!M3MUz1(@|Y9Fp+{>1J`n=ZdUtNqjrgB&IxcYe1=!uSC_7!GkS zWRv`((d;3A>?zX;6SKV29Qv#Br_hEyG18N^4(Hz+!0Sy!cHNyD?oLAaclSc1YTQre zuk_?hBQOaDA!i3#)oTt9J&1Y=lDq8LX7%MKXLX*=0g#YM*e!&of7pa1O5KpSjFbbU z7A1TBmhHv1x0-?vxfb^Kl+n)T??GbDrm>=%4o6y}vEwjglapBZ)FEnh>jCIEgSGwU zlE|KyxaN%(k&d-a_$#0*eQw|4OOBEkMS``C{$e2=sI3h0tf}K-je22orH?7dm*3oCABK!N*MXB5LbDq78 zg9rl_dptTGcHW%`RFwE8rKw_rZpdbsBq!8jEE+H2gkY!8Ql9CUz z-OB)mygfwzkygR;Yj7K*Y4jOfY?gO;gTZ5m(u@uWnX%xmTgj$IK-gecq~vp_D0SxK zI_X@9hrz&h-RQbYC$rPGAn>XJ+>imbkjk(v2?$$RrRMrnA`~9k4RiG^yESzW-nT7~ zUICv++sW{2yfk^J?gg$}C$cAs?U$AxI3~j3h0(z?E;u$l0MWC{ajAhVLomT5o70$G zQ1C&~B=k)*v_D*YY$UsS+n%6%bo2_wtQyDs+;my ztIEHXEZz)2qK6LSxJ^IEc`J|dZ(f1m;pa(0ZcO%`c^)4M!Hnz)sVL(LAIq4i{LU?5XPa;Jfk$gU%2t=r%k+X1w3bXMO zePwrVfBn1nU;_56B-TC`$w7NAtHJ_h?}AdUd46;UK%l!MnAkgB1B_Gu2mpgUs(xjA zjr-yG9?+oY6Rw-R|Kg&aiYrjX94UnC%3jNPS_b1l5|aGdWZb_3t{D^q9;!^j7@U_b z(1C?&pkhw;{FJs#&_Cj51{1b`m`&jBVcOEB_>!DGFJ!D!38=TME^ook6_OI z=~9m=wA;)}vDLV3lrcG|g`2I_UU~DTkQezZ#Qid(P_2s&zs-MPXSN$VD?1%56og+iU z8c2~;qjO$l&g}gD>(+c&O5|C9z`JsF?Q;*r6xf4BKB=)BB<89QxuV@~`vv!5=(U?} z4^M$pvHLDTyhV1Gi;kZw4QE?$I?B4lMjhUei?9buqVkMv%E38#@iAUU=@`+zq9gy9 z!T$G28pxU`(dVb4Bhx1oo#{~TzoZHa+whY(P6iiw`}LZps=pNzEB;X&_B#TDdrGF5 z^urD=`o-^-oq=D;-F|-MU`)X>7|;sh)I^0HkXzVV7|={^TUg93w} zMs#9<5468Q>?d}2kLSKA!$laeJ&r#;6|eo^UTCpD5GBovPP|r6OXz?@E^;8my(_sW zEpFEgsH3n;FUBjLju!m_3Pp!-)Y}uT2fcU|tmhz!Es1HJ8}#I4FCa9)c^iW^X89B$ z6cl6t9kPWQv8#_j;Qk2GA7qK$gU-!?eMVs4u?C_KYtk(zKA>HtI1Le#n}B~m{~b7J z`90zy%ASNHzpCH)`Bl518iSIt0VO);zTlwz+ixKd>Jg7(^zvM(FA8^n278u^aeOfz zQ63NBSU+;3{iQv=5qTP70272!U)_AY3bK{rR(V9T$8(#k*Q$*P9R>hGZh%rT-am6u zW85z5|G5_*<+Y2B6%Bxf4Kc}A;U~4=#!JCIFo_K@N!^B%yuV+(#UX7RHi^J=m#n@zF;EFx-)|(rhQ#oT=c46`;&MMsUaO8fWB&Jvl2;uHHX#5xonn$Yw)y zsMj`hJ#0N-utz0f^8NF;PS*iZ-JCs}2WCG+`k{FHq&b90f)7?Xy~_?pLy{kQ;KXmJ zyv+?$*@0bvQt>{=MT~97#(%>T>b5=2ajeDL32MbboPL+%2?l#qaEgNjPGrO_!4|xb zW5f6`K_0!JTXGhGN?*YlP+|R~B~XtSk~IuQK`jKOJZCRGy$cQJutzyk(gFpwRu-l)$j7+Sp!;4RaYQW z&KMnP!b1O;*l)XylU?~s71w=0-3ju>5veamo96MO`YtW|fGjTBm#XyeTr-%v( z3bvii`Y*)- zmBXW{#N=>+$~<&A+z8_Ta}E-Ja!Z&{5v!eZ2P$f`MN0!viGs9uG!?&wA66h#-Eaj` z2DZY~c<4+&Iv=_of&+W&wBW^05c7ZE5Cc0kTTFR%>nEPXVqgx~e=Saopr)34My0kg`tQi&+5j_Xhl|gC>a|`FCgWBr^uwF$i9@jEi?DfVj6pn~{ez zv`z$|o$YS;PN)-(b=eiKp|tv{b{N`tkz7oocV7v`hP%U_ESZQME2aJSX|NGq0}TZ- zF~UPX$fGl5_fF|Q_-z>?FIcL;)Av>nHg$#o+iq99*b4J!YYwxd``fyX0*c6kuJv) zWM_X2N%aO`5a>5D=Dj(0ppW|A4y906;)?^Y)ilNyb^Wv-$RK3d3`V${u zV*Ie~syAEJ7yJ9ikGKeLL@Qx*Qo1(8PtFD?VGMJYRfdL)SDph#RO z?>UtwFHoI4jBJ5sQSNJNgjT@XfQJ_v!GF=3abmV0L(QJAO}A{V=iLrCsYIy)Cy6}x zX)eoqNy{E!f9}XCV0J|NbJu%=tP>GCXenEA5sz~17OG*m~AUq zL5-*HK{^N?sRtZgAS6hXY?V-Fu!**08gLZ(R5pVBdkGh;^nYLFDq82q!@ik{Ciy-@sI7*Sv%v z0b^MX4Ua>t>9GR6o|MDOX@9S94vK}vkPW8|W{tyiY;F|!=vV*ZL3uh0<{)}%5C<)~ zJa1g%Q5X(mkaq+1K$%x!H2E-AMM1E>r8|su=#yY_{Mjj>Ih!FArDcH~66+QjQ#)cW zE5bTOJRv;VCvcd&pXk}-A_W2DpG+(aPNH`z4!yI1dn`-55KkR$s)!9H?`mfg>LHRAW3iGmi6x#ZG*pn`26Ia2V{tb0D2NIUKowGed&KQD)$I zE{Xl*twfLV5)NdoD#mfP)XUYVp%6x2e;&_ZQcpgeSj1(L+ z${1aT09Fril)a{g#cjdn*|||ufj)s9N^;=r?29ov_{qGd%|hZ*5Rh%(%X?2KYdi+# zLG{HaxXgGA$wY8<2PxV7jSe0xBz<1a2FkKioH50^jSJ-HV;GaRm9xp58a9PD88#{M z2~-p>Stgr55mQX8%2PnjcwwSpMX};?*)2~8*u}{wYywksx;lOm=9qTo@Hn&^0vAGI zPHS&G4h(=KFQPeUL{&QJ{(4hJlO zV#x93Tx4vEAqPFt{p{-RRju*1k3T!7(bK(U8Al~>G5cn+8`3y|DW>$ix^^qp&(1h& zu$;kB20l#Wt*oGhR&Ns5!h$v^FXySBz+S;vtbgj-c}m_mthu2U2Uz^MJ$28xg|f>D zMF5+4JJ|_MA}km7yt#J!`X2$tS-Z;V5m?G#e^%u}tMGB_0QOaRG%xKChNXP>XUT&& z@>d);;X~(sn8gdoy1CHmxgu8GS{}qpODC$@c~_OEg+-mw`HEFVV5Kh<2G_sccOWKq z9C#0XyWESHcA_1MfN94bN>!$niQ13AhE6__2{l%8vSnepC&$AMb}QK)X+`3rr`Bc- zE1Q}Zv-f$8C^BBtuI7j{YHfdp;;Jw`D+pPTN9)f2YT>dWqc-9L37?=$pZ3}v#Z1j= zki!Gn=%2{Ruf`7!mR@+*?VZ|kT3ntj9>?tPzR087 zr@%L(jeC-AaNpUNFZ-XqLpoQiOMgpI{Yyz}x*=yRpZ*wW1(?ytuM}776IyKlg-ai= z3py;qhD1-DepE$Iquj7w*5#|!x}WH^9xc34t<4Gy!#xd9YLqwVxg0-VQ9bb!y*r-w z1A`8+cvU&xeEJc2#xM2zS9W#_KN(Eft$|6unvlT|B8=WQ&WEehlNoSm>1=n%iQA*L zLkH#BC65yIKIx!ev3c9V6t;tQ$HS`VQB*AGAoB{K0OeXOO(FtNL2r%(}2gV5uK?l*dxbXs_1!S zA?S&Uf9`9V^od?r^TWLh2g{5By*?B_ti#Sa{m;fU0bVRgGf>t8MP)})a^?#-D7PaL>F?F4n5Xicaa851Gq>h;&ccOpnz zDKGDI9^;l<0bRAs4T&22p(4+k==i|mKwaT$^-f0w9f{6ZGvY=2s+V;eEHY)+f(rzU&|TKr(Ilr0X`0U z=7iZ+!t9U_ZQuH*mlq`3sHqB`VyLbnPca;g_!OqJZTF6V47~abz2kV4f9`W=I=SWW zC(|KKUH9bBQoNQroZhRTp{QI4!lVetb|WZvPES5#0ahq&_yIq}5N-hOe!ccR+lVL~ zjF`<5le(R|#*r8{L;&$&t6k>PV6S99Y(+z?a;}^svBFO&((;81tzyr^;gfvmbngLH zy{>)d9Q1p86r2fcnwvkh+a|{c-xIspWcfTnjS1~;FtCOA+{AuvIct^;{s5i~j|je0 zpkv8ni(OI8=RTc8tWG=Sv?Tf?;< zaR=*i>J^ZGREd9&&l^zDaZMJLL&}MsK)y|{!ABc(1=hS5{z9v9cP0$8%Ak07Z-Qi5?g8s4 zr<|FDQ-(!^2)SoKy8{u_ITcgQ#V2UW8f(}QENnURB`_4q3^U!_wnY|j6PQLN0<^U3 z?Cj!eAy6=R_NZ#tHH@wfXE=oJ;PVoiK#t=$X-0_)Fo}71++r1+i^%YA=-48TO)75k z7I(*%UrQH3e@Fxw@<@HM=QP&v!{-)c7Ly{fJkCL{7GkA^1m@|Mr#Bwm!L|~fz?%7< zph-Dn?iT9BV2F3^uMC#HgF%oY!ew>HJ>h8oH(dV=7c|rl;Z|ZbY`C<(~=P! z^VPAv>+s~ESMvauA09xE4SJ0wW^G!J{HSzfwPnnW2}E+@q=Zss5(Lm>CL%LmgYNt24#@ z(tEJ`O@7jELnHYr~Q@HW3ZF3VI@?Bf(rkmhl6}5SRk4dK@7uz&23FPm23_5VC2f zzz9wF^qhi^XkbTtN+vh)3fWFbO+y#g0Q5ERd?B01zZz!3xpxphoOlhpHuz9AOqg^s zbo4trM9Bo`XcpWNruDD~1ACf7et?;lK!~6&FdKz$TPCtZplTsTg195;wJX%VM1J!L zI~1iTM&gV6&QyW}G5CxPA5y@;)jg>zu@#c0pS`vKjD^eC^dq)A#vG2A46Z^A5`Te3 zGz}P-fw6W%Wd`G12Cr^}8$R?`Y!hk@7;EjIUfH|9B|HI#7!WZ|Aha9)Ti?D$p3Y|# zQ8-Xtf{(i1EF(G_?0yg`24Z@Jdj~1d`(VU>jtFq|M{?q9^^0?p-Kp^- zP=nrxm-e_~xD=q?u+xIX`W$5nj)}D6Z88g}2oB}f2IU3t5FfL4q+vCzHX7x6Sh+t* z<7~%=KRg5@INV-R?Y;n(Zz1akg#H=~sUbQ}V@-%Qfk5=PMcA989^@2^TjJV8)`A>o;52JGLVA#UtY2{vt-(Q#H?rl4zI8LW7QmLZGjvgFwV2DR-vpA&JqYb9*ot1cCd0M@w5Zoa~bnru4o<=(TbLd zZ0mqN*Y=N{PsW9{_)S=Nv+cdwkG7L{UGO-xY$j@5-_jsNb|w`|1OuKmmFvSfsX;cZ z^>mLqtA>1cZg|><3?-Whya@!0@oU*ZZzx|I_U4g@K07Is?ck1dJ5T?w?{g2`ka1J0 z8J0?8*hS9Q;R^|9y*Pvg-CTMf1xJ>xZ?lFHs6EA6OH>=9p!;y8sm{K8@{Y;##uHGf zUY8xSM)mcv!DUvAva&DRQ+wDE&est^END;>3+kBQtQ?Y8@pkIskES{vI#MqM)?w+u zvKuIP?oW%`o@#N5Z8x*M=~q0F&%Qf}?d?SSa?V3*S9T)QbvOQB)vn)K_m3I&f=IfRv^o1`T^2^>n)tY_Rsjh{8y6c+<#M*Aov|~Ruq<&e_Z(pM40FnXDQqtm5y}!f-y?xPWz;VJRbFwDI*a&g>3VeR+1tq` z$3@$dtf*=Uo2;hXdcw_DZhox$vnVBcRmMZde%zye z^%(0FG#d>%(m(Q!{qK~4v3h&Bjy_0Dlumjnq(8I2CD z{wpry!!4ssk=x4zZl-b_QEoi?h-Z2&Ud_BLx?WAed=maOFC0%y&hb6pjz1#|8#-yE zDzu~6{{E5mQA<}mQ}VQW+Q;L1Dtt*GN>fFK=C947!NuKTmrykn8;07CRsr%sXY;a_ z?t4eZD^4mP&{CJMNXfU!J;*exYABSW#d9Da`YS%D`u?qE_?@g*-+h)Opphm0y!uI8 zQtM64Oi^w-pYN;OLX>;vMmY_SbIq8qp_kc7rE>l$h zoUi1o+)0!L*8I6|xn?WFoU)9pgtn!GT#>z#lkitf$MlTap?7p#5(n-=BdD>~RK+F5 zGBuf^!ep>v@XbjP)l$ifWVH%kH}q&qRcH$?KST8M^e)|R0SJgoyz^n=fg zqX&3euC&thGEsw?e!gxG8Hiu{yUF>bAJ==;eE%##)mQl~(JffmrQ+N2p66+0;2tRn zkg~Y)z1t;itwt-uz8rc6uuvp~kNwebo>s(%w2Wm9Jmkx6rl@Yob!a~j=xG($BS2co zL=)MkZvoZ!9P_f23LeMTk_~ZnR4(ZD@xPJTX{#v+FToKLJ~nnv4#LnXqr{BbNEZQB zxt~axMA;*%@_nog0QX7&mFWS^m@~aBrIyF@jrG$b+KDyi<1+TXmt>0Wyu8Wr zJkD-o<9ol9$h_TcOtaoZ(R79ffuLv9d>@xF{7#xFdMTa9_0(pgPodz5f@fE+rZDV8 z0)M>u8g_V&NA>m0%c@q)ui0p2XekN0NqUni_XbO3s_tO+p-2XR$$Zi#HKzf1I0%4c z^LU=xtXHK9b^vgf=4W9iviPdzYg`CKWPHvf^Ri!7c-Cy(Zs;Nj;;_CpsduA9R_|sD zz)>hJ!-Lq3UR-?)fZxh8MGt#kZjhU=&2BJVQ&uQgZ2vP^7`7%kVM4y27eO9O(w~%H zde(Yj%|=&4p(J1)i)_*xC~1qmu4|e#J4zUrOJeI$;vHcDk~Z(_V9kG`z+L6ZDiyEj-5_amyY6V3;Inysl$Iii!~$<8kJ z?)^g2cKw=@sm^wPIjY*27}!Rq%t{#gXi-i4`f_zTDV|kT?G;Jda_@bdUe@Dmtsn`o zCGMkpN?#|xG_Wr@Lup^{eq^CN6}|JJ!|5-Bjb>k64{HX1#U{d zE$4nfmlI8RL z3a}K_nm=DJ4T`ao>Jes8B-%OApBMsG9fL3#ONaC|Fxag5W1O@EKg{56Xv~ax#>H-`oP_ zIan%=2>VPT^RJr@$VYW_gqInDd^O_;&@K=1&o^`ZvyZ%tQ?{}WFidRx6#7Ws;)X&JKt{>VSKj602t4>4~$p&mjYw5qVzpl z6@6RQodCx6eQgllR$vI}=V6P$#CLzn6lI^*u@PRPiH#dFtby|9c|du5c_L6I%P%rh zq>*2G!OqoGXVtTKWnathFa&c=b_ggRGc_+Onqa*Nj7(O}b(6(FIo}c}KZu;iJ7#p; zmvqRxyg(w0z57|F$S+-Iw(xQR>F{HQ4tSx@aqz3NZ=JW34b0bsV7rOG=yivU?5;zmsOhkdi}3O*%#7J1 zi-je2^hX$-iS-^y5PrG|o;s}_rZcXZJq8=E_8+8b+DQ7_ceIaVI^bObgzL)(fiMXR zFHN8FJiBtX0^uju;6)r$l1Y+Vx44k++v3oio1yeh76>`SZ2(3#YEg#5(1xJBb4+z2 zs}eZ*ekp`pbeM~zEp^;SVOZQiv;ac*B&>bM^ajtOE30R+sm|ajHF@DBbG#mzNZD?x z^2vk`5*gR1?5h z^|gG6l|$T|^o5}b2c4&vF@e!yKql#Fy~#e{d;}6-oyZ(D72&1Lg!3EOcHpc5i7&U| z%}t2y+cAb?YPm{&>6}}T_)4SPT!1r4sxKZb=4eGMg2Y#;{0?6+-;cyHX;klQ*w7Rq z@r`>lq|VVwcElJi-h~RjEn3eY@eNTnnkosHf7D@s+x`iGVbTsbO}K=iZ8t_{N0~(GVm_^5cB;2uEvR9wfd>ISmQQ`F=7y z-A(BtKv22`iLX@8Z8L0XICe7LvJJ4()FJWZK6%ef)1+lx-OsDG9>s`#+_+INv5)?z@o6364`bB6jPm7L+V`9ILrWY++aX; zO@yh|jaHA#5Mv=dsrnM28Y+W{?>wte%#7#jkaq^|~GXInizo0mPhNoR`0BDWlBDUEfhrEUQH zS}X+Mk~u~z1yh$`u|$x?wb&kR<7ldrec;G+p$6$M#58Imqz4Da!9=@6`^6=RaewrT z>Tl>IXML~vHS#apcuKxC2KwlOkVD>2@Tfu+h}W{`m?90kfwLsG6* z9N7&QXUu^qb;wT3P^zm<(8*UMyP@O$oN@W3#W%kL%G=!-$^+s4m>IHVRAr3HH1MFl zz9|Y8`xP;A?v&MBi>|M1U_0|Wpk^o3AOq=9jG7<}U2#AjD9??~2Ff@>(R-`YfwG<@ zP=46PQ}LA}!8+O_7AQA}r+8Ww85(^hG0w-pQj;(fN!xaXWS~5INX*lUBfg)58!*REXh3RitLLTVmXVahne4E9RFTxH%0>VeQsKd63mxB9cQFuK_2S8+)aY)$dI2dUp=OM zvNpApA<9-mO2V)NZWkO_&&0~@X;(qnOu8ME&noLtOQl5FG76LcHUv^A7X zC=UVA){Pnu9?OL!m#beX=K9LnW95PLvq&pqsuUssldfz|c~C@o_Ru(Cs5@5`Os9WO z0?H)GH9C3DCd^TL5$@j_=Iul141|!`|;*NpOH#-8sR}iEK#DFL-3P!%Qab>CpgfoIAdl-7cy@7o zTVm*C04&c_6KV_+-Si01HI#;VT2Yl!z{TO1v5>(=e44)mJkFG-F4Q1Vq4?+yP&E*M zA%0h$PkE?g&#Ln*1k_!0CfsY_@-&1Ria3B2rw4>)W}=o!w}--B+wK;Ac2@hC`X+KX#mR*M$E z6m1eqxSsP(K`ONfQ%jyE5djdhD_jOYw!WgB@@9q}{;OUcyD*fr~o zBamm8H8Ts=ShMa=u*PsM>v*ypiYZr-&q@Fel5#!w<25EV4^xoHTDe|}0r=QWCG&9- zkkYGbbO2b%#uR`zDcDG+CSu@R)71bxgMqx4Zk}|T&Y*DRBQnzkfG;2)V7y8!;Cb%H z2TZAdm>dKJt`{)&i@&LCJ`RUcy1QBpfX5ff0kEmUEXmY-4D4ny2Y}5OI{<#5`#Uhk zz=KE2k$KrEv$helk*zduqXDW*0ia?BpkTBGQa~!N$P_NGS zmBTmrir{XLFjR+g99B{%LxB`0xJ5=$AXVcWhw1OUB?jp_ELDT|?}YL>C6Fg{-ljn+ z!cw$$U<0V%$*Q)D>oCJgOHB{2J)ccma*kEN=6 zLE4TWzvXt;Aw^#~F-UFPhh2rCPf-c*?W`AobOV-J?*-{2R04d(0=cNq`b&2m#=dH9 zfck_SV+PXeo6_Vg_7iDSEda|gI#?Pk0bLw^N^@iM^Gg>asOri~-4vEdjQuchM^gm= z%P|I^+!f4#vI8hPo_P;dMR(M)6qIchmP4L^mHV2m0y2-`fwEz+6qNCS+%Y!>l;6$3Jlfs7ZyD-Go>+z*C;cF%;XvxV^6Hk|S@Ta>@0mg@3Be57~< z&on}w)`7)aUQdnBlnV!Gi2L4I!mt(a9wAV+RnDW9Qds$Eu{$Ws(L7MrucASD7e;p4 zYcC9QM~;c0d`bB{wN#9i_Z3@%GLPm#5Yum9Ksf>{8|}3dhFK#=*!>wN0qu0NkM)5|<&tz{i^R#$~)Sl0r6y z9@)KuR1xQ}GcI>?P0QSwc<8P$SSs(i9|zb~0S)q=y|HvM3}aTS@(pSUg8iQv-}wvW zaYs!Z*5l?$`{R-XkSWk7nzzIyiHro`-i`L^kZK43!2WUrS1Zbm0%Brig+Ph1E(Bxo zw0=K{aTQ;e1~WJ+SHlj5QI$I{QXa8tHi|&^l5QrXFc>zyd0kvmi=kKmbf4SW0PYmP zHMx8da9tTO(7h8B0-4_ekS+>XA#V}3hlZLiN~uMV%q4;}g^3;SE9*lCz-GFq=IP}t zPJpm$-ne(-p7$@+vF<%$uCP=w3 zU#-qFl*b2En{mLmO!p_?3!$I3Z*~U01~}P8eYPQhYXZ2zMLU46GXoV}^fIUi_$~%% zYEXlmMc8h79Pq8HMUW$=fmHuy>^NUp2RaITvro-~9MKr~M#f*8kYD|PgL7RQcb*eu zwGc6Tl!vDZ)6em|FkuyiaEWm?CalrFL}I*{?}rJ`Rel8qhRDyjb{+u(s}^Ac|E&8v z5QbU`eX(gW5Z1@3F6yu?0>XHsF}egbj3_5200=(}3gN>-$^!Abid4l+nG7ibH@_^7 zq4_vl;MTv%TF$dKl=gse6xPLkpNE;Y`<+qS=!7z%Z4I2tG z_VTtagdw{t#7d?P!jS!vUDeEMu5uh8<`$V9a2HOX!8`>wWBHk~7Bm^?Hf6~p^KtWm z?#oRVd7i!7=;c7S^PVwenco84@XHMx(=rF<4$v)9N2WK;ftRQ=lv=D9wF1k@{j!ffV`(v^@w@^#Bt1ytd zqIa+F{e}+8orBH-FP-CPt(lGX!4i_%ALmPqDFD_z@LoB;`W$BvP7-MSr6rJVTOdT$ z`YZU#enU{sm8ZM?%;_Ww>N}DRMm&q&%?M|-jH{(KI^1iZq1l3%5dhr@4A2R?f)$gAvG2Wpd z#SY<8(Z=zWy9kV{E(de8oa~VrY%|g|+UgQx8W=l%{eFCYbrvTw2^e22N(9DGP-3=p zeolE5Dl_-NmXXKe!L z3>IA2oay1FGeB9FUI3IsrY4UUYWxnAqwlrK`O5Af{Y60e>>59ytPPX{`%NXr)(SYw zML9RyAo=|TD0ep>rIT`W=?a+V5N#!#&jQ4|Aa`J~0eQnt&YZBs`7E&LtoH}tTPSBy zP5z&|(h*{x1(2tU*K7tT@Nt2fg47rAMK=Q=xPl)#IN6|c*cukv`cltUCm45Erw4Pa zJRDws3FcUR`4!ef1s+{W%to+8>B;}xWk6Q2;Zrx;2$annCu@`iP?7)+Fa!@f8m&WP z4AW$Yf!GgaR}hXJ`D+sCvr%|H@Gw$eUgJ{OD>VF4uo}8Etx6szvy8dr5+Vr9c*?bb z91B9@f9@mD8^ESEdP=aw09se}Gg9`zAZv0+o3&wU5l&p0d`lr?Uyc*_)?zbGLr)hH zF98Fj)EUFfV_z$?L=~{I#5=XYO|hF*2Xb_whKTHo{9wMp!ZI0r@9r`ZRnq;9>w2+FST!y8Ldv_tEUp5@v=#TBjEFprpeF#Fv^ z8j7u`XhO1HXKf$sh&{9SYT|D=>qLHs<5h5PQnRS(B;gc${O1M$f(k2_InO?C#T3fU zB1_0s=woYSgy55E502k)Ab6p;kqrN8S^~Fd7WBSbeCfc?QFlPt6}WFd{^kdTOLVnJ zO7t#d?BfHKkVqW$=*GIhyoecpNj71O+#X zq0oXC68^><$9g9`i05P<7HQJkU;z|4D^0--ZIq&>p>^PED4G4+&1o7*Dd{up<6KO> zEDLSz1}mcO|5WigQg}W9_2kBDynKdVwi%fkGai4F?(2N=IP7`p$?YqB(z`$2_0u?Z z?84S_mT`RAh_>Ax5pjFF&CChz!Ew>>NGW}z*^&5ng#9@=dIvo3*ps6&6|)M_>08SF znA5#D9l|;O>1381jo%+3KHQr-EC`P zumW?Xj?W>l0R1V@MCnmq1Ym{C9JVaYy)gsfpC6)a&E(+|W^NsiBf;;v_$fG$tg=3P zz8rlA2HcpSLTXWUweQr>To?`ftn~`+%*H6(9Ug@SkeKEk(wj@&Fg&mUAb$rxSE?F( z48z-85v!E?<`*71jUQ+=bYMtJt3Fp$ieD+%6=(uphaf9^#G_BaOpSclm&lPn$SYH6 z4Mzp2eMx2x1D7`Zh%@`adi3zbEySNI{x2YG6ZXBXzilf7-==i>;aD~LtIBHed7$#D8VyItkFMPu}1&<}K-@4S`;AsSMxPOYeLH zVnr(LNrMt^$*9KI^v{H}g9_1cMyKn8o{V_LF*_dccQ_FDVAx z>lgSX2J=tSY;1V?#R*OB*#EBuLHut{+_JH_7nBxUJ_7``fne#XOS!lebE8g)BOUWU z{2+k;&4OJ;Yv6!Of7ASk15ZSQQxy6XnBrDFhsz*R;n=}`#;hk+Ox|zT_;^z#xK^Hc zA0J-N_rE<=s#iIeV7S}3%hBxHEJ)M;#%j+W1u&zGZ)YD=A{GIMcC9Vo%djf)2I{(lP~1e$%TXk*2u zV|c)up2C2`VZe@semH|dVzY1$MP5oxMMAYVk#}NAkxVZp zUwJ9kDw4ZR2}xK=rDoUeKGwE&N*)v8P9c=?>`H7jlJbz0Nc8r*u5)|7zwdYV^WD$$ z%pXkGoco+}UFUi`*SXJi@!3xC??35A1pdjY5be6m!5~aruMuH?0-~uF<}Ji_j7{S~ z;)8~t|NIr}@+~Op+)>w`a05NMV=oweMaAK{=p5+4O(gKE9Jbah>Ltauje$ z)YaI5kSG(KoO8iDu`Ro>+(w{9=jGGq-(1z@HM!RCgkue)Ym30lqOrcY)Q_z?UO19; zGyfLG5!FgD%<7b)PnU2s9SJ`PRM6VO;8pk+o0+~y$Ql1{N#>jVNq@2~u0Mf};|6rV zerhP#0rtw^a7y~x@~lDRGQEFBpZybq@jd<#`H0_?&)^p~E_M)Mz0iGJmPd~V8Qu1| zr1RfXNqpD*x(>`-2E4D;=>iY)OJh*NyY`)NOK&-pvSpAL#$ z{o&99h}8MBA5Z}J_UjL$$nCEGuTJEAmS6hpAJL>hzNidmm3a>+rk&n#oRFnB!yB{m z(DoC?ZOeRe><^ZWfAUZ4#)DCh9CuWDa?g!~$L>-wvmF~vu_y4ihJeB8SrP4t3O(Sws<@ufz{D^ezh#ln0061Tj&BmG zNB+n1@XLB%pgWt=>?I(bkVKmuJa{?ycwlg|CXXh!|6|T;JyLNCo{kW8ErvJ-T&GcI z)bFEe^N9Slj^Yo(f&;X zNodN?K7BHY)-R0U9Y<|ZSmf>DyL#(NsgWApiI=&D2VM|xV}B8*Rj%u6f>ebM&I_?d zgkoKwH89kY$*twl4d8r`j@F|7TtN(azC@8@7dWJIH#`k*g-}(-P8r|3-!Bi*S=}U)J+vnIJ>b?^`w!KQp zLCtaODPHV`Yj-Z!Ml9TlB5|x9Aj*a->k_sH?h~l@Ik#=8FYh}q;I?(-`Bb`ClV2kt zv;d-b_Nb(5;g|Tx54;bqEO@i)+&CV>n^a}}?2f)9RP5}J)QGVbNh@P*`6j&S_O{*l z<7f&{rp6!bq$H!HE5>QeI25R$!;R)iF^`(Z7yF_Ho17i^V};SKm50u_CjE4qDqW&`BcMMl$n|YG(aoNZHl6SR} zm-(*~wr8gibBu%lt9T|>=ia%A^Oj>k1J3QeYK5!!B8MuhDI(@M8gU@y6;8*>0m-4i zKr4LLeF?sC@L~$ePsp2mtCYyo_`LotxN(|%Yu>O^P2vGuz`n2%n%!4Mu^(#srh8OQ zBlY=$y1t zc7$)>9-vDk4Pv9;+MOk`)on2%uh#Q=a!HrsRMP_q`@{|J`ID9)m43+Pe4J!0PpzGM zS1Jb3F`t(=?E|=Kc$~ESM%_gC`UNjbYb)nPq-TDP^iYXVn96U@GiAF5$4Tw4)wwg0 zt{}qBf%%yqh;t%xq2q<14Y4A^E{;+P6k|M>qtANZNha}Zx3Gb)8a_AZ9pm%l7mA8j zNNMc0uvXYi>$kGTl-bolbT_YNq-{TU`yqt;x=1cqdr~)mm3~+tSbO8LIZ@ya(>u5m zt~y`azg9KsiWA{ZxbGoy$P5LK6)CmSxApJQbqVZT6AAxm$2w-lP3`{hs_i%$9eQJ% zkkxxvvO1Iop8!_?FoOr&FPRQk({D(P*q!@0u{m2ej_qkaC?K|YyV)cWoTGb1a*21t zc_~?2+%6_wtyElmL!zYRTv##;;zx@Lu*;HGvKEx7{Ae0N_5lnsm{K5}ni|$00klPW zb;v+&DUQe=zY2rrTPcFI}aE7>rL4l zz6Y8bpFOm9C3!&s<}~#`I}iXVl#}JWgJU!BJPDYEROWoF9L&g*qOz~H2QDNocG*&r z(Pk+vzY}Zm0>Zbl3@RcFf5 z_y+C)xELF4BLwF0b>a9G+&0;9!MNYrSKkxbjB9yMO4@!mNWOL1;zi+ok&1Yw7_QHIqQqrwy1CVbK6=Bh}`!5CSuL2o-m78VQWgIInb4EZU}p_bUbMu zh1y#yr#4fo3m0v}GzVcq>P$+Vnv!{Q$eDV&CSRgS9GcqLdpkRCcK?yO3 z{NL=1#7rnbvws%Z9$6`1?OSe>(l*LC*-qs;S_jV%!1a?B^#s&Xr_&WOqqus)Jap(9 zwi+Uza}NQKOk1cmH(p2yGt}{+D*K6Ngm+|}SmDzW#QAsp>Qm`q#*SHteB!rXFp8Xw zKsCSxQ(jUJ08CsqL!62D?WUMCHa#0o&Tc_{#tErBwhuZ_)I(6Qa-}=~NUWy1nA>gT zFpf+sN{!#1_>ObA)?-30M{LrG4PI^Vu6CXv=?U6ow#~v#$c0lgolc8+Dgq!LT|*a1 zPO}bkQGiKA3Mw=OgSfJhkW5NTEf*U{orO2Rz^d_d7R1V75E)Ta6u({aT5bA%HhF$y zr&)FIE*R5Bkffz!&X**S2*bZ&{FyJ88w!(VB=|f-s|qucNGS;&gjRbuHJ-JY^C`p# z0kzcRL>NMgDVb_<}c0rlDmVe6ob*(?ubh#h*iqf)bPmqk1 z-=vED1fBCkpd2@(6qWt~Dk2XdQx%uN189pgqc#eNCk5Q!;rBUVgUnOBJYh{*Pc(_j z!ma>oqKVk%(kxO)u0idQsN%CiSi;XlT3@PRBeI@Y5%r!$$gWw`iKtKS7Y!9tx$0I^SK$D2k@l(l?=wcmG zd-JR=xmkOXXbw;xsQZR$0GVA+ouC|w2&^CDng`TX7a39+G15Q@y;c~R*jJ$0<4zZi z6cXsuirnK6{%eN-YYL!+mE@KHU=gu&YHiXJG_d2@6pUjIF-#l8T1NHn|4#qgCzt9U z!>;34nC+>M;RD{)E{AHKbdsm^e+5^13yvwbr~aeOAV4JRX*6u0%v0#R4n)0_xu-(ls~?%t}5|m+-EYgCRK)?GM8q^Y@Re1VeZr%*i+GGZ@wp%B$e8 z%%Bn{D3m}Ygw~ls)k%2WDWeKqa|94k3`Im}Kp3jrV2emp@$5=m0X7?!fV5NoUFBgv zi42R*gE99WUl0kwy!2yX9?HfPFbm-epElWL=l76X86Ji z0SjRLC^hJa=t%z}N5?8>c~f&co$EXZSu=-)i-N01Xy0=;+oJ1u6mbq#>+PWA|k zy*-nEYyW)!V@5SlhqFdVwDzM>$}XZvuq&{KGjtblngX^V9t9Ne81}wUBLyTEN*Ta( zN$1^?f565)?K_aeG?Uni0-`z6w0KF)-@H7oJR%dCQ1rDfB6t^Ki5t57eC6~QOiZUs zd!$KY*mJl%<_XxNDLP#2L<%@c0T@qU&*3BKe2eyoV!_(-+e=S{$>+_xw#gaFV7;Q29nD=zRx#mQ1)?H$ClSRDk+K)7bE!$;F;(@V9FKnC20=< z*n|AgjllxQYJ=n`yIlvtc6l61n!>&$0_;*eB>^2ac?1qS5$B;WI%p?U^|LHg=Ztv% z@$n-w0pxJr)pcJn%&@C)w6H1*dr%q14}};b)yY*f;XSHk$heGxw3db#HsDILvv3}K z8O1ZmZe#~KXj*HWX%^0u+(F6W=46@;V6U(Lcr{j%G5OL(IISQCek&W+c)*~Qf+||Q zuEQlAz$?z)fqqZ8V+LaOpfrn{&A+mHN z_UMfM0xe+7&P4{~<|3wFquZzw;uC7;JotCi`o~H#Bri_C%VJ6jE%&}OsK@2lJCEk3 zULD35WmmB*5#nXcObiSt{H=k2zLYRX7d7R#pHK~w7~J?OFtstsr&xB+2O;2-XXjJu z55*R;pDR}OV??eQL7#b*zI^;>8$9Z8_V4RTrVQ`cQVECG$Tq17cm;sjftpc9YeL^e zNhNguP7}AWrvR(acadAF-dm6dxM;eV!I+ugDiV~vxU1Cm>J$$@<5G2odH9 zbQ$mS!z|eyy~7}1(-Z@~22Q}5DnZwSn(Zx*dUV*`cXrzWk2vQmcT{Yf+T0W< zrSllE?5CeH{as5)S=o>Q5Xy*+{s1YZIUf@?cg6Lw@B5Cuo=NfxcWvA2Dj<;j6jEZ( zc5NeNr<-iEYs73Wl3yQnj6x^#OA2pFPLO){mgRpTagbRf(m{43jtQnTpTEVmJUVB{ELrAS zxqgr^_3qs81$EcdITps`Z@39%bIhlZ)MeKW*g|)yM^O`CuoNo8tWOc79<6W!T%%DS zqA1apBZY4%Yqr5i`8ZN5)(2vzX09foYuaCi{WthVF4{5i!kSHujj6>}#Q%|wX;73SDO=Z(QS*Lub6BjH8-eSfHjNjM z{Co?Ov{~jriyPq0VLS-zbLK)o_t&w8KpcN0jwyx*%PMS*iT{JpTk}4#4%>i>Jo&*= zq0BCG?n@BKR5WI^GzH_}dI%_K`;QC2dZDP~XDizi1rh8w6PxdEXF6Jj=*WJ|JaE#v z=spR(7gF(R>c9?{cA)}`$}=&hA4%xQs8hFh7&5-qb%Yd0Lu8Q&NDK$?M(v%DWT1>q zGDy{y!_eH_YJm>p>lzmqWOiu%bx;GPS1JtwkLD+1 z{)L{fRbx#$oOdVobPOmOx>KL=on+}A(BJ~S&Z>TM`K97B7iYq6u%b*~0clPqR)f)H zd{INBqq{3lsjvi6Mth--r;I~${Xef%8o*GwK@M=lb_6 zD{UGK3QDi*Sp}X694-}xZtZLS_`M?lO(1lD9#84`T)JuF*@>uNC-M_=IAI26P8z}v zH#ZTHhA)jZKD#TY5GJ1N42_fMF&vUy_r4TjU)sWn2wZenQ zD13+w3@Z3=T{PP8soY7!$c=GZ=p(7WH69RY#a^ok5R0h3aNxMljOpi{*QDVn0_r_Z7Yv27q#w1dkt@vWma;!)WxT7ngPTqQYw$9 zq{-&#+qqCHEN_GvLuiVR+x6!Es6T@bD|GVbs`aKay3ZodE}c#W&_>X7pUP|ypS>EfANmJ`T`~h%W~pqWz?ZtkeDw=r2lo0X#m4Vp z<14Xtl9vx0226^R`lRoWK@6Zhob*1Uoah_;xtZ3HE|%JaE}vR2PRfO}U`)im7)=NX z4Qn^mhS75b8Qrdd2K!eKDit#?LRxGv-uLPH%?@inCQzK}4;8zOHQ>oV)+3=oDF!U1 zoo;2L9kYwlPR5^OEQX#?|AJ4+_p}yzYNtKv&O*sxOd$9aMVD$fJyB7(MoO6&x|l!w zUL+>ZEPRB-rGEg~99btJO6N++7`g={<%%OFGDo_*lhcCZ>>=nIbt?F!)WKs1B7jP) zoR*%ad#|mOaL=h+GKMfZ>RVvLyl8*HTo<^WxZ)y=)>*L)(rCsPy7Hz6ib7Ca%66tfPmg2n6EZ7(lgQ-VZA(LFY3yn#Fn`tiDC8+fHhnJ=d^QL}D0sHw zD|~5y6O0Z}UctnhAo?pw5;!XG{O^sU$e5cxMkK21QqY(Pfy}sW6+~YrPhzIgE#9dc zjWY58T@Rw7Qpya2EuJsk9gm^0XSF9F^b=h@6Ls_vK}UJBj1LXvuMz!S!NQH0)z^kQ0-}_MM=8jHqi)>ea_3B#&-DWk!b(n;7UmX#tYYh!22S z0RC(YG{?_)(nl9 zm`_7&TjMLFI%;=_Zn!nU5)<3jNxCE}%xZwzjgA+i{JcL&;%?%2tLfVHV)xcmwz}y- z;%VGNSl|TMH-CSDX4EGG2wrx*4!$!ONP^qL`IB`>Xya0#iE1QtoLixm5>FI2Hlg!( z3AyZI*3T~;RSB!Nz8CHv(EyJRjjZ?`huNN*fwQ%zRRnWq13pWsT0BNgm@mY&Nhi2k z(1MbE9{}nc1k9#=fNumTZE0BgyMpN7VcbwyTe6|Hdjqry1+n%^ zTOA@$56P56&fQK+DSI#dpveB#Q#goWpRWgZ`)w1NStbhERW=T|g^R)^m)YZj8XbT+ zD?D*Qjp!jm(sY=B(LtPmE|+X`Ego$M3fDq?&(6-3!u#xRL!oy9bN=I z`{XNpj>r9Vls8h3e|hT+?h@5$I9Cl-2U)nO*V-dC5wyaq8)C!Y{)=d-{HXT;zAU7{ z15v^kU5IutP=uVMT!B?p2xkK<4oO%q0)H582sCBaJjl|~+SiSMw??(Emq4MVVM6s7 z%5&Q!3;^lziI#@Z!3q)?4QFHQj=hR#ha#oetJt;AK^(jp2j|P%y`TutfVc@NX!aeF z(vKe2>!AwgE?^f+X%`7dTZISC?lh8;`wIJ155W1yAd|5P>mSc&zkkrIbE?DxB6ZpA z@12=pEgwE9!UkmoP`isNlf&qyFblCSHyS+0!#5%`!@deI;LAeA3vkWiVZ!7iiYPM( zsg;CbJQ9M`l4&X|K_D|vlF5&1OJEbKw`;$s;aRT%FOZCVq7(2`JZ{cp)S)az>agjE zy%Du_jkv%JJvmHY-!36vLuLY*?fWqBG;h?k5vRh>L?$!@Z(dmi)7VT;5@^jXHWJCA zrkaZS?7cyfM2)KL@%B%$*3;2l{lzTu0f|PAq{4f(@B*<$Vrnn%V~G6ZDul^cd4@U0DQmg~W|Q{A`VrFzxya0i+5`_ZH~ z0&V^wi(qJ(Onss0=mo5P;3KhawVMtjMd#jxGJ*T~*Y21JiGU7q@`DA!bja*1eK~8< zy#%_HS%ptjn7+3nmp?ok1&BL~pkubPCH(xh*RU@;3tlzE8>WaZeV7QeU_7fgbGj`q z#GUT1yj{M7Zp$i>4fHXV9GExIprGM?EI?o8Rf|?^StQVoMI};|SqvoMJ_7y)iWD7g z9+F_R>0r)37Poyq2hTz8kAOdFN)$r3tBf)95bmWN0~Lv58<5fk!FbJ|TW$sCeT)k{ z4Yh*qb9OEGs!mbxBi*8UD*;t?De5XHl-Z59o_F|r2@h%<;m8rgr4flwV68}4G`?Ac z0TzhOtoPawyA{S~?5fk*9fa(G8Mu{P6}@nZg6XQv!WW*pxz&&hqM;wVL|8(ST<-*S zhVC!# zb$Q3%Mwo0FOENIN@UwpbGc>kB0+>&%z6w4h$W>MRG-3G~6;fks^>ukpxDl;e{We%2 zdTOCX;)hk=lJ9vrfOP<+`8ITfD8#%5!Qs_+>_!ADr-^#Z@qQKORQ->tw3kvA zYD17@MUZHNMHzx8R#)R5nQcLEaGYp^<`~RSH7rkB@MMaR)^WG-f6hfGZUk`E!HJWy znm!5?s9I0@w{lLX%b}#;kfAACD(LQlwXl!ThDpK!EZ;M6a`V$E0)-p2KI=z{LumF= zqxgwa+?yVP>ISfjzi#nr2`FD;bY$Yxn8xjJs(`KijTWDnW&z*^g@NH2aJ+ybMsW!P z2U}o{DrRBz+ojL87;;~LdH7b%e5*&3x%$OV^gP;`D>4G7hMjHywcqh#l(XEM89Dbp z#E6WpJ8lw_;_h9=Z(9}wjYx!_h)>B*iQ@0q#+9EVx;N%HkQoj49doZ@=_2yN$xtEo zyg_z@6D4z&j?Evm4u{^L6oodPmC~w$-=0-j8;k6rvDW6SFuyHYEGt<3*oq9&L?3f1 z_U}dp|D`sppE6*^n#*EF4`!P$*OgiC--VCpx;R)nKNZRhAo?b=lsZ^P{080>?4KS8 z7k3U7rtSlWudM9p{`70#f<7c`;S``e_>P#Fi`_UA#mN0A*s9TI9lV`i3T1eJ_+awA zglzjxm?v!d9Nvaji)q~2SJAd8+_W27bMqTl6(}Ezxk0X*Y=|_^=cG8t2H-NiEqZ4z zd>ATF4+8z59&%;#6Z`#OdWg)r-QkY&YoP+`So*GMs|+;l0x%5t&N)?X^7BT9aUjxXP!45ZfiaP@u{-%aM~E%YH8m+zvoEa^yr_jmrL0>W)W0Q#OhT+Bof0XC84fZUkM4;!Bkthqu}z*1w&Qz4@~S|_;M}R)&cVfz zbmEPkj<$Je=KK>6o!T=hi=_PRHmBHsI%g+%LUU%dGVtl~XaR=^xmDI*8NNRT!0hDm zqK`0jc0Wv~D)Cz1R?`mvCVA=6tHNM9cppdQvA?g!{tX~XHp|-|-hj@hz|MqOz1r*? z+;ZU`_;5VB2gpk+2r6>di3s2QJC6*(&r{yRda!$81o{2BA|l0sNlSj^rSc0zhC9~M z_H_b}9Y%^sL->L7zuOq7M9uYw4>M}hrcHgKxo_<~cDlTrg}=_3xp2mr>58xZAK{h& A5dZ)H literal 0 HcmV?d00001 diff --git a/KentekenShit/Assets/star_regular.png b/KentekenShit/Assets/star_regular.png new file mode 100644 index 0000000000000000000000000000000000000000..de2d6f45ab5648cc17aa8bd32bc2003194155d89 GIT binary patch literal 486 zcmV@P)^>$oExQ@zH|!7H@DT1V1J*w(u$w9(j0&hj?BD@5ElL!w#&# zb}YxI*wQVWN%FoFYQl?rDvaZ0&TmIP&f;8FbAW9vf^}@om~eMKj8#RsjFT8i!o(0_ zyD~+Q&(pZ1sPZ)&$$2k}G#A$6S;j|SUafd#+uXq8oR2gJR%=gjy}t0jlTzhy&>%R- z-t3kOrQmobxL0fDxMi;7wmLO#FY~vyNpMS!4|1H${yddMi_76~!HG)GDOhbG{u)gk zJsK`9;sTc7CLU#B0@2ie5sh6(mA^QSfx9@0&-p%+Ppt15#^IA3@27(Zti%E_Kaj`n cUJ(QS0K5ZR<(<{dE&u=k07*qoM6N<$g1`pk8UO$Q literal 0 HcmV?d00001 diff --git a/KentekenShit/Assets/star_solid - Copy.png b/KentekenShit/Assets/star_solid - Copy.png new file mode 100644 index 0000000000000000000000000000000000000000..b447aecd950be948d047fff7b4c2875ff5694973 GIT binary patch literal 33325 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 literal 0 HcmV?d00001 diff --git a/KentekenShit/Icon.cs b/KentekenShit/Icon.cs deleted file mode 100644 index 6fafd8d..0000000 --- a/KentekenShit/Icon.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System; -using System.IO; -using SkiaSharp; -using SkiaSharp.Views.Forms; -using Xamarin.Forms; -using SKSvg = SkiaSharp.Extended.Svg.SKSvg; - -namespace KentekenShit -{ - public class Icon : Frame - { - #region Private Members - - private readonly SKCanvasView _canvasView = new SKCanvasView(); - - #endregion - - #region Bindable Properties - - #region ResourceId - - public static readonly BindableProperty ResourceIdProperty = BindableProperty.Create( - nameof(ResourceId), typeof(string), typeof(Icon), default(string), propertyChanged: RedrawCanvas); - - public string ResourceId - { - get => (string)GetValue(ResourceIdProperty); - set => SetValue(ResourceIdProperty, value); - } - - #endregion - - #endregion - - public Icon() - { - Padding = new Thickness(0); - BackgroundColor = Color.Transparent; - HasShadow = false; - Content = _canvasView; - _canvasView.PaintSurface += CanvasViewOnPaintSurface; - } - - private static void RedrawCanvas(BindableObject bindable, object oldvalue, object newvalue) - { - Icon svgIcon = bindable as Icon; - svgIcon?._canvasView.InvalidateSurface(); - } - - private void CanvasViewOnPaintSurface(object sender, SKPaintSurfaceEventArgs args) - { - SKCanvas canvas = args.Surface.Canvas; - canvas.Clear(); - - if (string.IsNullOrEmpty(ResourceId)) - return; - - using (Stream stream = GetType().Assembly.GetManifestResourceStream(ResourceId)) - { - SKSvg svg = new SKSvg(); - svg.Load(stream); - - SKImageInfo info = args.Info; - canvas.Translate(info.Width / 2f, info.Height / 2f); - - SKRect bounds = svg.ViewBox; - float xRatio = info.Width / bounds.Width; - float yRatio = info.Height / bounds.Height; - - float ratio = Math.Min(xRatio, yRatio); - - canvas.Scale(ratio); - canvas.Translate(-bounds.MidX, -bounds.MidY); - - canvas.DrawPicture(svg.Picture); - } - } - } -} \ No newline at end of file diff --git a/KentekenShit/KentekenShit.csproj b/KentekenShit/KentekenShit.csproj index ec498f3..f617bb9 100644 --- a/KentekenShit/KentekenShit.csproj +++ b/KentekenShit/KentekenShit.csproj @@ -7,9 +7,6 @@ - - - @@ -19,7 +16,7 @@ MSBuild:UpdateDesignTimeXaml - - + + \ No newline at end of file diff --git a/KentekenShit/Models/HomeMenuItem.cs b/KentekenShit/Models/HomeMenuItem.cs index 542eca6..8ab8b5c 100644 --- a/KentekenShit/Models/HomeMenuItem.cs +++ b/KentekenShit/Models/HomeMenuItem.cs @@ -1,6 +1,6 @@ -using System; -using System.Collections.Generic; -using System.Text; +using System; +using System.Collections.Generic; +using System.Text; namespace KentekenShit.Models { @@ -16,8 +16,8 @@ public enum MenuItemType } public class HomeMenuItem { - public MenuItemType Id { get; set; } + public MenuItemType Id { get; set; } - public string Title { get; set; } + public string Title { get; set; } } } diff --git a/KentekenShit/Models/Item.cs b/KentekenShit/Models/Item.cs index a322b59..6ea1222 100644 --- a/KentekenShit/Models/Item.cs +++ b/KentekenShit/Models/Item.cs @@ -1,24 +1,24 @@ -using SQLite; -using System; +using SQLite; +using System; namespace KentekenShit.Models { public class Item { [PrimaryKey, AutoIncrement] - public string Id { get; set; } - public string Text { get; set; } - public string Description { get; set; } + public string Id { get; set; } + public string Text { get; set; } + public string Description { get; set; } - public string Plate { get; set; } - public string Make { get; set; } - public string Seets { get; set; } - public string Cylinders { get; set; } - public string Doors { get; set; } - public string Wheels { get; set; } - public string Price { get; set; } - public string TaxiSign { get; set; } + public string Plate { get; set; } + public string Make { get; set; } + public string Seets { get; set; } + public string Cylinders { get; set; } + public string Doors { get; set; } + public string Wheels { get; set; } + public string Price { get; set; } + public string TaxiSign { get; set; } - public bool InFavoirites { get; set; } + public bool InFavoirites { get; set; } } } \ No newline at end of file diff --git a/KentekenShit/Services/IDataStore.cs b/KentekenShit/Services/IDataStore.cs index e315c54..712cad2 100644 --- a/KentekenShit/Services/IDataStore.cs +++ b/KentekenShit/Services/IDataStore.cs @@ -1,15 +1,15 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; +using System; +using System.Collections.Generic; +using System.Threading.Tasks; namespace KentekenShit.Services { public interface IDataStore { - Task AddItemAsync(T item); - Task UpdateItemAsync(T item); - Task DeleteItemAsync(string id); - Task GetItemAsync(string id); - Task> GetItemsAsync(bool forceRefresh = false); + Task AddItemAsync(T item); + Task UpdateItemAsync(T item); + Task DeleteItemAsync(string id); + Task GetItemAsync(string id); + Task> GetItemsAsync(bool forceRefresh = false); } } diff --git a/KentekenShit/Services/MockDataStore.cs b/KentekenShit/Services/MockDataStore.cs index 0bcfc5f..5ac0e7e 100644 --- a/KentekenShit/Services/MockDataStore.cs +++ b/KentekenShit/Services/MockDataStore.cs @@ -1,65 +1,67 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using KentekenShit.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using KentekenShit.Models; namespace KentekenShit.Services { public class MockDataStore : IDataStore { - readonly List items; + readonly List items; public MockDataStore() { items = new List() { - new Item { + new Item + { Id = Guid.NewGuid().ToString(), - Plate="48XRFF", - Make="Toyota", - Seets="5", - Cylinders="4", - Doors="4", - Wheels="4", - Price="5", - TaxiSign="No", + Plate = "48XRFF", + Make = "Toyota", + Seets = "5", + Cylinders = "4", + Doors = "4", + Wheels = "4", + Price = "5", + TaxiSign = "No", + InFavoirites = true }, - }; + }; } public async Task AddItemAsync(Item item) { - items.Add(item); + items.Add(item); - return await Task.FromResult(true); + return await Task.FromResult(true); } public async Task UpdateItemAsync(Item item) { - var oldItem = items.FirstOrDefault(arg => arg.Id == item.Id); - items.Remove(oldItem); - items.Add(item); + var oldItem = items.FirstOrDefault(arg => arg.Id == item.Id); + items.Remove(oldItem); + items.Add(item); - return await Task.FromResult(true); + return await Task.FromResult(true); } public async Task DeleteItemAsync(string id) { - var oldItem = items.FirstOrDefault(arg => arg.Id == id); - items.Remove(oldItem); + var oldItem = items.FirstOrDefault(arg => arg.Id == id); + items.Remove(oldItem); - return await Task.FromResult(true); + return await Task.FromResult(true); } public async Task GetItemAsync(string id) { - return await Task.FromResult(items.FirstOrDefault(s => s.Id == id)); + return await Task.FromResult(items.FirstOrDefault(s => s.Id == id)); } public async Task> GetItemsAsync(bool forceRefresh = false) { - return await Task.FromResult(items); + return await Task.FromResult(items); } } } \ No newline at end of file diff --git a/KentekenShit/Services/SQLiteDataStore.cs b/KentekenShit/Services/SQLiteDataStore.cs index 5afd3d3..0bed4f9 100644 --- a/KentekenShit/Services/SQLiteDataStore.cs +++ b/KentekenShit/Services/SQLiteDataStore.cs @@ -1,55 +1,55 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Threading.Tasks; -using KentekenShit.Models; -using SQLite; +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using KentekenShit.Models; +using SQLite; namespace KentekenShit.Services { public class SQLiteDataStore : IDataStore { - readonly SQLiteAsyncConnection _database; + readonly SQLiteAsyncConnection _database; public SQLiteDataStore() { - var dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "database.db"); + var dbPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "database.db"); - _database = new SQLiteAsyncConnection(dbPath); - _database.CreateTableAsync().Wait(); + _database = new SQLiteAsyncConnection(dbPath); + _database.CreateTableAsync().Wait(); } public Task AddItemAsync(Item item) { return Task.Run(() => { - return _database.InsertAsync(item).Result > 0 ? true : false; - }); + return _database.InsertAsync(item).Result > 0 ? true : false; + }); } public Task UpdateItemAsync(Item item) { return Task.Run(() => { - return _database.UpdateAsync(item).Result > 0 ? true : false; - }); + return _database.UpdateAsync(item).Result > 0 ? true : false; + }); } public Task DeleteItemAsync(string id) { return _database.Table() .DeleteAsync((i) => i.Id == id) - .ContinueWith((a) => a.Result > 0 ? true : false); + .ContinueWith((a) => a.Result > 0 ? true : false); } public Task GetItemAsync(string id) { return _database.Table() .Where(i => i.Id == id) - .FirstOrDefaultAsync(); + .FirstOrDefaultAsync(); } public Task> GetItemsAsync(bool forceRefresh = false) { - return _database.Table().ToListAsync(); + return _database.Table().ToListAsync(); } } } \ No newline at end of file diff --git a/KentekenShit/ViewModels/AboutViewModel.cs b/KentekenShit/ViewModels/AboutViewModel.cs index effa996..fd01aa3 100644 --- a/KentekenShit/ViewModels/AboutViewModel.cs +++ b/KentekenShit/ViewModels/AboutViewModel.cs @@ -1,7 +1,7 @@ -using System; -using System.Windows.Input; -using Xamarin.Essentials; -using Xamarin.Forms; +using System; +using System.Windows.Input; +using Xamarin.Essentials; +using Xamarin.Forms; namespace KentekenShit.ViewModels { @@ -9,11 +9,11 @@ public class AboutViewModel : BaseViewModel { public AboutViewModel() { - Title = "About"; + Title = "About"; - OpenWebCommand = new Command(() => Launcher.OpenAsync(new Uri("https://xamarin.com/platform"))); + OpenWebCommand = new Command(() => Launcher.OpenAsync(new Uri("https://xamarin.com/platform"))); } - public ICommand OpenWebCommand { get; } + public ICommand OpenWebCommand { get; } } } \ No newline at end of file diff --git a/KentekenShit/ViewModels/BaseViewModel.cs b/KentekenShit/ViewModels/BaseViewModel.cs index 80c9359..c890214 100644 --- a/KentekenShit/ViewModels/BaseViewModel.cs +++ b/KentekenShit/ViewModels/BaseViewModel.cs @@ -1,31 +1,31 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Runtime.CompilerServices; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Runtime.CompilerServices; -using Xamarin.Forms; +using Xamarin.Forms; -using KentekenShit.Models; -using KentekenShit.Services; +using KentekenShit.Models; +using KentekenShit.Services; namespace KentekenShit.ViewModels { public class BaseViewModel : INotifyPropertyChanged { - public IDataStore DataStore => DependencyService.Get>(); + public IDataStore DataStore => DependencyService.Get>(); - bool isBusy = false; + bool isBusy = false; public bool IsBusy { - get { return isBusy; } - set { SetProperty(ref isBusy, value); } + get { return isBusy; } + set { SetProperty(ref isBusy, value); } } - string title = string.Empty; + string title = string.Empty; public string Title { - get { return title; } - set { SetProperty(ref title, value); } + get { return title; } + set { SetProperty(ref title, value); } } protected bool SetProperty(ref T backingStore, T value, @@ -33,23 +33,23 @@ protected bool SetProperty(ref T backingStore, T value, Action onChanged = null) { if (EqualityComparer.Default.Equals(backingStore, value)) - return false; + return false; - backingStore = value; - onChanged?.Invoke(); - OnPropertyChanged(propertyName); - return true; + backingStore = value; + onChanged?.Invoke(); + OnPropertyChanged(propertyName); + return true; } #region INotifyPropertyChanged - public event PropertyChangedEventHandler PropertyChanged; + public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged([CallerMemberName] string propertyName = "") { - var changed = PropertyChanged; + var changed = PropertyChanged; if (changed == null) - return; + return; - changed.Invoke(this, new PropertyChangedEventArgs(propertyName)); + changed.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion } diff --git a/KentekenShit/ViewModels/HistoryViewModel.cs b/KentekenShit/ViewModels/HistoryViewModel.cs index e43b12b..e5cb1c0 100644 --- a/KentekenShit/ViewModels/HistoryViewModel.cs +++ b/KentekenShit/ViewModels/HistoryViewModel.cs @@ -1,57 +1,57 @@ -using System; -using System.Collections.ObjectModel; -using System.Diagnostics; -using System.Threading.Tasks; +using System; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Threading.Tasks; -using Xamarin.Forms; +using Xamarin.Forms; -using KentekenShit.Models; -using KentekenShit.Views; +using KentekenShit.Models; +using KentekenShit.Views; namespace KentekenShit.ViewModels { public class HistoryViewModel : BaseViewModel { - public ObservableCollection Items { get; set; } - public Command LoadItemsCommand { get; set; } + public ObservableCollection Items { get; set; } + public Command LoadItemsCommand { get; set; } public HistoryViewModel() { - Title = "History"; - Items = new ObservableCollection(); - LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommand()); + Title = "History"; + Items = new ObservableCollection(); + LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommand()); - MessagingCenter.Subscribe(this, "AddItem", async (obj, item) => + /*MessagingCenter.Subscribe(this, "AddItem", async (obj, item) => { - var newItem = item as Item; - Items.Add(newItem); - await DataStore.AddItemAsync(newItem); - }); + var newItem = item as Item; + Items.Add(newItem); + await DataStore.AddItemAsync(newItem); + });*/ } async Task ExecuteLoadItemsCommand() { if (IsBusy) - return; + return; - IsBusy = true; + IsBusy = true; try { - Items.Clear(); - var items = await DataStore.GetItemsAsync(true); + Items.Clear(); + var items = await DataStore.GetItemsAsync(true); foreach (var item in items) { - Items.Add(item); + Items.Add(item); } } catch (Exception ex) { - Debug.WriteLine(ex); + Debug.WriteLine(ex); } finally { - IsBusy = false; + IsBusy = false; } } } diff --git a/KentekenShit/ViewModels/ItemDetailViewModel.cs b/KentekenShit/ViewModels/ItemDetailViewModel.cs index fa70397..1282bb7 100644 --- a/KentekenShit/ViewModels/ItemDetailViewModel.cs +++ b/KentekenShit/ViewModels/ItemDetailViewModel.cs @@ -1,20 +1,36 @@ -using System; - -using KentekenShit.Models; -using Xamarin.Forms; +using System; +using System.Reflection; +using KentekenShit.Models; +using Xamarin.Forms; namespace KentekenShit.ViewModels { public class ItemDetailViewModel : BaseViewModel { - public Item Item { get; set; } + private Assembly assembly => typeof(ItemDetailViewModel).GetTypeInfo().Assembly; + + public Item Item { get; set; } public ItemDetailViewModel(Item item = null) { - Title = "Licnce plate " + item?.Plate; - Item = item; + Title = "Licnce plate " + item?.Plate; + Item = item; + + foreach (var res in assembly.GetManifestResourceNames()) + { + System.Diagnostics.Debug.WriteLine("found resource: " + res); + } + + FileName = Item?.InFavoirites ?? false ? "KentekenShit.Assets.star_solid.png" : "KentekenShit.Assets.star_regular.png"; + // FileName = Item?.InFavoirites ?? false ? "star_regular.png" : "star_solid.png"; + ImgSource = ImageSource.FromResource(FileName); } - public string FavText => Item?.InFavoirites ?? false ? "Remove from favorites" : "Add to favorites"; - public Color BtnColor => Item?.InFavoirites ?? false ? Color.Gold : Color.LightGray; + public string FavText => Item?.InFavoirites ?? false ? "Remove from favorites" : "Add to favorites"; + + public string FileName { get; set; } + + // public string FileName => Item?.InFavoirites ?? false ? "star_regular.png" : "star_solid.png"; + public ImageSource ImgSource { get; set; } + public Color BtnColor => Item?.InFavoirites ?? false ? Color.Gold : Color.LightGray; } } diff --git a/KentekenShit/ViewModels/ItemsViewModel.cs b/KentekenShit/ViewModels/ItemsViewModel.cs index 4f89c70..c93e805 100644 --- a/KentekenShit/ViewModels/ItemsViewModel.cs +++ b/KentekenShit/ViewModels/ItemsViewModel.cs @@ -1,57 +1,57 @@ -using System; -using System.Collections.ObjectModel; -using System.Diagnostics; -using System.Threading.Tasks; +using System; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Threading.Tasks; -using Xamarin.Forms; +using Xamarin.Forms; -using KentekenShit.Models; -using KentekenShit.Views; +using KentekenShit.Models; +using KentekenShit.Views; namespace KentekenShit.ViewModels { public class ItemsViewModel : BaseViewModel { - public ObservableCollection Items { get; set; } - public Command LoadItemsCommand { get; set; } + public ObservableCollection Items { get; set; } + public Command LoadItemsCommand { get; set; } public ItemsViewModel() { - Title = "Browse"; - Items = new ObservableCollection(); - LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommand()); + Title = "Browse"; + Items = new ObservableCollection(); + LoadItemsCommand = new Command(async () => await ExecuteLoadItemsCommand()); MessagingCenter.Subscribe(this, "AddItem", async (obj, item) => { - var newItem = item as Item; - Items.Add(newItem); - await DataStore.AddItemAsync(newItem); - }); + var newItem = item as Item; + Items.Add(newItem); + await DataStore.AddItemAsync(newItem); + }); } async Task ExecuteLoadItemsCommand() { if (IsBusy) - return; + return; - IsBusy = true; + IsBusy = true; try { - Items.Clear(); - var items = await DataStore.GetItemsAsync(true); + Items.Clear(); + var items = await DataStore.GetItemsAsync(true); foreach (var item in items) { - Items.Add(item); + Items.Add(item); } } catch (Exception ex) { - Debug.WriteLine(ex); + Debug.WriteLine(ex); } finally { - IsBusy = false; + IsBusy = false; } } } diff --git a/KentekenShit/ViewModels/LookupViewModel.cs b/KentekenShit/ViewModels/LookupViewModel.cs index d552378..50d4ec8 100644 --- a/KentekenShit/ViewModels/LookupViewModel.cs +++ b/KentekenShit/ViewModels/LookupViewModel.cs @@ -4,7 +4,7 @@ public class LookupViewModel : BaseViewModel { public LookupViewModel() { - Title = "Licence Plate Thing"; + Title = "Licence Plate Thing"; } } } \ No newline at end of file diff --git a/KentekenShit/Views/AboutPage.xaml.cs b/KentekenShit/Views/AboutPage.xaml.cs index 0062437..ca47d65 100644 --- a/KentekenShit/Views/AboutPage.xaml.cs +++ b/KentekenShit/Views/AboutPage.xaml.cs @@ -1,7 +1,7 @@ -using System; -using System.ComponentModel; -using Xamarin.Forms; -using Xamarin.Forms.Xaml; +using System; +using System.ComponentModel; +using Xamarin.Forms; +using Xamarin.Forms.Xaml; namespace KentekenShit.Views { @@ -12,7 +12,7 @@ public partial class AboutPage : ContentPage { public AboutPage() { - InitializeComponent(); + InitializeComponent(); } } } \ No newline at end of file diff --git a/KentekenShit/Views/DetailsPage.xaml b/KentekenShit/Views/DetailsPage.xaml index 9bccb5c..b2cb614 100644 --- a/KentekenShit/Views/DetailsPage.xaml +++ b/KentekenShit/Views/DetailsPage.xaml @@ -4,9 +4,13 @@ xmlns:d="http://xamarin.com/schemas/2014/forms/design" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" - xmlns:svg="clr-namespace:KentekenShit" Title="{Binding Title}" x:Class="KentekenShit.Views.DetailsPage"> + + + + + @@ -28,21 +32,9 @@ - -