From e23b4bd79835377b09dcae75c475af3ba3fd673f Mon Sep 17 00:00:00 2001 From: DjBushido Date: Wed, 9 Apr 2014 09:28:55 -0400 Subject: [PATCH] Initial TweetListActivity commit --- HW5/AndroidManifest.xml | 11 ++- HW5/res/drawable/add_bookmark.png | Bin 0 -> 39898 bytes HW5/res/drawable/not_retweeted.png | Bin 0 -> 7979 bytes HW5/res/drawable/profile_twitter.png | Bin 0 -> 21724 bytes HW5/res/drawable/retweeted.png | Bin 0 -> 2062 bytes HW5/res/layout/activity_tweets_list.xml | 19 ++++ HW5/res/layout/tweet_list.xml | 57 ++++++++++++ HW5/res/menu/tweets_list.xml | 9 ++ HW5/res/values/strings.xml | 3 +- .../uncc/itcs4180/hw5/BitmapDownloader.java | 51 ++++++++++ .../edu/uncc/itcs4180/hw5/MainActivity.java | 26 +++--- .../uncc/itcs4180/hw5/TweetListAdapter.java | 88 ++++++++++++++++++ .../uncc/itcs4180/hw5/TweetsListActivity.java | 53 +++++++++++ .../edu/uncc/itcs4180/hw5/twitter/Tweet.java | 11 +++ .../itcs4180/hw5/twitter/TwitterClient.java | 2 +- .../itcs4180/hw5/twitter/TwitterUser.java | 11 +++ 16 files changed, 324 insertions(+), 17 deletions(-) create mode 100644 HW5/res/drawable/add_bookmark.png create mode 100644 HW5/res/drawable/not_retweeted.png create mode 100644 HW5/res/drawable/profile_twitter.png create mode 100644 HW5/res/drawable/retweeted.png create mode 100644 HW5/res/layout/activity_tweets_list.xml create mode 100644 HW5/res/layout/tweet_list.xml create mode 100644 HW5/res/menu/tweets_list.xml create mode 100644 HW5/src/edu/uncc/itcs4180/hw5/BitmapDownloader.java create mode 100644 HW5/src/edu/uncc/itcs4180/hw5/TweetListAdapter.java create mode 100644 HW5/src/edu/uncc/itcs4180/hw5/TweetsListActivity.java diff --git a/HW5/AndroidManifest.xml b/HW5/AndroidManifest.xml index b8a6f7c..d8f05a2 100644 --- a/HW5/AndroidManifest.xml +++ b/HW5/AndroidManifest.xml @@ -1,4 +1,4 @@ - + - + android:targetSdkVersion="18" /> + + + + diff --git a/HW5/res/drawable/add_bookmark.png b/HW5/res/drawable/add_bookmark.png new file mode 100644 index 0000000000000000000000000000000000000000..a42453d6791c409ed9571960fe6ea273b133a8c8 GIT binary patch literal 39898 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 M07*qoM6N<$fch5!Hn literal 0 HcmV?d00001 diff --git a/HW5/res/drawable/not_retweeted.png b/HW5/res/drawable/not_retweeted.png new file mode 100644 index 0000000000000000000000000000000000000000..6b370ef5c922cce102c9bf60f1a57065ca4f2074 GIT binary patch literal 7979 zcmdT}^;Z;Jv>gCPbr7`nS-fI+&Yq`M#Adw<0{ zYn^@eK5O5f?z(r~h*DFL!$c!P0{{S+3i8q#0008(e~E(l+L`f?eSR&dF7o>B0027v ze~AD{&m;i=-jaZ%q}0@Gojsi0ZJk}H6{Mu7UEG|lK@L^`fcK(>scH85-sbiQeOH&7 znwG{kx1n5QecLl4u#BOcOC-`Hm)y0_ZzSVAL*n2=D=aYa$M5arp~SVEB*-i87~--IHB zzLf$<(MpN*z6meDa3<*|H6l?W)#Y5Zz_UOzPw(;w)=v{m^r5*RCsInmN-+TYf-Au{ ze^?iaApsWHHf!T~ebfDCVV@E%-lWpa6FDg#BYoERtmzZx&3J}-p}dv4VZxeAS0gp0 zeHyJ+K83wuj7yl%p1+ZA()S^XJjx`Y^yjan&mWRG*w_Lji@)d?U8fl4w8cD9g;hp} zDf%ipC(oA?l%|(HYYCUG7U7nc72Zi4e!Hg6(lYueBGImUFNZ-y0w?PySxO(u;Lhma zX*KPbF^}3otPnah%n(=-7uNN&N4AioVC1!7AV$*l;Ya#vh3%%lKymxmmeC)%~?L z8MB(Ko2+K~qjg)Q*GgaEp}mlS_B4`MZp0f4HTKjzq~bf^o#V-IOt$~%AhyW7qCFeX zq6@8tyc|nsDAX~&WRZy-onrj>{Z!X6sgUO9+i@3C6eCU4$bQ$r>VDUrOjDs!?W*7E z+`bd;nDK?rdBLvM@d2wM>)~tbv0y8Q!%JwWU_>A#NbEzPf4{<^=I#W2&XZ>#Oy)>Q zuA1KX>1)7*a)!azli4-Rj-XAmRSO8?LylDkj*ri&=d;1xS7K3~0Pd&9gTs)M4Kbv^ ztoxb!$+MRr044yN=RW1k=yl;xTgYoD0|34Z0Km6U0O0QBweAA|o}2){fhhnWlm-A0 zJ13g-%K`x8KNO@Tw7eJp87-;PEz}zMY(B2F5XCNr(6QQ@b(hjj@%My)SaTtO8u3%3 z=x-2lJ9MB0!udKJLVXfp4856H)}F%KgXr{KdR*Y-+i8o!CnA_o%pY!vIS?ewap{R( z0WnJEr`{{z{I7b2|5dN>|Ht5(c6-BatmSP)&c$9IQ4O1;oOo9^8Nktkj>Qypg~0R> zn!4B-evALK15G#azx(&K5gqF>gFj%mp{#=L_ofx7q+^SNncy3%(;lx8%^9Tu@2oJh zODip5baI#)%H^3kXm~*6NHGs*&;Qi>wv*pz!wJOOqn10j9yBU?Jf&|$Vf3fsq5G<- zBH*rEq)d?Br>)66R>s_?kcCr%7-!vB7#8oe{vP{0;+oiU3CC%J7Fp6fLC?!_uDi~Q zm?xpxOY$60ssY zQagf)Fl1=5y>EUkc=DSIZe|%m@t~t`Iipy7kIzATVbO|55BK7d$h4&b;gv^}(p)V@AV{ahJmgWYHRv?#6X^{y#J>4Jl&e@0FT zt3(Q%7YnG|R?oqrYhw#q{~(v4Or2A*3Mej@pZu18M{h2eo<_GuFp-WChFgNHq) zR-Jk6;x6UReZCOA`BB-&U!bg9vK2fJm(Y1Pt!vSTfVhY~MK?eCTTMHDmkVgib9?>u zm6Ol78ul2&aYa9w`L9KmUY4;P2`aIVHmvAvRU>!iOIt`sW{*X|E@XkKc*nW|Yd>z? z6uTcrH}%)FIHDvz276p$RqyO2W&b57*!(Qp5;%zWnE+U)e?@If2OPO4gg16{ZC^NE z1{<*Ez8_Y@uUzyiMoK&A9ej6XgBrB$T7_7(ah{#-bLrn^8yt4qTh^K<#T zAmyo99OS)O8eJkHf7LO&BZU&iS$CW8TEi0{>krMPcfJVEhb_FdDm0F!m4E?(8i~A4{ z6fq~b+4v=GjRaukWNwXx1P(4NZ?slekv7oWr&GXDXH}6ij+BkxLAM4jZ!poEtp(Py zN5$IdvJA$|Z1o{BI1jW}oGd1z8&2mE!CBbhC-U|wU*3!w#J3+L=sEo0_fnsS>wh~g zFa1e$7?AKqHwX$vcQWQpWn6aFY^|U{syj&S<|8X;t|Mi8LO&rPvoWMri-r5Dxv_ z-2idUyBZ%f9G!GF3)znXf|KVK4flRzX>7sdC7n?nf(e?s4{zI34&Mdm6Ri`Gwiij@gK$3|mjwRKsO(GzE1%Z>v1g3nw~K4o(bPgc89 zchI@I=hkQo<_gFAS$}XhhE2?V??zGTc7v0s1r=`f3#-e`2iz;X1eGG$7V7YjC9Cbq3do;bdB)~IO0e7 zTMfv9c$O_^W`3r@LGJa1*)9FR^-Uz3CK+w){KGt#&yjQuw&uG@5v9c0KSu-^ATdqbN2I_ zgzITV>Q^VGS|dHTu_~aT>iS;!ej_^Zcj+)8vY(97Cc0%efs#jzDW~?rzJaAu`x10+ z|BeShQ~{>T9^=?ALplvgQ%KXW&=)Q^#;`;r?-Yi_bs@?UA*>=3nrR zoZMEzndrR+_3&O#O1$r(w8(A}H6^~(?JQGtw2ZFApK!C!Ede8#&b>T3rE`!UpdUW( z;dIk6vxOhRcj)0eI~)c|^L^*HuTwzqz09WnL{XVs^I>r!P&@fp43gbbNFGIxS{T+1 z+Olz=;MwXT+@r~bH&qx3gjknbl<^M03DnzL-YI~|e>T*@ONN|z`0y%eVz0T|{-d=JDQ=(o-mM!G9^pOe~apB=`S< z6ZaJ2%JK&KRh)CASyE(8N|fBdoh5a4KoVjY@gT0EB@!>KmjfNcR0;ikn)EDjZ&?ZM z{5e!;3oGi1XxSdx{2lMe6GtzNv|m6-C7U)xT{ zoR96-=gXQqbiR`}`ouuhtv zD(=tT3T!#AhThGlDqXR*dghDOq3=Q^NrOKrdIgl}!oUfB*)+xOd&|;3Hz6(9nwE2$ zd2^1n#*mSkmnYawXA~E^s!=5Ht6_iy!FB<-=0w&O1jN~UN}kwe%>AS_da{Rb`9y&T_KOa|>N+xG>OcD&eFuoCsN zf^BKEV|h#8kQgtiUSkLCCy}+I6`>|Hm<+h6rcsCo`9^u8Xt1ac@lnD|$f{gv>r z%K~dE@XBo5%j5D=d4=gTwKOe01qgM)w!35ey93^vMb3JGY(T zAp`9l569DU8MpVKQ$DiO!5iu!kbQuW&-|A>!s6uP@9 z#c1~1BDympd?Qh>Cna7?youEDw-GM)UJm`fp zqc1i`V4n23o1m^ZLD?hB%;Ab6NMR%E=K}PNqso4|wbQ~OyV-G&tW+JSYNbP;{faM| zbd8^I590+1z#3OVtiDghWTCFT964 z%&@#oB-+}|lrBoVh#^hBNk)HfPMbByru1<|Q!@vS8o7_L>Fd!NjGho{HWzO} zVo4)RjFB>?aKOH=uYM(u#6Tn@N31v1X!?M&u7|c`2S}%FNSqthE5Aew-lI>(;(2(? zXq>oBO}nE`{QX^!xU{>>_8#CJqw|Kp3CesnxP|6iBw6rKXQx!UsiUerd`_zV?}@Y6dmts!vZW z*IF~2teuaU0YIWzyP4OvDJ^!UUY~xJD0@8a*8DA?3)8fGmsogl))!IVtc9HRE1B)# z&Z?rR57{MX?9=>DVJe2rKlx+oRI zVsYI)BUPDtc2P*_$s*v=(R^UwW^Fp(m-drvi|Cy5TJ-jVJw#aT$0W{J=K{vEGM2gh z?VSix;dLBrr&ba&vSGJQOfuV!=RLz+jSZ@-Ver07#E73X+n0laDOm4%v8%oFbgv^n z@`?>fIHaR5+FV4cjfgjPZCoth zN(f0XJ~zW`L50tXGwo3!*qxLW|F)_Eolpj~@2=Ezklw@sHAqyjF`ZaN!)A%9nii0R zG_}_Rg@0E~H5hQXeP}EN?}}x~u|yeYxKHQ^%oU4j4P{@Ns!Pz0e_5_pO1<*Ec+}vY zrA+U2-Mcm>CwB9Y_y;;{023*g2JIgece7qYDUQx36u|>4CKI|9Z?_=Uh zRo5dMi+*_}2AeZ(?dkMi0#*IU8`mwF@55t1uU^$c)N-$_>t1-MB13}78fwLuQUXR+ z&uee^W}u6QvRCMo?26HHh5c(~#ZR^I1)8l9;@TJFPnf7Tpq%5r1buLy2oX0daFHq4 zK|E{CnG6k_=$dX!T}_(kcXYwEf)Vq$(=Ihj($*Uw;!X-i-J@#SkAKkmznoU$RcSNUv@L4i!qZ!e>DG6g**O^sC zWdI?^K(A_ARvR*1c-Vu~#qSMrVGmEO2y$%v-}&jk-1p-UnA<0PxY^jZAd@LV6=xwV zG?I*z&&0B?o8X=QwI=1~+1H0=fy?V`S01-yV287v1TrY))o2uL;;Of5CYtr`jHf?g znP7tUJc$~=&@rTpwVmp5|2BH$J&*-@1}KJjvGLYd>zRjn?e@lZ0%XQ4G!KhOF;vd>O-%rktN z(zx+EcILVV95wb{L+R4K*R{pIRgB?b+=X#VPxZQk@7scU$DAHw>l!&DZ_p2BahOa; zuo{$qQJ0Jf+F%la1_ouI(x&%Z_&*iEE#u`b>@!+2=N2Ce?{w%T^)_WXa7D4kc@yY2 zqcF|n8ikT}Q%^R1gQ{O}M=?VWHs8;en&Z-BM^j4xb0*xTx?KAa@k34V1PzqQHhbk+ zpmNuj>5;RItHg#9*tmB5yqB#Q@)R;B28-Tr>O`+*8vb5^(5zii-`wuPsOBD*1xliQbez|1Y1v35 z&nX#=A?8k}HQNbV(nqGX_m2)bLL-~uEtAM8ScNcG_9-B5xGpXPX|Av)8-J{d}r z9Jur{3$m%I@t5UoTKow7VHr74%sCuOR2%97;=*nA(e_d4i+pqAZa*+L+^1(1Y?3zG z7@s-(YaBCYdh`g@9;jnpP1(4dW6c-Gi$5NJl2Yv(;M#dq;jUIR9E!G9SW#`|O!dag zCpo*QGot^~9j>ierOqNNt`N7gt240jfbsJ_3I1oN935l=3$`-e8GC}XUt*&3I>}#! zrX>p!An-AgA38zKtg=lJ&Bpeoqs3Z8d))&25a*6%a~b6U2rQQjU~8vX@a><&m8#WCXmZ4lIbuI#3@~$AZI%I>nh;~ z%f|MuQEi}~YPWXRi(?*P8X1IcA0RCM9N=fcXoWkLq zOcO&N%TzgbNrnaESEy88A^AJ3YCpoojo3ZY$j8$bLzi1lno9In6gbJAkTnPGfULQH zn_S8~cKztF?s0q#P4icVthK!RCf7>ln<`TGIBLaS1e#aQT_-#Adldh9d&o3`^k%2gHJfkksXN zt5k2^#P(x>M`r=kB{}hZY<8zmANl;&JQWhs(JTj%Z6r|tsMHZRvO z13wi>0ehN%C|Gt(Kl&4{2_|bOY3f6092v-jzpu|7{winFzvMCF-p5kZ?_yV)VIS<_m*ZRY--of=&tS9aml1 zxWsbooI!+ngSl1{#d1*bk`T;wIh1r_v#b-(D)Ove#m`3Sy;*ZRPPmK~u z}xteWQD_=+Sk#K+aW*BB7?ZnCHm9ot&9YejU_M%S+hj&v0+uaS(^m7ijIF<2QJo6 z&a8rV4Jdx}0~afE@AAs7a|2WXIU`rkDCmsb1ci@~GM!1s z-xBD})a?$=AdvXm%8X&F@H2PA0F_Bt6u$kONhm#S?LpC$IhpoFwuZ3#=*~~&WRvU3 z=H52qcx_P?P?Ui8lUOavwb`8BTgoCL5ZAVDl_ruTg8y}z=seOuX?@yY(#0SzZ zsb>O-Px@36&tiRcGh!|f(Z;qVOs+lK#G(jiD&m#)AAEAxR)0cSPqp1%uYXGIXz|{Q zyXp({DZ3;OO~0JlBvun?Ps5pq96Kl7%0_QA_D36*Tol0Abns|n*!(DPE0FIy_D2c; ziO8UiMLBU01LH6EtdTWhWI1NMQSH|H`057tF<~W73L{oWKBf!JJA;yl?OSb}k_v7Czkh14Kk4`H@Jo}7tUF??xb|IH#9pC%CNp()cO^i=Za@NFh5=?l9 zBAe2>zW1+Z%PL-GbT;3l`Pp=ZA~CDDJJ;!`zWXP6a0L<(;zLWlqR1z-jKlW;&fXw| zF9>5;Qc*&<=D2;G-l!;eG1QR%K%O5-BRrl5HVU5B`m}gLS=K|Nmto&B&4R6k5O;GZ1E$^okY5i41Huv1 zd3eIKFwv{MIrMh-1fc7Fl$=t4Wv9fdVvO3`R&eUL`(PE?p9?M(OWX&38AMwq@}Jp- zMAs;I=_h4M8bxahitZPX9hx1Y%jd8MY_q-EcCEV1%u`pj+BF_6S&nxww&#HY!&hxB zu61vDeb34aJGZPU20 za;GGv;u5zx4dl{Ks?=gtCE|b$RZ~nRmpG4azcJ#^s_I?!ecu~Y}6_5!~iQl)?$nExJ>VDly6XX}0D${Vq=HhJUA~aq%3|y9DPxy%L*! z;G#6pK#XlV zOliwAOBa4fW1*qVioK6EQd4^{&>iGw@uMT9d9fcv068jXCMRWc+j1Wom3L`}v7Y2>}E)lG5bJ}&eO(ciJ!S4$7sH^e6P{ftW zUohglc@(KL7$#4Xi0Q{;PfM~yePyAG4B)m)r_l(d^gvZLHMMcA2fkYlO)~_A!_#EN zimVbxr@B^KbD=D8aeM;?qtfBphRFE0diBln@lBuBO`MFY;)aFO$(@Mf$e^S|s4nKb zaTL={Je9B1jlrs^@!K1-4YWipn$rc0J2|Jxj{`suZj9Q~$??kQ71yDHtmA7;S#WOuLnGabU{E)?m& zn;P~cEU@4+Opb;Z$MFwK2MB@Vj6;Lgk(FX=H-cSO>=cTV!c#K~IJE5W#fFGTbyCuz>{aFS=)4?WFamI4pvczeB$-!1$?iNA4cx!9n3PFRzS+3|Av%4=iV?}I4b%a)l_7Uyf8sB?8lcB zP4+|Eoqg(6Eyeiws_)47cB??{xs2JZjv8{W?cTW10SEDRpKYICj*5!PHyXL%={`|B z4X{|XTNyQES-UL-)*}%|eFA$`Uyl8gcKU}Zp-UDP#Cf;-Ym8*a?(o;H$avGj(dixi%<+fd!|K~_j0b$!X)e0@}u=2O#Uyo{S?`I}z<<7%pa zKg#%VdgYi!;OWQeUPOcn{C~7G9|okiCf*> z`rp3QBB+U5RDqEG6#-F>wcD(555sFI_fuA^U|YG6S(0Y(E_k z1NeZI*2E8^0OOafSJ!r3;NrxZH@AI0*Z-TqhOpir@>_G{@iI5b1yl1r`Da8U#oWnb zMcZ2D^d4Xu9K=Gm$+;LXo{TXFE=#s4M0PmNP|>FkyQif{SuzZemruf6|MAsSCvq-q zrLCH^p8cQOXcoD*x43#yyXL^}`gAMF(z-Bs0D{G?xX98r+k=|u^gZLqEQ-zS+e&~) zS~2aI0IYsS2|Tp*YDOOY?5D^XfbvMEZ#|7hu6VdbZ8WtPWlG+oe`6U}aj)o_o+9f_ zmU^kZf6#pw`Nzdb2W9TwEOWY*SMu{oBss zYd-x%iPcF8J#3E(XIHcVxG#TF2J4a`9Z2lS zKNrz7mZM{*g@`?6ZT$BS4MYqSJoo*{Kh8wxwm_BCBdlw{BI`@Rq9Ol>eA-^6CvCQZ)3=cv*&_b>XY9Dw4k z=;Z*MS_M-9R>e>4);foN^v}GWhX5OvKq=?>9}riyR0eYYUxQfwvBB}bWqT?9w<7IQ zGpXz&AaIuOzs>mnr1}44_}zbseemf2tnt77`~Po>-24vgCcuP!;Xm1XgEQ>OqQC<( zUTT#4p8{zAf73_(WApz?TMIT-Te@d*dhG{$e~;>)9WH_Da6m!9QJR9p+He^h_pgUI zHP)wg62@Wcv?kCTWHYKPjYtfIK^h85VVL(E!B0;RJ%!S490pD zePR%E?*$-U@fc^11qScLkyJyL4u{Ayu7|PuShJaB)LrF8&h(ooqOx9Z!=qhZ#-Zr6 zY+mKWXbKDDn(Pr*nrZgNmL-Rr(UC!7mAF7B+N{jT+fZ3nFj6K8F|g%VYvou>zdNz+x`8!#B}c`EafU6(0hhxz)vcs>`D7LMhV?xc z$yGbTM`SfeFgSaTwuxb2Y^T2=Gj`>zLfhKB+ITu(Kk{bRqC;wK2D)?#?}hD2@OEIY znM}L;eV`r02KutKvKsCdZRmYWLrx8`mTDaaTHM&-uDo?v;Kcq=MR0dDGsfYr%H_RR z6f=9IrCU!r#5Q#S1@buNb{@Di(+2rogQNvlrJcd$!WsQ6V6AdNS?`!q8M#vE!HeAzRmv`9#&6t(3APEro69yj*?Tby?<|1Pw zr&J`a@Xo*2WlO*vV1)@2tGGHjSqW!zca)_rXNl-z?6E*1!TO@~Y+lz1p>WK)Q5^_4 zz(^Ih^u^h)hyLgFG#*MEI&tjPne*>r@O)tLU!B>XJNqRiu6IGDMHrtG9Cgmwy*e|` zBv^(9+GMGRh9qraLXJbmaVR z)IgBCi=V_Cp-ZV#RnC+LafOFW1W7Ju6^}z2S_%9Ud^Pf_N?6`%J z#^no9n_O;DbP;~Lw>O^Qipa2aCg4H&w_ix%w7c;d*CmY5WYJ5th_@6IkgA=*ow%9^>LC?D2zFv)_7sqiusvmMk4b3Fz0dyr~3)@hcNYFK;eX7+!HuKh>@w zl|Qpe+6(n$*zGcx@o+H$n~c26Tvrz!lZ%mWj z4O<4#Cx?3!T-O&elrMq;#Aj7X8BE7h8gE2v!j6(9F37IdSlq8$nI6&hwaqP@y{o$x zw^~EkG5o*WLFMaV*)vWjzhPObQKeraXVvo^lNt7oAM}kKFwB3(Ud&Bvw5o)AGj(>O zI%556j15!!{aymw2IE&95MkQWS%tB!Mu7ZO6=-%aux-zB>xYjl#WuA72S^_jPm|Pz zr=E<9I)WHL&u*E#49%XVn%Fn47xz}k?6Lc|Q=(57C4yXOH?~{vi!8C9OAJ0%2K~+D zo>jVpKEOn%(=<3_W$5nKyk*wnMQlr6j6`LI8)$2Z?{!V|4NnOlgod?Vby}-Q39v>E z!gS3?Jq@J)scP!=DAQr$B9R!reX{fC<5JhHj4K7~)C%?1hLG~@Fp+*~nN}Bm`_(}0 z1XsY1rd)dMc8+>Lx<`1m8r$cB5$4wxAY6BJshV$0hKQz+-xxOZ_g4y#2PKEqr~iq@ zC470$*nhasyL(|#SAm}brmE;M9#Jk+OVO6!t)te|d})>Smcv;b56MbR?ceyq1I0a? z!tM6NT|b+9*R&0$6&&aTBj6IZuKXS46E;Jp}$ ztDRi##N*kKj;+c#5n1FC!kwg+b9M51@Dq!W`Rn)m`{h5VPxrOlFXBnyt8PtDcL{Q5 zXjPt;+gllSyV>ui?Dcyy_iE&x%gf(p1hL76E$Z9@JHpUoIa#Gy&yb{nZ&JKG<(^U1 zbC@K){^j7JBGKXQ4U}KAem%5YhYTs?l$Z*ZSzRPsip+~|RH=KU{HUOFLzOw+q@xtY zmv>h>-1L6L>er2gH{D!`8VY*KPP_hGxwWEI4t#;9Z+^f<7#k!8NEII@GTJ(S=m@l) zB9#%uraPO?>*2G;LoV!c*J=C^?(M&Yo0Xj1Jy%&RwXr2s5ltQmR?M@nsn2nD6(8DS zcIG_hpO+Uhqo5Tm?X1@DhGsgkt&nYB_`S_tkR8kmHfo?k5|)JRvswMjR2z#R%S zO{HMy8jsi|NOtHD54xopJF_v}B2eErVU}%J*{4L<2Pk$^>gsmza)*VniVhq7f`72k z9TDFMfgR&Zu5F3VF!&AB^aF8);4;{uHWzuH`X;@@T|$A8Pav(=5`H8h6YXzwS?um~ zSBUJay0q~F=fGNqpnyJ7I>P><_Uqz;rv!F}GmLt#5=nvnSyXEpf2m2>%SeF6k6|fn zG~HNsf_p>(iuf($^R_SRz#NK-5CR^B@Q+v8alaRB6*JpF4!5!MC;X9(Op7F47%&b(D8g~O-p48 zX;SiBMBC*tcuVL_s?78mlU5-=tUW6$l1|V;J0)^DMeu0K7u>!0`*Tqd{-<(%18@0u z9j!DI%T~1_!#)fB;;?f1cu7Dx<N6jNNUE!PSb3hkHb#oRS4np zls!{jg^7J7FLD}twrYbLq=YxrcLxq~S|_@{%qePrCJ%euZ^GkJPvvZg>lJE}Ffk5A zYP-DbCH385^i(t8E55OM+sA^+Y*_Ckt&a9&hE-PCPX7jhGq{P?G0?QhXvu+Pjc4%P zT;XwN68g(?v8#hKY~NCB9PiKR@0J{jXrpL$N*?^DI^)KY%kXGWw82?Pl1U}4Qazp1 z&YZXR18i>Q?o2L2vpgMvD>A?uy6N_wVIQWrGsy*w^K0+`<*rrq5RT;^sTjU zBD57^xZUXEAqQ@t$cizn)3yH|pwGYgwvbc0>;9{-lSm-N8z?L0W7yYWM~}`zE2$x| zh7&5fF!seie8@@guc_0uBX#7ZgtID|i7ovy3&I1}3et5bV-gzRYCXa3tiT935&Jc_VRPfq=HPotn{sUH}?5N-lk;QJS(DT;ir@#xs$1-Qm}j)0Fh#T=$-~X zc=!1eUqvp-OS9zQH>bbNmDmZ~DryS#di7z{_`pL%78SFBkn<2GCeVE_*{N(A$=rP3 z`K%#3J%pFF)VNIvd%I~^)vP1SsI2>&@@bgBry ziB~yAKP)~JArCGYa5x*dWEI;5y~CE&YWv{|1MABtVm-^c-vu&|9b7^0xrl4|Qc9PH z3FzzfKJR@o0fwaGerCMlLRFt+JuwuE9dE00m(9yXY%L*6qx1%0te{xeA@Ee!iFC=V2 z#B%yxy5v?MYKD4Xh5a@ZcK2YVSv0xv+ZAuH@nTv8#*$^LnDqyOLg@j=Jb5}GY>6j9 zkGBFN(~Yy@3G^*;^d4I*hkrTIeVmjHv+}kavk!$40`fw1-ku412Nc_gzS^%7S9}@KC!_Uuh(NN z=&I*CwhW|_L0x77UPnx@P zj+!{`KRd5f0R7M2XxHrH*79yW*Hjjj|A!k+Je8zs%TsDiJo>BfAPkd(xa0BA&Y-qD zFvx+SFLztt*+zxYD2QSIzrXFGXQWRjYKj*b@5RnB?^Jj6JtyZYcMQ!{Y`fL4N)|Sl zRTKH_=KQYbm`EG&;AXFWGJme}Or@Z`s@&mvnO|qJ0Ot$ss#g@eb8kg{CQ2i1Q|`68 zmCJDleWx<#2)S6i>38G8IY&z)RY@v~D=LHfcwpJ86scH4Sh%7SN2OtcHLE2>K7I3mqF8S^Cx zBpvSx`yYhAnBU%XB$p)|l0@XICAWCXW7@M{tTw4 zuEO#LgO+)`Dz7}Ve0vEb7n)XiJ5vgQGnO?DiPW$-r-;31k{4Sfc8I^>s+8h$DO|_p z!vQqTyw!2_iLN+VpfwjHfP#TvoW=z_pSHL$^Sc6lEC22dAENoFMQ&&A2-5ez><$`hFo` z)fp*I5C(uvAD%!75If8EO#v-I)0GGLH`=?=onyWJe(XvEPMHeMKC%+vi=(@zNLA7$ z8-6p6`I4AG#np$eYO)hc_I47v3qA7fY>MMvr=N-On*!RX$)iv~^N6iiofXWHavTP} z(fb5|0x#~KreoONAVkJZ@($iLZE4irJZiP!^5Q4tMt3&DfIW$kBpM2C_f~9nZfZ<7 zOuRo3=})jqJ&WK#>Vcs(D%pX9*;@YKxXOqyGE>LrfJ#YlL9*&{lV$Wvc3@3V;0yGar^*=HV`z6mq^ezUpuPD{_V1aBD9A zT8DOxv|Fx3O8eA84iCrp7@hGr!gK?W<5)Xp0tlR1_FsF z1R+9fSaf;Gj8(FlxgfFRaz9j6iiu;^sF4ryH8^W7=#^`7R+OVjNy5#A-OH%CnJHS- z?MkYPJdRrVqnmi?B$wfI_kMl;B{FFGzpf+o&6MmO-t4(|!ER@?9+YPZiJe1xH0I_YPIoP@lMsm!jp)D@vZW9Oei5vHRX-p|3w(OLd zpK!Tvw+f7WOuz-Y(n7L6HHp7pr~LBL?%t?CMvb0I1%+nwxHBm@icDqkSHHnIu&nNCO&X&1_*k|wU$FY6G&Ekxp1O=C z$ut!ezX~e4Sw1B39pfxF**yhD@w%$-G&dXUK z7rfc;-BVEFP4vnVv?CtAZgT#duO7Tj>uWb1IY;L%-Ir&tzWOr9yXw`4mU+PMoV#&T z9Pk`F#!-ca!?<>tu(LY3`r@I+K~p1C_B%BjI`|mocA^BA?OFJ}ICq?)qRKnn_XNnF zvqF8L;il9$%n6AS`Jm00AuBaB(KB6PG>nv)kgbI)qdShfgIl*{B+VR`x$zDfji%`= zwurj(CkTegy_PeRS(zaLEz+h%!YzCGo{n*))DsUb;FfWs$tQojfFuRW>*-cJ z^+>gR!bOfmd*%dip#}sPjT2k&DTGYPZZu4oAB$i zbN;Xm5f|+Mcb6HfnAJs?`w_*;>fQp0BJfDh?VVV4h&`)LVET=2O4|jXsUV5+4HJWI z%g@DGpI1i^&;oC6n#Ow%pKC!f;ERKLDJc%Dr+bnT?6x<~9TFIR!eNj04_-1JG|@W5 z;4H+l%$-MRBsy14!O-cm#Dv;sDwigWn#d(3Gu)kr7@Wda(&iqsk9# zmD=h)>}+M!2r9>;8xE-Vh(DVTFj!c$c(CKzEg0D#)3EM_&Uiazx4l>DkW`CT=J3{w z)nWWS)4saa`jyQzv}N7WJ1V+Wa{B;;){XQi>$}L+!LBZm1;LH+_-(zetebOk7H9ap z7gsz9+pp_V-b>Aj*^e3*%+ER}`6=1SC>CUNo-inv3c-ROrLJ} z3L)FY_RF6>* zKP+>my?fO_*fvG(Rn6J?ZK+LUkSed&y=B@+hid3{yw=RKqWR2H=!nwJ5l4M7uh{x; zEr-k}?rR+Q%G`=wdG7LQ$+bl&%vZ?>?UjAq^~=QBdJ#e(Xo!YWZsu<9te@N9{>KvN z78&$dx6&0EaeJ#1UR}6hGOi2M>o#;ZOegbBphbE)Ha#Dh&iBJbf24g9A@Vop3e^9m zt~8~x!3O|1h{K;kr5)bL%%jh8y~2M1JV*Ghk@?^h%V2+viz%a-eHA3;}2Nm?P=h( z-)^q6$a#M1i#@-JT5{|$#UL|9r&^^)gEa&l)t2AE(oK)YRd1VJkwJF3R8w-Jlvnk- zI0rsFHaHO)mgIMFvHWe2J-AMu-c5McvQjqk)eeAg+j*!B&Porem zGWws=2OHWr9-$kWa?j`S+WCaPQPT!u8&Yn!0lOXDUMN{9n+h#FBRJVW_^%;Q0A-)z~Z zF7;NP6sJ+O%>6l*3M=1?aLx$-c<89qGa^v@XZ5xMt^ki;^?svK?oJ9OkDIIsj-n=Y ztRyo^V01sy;@CYe5uW} zN{}+mK7L>!7%lA8qJ>Q!D7r=d)TdByPtkYGWb>rDY}&Zv+IAHPasY(nR(ed@L232R+;k=Xw8!x04R_qbdB=(~vA{(D4(6u1#>9(LrI| ztEn&H#|{{_zR!QQ=*RsSkPN-Cc2+Sm(pvu*TK3QE594-ajpPm)Ye|f_ev80JZ3rqXGzOsNZmR{c! z_q27N?6DHf;^K9l>}+ATDLs1iYRTu`){sbNS%BBfs3s5^2dBi3Zo}|natdv4W+tm| zA4v)SD!49-`_L8YCfj!3GO#f1$8YYZ73ypYp5Shz!N)dP`@A>3TK{Q93Fevl((z)c z!i03XSmr&9KJLX3Yi4ka-IjMohMS^FRS*Y{4|nqqp4{j&s!4on5z+wBl})5g^>jAR z8wWBxOT;yv3`7_!%u@v-KBE0T&zLcd|5s)h5{{2-9ZVH|BTD}JoRfXE|Jl(Y=mOEb z)nTy5;K^)c9#bKda?l>3UY~EJu5M0GV{?XeFF&f1^FF3jV+uO<`x14S#@ZHyow1b2 zlR~!Z{=w;W`SppLX}Fa$YY`mbgdj9s`CX|diNbi}HZMjxU)-p|md-`zr)kOPo@3*T zh>C$J#znT0E()&|(Mj(WQAHk!|Il{I#rZ{>Y$G3!e6)>}K!4XIw^rT=*AKC-bWsGp zNAd)+HKim7GA; zvZ;n;`*_-&=TiEXp#MEa6Rp|lZ!Uh?CpP)A=V^8GVx#E}bA9eop1c^4(M5B$_mnsQ5AQykO)1Dh<@0Tl1XU?~`c&@E7^efxauRIw`E>h}EWvKY;2e#_Pxiy|GY$`zQq z9>U>s4O%ZkjIkL_EQkBpvb9RSN8ETWbyIDuG0LNrzlRY-N*3*L-U!RO$psr7d>SHF zq{Y@n^G2hP_Y>y2{y4kbUsr)_JY9HHz99?ZXoqTcl8(R=8Ux=7n5)DYhKLcqe0nNZ zY8>Rt7N}^s{Z_+{6v%{$(Ja#RYX&dlN*>JKr;s753aw=UYG}+*x35!viCBFPWOP1G zoIf{FPs}>R__h-+`8t0XsCL>3gPkl6I(z7T5oB3&Gw7x6wCo7{MyspSu_tNJ5I2!t zbjNd)T0?Cb(=Dhjt@xknBrJ4uAx~F)%@#r&akK<6co-FqThJ*~6C;3BZg0e)Ur%w4 zeDhlT=cN4CZcmm_%{-odzP-lv0PsDLAZ>Bjpmt#DMs<+bs zOEb&W@PAYsc;g|W&S*P&NACDS7zjQ&ANH1pOZ!-#A@d%kKyA1AR;wahDt^KyVxeUW*$!`fCX9D1 zoqpTvrN(%Kbz#=1<H{TjKg66D7K z`UMM)n<(2bd$X0?JRYW}_BO__0Wr8TtS#!kfstc8%%qu2t`VeAU?iNj-8&##(_Sp- zzh-CWwoRwh%jvJK-BHMn!A;pJNS>8NGZh)s={g{D=+>3PNTa^`Le&ybkO%oOEJeM*@;plwB13JKOeJv;A?&=PXJD|IIbPlU#Q>u zkVW;?Tcimx)*||IZ*t#4^n9AYi*j_gZLD2>oz>q^?~^+N{#ho>TPz)>C^}@K&aafr z;2TA*fy1mAwGHve-rDhsmsfDDx9YuzOM*=N*w%%Hmp^fnDE!_*TBR8(209#0AHDh# z)AJstn2F9xxkbno3^$(yq4#ILv}(Uh4f|{yb+4GMqehZ#MMIeM>&8P3F}|t9@S{v> z=|5STqsuz(Yt{M2mvnV8*`MBc%Q&(FQC6$merAvOmB)+4{#Mt798F`hs%WT9AwI@6 zHBW*){)!d~DMxqGM=aj=lr#$lldp81L|WP?bN!#` zzo)7qitK=*osVzxU9M1ajpUe0D=To&(z4yVfUdP^q%zf6ta{48dn3|tHFx9#S@asS z5f?$U2ToPr!mC_Qddu6Fsob0eW$=*8drKj+-?8aV9L|r# zs^`1cM%KFzV0YNr@W4Sx`4Gsl*G;`O)wr#X!?zUQ2|!pbtk_i5nMt*LM>d2{6e}d) zmWe^A0xd2&;lRSXvT~#h<~FEQw5Y$#-Ha$I#Dn8Htmd#qdhGF^YhOQ*v&o!g01mxj z&G2`;Cif>m2j~fp2?fh#rln}y5Y2wm*5}dcF$c|nXv_TuU33B zM5NE)Be?E4r?-6+dW0L8b3Zu!1h2-_DoMK+|HM>n@Yl&Qlc%6fs)B=pQ520&T$m#b ztRT?rcc{PjZYE}DB>z#0^~XvZ4Dak)@CX5TW-eW6Mwe9_)tK-`?<#r=h4buoo9Wf& z?#}`9%&xEnn6WI_0MWo&Yw#&A&}f31JZY7ob${ty#>X08vxklBQ>mLX$k5RC|3p0~ zo)vhb&#lDQ^!=a?a@P82c0G3|1bCvEsKTbz@@;jQ0YonMucY-SoAt_+F(AD5$$s$R z3cMI*+x&crag{atH||oL=o=9P+hkwrK;r0up}{Ys)p|Vl=^wTmSMacRF3on96~3PF zJFJ#AF)52j&ZZz~-Aa<~t+}4ATr+xHtL0%qrpt>8(YLmT1>`T$nkZjzO9)c~JGCjD zbUIsCZ%KoX4iDV~**Lw6@EN18?@|IG2Weo4d~==DDJf;{=?3}E%FwmyJH6DXoo%C| zAxA{^yycjmP@vwXQKP1JRIoNYEkrC`8;G%tt6Lo=^theJGYNlt_!VWCoDFkUnigws z$2%>zFx8kF+YM&-uk;oBB^)eO5tZBMRce?>N%&qNA5Rdds{`_r7wN*@3j$}D2bamg zZg2^~q%)~ZrPZpZ1I#%{$@hk{vqEK7x0g`sw77J4Wd`qfkC;lxCJ^8ns;&2yJ#Hm^ z{u9;o)bu)UA#q%>SsDy!m;_{6lPbxL4X^`e2b?d=il;-MgdpXtCy*KWOk!jECA^?We|KehU zpI(CPRVq0P*7HcZ3E0V7|M!1CFoAx} z$n7-NM>%j4%4qhJ1kzO|{`dk!3by@E6H23b28|Na#*g;xF6lF!zy+e&$Lcg6z)JyO z5c9i4>>giw$2+>Jt&h68qb~4&vljU&+laKNw}Ic6v5m;(MQR{_@OjS($&Q>@y*H`q zVaYu8fysI7C^>_vW%K@oGJ}T})BIoguNuxij6}Mh_yVK!IB=#8&$X#5SWL42?DIP& zC##8dFLSg@_$@)wap!CNr#{y}gRuJ5vD{}?qiXHeN|hqcF?v$7STlgw=Wz)Yvxqij znjsxbuaA#uH!9j8%WAcE%zDyb*aa@Am!oYb>wpKI(1#nBeXIxB`fYtot@eCz&3q<* z-Zg1&lnl;@6(zMNuwh}>)5PQ2MQTXO&}F{u-$WNv00aIB)64Wqt_2#=!1-+*m4<_xa>4(Huo~+oC1@A0qvz8#-gYHh`kK?R*q0mLoXeFm_Np zDY~+C8?LQ4yjZpPA*souG!2N5+Y)R8nK88~+6yow;+4 zUthn(40MN-?0u_2C-G*g&y454Q-|n`PX~yo{eUwPTCBO;;!rs_82NF*!?_9jJsduXlwj!cTm(S5`F{#JR7GQX7we1N(T$}07JPgm!pvs ztO@g-SL8bwSB9=;>V$~#^jeyJe*$#5IwrXrWD-Py(+Uqj7n*}p5mw%hRd@Kdzr0=r zx*O_RzD!V8EeZ`6yo(q_^~lyr=;ZS-fXZWMnoHyf{=k$szI15tBW1lLvFfkD%Fz#I ze^;Ch*yaL4vdT_op_A%zgiWm^4#TEAPp@iL^vKDPQKNmfv%10MuULjY=S&x zl9d%6?Qn(QShAV+U=~{;q02?nnE%9?B763InIP*1-=;W+UE6nh0%zsAn9{Ei^$@XQ zTn5v{nV|wM&FpT(IKi|-tXf$Sb#>=hc}A>cs%#(FS3B8ze^hF&W0gMa`RC}d8zHT} z2RL5_nhb*`Fv0;WYYD=j$%L?Mteq+mu5C~z1C&Xn(Q)ReWk={qa>nPtVtL){e|@Jt z(Y|*txl9Dp9D}>@5k?A5o{g46uXv=Ni}S7G99vIUl4RIBy%5l4 zCa~Zp(A&{n0(8Un(*DvQIeX5Z!sTjPcR{iSVITbz5#Jfpty1F<)AK+bJX_8^L^Y7B zeTN^vSyicnYH%FtzC|eQpS8l688$vDYc4Czh;Fm2C>2CGcEz7Wr_reblYn|UYxck=Cc8_7VZmHYjA&Sm|sRw~__ zsEdY9lg4l|%4{jktlnF%>*aX97`r{hEIo|fM&D<#U^_vg0^S5ZJNgb?V{q?nw8EaA z@||XiN~Ff{g11{OtDRm+E$wjcBT&QZ@mlbCDQo-i92y=sv0j?89sIh`At`m`SAhaQ z)Fq|v6cp#Q~x0qT`B}&5q$~CW8*UJ1BZPIT;4`W_7J!*6AS&4Y~AHU1-GZF@Rh`j;y zIY1i$H9USW;Nc4P_Yt|0Pl^`rkDvCm9-J~crb9gn8jRGtaA3h^pzW><{~ZuZHtFGn zn5BkPWCio;PUA&$^;5M;0=gg2t9Srx3Vqw;9Pd!OPjZVRl%|l{HBjyB8Vk998lf8# z2UBhEvgFNYAz=;lSs4H(ikV?$^k$NIhIRoxqx849Q7$&q++YRsqgKK`;*hULO&B@d>q_Jc04cyhOWK32qXJm$;FWna3zfIO!XdIF+EN#hA&{{I^|J zQQkU6U~@O(MLvu_4k7Z4cnrofCg37t0Lfd@4xCw< z-EvaPv(Rmcn9oJXh!D~5h^NopS(_p!3(^mhJ=L=(omMlny?cLDG}jgXicmkqv88^P z9B!i48OMcO_CYdugC`-RtQ=p?l=74H>fxBVsV~RWyCz2;(|8aiB_@q8Uj1)4?!{1$%=gIi{Gu zo9KSjmpa_Jp(yFdc#A7dBt>kc<+E&{gNTU{s{2V{`DV4l6obbb`XvA{ ztX5i1p+(rPhz|no&ZJ8@G7cb&_Nr#JpK>VgX8`;03g0oYx+nzXN$T!Ay*`6a4piWj z@@@0rCHq81&R#EzAid!^C;cbIZflCq@}CH)fe;Oo@qm7fz)MuDo0&I{c>eJD_)T-t zwJ3pWKCfitYNDSB@98=qW{&HWUOcG2>r@qyL}+&zlouFN@^|L$%zqV!x%pT6;&`hz zv!)eo)e)$r>kfI=QPq$j2=fFF{b~=p?vnqO5%=wIeqSNpDOoYM#hcz~M?W>D*D50G zLs>N#x^*?hrZ5Fk_#%+Om#*My`Ms&mh8UKu^g^kg?98g9O}Z7V@;C&O^t(LCtm#C6G`78EU9m)p|<$k!*N zOA4eGDzoAokhnyBFRwF`KZ>$+dS7Dhjc~3Icq2uRyyp4VUz@V7#V9G!1l5J=A(C+& zREn!x7O7mvxRt<3)5=P)ske-RmhkS=Q@;ytpaK#9(K4P$7F-?k-i>=^rNt;3Ta_up z;4YU^4)O>tD#US#Tscs)@8W%nZyn4ekt31&E-_!5$wXkK;Fv_dUUt8_g==$bK)#iMslYK^f%nmwoU6 zn%3vG6B6zM!KNZoY|7$V1)Y#FX$MjFH0)D@JVa)tESRiD0$aX(UWKIV%TI+o2y* zPL*L^ODhd?N2!ZlCg)h!2TF$BFRtfur7qr7wqe?V58wuee_YvdnNgs>~0Q96UF)|WzdYAnhTmq^*`Z~$r2?)10u&pLY1 z;`jERNYNv6{>ujyah)QYCdJtU4WU&mhydmCtrJx)DgskF!F*7Bg!;NC5_P+j3wCW> z&`$4n%VR5j0S#qyy>PH|$R^85^)rTj0sh=`LqYtqoWeHa^vTUV#vq3+net8G2AAge zR~D-JZqao`tlATOHb0J0%?_j_R!k13-m?W_e>*`{4bH;mU)`4Iy2K6Trkj7RS{6QT{PHFo(pP2;RZS=MY8w2b$Zde}CyOqXBi!=(l`%bE`7O;D zO5K-$KD1p}n2&c%Id8SjLqzM9-o-LJevr~0e=Orlowk%Op>$W>s%lB=A~{1e5I*#U z2|clBA1TIFoyD>yg3E9eYWQ}kWd=X**_OU`mE~Q_mI2QntOx*P#wpvcU3?_V*fw$Y!o8`l6K~?6n z@92=T<2D*OeojRg{p5r_d<=+!nal4N1WFk^;~ngI-nQj}cObRUt=Pk> z{HD}aiS-(Pjy>mOEgFFa$LXu5xzU-Cg^+c=sZqb>S<~>DV>~HPK~d<5Aamc!DEG1a z-$&;3WN-&bQBjss+zEHTly3y01vR^Zi!`hEqyWG?K_Zi*R-!Z@dJR2XVt&|W=nq=A zJyBoccjb{3vsOjEFnKbO1i)YAA?nZu$m+-)PPciAGJA_cF5({+#fO*aR&J?*ec~V5 zInMh9@Xn6V0oOQ^%45EJP(jzYZYodE0QaGq=q%wKB&3QYlRNVzK(N=E&$8$z^=ql2 z<%GKJ4_Z*Mk;^P=T>QP8Jun}0Q=l$|Dem=L;w~vMW?%PU4471{ubP-fn?X^k65qV$ zW#iQ!F123v@8|n^L~oW}10||_jZ8DF6C1HrB-MWoZV^ZqnKwi=xS2{6=odekzf``Q zvG~?v&q?90%j2qs7SUCpTJZ?w??JENfsC^&@MWCRQ`VJ{-q*R#)m>x9A-+ET*Rr0i zjK8dmsnvd9 zv4Zzi+%r;GwF*I|{m|t6{=_+N+z#kk9X`3PPh9)Y(ObU`=#5UeIS&n1IKelXO+stS zYa2c6QQiC8Yzu<+|1z%M+-nPb)dppvFrYE5&FnI`T!uGwSwOh!*H$ zKnHWDfSF?E#%i z8gOM}D?mOCx|Ep^t>EI~%Dlr_OM72c4pu>BOuRGo|MYR~@l3bxpNVx{r>U% z@%;YU=kxkp_wMVu@B6y%&*!?X_dCzViS~}!?~9^dmIAebj!X*%EEkjMygj&mq zvgo5FWxlPWm0qc##~*~!2F0#bC7TU#GgPU6sO?6oSqBx;^lx=o%erX#Vn@uOR^n&y zNj*~BxZKwU_5$bBy`YvXHUB2%M~}Y{03}|zjjDUz(Ct;K^82tK?^ki{M<1xyYYW}X zEw{FGr=o*e)rMDhh8&Zb)4#Lwemlsgy>lB?0ol0LYL~x%H8N16Pv@`QCLNa!$o!7; zseGuSKk{6lUCknEY<5FRhNlyXx;)6q1^17S{_t@1DRVE`;{_jZfV$k# zZ7$Kp61QqtCrl7f%zos_2eP_yQQ_zGLjT5W5A6}K7b%XfgKVF0V zv4z`x)-u?SP^&r+d)n_>Ar0cec}O`B4Wfdd-W+}z9L!Pfzzr-e40bbv(-Vkc=eNF> z?Fol~sLPfSm-KV^2IYz!0ES;KW-V+2^9qK%h(1op>2{?nWbl~ zFy+~Wo4?&!D#wiJ;CIw|XzIV{2dRtmWzEOJB79)r3tGwK9>KNJVB*kY+0cd3)BQ9; z5_MPX?6qK@78bJa^s{$?s2Ap-2`Z)flLO~icmze6bFX4|bd~ta)YfW)RjOp*rQ?dFV+OyVO=uR*vx6wOZ&?Dg_%DoZuw*3wK6P-uICk<( zN^;xnS5qNpXo3ypPAeTqOJbx`J4d5zCFbvA4&7Lq{^+B!$@0b|?oFItuRIGck(u#C zb?ULni-Tu%}2{%o;+}x$S@iX&R^D8}*0LFngmcLD{ww=zK z+*!}4DcY|gy@iXq1o9T;enoF@rx#RsE#~1eQ#6X)h7F1bdDPMZ&yff`=WO{l@6e&wHKD%k$F7!?PMJMq(=XM`wiUr4_>4Be z)PCQI3jf+oleC-^m(T3CB|58ewtY)w&YMmj#B&lWR9?gU^iS!$C2_)_QRd7VsNHfH z>@7|hJTaH^s_9sNMAM|!j(r-6<{)-&@nJx7;7spsa%lgYw)p3b_X6H-iEJ!b{N4ZnS(!rvc`%JB`id|Go`O0VTa?yI|x^bX#V zAJTocjNQs=VzvQz@Xl8oePxM?EilO{a!uzgr=*dO4-rGpAD^3a8tPQ%yooOGD&eCt z)18I}AFGwyMHGA4$}6w7#9{obHC+oQ0)MY}%yJ&q^;RLdZWC;1t%!h(k|r*dADZVZ zPz6%04`;pmLd{__H3WuFozVBxZ1;DrXoxdhJs4Y?%B;px*yiLC}v%O9u5XTLoQBVy{tp9=(udVPIvLoLkq z3`g0`L#Q8)H2sWrwV;&7=>BZi16s?44RL}}^M#j@t3RcD2wQW0^|9v!FD2(QYCRPd zfw|egOS3l@_?8}Aw%z;%^+L^j+)YV@(3e~Xz7LbJBK*B{ca#J`@q3T|JNCY(6A1hd zg5RCIj`qKg6`|?>3+ev{hW=Hn1rPAt*qhP;E>r~YPy7!(K&hgLHelX(aQzm5K>r2& z&vRY}{I4?`{6FY?$T|tZKa@7P3kV4Qr_&&alF~%<1#Vniu83gazCZ!(h&Wy-y1pGs z59dDUoWKKO02Gt|KpE{SLB8)O>TwH{6Q(uFh^NK-bJ17UO$?0WqK6--CD8Xvmplj) zjaundJL(Ryaa>lOGMe!pVg%C@Tq=tH`rSik&`;QGduNhn?B z91X^WYm>yCxa%{7Xzd5r=%$uI5Apg|3A$Z{#403he#s2cHL~QF?I-&Um#ontqR?>(Yul*{ruL?eP^JP`% z(&~fxjq-zt3p5^coj>E3v2}2yNu6IMLRoU@h6Id%Z-!w24L)@htlAD$j6(g1$;B6> zBR|l=OYJ%h18c#{54LLrqxr%Yvm3fwL5b#j0hqu8(EJ z7KrBDbUHS^y?J)=N8&|h*E`nMVU;->Bd(1#SBIsv>kF6{)AXhx)~vYaE-85B1O6wC zi1#+3Eb*)3KsS5M7sM)EHZ|CV?%}_RYHL>t-o_VN@t=f)kH{;{ zkEW1WdG|>xj~TIMY~xUd^xbK5ZCXjv)XpGP4LzVffxj)mk+wGAbzW5?I>_MYVsDF- z#?!FX+kyasK(G_=fKXVM_e=`E7HP&%D0R%7Q6A~zV*bV_e1tr2kypUi2yd=fR^I~r zbT_oDhIey@u3^T_@|x0{-KseXu-fDi6LAf2KJlR8HR@ zAboE#tR4|hpADz(P?<7-pubEI-NCk!0zu!A6{_&(r#^%u4x)+aRdm9!wbo{hropVTmz5Htge=ed-Ik9E5XBFR8S1f@f~;#tlFhW7l+I(-BWB z3&G&am{avMrttWb74A1UQ-ehuWEur2P3=1*i)J&y^T z?IZw$@KOj0`_!(%l&~I_X|Bi(-Q3|r+B5VuSGmQ%n@KaBINdmWz>mAntxWrWgI5o! zuN-Qfl}E7`gFNcufQMC;$-P_)f)6>mbYO-8I!%H!GN%R+cwe>1M?;GmsLD@^^Q$87 z-Ng&+r*f%QlfsJEnx0R>j}^PzYm~Ad=P5C=E}YXEP%>ffqhpra?wW#~;H0&FfCSZO zQkV{8iz2jKUUsbnnErlIBWLOk_R!;z$b95<9hH6bvI-nbL2>_U$s!UaTUO|c4~e`` z-q0JKY#zWpCv?8eIP2JNpDnOw^!e3CYeSHH zjqI3ivs zC~B`WY&f%UR$qRt6eb9FlD>}zYLO2wm7pEBL-&PD#mEl|rvu*3d0;b@LNe9M>=PpVqN1BzlZ`y{D(=5Oq|tJO)Tz^#~aHTfJ5bx5B2X;tm!bW;G=j+tK+AIq+p&@;6Xf{e&th>7RHhJY%jZ9 z4Y1;^m5(f{%1i9*0wim#1MQT_b1%5Us?e1n120|?0F}r@F6vT zKEUj2q~GUX6I;!6f7@gw$5Rd>H1%EtTZys8+AqZQpAxI6xV5a%n(#n_?d+r2T?v`p zu4xq`*YS!G7e6S4-6Pf?r=QDhxaXWhg+P1gpkKD+){R()8PWKn>^++@ydpV%dD%yLm(J)-Y=i zL9a%`>4D(MFOz`(?qp+=!3i;K5`9vNZs4fM-VEnez>F4$(Ss71(AqL=!OZFG&=hx! z6{swI;%MlW9Oy7Z+PI{~=x>`2Rb%8lZ45+yuxYl7XRual!ND+I13riv8vxBo`?9H7Y>Z9(te@;1~XXwtn=Kd?H`a*BziTfvIJJ~ z#VXx==XvoQIX1y7`^tgzYfc6pPwHt&$%k0e;V_0AmsZ8Mg(@Y+ekUwv#9Z7YL)*yg z>uAvA>_$|Cq&8{k_7W7wcE54GVTX`0ak7pLe8^jECOHnidLgc2f{AA-*1t*NWvA7| zdD{Q(pe#ult;RQ6&MJ5IJ6CZ6UhK`hcf9wct^g3=-C#@D= z)6BbEX%>4wnI`5kzgdkDDe*>nCah@@7BmwaHfY}0*ePA^$QZX7tba!o=zzD74ozzY zd3UT52ZE7?YeUfeTyHLVkZU6E)P+fgJV|VmMwG?nS*Z5U>LXc{XNtaeh>zAZ4q>>- za~gK<0K4Z7vV$wx+l%aDaUsM9{D|!_G&0mPGSV|LJY{5VVQg$+WU6CmXkloGy@ERa zj|PE6?@JfM{=LDTulL750~JvZ!9l(j=P!}J{Q6X6sEn@3ZY-pqH=DNgprou*)qzfO1q!?4ZLj`(nFuasLMja{fgC literal 0 HcmV?d00001 diff --git a/HW5/res/drawable/retweeted.png b/HW5/res/drawable/retweeted.png new file mode 100644 index 0000000000000000000000000000000000000000..52720c77ce93a16931977f8a9fd805b9f56120f4 GIT binary patch literal 2062 zcmb7_dpr|*AIC>>ZG{fXCE`>_7h`iv!sMVMn>I6K!xohmrkTprBXO2aE~D`*%sgac zBdLr^YvyF?a5UFhm*X}(PI7&gIeJc>zt8h}{eHji=k z0{{S^-w#kY0H9*`^=fWf{|T%}^Ib1Hi9RS|Fab{_VH0rx&lo}!&cZJqdjJ{r#}FdWP9L z;LtbGa_$u;$^7RxEg*+kHO`X#g~F@?EwNaD1cRS&mrgF|kPE*c{w{S!|Aowx<$#{-wrU3d)U=S zS=OoVRX&9cu4#oIIz*`p7)73=OU=d2RDt!bfL5hI8Wc}_wpN99l~B``-Mk~rrZt|LJ|J?I9QuSK z6LrzTqTj;~uvTy0PAGShtFf08*anhuR;;_5Q)*rLTMjfjsZc%7*wBIC50Sk0x=?x! zY=>WbL8XY;`R+}QcLsTP2Q;|_$63ReBBq}9 z6sxy%S0jAWcs9%#dA?$~V-$oXPolbS(3ZlDI)NdE*(9N%EbaT5tj#hiDa@KtC|0IE)0^I8CHFQCMga$%DRt&#T2o~{Xm^tU z-X2*jQcA8xAUXdCXJb2Gb%)N40`23jcyngvte#j36rXfux}AG(9kAW`#oyz677YYh zD};!Kk);Z3=fL4TjA47nkH)>HVPg4y)9vYhX5v>slPGPob zRnDOYGlkoVT3+uMwkD9qo4)ANh%*=TpBOB@d#D{7*~Y~iv;J)|QiMI@)UI8LAk@`l zx525^;c1aMNU!?9X}=JLPAhnQ29xOFni$L^L+HB$*T|vsdHUCIZoI*QJNBKwJOV|j zFYnf@YBtl^ZjV3EaKDk$>v=I@<A8^gHddN6?`2F! zflLf}fsS?dH$!$G`%_?`kjVx-t@5iuJx8OQF?nY=7?=#S=hBZnj035XW?A1L#!Q#WTbwk1hP z2H`y0NG7@FUmAq5@lH`{^YYlcS4abS=%J-umnc*SX>(J+O5}|XrFo?Ba|U0`;^IOO zGeVpXqoE-eYQUnrzFL^%bAhikTS1!`RuoJX9W1vFjVJlG^H;rk#*PVV536h{I;nU} z>bfeBMA+Lwr5Ny2%4GhtosneUW+~OmJF`|iIJ8uI+B7a{TKv{y>emkoC)2){>r<;2 z-Csm(Po^SBWwOr%KX&Z{;cRJOhrC+N_q z5`*qXSiSCoRws2gcmZ->CispQEqElL3M>xkk@a%3W5*ZN#2^)U}SRF zsrc2+mVixzoGN@r*8y-@Oq8CUP5kty+sd)7@J_$OlG?4cM$s)x%D9g*%<2D{ConTbzYe3 Fe*$$i(;EN) literal 0 HcmV?d00001 diff --git a/HW5/res/layout/activity_tweets_list.xml b/HW5/res/layout/activity_tweets_list.xml new file mode 100644 index 0000000..905f1b9 --- /dev/null +++ b/HW5/res/layout/activity_tweets_list.xml @@ -0,0 +1,19 @@ + + + + + + diff --git a/HW5/res/layout/tweet_list.xml b/HW5/res/layout/tweet_list.xml new file mode 100644 index 0000000..666eb7e --- /dev/null +++ b/HW5/res/layout/tweet_list.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HW5/res/menu/tweets_list.xml b/HW5/res/menu/tweets_list.xml new file mode 100644 index 0000000..d122a4b --- /dev/null +++ b/HW5/res/menu/tweets_list.xml @@ -0,0 +1,9 @@ + + + + + diff --git a/HW5/res/values/strings.xml b/HW5/res/values/strings.xml index 759b9b7..2418083 100644 --- a/HW5/res/values/strings.xml +++ b/HW5/res/values/strings.xml @@ -1,8 +1,9 @@ - + HW5 Settings Hello world! + TweetsListActivity diff --git a/HW5/src/edu/uncc/itcs4180/hw5/BitmapDownloader.java b/HW5/src/edu/uncc/itcs4180/hw5/BitmapDownloader.java new file mode 100644 index 0000000..2702ac4 --- /dev/null +++ b/HW5/src/edu/uncc/itcs4180/hw5/BitmapDownloader.java @@ -0,0 +1,51 @@ +package edu.uncc.itcs4180.hw5; + +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; + +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.os.AsyncTask; +import android.widget.ImageView; + +public class BitmapDownloader extends AsyncTask { + ImageView iv; + Bitmap downloaded; + + public BitmapDownloader(ImageView iv) { + this.iv = iv; + } + + @Override + protected Void doInBackground(String... params) { + downloaded = downloadBitmap(params[0]); + return null; + } + + private Bitmap downloadBitmap(String sUrl) { + try { + URL url = new URL(sUrl); + HttpURLConnection con = (HttpURLConnection) url.openConnection(); + con.connect(); + if (con.getResponseCode() == 200) { + return BitmapFactory.decodeStream(con.getInputStream()); + } + } catch (MalformedURLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + return null; + } + + @Override + protected void onPostExecute(Void result) { + super.onPostExecute(result); + iv.setImageBitmap(downloaded); + } +} diff --git a/HW5/src/edu/uncc/itcs4180/hw5/MainActivity.java b/HW5/src/edu/uncc/itcs4180/hw5/MainActivity.java index 7567719..a523aa8 100644 --- a/HW5/src/edu/uncc/itcs4180/hw5/MainActivity.java +++ b/HW5/src/edu/uncc/itcs4180/hw5/MainActivity.java @@ -9,6 +9,7 @@ import edu.uncc.itcs4180.hw5.twitter.TweetList; import edu.uncc.itcs4180.hw5.twitter.TwitterClient; import android.os.Bundle; import android.app.Activity; +import android.content.Intent; import android.util.Log; import android.view.Menu; import android.view.View; @@ -46,6 +47,19 @@ public class MainActivity extends Activity { ListView feeds = (ListView)findViewById(R.id.listNewsFeeds); ListAdapter adapter = new ArrayAdapter(this, R.layout.news_site, R.id.txtSiteName, newsSitesTitles); feeds.setAdapter(adapter); + feeds.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, + long id) { + String key = ((TextView)view.findViewById(R.id.txtSiteName)).getText().toString(); + String handle = newsSites.get(key); + // Shenanigans to get the parent instance + // http://stackoverflow.com/questions/2076037/inside-onclicklistener-i-cannot-access-a-lot-of-things-how-to-approach + Intent i = new Intent(MainActivity.this, TweetsListActivity.class); + i.putExtra("handle", handle); + startActivity(i); + } + }); } @Override @@ -64,16 +78,4 @@ public class MainActivity extends Activity { Toast.makeText(this, "All Saved News are Cleared!", Toast.LENGTH_SHORT).show(); } - private class FeedListener implements OnItemClickListener { - - @Override - public void onItemClick(AdapterView parent, View view, int position, - long id) { - String key = ((TextView)view.findViewById(R.id.txtSiteName)).getText().toString(); - String handle = newsSites.get(key); - - } - - } - } diff --git a/HW5/src/edu/uncc/itcs4180/hw5/TweetListAdapter.java b/HW5/src/edu/uncc/itcs4180/hw5/TweetListAdapter.java new file mode 100644 index 0000000..ab1369e --- /dev/null +++ b/HW5/src/edu/uncc/itcs4180/hw5/TweetListAdapter.java @@ -0,0 +1,88 @@ +package edu.uncc.itcs4180.hw5; + +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; + +import org.apache.http.HttpConnection; + +import edu.uncc.itcs4180.hw5.twitter.Tweet; +import android.app.Activity; +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.TextView; +import android.widget.Toast; + +public class TweetListAdapter extends ArrayAdapter { + private final int TWEET_TAG_KEY = 1337; + Activity activity; + Tweet[] tweets; + + public TweetListAdapter(Activity activity, Tweet[] tweets) { + super(activity, R.layout.tweet_list, tweets); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View rowView = convertView; + TweetView tv = null; + Tweet tweet = tweets[position]; + + if (rowView == null) { + // Inflate a new row + rowView = activity.getLayoutInflater().inflate(R.layout.tweet_list, null); + + tv = new TweetView(); + tv.imgProfileImage = (ImageView) rowView.findViewById(R.id.imgProfileImage); + tv.txtTweetText = (TextView) rowView.findViewById(R.id.txtTweetText); + tv.txtTweetInfo = (TextView) rowView.findViewById(R.id.txtTweetInfo); + tv.imgIsRetweet = (ImageView) rowView.findViewById(R.id.imgIsRetweet); + tv.ibtnSaveTweet = (ImageButton) rowView.findViewById(R.id.ibtnSaveTweet); + + rowView.setTag(tv); + rowView.setTag(TWEET_TAG_KEY, tweet); + } else { + tv = (TweetView) rowView.getTag(); + } + + // Add information to the current row + // Start up our BitmapDownloader - it will update the ImageView for us + new BitmapDownloader(tv.imgProfileImage).execute(tweet.getUser().getProfileImageUrl()); + tv.txtTweetText.setText(tweet.getText()); + tv.txtTweetInfo.setText(tweet.getDateCreated()); + // Set the retweet image + if (tweet.isRetweet()) { + tv.imgIsRetweet.setImageDrawable(activity.getResources().getDrawable(R.drawable.retweeted)); + } + // Save tweets when we are clicked + tv.ibtnSaveTweet.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + saveTweet((Tweet)v.getTag(TWEET_TAG_KEY)); + } + }); + + return rowView; + } + + protected static class TweetView { + ImageView imgProfileImage; + TextView txtTweetText; + TextView txtTweetInfo; + ImageView imgIsRetweet; + ImageButton ibtnSaveTweet; + } + + private void saveTweet(Tweet t) { + // TODO: Save tweets here. + Toast.makeText(activity, "Saved in DB!", Toast.LENGTH_SHORT).show(); + } + +} diff --git a/HW5/src/edu/uncc/itcs4180/hw5/TweetsListActivity.java b/HW5/src/edu/uncc/itcs4180/hw5/TweetsListActivity.java new file mode 100644 index 0000000..5f5a1c2 --- /dev/null +++ b/HW5/src/edu/uncc/itcs4180/hw5/TweetsListActivity.java @@ -0,0 +1,53 @@ +package edu.uncc.itcs4180.hw5; + +import edu.uncc.itcs4180.hw5.twitter.TweetList; +import edu.uncc.itcs4180.hw5.twitter.TwitterClient; +import android.os.AsyncTask; +import android.os.Bundle; +import android.app.Activity; +import android.app.ProgressDialog; +import android.util.Log; +import android.view.Menu; + +public class TweetsListActivity extends Activity { + + ProgressDialog dialog; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_tweets_list); + + // Fetch our tweets + String handle = getIntent().getExtras().getString("handle"); + + dialog = new ProgressDialog(this); + dialog.setCancelable(false); + dialog.setMessage("Downloading tweets for: " + handle); + dialog.show(); + + // For whatever reason, we have to call the TwitterClient downloader ourselves. + // AsyncTask inside AsyncTask simply doesn't work. This leads to an ugly double-new, + // despite me trying to write a nice clean API. + // Also, totally didn't know Java syntax allowed me to do this. + new TwitterClient().new TweetListDownloader(){ + @Override + protected void onPostExecute(TweetList result) { + displayTweets(result); + dialog.cancel(); + }; + }.execute(handle); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.tweets_list, menu); + return true; + } + + private void displayTweets(TweetList list) { + + } + +} diff --git a/HW5/src/edu/uncc/itcs4180/hw5/twitter/Tweet.java b/HW5/src/edu/uncc/itcs4180/hw5/twitter/Tweet.java index b7f66e3..a60bae7 100644 --- a/HW5/src/edu/uncc/itcs4180/hw5/twitter/Tweet.java +++ b/HW5/src/edu/uncc/itcs4180/hw5/twitter/Tweet.java @@ -29,6 +29,9 @@ public class Tweet { @SerializedName("user") private TwitterUser user; + + @SerializedName("retweeted") + private boolean retweeted; public String getDateCreated() { return dateCreated; @@ -85,6 +88,14 @@ public class Tweet { public TwitterUser getUser() { return user; } + + public boolean isRetweet() { + return retweeted; + } + + public void setRetweet(boolean retweeted) { + this.retweeted = retweeted; + } @Override public String toString() { diff --git a/HW5/src/edu/uncc/itcs4180/hw5/twitter/TwitterClient.java b/HW5/src/edu/uncc/itcs4180/hw5/twitter/TwitterClient.java index 8e205e0..3dbab5e 100644 --- a/HW5/src/edu/uncc/itcs4180/hw5/twitter/TwitterClient.java +++ b/HW5/src/edu/uncc/itcs4180/hw5/twitter/TwitterClient.java @@ -47,7 +47,7 @@ public class TwitterClient { return null; } - private class TweetListDownloader extends AsyncTask { + public class TweetListDownloader extends AsyncTask { @Override protected TweetList doInBackground(String... params) { diff --git a/HW5/src/edu/uncc/itcs4180/hw5/twitter/TwitterUser.java b/HW5/src/edu/uncc/itcs4180/hw5/twitter/TwitterUser.java index bbae277..d9fce86 100644 --- a/HW5/src/edu/uncc/itcs4180/hw5/twitter/TwitterUser.java +++ b/HW5/src/edu/uncc/itcs4180/hw5/twitter/TwitterUser.java @@ -15,6 +15,9 @@ public class TwitterUser { @SerializedName("profile_image_url") private String profileImageUrl; + + @SerializedName("profile_background_image_url") + private String profileBackgroundImageUrl; public String getProfileImageUrl() { return profileImageUrl; @@ -39,4 +42,12 @@ public class TwitterUser { public void setName(String name) { this.name = name; } + + public String getProfileBackgroundImageUrl() { + return profileBackgroundImageUrl; + } + + public void setProfileBackgroundImageUrl(String profileBackgroundImageUrl) { + this.profileBackgroundImageUrl = profileBackgroundImageUrl; + } } \ No newline at end of file