From 4785930473c62a46f0b353aaeb50e87b16432cf4 Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Sun, 10 Nov 2013 22:58:25 +0100 Subject: [PATCH 01/69] Update support library --- example/libs/android-support-v4.jar | Bin 556198 -> 621451 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/example/libs/android-support-v4.jar b/example/libs/android-support-v4.jar index cf12d2839dc5ffe618b0233f0c30e681e8b9b0f2..9056828a04daaded875fbfaa106cf3e2305fe386 100644 GIT binary patch delta 220524 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 z zeUJE#V8p5=N7)1)gC|IdQe6;YnK87k<%?ib5l@?L zmlTFTH<&`iECJ;JM&V%`$uv$|HgkgBsBINf zuk1Ti8u^s-i4Gr@LD-h}l?-cIcID?8tP#n>Q<{wUgHWZe=3TlB`$HanWqu0fpBR<57W6|NU3UvPS=vrG)U7dQ39iX;bmS=}n==TF_iaiYu5o8K zk7UP8*(;}F+;^i=#aKg>H&338rR>WPY3{sd4RuK1$*1hdDfdBze1q} z9ds;4NWl1KisoepDGXqZa9&<3Q243eU;u~8g?UJVB2?WYdWA(tnM~Rx3<=_-y470e zZ2lXf?c`4*Yc=?NfbLR7IZIa`CC1|8c+KLp6{RC{{4v)?Jz9py8!g%k>~2f7Cc zf~g{!aQEqxy6mR=yqvh_jMtk za(VFg$yuKInqS^zK6mqOXJfjGQ$-n%QK|{r9=6*J7$C?n=I$BogE$L!IITXDy1S(X z?MsWDg^3r8J!Rt}*pE-oAw`%s#k`Xjv_ltz9=b^`G%&s2<>)mgX6amzeW z^ChtLBOwN20RF^aYu1!|Cn6QD;~dX~u%Gv60yeCb_?DDOr%(ZYmHh6G`;tO+>pd@( z7km(>*e^$>zeM5U{e&1&SYf+%1%>b#@!l&aPlG!`f<(XhQhOSrk~EQ8 zg1H@0sLyx$On<#FaM0s~?cFq3g>#F*N@O3ozl#Tm04h%UdNPO-TT667wZhuk&;E{Z zqwZRJDmI>YshV1uoY{}(Vumjwt<17nqBDgb^+9&D$sM}xb}oDC{|V|J;bX^4M_|z4cc5pl6C}%pRg+N@M%{JY$wM^p?YeTt^T8sjLMR(5|sZf zLLJk`1{_Bg(cB%>o56LUg`*?d^`(24U{W2JhFQai^wLhg1)$)h`#)cZX!g?y z{3^U+myv(9M88t)Xaz+7x^={%S+%E4__6X~DhhUEk4NZ(aN06M*i_D!Tv9rs7ouqv&>X0}b%!mM_C ziOj*HC*A1m%<9eK%3MZiGY3PJ*L4W3vgDk{+>`Bn@y1#~&fRP!zer!upT9@+U`$-; zmJ`90VPSt=?vAi?CvuHBu>aU+P_j4}NC=RGuzbi`c(-bwpcbZCxw!i?7dZ}+;KZ3b z0NT>1WmsFadlJ`T?%Vyb&vP1ddNJ?066*`WR1B9a@aRsQ%M{yaZ7=)(%2QvCNbnHj zf)BuIb4nLhJ+P!1C(MXF9L_n}l^P6c>FABJegEW-l(zSV3>0f39ce2kvzv#0I>~ZH-HY6SE$NY568zrMQvM%kyaGR+2*L`*s zZ`hZK_$^N{m2R*Q8$xQNEqyh**u8{NZ=+i-*=L% ziZsi|guXbz^eHqOcuAJ;ny4tg`{xrs95?XGH4aLh07ifTtbrXH&>IGss513^OdnaT zn0-B`tS$Eso1Cx<@GI-^3K0@ZKsW(Cb6fSuIf0%weY!xCqu-2TJR%o9Q1No(m-lp8 zE5Q-tHEpRInD|evm~bNl#Dyit-<#r+xA^{kCt0V~6cu>qCw@R$vdf^t{yYmFxvteF zPkBFOTTg!^RIGyk3z{Z~ zM*I*qH6)Yf)I}GdYlDDVCN199>G|V~39@{^;A<6lat@U;(fFHq4KBC_w>nD;7JHf1 zma+|x&VU_4iVg_ZUJr{a1=nv6RF@$=i0r0Yk0AM)`lVo24P4K@fxw)pFcAWD$HHJ3vz4P`;F0bJ%y+ zfAbr`wW)h!guu@q9w1uJauoW}J^YU#Fh(+Y3^L!dY_JY%Oswd(NK9Z3-~^5K9s_VE z55-ed#1|%^6ZSxaZSe482uh!PY-`PXYrzxf_>1sc(Mz3ssui>IASVY|Mw!yY&)sBK zpnr{M2Vgxi;q+*u4g=l~Q_yPN&LI#pDcPgl0;tlLJwtC07&1xWMN2!-+OxE_f4><| z-fpe<31t~-{z-m{gH(&1&jl@g>=7b=z-9|HL!*hLH4Lxrh`IbC%~ppL8JK1p89Bto zhES^2yRRe)%}$Ih4ZK%@FuC*}fd*E3+aZ|UQIgeEVgW^Mtp$jeI+A)9UHa6P=J_iu zC_MEMCJdd|TNC|aSzwYf1j|?iom0u%2`cQ{?uiLz;N>6s0zZ8ayibmvHu{3xTOt2- z!WUR_&TOiioqzcSD_TRpjq!+@(cRft@>h5?4!UevzEQH+uq9j^AzOizuci2JOhvV# zK6%z5#D=EB!Vy5+BCaCg702|H{_4kk1yx!N{3$-Hq8^4cmjU9W$adiNfw1hbL{3EV zYCpEAnrBXkD9I+HWg>L1K6!6$C4@>HYuqmyMCDe3^Pt{R9)>z>&->p+gUt+Mp)J6S zDny4=#oMfG zUR4gTBxi$l&3}H6C`Y^G#R#%4Af*nbUyRzbLL`kfk`t&jX1Kf>|0Rp3tVyM(CmQW;23_g z)hs;Xya@tWK91KYX7{m$=&JsqcTrQt-7!QxOI#?p|0GwNh)3KaSJiXOKH7IGognr^ zqtD(KZoxQ1z_UXNZ(A-H8M*dUX(OT8)v|AE#tA**`w5M(5}R`H3QKf2b>#=zwyj%w zqs|KLvU3~CTB=lMijE=|c?6aqHIE~l&5{C%(d7fs30iE!v42sfI8^Co@FtBoSj$PW z2^M^YGu`IO4b=e+e`#Qw9;2NWTjHo*ro5@BL~>D=Sd|ph6rfv#eR<|^4}KdRylT9m zs&TcdcU|$Nu|slc0bbb`Z=V-?FQ&dRR@pU@-aXO`ZE8lMcR}hp6!)wZZWl*d$}1~h z_MHJVKr3IOV3!-T=4S9}RYUESrD}9AhnsKNX7&^{>uc_je0HPml~nc*afb3alk!d^ zsyZP7E?bW?CMRS16-xL*CalSJ;2SA=%2OwnQ(c4dLHB9G2e4YK6O*qHq+6RcDz%0} zyF=0k_Hd~a`7D&F{4Mg(vhp(Ie}>m@Kv2D#P;y0UPImL6(aOc&#@ z@E7*{9-7YS9p=)N?HbIAFu)Hmkm<225-4DrU~}%q;_CJ$9QrI^b=HjH0phUW(jx$< z7pe9SVB3`p4TtY#{jsg*cN;x=5}4-r}LOdr&UqF zQPD8IppL$6H%HQm176gaAM0wxetf^Ou~o2Khn^<3=Wrd}*hcGm2zL?K;1>!ilyQ^5 zx~&uiD#(F%zzqZ^@5dme1`VBHj1B0{r}aUv38%eCGie<8>iZ;+9ca_dbfB~32SLQB z64Hy)*GVJSSj`-#>#1Wmdy?k{r0->i)sKF0f66A`uJbnoIEF7!s4OkdE6Q&B9;H%Ar|+T2>32*F@ue!%#1)u=VJM5jRu|eWTqp4V(upt!Q(0kfYea zxxw38!7+oMYPRqUd~GmD)z1$Uil}y^O5l&yY#iy|a7C^5uFcsvll*Wd-_QPLX%85SK-6+J40{J9_d<`NQ=mJQH? znhH<|@3ed_1{m#%>{&=9DAlA#+{KgRYJKC>PnU#7aHymUNCXDV5;O!yki=I@tZ5I_ zDa@q(wSfvC+|m6yVLh|fa=RVC6I?F?da~Mdn~$t9E?U5;0NhUkktXbtkL%#Uu9v}> zS>QQ6b>N42K~eouL;6#^s+TM9Wjye`kXgaD#P;1}mc#PTdmk(-$RUSfD)Br$S?APY zpKKB+UST}6`NtRK8bUKB%XMB-V^6h`67iS@T{R@7dG73J*{dLWNd!|hN2EJF_CLEb zMH!W9V6AnG0ouCsVLdvh$X#h$;GfAW7K{58mImM1~+kEqiPCa6*!gk^nfHSl5Kf_^vN{J|`3!Q!!k*rdb z+5YS(DKxF4q0FlnP8!c5ACtF2&manwNmLSb=`mv!E*hJam*W&nN(!G%t*zHin2akh z(z0zdd|*~<5OI8Np`k@Aa4-}@EpRY8S!TJRH(a>M>!UX+(Mp(%CxvaBJ1NH=C0Tf> zEhvGe129zi$kU>aCUF>#?K+ML*BaHV$Y)r$s5YXc)7H(>CJ!g68IKJ+j#U|s{i!o@ z{)Sm-lSh+Qv~1O+W)5oSeM*O>7QZXa)P`fqbqAv?S5~zL;_*+6CrKBz2N-omimgVX z#$%J##R;@3BT1RdL}ispN=qq%d%#Mx8kNFNfIKWWOC);LrBw35Q!MwQj;u?NwjJ9# zz^S8?|4S5WHk|5$u}l2SdwGPl7Dz*y;G?J;Ja0|*^jSib7)i2bbYm;MWimtxW`YWu6s#) zXNB$n(5s(RxU4$2**$#+SDxC;brtW5PrfNu8*D^WI`r%^1Gm0*NjGLX_IF~xYRr`A zCk=83FMX39R=5g6dceadyle!mLR7xS>e*!9nFhGkOhz4o4deg%(UfCnvjKevFvCf6 z0@qzC?dENU6@0viLPvIjk7`C2DUM!7ZFXmIg`TNH@e4N48O|s)zA20}ige`E2Ys-+E|uZ$d__Silj$R9 zz?S3tSvP-_Bj<&8SVrGV^gyZ#sO*F(n^)1Rc*P1>*wWAleJO4LFx;VZZO-nyyEy|r z#yXj6k}u6L1^?9-+qiILm-~t+))rN?Sxs7C3J0V*<l{uQd~ZH8eFQnp(&E zngc8NQPCn}hweNS?Hf1Ug3vbT$9pgj8?Y!cJkrPJg3Q_-c_4M6K>m=`~A^2l6D0CvnE8Gpz`(j?kJd%AoyPf&o%m zAJ?*(U#_g6x2*69W>^UT3vGO;c^O#KOQ z{@kWfnbd+~f>CYE6&Q*YATSju;`P34%*pD;bcsb0y4h;4W^pda0~9B|FvK6L9Nh@l zrUx-)uz^HY&9H7Yf$uu!4kONO8F~r{sr7;@kPC;x%x2OXKrLB-RG`;`vA)9)(7pg! z)tli|=HP-RmtAyX^&id3pd9L~F!ScR)oefw9Ec4ZkYpALmJYL=)p~SJF)2jwNH}D5 z0A{W65&Gq1q=Ud)DZ5&En>?5l3TUYWUKt)rZ7d!@@%+1i$s)Xyent=myl})Eq5-ac z22fu^DuZ%5C~^aULye9}DguWL%FvYRF|lEVM^xRrG_-87UrB#=lvpu(&wj6EEP#!l z$U|VBQrgyG1~=MA-U<(9E=|@A`um|5*9ZYOo3zYrR0?Wcy3Y0UZPhO!CT1`_Mg%E@ zT#KLk0E94VeH99%1_`R(AV*dM*1w*WL7fYY)iDpY+Z6!a?F!uuDF3N=ib$vnjA3#5 zw|hQR+BR!4gJ{DH9?wq{bXpxj5CXLZF38l1K^|JL0Bz(pgpeo1%Ru z3C5_7sSt4DP=fI2X+wAp+JtYI8nogk&VlK_P$FBN8FcBv*?Nh|pun}pHejNr@ZQF| z-JariCvRh`JqdS&6W~DC`$F2w0l$+GZA-`h3%#xPWz+A@XB`(e8R!VL6=~JigQQ>! zJ-%KqwGLc+gA(u9&dc3O#k}CP!k}Q5PPjUma2Zf>tf-QspcN|J0Bf@3oKkra0Cqw3 zOTG;&$zn;rx@(4Y`AZkFTI$q6FX%^?#L3-L$H^T$Cbgow*+;$sAZNqR$40ojDc9LX z^kUO@wF9}q10JVx0~)&i&5{6Jod9s&cMK5seRr@S(3!Hn=Yg=G?_CY9ek3jjM_d$y zI5W~i&p$iwLd%%ZU;VL<=fiGW&5r*gQ?>5?;KzEz&kvzKy{WFy27y3%3ZJe#-p!t? zwwONcovS((JEu+1!>*duzcv5Ao!@l~;PU^eE4~@De;SVv zngDM={|P&izx5dZV|e1bxFPG@|6_%kcGAOIhj;=>366Xsz%;zd)D2zy(pS^?8?&-b8sOvp#T zSL*0&ApQp#YxwtFmQ5$_#K4u#(GT7oEo=!_%pIoyc3|oRPF9smNnK)&0*(RD6Yft= zj>M8RbkhQ-gYgLHIbOq>ORYCW0lvM{c_uwQ|=GE8OdAGj|?E!O%7U^^c4Wum)g1GF* zp<6UCS5h4;d(;1gHa^bBODN6WEEon!q|sfR+J&IHzRiVZ8Yd+Jy(x`?79jdyNp!)U zhBEs_6)$fmsq6+ov}{ElFl-VLfse>4ZExI9m=VgZuS5xCwQC#UrPC@yZHuzK)27KeK%Yp7de?23e2B z*$eetx@?{^aZAVv_z`xhnbpqi;Mh^#8z`@vu$r|Hi~W9-8m}ALgIc zWQ0|4*rt|tApZY?>z~Wy|A}$9u?I_1CsGMXY^$2-*NCpY)9%nvf~J#cKr?CnNwCK{#E3CqZc*%p@sm!6F}9T z-wFTyE(}q3qvC$M^t&CUSCc0-JlSdcCRsq$hn|`?`im?;*i}w#VsT-NYR|_1xedyb zG=Sk#yXD`j#Cr4&wQt^+W;ll`C_S*Z;N*gYd;*=9z44x0SR>tlC%R_VB{Ao!#W zXeb@xcyELILhNr6T=uy-zHt$J#_O!&`%(!0g4#iS=YR6X=q-D;!Tl7?ebGUEAYM59 za(pn@cmv>S&sp$6LJAGbcygoiVgB*ymoF4_ll3F47ZWB87S{@N^azSmXSR(VFOQ)D z)W)h2mL#pT<{4E%AbKkuo-)u=H2hA*PXPU0g3Pbm@K;{i*kpFnIJ2B!UJw2k4{qfJ zr=MDzy_c7N@WmyM^SYD?80ha$Q?blH(4()-`+;s1PisG&6(*%f(i=^f9(65<&a6=t zok`pk8q>#OrZ#U(8yi+jvLrcY<`O0z08d5C)^pvjWNlqtW-^197Y_1tFIN&K8wXj# z6%+fMWmho<Aa}47?R;EJ=yTPwF*`2wIYj)g#;?)qk=e>d@_}+pB;bH z)M<(*oFZ{CSD&-va+{wdxo>L1w3Q*NRroP87wrzZM;x{KtA=R6Ux22?nrtT1Arr1B z#~^hAH%!a%Cnx7`SiJlnHPxUyX8;hB49mHl9`B-|{tA(t_)(_fC(?|F%+PE@>E}4H zp4}Qc#gubNMmVoa%AQ`k_jNO6aXUZD(b}l=GxTR-b7|A$xoo@LapBj}OIf-Dve%6K zP)k1q8<~RH@mV2GVGj#v$RxuYmdH)QIV}Yr`?zamVLvZowVJmFW=pv!X25O%CUe~n zbH`x!eK{yVNysv+9nToSFD7V&(0RIWVa!DIX0fPFDE{xFRm(lB|2m zd}iu&5{$1KO)`aHxzl**3wx+~52lkZxw1YR}Tl5&fp-KZz~1>sW(VLZc9PO*k? zw18v0Z*$FLcFcH@PgT0P7p@nZTLW7r=f2^Kew31ho*}SZp{o(J5J0(= zU}#kJ+p$&IJ-OPjI6%TW(Y?nn^t6#w4i&M*muhT?$x0VTvOF#@UiX+D*GXT3>EwP@ z3|XK}W+>A;P`kQ-Hrc6fe8X^=8!Ps;+GEzaukynu9(GNyiYAznin|bmno~x@m7K8G z19krG#wU>EmF67_ATEiOifPbiDoPi7&X_6ZktW~TxA_x+4lu*(Ni=bOm;y=e-kVe& zM~17cQ7f{jehgk^lcFykX~s*dMvhIhLSX?~R=D&)ahgu^-I$ehf$gZZz{ZhoM-o zywUF|*gZ7~I6yplmaO6zgbdW8WSdX1%WV=)k3ka7Ks*}V@s#w#vM~3A-*(RzKb04i zQI2se`J#)MitJ_MeoCpE=4H*klzkPJUG~7Hah2}DyrSL*R#z`{o&vx_B2FJ^YzZQ1 z{aH+pL3-NJwBllsH?I#@vQ`Y+>^^0DjhNjOIJ%*}9xyMnc~0BH2#SqvJ|=G?o{hFw z3-MC>0bdJ>9brLPFMXZMnPw|}fuZQP`X_W9$eR5GQ&`DtEM81DL~Hnpzn?`sD8EtH zQZIppBEZ1H5C?C`=3?Tn!^hG*{#CA>=0ZV6`BO^dW-nOVB$`#y>suxYfGz6jRX=(2_OXJ|1=U;PX2dxK5PsK1?U4g8h`Ql9bMEjLfopw8cx+ z_%i~Bm@2s3ba$E~aWkytYN^m_WGKNW{Plllr)yYw+q?SW3CQ^*J2Qcxc6 zqPQK(xE*IEw)ekQw0WGP8#!$zSH#e+0w>MLC)K@T0z=42Lkv-4H3#oA)V;XG(_Ydn zO8`#V-jT(f(n?z|t%~?B`)RDk;R~s0^>xr#s7=}f7v8v(a<7=|#Cn~?>j8{&ojvT& z{T%?Yku-r-CsB2>f>+Gb#gysBi6I?X)A?G;cI_qhRpiCbII=_apk~Y=TO2Ehc)c|ATE)(O&gp9Hge|#Jq@Ru{XXE$J)5Vm0i z5>6PMC4_f$1O{xQY!>#d-Wo8Vs4ISsMFTc(#5+4Mn*(X99p25L?4RSOMEUR!XVe3F`ca+B zk*Yz>Jo~}zmq|oVBTB!ZvlY|G#G!F&S5pinEm*;n1vKb=IowEC1Lx!^_JB0*Ll}d~ ztO*Mn#nV-hQ%=6cUlE{Mou^C2Fo0aT=)gYJzbx!lkn^DCXh$_9%ILCCU0cKI! zkec1I#|np4_6f5`O;8E>h3p1sLtFf$c)8G%h>!4kpx)qR*A%!ndX|Ht(|$wKzR^3@ z879MC8HYU54tzaR)#NZjXJ)3bnb#7I+0pDW(_UAEIJnDEI>yCRJ|^KmvH-L}kX@&L zSWSOD!~V_H3urU9#_Oe>LT9C6Cl?fnQ_8t@{RrE6iV?kI&~@$Hf)0Fh+k);Oq{;6~ z7R9F16=rb;qJBABl!HOL<-Mkm*_c>kd=WwP%*9sfoFC>uB% zjBiT;D(+oiKkYTeL);2(Q2{7qi#jS6P(*_8iYD^PB+@AqP%EB*LcIf9_bLr;hKKBg ztA=;cgw8q%qb{K;X&#jnm+2UJO;a2^)fJupxT0KOQ#yuX6Uh$@Np*t^Z%1hLOJAVw zGu1sDG*96zgJO|#D_53@oXAhcc%gUrAf*{hu0hqIwA)~l5u5?Ux&k;^(s2rrQHxmf z*9DB9%JyFx;@lOq>uWOf(iwg4A-v;F(wv~ha24CIf@&JW-77JATe%lq*!Jz#(8zj% zDqH!>?I5t55^fylIM(Hg!V{gwM<&o~3hFA)i5j&<`p4ZY-w@Ew-0+%gD66QSoYT3^ zM(>*QznYq>Y4F#!cW7o}}m$DK)!z&a*Y&tMOqWMv~w$N4tQnVtU1p6H_2JnO+% z%u3$f<{yH}$10JLZ^a*oi(Om2Ht9Jy6zW{v{})&992`i{w*78wZETwx+qP|Uqm41K zZQHhOJK1RCY;616=X;;`oI0nb|C;LV>YA#Vso!;XUssX$k|Aeb(|cII@i)TZD`jJP zj}L-GRza?eG6p41gCX4$Aoo7_X@9@S(|hQvA*OZN;s`5=2P=w4r+6CJuEIc#)gv5+ z(fgt3W-tI*%>z-!U_1-04HCFw&Vt*do^Dc5|Abd%i4Qm5b5|Cr*AI_0(vl{zx#=;& zcmz1HOJ~Ua<+8Mj)Dw4^5=j|)Wp5g^1YgQP#Kv)$dBRYVpdS znz9!_HEioya)*$ShTAj35M8Lctsv$)xABJmC`PIEN>wUNluFh5VP7sa=Z-xct!vO< zAx^KUOE|tyRXP*dCX*;zPMcgbPo}SNPKvh0_bvGF%o=b!_?WHySP+Om;g^Ew$anwfKjl%2iJftE>k@uGExQ@abv^do7 zB5Dz8PcNf48@z^5F`Ae&T@W+KsTAv~^>jb0*g+uNu2#4S>EWHl=F7FX1_{MVu{X|* zJcVs?Y*~{zt2x}9_5eHL6nP1j7W2NL@lY;q6fN4AI&;+hNn86) z{U1N-ss4b5gnyaJC&d4MttzpLOg7c*_A0$ux-){el^bn2q2qOOj(5?Tv!h*n}eS`jY{Rid$uMh1%YKKh4*@ePs z4P*u-`!8z$iytEWkC`e`>gDo3E)P`%3Hl#)PyJte)Kq~%D5%B`L5u%k@PEPxr65w+aQ_np+Ig z|KHC4@!CQR=Hcs*VJ3j$K%E{N0r-QVfVX}-Hre~E8~aqp?2)rXzNt2jNG{9ea*e*I6Lg8S2|s}{E(1fN6# zJG)RXA`}3yx)bZ(H;IJ(u7osnGg`K2lqm4?nv(Zj%6Di-Lhcjo!FN4SPSbY;OsXp# zb{6NI3#mvm_~_&g)JH$6-=9(G(k!rd&!6C3E%0l4r`98nW83WZH}waP&sN@SCc&}T zUGJek-6#9>R}56hwcE*EPXBgk1`_-y63tb?Z0J4kLIp{28;kH6J}y8`m7D(Vj1+Yc zYPrS8Ym4@k!2eY=Z;<|OlL(kx+gr`KE$w>+e(m^=zf0h}C60d`?tc9h@Y)f0$4vZ^ z4*cBT{W|PTe|Jm#63Tj6L^Fg9(dw5Yrb;fEqgv*JeuPH+9zrck(VDNg_@oRcf{WL#|udQm!W= z(~uyNE(xSkX@AmWi2`tth7~{-o=@;Y7G46_3P*9;WP?U=COvFZL&!XAlfh+Ixgkr! zir+^m96HAOAs$s+zYo3T{(7LC3Zu#q&!2dlD3LpUpDvtRem`D1vncxmKUjV$F9TEs zZO=F&T{X=tA`xc6mIf`oAZ>xGBu$1-y37H#`qpS-x^UJTO~R4pP`+>$l;rO(5js|2 z7@L684>WL^-&#wQKJr9GnowYwK7Up@mJ0PSN#`$$MFgyMHLDox`LeEASS25Do!&M=${uC|bML}B{!p?iIn6O=kx2cs2n6AN z%{GFbbyhvLP0F?~BNJwiKB+U=)1ETDYZ|$AUmcmJ%psH-N6wKl`Kln_ZPCxG?5ewD zRSN8?@aI#eF(%tp$t*#IZy%bM+`Q%)xrn zTJk)Dww<{LCGvi31hGe{@;-_D^;oA>RAv#LdvXWovmYQtW^eRE1pEd#OAH zuh(CB3M4+W(=ae4@A(f;hz_5)ee z@T=aC1)P}9Ff1uADQ}Rf&lM?%R27xfwc6YfLYd+I73nt+8r7?9w>YKrR-ieK>FH|3P#G$~b-#ApMu4=lvHf!|ny@)T9!x8^ zEmrI4c*PlFVA0Nu8_UR;VnVCASwBe<~k1nq4{> zc!=>YbgstEvBXG-`Ko0D<-OuUH>&d2^!$xwhyw5)N0OO9qp*sGN%klYKo!980QVM&M3!hHQ#!-%_nKto5y z;qRA%Ed90GOB`*tcCMrnmI_yW52VhS!-FP&^0Icy?`q?@D|ct`PMVSZm9o2JT2ST~ zj=2+_h$4%WTF5i3Ujj9GOqK>($E_)(z1Hou1zoB}1Uf*uB-JfFCCsg={O#|RWpH(+ zd=oRHytWYywX?<{mjIx?wr53Qk_EkUXVepqOTOutf%>z*kwKTQ3k)HhB+q#fW#(8L|Z5Qxp zqXVxKVxJktdvy5U{D*rY+IupbXf~1?YO3&BO;=zpd)_BbVNHMO>S@Utifv5{e_Crp zLH=17#B8kTTDW43C230Ap1-M3DN6=0S#&%M`{;NtPP0ay#XgG<)oSR6@_<)IwZKY&f#Y+HP;rOW_NPK^C|;NDWq<3` zOZi`zceJ!0#fR3VZnE|s3`dnNRkv!!oh?NJtxYY>zMQcsIkm5Mx5}M<$@r*yK3-G3&36MWNMx^B4H%m!bGLCm0stwv`nlEr>y*! zz})-Lx5fc~u77T#WPwdMfSF~4B3>%IL5C!4}rf1fUC4{L1 zx_eXKBO@_0oKM52JvLoLJ=eY`X=6Ghb%1YTFcbFi5G(%< zr=@M6HEk%Lgm7Y+HGYWh%iDS9r(-<+fK%TolKR6LMIo zw&sSBdQ@&SHIG@+8Ug>jO?cOD=ozq<>}-k+fS1#w%VDrc-^3pOi=~iUdL&q=1V<3ax;yw9vyYMbk~~mzHw(SA zr`>#`k*#)B`*gI9VX5rdv=K*7?V8JJASPxQ3@7PTp?Tg@wm34*yDJhXD^wqL8FOK+ z2bqsRNz3;Y1VWqvBLi5!e@bF8>(TpyrccHb5Gtto6sugPq@-d%(0sV#6OUhM?w7uh zATWxe9j=x)Km9f!a<3_-v{L11725j#9Y;mQ$5eJ%w7!InR7d^U`V0*!{+piva8y>j zPEf0C;S`SC(+MAW%+g_dgWr= zqE)cLPKs{sTvXWU8&KQgUH^yay>`{|Cu3kL(O-4dRfmMd!H#xbNYh~=EuR>USd)DS zHR){?gi z^rZC;r-3C~%hm?WOl8$1)6Bon+bBtRPxI=QoW_=0_S*J#pV#F#TU~`EdQP0<<|^$Z zbUP~qv$y$Π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㵋=ZaA=!cwVVz)LsU!(} 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%0Dh(%U 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μ`BQV_m0+yJ0o+8@%At&uGFPf^n#uD5Qo&? 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�F`7+wgePRFy$~LFoR%{=ziN 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 From 5367c271f9840ea25fe6ac9be8c3ce3419552e7b Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Sun, 10 Nov 2013 23:35:22 +0100 Subject: [PATCH 02/69] Fix for not initializing mExpandedViews. Fixes #69 --- .../ExpandableListItemAdapter.java | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java b/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java index f10cc13a..4796aaf0 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java @@ -54,6 +54,7 @@ protected ExpandableListItemAdapter(Context context, List items) { mContentParentResId = DEFAULTCONTENTPARENTRESID; mVisibleIds = new ArrayList(); + mExpandedViews = new HashMap(); } /** @@ -83,19 +84,27 @@ protected ExpandableListItemAdapter(Context context, int layoutResId, int titleP } /** - * Set the resource id of the child {@link View} contained in the View returned by - * {@link #getTitleView(int, View, ViewGroup)} that will be the actuator of the expand / collapse animations.
- * If there is no View in the title View with given resId, a {@link NullPointerException} is thrown.

- * Default behavior: the whole title View acts as the actuator. - * @param resId the resource id. + * Set the resource id of the child {@link View} contained in the View + * returned by {@link #getTitleView(int, View, ViewGroup)} that will be the + * actuator of the expand / collapse animations.
+ * If there is no View in the title View with given resId, a + * {@link NullPointerException} is thrown.

Default behavior: the whole + * title View acts as the actuator. + * + * @param resId + * the resource id. */ public void setActionViewResId(int resId) { mActionViewResId = resId; } /** - * Set the maximum number of items allowed to be expanded. When the (limit+1)th item is expanded, the first expanded item will collapse. - * @param limit the maximum number of items allowed to be expanded. Use <= 0 for no limit. + * Set the maximum number of items allowed to be expanded. When the + * (limit+1)th item is expanded, the first expanded item will collapse. + * + * @param limit + * the maximum number of items allowed to be expanded. Use <= 0 + * for no limit. */ public void setLimit(int limit) { mLimit = limit; @@ -172,10 +181,11 @@ private ViewGroup createView(ViewGroup parent) { } /** - * Get a View that displays the title of the data at the specified position - * in the data set. You can either create a View manually or inflate it from - * an XML layout file. When the View is inflated, the parent View (GridView, - * ListView...) will apply default layout parameters unless you use + * Get a View that displays the title of the data at the specified + * position in the data set. You can either create a View manually or + * inflate it from an XML layout file. When the View is inflated, the parent + * View (GridView, ListView...) will apply default layout parameters unless + * you use * {@link android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean)} * to specify a root view and to prevent attachment to the root. * From 1d4b9b27acb1268f41d4729125967d6215ad066b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brais=20Gab=C3=ADn?= Date: Wed, 13 Nov 2013 19:47:57 +0100 Subject: [PATCH 03/69] Add method to let to know if a position is expanded --- .../itemmanipulation/ExpandableListItemAdapter.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java b/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java index f10cc13a..ae7bd8c4 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java @@ -218,6 +218,17 @@ private ViewGroup createView(ViewGroup parent) { */ public abstract View getContentView(int position, View convertView, ViewGroup parent); + /** + * Indicates if the item at the specified position is expanded. + * + * @param position + * Index of the view whose state we want. + * @return true if the view is expanded, false otherwise. + */ + public boolean isExpanded(int position) { + return mVisibleIds.contains(getItemId(position)); + } + private static class ViewHolder { ViewGroup titleParent; ViewGroup contentParent; From 2227010b209164d25127a10e77f6f4f49ef652df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brais=20Gab=C3=ADn?= Date: Thu, 14 Nov 2013 13:43:20 +0100 Subject: [PATCH 04/69] Fix accidental calls to setAdapter(ListAdapter) --- .../com/haarman/listviewanimations/view/DynamicListView.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/library/src/com/haarman/listviewanimations/view/DynamicListView.java b/library/src/com/haarman/listviewanimations/view/DynamicListView.java index 20ec2093..ff15de14 100644 --- a/library/src/com/haarman/listviewanimations/view/DynamicListView.java +++ b/library/src/com/haarman/listviewanimations/view/DynamicListView.java @@ -148,7 +148,10 @@ public void setAdapter(BaseAdapter adapter) { * @deprecated use #setAdapter(BaseAdapter) instead. */ public void setAdapter(ListAdapter adapter) { - throw new IllegalArgumentException("DynamicListView needs a BaseAdapter!"); + if (!(adapter instanceof BaseAdapter)) { + throw new IllegalArgumentException("DynamicListView needs a BaseAdapter!"); + } + super.setAdapter(adapter); } /** From 457db2c5fd94c9d02dc38f9a973ebd5b1bbbf8a6 Mon Sep 17 00:00:00 2001 From: Andrea Bellitto Date: Thu, 14 Nov 2013 19:10:56 +0100 Subject: [PATCH 05/69] Update ExpandableListItemAdapter.java Added methods to get TitleView and ContentView of a specified position. --- .../ExpandableListItemAdapter.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java b/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java index f10cc13a..b5acb0bb 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java @@ -35,6 +35,7 @@ public abstract class ExpandableListItemAdapter extends ArrayAdapter { private int mLimit; private Map mExpandedViews; + private static SparseArray mViews; /** * Creates a new ExpandableListItemAdapter with an empty list. @@ -54,6 +55,7 @@ protected ExpandableListItemAdapter(Context context, List items) { mContentParentResId = DEFAULTCONTENTPARENTRESID; mVisibleIds = new ArrayList(); + mViews = new SparseArray(); } /** @@ -155,6 +157,8 @@ public View getView(int position, View convertView, ViewGroup parent) { ViewGroup.LayoutParams layoutParams = viewHolder.contentParent.getLayoutParams(); layoutParams.height = LayoutParams.WRAP_CONTENT; viewHolder.contentParent.setLayoutParams(layoutParams); + + mViews.put(position, viewHolder); return view; } @@ -224,6 +228,28 @@ private static class ViewHolder { View titleView; View contentView; } + + /** + * Return the content view at the specified position. + * + * @param position + * Index of the view we want. + * @return the view if it exist, null otherwise. + */ + public static View getContentView(int position) { + return mViews.get(position).contentView; + } + + /** + * Return the title view at the specified position. + * + * @param position + * Index of the view we want. + * @return the view if it exist, null otherwise. + */ + public static View getTitleView(int position) { + return mViews.get(position).titleView; + } private static class RootView extends LinearLayout { From 6961a7afde616109d0f0296ed9f33fabf88d5943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brais=20Gab=C3=ADn?= Date: Fri, 15 Nov 2013 17:52:02 +0100 Subject: [PATCH 06/69] Reference to ListView in ExpandableListItemAdapter --- .../listviewanimations/BaseAdapterDecorator.java | 7 ++++--- .../haarman/listviewanimations/ListViewSetter.java | 8 ++++++++ .../itemmanipulation/ExpandableListItemAdapter.java | 11 ++++++++++- 3 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 library/src/com/haarman/listviewanimations/ListViewSetter.java diff --git a/library/src/com/haarman/listviewanimations/BaseAdapterDecorator.java b/library/src/com/haarman/listviewanimations/BaseAdapterDecorator.java index c0a0285f..a905eba6 100644 --- a/library/src/com/haarman/listviewanimations/BaseAdapterDecorator.java +++ b/library/src/com/haarman/listviewanimations/BaseAdapterDecorator.java @@ -32,7 +32,7 @@ * Classes extending this class can override methods and provide extra * functionality before or after calling the super method. */ -public abstract class BaseAdapterDecorator extends BaseAdapter implements SectionIndexer, DynamicListView.Swappable { +public abstract class BaseAdapterDecorator extends BaseAdapter implements SectionIndexer, DynamicListView.Swappable, ListViewSetter { protected final BaseAdapter mDecoratedBaseAdapter; @@ -45,11 +45,12 @@ public BaseAdapterDecorator(BaseAdapter baseAdapter) { mDecoratedBaseAdapter = baseAdapter; } + @Override public void setAbsListView(AbsListView listView) { mListView = listView; - if (mDecoratedBaseAdapter instanceof BaseAdapterDecorator) { - ((BaseAdapterDecorator) mDecoratedBaseAdapter).setAbsListView(listView); + if (mDecoratedBaseAdapter instanceof ListViewSetter) { + ((ListViewSetter) mDecoratedBaseAdapter).setAbsListView(listView); } if (mListView instanceof DynamicListView) { diff --git a/library/src/com/haarman/listviewanimations/ListViewSetter.java b/library/src/com/haarman/listviewanimations/ListViewSetter.java new file mode 100644 index 00000000..b0eb2b1b --- /dev/null +++ b/library/src/com/haarman/listviewanimations/ListViewSetter.java @@ -0,0 +1,8 @@ +package com.haarman.listviewanimations; + +import android.widget.AbsListView; + +public interface ListViewSetter { + + void setAbsListView(AbsListView listView); +} diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java b/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java index f10cc13a..4e3627bd 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java @@ -10,10 +10,12 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; +import android.widget.AbsListView; import android.widget.FrameLayout; import android.widget.LinearLayout; import com.haarman.listviewanimations.ArrayAdapter; +import com.haarman.listviewanimations.ListViewSetter; import com.nineoldandroids.animation.Animator; import com.nineoldandroids.animation.AnimatorListenerAdapter; import com.nineoldandroids.animation.ValueAnimator; @@ -21,7 +23,7 @@ /** * An {@link ArrayAdapter} which allows items to be expanded using an animation. */ -public abstract class ExpandableListItemAdapter extends ArrayAdapter { +public abstract class ExpandableListItemAdapter extends ArrayAdapter implements ListViewSetter { private static final int DEFAULTTITLEPARENTRESID = 10000; private static final int DEFAULTCONTENTPARENTRESID = 10001; @@ -36,6 +38,8 @@ public abstract class ExpandableListItemAdapter extends ArrayAdapter { private int mLimit; private Map mExpandedViews; + private AbsListView mListView; + /** * Creates a new ExpandableListItemAdapter with an empty list. */ @@ -82,6 +86,11 @@ protected ExpandableListItemAdapter(Context context, int layoutResId, int titleP mExpandedViews = new HashMap(); } + @Override + public void setAbsListView(AbsListView listView) { + mListView = listView; + } + /** * Set the resource id of the child {@link View} contained in the View returned by * {@link #getTitleView(int, View, ViewGroup)} that will be the actuator of the expand / collapse animations.
From 6fa3b205e626b022f232190f7cb204c7c95dd3a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brais=20Gab=C3=ADn?= Date: Fri, 15 Nov 2013 18:32:05 +0100 Subject: [PATCH 07/69] Scroll when the expand view isn't visible --- .../ExpandableListItemAdapter.java | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java b/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java index 4e3627bd..452cf5b5 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java @@ -285,7 +285,7 @@ public void onClick(View view) { mVisibleIds.remove(mContentParent.getTag()); mExpandedViews.remove(mContentParent.getTag()); } else { - ExpandCollapseHelper.animateExpanding(mContentParent); + ExpandCollapseHelper.animateExpanding(mContentParent, mListView); mVisibleIds.add((Long) mContentParent.getTag()); if (mLimit > 0) { @@ -312,7 +312,7 @@ public void onAnimationEnd(Animator animator) { animator.start(); } - public static void animateExpanding(final View view) { + public static void animateExpanding(final View view, final AbsListView listView) { view.setVisibility(View.VISIBLE); final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); @@ -320,9 +320,33 @@ public static void animateExpanding(final View view) { view.measure(widthSpec, heightSpec); ValueAnimator animator = createHeightAnimator(view, 0, view.getMeasuredHeight()); + animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + final int listViewHeight = listView.getHeight(); + final View v = findDirectChild(view, listView); + + @Override + public void onAnimationUpdate(ValueAnimator valueAnimator) { + final int bottom = v.getBottom(); + if (bottom > listViewHeight) { + final int top = v.getTop(); + if (top > 0) { + listView.smoothScrollBy(Math.min(bottom - listViewHeight, top), 0); + } + } + } + }); animator.start(); } + private static View findDirectChild(View view, AbsListView listView) { + View parent = (View) view.getParent(); + while (parent != listView) { + view = parent; + parent = (View) view.getParent(); + } + return view; + } + public static ValueAnimator createHeightAnimator(final View view, int start, int end) { ValueAnimator animator = ValueAnimator.ofInt(start, end); animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { From bf512600bb8ad719981a919e985b2deea341898b Mon Sep 17 00:00:00 2001 From: Anton Spaans Date: Wed, 20 Nov 2013 20:16:54 -0500 Subject: [PATCH 08/69] Touch Child was never 'activated'. (cherry picked from commit 91b0ce2) (cherry picked from commit e7c4550) --- .../SwipeDismissListViewTouchListener.java | 2 +- .../ContextualUndoListViewTouchListener.java | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/SwipeDismissListViewTouchListener.java b/library/src/com/haarman/listviewanimations/itemmanipulation/SwipeDismissListViewTouchListener.java index 18efd4c1..38855f0a 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/SwipeDismissListViewTouchListener.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/SwipeDismissListViewTouchListener.java @@ -204,7 +204,7 @@ private boolean handleDownEvent(MotionEvent motionEvent) { final View childView = downView.findViewById(mResIdOfTouchChild); if (childView != null) { final Rect childRect = getChildViewRect(mListView, childView); - if (childRect.contains((int) mDownX, (int) mDownY)) { + if (childRect.contains((int)motionEvent.getX(), (int)motionEvent.getY())) { mTouchChildTouched = true; mListView.requestDisallowInterceptTouchEvent(true); } diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoListViewTouchListener.java b/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoListViewTouchListener.java index 8e2da56e..4d2f2b19 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoListViewTouchListener.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoListViewTouchListener.java @@ -150,7 +150,7 @@ public boolean onTouch(View view, MotionEvent motionEvent) { final View childView = mDownView.findViewById(mResIdOfTouchChild); if (childView != null) { final Rect childRect = getChildViewRect(mListView, childView); - if (childRect.contains((int) mDownX, (int) mDownY)) { + if (childRect.contains((int)motionEvent.getX(), (int)motionEvent.getY())) { mTouchChildTouched = true; mListView.requestDisallowInterceptTouchEvent(true); } @@ -167,8 +167,13 @@ public boolean onTouch(View view, MotionEvent motionEvent) { mDownY = motionEvent.getRawY(); mDownPosition = mListView.getPositionForView(mDownView); - mVelocityTracker = VelocityTracker.obtain(); - mVelocityTracker.addMovement(motionEvent); + if (mTouchChildTouched) { + mVelocityTracker = VelocityTracker.obtain(); + mVelocityTracker.addMovement(motionEvent); + } + else { + mVelocityTracker = null; + } } view.onTouchEvent(motionEvent); return true; From 10ce90952940be8699f805977a6c68264a0a37d5 Mon Sep 17 00:00:00 2001 From: Anton Spaans Date: Thu, 21 Nov 2013 10:55:14 -0500 Subject: [PATCH 09/69] The 'Current Removed View' was never permanently removed (Android 4.3) The 'Current Removed View' was assigned in the Adapter's getView() method. However, the parent of this view was never set. Instead, items from the listview's 'activeViews' list were used instead and they never went through the 'getView()' for measuring again. Changed this by adding an onHierarchyChangeListener and picking up in the 'Current Removed View' in the 'onChildViewAdded' method. (cherry picked from commit dc8ec04) (cherry picked from commit 215c822) --- .../contextualundo/ContextualUndoAdapter.java | 43 ++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java b/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java index 6450a0da..901a308c 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java @@ -130,23 +130,28 @@ public ContextualUndoAdapter(BaseAdapter baseAdapter, int undoLayoutResId, int u @Override public final View getView(int position, View convertView, ViewGroup parent) { + final ViewHolder vh; ContextualUndoView contextualUndoView = (ContextualUndoView) convertView; if (contextualUndoView == null) { contextualUndoView = new ContextualUndoView(parent.getContext(), mUndoLayoutId, mCountDownTextViewResId); contextualUndoView.findViewById(mUndoActionId).setOnClickListener(new UndoListener(contextualUndoView)); + vh = new ViewHolder(contextualUndoView); } + else { + vh = ViewHolder.getViewHolder(contextualUndoView); + } View contentView = super.getView(position, contextualUndoView.getContentView(), contextualUndoView); contextualUndoView.updateContentView(contentView); long itemId = getItemId(position); + vh.mItemId = itemId; if (itemId == mCurrentRemovedId) { contextualUndoView.displayUndo(); - mCurrentRemovedView = contextualUndoView; long millisLeft = mAutoDeleteDelayMillis - (System.currentTimeMillis() - mDismissStartMillis); if (mCountDownFormatter != null) { - mCurrentRemovedView.updateCountDownTimer(mCountDownFormatter.getCountDownString(millisLeft)); + contextualUndoView.updateCountDownTimer(mCountDownFormatter.getCountDownString(millisLeft)); } } else { contextualUndoView.displayContentView(); @@ -165,6 +170,7 @@ public void setAbsListView(AbsListView listView) { listView.setOnTouchListener(mContextualUndoListViewTouchListener); listView.setOnScrollListener(mContextualUndoListViewTouchListener.makeScrollListener()); listView.setRecyclerListener(new RecycleViewListener()); + listView.setOnHierarchyChangeListener(new HierarchyChangeListener()); } @Override @@ -426,4 +432,37 @@ public void onMovedToScrapHeap(View view) { } } } + + private class HierarchyChangeListener implements ViewGroup.OnHierarchyChangeListener { + @Override + public void onChildViewAdded(View parent, View child) { + final ViewHolder vh = ViewHolder.getViewHolder(child); + if ((vh != null) && (mCurrentRemovedId > 0) && (vh.mItemId == mCurrentRemovedId)) { + mCurrentRemovedView = (ContextualUndoView)child; + } + } + + @Override + public void onChildViewRemoved(View parent, View child) { + final ViewHolder vh = ViewHolder.getViewHolder(child); + if ((vh != null) && (mCurrentRemovedId > 0) && (vh.mItemId == mCurrentRemovedId)) { + mCurrentRemovedView = null; + } + } + } + + private static class ViewHolder { + final ContextualUndoView mContextualUndoView; + + long mItemId; + + static ViewHolder getViewHolder(View view) { + return (ViewHolder)view.getTag(); + } + + ViewHolder(ContextualUndoView contextualUndoView) { + mContextualUndoView = contextualUndoView; + mContextualUndoView.setTag(this); + } + } } \ No newline at end of file From d440145f6640c208c8267f542211b1e0eee2722a Mon Sep 17 00:00:00 2001 From: Anton Spaans Date: Wed, 20 Nov 2013 20:16:54 -0500 Subject: [PATCH 10/69] Making the content and undo views INVISIBLE instead of GONE prevents some strange layout issues. If the 'content' or the 'undo' view is made GONE, the other view's layout changes because views that are GONE are never part of any measuring. E.g. swiping away the 'content' view can make the entire ContextualIUndoView less high if the 'undo' view has a different measurement that yields a lower height than the 'content's height. When these two views are made 'INVISIBLE' instead, the measurement of the ContextualUndoView never changes before, during or after a swipe and undo action. Also, the animation seems to be smoother when using INVISIBLE instead of GONE. (cherry picked from commit 779de24) --- .../itemmanipulation/contextualundo/ContextualUndoView.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoView.java b/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoView.java index e435a057..4baa6a0d 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoView.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoView.java @@ -76,12 +76,12 @@ public boolean isContentDisplayed() { public void displayUndo() { updateCountDownTimer(""); - mContentView.setVisibility(View.GONE); + mContentView.setVisibility(View.INVISIBLE); mUndoView.setVisibility(View.VISIBLE); } public void displayContentView() { mContentView.setVisibility(View.VISIBLE); - mUndoView.setVisibility(View.GONE); + mUndoView.setVisibility(View.INVISIBLE); } } \ No newline at end of file From fdec7b019849bdede730a19f740054c050c754d4 Mon Sep 17 00:00:00 2001 From: Anton Spaans Date: Wed, 20 Nov 2013 20:16:54 -0500 Subject: [PATCH 11/69] Allow users of ContextualUndoAdapters to forcefully remove any pending item. (cherry picked from commit e17bb2a) --- .../contextualundo/ContextualUndoAdapter.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java b/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java index 901a308c..8e58b522 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java @@ -304,6 +304,21 @@ public void setTouchChild(int childResId) { } } + /** + * Removes any item that was swiped away. + * @param animate If true, animates the removal (collapsing the item). + * If false, removes item immediately without animation. + */ + public void removePendingItem(boolean animate) { + if (animate) { + removePreviousContextualUndoIfPresent(); + } + else if (mCurrentRemovedView != null) { + new RemoveViewAnimatorListenerAdapter(mCurrentRemovedView).onAnimationEnd(null); + clearCurrentRemovedView(); + } + } + /** * A callback interface which is used to notify when items should be removed from the collection. */ From 3a6a8a1110b09018d8c5289c8eeeaa7664356b99 Mon Sep 17 00:00:00 2001 From: Anton Spaans Date: Wed, 20 Nov 2013 20:16:54 -0500 Subject: [PATCH 12/69] Fix issues related to recycling ContextualUndoViews as list-items related to animations. (cherry picked from commit ff921c2) --- .../contextualundo/ContextualUndoAdapter.java | 158 ++++++++++++------ .../ContextualUndoListViewTouchListener.java | 6 +- 2 files changed, 114 insertions(+), 50 deletions(-) diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java b/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java index 8e58b522..15fb7966 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java @@ -16,13 +16,6 @@ */ package com.haarman.listviewanimations.itemmanipulation.contextualundo; -import static com.nineoldandroids.view.ViewHelper.setAlpha; -import static com.nineoldandroids.view.ViewHelper.setTranslationX; -import static com.nineoldandroids.view.ViewPropertyAnimator.animate; - -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - import android.app.Activity; import android.os.Bundle; import android.os.Handler; @@ -40,6 +33,10 @@ import com.nineoldandroids.animation.ValueAnimator; import com.nineoldandroids.view.ViewHelper; +import static com.nineoldandroids.view.ViewHelper.setAlpha; +import static com.nineoldandroids.view.ViewHelper.setTranslationX; +import static com.nineoldandroids.view.ViewPropertyAnimator.animate; + /** * Warning: a stable id for each item in the adapter is required. The decorated * adapter should not try to cast convertView to a particular view. The @@ -65,8 +62,6 @@ public class ContextualUndoAdapter extends BaseAdapterDecorator implements Conte private ContextualUndoView mCurrentRemovedView; private long mCurrentRemovedId; - private Map mActiveAnimators = new ConcurrentHashMap(); - private Handler mHandler; private CountDownRunnable mCountDownRunnable; @@ -169,14 +164,18 @@ public void setAbsListView(AbsListView listView) { mContextualUndoListViewTouchListener.setTouchChild(getTouchChild()); listView.setOnTouchListener(mContextualUndoListViewTouchListener); listView.setOnScrollListener(mContextualUndoListViewTouchListener.makeScrollListener()); - listView.setRecyclerListener(new RecycleViewListener()); listView.setOnHierarchyChangeListener(new HierarchyChangeListener()); } @Override - public void onViewSwiped(View dismissView, int dismissPosition) { - ContextualUndoView contextualUndoView = (ContextualUndoView) dismissView; - if (contextualUndoView.isContentDisplayed()) { + public void onViewSwiped(long dismissViewItemId, int dismissPosition) { + ContextualUndoView contextualUndoView = getContextualUndoView(dismissViewItemId); + if (contextualUndoView == null) { + removePreviousContextualUndoIfPresent(); + mCurrentRemovedView = null; + mCurrentRemovedId = dismissViewItemId; + } + else if (contextualUndoView.isContentDisplayed()) { restoreViewPosition(contextualUndoView); contextualUndoView.displayUndo(); removePreviousContextualUndoIfPresent(); @@ -190,7 +189,24 @@ public void onViewSwiped(View dismissView, int dismissPosition) { } } - private void startAutoDeleteTimer() { + private ContextualUndoView getContextualUndoView(long dismissViewItemId) { + ContextualUndoView contextualUndoView = null; + + AbsListView listView = getAbsListView(); + int childCount = listView.getChildCount(); + for (int i = 0; i < childCount; i++) { + View child = listView.getChildAt(i); + if (child instanceof ContextualUndoView) { + ContextualUndoView listItem = (ContextualUndoView)child; + if (listItem.getItemId() == dismissViewItemId) { + contextualUndoView = listItem; + } + } + } + return contextualUndoView; + } + + private void startAutoDeleteTimer() { mHandler.removeCallbacks(mCountDownRunnable); if (mCountDownFormatter != null) { @@ -229,16 +245,52 @@ public void onListScrolled() { } private void performRemovalIfNecessary() { - if (mCurrentRemovedView != null && mCurrentRemovedView.getParent() != null) { - ValueAnimator animator = ValueAnimator.ofInt(mCurrentRemovedView.getHeight(), 1).setDuration(ANIMATION_DURATION); - animator.addListener(new RemoveViewAnimatorListenerAdapter(mCurrentRemovedView)); - animator.addUpdateListener(new RemoveViewAnimatorUpdateListener(mCurrentRemovedView)); + if (mCurrentRemovedId == -1) { + return; + } + + ContextualUndoView currentRemovedView = getCurrentRemovedView(mCurrentRemovedView, mCurrentRemovedId); + if (currentRemovedView != null) { + ValueAnimator animator = ValueAnimator.ofInt(currentRemovedView.getHeight(), 1).setDuration(ANIMATION_DURATION); + + RemoveViewAnimatorListenerAdapter listener = new RemoveViewAnimatorListenerAdapter(currentRemovedView, mCurrentRemovedId); + RemoveViewAnimatorUpdateListener updateListener = new RemoveViewAnimatorUpdateListener(listener); + + ViewHolder.getViewHolder(currentRemovedView).mAnimator = animator; + + animator.addListener(listener); + animator.addUpdateListener(updateListener); animator.start(); - mActiveAnimators.put(mCurrentRemovedView, animator); - clearCurrentRemovedView(); } + else if (mDeleteItemCallback != null) { + // The hard way. + int position = -1; + int numItems = getCount(); + for (int i = 0; i < numItems; i++) { + long itemId = getItemId(i); + if (itemId == mCurrentRemovedId) { + position = i; + break; + } + } + + if (position >= 0) { + mDeleteItemCallback.deleteItem(position); + } + } + clearCurrentRemovedView(); } + private ContextualUndoView getCurrentRemovedView(ContextualUndoView currentRemovedView, long itemId) { + if ( (currentRemovedView == null) || + (currentRemovedView.getParent() == null) || + (currentRemovedView.getItemId() != itemId) || + (getAbsListView().getPositionForView(currentRemovedView) < 0)) { + currentRemovedView = getContextualUndoView(itemId); + } + return currentRemovedView; + } + /** * Set the DeleteItemCallback for this ContextualUndoAdapter. This is called when an item should be deleted from your collection. */ @@ -282,7 +334,7 @@ private void swipeView(final View view, final int dismissPosition) { @Override public void onAnimationEnd(Animator animator) { - onViewSwiped(view, dismissPosition); + onViewSwiped(((ContextualUndoView)view).getItemId(), dismissPosition); } }); animator.start(); @@ -313,8 +365,8 @@ public void removePendingItem(boolean animate) { if (animate) { removePreviousContextualUndoIfPresent(); } - else if (mCurrentRemovedView != null) { - new RemoveViewAnimatorListenerAdapter(mCurrentRemovedView).onAnimationEnd(null); + else if ((mCurrentRemovedView != null) || (mCurrentRemovedId >= 0)) { + new RemoveViewAnimatorListenerAdapter(mCurrentRemovedView, mCurrentRemovedId).onAnimationEnd(null); clearCurrentRemovedView(); } } @@ -362,20 +414,25 @@ public void run() { private class RemoveViewAnimatorListenerAdapter extends AnimatorListenerAdapter { - private final View mDismissView; + private ContextualUndoView mDismissView; + private final long mDismissViewId; private final int mOriginalHeight; - public RemoveViewAnimatorListenerAdapter(View dismissView) { + public RemoveViewAnimatorListenerAdapter(ContextualUndoView dismissView, long dismissViewId) { mDismissView = dismissView; + mDismissViewId = dismissViewId; mOriginalHeight = dismissView.getHeight(); } - @Override + @Override public void onAnimationEnd(Animator animation) { - mActiveAnimators.remove(mDismissView); - restoreViewPosition(mDismissView); - restoreViewDimension(mDismissView); - deleteCurrentItem(); + mDismissView = getViewBeingAnimated(animation); + + ViewHolder.getViewHolder(mDismissView).mAnimator = null; + + restoreViewPosition(mDismissView); + restoreViewDimension(mDismissView); + deleteCurrentItem(); } private void restoreViewDimension(View view) { @@ -386,7 +443,8 @@ private void restoreViewDimension(View view) { } private void deleteCurrentItem() { - int position = getAbsListView().getPositionForView(mDismissView); + mDismissView = getCurrentRemovedView(mDismissView, mDismissViewId); + int position = getAbsListView().getPositionForView(mDismissView); if (getAbsListView() instanceof ListView) { position -= ((ListView) getAbsListView()).getHeaderViewsCount(); @@ -394,22 +452,37 @@ private void deleteCurrentItem() { mDeleteItemCallback.deleteItem(position); } + + private ContextualUndoView getViewBeingAnimated(Animator animator) { + ContextualUndoView newDismissView = getCurrentRemovedView(mDismissView, mDismissViewId); + if (newDismissView != mDismissView) { + ViewHolder.getViewHolder(mDismissView).mAnimator = null; + restoreViewPosition(mDismissView); + restoreViewDimension(mDismissView); + + mDismissView = newDismissView; + ViewHolder.getViewHolder(mDismissView).mAnimator = animator; + } + return mDismissView; + } } private class RemoveViewAnimatorUpdateListener implements ValueAnimator.AnimatorUpdateListener { - private final View mDismissView; + final RemoveViewAnimatorListenerAdapter mParentAdapter; private final ViewGroup.LayoutParams mLayoutParams; - public RemoveViewAnimatorUpdateListener(View dismissView) { - mDismissView = dismissView; - mLayoutParams = dismissView.getLayoutParams(); + public RemoveViewAnimatorUpdateListener(RemoveViewAnimatorListenerAdapter parentAdapter) { + mParentAdapter = parentAdapter; + mLayoutParams = parentAdapter.mDismissView.getLayoutParams(); } @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { - mLayoutParams.height = (Integer) valueAnimator.getAnimatedValue(); - mDismissView.setLayoutParams(mLayoutParams); + ContextualUndoView dismissView = mParentAdapter.getViewBeingAnimated(valueAnimator); + + mLayoutParams.height = (Integer) valueAnimator.getAnimatedValue(); + dismissView.setLayoutParams(mLayoutParams); } } @@ -438,16 +511,6 @@ private void animateViewComingBack() { } } - private class RecycleViewListener implements AbsListView.RecyclerListener { - @Override - public void onMovedToScrapHeap(View view) { - Animator animator = mActiveAnimators.get(view); - if (animator != null) { - animator.cancel(); - } - } - } - private class HierarchyChangeListener implements ViewGroup.OnHierarchyChangeListener { @Override public void onChildViewAdded(View parent, View child) { @@ -470,6 +533,7 @@ private static class ViewHolder { final ContextualUndoView mContextualUndoView; long mItemId; + Animator mAnimator; static ViewHolder getViewHolder(View view) { return (ViewHolder)view.getTag(); diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoListViewTouchListener.java b/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoListViewTouchListener.java index 4d2f2b19..065fce5e 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoListViewTouchListener.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoListViewTouchListener.java @@ -69,7 +69,7 @@ public class ContextualUndoListViewTouchListener implements SwipeOnTouchListener public interface Callback { - void onViewSwiped(View dismissView, int dismissPosition); + void onViewSwiped(long dismissViewItemId, int dismissPosition); void onListScrolled(); } @@ -203,13 +203,13 @@ public boolean onTouch(View view, MotionEvent motionEvent) { } if (dismiss) { // dismiss - final View downView = mDownView; // mDownView gets none'd + final long itemId = ((ContextualUndoView)mDownView).getItemId(); // before animation ends final int downPosition = mDownPosition; animate(mDownView).translationX(dismissRight ? mViewWidth : -mViewWidth).alpha(0).setDuration(mAnimationTime).setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { - mCallback.onViewSwiped(downView, downPosition); + mCallback.onViewSwiped(itemId, downPosition); } }); } else { From 08daed8afb8da5836975c4b3919d63d95bcbd22b Mon Sep 17 00:00:00 2001 From: Anton Spaans Date: Wed, 20 Nov 2013 20:16:54 -0500 Subject: [PATCH 13/69] Fix issues related to recycling ContextualUndoViews as list-items related to animations. (cherry picked from commit f93da8a) --- .../contextualundo/ContextualUndoAdapter.java | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java b/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java index 15fb7966..1c1f5a61 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java @@ -256,31 +256,33 @@ private void performRemovalIfNecessary() { RemoveViewAnimatorListenerAdapter listener = new RemoveViewAnimatorListenerAdapter(currentRemovedView, mCurrentRemovedId); RemoveViewAnimatorUpdateListener updateListener = new RemoveViewAnimatorUpdateListener(listener); - ViewHolder.getViewHolder(currentRemovedView).mAnimator = animator; - animator.addListener(listener); animator.addUpdateListener(updateListener); animator.start(); } else if (mDeleteItemCallback != null) { // The hard way. - int position = -1; - int numItems = getCount(); - for (int i = 0; i < numItems; i++) { - long itemId = getItemId(i); - if (itemId == mCurrentRemovedId) { - position = i; - break; - } - } - - if (position >= 0) { - mDeleteItemCallback.deleteItem(position); - } + deleteItemGivenId(mCurrentRemovedId); } clearCurrentRemovedView(); } + private void deleteItemGivenId(long deleteItemId) { + int position = -1; + int numItems = getCount(); + for (int i = 0; i < numItems; i++) { + long itemId = getItemId(i); + if (itemId == deleteItemId) { + position = i; + break; + } + } + + if (position >= 0) { + mDeleteItemCallback.deleteItem(position); + } + } + private ContextualUndoView getCurrentRemovedView(ContextualUndoView currentRemovedView, long itemId) { if ( (currentRemovedView == null) || (currentRemovedView.getParent() == null) || @@ -427,12 +429,14 @@ public RemoveViewAnimatorListenerAdapter(ContextualUndoView dismissView, long di @Override public void onAnimationEnd(Animator animation) { mDismissView = getViewBeingAnimated(animation); - - ViewHolder.getViewHolder(mDismissView).mAnimator = null; + if (mDismissView == null) { + deleteItemGivenId(mDismissViewId); + return; + } restoreViewPosition(mDismissView); restoreViewDimension(mDismissView); - deleteCurrentItem(); + deleteCurrentItem(mDismissView); } private void restoreViewDimension(View view) { @@ -442,9 +446,8 @@ private void restoreViewDimension(View view) { view.setLayoutParams(lp); } - private void deleteCurrentItem() { - mDismissView = getCurrentRemovedView(mDismissView, mDismissViewId); - int position = getAbsListView().getPositionForView(mDismissView); + private void deleteCurrentItem(View view) { + int position = getAbsListView().getPositionForView(view); if (getAbsListView() instanceof ListView) { position -= ((ListView) getAbsListView()).getHeaderViewsCount(); @@ -456,12 +459,10 @@ private void deleteCurrentItem() { private ContextualUndoView getViewBeingAnimated(Animator animator) { ContextualUndoView newDismissView = getCurrentRemovedView(mDismissView, mDismissViewId); if (newDismissView != mDismissView) { - ViewHolder.getViewHolder(mDismissView).mAnimator = null; restoreViewPosition(mDismissView); restoreViewDimension(mDismissView); mDismissView = newDismissView; - ViewHolder.getViewHolder(mDismissView).mAnimator = animator; } return mDismissView; } @@ -480,9 +481,10 @@ public RemoveViewAnimatorUpdateListener(RemoveViewAnimatorListenerAdapter parent @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { ContextualUndoView dismissView = mParentAdapter.getViewBeingAnimated(valueAnimator); - - mLayoutParams.height = (Integer) valueAnimator.getAnimatedValue(); - dismissView.setLayoutParams(mLayoutParams); + if (dismissView != null) { + mLayoutParams.height = (Integer) valueAnimator.getAnimatedValue(); + dismissView.setLayoutParams(mLayoutParams); + } } } @@ -533,7 +535,6 @@ private static class ViewHolder { final ContextualUndoView mContextualUndoView; long mItemId; - Animator mAnimator; static ViewHolder getViewHolder(View view) { return (ViewHolder)view.getTag(); From 41089175d4805c4ac21fa7c712191c8c904251ba Mon Sep 17 00:00:00 2001 From: sambarboza Date: Wed, 27 Nov 2013 19:49:26 -0200 Subject: [PATCH 14/69] Added ItemMovedListener. Listener to get noticed after item is completely moved by drag and drop. --- .../DragAndDropActivity.java | 7 +++++++ .../itemmanipulation/ItemMovedListener.java | 16 ++++++++++++++++ .../listviewanimations/view/DynamicListView.java | 15 +++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 library/src/com/haarman/listviewanimations/itemmanipulation/ItemMovedListener.java diff --git a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java index 04092d4b..47b9e57e 100644 --- a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java +++ b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java @@ -6,6 +6,7 @@ import com.haarman.listviewanimations.ArrayAdapter; import com.haarman.listviewanimations.MyListActivity; import com.haarman.listviewanimations.R; +import com.haarman.listviewanimations.itemmanipulation.ItemMovedListener; import com.haarman.listviewanimations.swinginadapters.prepared.AlphaInAnimationAdapter; import com.haarman.listviewanimations.view.DynamicListView; @@ -28,5 +29,11 @@ protected void onCreate(Bundle savedInstanceState) { mListView.setAdapter(animAdapter); Toast.makeText(this, "Long press an item to start dragging", Toast.LENGTH_LONG).show(); + mListView.setItemMovedListener(new ItemMovedListener() { + @Override + public void onItemMoved(Object item, int newPosition) { + Toast.makeText(getApplicationContext(), item.toString() + " moved to position" + newPosition, Toast.LENGTH_LONG).show(); + } + }); } } diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/ItemMovedListener.java b/library/src/com/haarman/listviewanimations/itemmanipulation/ItemMovedListener.java new file mode 100644 index 00000000..ce47d4d8 --- /dev/null +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/ItemMovedListener.java @@ -0,0 +1,16 @@ +package com.haarman.listviewanimations.itemmanipulation; + +/** + * Created by sambarboza on 27/11/13. + * sambarbosaa@gmail.com + * Listener to get noticed when item is moved by drag and drop. + */ +public interface ItemMovedListener { + /** + * It's called after the item is finally dropped and moved. + * It's not called while the item is being dragged. + * @param item + * @param newPosition + */ + public void onItemMoved(Object item, int newPosition); +} diff --git a/library/src/com/haarman/listviewanimations/view/DynamicListView.java b/library/src/com/haarman/listviewanimations/view/DynamicListView.java index 20ec2093..e79d69ce 100644 --- a/library/src/com/haarman/listviewanimations/view/DynamicListView.java +++ b/library/src/com/haarman/listviewanimations/view/DynamicListView.java @@ -36,6 +36,7 @@ import android.widget.ListAdapter; import android.widget.ListView; +import com.haarman.listviewanimations.itemmanipulation.ItemMovedListener; import com.haarman.listviewanimations.itemmanipulation.SwipeOnTouchListener; import com.nineoldandroids.animation.Animator; import com.nineoldandroids.animation.AnimatorListenerAdapter; @@ -71,6 +72,9 @@ */ public class DynamicListView extends ListView { + private ItemMovedListener mItemMovedListener; + private int mLastMovedToIndex; + public interface OnHoverCellListener { public Drawable onHoverCellCreated(Drawable hoverCellDrawable); } @@ -499,6 +503,7 @@ public boolean onPreDraw() { } private void swapElements(int indexOne, int indexTwo) { + this.mLastMovedToIndex = indexTwo; ListAdapter adapter = getAdapter(); if (adapter instanceof HeaderViewListAdapter) { @@ -556,6 +561,9 @@ public void onAnimationEnd(Animator animation) { mHoverCell = null; setEnabled(true); invalidate(); + if (mItemMovedListener != null) { + mItemMovedListener.onItemMoved(getAdapter().getItem(mLastMovedToIndex), mLastMovedToIndex); + } } }); hoverViewAnimator.start(); @@ -730,6 +738,13 @@ public void checkAndHandleLastVisibleCellChange() { } }; + /** + * Set item moved listener + */ + public void setItemMovedListener(ItemMovedListener itemMovedListener) { + this.mItemMovedListener = itemMovedListener; + } + /** * Interface, usually implemented by a {@link com.haarman.listviewanimations.BaseAdapterDecorator}, * that indicates that it can swap the visual position of two list items. From 908225c98526d558b04d6460c278ffe1a813d916 Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Sun, 8 Dec 2013 15:22:25 +0100 Subject: [PATCH 15/69] Updated sdk/tools version --- .gitignore | 2 ++ build.gradle | 2 +- example/build.gradle | 4 ++-- library/build.gradle | 4 ++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index e0b45ef7..dba5cc47 100644 --- a/.gitignore +++ b/.gitignore @@ -74,3 +74,5 @@ example/proguard-project.txt *proguard-project.txt .gradle/ +gradle/* +gradlew* diff --git a/build.gradle b/build.gradle index de08a015..b5cb0952 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:0.6.1+' + classpath 'com.android.tools.build:gradle:0.6.+' } } diff --git a/example/build.gradle b/example/build.gradle index c4592a33..39245b84 100644 --- a/example/build.gradle +++ b/example/build.gradle @@ -7,8 +7,8 @@ dependencies { } android { - compileSdkVersion 18 - buildToolsVersion '18.0.1' + compileSdkVersion 19 + buildToolsVersion '19.0.0' sourceSets { main { diff --git a/library/build.gradle b/library/build.gradle index c8ebf2be..bfc8f6b7 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -6,8 +6,8 @@ dependencies { } android { - compileSdkVersion 18 - buildToolsVersion '18.0.1' + compileSdkVersion 19 + buildToolsVersion '19.0.0' sourceSets { main { From 4a1c1753942703b04314e302de866f1a7b1f1816 Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Sun, 8 Dec 2013 16:07:46 +0100 Subject: [PATCH 16/69] Maven preparations --- build.gradle | 10 ++++- gradle.properties | 14 +++++++ library/build.gradle | 9 +++++ library/gradle.properties | 3 ++ maven_push.gradle | 82 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 gradle.properties create mode 100644 library/gradle.properties create mode 100644 maven_push.gradle diff --git a/build.gradle b/build.gradle index b5cb0952..393982a1 100644 --- a/build.gradle +++ b/build.gradle @@ -8,8 +8,14 @@ buildscript { } } +def isReleaseBuild() { + println version + return version.contains("SNAPSHOT") == false +} + allprojects { - group = 'com.haarman.listviewanimations' + group = 'com.nhaarman.listviewanimations' + version = VERSION_NAME repositories { mavenCentral() @@ -19,3 +25,5 @@ allprojects { options.encoding = 'UTF-8' } } + +apply plugin: 'android-reporting' \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..7178c56d --- /dev/null +++ b/gradle.properties @@ -0,0 +1,14 @@ +VERSION_NAME=2.5.3-SNAPSHOT +VERSION_CODE=201312081 +GROUP=com.nhaarman.listviewanimations + +POM_DESCRIPTION=ListViewAnimations library +POM_URL=https://github.com/nhaarman/ListViewAnimations +POM_SCM_URL=https://github.com/nhaarman/ListViewAnimations +POM_SCM_CONNECTION=scm:git@github.com:nhaarman/ListViewAnimations.git +POM_SCM_DEV_CONNECTION=scm:git@github.com:nhaarman/ListViewAnimations.git +POM_LICENCE_NAME=The Apache Software License, Version 2.0 +POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt +POM_LICENCE_DIST=repo +POM_DEVELOPER_ID=nhaarman +POM_DEVELOPER_NAME=Niek Haarman \ No newline at end of file diff --git a/library/build.gradle b/library/build.gradle index bfc8f6b7..2f22adde 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -18,4 +18,13 @@ android { assets.srcDirs = ['assets'] } } + + defaultConfig { + minSdkVersion 8 + targetSdkVersion 19 + versionName project.VERSION_NAME + versionCode Integer.parseInt(project.VERSION_CODE) + } } + +apply from: '../maven_push.gradle' \ No newline at end of file diff --git a/library/gradle.properties b/library/gradle.properties new file mode 100644 index 00000000..f7d39113 --- /dev/null +++ b/library/gradle.properties @@ -0,0 +1,3 @@ +POM_NAME=ListViewAnimations Library +POM_ARTIFACT_ID=library +POM_PACKAGING=aar \ No newline at end of file diff --git a/maven_push.gradle b/maven_push.gradle new file mode 100644 index 00000000..ab35ba1c --- /dev/null +++ b/maven_push.gradle @@ -0,0 +1,82 @@ +apply plugin: 'maven' +apply plugin: 'signing' + +def sonatypeRepositoryUrl +if (isReleaseBuild()) { + println 'RELEASE BUILD' + sonatypeRepositoryUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/" +} else { + println 'DEBUG BUILD' + sonatypeRepositoryUrl = "https://oss.sonatype.org/content/repositories/snapshots/" +} + +afterEvaluate { project -> + uploadArchives { + repositories { + mavenDeployer { + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + + pom.artifactId = POM_ARTIFACT_ID + + repository(url: sonatypeRepositoryUrl) { + authentication(userName: nexusUsername, password: nexusPassword) + } + + pom.project { + name POM_NAME + packaging POM_PACKAGING + description POM_DESCRIPTION + url POM_URL + + scm { + url POM_SCM_URL + connection POM_SCM_CONNECTION + developerConnection POM_SCM_DEV_CONNECTION + } + + licenses { + license { + name POM_LICENCE_NAME + url POM_LICENCE_URL + distribution POM_LICENCE_DIST + } + } + + developers { + developer { + id POM_DEVELOPER_ID + name POM_DEVELOPER_NAME + } + } + } + } + } + } + + signing { + required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } + sign configurations.archives + } + + task androidJavadocs(type: Javadoc) { + source = android.sourceSets.main.allJava + } + + task androidJavadocsJar(type: Jar) { + classifier = 'javadoc' + //basename = artifact_id + from androidJavadocs.destinationDir + } + + task androidSourcesJar(type: Jar) { + classifier = 'sources' + //basename = artifact_id + from android.sourceSets.main.allSource + } + + artifacts { + //archives packageReleaseJar + archives androidSourcesJar + archives androidJavadocsJar + } +} \ No newline at end of file From c401f89f4096ab5603d9555085a52a86fe97464b Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Sun, 8 Dec 2013 16:33:08 +0100 Subject: [PATCH 17/69] maven stuff --- build.gradle | 12 +- gradle.properties | 14 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 49896 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 164 +++++++++++++++++++++++ gradlew.bat | 90 +++++++++++++ library/build.gradle | 13 +- library/gradle.properties | 3 + maven_push.gradle | 82 ++++++++++++ 9 files changed, 380 insertions(+), 4 deletions(-) create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 library/gradle.properties create mode 100644 maven_push.gradle diff --git a/build.gradle b/build.gradle index de08a015..393982a1 100644 --- a/build.gradle +++ b/build.gradle @@ -4,12 +4,18 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:0.6.1+' + classpath 'com.android.tools.build:gradle:0.6.+' } } +def isReleaseBuild() { + println version + return version.contains("SNAPSHOT") == false +} + allprojects { - group = 'com.haarman.listviewanimations' + group = 'com.nhaarman.listviewanimations' + version = VERSION_NAME repositories { mavenCentral() @@ -19,3 +25,5 @@ allprojects { options.encoding = 'UTF-8' } } + +apply plugin: 'android-reporting' \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..612c1e9d --- /dev/null +++ b/gradle.properties @@ -0,0 +1,14 @@ +VERSION_NAME=2.5.2 +VERSION_CODE=201312082 +GROUP=com.nhaarman.listviewanimations + +POM_DESCRIPTION=ListViewAnimations library +POM_URL=https://github.com/nhaarman/ListViewAnimations +POM_SCM_URL=https://github.com/nhaarman/ListViewAnimations +POM_SCM_CONNECTION=scm:git@github.com:nhaarman/ListViewAnimations.git +POM_SCM_DEV_CONNECTION=scm:git@github.com:nhaarman/ListViewAnimations.git +POM_LICENCE_NAME=The Apache Software License, Version 2.0 +POM_LICENCE_URL=http://www.apache.org/licenses/LICENSE-2.0.txt +POM_LICENCE_DIST=repo +POM_DEVELOPER_ID=nhaarman +POM_DEVELOPER_NAME=Niek Haarman \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8c0fb64a8698b08ecc4158d828ca593c4928e9dd GIT binary patch literal 49896 zcmagFb986H(k`5d^NVfUwr$(C?M#x1ZQHiZiEVpg+jrjgoQrerx!>1o_ul)D>ebz~ zs=Mmxr&>W81QY-S1PKWQ%N-;H^tS;2*XwVA`dej1RRn1z<;3VgfE4~kaG`A%QSPsR z#ovnZe+tS9%1MfeDyz`RirvdjPRK~p(#^q2(^5@O&NM19EHdvN-A&StN>0g6QA^VN z0Gx%Gq#PD$QMRFzmK+utjS^Y1F0e8&u&^=w5K<;4Rz|i3A=o|IKLY+g`iK6vfr9?+ z-`>gmU&i?FGSL5&F?TXFu`&Js6h;15QFkXp2M1H9|Eq~bpov-GU(uz%mH0n55wUl- zv#~ccAz`F5wlQ>e_KlJS3@{)B?^v*EQM=IxLa&76^y51a((wq|2-`qON>+4dLc{Oo z51}}o^Zen(oAjxDK7b++9_Yg`67p$bPo3~BCpGM7uAWmvIhWc5Gi+gQZ|Pwa-Gll@<1xmcPy z|NZmu6m)g5Ftu~BG&Xdxclw7Cij{xbBMBn-LMII#Slp`AElb&2^Hw+w>(3crLH!;I zN+Vk$D+wP1#^!MDCiad@vM>H#6+`Ct#~6VHL4lzmy;lSdk>`z6)=>Wh15Q2)dQtGqvn0vJU@+(B5{MUc*qs4!T+V=q=wy)<6$~ z!G>e_4dN@lGeF_$q9`Ju6Ncb*x?O7=l{anm7Eahuj_6lA{*#Gv*TaJclevPVbbVYu z(NY?5q+xxbO6%g1xF0r@Ix8fJ~u)VRUp`S%&rN$&e!Od`~s+64J z5*)*WSi*i{k%JjMSIN#X;jC{HG$-^iX+5f5BGOIHWAl*%15Z#!xntpk($-EGKCzKa zT7{siZ9;4TICsWQ$pu&wKZQTCvpI$Xvzwxoi+XkkpeE&&kFb!B?h2hi%^YlXt|-@5 zHJ~%AN!g_^tmn1?HSm^|gCE#!GRtK2(L{9pL#hp0xh zME}|DB>(5)`iE7CM)&_+S}-Bslc#@B5W4_+k4Cp$l>iVyg$KP>CN?SVGZ(&02>iZK zB<^HP$g$Lq*L$BWd?2(F?-MUbNWTJVQdW7$#8a|k_30#vHAD1Z{c#p;bETk0VnU5A zBgLe2HFJ3032$G<`m*OB!KM$*sdM20jm)It5OSru@tXpK5LT>#8)N!*skNu1$TpIw zufjjdp#lyH5bZ%|Iuo|iu9vG1HrIVWLH>278xo>aVBkPN3V$~!=KnlXQ4eDqS7%E% zQ!z^$Q$b^6Q)g#cLpwur(|<0gWHo6A6jc;n`t(V9T;LzTAU{IAu*uEQ%Ort1k+Kn+f_N`9|bxYC+~Z1 zCC1UCWv*Orx$_@ydv9mIe(liLfOr7mhbV@tKw{6)q^1DH1nmvZ0cj215R<~&I<4S| zgnr;9Cdjqpz#o8i0CQjtl`}{c*P)aSdH|abxGdrR)-3z+02-eX(k*B)Uqv6~^nh** z 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 00000000..8a0b282a --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/library/build.gradle b/library/build.gradle index c8ebf2be..2f22adde 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -6,8 +6,8 @@ dependencies { } android { - compileSdkVersion 18 - buildToolsVersion '18.0.1' + compileSdkVersion 19 + buildToolsVersion '19.0.0' sourceSets { main { @@ -18,4 +18,13 @@ android { assets.srcDirs = ['assets'] } } + + defaultConfig { + minSdkVersion 8 + targetSdkVersion 19 + versionName project.VERSION_NAME + versionCode Integer.parseInt(project.VERSION_CODE) + } } + +apply from: '../maven_push.gradle' \ No newline at end of file diff --git a/library/gradle.properties b/library/gradle.properties new file mode 100644 index 00000000..f7d39113 --- /dev/null +++ b/library/gradle.properties @@ -0,0 +1,3 @@ +POM_NAME=ListViewAnimations Library +POM_ARTIFACT_ID=library +POM_PACKAGING=aar \ No newline at end of file diff --git a/maven_push.gradle b/maven_push.gradle new file mode 100644 index 00000000..ab35ba1c --- /dev/null +++ b/maven_push.gradle @@ -0,0 +1,82 @@ +apply plugin: 'maven' +apply plugin: 'signing' + +def sonatypeRepositoryUrl +if (isReleaseBuild()) { + println 'RELEASE BUILD' + sonatypeRepositoryUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/" +} else { + println 'DEBUG BUILD' + sonatypeRepositoryUrl = "https://oss.sonatype.org/content/repositories/snapshots/" +} + +afterEvaluate { project -> + uploadArchives { + repositories { + mavenDeployer { + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + + pom.artifactId = POM_ARTIFACT_ID + + repository(url: sonatypeRepositoryUrl) { + authentication(userName: nexusUsername, password: nexusPassword) + } + + pom.project { + name POM_NAME + packaging POM_PACKAGING + description POM_DESCRIPTION + url POM_URL + + scm { + url POM_SCM_URL + connection POM_SCM_CONNECTION + developerConnection POM_SCM_DEV_CONNECTION + } + + licenses { + license { + name POM_LICENCE_NAME + url POM_LICENCE_URL + distribution POM_LICENCE_DIST + } + } + + developers { + developer { + id POM_DEVELOPER_ID + name POM_DEVELOPER_NAME + } + } + } + } + } + } + + signing { + required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } + sign configurations.archives + } + + task androidJavadocs(type: Javadoc) { + source = android.sourceSets.main.allJava + } + + task androidJavadocsJar(type: Jar) { + classifier = 'javadoc' + //basename = artifact_id + from androidJavadocs.destinationDir + } + + task androidSourcesJar(type: Jar) { + classifier = 'sources' + //basename = artifact_id + from android.sourceSets.main.allSource + } + + artifacts { + //archives packageReleaseJar + archives androidSourcesJar + archives androidJavadocsJar + } +} \ No newline at end of file From 797dc37310edcbd7cf67c536d69ae977a831efc8 Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Sun, 8 Dec 2013 17:32:49 +0100 Subject: [PATCH 18/69] Added methods for programmatically expand / collapse items: expand(int), collapse(int), toggle(int). Fixes #77. --- .../ExpandableListItemActivity.java | 246 +++--- .../ExpandableListItemAdapter.java | 830 +++++++++--------- 2 files changed, 566 insertions(+), 510 deletions(-) diff --git a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ExpandableListItemActivity.java b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ExpandableListItemActivity.java index 1ee45f86..5867c23e 100644 --- a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ExpandableListItemActivity.java +++ b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ExpandableListItemActivity.java @@ -1,11 +1,10 @@ package com.haarman.listviewanimations.itemmanipulationexamples; -import java.util.List; - import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; +import android.os.Handler; import android.support.v4.util.LruCache; import android.view.Menu; import android.view.MenuItem; @@ -20,123 +19,132 @@ import com.haarman.listviewanimations.itemmanipulation.ExpandableListItemAdapter; import com.haarman.listviewanimations.swinginadapters.prepared.AlphaInAnimationAdapter; +import java.util.List; + public class ExpandableListItemActivity extends MyListActivity { - private MyExpandableListItemAdapter mExpandableListItemAdapter; - private boolean mLimited; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - mExpandableListItemAdapter = new MyExpandableListItemAdapter(this, getItems()); - AlphaInAnimationAdapter alphaInAnimationAdapter = new AlphaInAnimationAdapter(mExpandableListItemAdapter); - alphaInAnimationAdapter.setAbsListView(getListView()); - alphaInAnimationAdapter.setInitialDelayMillis(500); - getListView().setAdapter(alphaInAnimationAdapter); - - Toast.makeText(this, R.string.explainexpand, Toast.LENGTH_LONG).show(); - } - - private static class MyExpandableListItemAdapter extends ExpandableListItemAdapter { - - private Context mContext; - private LruCache mMemoryCache; - - /** - * Creates a new ExpandableListItemAdapter with the specified list, or an empty list if - * items == null. - */ - private MyExpandableListItemAdapter(Context context, List items) { - super(context, R.layout.activity_expandablelistitem_card, R.id.activity_expandablelistitem_card_title, R.id.activity_expandablelistitem_card_content, items); - mContext = context; - - final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024); - - // Use 1/8th of the available memory for this memory cache. - final int cacheSize = maxMemory; - mMemoryCache = new LruCache(cacheSize) { - @Override - protected int sizeOf(Integer key, Bitmap bitmap) { - // The cache size will be measured in kilobytes rather than - // number of items. - return bitmap.getRowBytes() * bitmap.getHeight() / 1024; - } - }; - } - - @Override - public View getTitleView(int position, View convertView, ViewGroup parent) { - TextView tv = (TextView) convertView; - if (tv == null) { - tv = new TextView(mContext); - } - tv.setText(mContext.getString(R.string.expandorcollapsecard, getItem(position))); - return tv; - } - - @Override - public View getContentView(int position, View convertView, ViewGroup parent) { - ImageView imageView = (ImageView) convertView; - if (imageView == null) { - imageView = new ImageView(mContext); - imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); - } - - int imageResId; - switch (getItem(position) % 5) { - case 0: - imageResId = R.drawable.img_nature1; - break; - case 1: - imageResId = R.drawable.img_nature2; - break; - case 2: - imageResId = R.drawable.img_nature3; - break; - case 3: - imageResId = R.drawable.img_nature4; - break; - default: - imageResId = R.drawable.img_nature5; - } - - Bitmap bitmap = getBitmapFromMemCache(imageResId); - if (bitmap == null) { - bitmap = BitmapFactory.decodeResource(mContext.getResources(), imageResId); - addBitmapToMemoryCache(imageResId, bitmap); - } - imageView.setImageBitmap(bitmap); - - return imageView; - } - - private void addBitmapToMemoryCache(int key, Bitmap bitmap) { - if (getBitmapFromMemCache(key) == null) { - mMemoryCache.put(key, bitmap); - } - } - - private Bitmap getBitmapFromMemCache(int key) { - return mMemoryCache.get(key); - } - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.menu_expandablelistitem, menu); - return super.onCreateOptionsMenu(menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.menu_expandable_limit: - mLimited = !mLimited; - item.setChecked(mLimited); - mExpandableListItemAdapter.setLimit(mLimited ? 2 : 0); - return true; - } - return super.onOptionsItemSelected(item); - } + private MyExpandableListItemAdapter mExpandableListItemAdapter; + private boolean mLimited; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + mExpandableListItemAdapter = new MyExpandableListItemAdapter(this, getItems()); + AlphaInAnimationAdapter alphaInAnimationAdapter = new AlphaInAnimationAdapter(mExpandableListItemAdapter); + alphaInAnimationAdapter.setAbsListView(getListView()); + alphaInAnimationAdapter.setInitialDelayMillis(500); + getListView().setAdapter(alphaInAnimationAdapter); + + Toast.makeText(this, R.string.explainexpand, Toast.LENGTH_LONG).show(); + + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + mExpandableListItemAdapter.expand(3); + } + },5000); + } + + private static class MyExpandableListItemAdapter extends ExpandableListItemAdapter { + + private Context mContext; + private LruCache mMemoryCache; + + /** + * Creates a new ExpandableListItemAdapter with the specified list, or an empty list if + * items == null. + */ + private MyExpandableListItemAdapter(Context context, List items) { + super(context, R.layout.activity_expandablelistitem_card, R.id.activity_expandablelistitem_card_title, R.id.activity_expandablelistitem_card_content, items); + mContext = context; + + final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024); + + // Use 1/8th of the available memory for this memory cache. + final int cacheSize = maxMemory; + mMemoryCache = new LruCache(cacheSize) { + @Override + protected int sizeOf(Integer key, Bitmap bitmap) { + // The cache size will be measured in kilobytes rather than + // number of items. + return bitmap.getRowBytes() * bitmap.getHeight() / 1024; + } + }; + } + + @Override + public View getTitleView(int position, View convertView, ViewGroup parent) { + TextView tv = (TextView) convertView; + if (tv == null) { + tv = new TextView(mContext); + } + tv.setText(mContext.getString(R.string.expandorcollapsecard, getItem(position))); + return tv; + } + + @Override + public View getContentView(int position, View convertView, ViewGroup parent) { + ImageView imageView = (ImageView) convertView; + if (imageView == null) { + imageView = new ImageView(mContext); + imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); + } + + int imageResId; + switch (getItem(position) % 5) { + case 0: + imageResId = R.drawable.img_nature1; + break; + case 1: + imageResId = R.drawable.img_nature2; + break; + case 2: + imageResId = R.drawable.img_nature3; + break; + case 3: + imageResId = R.drawable.img_nature4; + break; + default: + imageResId = R.drawable.img_nature5; + } + + Bitmap bitmap = getBitmapFromMemCache(imageResId); + if (bitmap == null) { + bitmap = BitmapFactory.decodeResource(mContext.getResources(), imageResId); + addBitmapToMemoryCache(imageResId, bitmap); + } + imageView.setImageBitmap(bitmap); + + return imageView; + } + + private void addBitmapToMemoryCache(int key, Bitmap bitmap) { + if (getBitmapFromMemCache(key) == null) { + mMemoryCache.put(key, bitmap); + } + } + + private Bitmap getBitmapFromMemCache(int key) { + return mMemoryCache.get(key); + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.menu_expandablelistitem, menu); + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.menu_expandable_limit: + mLimited = !mLimited; + item.setChecked(mLimited); + mExpandableListItemAdapter.setLimit(mLimited ? 2 : 0); + return true; + } + return super.onOptionsItemSelected(item); + } } diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java b/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java index 64c0a97d..ef005f52 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java @@ -1,10 +1,5 @@ package com.haarman.listviewanimations.itemmanipulation; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import android.content.Context; import android.util.SparseArray; import android.view.LayoutInflater; @@ -21,395 +16,448 @@ import com.nineoldandroids.animation.AnimatorListenerAdapter; import com.nineoldandroids.animation.ValueAnimator; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * An {@link ArrayAdapter} which allows items to be expanded using an animation. */ public abstract class ExpandableListItemAdapter extends ArrayAdapter implements ListViewSetter { - private static final int DEFAULTTITLEPARENTRESID = 10000; - private static final int DEFAULTCONTENTPARENTRESID = 10001; - - private Context mContext; - private int mViewLayoutResId; - private int mTitleParentResId; - private int mContentParentResId; - private int mActionViewResId; - private List mVisibleIds; - - private int mLimit; - private Map mExpandedViews; - private SparseArray mViews; - - private AbsListView mListView; - - /** - * Creates a new ExpandableListItemAdapter with an empty list. - */ - protected ExpandableListItemAdapter(Context context) { - this(context, null); - } - - /** - * Creates a new {@link ExpandableListItemAdapter} with the specified list, - * or an empty list if items == null. - */ - protected ExpandableListItemAdapter(Context context, List items) { - super(items); - mContext = context; - mTitleParentResId = DEFAULTTITLEPARENTRESID; - mContentParentResId = DEFAULTCONTENTPARENTRESID; - - mVisibleIds = new ArrayList(); - mExpandedViews = new HashMap(); - mViews = new SparseArray(); - } - - /** - * Creates a new ExpandableListItemAdapter with an empty list. Uses given - * layout resource for the view; titleParentResId and contentParentResId - * should be identifiers for ViewGroups within that layout. - */ - protected ExpandableListItemAdapter(Context context, int layoutResId, int titleParentResId, int contentParentResId) { - this(context, layoutResId, titleParentResId, contentParentResId, null); - } - - /** - * Creates a new ExpandableListItemAdapter with the specified list, or an - * empty list if items == null. Uses given layout resource for the view; - * titleParentResId and contentParentResId should be identifiers for - * ViewGroups within that layout. - */ - protected ExpandableListItemAdapter(Context context, int layoutResId, int titleParentResId, int contentParentResId, List items) { - super(items); - mContext = context; - mViewLayoutResId = layoutResId; - mTitleParentResId = titleParentResId; - mContentParentResId = contentParentResId; - - mVisibleIds = new ArrayList(); - mExpandedViews = new HashMap(); - mViews = new SparseArray(); - } - - @Override - public void setAbsListView(AbsListView listView) { - mListView = listView; - } - - /** - * Set the resource id of the child {@link View} contained in the View - * returned by {@link #getTitleView(int, View, ViewGroup)} that will be the - * actuator of the expand / collapse animations.
- * If there is no View in the title View with given resId, a - * {@link NullPointerException} is thrown.

Default behavior: the whole - * title View acts as the actuator. - * - * @param resId - * the resource id. - */ - public void setActionViewResId(int resId) { - mActionViewResId = resId; - } - - /** - * Set the maximum number of items allowed to be expanded. When the - * (limit+1)th item is expanded, the first expanded item will collapse. - * - * @param limit - * the maximum number of items allowed to be expanded. Use <= 0 - * for no limit. - */ - public void setLimit(int limit) { - mLimit = limit; - mVisibleIds.clear(); - mExpandedViews.clear(); - notifyDataSetChanged(); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewGroup view = (ViewGroup) convertView; - ViewHolder viewHolder; - - if (view == null) { - view = createView(parent); - - viewHolder = new ViewHolder(); - viewHolder.titleParent = (ViewGroup) view.findViewById(mTitleParentResId); - viewHolder.contentParent = (ViewGroup) view.findViewById(mContentParentResId); - - view.setTag(viewHolder); - } else { - viewHolder = (ViewHolder) view.getTag(); - } - - if (mLimit > 0) { - if (mVisibleIds.contains(getItemId(position))) { - mExpandedViews.put(getItemId(position), view); - } else if (mExpandedViews.containsValue(view) && !mVisibleIds.contains(getItemId(position))) { - mExpandedViews.remove(getItemId(position)); - } - } - - View titleView = getTitleView(position, viewHolder.titleView, viewHolder.titleParent); - if (titleView != viewHolder.titleView) { - viewHolder.titleParent.removeAllViews(); - viewHolder.titleParent.addView(titleView); - - if (mActionViewResId == 0) { - view.setOnClickListener(new TitleViewOnClickListener(viewHolder.contentParent)); - } else { - view.findViewById(mActionViewResId).setOnClickListener(new TitleViewOnClickListener(viewHolder.contentParent)); - } - } - viewHolder.titleView = titleView; - - View contentView = getContentView(position, viewHolder.contentView, viewHolder.contentParent); - if (contentView != viewHolder.contentView) { - viewHolder.contentParent.removeAllViews(); - viewHolder.contentParent.addView(contentView); - } - viewHolder.contentView = contentView; - - viewHolder.contentParent.setVisibility(mVisibleIds.contains(getItemId(position)) ? View.VISIBLE : View.GONE); - viewHolder.contentParent.setTag(getItemId(position)); - - ViewGroup.LayoutParams layoutParams = viewHolder.contentParent.getLayoutParams(); - layoutParams.height = LayoutParams.WRAP_CONTENT; - viewHolder.contentParent.setLayoutParams(layoutParams); - - mViews.put(position, viewHolder); - - return view; - } - - private ViewGroup createView(ViewGroup parent) { - ViewGroup view; - - if (mViewLayoutResId == 0) { - view = new RootView(mContext); - } else { - view = (ViewGroup) LayoutInflater.from(mContext).inflate(mViewLayoutResId, parent, false); - } - - return view; - } - - /** - * Get a View that displays the title of the data at the specified - * position in the data set. You can either create a View manually or - * inflate it from an XML layout file. When the View is inflated, the parent - * View (GridView, ListView...) will apply default layout parameters unless - * you use - * {@link android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean)} - * to specify a root view and to prevent attachment to the root. - * - * @param position - * The position of the item within the adapter's data set of the - * item whose view we want. - * @param convertView - * The old view to reuse, if possible. Note: You should check - * that this view is non-null and of an appropriate type before - * using. If it is not possible to convert this view to display - * the correct data, this method can create a new view. - * @param parent - * The parent that this view will eventually be attached to - * @return A View corresponding to the title of the data at the specified - * position. - */ - public abstract View getTitleView(int position, View convertView, ViewGroup parent); - - /** - * Get a View that displays the content of the data at the specified - * position in the data set. You can either create a View manually or - * inflate it from an XML layout file. When the View is inflated, the parent - * View (GridView, ListView...) will apply default layout parameters unless - * you use - * {@link android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean)} - * to specify a root view and to prevent attachment to the root. - * - * @param position - * The position of the item within the adapter's data set of the - * item whose view we want. - * @param convertView - * The old view to reuse, if possible. Note: You should check - * that this view is non-null and of an appropriate type before - * using. If it is not possible to convert this view to display - * the correct data, this method can create a new view. - * @param parent - * The parent that this view will eventually be attached to - * @return A View corresponding to the content of the data at the specified - * position. - */ - public abstract View getContentView(int position, View convertView, ViewGroup parent); - - /** - * Indicates if the item at the specified position is expanded. - * - * @param position - * Index of the view whose state we want. - * @return true if the view is expanded, false otherwise. - */ - public boolean isExpanded(int position) { - return mVisibleIds.contains(getItemId(position)); - } - - private static class ViewHolder { - ViewGroup titleParent; - ViewGroup contentParent; - View titleView; - View contentView; - } - - /** - * Return the content view at the specified position. - * - * @param position - * Index of the view we want. - * @return the view if it exist, null otherwise. - */ - public View getContentView(int position) { - return mViews.get(position).contentView; - } - - /** - * Return the title view at the specified position. - * - * @param position - * Index of the view we want. - * @return the view if it exist, null otherwise. - */ - public View getTitleView(int position) { - return mViews.get(position).titleView; - } - - private static class RootView extends LinearLayout { - - private ViewGroup mTitleViewGroup; - private ViewGroup mContentViewGroup; - - public RootView(Context context) { - super(context); - init(); - } - - private void init() { - setOrientation(VERTICAL); - - mTitleViewGroup = new FrameLayout(getContext()); - mTitleViewGroup.setId(DEFAULTTITLEPARENTRESID); - addView(mTitleViewGroup); - - mContentViewGroup = new FrameLayout(getContext()); - mContentViewGroup.setId(DEFAULTCONTENTPARENTRESID); - addView(mContentViewGroup); - } - } - - private class TitleViewOnClickListener implements View.OnClickListener { - - private View mContentParent; - - private TitleViewOnClickListener(View contentParent) { - this.mContentParent = contentParent; - } - - @Override - public void onClick(View view) { - boolean isVisible = mContentParent.getVisibility() == View.VISIBLE; - if (!isVisible && mLimit > 0 && mVisibleIds.size() >= mLimit) { - Long firstId = mVisibleIds.get(0); - View firstEV = mExpandedViews.get(firstId); - if (firstEV != null) { - ViewHolder firstVH = ((ViewHolder) firstEV.getTag()); - ViewGroup contentParent = firstVH.contentParent; - ExpandCollapseHelper.animateCollapsing(contentParent); - mExpandedViews.remove(mVisibleIds.get(0)); - } - mVisibleIds.remove(mVisibleIds.get(0)); - } - - if (isVisible) { - ExpandCollapseHelper.animateCollapsing(mContentParent); - mVisibleIds.remove(mContentParent.getTag()); - mExpandedViews.remove(mContentParent.getTag()); - } else { - ExpandCollapseHelper.animateExpanding(mContentParent, mListView); - mVisibleIds.add((Long) mContentParent.getTag()); - - if (mLimit > 0) { - View parent = (View) mContentParent.getParent(); - mExpandedViews.put((Long) mContentParent.getTag(), parent); - } - } - } - } - - private static class ExpandCollapseHelper { - - public static void animateCollapsing(final View view) { - int origHeight = view.getHeight(); - - ValueAnimator animator = createHeightAnimator(view, origHeight, 0); - animator.addListener(new AnimatorListenerAdapter() { - - @Override - public void onAnimationEnd(Animator animator) { - view.setVisibility(View.GONE); - } - }); - animator.start(); - } - - public static void animateExpanding(final View view, final AbsListView listView) { - view.setVisibility(View.VISIBLE); - - final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); - final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); - view.measure(widthSpec, heightSpec); - - ValueAnimator animator = createHeightAnimator(view, 0, view.getMeasuredHeight()); - animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - final int listViewHeight = listView.getHeight(); - final View v = findDirectChild(view, listView); - - @Override - public void onAnimationUpdate(ValueAnimator valueAnimator) { - final int bottom = v.getBottom(); - if (bottom > listViewHeight) { - final int top = v.getTop(); - if (top > 0) { - listView.smoothScrollBy(Math.min(bottom - listViewHeight, top), 0); - } - } - } - }); - animator.start(); - } - - private static View findDirectChild(View view, AbsListView listView) { - View parent = (View) view.getParent(); - while (parent != listView) { - view = parent; - parent = (View) view.getParent(); - } - return view; - } - - public static ValueAnimator createHeightAnimator(final View view, int start, int end) { - ValueAnimator animator = ValueAnimator.ofInt(start, end); - animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - - @Override - public void onAnimationUpdate(ValueAnimator valueAnimator) { - int value = (Integer) valueAnimator.getAnimatedValue(); - - ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); - layoutParams.height = value; - view.setLayoutParams(layoutParams); - } - }); - return animator; - } - } + private static final int DEFAULTTITLEPARENTRESID = 10000; + private static final int DEFAULTCONTENTPARENTRESID = 10001; + + private Context mContext; + private int mViewLayoutResId; + private int mTitleParentResId; + private int mContentParentResId; + private int mActionViewResId; + private List mVisibleIds; + + private int mLimit; + private Map mExpandedViews; + private SparseArray mViews; + + private AbsListView mAbsListView; + + /** + * Creates a new ExpandableListItemAdapter with an empty list. + */ + protected ExpandableListItemAdapter(Context context) { + this(context, null); + } + + /** + * Creates a new {@link ExpandableListItemAdapter} with the specified list, + * or an empty list if items == null. + */ + protected ExpandableListItemAdapter(Context context, List items) { + super(items); + mContext = context; + mTitleParentResId = DEFAULTTITLEPARENTRESID; + mContentParentResId = DEFAULTCONTENTPARENTRESID; + + mVisibleIds = new ArrayList(); + mExpandedViews = new HashMap(); + mViews = new SparseArray(); + } + + /** + * Creates a new ExpandableListItemAdapter with an empty list. Uses given + * layout resource for the view; titleParentResId and contentParentResId + * should be identifiers for ViewGroups within that layout. + */ + protected ExpandableListItemAdapter(Context context, int layoutResId, int titleParentResId, int contentParentResId) { + this(context, layoutResId, titleParentResId, contentParentResId, null); + } + + /** + * Creates a new ExpandableListItemAdapter with the specified list, or an + * empty list if items == null. Uses given layout resource for the view; + * titleParentResId and contentParentResId should be identifiers for + * ViewGroups within that layout. + */ + protected ExpandableListItemAdapter(Context context, int layoutResId, int titleParentResId, int contentParentResId, List items) { + super(items); + mContext = context; + mViewLayoutResId = layoutResId; + mTitleParentResId = titleParentResId; + mContentParentResId = contentParentResId; + + mVisibleIds = new ArrayList(); + mExpandedViews = new HashMap(); + mViews = new SparseArray(); + } + + @Override + public void setAbsListView(AbsListView listView) { + mAbsListView = listView; + } + + /** + * Set the resource id of the child {@link View} contained in the View + * returned by {@link #getTitleView(int, View, ViewGroup)} that will be the + * actuator of the expand / collapse animations.
+ * If there is no View in the title View with given resId, a + * {@link NullPointerException} is thrown.

Default behavior: the whole + * title View acts as the actuator. + * + * @param resId the resource id. + */ + public void setActionViewResId(int resId) { + mActionViewResId = resId; + } + + /** + * Set the maximum number of items allowed to be expanded. When the + * (limit+1)th item is expanded, the first expanded item will collapse. + * + * @param limit the maximum number of items allowed to be expanded. Use <= 0 + * for no limit. + */ + public void setLimit(int limit) { + mLimit = limit; + mVisibleIds.clear(); + mExpandedViews.clear(); + notifyDataSetChanged(); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ViewGroup view = (ViewGroup) convertView; + ViewHolder viewHolder; + + if (view == null) { + view = createView(parent); + + viewHolder = new ViewHolder(); + viewHolder.titleParent = (ViewGroup) view.findViewById(mTitleParentResId); + viewHolder.contentParent = (ViewGroup) view.findViewById(mContentParentResId); + + view.setTag(viewHolder); + } else { + viewHolder = (ViewHolder) view.getTag(); + } + + if (mLimit > 0) { + if (mVisibleIds.contains(getItemId(position))) { + mExpandedViews.put(getItemId(position), view); + } else if (mExpandedViews.containsValue(view) && !mVisibleIds.contains(getItemId(position))) { + mExpandedViews.remove(getItemId(position)); + } + } + + View titleView = getTitleView(position, viewHolder.titleView, viewHolder.titleParent); + if (titleView != viewHolder.titleView) { + viewHolder.titleParent.removeAllViews(); + viewHolder.titleParent.addView(titleView); + + if (mActionViewResId == 0) { + view.setOnClickListener(new TitleViewOnClickListener(viewHolder.contentParent)); + } else { + view.findViewById(mActionViewResId).setOnClickListener(new TitleViewOnClickListener(viewHolder.contentParent)); + } + } + viewHolder.titleView = titleView; + + View contentView = getContentView(position, viewHolder.contentView, viewHolder.contentParent); + if (contentView != viewHolder.contentView) { + viewHolder.contentParent.removeAllViews(); + viewHolder.contentParent.addView(contentView); + } + viewHolder.contentView = contentView; + + viewHolder.contentParent.setVisibility(mVisibleIds.contains(getItemId(position)) ? View.VISIBLE : View.GONE); + viewHolder.contentParent.setTag(getItemId(position)); + + ViewGroup.LayoutParams layoutParams = viewHolder.contentParent.getLayoutParams(); + layoutParams.height = LayoutParams.WRAP_CONTENT; + viewHolder.contentParent.setLayoutParams(layoutParams); + + mViews.put(position, viewHolder); + + return view; + } + + private ViewGroup createView(ViewGroup parent) { + ViewGroup view; + + if (mViewLayoutResId == 0) { + view = new RootView(mContext); + } else { + view = (ViewGroup) LayoutInflater.from(mContext).inflate(mViewLayoutResId, parent, false); + } + + return view; + } + + /** + * Get a View that displays the title of the data at the specified + * position in the data set. You can either create a View manually or + * inflate it from an XML layout file. When the View is inflated, the parent + * View (GridView, ListView...) will apply default layout parameters unless + * you use + * {@link android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean)} + * to specify a root view and to prevent attachment to the root. + * + * @param position The position of the item within the adapter's data set of the + * item whose view we want. + * @param convertView The old view to reuse, if possible. Note: You should check + * that this view is non-null and of an appropriate type before + * using. If it is not possible to convert this view to display + * the correct data, this method can create a new view. + * @param parent The parent that this view will eventually be attached to + * @return A View corresponding to the title of the data at the specified + * position. + */ + public abstract View getTitleView(int position, View convertView, ViewGroup parent); + + /** + * Get a View that displays the content of the data at the specified + * position in the data set. You can either create a View manually or + * inflate it from an XML layout file. When the View is inflated, the parent + * View (GridView, ListView...) will apply default layout parameters unless + * you use + * {@link android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean)} + * to specify a root view and to prevent attachment to the root. + * + * @param position The position of the item within the adapter's data set of the + * item whose view we want. + * @param convertView The old view to reuse, if possible. Note: You should check + * that this view is non-null and of an appropriate type before + * using. If it is not possible to convert this view to display + * the correct data, this method can create a new view. + * @param parent The parent that this view will eventually be attached to + * @return A View corresponding to the content of the data at the specified + * position. + */ + public abstract View getContentView(int position, View convertView, ViewGroup parent); + + /** + * Indicates if the item at the specified position is expanded. + * + * @param position Index of the view whose state we want. + * @return true if the view is expanded, false otherwise. + */ + public boolean isExpanded(int position) { + long itemId = getItemId(position); + return mVisibleIds.contains(itemId); + } + + + /** + * Return the content view at the specified position. + * + * @param position Index of the view we want. + * @return the view if it exist, null otherwise. + */ + public View getContentView(int position) { + return mViews.get(position).contentView; + } + + /** + * Return the title view at the specified position. + * + * @param position Index of the view we want. + * @return the view if it exist, null otherwise. + */ + public View getTitleView(int position) { + return mViews.get(position).titleView; + } + + /** + * Expand the view at given position. Will do nothing if the view is already expanded. + * + * @param position the position to expand. + */ + public void expand(int position) { + long itemId = getItemId(position); + if (mVisibleIds.contains(itemId)) { + return; + } + + toggle(position); + } + + /** + * Collapse the view at given position. Will do nothing if the view is already collapsed. + * + * @param position the position to expand. + */ + public void collapse(int position) { + long itemId = getItemId(position); + if (!mVisibleIds.contains(itemId)) { + return; + } + + toggle(position); + } + + /** + * Toggle the view at given position. + * + * @param position the position of the view to toggle. + */ + public void toggle(int position) { + long itemId = getItemId(position); + boolean isExpanded = mVisibleIds.contains(itemId); + + boolean found = false; + for (int i = 0; i < mAbsListView.getChildCount() && !found; i++) { + View childView = mAbsListView.getChildAt(i); + if (mAbsListView.getPositionForView(childView) == position) { + found = true; + toggle(((ViewHolder) childView.getTag()).contentParent); + } + } + + if (!found && isExpanded) { + mVisibleIds.remove(itemId); + } else if (!found && !isExpanded) { + mVisibleIds.add(itemId); + } + } + + private void toggle(View contentParent) { + boolean isVisible = contentParent.getVisibility() == View.VISIBLE; + if (!isVisible && mLimit > 0 && mVisibleIds.size() >= mLimit) { + Long firstId = mVisibleIds.get(0); + View firstEV = mExpandedViews.get(firstId); + if (firstEV != null) { + ViewHolder firstVH = ((ViewHolder) firstEV.getTag()); + ViewGroup victimContentParent = firstVH.contentParent; + ExpandCollapseHelper.animateCollapsing(victimContentParent); + mExpandedViews.remove(mVisibleIds.get(0)); + } + mVisibleIds.remove(mVisibleIds.get(0)); + } + + if (isVisible) { + ExpandCollapseHelper.animateCollapsing(contentParent); + mVisibleIds.remove(contentParent.getTag()); + mExpandedViews.remove(contentParent.getTag()); + } else { + ExpandCollapseHelper.animateExpanding(contentParent, mAbsListView); + mVisibleIds.add((Long) contentParent.getTag()); + + if (mLimit > 0) { + View parent = (View) contentParent.getParent(); + mExpandedViews.put((Long) contentParent.getTag(), parent); + } + } + } + + private class TitleViewOnClickListener implements View.OnClickListener { + + private View mContentParent; + + private TitleViewOnClickListener(View contentParent) { + this.mContentParent = contentParent; + } + + @Override + public void onClick(View view) { + toggle(mContentParent); + } + } + + private static class RootView extends LinearLayout { + + private ViewGroup mTitleViewGroup; + private ViewGroup mContentViewGroup; + + public RootView(Context context) { + super(context); + init(); + } + + private void init() { + setOrientation(VERTICAL); + + mTitleViewGroup = new FrameLayout(getContext()); + mTitleViewGroup.setId(DEFAULTTITLEPARENTRESID); + addView(mTitleViewGroup); + + mContentViewGroup = new FrameLayout(getContext()); + mContentViewGroup.setId(DEFAULTCONTENTPARENTRESID); + addView(mContentViewGroup); + } + } + + private static class ViewHolder { + ViewGroup titleParent; + ViewGroup contentParent; + View titleView; + View contentView; + } + + private static class ExpandCollapseHelper { + + public static void animateCollapsing(final View view) { + int origHeight = view.getHeight(); + + ValueAnimator animator = createHeightAnimator(view, origHeight, 0); + animator.addListener(new AnimatorListenerAdapter() { + + @Override + public void onAnimationEnd(Animator animator) { + view.setVisibility(View.GONE); + } + }); + animator.start(); + } + + public static void animateExpanding(final View view, final AbsListView listView) { + view.setVisibility(View.VISIBLE); + + final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); + final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); + view.measure(widthSpec, heightSpec); + + ValueAnimator animator = createHeightAnimator(view, 0, view.getMeasuredHeight()); + animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + final int listViewHeight = listView.getHeight(); + final View v = findDirectChild(view, listView); + + @Override + public void onAnimationUpdate(ValueAnimator valueAnimator) { + final int bottom = v.getBottom(); + if (bottom > listViewHeight) { + final int top = v.getTop(); + if (top > 0) { + listView.smoothScrollBy(Math.min(bottom - listViewHeight, top), 0); + } + } + } + }); + animator.start(); + } + + private static View findDirectChild(View view, AbsListView listView) { + View parent = (View) view.getParent(); + while (parent != listView) { + view = parent; + parent = (View) view.getParent(); + } + return view; + } + + public static ValueAnimator createHeightAnimator(final View view, int start, int end) { + ValueAnimator animator = ValueAnimator.ofInt(start, end); + animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + + @Override + public void onAnimationUpdate(ValueAnimator valueAnimator) { + int value = (Integer) valueAnimator.getAnimatedValue(); + + ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); + layoutParams.height = value; + view.setLayoutParams(layoutParams); + } + }); + return animator; + } + } } From e6fb4828ba80399a84effaa9d682ad1a7cffbc92 Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Sun, 8 Dec 2013 17:32:49 +0100 Subject: [PATCH 19/69] Added methods for programmatically expand / collapse items: expand(int), collapse(int), toggle(int). Fixes #77. --- .../ExpandableListItemActivity.java | 238 ++--- .../ExpandableListItemAdapter.java | 830 +++++++++--------- 2 files changed, 558 insertions(+), 510 deletions(-) diff --git a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ExpandableListItemActivity.java b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ExpandableListItemActivity.java index 1ee45f86..d4f88fb3 100644 --- a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ExpandableListItemActivity.java +++ b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ExpandableListItemActivity.java @@ -1,7 +1,5 @@ package com.haarman.listviewanimations.itemmanipulationexamples; -import java.util.List; - import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; @@ -20,123 +18,125 @@ import com.haarman.listviewanimations.itemmanipulation.ExpandableListItemAdapter; import com.haarman.listviewanimations.swinginadapters.prepared.AlphaInAnimationAdapter; +import java.util.List; + public class ExpandableListItemActivity extends MyListActivity { - private MyExpandableListItemAdapter mExpandableListItemAdapter; - private boolean mLimited; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - mExpandableListItemAdapter = new MyExpandableListItemAdapter(this, getItems()); - AlphaInAnimationAdapter alphaInAnimationAdapter = new AlphaInAnimationAdapter(mExpandableListItemAdapter); - alphaInAnimationAdapter.setAbsListView(getListView()); - alphaInAnimationAdapter.setInitialDelayMillis(500); - getListView().setAdapter(alphaInAnimationAdapter); - - Toast.makeText(this, R.string.explainexpand, Toast.LENGTH_LONG).show(); - } - - private static class MyExpandableListItemAdapter extends ExpandableListItemAdapter { - - private Context mContext; - private LruCache mMemoryCache; - - /** - * Creates a new ExpandableListItemAdapter with the specified list, or an empty list if - * items == null. - */ - private MyExpandableListItemAdapter(Context context, List items) { - super(context, R.layout.activity_expandablelistitem_card, R.id.activity_expandablelistitem_card_title, R.id.activity_expandablelistitem_card_content, items); - mContext = context; - - final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024); - - // Use 1/8th of the available memory for this memory cache. - final int cacheSize = maxMemory; - mMemoryCache = new LruCache(cacheSize) { - @Override - protected int sizeOf(Integer key, Bitmap bitmap) { - // The cache size will be measured in kilobytes rather than - // number of items. - return bitmap.getRowBytes() * bitmap.getHeight() / 1024; - } - }; - } - - @Override - public View getTitleView(int position, View convertView, ViewGroup parent) { - TextView tv = (TextView) convertView; - if (tv == null) { - tv = new TextView(mContext); - } - tv.setText(mContext.getString(R.string.expandorcollapsecard, getItem(position))); - return tv; - } - - @Override - public View getContentView(int position, View convertView, ViewGroup parent) { - ImageView imageView = (ImageView) convertView; - if (imageView == null) { - imageView = new ImageView(mContext); - imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); - } - - int imageResId; - switch (getItem(position) % 5) { - case 0: - imageResId = R.drawable.img_nature1; - break; - case 1: - imageResId = R.drawable.img_nature2; - break; - case 2: - imageResId = R.drawable.img_nature3; - break; - case 3: - imageResId = R.drawable.img_nature4; - break; - default: - imageResId = R.drawable.img_nature5; - } - - Bitmap bitmap = getBitmapFromMemCache(imageResId); - if (bitmap == null) { - bitmap = BitmapFactory.decodeResource(mContext.getResources(), imageResId); - addBitmapToMemoryCache(imageResId, bitmap); - } - imageView.setImageBitmap(bitmap); - - return imageView; - } - - private void addBitmapToMemoryCache(int key, Bitmap bitmap) { - if (getBitmapFromMemCache(key) == null) { - mMemoryCache.put(key, bitmap); - } - } - - private Bitmap getBitmapFromMemCache(int key) { - return mMemoryCache.get(key); - } - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.menu_expandablelistitem, menu); - return super.onCreateOptionsMenu(menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.menu_expandable_limit: - mLimited = !mLimited; - item.setChecked(mLimited); - mExpandableListItemAdapter.setLimit(mLimited ? 2 : 0); - return true; - } - return super.onOptionsItemSelected(item); - } + private MyExpandableListItemAdapter mExpandableListItemAdapter; + private boolean mLimited; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + mExpandableListItemAdapter = new MyExpandableListItemAdapter(this, getItems()); + AlphaInAnimationAdapter alphaInAnimationAdapter = new AlphaInAnimationAdapter(mExpandableListItemAdapter); + alphaInAnimationAdapter.setAbsListView(getListView()); + alphaInAnimationAdapter.setInitialDelayMillis(500); + getListView().setAdapter(alphaInAnimationAdapter); + + Toast.makeText(this, R.string.explainexpand, Toast.LENGTH_LONG).show(); + } + + private static class MyExpandableListItemAdapter extends ExpandableListItemAdapter { + + private Context mContext; + private LruCache mMemoryCache; + + /** + * Creates a new ExpandableListItemAdapter with the specified list, or an empty list if + * items == null. + */ + private MyExpandableListItemAdapter(Context context, List items) { + super(context, R.layout.activity_expandablelistitem_card, R.id.activity_expandablelistitem_card_title, R.id.activity_expandablelistitem_card_content, items); + mContext = context; + + final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024); + + // Use 1/8th of the available memory for this memory cache. + final int cacheSize = maxMemory; + mMemoryCache = new LruCache(cacheSize) { + @Override + protected int sizeOf(Integer key, Bitmap bitmap) { + // The cache size will be measured in kilobytes rather than + // number of items. + return bitmap.getRowBytes() * bitmap.getHeight() / 1024; + } + }; + } + + @Override + public View getTitleView(int position, View convertView, ViewGroup parent) { + TextView tv = (TextView) convertView; + if (tv == null) { + tv = new TextView(mContext); + } + tv.setText(mContext.getString(R.string.expandorcollapsecard, getItem(position))); + return tv; + } + + @Override + public View getContentView(int position, View convertView, ViewGroup parent) { + ImageView imageView = (ImageView) convertView; + if (imageView == null) { + imageView = new ImageView(mContext); + imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); + } + + int imageResId; + switch (getItem(position) % 5) { + case 0: + imageResId = R.drawable.img_nature1; + break; + case 1: + imageResId = R.drawable.img_nature2; + break; + case 2: + imageResId = R.drawable.img_nature3; + break; + case 3: + imageResId = R.drawable.img_nature4; + break; + default: + imageResId = R.drawable.img_nature5; + } + + Bitmap bitmap = getBitmapFromMemCache(imageResId); + if (bitmap == null) { + bitmap = BitmapFactory.decodeResource(mContext.getResources(), imageResId); + addBitmapToMemoryCache(imageResId, bitmap); + } + imageView.setImageBitmap(bitmap); + + return imageView; + } + + private void addBitmapToMemoryCache(int key, Bitmap bitmap) { + if (getBitmapFromMemCache(key) == null) { + mMemoryCache.put(key, bitmap); + } + } + + private Bitmap getBitmapFromMemCache(int key) { + return mMemoryCache.get(key); + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.menu_expandablelistitem, menu); + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.menu_expandable_limit: + mLimited = !mLimited; + item.setChecked(mLimited); + mExpandableListItemAdapter.setLimit(mLimited ? 2 : 0); + return true; + } + return super.onOptionsItemSelected(item); + } } diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java b/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java index 64c0a97d..ef005f52 100644 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java +++ b/library/src/com/haarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java @@ -1,10 +1,5 @@ package com.haarman.listviewanimations.itemmanipulation; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - import android.content.Context; import android.util.SparseArray; import android.view.LayoutInflater; @@ -21,395 +16,448 @@ import com.nineoldandroids.animation.AnimatorListenerAdapter; import com.nineoldandroids.animation.ValueAnimator; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * An {@link ArrayAdapter} which allows items to be expanded using an animation. */ public abstract class ExpandableListItemAdapter extends ArrayAdapter implements ListViewSetter { - private static final int DEFAULTTITLEPARENTRESID = 10000; - private static final int DEFAULTCONTENTPARENTRESID = 10001; - - private Context mContext; - private int mViewLayoutResId; - private int mTitleParentResId; - private int mContentParentResId; - private int mActionViewResId; - private List mVisibleIds; - - private int mLimit; - private Map mExpandedViews; - private SparseArray mViews; - - private AbsListView mListView; - - /** - * Creates a new ExpandableListItemAdapter with an empty list. - */ - protected ExpandableListItemAdapter(Context context) { - this(context, null); - } - - /** - * Creates a new {@link ExpandableListItemAdapter} with the specified list, - * or an empty list if items == null. - */ - protected ExpandableListItemAdapter(Context context, List items) { - super(items); - mContext = context; - mTitleParentResId = DEFAULTTITLEPARENTRESID; - mContentParentResId = DEFAULTCONTENTPARENTRESID; - - mVisibleIds = new ArrayList(); - mExpandedViews = new HashMap(); - mViews = new SparseArray(); - } - - /** - * Creates a new ExpandableListItemAdapter with an empty list. Uses given - * layout resource for the view; titleParentResId and contentParentResId - * should be identifiers for ViewGroups within that layout. - */ - protected ExpandableListItemAdapter(Context context, int layoutResId, int titleParentResId, int contentParentResId) { - this(context, layoutResId, titleParentResId, contentParentResId, null); - } - - /** - * Creates a new ExpandableListItemAdapter with the specified list, or an - * empty list if items == null. Uses given layout resource for the view; - * titleParentResId and contentParentResId should be identifiers for - * ViewGroups within that layout. - */ - protected ExpandableListItemAdapter(Context context, int layoutResId, int titleParentResId, int contentParentResId, List items) { - super(items); - mContext = context; - mViewLayoutResId = layoutResId; - mTitleParentResId = titleParentResId; - mContentParentResId = contentParentResId; - - mVisibleIds = new ArrayList(); - mExpandedViews = new HashMap(); - mViews = new SparseArray(); - } - - @Override - public void setAbsListView(AbsListView listView) { - mListView = listView; - } - - /** - * Set the resource id of the child {@link View} contained in the View - * returned by {@link #getTitleView(int, View, ViewGroup)} that will be the - * actuator of the expand / collapse animations.
- * If there is no View in the title View with given resId, a - * {@link NullPointerException} is thrown.

Default behavior: the whole - * title View acts as the actuator. - * - * @param resId - * the resource id. - */ - public void setActionViewResId(int resId) { - mActionViewResId = resId; - } - - /** - * Set the maximum number of items allowed to be expanded. When the - * (limit+1)th item is expanded, the first expanded item will collapse. - * - * @param limit - * the maximum number of items allowed to be expanded. Use <= 0 - * for no limit. - */ - public void setLimit(int limit) { - mLimit = limit; - mVisibleIds.clear(); - mExpandedViews.clear(); - notifyDataSetChanged(); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewGroup view = (ViewGroup) convertView; - ViewHolder viewHolder; - - if (view == null) { - view = createView(parent); - - viewHolder = new ViewHolder(); - viewHolder.titleParent = (ViewGroup) view.findViewById(mTitleParentResId); - viewHolder.contentParent = (ViewGroup) view.findViewById(mContentParentResId); - - view.setTag(viewHolder); - } else { - viewHolder = (ViewHolder) view.getTag(); - } - - if (mLimit > 0) { - if (mVisibleIds.contains(getItemId(position))) { - mExpandedViews.put(getItemId(position), view); - } else if (mExpandedViews.containsValue(view) && !mVisibleIds.contains(getItemId(position))) { - mExpandedViews.remove(getItemId(position)); - } - } - - View titleView = getTitleView(position, viewHolder.titleView, viewHolder.titleParent); - if (titleView != viewHolder.titleView) { - viewHolder.titleParent.removeAllViews(); - viewHolder.titleParent.addView(titleView); - - if (mActionViewResId == 0) { - view.setOnClickListener(new TitleViewOnClickListener(viewHolder.contentParent)); - } else { - view.findViewById(mActionViewResId).setOnClickListener(new TitleViewOnClickListener(viewHolder.contentParent)); - } - } - viewHolder.titleView = titleView; - - View contentView = getContentView(position, viewHolder.contentView, viewHolder.contentParent); - if (contentView != viewHolder.contentView) { - viewHolder.contentParent.removeAllViews(); - viewHolder.contentParent.addView(contentView); - } - viewHolder.contentView = contentView; - - viewHolder.contentParent.setVisibility(mVisibleIds.contains(getItemId(position)) ? View.VISIBLE : View.GONE); - viewHolder.contentParent.setTag(getItemId(position)); - - ViewGroup.LayoutParams layoutParams = viewHolder.contentParent.getLayoutParams(); - layoutParams.height = LayoutParams.WRAP_CONTENT; - viewHolder.contentParent.setLayoutParams(layoutParams); - - mViews.put(position, viewHolder); - - return view; - } - - private ViewGroup createView(ViewGroup parent) { - ViewGroup view; - - if (mViewLayoutResId == 0) { - view = new RootView(mContext); - } else { - view = (ViewGroup) LayoutInflater.from(mContext).inflate(mViewLayoutResId, parent, false); - } - - return view; - } - - /** - * Get a View that displays the title of the data at the specified - * position in the data set. You can either create a View manually or - * inflate it from an XML layout file. When the View is inflated, the parent - * View (GridView, ListView...) will apply default layout parameters unless - * you use - * {@link android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean)} - * to specify a root view and to prevent attachment to the root. - * - * @param position - * The position of the item within the adapter's data set of the - * item whose view we want. - * @param convertView - * The old view to reuse, if possible. Note: You should check - * that this view is non-null and of an appropriate type before - * using. If it is not possible to convert this view to display - * the correct data, this method can create a new view. - * @param parent - * The parent that this view will eventually be attached to - * @return A View corresponding to the title of the data at the specified - * position. - */ - public abstract View getTitleView(int position, View convertView, ViewGroup parent); - - /** - * Get a View that displays the content of the data at the specified - * position in the data set. You can either create a View manually or - * inflate it from an XML layout file. When the View is inflated, the parent - * View (GridView, ListView...) will apply default layout parameters unless - * you use - * {@link android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean)} - * to specify a root view and to prevent attachment to the root. - * - * @param position - * The position of the item within the adapter's data set of the - * item whose view we want. - * @param convertView - * The old view to reuse, if possible. Note: You should check - * that this view is non-null and of an appropriate type before - * using. If it is not possible to convert this view to display - * the correct data, this method can create a new view. - * @param parent - * The parent that this view will eventually be attached to - * @return A View corresponding to the content of the data at the specified - * position. - */ - public abstract View getContentView(int position, View convertView, ViewGroup parent); - - /** - * Indicates if the item at the specified position is expanded. - * - * @param position - * Index of the view whose state we want. - * @return true if the view is expanded, false otherwise. - */ - public boolean isExpanded(int position) { - return mVisibleIds.contains(getItemId(position)); - } - - private static class ViewHolder { - ViewGroup titleParent; - ViewGroup contentParent; - View titleView; - View contentView; - } - - /** - * Return the content view at the specified position. - * - * @param position - * Index of the view we want. - * @return the view if it exist, null otherwise. - */ - public View getContentView(int position) { - return mViews.get(position).contentView; - } - - /** - * Return the title view at the specified position. - * - * @param position - * Index of the view we want. - * @return the view if it exist, null otherwise. - */ - public View getTitleView(int position) { - return mViews.get(position).titleView; - } - - private static class RootView extends LinearLayout { - - private ViewGroup mTitleViewGroup; - private ViewGroup mContentViewGroup; - - public RootView(Context context) { - super(context); - init(); - } - - private void init() { - setOrientation(VERTICAL); - - mTitleViewGroup = new FrameLayout(getContext()); - mTitleViewGroup.setId(DEFAULTTITLEPARENTRESID); - addView(mTitleViewGroup); - - mContentViewGroup = new FrameLayout(getContext()); - mContentViewGroup.setId(DEFAULTCONTENTPARENTRESID); - addView(mContentViewGroup); - } - } - - private class TitleViewOnClickListener implements View.OnClickListener { - - private View mContentParent; - - private TitleViewOnClickListener(View contentParent) { - this.mContentParent = contentParent; - } - - @Override - public void onClick(View view) { - boolean isVisible = mContentParent.getVisibility() == View.VISIBLE; - if (!isVisible && mLimit > 0 && mVisibleIds.size() >= mLimit) { - Long firstId = mVisibleIds.get(0); - View firstEV = mExpandedViews.get(firstId); - if (firstEV != null) { - ViewHolder firstVH = ((ViewHolder) firstEV.getTag()); - ViewGroup contentParent = firstVH.contentParent; - ExpandCollapseHelper.animateCollapsing(contentParent); - mExpandedViews.remove(mVisibleIds.get(0)); - } - mVisibleIds.remove(mVisibleIds.get(0)); - } - - if (isVisible) { - ExpandCollapseHelper.animateCollapsing(mContentParent); - mVisibleIds.remove(mContentParent.getTag()); - mExpandedViews.remove(mContentParent.getTag()); - } else { - ExpandCollapseHelper.animateExpanding(mContentParent, mListView); - mVisibleIds.add((Long) mContentParent.getTag()); - - if (mLimit > 0) { - View parent = (View) mContentParent.getParent(); - mExpandedViews.put((Long) mContentParent.getTag(), parent); - } - } - } - } - - private static class ExpandCollapseHelper { - - public static void animateCollapsing(final View view) { - int origHeight = view.getHeight(); - - ValueAnimator animator = createHeightAnimator(view, origHeight, 0); - animator.addListener(new AnimatorListenerAdapter() { - - @Override - public void onAnimationEnd(Animator animator) { - view.setVisibility(View.GONE); - } - }); - animator.start(); - } - - public static void animateExpanding(final View view, final AbsListView listView) { - view.setVisibility(View.VISIBLE); - - final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); - final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); - view.measure(widthSpec, heightSpec); - - ValueAnimator animator = createHeightAnimator(view, 0, view.getMeasuredHeight()); - animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - final int listViewHeight = listView.getHeight(); - final View v = findDirectChild(view, listView); - - @Override - public void onAnimationUpdate(ValueAnimator valueAnimator) { - final int bottom = v.getBottom(); - if (bottom > listViewHeight) { - final int top = v.getTop(); - if (top > 0) { - listView.smoothScrollBy(Math.min(bottom - listViewHeight, top), 0); - } - } - } - }); - animator.start(); - } - - private static View findDirectChild(View view, AbsListView listView) { - View parent = (View) view.getParent(); - while (parent != listView) { - view = parent; - parent = (View) view.getParent(); - } - return view; - } - - public static ValueAnimator createHeightAnimator(final View view, int start, int end) { - ValueAnimator animator = ValueAnimator.ofInt(start, end); - animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - - @Override - public void onAnimationUpdate(ValueAnimator valueAnimator) { - int value = (Integer) valueAnimator.getAnimatedValue(); - - ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); - layoutParams.height = value; - view.setLayoutParams(layoutParams); - } - }); - return animator; - } - } + private static final int DEFAULTTITLEPARENTRESID = 10000; + private static final int DEFAULTCONTENTPARENTRESID = 10001; + + private Context mContext; + private int mViewLayoutResId; + private int mTitleParentResId; + private int mContentParentResId; + private int mActionViewResId; + private List mVisibleIds; + + private int mLimit; + private Map mExpandedViews; + private SparseArray mViews; + + private AbsListView mAbsListView; + + /** + * Creates a new ExpandableListItemAdapter with an empty list. + */ + protected ExpandableListItemAdapter(Context context) { + this(context, null); + } + + /** + * Creates a new {@link ExpandableListItemAdapter} with the specified list, + * or an empty list if items == null. + */ + protected ExpandableListItemAdapter(Context context, List items) { + super(items); + mContext = context; + mTitleParentResId = DEFAULTTITLEPARENTRESID; + mContentParentResId = DEFAULTCONTENTPARENTRESID; + + mVisibleIds = new ArrayList(); + mExpandedViews = new HashMap(); + mViews = new SparseArray(); + } + + /** + * Creates a new ExpandableListItemAdapter with an empty list. Uses given + * layout resource for the view; titleParentResId and contentParentResId + * should be identifiers for ViewGroups within that layout. + */ + protected ExpandableListItemAdapter(Context context, int layoutResId, int titleParentResId, int contentParentResId) { + this(context, layoutResId, titleParentResId, contentParentResId, null); + } + + /** + * Creates a new ExpandableListItemAdapter with the specified list, or an + * empty list if items == null. Uses given layout resource for the view; + * titleParentResId and contentParentResId should be identifiers for + * ViewGroups within that layout. + */ + protected ExpandableListItemAdapter(Context context, int layoutResId, int titleParentResId, int contentParentResId, List items) { + super(items); + mContext = context; + mViewLayoutResId = layoutResId; + mTitleParentResId = titleParentResId; + mContentParentResId = contentParentResId; + + mVisibleIds = new ArrayList(); + mExpandedViews = new HashMap(); + mViews = new SparseArray(); + } + + @Override + public void setAbsListView(AbsListView listView) { + mAbsListView = listView; + } + + /** + * Set the resource id of the child {@link View} contained in the View + * returned by {@link #getTitleView(int, View, ViewGroup)} that will be the + * actuator of the expand / collapse animations.
+ * If there is no View in the title View with given resId, a + * {@link NullPointerException} is thrown.

Default behavior: the whole + * title View acts as the actuator. + * + * @param resId the resource id. + */ + public void setActionViewResId(int resId) { + mActionViewResId = resId; + } + + /** + * Set the maximum number of items allowed to be expanded. When the + * (limit+1)th item is expanded, the first expanded item will collapse. + * + * @param limit the maximum number of items allowed to be expanded. Use <= 0 + * for no limit. + */ + public void setLimit(int limit) { + mLimit = limit; + mVisibleIds.clear(); + mExpandedViews.clear(); + notifyDataSetChanged(); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + ViewGroup view = (ViewGroup) convertView; + ViewHolder viewHolder; + + if (view == null) { + view = createView(parent); + + viewHolder = new ViewHolder(); + viewHolder.titleParent = (ViewGroup) view.findViewById(mTitleParentResId); + viewHolder.contentParent = (ViewGroup) view.findViewById(mContentParentResId); + + view.setTag(viewHolder); + } else { + viewHolder = (ViewHolder) view.getTag(); + } + + if (mLimit > 0) { + if (mVisibleIds.contains(getItemId(position))) { + mExpandedViews.put(getItemId(position), view); + } else if (mExpandedViews.containsValue(view) && !mVisibleIds.contains(getItemId(position))) { + mExpandedViews.remove(getItemId(position)); + } + } + + View titleView = getTitleView(position, viewHolder.titleView, viewHolder.titleParent); + if (titleView != viewHolder.titleView) { + viewHolder.titleParent.removeAllViews(); + viewHolder.titleParent.addView(titleView); + + if (mActionViewResId == 0) { + view.setOnClickListener(new TitleViewOnClickListener(viewHolder.contentParent)); + } else { + view.findViewById(mActionViewResId).setOnClickListener(new TitleViewOnClickListener(viewHolder.contentParent)); + } + } + viewHolder.titleView = titleView; + + View contentView = getContentView(position, viewHolder.contentView, viewHolder.contentParent); + if (contentView != viewHolder.contentView) { + viewHolder.contentParent.removeAllViews(); + viewHolder.contentParent.addView(contentView); + } + viewHolder.contentView = contentView; + + viewHolder.contentParent.setVisibility(mVisibleIds.contains(getItemId(position)) ? View.VISIBLE : View.GONE); + viewHolder.contentParent.setTag(getItemId(position)); + + ViewGroup.LayoutParams layoutParams = viewHolder.contentParent.getLayoutParams(); + layoutParams.height = LayoutParams.WRAP_CONTENT; + viewHolder.contentParent.setLayoutParams(layoutParams); + + mViews.put(position, viewHolder); + + return view; + } + + private ViewGroup createView(ViewGroup parent) { + ViewGroup view; + + if (mViewLayoutResId == 0) { + view = new RootView(mContext); + } else { + view = (ViewGroup) LayoutInflater.from(mContext).inflate(mViewLayoutResId, parent, false); + } + + return view; + } + + /** + * Get a View that displays the title of the data at the specified + * position in the data set. You can either create a View manually or + * inflate it from an XML layout file. When the View is inflated, the parent + * View (GridView, ListView...) will apply default layout parameters unless + * you use + * {@link android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean)} + * to specify a root view and to prevent attachment to the root. + * + * @param position The position of the item within the adapter's data set of the + * item whose view we want. + * @param convertView The old view to reuse, if possible. Note: You should check + * that this view is non-null and of an appropriate type before + * using. If it is not possible to convert this view to display + * the correct data, this method can create a new view. + * @param parent The parent that this view will eventually be attached to + * @return A View corresponding to the title of the data at the specified + * position. + */ + public abstract View getTitleView(int position, View convertView, ViewGroup parent); + + /** + * Get a View that displays the content of the data at the specified + * position in the data set. You can either create a View manually or + * inflate it from an XML layout file. When the View is inflated, the parent + * View (GridView, ListView...) will apply default layout parameters unless + * you use + * {@link android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean)} + * to specify a root view and to prevent attachment to the root. + * + * @param position The position of the item within the adapter's data set of the + * item whose view we want. + * @param convertView The old view to reuse, if possible. Note: You should check + * that this view is non-null and of an appropriate type before + * using. If it is not possible to convert this view to display + * the correct data, this method can create a new view. + * @param parent The parent that this view will eventually be attached to + * @return A View corresponding to the content of the data at the specified + * position. + */ + public abstract View getContentView(int position, View convertView, ViewGroup parent); + + /** + * Indicates if the item at the specified position is expanded. + * + * @param position Index of the view whose state we want. + * @return true if the view is expanded, false otherwise. + */ + public boolean isExpanded(int position) { + long itemId = getItemId(position); + return mVisibleIds.contains(itemId); + } + + + /** + * Return the content view at the specified position. + * + * @param position Index of the view we want. + * @return the view if it exist, null otherwise. + */ + public View getContentView(int position) { + return mViews.get(position).contentView; + } + + /** + * Return the title view at the specified position. + * + * @param position Index of the view we want. + * @return the view if it exist, null otherwise. + */ + public View getTitleView(int position) { + return mViews.get(position).titleView; + } + + /** + * Expand the view at given position. Will do nothing if the view is already expanded. + * + * @param position the position to expand. + */ + public void expand(int position) { + long itemId = getItemId(position); + if (mVisibleIds.contains(itemId)) { + return; + } + + toggle(position); + } + + /** + * Collapse the view at given position. Will do nothing if the view is already collapsed. + * + * @param position the position to expand. + */ + public void collapse(int position) { + long itemId = getItemId(position); + if (!mVisibleIds.contains(itemId)) { + return; + } + + toggle(position); + } + + /** + * Toggle the view at given position. + * + * @param position the position of the view to toggle. + */ + public void toggle(int position) { + long itemId = getItemId(position); + boolean isExpanded = mVisibleIds.contains(itemId); + + boolean found = false; + for (int i = 0; i < mAbsListView.getChildCount() && !found; i++) { + View childView = mAbsListView.getChildAt(i); + if (mAbsListView.getPositionForView(childView) == position) { + found = true; + toggle(((ViewHolder) childView.getTag()).contentParent); + } + } + + if (!found && isExpanded) { + mVisibleIds.remove(itemId); + } else if (!found && !isExpanded) { + mVisibleIds.add(itemId); + } + } + + private void toggle(View contentParent) { + boolean isVisible = contentParent.getVisibility() == View.VISIBLE; + if (!isVisible && mLimit > 0 && mVisibleIds.size() >= mLimit) { + Long firstId = mVisibleIds.get(0); + View firstEV = mExpandedViews.get(firstId); + if (firstEV != null) { + ViewHolder firstVH = ((ViewHolder) firstEV.getTag()); + ViewGroup victimContentParent = firstVH.contentParent; + ExpandCollapseHelper.animateCollapsing(victimContentParent); + mExpandedViews.remove(mVisibleIds.get(0)); + } + mVisibleIds.remove(mVisibleIds.get(0)); + } + + if (isVisible) { + ExpandCollapseHelper.animateCollapsing(contentParent); + mVisibleIds.remove(contentParent.getTag()); + mExpandedViews.remove(contentParent.getTag()); + } else { + ExpandCollapseHelper.animateExpanding(contentParent, mAbsListView); + mVisibleIds.add((Long) contentParent.getTag()); + + if (mLimit > 0) { + View parent = (View) contentParent.getParent(); + mExpandedViews.put((Long) contentParent.getTag(), parent); + } + } + } + + private class TitleViewOnClickListener implements View.OnClickListener { + + private View mContentParent; + + private TitleViewOnClickListener(View contentParent) { + this.mContentParent = contentParent; + } + + @Override + public void onClick(View view) { + toggle(mContentParent); + } + } + + private static class RootView extends LinearLayout { + + private ViewGroup mTitleViewGroup; + private ViewGroup mContentViewGroup; + + public RootView(Context context) { + super(context); + init(); + } + + private void init() { + setOrientation(VERTICAL); + + mTitleViewGroup = new FrameLayout(getContext()); + mTitleViewGroup.setId(DEFAULTTITLEPARENTRESID); + addView(mTitleViewGroup); + + mContentViewGroup = new FrameLayout(getContext()); + mContentViewGroup.setId(DEFAULTCONTENTPARENTRESID); + addView(mContentViewGroup); + } + } + + private static class ViewHolder { + ViewGroup titleParent; + ViewGroup contentParent; + View titleView; + View contentView; + } + + private static class ExpandCollapseHelper { + + public static void animateCollapsing(final View view) { + int origHeight = view.getHeight(); + + ValueAnimator animator = createHeightAnimator(view, origHeight, 0); + animator.addListener(new AnimatorListenerAdapter() { + + @Override + public void onAnimationEnd(Animator animator) { + view.setVisibility(View.GONE); + } + }); + animator.start(); + } + + public static void animateExpanding(final View view, final AbsListView listView) { + view.setVisibility(View.VISIBLE); + + final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); + final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); + view.measure(widthSpec, heightSpec); + + ValueAnimator animator = createHeightAnimator(view, 0, view.getMeasuredHeight()); + animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + final int listViewHeight = listView.getHeight(); + final View v = findDirectChild(view, listView); + + @Override + public void onAnimationUpdate(ValueAnimator valueAnimator) { + final int bottom = v.getBottom(); + if (bottom > listViewHeight) { + final int top = v.getTop(); + if (top > 0) { + listView.smoothScrollBy(Math.min(bottom - listViewHeight, top), 0); + } + } + } + }); + animator.start(); + } + + private static View findDirectChild(View view, AbsListView listView) { + View parent = (View) view.getParent(); + while (parent != listView) { + view = parent; + parent = (View) view.getParent(); + } + return view; + } + + public static ValueAnimator createHeightAnimator(final View view, int start, int end) { + ValueAnimator animator = ValueAnimator.ofInt(start, end); + animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + + @Override + public void onAnimationUpdate(ValueAnimator valueAnimator) { + int value = (Integer) valueAnimator.getAnimatedValue(); + + ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); + layoutParams.height = value; + view.setLayoutParams(layoutParams); + } + }); + return animator; + } + } } From d3e939799435fb1ce6887469b1503ad1814fcad2 Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Sun, 8 Dec 2013 18:07:29 +0100 Subject: [PATCH 20/69] Moved interface, renamed stuff, javadoc --- .../DragAndDropActivity.java | 9 +- .../itemmanipulation/ItemMovedListener.java | 16 - .../view/DynamicListView.java | 1374 +++++++++-------- 3 files changed, 700 insertions(+), 699 deletions(-) delete mode 100644 library/src/com/haarman/listviewanimations/itemmanipulation/ItemMovedListener.java diff --git a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java index 47b9e57e..97eb2769 100644 --- a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java +++ b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java @@ -6,7 +6,6 @@ import com.haarman.listviewanimations.ArrayAdapter; import com.haarman.listviewanimations.MyListActivity; import com.haarman.listviewanimations.R; -import com.haarman.listviewanimations.itemmanipulation.ItemMovedListener; import com.haarman.listviewanimations.swinginadapters.prepared.AlphaInAnimationAdapter; import com.haarman.listviewanimations.view.DynamicListView; @@ -22,17 +21,17 @@ protected void onCreate(Bundle savedInstanceState) { mListView = (DynamicListView) findViewById(R.id.activity_draganddrop_listview); mListView.setDivider(null); - ArrayAdapter adapter = createListAdapter(); + final ArrayAdapter adapter = createListAdapter(); AlphaInAnimationAdapter animAdapter = new AlphaInAnimationAdapter(adapter); animAdapter.setInitialDelayMillis(300); animAdapter.setAbsListView(mListView); mListView.setAdapter(animAdapter); Toast.makeText(this, "Long press an item to start dragging", Toast.LENGTH_LONG).show(); - mListView.setItemMovedListener(new ItemMovedListener() { + mListView.setOnItemMovedListener(new DynamicListView.OnItemMovedListener() { @Override - public void onItemMoved(Object item, int newPosition) { - Toast.makeText(getApplicationContext(), item.toString() + " moved to position" + newPosition, Toast.LENGTH_LONG).show(); + public void onItemMoved(int newPosition) { + Toast.makeText(getApplicationContext(), adapter.getItem(newPosition) + " moved to position" + newPosition, Toast.LENGTH_LONG).show(); } }); } diff --git a/library/src/com/haarman/listviewanimations/itemmanipulation/ItemMovedListener.java b/library/src/com/haarman/listviewanimations/itemmanipulation/ItemMovedListener.java deleted file mode 100644 index ce47d4d8..00000000 --- a/library/src/com/haarman/listviewanimations/itemmanipulation/ItemMovedListener.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.haarman.listviewanimations.itemmanipulation; - -/** - * Created by sambarboza on 27/11/13. - * sambarbosaa@gmail.com - * Listener to get noticed when item is moved by drag and drop. - */ -public interface ItemMovedListener { - /** - * It's called after the item is finally dropped and moved. - * It's not called while the item is being dragged. - * @param item - * @param newPosition - */ - public void onItemMoved(Object item, int newPosition); -} diff --git a/library/src/com/haarman/listviewanimations/view/DynamicListView.java b/library/src/com/haarman/listviewanimations/view/DynamicListView.java index e79d69ce..72358960 100644 --- a/library/src/com/haarman/listviewanimations/view/DynamicListView.java +++ b/library/src/com/haarman/listviewanimations/view/DynamicListView.java @@ -1,5 +1,6 @@ /* * Copyright (C) 2013 The Android Open Source Project + * Copyright 2013 Niek Haarman * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,7 +37,6 @@ import android.widget.ListAdapter; import android.widget.ListView; -import com.haarman.listviewanimations.itemmanipulation.ItemMovedListener; import com.haarman.listviewanimations.itemmanipulation.SwipeOnTouchListener; import com.nineoldandroids.animation.Animator; import com.nineoldandroids.animation.AnimatorListenerAdapter; @@ -72,694 +72,712 @@ */ public class DynamicListView extends ListView { - private ItemMovedListener mItemMovedListener; + public interface OnHoverCellListener { + public Drawable onHoverCellCreated(Drawable hoverCellDrawable); + } + + /** + * Implement this interface to be notified of ordering changes. Call {@link #setOnItemMovedListener(com.haarman.listviewanimations.view.DynamicListView.OnItemMovedListener)}. + */ + public interface OnItemMovedListener { + /** + * Called after an item is dropped and moved. + * + * @param newPosition the new position of the item. + */ + public void onItemMoved(int newPosition); + } + + private final int SMOOTH_SCROLL_AMOUNT_AT_EDGE = 15; + private final int MOVE_DURATION = 150; + + private int mLastEventY = -1, mLastEventX = -1; + + private int mDownY = -1; + private int mDownX = -1; + + private int mTotalOffset = 0; + + private boolean mCellIsMobile = false; + private boolean mIsMobileScrolling = false; + private int mSmoothScrollAmountAtEdge = 0; + + private final int INVALID_ID = -1; + private long mAboveItemId = INVALID_ID; + private long mMobileItemId = INVALID_ID; + private long mBelowItemId = INVALID_ID; + + private Drawable mHoverCell; + private Rect mHoverCellCurrentBounds; + private Rect mHoverCellOriginalBounds; + + private final int INVALID_POINTER_ID = -1; + private int mActivePointerId = INVALID_POINTER_ID; + + private boolean mIsWaitingForScrollFinish = false; + private int mScrollState = OnScrollListener.SCROLL_STATE_IDLE; + + private OnTouchListener mOnTouchListener; + private boolean mIsParentHorizontalScrollContainer; + private int mResIdOfDynamicTouchChild; + private boolean mDynamicTouchChildTouched; + private int mSlop; + + private boolean mSkipCallingOnTouchListener; + + private OnHoverCellListener mOnHoverCellListener; + + private OnItemMovedListener mOnItemMovedListener; private int mLastMovedToIndex; - public interface OnHoverCellListener { - public Drawable onHoverCellCreated(Drawable hoverCellDrawable); - } - - private final int SMOOTH_SCROLL_AMOUNT_AT_EDGE = 15; - private final int MOVE_DURATION = 150; - - private int mLastEventY = -1, mLastEventX = -1; - - private int mDownY = -1; - private int mDownX = -1; - - private int mTotalOffset = 0; - - private boolean mCellIsMobile = false; - private boolean mIsMobileScrolling = false; - private int mSmoothScrollAmountAtEdge = 0; - - private final int INVALID_ID = -1; - private long mAboveItemId = INVALID_ID; - private long mMobileItemId = INVALID_ID; - private long mBelowItemId = INVALID_ID; - - private Drawable mHoverCell; - private Rect mHoverCellCurrentBounds; - private Rect mHoverCellOriginalBounds; - - private final int INVALID_POINTER_ID = -1; - private int mActivePointerId = INVALID_POINTER_ID; - - private boolean mIsWaitingForScrollFinish = false; - private int mScrollState = OnScrollListener.SCROLL_STATE_IDLE; - - private OnTouchListener mOnTouchListener; - private boolean mIsParentHorizontalScrollContainer; - private int mResIdOfDynamicTouchChild; - private boolean mDynamicTouchChildTouched; - private int mSlop; - - private boolean mSkipCallingOnTouchListener; - - private OnHoverCellListener mOnHoverCellListener; - - public DynamicListView(Context context) { - super(context); - init(context); - } - - public DynamicListView(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - init(context); - } - - public DynamicListView(Context context, AttributeSet attrs) { - super(context, attrs); - init(context); - } - - public void init(Context context) { - setOnItemLongClickListener(mOnItemLongClickListener); - setOnScrollListener(mScrollListener); - DisplayMetrics metrics = context.getResources().getDisplayMetrics(); - mSmoothScrollAmountAtEdge = (int) (SMOOTH_SCROLL_AMOUNT_AT_EDGE / metrics.density); - ViewConfiguration vc = ViewConfiguration.get(getContext()); - mSlop = vc.getScaledTouchSlop(); - } - - public void setAdapter(BaseAdapter adapter) { - super.setAdapter(adapter); - } - - @Override - @Deprecated - /** - * @deprecated use #setAdapter(BaseAdapter) instead. - */ - public void setAdapter(ListAdapter adapter) { - throw new IllegalArgumentException("DynamicListView needs a BaseAdapter!"); - } - - /** - * Listens for long clicks on any items in the listview. When a cell has - * been selected, the hover cell is created and set up. - */ - private OnItemLongClickListener mOnItemLongClickListener = new OnItemLongClickListener() { - public boolean onItemLongClick(AdapterView arg0, View arg1, int pos, long id) { - if (mResIdOfDynamicTouchChild == 0) { - mDynamicTouchChildTouched = true; - makeCellMobile(); - return true; - } - return false; - } - }; - - private void makeCellMobile() { - int position = pointToPosition(mDownX, mDownY); - int itemNum = position - getFirstVisiblePosition(); - View selectedView = getChildAt(itemNum); - if (selectedView == null) { - return; - } - - mTotalOffset = 0; - - mMobileItemId = getAdapter().getItemId(position); - mHoverCell = getAndAddHoverView(selectedView); - if (mOnHoverCellListener != null) { - mHoverCell = mOnHoverCellListener.onHoverCellCreated(mHoverCell); - } - selectedView.setVisibility(INVISIBLE); - - mCellIsMobile = true; - getParent().requestDisallowInterceptTouchEvent(true); - - updateNeighborViewsForID(mMobileItemId); - - } - - /** - * Creates the hover cell with the appropriate bitmap and of appropriate - * size. The hover cell's BitmapDrawable is drawn on top of the bitmap every - * single time an invalidate call is made. - */ - private BitmapDrawable getAndAddHoverView(View v) { - - int w = v.getWidth(); - int h = v.getHeight(); - int top = v.getTop(); - int left = v.getLeft(); - - Bitmap b = getBitmapFromView(v); - - BitmapDrawable drawable = new BitmapDrawable(getResources(), b); - - mHoverCellOriginalBounds = new Rect(left, top, left + w, top + h); - mHoverCellCurrentBounds = new Rect(mHoverCellOriginalBounds); - - drawable.setBounds(mHoverCellCurrentBounds); - - return drawable; - } - - /** Returns a bitmap showing a screenshot of the view passed in. */ - private Bitmap getBitmapFromView(View v) { - Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); - Canvas canvas = new Canvas(bitmap); - v.draw(canvas); - return bitmap; - } - - /** - * Stores a reference to the views above and below the item currently - * corresponding to the hover cell. It is important to note that if this - * item is either at the top or bottom of the list, mAboveItemId or mBelowItemId - * may be invalid. - */ - private void updateNeighborViewsForID(long itemID) { - int position = getPositionForID(itemID); - ListAdapter adapter = getAdapter(); - if (!adapter.hasStableIds()) { - throw new IllegalStateException("Adapter doesn't have stable ids! Make sure your adapter has stable ids, and override hasStableIds() to return true."); - } - - mAboveItemId = position - 1 >= 0 ? adapter.getItemId(position - 1) : INVALID_ROW_ID; - mBelowItemId = position + 1 < adapter.getCount() ? adapter.getItemId(position + 1) : INVALID_ROW_ID; - } - - /** Retrieves the view in the list corresponding to itemID */ - public View getViewForID(long itemID) { - int firstVisiblePosition = getFirstVisiblePosition(); - ListAdapter adapter = getAdapter(); - if (!adapter.hasStableIds()) { - throw new IllegalStateException("Adapter doesn't have stable ids! Make sure your adapter has stable ids, and override hasStableIds() to return true."); - } - - for (int i = 0; i < getChildCount(); i++) { - View v = getChildAt(i); - int position = firstVisiblePosition + i; - long id = adapter.getItemId(position); - if (id == itemID) { - return v; - } - } - return null; - } - - /** Retrieves the position in the list corresponding to itemID */ - public int getPositionForID(long itemID) { - View v = getViewForID(itemID); - if (v == null) { - return -1; - } else { - return getPositionForView(v); - } - } - - /** - * dispatchDraw gets invoked when all the child views are about to be drawn. - * By overriding this method, the hover cell (BitmapDrawable) can be drawn - * over the listview's items whenever the listview is redrawn. - */ - @Override - protected void dispatchDraw(Canvas canvas) { - super.dispatchDraw(canvas); - if (mHoverCell != null) { - mHoverCell.draw(canvas); - } - } - - @Override - public void setOnTouchListener(OnTouchListener l) { - mOnTouchListener = l; - } - - public void setOnHoverCellListener(OnHoverCellListener onHoverCellListener) { - mOnHoverCellListener = onHoverCellListener; - } - - private Rect getChildViewRect(View parentView, View childView) { - final Rect childRect = new Rect(childView.getLeft(), childView.getTop(), childView.getRight(), childView.getBottom()); - if (parentView == childView) { - return childRect; - } - - ViewGroup parent; - while ((parent = (ViewGroup) childView.getParent()) != parentView) { - childRect.offset(parent.getLeft(), parent.getTop()); - childView = parent; - } - - return childRect; - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - if (mSkipCallingOnTouchListener) { - return super.onTouchEvent(event); - } - - if (mOnTouchListener instanceof SwipeOnTouchListener) { - if (((SwipeOnTouchListener) mOnTouchListener).isSwiping()) { - mSkipCallingOnTouchListener = true; - boolean retVal = mOnTouchListener.onTouch(this, event); - mSkipCallingOnTouchListener = false; - return retVal ? true : super.onTouchEvent(event); - } - } - - switch (event.getAction() & MotionEvent.ACTION_MASK) { - case MotionEvent.ACTION_DOWN: - mDownX = (int) event.getX(); - mDownY = (int) event.getY(); - mActivePointerId = event.getPointerId(0); - - mDynamicTouchChildTouched = false; - if (mResIdOfDynamicTouchChild != 0) { - mIsParentHorizontalScrollContainer = false; - - int position = pointToPosition(mDownX, mDownY); - int childNum = (position != INVALID_POSITION) ? position - getFirstVisiblePosition() : -1; - View itemView = (childNum >= 0) ? getChildAt(childNum) : null; - View childView = (itemView != null) ? itemView.findViewById(mResIdOfDynamicTouchChild) : null; - if (childView != null) { - final Rect childRect = getChildViewRect(this, childView); - if (childRect.contains(mDownX, mDownY)) { - mDynamicTouchChildTouched = true; - getParent().requestDisallowInterceptTouchEvent(true); - } - } - } - - if (mIsParentHorizontalScrollContainer) { - // Do it now and don't wait until the user moves more than the - // slop factor. - getParent().requestDisallowInterceptTouchEvent(true); - } - break; - case MotionEvent.ACTION_MOVE: - if (mActivePointerId == INVALID_POINTER_ID) { - break; - } - - int pointerIndex = event.findPointerIndex(mActivePointerId); - - mLastEventY = (int) event.getY(pointerIndex); - mLastEventX = (int) event.getX(pointerIndex); - int deltaY = mLastEventY - mDownY; - int deltaX = mLastEventX - mDownX; - - if (!mCellIsMobile && mDynamicTouchChildTouched) { - if ((Math.abs(deltaY) > mSlop) && (Math.abs(deltaY) > Math.abs(deltaX))) { - makeCellMobile(); - - // Cancel ListView's touch (un-highlighting the item) - MotionEvent cancelEvent = MotionEvent.obtain(event); - cancelEvent.setAction(MotionEvent.ACTION_CANCEL | (event.getActionIndex() << MotionEvent.ACTION_POINTER_INDEX_SHIFT)); - super.onTouchEvent(cancelEvent); - cancelEvent.recycle(); - } - } - - if (mCellIsMobile) { - mHoverCellCurrentBounds.offsetTo(mHoverCellOriginalBounds.left, mHoverCellOriginalBounds.top + deltaY + mTotalOffset); - mHoverCell.setBounds(mHoverCellCurrentBounds); - invalidate(); - - handleCellSwitch(); - - mIsMobileScrolling = false; - handleMobileCellScroll(); - } - break; - case MotionEvent.ACTION_UP: - mDynamicTouchChildTouched = false; - touchEventsEnded(); - break; - case MotionEvent.ACTION_CANCEL: - mDynamicTouchChildTouched = false; - touchEventsCancelled(); - break; - case MotionEvent.ACTION_POINTER_UP: - /* - * If a multitouch event took place and the original touch dictating + public DynamicListView(Context context) { + super(context); + init(context); + } + + public DynamicListView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(context); + } + + public DynamicListView(Context context, AttributeSet attrs) { + super(context, attrs); + init(context); + } + + public void init(Context context) { + setOnItemLongClickListener(mOnItemLongClickListener); + setOnScrollListener(mScrollListener); + DisplayMetrics metrics = context.getResources().getDisplayMetrics(); + mSmoothScrollAmountAtEdge = (int) (SMOOTH_SCROLL_AMOUNT_AT_EDGE / metrics.density); + ViewConfiguration vc = ViewConfiguration.get(getContext()); + mSlop = vc.getScaledTouchSlop(); + } + + public void setAdapter(BaseAdapter adapter) { + super.setAdapter(adapter); + } + + @Override + @Deprecated + /** + * @deprecated use #setAdapter(BaseAdapter) instead. + */ + public void setAdapter(ListAdapter adapter) { + throw new IllegalArgumentException("DynamicListView needs a BaseAdapter!"); + } + + /** + * Listens for long clicks on any items in the listview. When a cell has + * been selected, the hover cell is created and set up. + */ + private OnItemLongClickListener mOnItemLongClickListener = new OnItemLongClickListener() { + public boolean onItemLongClick(AdapterView arg0, View arg1, int pos, long id) { + if (mResIdOfDynamicTouchChild == 0) { + mDynamicTouchChildTouched = true; + makeCellMobile(); + return true; + } + return false; + } + }; + + private void makeCellMobile() { + int position = pointToPosition(mDownX, mDownY); + int itemNum = position - getFirstVisiblePosition(); + View selectedView = getChildAt(itemNum); + if (selectedView == null) { + return; + } + + mTotalOffset = 0; + + mMobileItemId = getAdapter().getItemId(position); + mHoverCell = getAndAddHoverView(selectedView); + if (mOnHoverCellListener != null) { + mHoverCell = mOnHoverCellListener.onHoverCellCreated(mHoverCell); + } + selectedView.setVisibility(INVISIBLE); + + mCellIsMobile = true; + getParent().requestDisallowInterceptTouchEvent(true); + + updateNeighborViewsForID(mMobileItemId); + + } + + /** + * Creates the hover cell with the appropriate bitmap and of appropriate + * size. The hover cell's BitmapDrawable is drawn on top of the bitmap every + * single time an invalidate call is made. + */ + private BitmapDrawable getAndAddHoverView(View v) { + + int w = v.getWidth(); + int h = v.getHeight(); + int top = v.getTop(); + int left = v.getLeft(); + + Bitmap b = getBitmapFromView(v); + + BitmapDrawable drawable = new BitmapDrawable(getResources(), b); + + mHoverCellOriginalBounds = new Rect(left, top, left + w, top + h); + mHoverCellCurrentBounds = new Rect(mHoverCellOriginalBounds); + + drawable.setBounds(mHoverCellCurrentBounds); + + return drawable; + } + + /** + * Returns a bitmap showing a screenshot of the view passed in. + */ + private Bitmap getBitmapFromView(View v) { + Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + v.draw(canvas); + return bitmap; + } + + /** + * Stores a reference to the views above and below the item currently + * corresponding to the hover cell. It is important to note that if this + * item is either at the top or bottom of the list, mAboveItemId or mBelowItemId + * may be invalid. + */ + private void updateNeighborViewsForID(long itemID) { + int position = getPositionForID(itemID); + ListAdapter adapter = getAdapter(); + if (!adapter.hasStableIds()) { + throw new IllegalStateException("Adapter doesn't have stable ids! Make sure your adapter has stable ids, and override hasStableIds() to return true."); + } + + mAboveItemId = position - 1 >= 0 ? adapter.getItemId(position - 1) : INVALID_ROW_ID; + mBelowItemId = position + 1 < adapter.getCount() ? adapter.getItemId(position + 1) : INVALID_ROW_ID; + } + + /** + * Retrieves the view in the list corresponding to itemID + */ + public View getViewForID(long itemID) { + int firstVisiblePosition = getFirstVisiblePosition(); + ListAdapter adapter = getAdapter(); + if (!adapter.hasStableIds()) { + throw new IllegalStateException("Adapter doesn't have stable ids! Make sure your adapter has stable ids, and override hasStableIds() to return true."); + } + + for (int i = 0; i < getChildCount(); i++) { + View v = getChildAt(i); + int position = firstVisiblePosition + i; + long id = adapter.getItemId(position); + if (id == itemID) { + return v; + } + } + return null; + } + + /** + * Retrieves the position in the list corresponding to itemID + */ + public int getPositionForID(long itemID) { + View v = getViewForID(itemID); + if (v == null) { + return -1; + } else { + return getPositionForView(v); + } + } + + /** + * dispatchDraw gets invoked when all the child views are about to be drawn. + * By overriding this method, the hover cell (BitmapDrawable) can be drawn + * over the listview's items whenever the listview is redrawn. + */ + @Override + protected void dispatchDraw(Canvas canvas) { + super.dispatchDraw(canvas); + if (mHoverCell != null) { + mHoverCell.draw(canvas); + } + } + + @Override + public void setOnTouchListener(OnTouchListener l) { + mOnTouchListener = l; + } + + public void setOnHoverCellListener(OnHoverCellListener onHoverCellListener) { + mOnHoverCellListener = onHoverCellListener; + } + + private Rect getChildViewRect(View parentView, View childView) { + final Rect childRect = new Rect(childView.getLeft(), childView.getTop(), childView.getRight(), childView.getBottom()); + if (parentView == childView) { + return childRect; + } + + ViewGroup parent; + while ((parent = (ViewGroup) childView.getParent()) != parentView) { + childRect.offset(parent.getLeft(), parent.getTop()); + childView = parent; + } + + return childRect; + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + if (mSkipCallingOnTouchListener) { + return super.onTouchEvent(event); + } + + if (mOnTouchListener instanceof SwipeOnTouchListener) { + if (((SwipeOnTouchListener) mOnTouchListener).isSwiping()) { + mSkipCallingOnTouchListener = true; + boolean retVal = mOnTouchListener.onTouch(this, event); + mSkipCallingOnTouchListener = false; + return retVal ? true : super.onTouchEvent(event); + } + } + + switch (event.getAction() & MotionEvent.ACTION_MASK) { + case MotionEvent.ACTION_DOWN: + mDownX = (int) event.getX(); + mDownY = (int) event.getY(); + mActivePointerId = event.getPointerId(0); + + mDynamicTouchChildTouched = false; + if (mResIdOfDynamicTouchChild != 0) { + mIsParentHorizontalScrollContainer = false; + + int position = pointToPosition(mDownX, mDownY); + int childNum = (position != INVALID_POSITION) ? position - getFirstVisiblePosition() : -1; + View itemView = (childNum >= 0) ? getChildAt(childNum) : null; + View childView = (itemView != null) ? itemView.findViewById(mResIdOfDynamicTouchChild) : null; + if (childView != null) { + final Rect childRect = getChildViewRect(this, childView); + if (childRect.contains(mDownX, mDownY)) { + mDynamicTouchChildTouched = true; + getParent().requestDisallowInterceptTouchEvent(true); + } + } + } + + if (mIsParentHorizontalScrollContainer) { + // Do it now and don't wait until the user moves more than the + // slop factor. + getParent().requestDisallowInterceptTouchEvent(true); + } + break; + case MotionEvent.ACTION_MOVE: + if (mActivePointerId == INVALID_POINTER_ID) { + break; + } + + int pointerIndex = event.findPointerIndex(mActivePointerId); + + mLastEventY = (int) event.getY(pointerIndex); + mLastEventX = (int) event.getX(pointerIndex); + int deltaY = mLastEventY - mDownY; + int deltaX = mLastEventX - mDownX; + + if (!mCellIsMobile && mDynamicTouchChildTouched) { + if ((Math.abs(deltaY) > mSlop) && (Math.abs(deltaY) > Math.abs(deltaX))) { + makeCellMobile(); + + // Cancel ListView's touch (un-highlighting the item) + MotionEvent cancelEvent = MotionEvent.obtain(event); + cancelEvent.setAction(MotionEvent.ACTION_CANCEL | (event.getActionIndex() << MotionEvent.ACTION_POINTER_INDEX_SHIFT)); + super.onTouchEvent(cancelEvent); + cancelEvent.recycle(); + } + } + + if (mCellIsMobile) { + mHoverCellCurrentBounds.offsetTo(mHoverCellOriginalBounds.left, mHoverCellOriginalBounds.top + deltaY + mTotalOffset); + mHoverCell.setBounds(mHoverCellCurrentBounds); + invalidate(); + + handleCellSwitch(); + + mIsMobileScrolling = false; + handleMobileCellScroll(); + } + break; + case MotionEvent.ACTION_UP: + mDynamicTouchChildTouched = false; + touchEventsEnded(); + break; + case MotionEvent.ACTION_CANCEL: + mDynamicTouchChildTouched = false; + touchEventsCancelled(); + break; + case MotionEvent.ACTION_POINTER_UP: + /* + * If a multitouch event took place and the original touch dictating * the movement of the hover cell has ended, then the dragging event * ends and the hover cell is animated to its corresponding position * in the listview. */ - pointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT; - final int pointerId = event.getPointerId(pointerIndex); - if (pointerId == mActivePointerId) { - mDynamicTouchChildTouched = false; - touchEventsEnded(); - } - break; - default: - break; - } - - if (mCellIsMobile) { - return false; - } else if (mOnTouchListener != null) { - mSkipCallingOnTouchListener = true; - boolean retVal = mOnTouchListener.onTouch(this, event); - mSkipCallingOnTouchListener = false; - if (retVal) { - return true; - } - } - return super.onTouchEvent(event); - } - - /** - * This method determines whether the hover cell has been shifted far enough - * to invoke a cell swap. If so, then the respective cell swap candidate is - * determined and the data set is changed. Upon posting a notification of the - * data set change, a layout is invoked to place the cells in the right place. - * Using a ViewTreeObserver and a corresponding OnPreDrawListener, we can - * offset the cell being swapped to where it previously was and then animate it to - * its new position. - */ - private void handleCellSwitch() { - final int deltaY = mLastEventY - mDownY; - int deltaYTotal = mHoverCellOriginalBounds.top + mTotalOffset + deltaY; - - View belowView = getViewForID(mBelowItemId); - View mobileView = getViewForID(mMobileItemId); - View aboveView = getViewForID(mAboveItemId); - - boolean isBelow = (belowView != null) && (deltaYTotal > belowView.getTop()); - boolean isAbove = (aboveView != null) && (deltaYTotal < aboveView.getTop()); - - if (isBelow || isAbove) { - - final long switchItemID = isBelow ? mBelowItemId : mAboveItemId; - View switchView = isBelow ? belowView : aboveView; - final int originalItem = getPositionForView(mobileView); - - if (switchView == null) { - updateNeighborViewsForID(mMobileItemId); - return; - } - - swapElements(originalItem, getPositionForView(switchView)); - - BaseAdapter adapter; - if (getAdapter() instanceof HeaderViewListAdapter) { - adapter = (BaseAdapter) ((HeaderViewListAdapter) getAdapter()).getWrappedAdapter(); - } else { - adapter = (BaseAdapter) getAdapter(); - } - adapter.notifyDataSetChanged(); - - mDownY = mLastEventY; - mDownX = mLastEventX; - - final int switchViewStartTop = switchView.getTop(); - - mobileView.setVisibility(View.VISIBLE); - switchView.setVisibility(View.INVISIBLE); - - updateNeighborViewsForID(mMobileItemId); - - final ViewTreeObserver observer = getViewTreeObserver(); - observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { - public boolean onPreDraw() { - observer.removeOnPreDrawListener(this); - - View switchView = getViewForID(switchItemID); - - mTotalOffset += deltaY; - - int switchViewNewTop = switchView.getTop(); - int delta = switchViewStartTop - switchViewNewTop; - - ViewHelper.setTranslationY(switchView, delta); - - ObjectAnimator animator = ObjectAnimator.ofFloat(switchView, "translationY", 0); - animator.setDuration(MOVE_DURATION); - animator.start(); - - return true; - } - }); - } - } - - private void swapElements(int indexOne, int indexTwo) { + pointerIndex = (event.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT; + final int pointerId = event.getPointerId(pointerIndex); + if (pointerId == mActivePointerId) { + mDynamicTouchChildTouched = false; + touchEventsEnded(); + } + break; + default: + break; + } + + if (mCellIsMobile) { + return false; + } else if (mOnTouchListener != null) { + mSkipCallingOnTouchListener = true; + boolean retVal = mOnTouchListener.onTouch(this, event); + mSkipCallingOnTouchListener = false; + if (retVal) { + return true; + } + } + return super.onTouchEvent(event); + } + + /** + * This method determines whether the hover cell has been shifted far enough + * to invoke a cell swap. If so, then the respective cell swap candidate is + * determined and the data set is changed. Upon posting a notification of the + * data set change, a layout is invoked to place the cells in the right place. + * Using a ViewTreeObserver and a corresponding OnPreDrawListener, we can + * offset the cell being swapped to where it previously was and then animate it to + * its new position. + */ + private void handleCellSwitch() { + final int deltaY = mLastEventY - mDownY; + int deltaYTotal = mHoverCellOriginalBounds.top + mTotalOffset + deltaY; + + View belowView = getViewForID(mBelowItemId); + View mobileView = getViewForID(mMobileItemId); + View aboveView = getViewForID(mAboveItemId); + + boolean isBelow = (belowView != null) && (deltaYTotal > belowView.getTop()); + boolean isAbove = (aboveView != null) && (deltaYTotal < aboveView.getTop()); + + if (isBelow || isAbove) { + + final long switchItemID = isBelow ? mBelowItemId : mAboveItemId; + View switchView = isBelow ? belowView : aboveView; + final int originalItem = getPositionForView(mobileView); + + if (switchView == null) { + updateNeighborViewsForID(mMobileItemId); + return; + } + + swapElements(originalItem, getPositionForView(switchView)); + + BaseAdapter adapter; + if (getAdapter() instanceof HeaderViewListAdapter) { + adapter = (BaseAdapter) ((HeaderViewListAdapter) getAdapter()).getWrappedAdapter(); + } else { + adapter = (BaseAdapter) getAdapter(); + } + adapter.notifyDataSetChanged(); + + mDownY = mLastEventY; + mDownX = mLastEventX; + + final int switchViewStartTop = switchView.getTop(); + + mobileView.setVisibility(View.VISIBLE); + switchView.setVisibility(View.INVISIBLE); + + updateNeighborViewsForID(mMobileItemId); + + final ViewTreeObserver observer = getViewTreeObserver(); + observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { + public boolean onPreDraw() { + observer.removeOnPreDrawListener(this); + + View switchView = getViewForID(switchItemID); + + mTotalOffset += deltaY; + + int switchViewNewTop = switchView.getTop(); + int delta = switchViewStartTop - switchViewNewTop; + + ViewHelper.setTranslationY(switchView, delta); + + ObjectAnimator animator = ObjectAnimator.ofFloat(switchView, "translationY", 0); + animator.setDuration(MOVE_DURATION); + animator.start(); + + return true; + } + }); + } + } + + private void swapElements(int indexOne, int indexTwo) { this.mLastMovedToIndex = indexTwo; - ListAdapter adapter = getAdapter(); - - if (adapter instanceof HeaderViewListAdapter) { - adapter = ((HeaderViewListAdapter) adapter).getWrappedAdapter(); - } - - if (adapter instanceof Swappable) { - ((Swappable) adapter).swapItems(indexOne - getHeaderViewsCount(), indexTwo - getHeaderViewsCount()); - } - } - - /** - * Resets all the appropriate fields to a default state while also animating - * the hover cell back to its correct location. - */ - private void touchEventsEnded() { - final View mobileView = getViewForID(mMobileItemId); - if (mCellIsMobile || mIsWaitingForScrollFinish) { - mCellIsMobile = false; - mIsWaitingForScrollFinish = false; - mIsMobileScrolling = false; - mActivePointerId = INVALID_POINTER_ID; - - // If the autoscroller has not completed scrolling, we need to wait - // for it to - // finish in order to determine the final location of where the - // hover cell - // should be animated to. - if (mScrollState != OnScrollListener.SCROLL_STATE_IDLE) { - mIsWaitingForScrollFinish = true; - return; - } - - mHoverCellCurrentBounds.offsetTo(mHoverCellOriginalBounds.left, mobileView.getTop()); - - ObjectAnimator hoverViewAnimator = ObjectAnimator.ofObject(mHoverCell, "bounds", sBoundEvaluator, mHoverCellCurrentBounds); - hoverViewAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - @Override - public void onAnimationUpdate(ValueAnimator valueAnimator) { - invalidate(); - } - }); - hoverViewAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(Animator animation) { - setEnabled(false); - } - - @Override - public void onAnimationEnd(Animator animation) { - mAboveItemId = INVALID_ID; - mMobileItemId = INVALID_ID; - mBelowItemId = INVALID_ID; - mobileView.setVisibility(VISIBLE); - mHoverCell = null; - setEnabled(true); - invalidate(); - if (mItemMovedListener != null) { - mItemMovedListener.onItemMoved(getAdapter().getItem(mLastMovedToIndex), mLastMovedToIndex); + ListAdapter adapter = getAdapter(); + + if (adapter instanceof HeaderViewListAdapter) { + adapter = ((HeaderViewListAdapter) adapter).getWrappedAdapter(); + } + + if (adapter instanceof Swappable) { + ((Swappable) adapter).swapItems(indexOne - getHeaderViewsCount(), indexTwo - getHeaderViewsCount()); + } + } + + /** + * Resets all the appropriate fields to a default state while also animating + * the hover cell back to its correct location. + */ + private void touchEventsEnded() { + final View mobileView = getViewForID(mMobileItemId); + if (mCellIsMobile || mIsWaitingForScrollFinish) { + mCellIsMobile = false; + mIsWaitingForScrollFinish = false; + mIsMobileScrolling = false; + mActivePointerId = INVALID_POINTER_ID; + + // If the autoscroller has not completed scrolling, we need to wait + // for it to + // finish in order to determine the final location of where the + // hover cell + // should be animated to. + if (mScrollState != OnScrollListener.SCROLL_STATE_IDLE) { + mIsWaitingForScrollFinish = true; + return; + } + + mHoverCellCurrentBounds.offsetTo(mHoverCellOriginalBounds.left, mobileView.getTop()); + + ObjectAnimator hoverViewAnimator = ObjectAnimator.ofObject(mHoverCell, "bounds", sBoundEvaluator, mHoverCellCurrentBounds); + hoverViewAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator valueAnimator) { + invalidate(); + } + }); + hoverViewAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animation) { + setEnabled(false); + } + + @Override + public void onAnimationEnd(Animator animation) { + mAboveItemId = INVALID_ID; + mMobileItemId = INVALID_ID; + mBelowItemId = INVALID_ID; + mobileView.setVisibility(VISIBLE); + mHoverCell = null; + setEnabled(true); + invalidate(); + if (mOnItemMovedListener != null) { + mOnItemMovedListener.onItemMoved(mLastMovedToIndex); } - } - }); - hoverViewAnimator.start(); - } else { - touchEventsCancelled(); - } - } - - /** - * Resets all the appropriate fields to a default state. - */ - private void touchEventsCancelled() { - View mobileView = getViewForID(mMobileItemId); - if (mCellIsMobile) { - mAboveItemId = INVALID_ID; - mMobileItemId = INVALID_ID; - mBelowItemId = INVALID_ID; - mobileView.setVisibility(VISIBLE); - mHoverCell = null; - invalidate(); - } - mCellIsMobile = false; - mIsMobileScrolling = false; - mActivePointerId = INVALID_POINTER_ID; - } - - /** - * This TypeEvaluator is used to animate the BitmapDrawable back to its - * final location when the user lifts his finger by modifying the - * BitmapDrawable's bounds. - */ - private final static TypeEvaluator sBoundEvaluator = new TypeEvaluator() { - public Rect evaluate(float fraction, Rect startValue, Rect endValue) { - return new Rect(interpolate(startValue.left, endValue.left, fraction), interpolate(startValue.top, endValue.top, fraction), interpolate(startValue.right, endValue.right, fraction), - interpolate(startValue.bottom, endValue.bottom, fraction)); - } - - public int interpolate(int start, int end, float fraction) { - return (int) (start + fraction * (end - start)); - } - }; - - /** - * Determines whether this listview is in a scrolling state invoked - * by the fact that the hover cell is out of the bounds of the listview; - */ - private void handleMobileCellScroll() { - mIsMobileScrolling = handleMobileCellScroll(mHoverCellCurrentBounds); - } - - /** - * This method is in charge of determining if the hover cell is above - * or below the bounds of the listview. If so, the listview does an appropriate - * upward or downward smooth scroll so as to reveal new items. - */ - public boolean handleMobileCellScroll(Rect r) { - int offset = computeVerticalScrollOffset(); - int height = getHeight(); - int extent = computeVerticalScrollExtent(); - int range = computeVerticalScrollRange(); - int hoverViewTop = r.top; - int hoverHeight = r.height(); - - if (hoverViewTop <= 0 && offset > 0) { - smoothScrollBy(-mSmoothScrollAmountAtEdge, 0); - return true; - } - - if (hoverViewTop + hoverHeight >= height && (offset + extent) < range) { - smoothScrollBy(mSmoothScrollAmountAtEdge, 0); - return true; - } - - return false; - } - - public void setIsParentHorizontalScrollContainer(boolean isParentHorizontalScrollContainer) { - mIsParentHorizontalScrollContainer = (mResIdOfDynamicTouchChild == 0) ? isParentHorizontalScrollContainer : false; - } - - public boolean isParentHorizontalScrollContainer() { - return mIsParentHorizontalScrollContainer; - } - - public void setDynamicTouchChild(int childResId) { - mResIdOfDynamicTouchChild = childResId; - if (childResId != 0) { - setIsParentHorizontalScrollContainer(false); - } - } - - /** - * This scroll listener is added to the listview in order to handle cell swapping - * when the cell is either at the top or bottom edge of the listview. If the hover - * cell is at either edge of the listview, the listview will begin scrolling. As - * scrolling takes place, the listview continuously checks if new cells became visible - * and determines whether they are potential candidates for a cell swap. - */ - private OnScrollListener mScrollListener = new OnScrollListener() { - - private int mPreviousFirstVisibleItem = -1; - private int mPreviousVisibleItemCount = -1; - private int mCurrentFirstVisibleItem; - private int mCurrentVisibleItemCount; - private int mCurrentScrollState; - - public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { - mCurrentFirstVisibleItem = firstVisibleItem; - mCurrentVisibleItemCount = visibleItemCount; - - mPreviousFirstVisibleItem = (mPreviousFirstVisibleItem == -1) ? mCurrentFirstVisibleItem : mPreviousFirstVisibleItem; - mPreviousVisibleItemCount = (mPreviousVisibleItemCount == -1) ? mCurrentVisibleItemCount : mPreviousVisibleItemCount; - - checkAndHandleFirstVisibleCellChange(); - checkAndHandleLastVisibleCellChange(); - - mPreviousFirstVisibleItem = mCurrentFirstVisibleItem; - mPreviousVisibleItemCount = mCurrentVisibleItemCount; - } - - @Override - public void onScrollStateChanged(AbsListView view, int scrollState) { - mCurrentScrollState = scrollState; - mScrollState = scrollState; - isScrollCompleted(); - } - - /** - * This method is in charge of invoking 1 of 2 actions. Firstly, if the listview - * is in a state of scrolling invoked by the hover cell being outside the bounds - * of the listview, then this scrolling event is continued. Secondly, if the hover - * cell has already been released, this invokes the animation for the hover cell - * to return to its correct position after the listview has entered an idle scroll - * state. - */ - private void isScrollCompleted() { - if (mCurrentVisibleItemCount > 0 && mCurrentScrollState == SCROLL_STATE_IDLE) { - if (mCellIsMobile && mIsMobileScrolling) { - handleMobileCellScroll(); - } else if (mIsWaitingForScrollFinish) { - touchEventsEnded(); - } - } - } - - /** - * Determines if the listview scrolled up enough to reveal a new cell at the - * top of the list. If so, then the appropriate parameters are updated. - */ - public void checkAndHandleFirstVisibleCellChange() { - if (mCurrentFirstVisibleItem != mPreviousFirstVisibleItem) { - if (mCellIsMobile && mMobileItemId != INVALID_ID) { - updateNeighborViewsForID(mMobileItemId); - handleCellSwitch(); - } - } - } - - /** - * Determines if the listview scrolled down enough to reveal a new cell at the - * bottom of the list. If so, then the appropriate parameters are updated. - */ - public void checkAndHandleLastVisibleCellChange() { - int currentLastVisibleItem = mCurrentFirstVisibleItem + mCurrentVisibleItemCount; - int previousLastVisibleItem = mPreviousFirstVisibleItem + mPreviousVisibleItemCount; - if (currentLastVisibleItem != previousLastVisibleItem) { - if (mCellIsMobile && mMobileItemId != INVALID_ID) { - updateNeighborViewsForID(mMobileItemId); - handleCellSwitch(); - } - } - } - }; + } + }); + hoverViewAnimator.start(); + } else { + touchEventsCancelled(); + } + } + + /** + * Resets all the appropriate fields to a default state. + */ + private void touchEventsCancelled() { + View mobileView = getViewForID(mMobileItemId); + if (mCellIsMobile) { + mAboveItemId = INVALID_ID; + mMobileItemId = INVALID_ID; + mBelowItemId = INVALID_ID; + mobileView.setVisibility(VISIBLE); + mHoverCell = null; + invalidate(); + } + mCellIsMobile = false; + mIsMobileScrolling = false; + mActivePointerId = INVALID_POINTER_ID; + } + + /** + * This TypeEvaluator is used to animate the BitmapDrawable back to its + * final location when the user lifts his finger by modifying the + * BitmapDrawable's bounds. + */ + private final static TypeEvaluator sBoundEvaluator = new TypeEvaluator() { + public Rect evaluate(float fraction, Rect startValue, Rect endValue) { + return new Rect(interpolate(startValue.left, endValue.left, fraction), interpolate(startValue.top, endValue.top, fraction), interpolate(startValue.right, endValue.right, fraction), + interpolate(startValue.bottom, endValue.bottom, fraction)); + } + + public int interpolate(int start, int end, float fraction) { + return (int) (start + fraction * (end - start)); + } + }; + + /** + * Determines whether this listview is in a scrolling state invoked + * by the fact that the hover cell is out of the bounds of the listview; + */ + private void handleMobileCellScroll() { + mIsMobileScrolling = handleMobileCellScroll(mHoverCellCurrentBounds); + } /** - * Set item moved listener + * This method is in charge of determining if the hover cell is above + * or below the bounds of the listview. If so, the listview does an appropriate + * upward or downward smooth scroll so as to reveal new items. */ - public void setItemMovedListener(ItemMovedListener itemMovedListener) { - this.mItemMovedListener = itemMovedListener; + public boolean handleMobileCellScroll(Rect r) { + int offset = computeVerticalScrollOffset(); + int height = getHeight(); + int extent = computeVerticalScrollExtent(); + int range = computeVerticalScrollRange(); + int hoverViewTop = r.top; + int hoverHeight = r.height(); + + if (hoverViewTop <= 0 && offset > 0) { + smoothScrollBy(-mSmoothScrollAmountAtEdge, 0); + return true; + } + + if (hoverViewTop + hoverHeight >= height && (offset + extent) < range) { + smoothScrollBy(mSmoothScrollAmountAtEdge, 0); + return true; + } + + return false; + } + + public void setIsParentHorizontalScrollContainer(boolean isParentHorizontalScrollContainer) { + mIsParentHorizontalScrollContainer = (mResIdOfDynamicTouchChild == 0) ? isParentHorizontalScrollContainer : false; + } + + public boolean isParentHorizontalScrollContainer() { + return mIsParentHorizontalScrollContainer; } - /** - * Interface, usually implemented by a {@link com.haarman.listviewanimations.BaseAdapterDecorator}, - * that indicates that it can swap the visual position of two list items. - * - * @author Anton Spaans on 9/11/13. - */ - public interface Swappable { - - /** - * Swaps the item on the first adapter position with the item on the second adapter position. - * Be sure to call {@link android.widget.BaseAdapter#notifyDataSetChanged()} if appropriate. - * - * @param positionOne First adapter position. - * @param positionTwo Second adapter position. - */ - public void swapItems(int positionOne, int positionTwo); - } + public void setDynamicTouchChild(int childResId) { + mResIdOfDynamicTouchChild = childResId; + if (childResId != 0) { + setIsParentHorizontalScrollContainer(false); + } + } + + /** + * This scroll listener is added to the listview in order to handle cell swapping + * when the cell is either at the top or bottom edge of the listview. If the hover + * cell is at either edge of the listview, the listview will begin scrolling. As + * scrolling takes place, the listview continuously checks if new cells became visible + * and determines whether they are potential candidates for a cell swap. + */ + private OnScrollListener mScrollListener = new OnScrollListener() { + + private int mPreviousFirstVisibleItem = -1; + private int mPreviousVisibleItemCount = -1; + private int mCurrentFirstVisibleItem; + private int mCurrentVisibleItemCount; + private int mCurrentScrollState; + + public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { + mCurrentFirstVisibleItem = firstVisibleItem; + mCurrentVisibleItemCount = visibleItemCount; + + mPreviousFirstVisibleItem = (mPreviousFirstVisibleItem == -1) ? mCurrentFirstVisibleItem : mPreviousFirstVisibleItem; + mPreviousVisibleItemCount = (mPreviousVisibleItemCount == -1) ? mCurrentVisibleItemCount : mPreviousVisibleItemCount; + + checkAndHandleFirstVisibleCellChange(); + checkAndHandleLastVisibleCellChange(); + + mPreviousFirstVisibleItem = mCurrentFirstVisibleItem; + mPreviousVisibleItemCount = mCurrentVisibleItemCount; + } + + @Override + public void onScrollStateChanged(AbsListView view, int scrollState) { + mCurrentScrollState = scrollState; + mScrollState = scrollState; + isScrollCompleted(); + } + + /** + * This method is in charge of invoking 1 of 2 actions. Firstly, if the listview + * is in a state of scrolling invoked by the hover cell being outside the bounds + * of the listview, then this scrolling event is continued. Secondly, if the hover + * cell has already been released, this invokes the animation for the hover cell + * to return to its correct position after the listview has entered an idle scroll + * state. + */ + private void isScrollCompleted() { + if (mCurrentVisibleItemCount > 0 && mCurrentScrollState == SCROLL_STATE_IDLE) { + if (mCellIsMobile && mIsMobileScrolling) { + handleMobileCellScroll(); + } else if (mIsWaitingForScrollFinish) { + touchEventsEnded(); + } + } + } + + /** + * Determines if the listview scrolled up enough to reveal a new cell at the + * top of the list. If so, then the appropriate parameters are updated. + */ + public void checkAndHandleFirstVisibleCellChange() { + if (mCurrentFirstVisibleItem != mPreviousFirstVisibleItem) { + if (mCellIsMobile && mMobileItemId != INVALID_ID) { + updateNeighborViewsForID(mMobileItemId); + handleCellSwitch(); + } + } + } + + /** + * Determines if the listview scrolled down enough to reveal a new cell at the + * bottom of the list. If so, then the appropriate parameters are updated. + */ + public void checkAndHandleLastVisibleCellChange() { + int currentLastVisibleItem = mCurrentFirstVisibleItem + mCurrentVisibleItemCount; + int previousLastVisibleItem = mPreviousFirstVisibleItem + mPreviousVisibleItemCount; + if (currentLastVisibleItem != previousLastVisibleItem) { + if (mCellIsMobile && mMobileItemId != INVALID_ID) { + updateNeighborViewsForID(mMobileItemId); + handleCellSwitch(); + } + } + } + }; + + /** + * Set the {@link com.haarman.listviewanimations.view.DynamicListView.OnItemMovedListener} to be notified when an item is dropped. + */ + public void setOnItemMovedListener(OnItemMovedListener onItemMovedListener) { + this.mOnItemMovedListener = onItemMovedListener; + } + + /** + * Interface, usually implemented by a {@link com.haarman.listviewanimations.BaseAdapterDecorator}, + * that indicates that it can swap the visual position of two list items. + * + * @author Anton Spaans on 9/11/13. + */ + public interface Swappable { + + /** + * Swaps the item on the first adapter position with the item on the second adapter position. + * Be sure to call {@link android.widget.BaseAdapter#notifyDataSetChanged()} if appropriate. + * + * @param positionOne First adapter position. + * @param positionTwo Second adapter position. + */ + public void swapItems(int positionOne, int positionTwo); + } } \ No newline at end of file From e4ec8377f47f9524481b17c87ae204cb0a14b44a Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Sun, 8 Dec 2013 18:10:09 +0100 Subject: [PATCH 21/69] Finishing touches --- .../itemmanipulationexamples/DragAndDropActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java index 97eb2769..28cf9441 100644 --- a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java +++ b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java @@ -31,7 +31,7 @@ protected void onCreate(Bundle savedInstanceState) { mListView.setOnItemMovedListener(new DynamicListView.OnItemMovedListener() { @Override public void onItemMoved(int newPosition) { - Toast.makeText(getApplicationContext(), adapter.getItem(newPosition) + " moved to position" + newPosition, Toast.LENGTH_LONG).show(); + Toast.makeText(getApplicationContext(), adapter.getItem(newPosition) + " moved to position " + newPosition, Toast.LENGTH_SHORT).show(); } }); } From 76f3b90826059afc928968642b8bb7e21952985c Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Sun, 8 Dec 2013 18:56:13 +0100 Subject: [PATCH 22/69] Renamed package com.haarman to com.nhaarman to reflect maven hosting --- example/res/layout/activity_draganddrop.xml | 2 +- .../GoogleCardsActivity.java | 7 ++--- .../listviewanimations/GridViewActivity.java | 2 +- .../listviewanimations/MainActivity.java | 4 +-- .../AppearanceExamplesActivity.java | 18 ++++++------- .../AnimateDismissActivity.java | 12 ++++----- .../DragAndDropActivity.java | 27 ++++++++++++++----- .../ExpandableListItemActivity.java | 26 +++++++++++++----- .../ItemManipulationsExamplesActivity.java | 2 +- .../SwipeDismissActivity.java | 16 +++++------ .../listviewanimations/ArrayAdapter.java | 6 ++--- .../BaseAdapterDecorator.java | 6 ++--- .../listviewanimations/ListViewSetter.java | 2 +- .../AnimateDismissAdapter.java | 4 +-- .../ExpandableListItemAdapter.java | 6 ++--- .../ExpandableListItemAdapter.java.orig | 0 .../itemmanipulation/OnDismissCallback.java | 2 +- .../itemmanipulation/SwipeDismissAdapter.java | 6 ++--- .../SwipeDismissListViewTouchListener.java | 2 +- .../SwipeOnScrollListener.java | 2 +- .../SwipeOnTouchListener.java | 2 +- .../contextualundo/ContextualUndoAdapter.java | 4 +-- .../ContextualUndoListViewTouchListener.java | 4 +-- .../contextualundo/ContextualUndoView.java | 2 +- .../swinginadapters/AnimationAdapter.java | 4 +-- .../ResourceAnimationAdapter.java | 2 +- .../SingleAnimationAdapter.java | 2 +- .../prepared/AlphaInAnimationAdapter.java | 4 +-- .../prepared/ScaleInAnimationAdapter.java | 4 +-- .../SwingBottomInAnimationAdapter.java | 4 +-- .../prepared/SwingLeftInAnimationAdapter.java | 4 +-- .../SwingRightInAnimationAdapter.java | 4 +-- .../view/DynamicListView.java | 10 +++---- 33 files changed, 116 insertions(+), 86 deletions(-) rename library/src/com/{haarman => nhaarman}/listviewanimations/ArrayAdapter.java (96%) rename library/src/com/{haarman => nhaarman}/listviewanimations/BaseAdapterDecorator.java (97%) rename library/src/com/{haarman => nhaarman}/listviewanimations/ListViewSetter.java (74%) rename library/src/com/{haarman => nhaarman}/listviewanimations/itemmanipulation/AnimateDismissAdapter.java (97%) rename library/src/com/{haarman => nhaarman}/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java (99%) rename library/src/com/{haarman => nhaarman}/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java.orig (100%) rename library/src/com/{haarman => nhaarman}/listviewanimations/itemmanipulation/OnDismissCallback.java (95%) rename library/src/com/{haarman => nhaarman}/listviewanimations/itemmanipulation/SwipeDismissAdapter.java (94%) rename library/src/com/{haarman => nhaarman}/listviewanimations/itemmanipulation/SwipeDismissListViewTouchListener.java (99%) rename library/src/com/{haarman => nhaarman}/listviewanimations/itemmanipulation/SwipeOnScrollListener.java (95%) rename library/src/com/{haarman => nhaarman}/listviewanimations/itemmanipulation/SwipeOnTouchListener.java (87%) rename library/src/com/{haarman => nhaarman}/listviewanimations/itemmanipulation/contextualundo/ContextualUndoAdapter.java (99%) rename library/src/com/{haarman => nhaarman}/listviewanimations/itemmanipulation/contextualundo/ContextualUndoListViewTouchListener.java (98%) rename library/src/com/{haarman => nhaarman}/listviewanimations/itemmanipulation/contextualundo/ContextualUndoView.java (96%) rename library/src/com/{haarman => nhaarman}/listviewanimations/swinginadapters/AnimationAdapter.java (98%) rename library/src/com/{haarman => nhaarman}/listviewanimations/swinginadapters/ResourceAnimationAdapter.java (96%) rename library/src/com/{haarman => nhaarman}/listviewanimations/swinginadapters/SingleAnimationAdapter.java (96%) rename library/src/com/{haarman => nhaarman}/listviewanimations/swinginadapters/prepared/AlphaInAnimationAdapter.java (81%) rename library/src/com/{haarman => nhaarman}/listviewanimations/swinginadapters/prepared/ScaleInAnimationAdapter.java (93%) rename library/src/com/{haarman => nhaarman}/listviewanimations/swinginadapters/prepared/SwingBottomInAnimationAdapter.java (93%) rename library/src/com/{haarman => nhaarman}/listviewanimations/swinginadapters/prepared/SwingLeftInAnimationAdapter.java (93%) rename library/src/com/{haarman => nhaarman}/listviewanimations/swinginadapters/prepared/SwingRightInAnimationAdapter.java (93%) rename library/src/com/{haarman => nhaarman}/listviewanimations/view/DynamicListView.java (98%) diff --git a/example/res/layout/activity_draganddrop.xml b/example/res/layout/activity_draganddrop.xml index 8ded6356..910fd2e9 100644 --- a/example/res/layout/activity_draganddrop.xml +++ b/example/res/layout/activity_draganddrop.xml @@ -1,7 +1,7 @@ - Date: Sun, 8 Dec 2013 19:07:09 +0100 Subject: [PATCH 23/69] Fixed imports --- .../listviewanimations/GridViewActivity.java | 2 + .../listviewanimations/MainActivity.java | 4 +- .../listviewanimations/MyListActivity.java | 2 + .../AppearanceExamplesActivity.java | 244 +++++++++--------- .../AnimateDismissActivity.java | 148 +++++------ .../DragAndDropActivity.java | 4 +- .../ExpandableListItemActivity.java | 4 +- .../ItemManipulationsExamplesActivity.java | 2 +- .../SwipeDismissActivity.java | 8 +- 9 files changed, 211 insertions(+), 207 deletions(-) diff --git a/example/src/com/haarman/listviewanimations/GridViewActivity.java b/example/src/com/haarman/listviewanimations/GridViewActivity.java index 387073aa..e0a56646 100644 --- a/example/src/com/haarman/listviewanimations/GridViewActivity.java +++ b/example/src/com/haarman/listviewanimations/GridViewActivity.java @@ -15,6 +15,8 @@ import android.view.ViewGroup; import android.widget.GridView; import android.widget.ImageView; + +import com.nhaarman.listviewanimations.ArrayAdapter; import com.nhaarman.listviewanimations.swinginadapters.prepared.SwingBottomInAnimationAdapter; public class GridViewActivity extends ActionBarActivity { diff --git a/example/src/com/haarman/listviewanimations/MainActivity.java b/example/src/com/haarman/listviewanimations/MainActivity.java index 859eec9a..2d2be850 100644 --- a/example/src/com/haarman/listviewanimations/MainActivity.java +++ b/example/src/com/haarman/listviewanimations/MainActivity.java @@ -39,8 +39,8 @@ import android.widget.Toast; import com.android.vending.billing.IInAppBillingService; -import com.nhaarman.listviewanimations.appearanceexamples.AppearanceExamplesActivity; -import com.nhaarman.listviewanimations.itemmanipulationexamples.ItemManipulationsExamplesActivity; +import com.haarman.listviewanimations.appearanceexamples.AppearanceExamplesActivity; +import com.haarman.listviewanimations.itemmanipulationexamples.ItemManipulationsExamplesActivity; public class MainActivity extends Activity { diff --git a/example/src/com/haarman/listviewanimations/MyListActivity.java b/example/src/com/haarman/listviewanimations/MyListActivity.java index eed7b271..e70d2237 100644 --- a/example/src/com/haarman/listviewanimations/MyListActivity.java +++ b/example/src/com/haarman/listviewanimations/MyListActivity.java @@ -25,6 +25,8 @@ import android.widget.ListView; import android.widget.TextView; +import com.nhaarman.listviewanimations.ArrayAdapter; + public class MyListActivity extends BaseActivity { private ListView mListView; diff --git a/example/src/com/haarman/listviewanimations/appearanceexamples/AppearanceExamplesActivity.java b/example/src/com/haarman/listviewanimations/appearanceexamples/AppearanceExamplesActivity.java index 7351c32c..cd702d4f 100644 --- a/example/src/com/haarman/listviewanimations/appearanceexamples/AppearanceExamplesActivity.java +++ b/example/src/com/haarman/listviewanimations/appearanceexamples/AppearanceExamplesActivity.java @@ -15,8 +15,6 @@ */ package com.haarman.listviewanimations.appearanceexamples; -import java.util.ArrayList; - import android.content.Context; import android.os.Bundle; import android.support.v7.app.ActionBar; @@ -27,9 +25,9 @@ import android.widget.BaseAdapter; import android.widget.TextView; +import com.haarman.listviewanimations.MyListActivity; +import com.haarman.listviewanimations.R; import com.nhaarman.listviewanimations.ArrayAdapter; -import com.nhaarman.listviewanimations.MyListActivity; -import com.nhaarman.listviewanimations.R; import com.nhaarman.listviewanimations.swinginadapters.AnimationAdapter; import com.nhaarman.listviewanimations.swinginadapters.prepared.AlphaInAnimationAdapter; import com.nhaarman.listviewanimations.swinginadapters.prepared.ScaleInAnimationAdapter; @@ -37,127 +35,129 @@ import com.nhaarman.listviewanimations.swinginadapters.prepared.SwingLeftInAnimationAdapter; import com.nhaarman.listviewanimations.swinginadapters.prepared.SwingRightInAnimationAdapter; +import java.util.ArrayList; + public class AppearanceExamplesActivity extends MyListActivity implements OnNavigationListener { - private BaseAdapter mAdapter; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - mAdapter = new MyAdapter(this, getItems()); - setAlphaAdapter(); - - getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); - getSupportActionBar().setListNavigationCallbacks(new AnimSelectionAdapter(), this); - getSupportActionBar().setDisplayShowTitleEnabled(false); - } - - private void setAlphaAdapter() { - AnimationAdapter animAdapter = new AlphaInAnimationAdapter(mAdapter); - animAdapter.setAbsListView(getListView()); - getListView().setAdapter(animAdapter); - } - - private void setLeftAdapter() { - AnimationAdapter animAdapter = new SwingLeftInAnimationAdapter(mAdapter); - animAdapter.setAbsListView(getListView()); - getListView().setAdapter(animAdapter); - } - - private void setRightAdapter() { - AnimationAdapter animAdapter = new SwingRightInAnimationAdapter(mAdapter); - animAdapter.setAbsListView(getListView()); - getListView().setAdapter(animAdapter); - } - - private void setBottomAdapter() { - AnimationAdapter animAdapter = new SwingBottomInAnimationAdapter(mAdapter); - animAdapter.setAbsListView(getListView()); - getListView().setAdapter(animAdapter); - } - - private void setBottomRightAdapter() { - AnimationAdapter animAdapter = new SwingBottomInAnimationAdapter(new SwingRightInAnimationAdapter(mAdapter)); - animAdapter.setAbsListView(getListView()); - getListView().setAdapter(animAdapter); - } - - private void setScaleAdapter() { - AnimationAdapter animAdapter = new ScaleInAnimationAdapter(mAdapter); - animAdapter.setAbsListView(getListView()); - getListView().setAdapter(animAdapter); - } - - private static class MyAdapter extends ArrayAdapter { - - private Context mContext; - - public MyAdapter(Context context, ArrayList items) { - super(items); - mContext = context; - } - - @Override - public long getItemId(int position) { - return getItem(position).hashCode(); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - TextView tv = (TextView) convertView; - if (tv == null) { - tv = (TextView) LayoutInflater.from(mContext).inflate(R.layout.list_row, parent, false); - } - tv.setText("This is row number " + getItem(position)); - return tv; - } - } + private BaseAdapter mAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + mAdapter = new MyAdapter(this, getItems()); + setAlphaAdapter(); + + getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); + getSupportActionBar().setListNavigationCallbacks(new AnimSelectionAdapter(), this); + getSupportActionBar().setDisplayShowTitleEnabled(false); + } + + private void setAlphaAdapter() { + AnimationAdapter animAdapter = new AlphaInAnimationAdapter(mAdapter); + animAdapter.setAbsListView(getListView()); + getListView().setAdapter(animAdapter); + } + + private void setLeftAdapter() { + AnimationAdapter animAdapter = new SwingLeftInAnimationAdapter(mAdapter); + animAdapter.setAbsListView(getListView()); + getListView().setAdapter(animAdapter); + } + + private void setRightAdapter() { + AnimationAdapter animAdapter = new SwingRightInAnimationAdapter(mAdapter); + animAdapter.setAbsListView(getListView()); + getListView().setAdapter(animAdapter); + } + + private void setBottomAdapter() { + AnimationAdapter animAdapter = new SwingBottomInAnimationAdapter(mAdapter); + animAdapter.setAbsListView(getListView()); + getListView().setAdapter(animAdapter); + } + + private void setBottomRightAdapter() { + AnimationAdapter animAdapter = new SwingBottomInAnimationAdapter(new SwingRightInAnimationAdapter(mAdapter)); + animAdapter.setAbsListView(getListView()); + getListView().setAdapter(animAdapter); + } + + private void setScaleAdapter() { + AnimationAdapter animAdapter = new ScaleInAnimationAdapter(mAdapter); + animAdapter.setAbsListView(getListView()); + getListView().setAdapter(animAdapter); + } + + @Override + public boolean onNavigationItemSelected(int itemPosition, long itemId) { + switch (itemPosition) { + case 0: + setAlphaAdapter(); + return true; + case 1: + setLeftAdapter(); + return true; + case 2: + setRightAdapter(); + return true; + case 3: + setBottomAdapter(); + return true; + case 4: + setBottomRightAdapter(); + return true; + case 5: + setScaleAdapter(); + return true; + default: + return false; + } + } /* Non-ListViewAnimations related stuff below */ - @Override - public boolean onNavigationItemSelected(int itemPosition, long itemId) { - switch (itemPosition) { - case 0: - setAlphaAdapter(); - return true; - case 1: - setLeftAdapter(); - return true; - case 2: - setRightAdapter(); - return true; - case 3: - setBottomAdapter(); - return true; - case 4: - setBottomRightAdapter(); - return true; - case 5: - setScaleAdapter(); - return true; - default: - return false; - } - } - - private class AnimSelectionAdapter extends ArrayAdapter { - - public AnimSelectionAdapter() { - addAll("Alpha", "Left", "Right", "Bottom", "Bottom right", "Scale"); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - TextView tv = (TextView) convertView; - if (tv == null) { - tv = (TextView) LayoutInflater.from(AppearanceExamplesActivity.this).inflate(android.R.layout.simple_list_item_1, parent, false); - } - - tv.setText(getItem(position)); - - return tv; - } - } + private static class MyAdapter extends ArrayAdapter { + + private Context mContext; + + public MyAdapter(Context context, ArrayList items) { + super(items); + mContext = context; + } + + @Override + public long getItemId(int position) { + return getItem(position).hashCode(); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + TextView tv = (TextView) convertView; + if (tv == null) { + tv = (TextView) LayoutInflater.from(mContext).inflate(R.layout.list_row, parent, false); + } + tv.setText("This is row number " + getItem(position)); + return tv; + } + } + + private class AnimSelectionAdapter extends ArrayAdapter { + + public AnimSelectionAdapter() { + addAll("Alpha", "Left", "Right", "Bottom", "Bottom right", "Scale"); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + TextView tv = (TextView) convertView; + if (tv == null) { + tv = (TextView) LayoutInflater.from(AppearanceExamplesActivity.this).inflate(android.R.layout.simple_list_item_1, parent, false); + } + + tv.setText(getItem(position)); + + return tv; + } + } } diff --git a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/AnimateDismissActivity.java b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/AnimateDismissActivity.java index d47a2556..36432665 100644 --- a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/AnimateDismissActivity.java +++ b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/AnimateDismissActivity.java @@ -15,9 +15,6 @@ */ package com.haarman.listviewanimations.itemmanipulationexamples; -import java.util.ArrayList; -import java.util.List; - import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -30,81 +27,84 @@ import android.widget.CheckedTextView; import android.widget.ListView; +import com.haarman.listviewanimations.BaseActivity; +import com.haarman.listviewanimations.MyListActivity; +import com.haarman.listviewanimations.R; import com.nhaarman.listviewanimations.ArrayAdapter; -import com.nhaarman.listviewanimations.BaseActivity; -import com.nhaarman.listviewanimations.MyListActivity; -import com.nhaarman.listviewanimations.R; import com.nhaarman.listviewanimations.itemmanipulation.AnimateDismissAdapter; import com.nhaarman.listviewanimations.itemmanipulation.OnDismissCallback; +import java.util.ArrayList; +import java.util.List; + public class AnimateDismissActivity extends BaseActivity { - private List mSelectedPositions; - private MyListAdapter mAdapter; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_animateremoval); - - mSelectedPositions = new ArrayList(); - - ListView listView = (ListView) findViewById(R.id.activity_animateremoval_listview); - mAdapter = new MyListAdapter(MyListActivity.getItems()); - final AnimateDismissAdapter animateDismissAdapter = new AnimateDismissAdapter(mAdapter, new MyOnDismissCallback()); - animateDismissAdapter.setAbsListView(listView); - listView.setAdapter(animateDismissAdapter); - - Button button = (Button) findViewById(R.id.activity_animateremoval_button); - button.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - animateDismissAdapter.animateDismiss(mSelectedPositions); - mSelectedPositions.clear(); - } - }); - - listView.setOnItemClickListener(new OnItemClickListener() { - - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - CheckedTextView tv = ((CheckedTextView) view); - tv.toggle(); - if (tv.isChecked()) { - mSelectedPositions.add(position); - } else { - mSelectedPositions.remove((Integer) position); - } - } - }); - } - - private class MyOnDismissCallback implements OnDismissCallback { - - @Override - public void onDismiss(AbsListView listView, int[] reverseSortedPositions) { - for (int position : reverseSortedPositions) { - mAdapter.remove(position); - } - } - } - - private class MyListAdapter extends ArrayAdapter { - - public MyListAdapter(ArrayList items) { - super(items); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - CheckedTextView tv = (CheckedTextView) convertView; - if (tv == null) { - tv = (CheckedTextView) LayoutInflater.from(AnimateDismissActivity.this).inflate(R.layout.activity_animateremoval_row, parent, false); - } - tv.setText(String.valueOf(getItem(position))); - tv.setChecked(mSelectedPositions.contains(position)); - return tv; - } - } + private List mSelectedPositions; + private MyListAdapter mAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_animateremoval); + + mSelectedPositions = new ArrayList(); + + ListView listView = (ListView) findViewById(R.id.activity_animateremoval_listview); + mAdapter = new MyListAdapter(MyListActivity.getItems()); + final AnimateDismissAdapter animateDismissAdapter = new AnimateDismissAdapter(mAdapter, new MyOnDismissCallback()); + animateDismissAdapter.setAbsListView(listView); + listView.setAdapter(animateDismissAdapter); + + Button button = (Button) findViewById(R.id.activity_animateremoval_button); + button.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + animateDismissAdapter.animateDismiss(mSelectedPositions); + mSelectedPositions.clear(); + } + }); + + listView.setOnItemClickListener(new OnItemClickListener() { + + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + CheckedTextView tv = ((CheckedTextView) view); + tv.toggle(); + if (tv.isChecked()) { + mSelectedPositions.add(position); + } else { + mSelectedPositions.remove((Integer) position); + } + } + }); + } + + private class MyOnDismissCallback implements OnDismissCallback { + + @Override + public void onDismiss(AbsListView listView, int[] reverseSortedPositions) { + for (int position : reverseSortedPositions) { + mAdapter.remove(position); + } + } + } + + private class MyListAdapter extends ArrayAdapter { + + public MyListAdapter(ArrayList items) { + super(items); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + CheckedTextView tv = (CheckedTextView) convertView; + if (tv == null) { + tv = (CheckedTextView) LayoutInflater.from(AnimateDismissActivity.this).inflate(R.layout.activity_animateremoval_row, parent, false); + } + tv.setText(String.valueOf(getItem(position))); + tv.setChecked(mSelectedPositions.contains(position)); + return tv; + } + } } diff --git a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java index 0372d279..d3df6ec9 100644 --- a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java +++ b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/DragAndDropActivity.java @@ -19,8 +19,8 @@ import android.widget.Toast; import com.nhaarman.listviewanimations.ArrayAdapter; -import com.nhaarman.listviewanimations.MyListActivity; -import com.nhaarman.listviewanimations.R; +import com.haarman.listviewanimations.MyListActivity; +import com.haarman.listviewanimations.R; import com.nhaarman.listviewanimations.swinginadapters.prepared.AlphaInAnimationAdapter; import com.nhaarman.listviewanimations.view.DynamicListView; diff --git a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ExpandableListItemActivity.java b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ExpandableListItemActivity.java index 99b79ff9..804a47d9 100644 --- a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ExpandableListItemActivity.java +++ b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ExpandableListItemActivity.java @@ -28,8 +28,8 @@ import android.widget.TextView; import android.widget.Toast; -import com.nhaarman.listviewanimations.MyListActivity; -import com.nhaarman.listviewanimations.R; +import com.haarman.listviewanimations.MyListActivity; +import com.haarman.listviewanimations.R; import com.nhaarman.listviewanimations.itemmanipulation.ExpandableListItemAdapter; import com.nhaarman.listviewanimations.swinginadapters.prepared.AlphaInAnimationAdapter; diff --git a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ItemManipulationsExamplesActivity.java b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ItemManipulationsExamplesActivity.java index c49379a8..78a7eb5a 100644 --- a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ItemManipulationsExamplesActivity.java +++ b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/ItemManipulationsExamplesActivity.java @@ -22,7 +22,7 @@ import android.support.v7.app.ActionBarActivity; import android.view.MenuItem; import android.view.View; -import com.nhaarman.listviewanimations.R; +import com.haarman.listviewanimations.R; public class ItemManipulationsExamplesActivity extends ActionBarActivity { diff --git a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/SwipeDismissActivity.java b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/SwipeDismissActivity.java index 4e070543..3da6bf0b 100644 --- a/example/src/com/haarman/listviewanimations/itemmanipulationexamples/SwipeDismissActivity.java +++ b/example/src/com/haarman/listviewanimations/itemmanipulationexamples/SwipeDismissActivity.java @@ -15,8 +15,6 @@ */ package com.haarman.listviewanimations.itemmanipulationexamples; -import java.util.Arrays; - import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBar.OnNavigationListener; @@ -27,15 +25,17 @@ import android.widget.TextView; import android.widget.Toast; +import com.haarman.listviewanimations.MyListActivity; +import com.haarman.listviewanimations.R; import com.nhaarman.listviewanimations.ArrayAdapter; -import com.nhaarman.listviewanimations.MyListActivity; -import com.nhaarman.listviewanimations.R; import com.nhaarman.listviewanimations.itemmanipulation.OnDismissCallback; import com.nhaarman.listviewanimations.itemmanipulation.SwipeDismissAdapter; import com.nhaarman.listviewanimations.itemmanipulation.contextualundo.ContextualUndoAdapter; import com.nhaarman.listviewanimations.itemmanipulation.contextualundo.ContextualUndoAdapter.CountDownFormatter; import com.nhaarman.listviewanimations.itemmanipulation.contextualundo.ContextualUndoAdapter.DeleteItemCallback; +import java.util.Arrays; + public class SwipeDismissActivity extends MyListActivity implements OnNavigationListener, OnDismissCallback, DeleteItemCallback { private ArrayAdapter mAdapter; From 08fe2d1ee0acc80ad4eee8337a151bfda3f59059 Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Sun, 8 Dec 2013 19:26:56 +0100 Subject: [PATCH 24/69] Version bumps --- example/AndroidManifest.xml | 4 ++-- gradle.properties | 2 +- library/AndroidManifest.xml | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/example/AndroidManifest.xml b/example/AndroidManifest.xml index fb302511..86d6ee50 100644 --- a/example/AndroidManifest.xml +++ b/example/AndroidManifest.xml @@ -1,7 +1,7 @@ + android:versionCode="201312081" + android:versionName="2.6.0-SNAPSHOT" > + android:versionCode="201312081" + android:versionName="2.6.0-SNAPSHOT" > Date: Sun, 8 Dec 2013 20:05:45 +0100 Subject: [PATCH 25/69] Clarified the use of SwipeOnScrollListener --- .../ExpandableListItemAdapter.java.orig | 383 ------------------ .../itemmanipulation/SwipeDismissAdapter.java | 125 +++--- .../SwipeOnScrollListener.java | 36 +- 3 files changed, 86 insertions(+), 458 deletions(-) delete mode 100644 library/src/com/nhaarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java.orig diff --git a/library/src/com/nhaarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java.orig b/library/src/com/nhaarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java.orig deleted file mode 100644 index 86ca61f4..00000000 --- a/library/src/com/nhaarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java.orig +++ /dev/null @@ -1,383 +0,0 @@ -package com.haarman.listviewanimations.itemmanipulation; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.ViewGroup.LayoutParams; -import android.widget.FrameLayout; -import android.widget.LinearLayout; - -import com.haarman.listviewanimations.ArrayAdapter; -import com.nineoldandroids.animation.Animator; -import com.nineoldandroids.animation.AnimatorListenerAdapter; -import com.nineoldandroids.animation.ValueAnimator; - -/** - * An {@link ArrayAdapter} which allows items to be expanded using an animation. - */ -public abstract class ExpandableListItemAdapter extends ArrayAdapter { - - private static final int DEFAULTTITLEPARENTRESID = 10000; - private static final int DEFAULTCONTENTPARENTRESID = 10001; - - private Context mContext; - private int mViewLayoutResId; - private int mTitleParentResId; - private int mContentParentResId; - private int mActionViewResId; - private List mVisibleIds; - - private int mLimit; - private Map mExpandedViews; - private static SparseArray mViews; - - /** - * Creates a new ExpandableListItemAdapter with an empty list. - */ - protected ExpandableListItemAdapter(Context context) { - this(context, null); - } - - /** - * Creates a new {@link ExpandableListItemAdapter} with the specified list, - * or an empty list if items == null. - */ - protected ExpandableListItemAdapter(Context context, List items) { - super(items); - mContext = context; - mTitleParentResId = DEFAULTTITLEPARENTRESID; - mContentParentResId = DEFAULTCONTENTPARENTRESID; - - mVisibleIds = new ArrayList(); -<<<<<<< HEAD - mViews = new SparseArray(); -======= - mExpandedViews = new HashMap(); ->>>>>>> dev - } - - /** - * Creates a new ExpandableListItemAdapter with an empty list. Uses given - * layout resource for the view; titleParentResId and contentParentResId - * should be identifiers for ViewGroups within that layout. - */ - protected ExpandableListItemAdapter(Context context, int layoutResId, int titleParentResId, int contentParentResId) { - this(context, layoutResId, titleParentResId, contentParentResId, null); - } - - /** - * Creates a new ExpandableListItemAdapter with the specified list, or an - * empty list if items == null. Uses given layout resource for the view; - * titleParentResId and contentParentResId should be identifiers for - * ViewGroups within that layout. - */ - protected ExpandableListItemAdapter(Context context, int layoutResId, int titleParentResId, int contentParentResId, List items) { - super(items); - mContext = context; - mViewLayoutResId = layoutResId; - mTitleParentResId = titleParentResId; - mContentParentResId = contentParentResId; - - mVisibleIds = new ArrayList(); - mExpandedViews = new HashMap(); - } - - /** - * Set the resource id of the child {@link View} contained in the View - * returned by {@link #getTitleView(int, View, ViewGroup)} that will be the - * actuator of the expand / collapse animations.
- * If there is no View in the title View with given resId, a - * {@link NullPointerException} is thrown.

Default behavior: the whole - * title View acts as the actuator. - * - * @param resId - * the resource id. - */ - public void setActionViewResId(int resId) { - mActionViewResId = resId; - } - - /** - * Set the maximum number of items allowed to be expanded. When the - * (limit+1)th item is expanded, the first expanded item will collapse. - * - * @param limit - * the maximum number of items allowed to be expanded. Use <= 0 - * for no limit. - */ - public void setLimit(int limit) { - mLimit = limit; - mVisibleIds.clear(); - mExpandedViews.clear(); - notifyDataSetChanged(); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewGroup view = (ViewGroup) convertView; - ViewHolder viewHolder; - - if (view == null) { - view = createView(parent); - - viewHolder = new ViewHolder(); - viewHolder.titleParent = (ViewGroup) view.findViewById(mTitleParentResId); - viewHolder.contentParent = (ViewGroup) view.findViewById(mContentParentResId); - - view.setTag(viewHolder); - } else { - viewHolder = (ViewHolder) view.getTag(); - } - - if (mLimit > 0) { - if (mVisibleIds.contains(getItemId(position))) { - mExpandedViews.put(getItemId(position), view); - } else if (mExpandedViews.containsValue(view) && !mVisibleIds.contains(getItemId(position))) { - mExpandedViews.remove(getItemId(position)); - } - } - - View titleView = getTitleView(position, viewHolder.titleView, viewHolder.titleParent); - if (titleView != viewHolder.titleView) { - viewHolder.titleParent.removeAllViews(); - viewHolder.titleParent.addView(titleView); - - if (mActionViewResId == 0) { - view.setOnClickListener(new TitleViewOnClickListener(viewHolder.contentParent)); - } else { - view.findViewById(mActionViewResId).setOnClickListener(new TitleViewOnClickListener(viewHolder.contentParent)); - } - } - viewHolder.titleView = titleView; - - View contentView = getContentView(position, viewHolder.contentView, viewHolder.contentParent); - if (contentView != viewHolder.contentView) { - viewHolder.contentParent.removeAllViews(); - viewHolder.contentParent.addView(contentView); - } - viewHolder.contentView = contentView; - - viewHolder.contentParent.setVisibility(mVisibleIds.contains(getItemId(position)) ? View.VISIBLE : View.GONE); - viewHolder.contentParent.setTag(getItemId(position)); - - ViewGroup.LayoutParams layoutParams = viewHolder.contentParent.getLayoutParams(); - layoutParams.height = LayoutParams.WRAP_CONTENT; - viewHolder.contentParent.setLayoutParams(layoutParams); - - mViews.put(position, viewHolder); - - return view; - } - - private ViewGroup createView(ViewGroup parent) { - ViewGroup view; - - if (mViewLayoutResId == 0) { - view = new RootView(mContext); - } else { - view = (ViewGroup) LayoutInflater.from(mContext).inflate(mViewLayoutResId, parent, false); - } - - return view; - } - - /** - * Get a View that displays the title of the data at the specified - * position in the data set. You can either create a View manually or - * inflate it from an XML layout file. When the View is inflated, the parent - * View (GridView, ListView...) will apply default layout parameters unless - * you use - * {@link android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean)} - * to specify a root view and to prevent attachment to the root. - * - * @param position - * The position of the item within the adapter's data set of the - * item whose view we want. - * @param convertView - * The old view to reuse, if possible. Note: You should check - * that this view is non-null and of an appropriate type before - * using. If it is not possible to convert this view to display - * the correct data, this method can create a new view. - * @param parent - * The parent that this view will eventually be attached to - * @return A View corresponding to the title of the data at the specified - * position. - */ - public abstract View getTitleView(int position, View convertView, ViewGroup parent); - - /** - * Get a View that displays the content of the data at the specified - * position in the data set. You can either create a View manually or - * inflate it from an XML layout file. When the View is inflated, the parent - * View (GridView, ListView...) will apply default layout parameters unless - * you use - * {@link android.view.LayoutInflater#inflate(int, android.view.ViewGroup, boolean)} - * to specify a root view and to prevent attachment to the root. - * - * @param position - * The position of the item within the adapter's data set of the - * item whose view we want. - * @param convertView - * The old view to reuse, if possible. Note: You should check - * that this view is non-null and of an appropriate type before - * using. If it is not possible to convert this view to display - * the correct data, this method can create a new view. - * @param parent - * The parent that this view will eventually be attached to - * @return A View corresponding to the content of the data at the specified - * position. - */ - public abstract View getContentView(int position, View convertView, ViewGroup parent); - - /** - * Indicates if the item at the specified position is expanded. - * - * @param position - * Index of the view whose state we want. - * @return true if the view is expanded, false otherwise. - */ - public boolean isExpanded(int position) { - return mVisibleIds.contains(getItemId(position)); - } - - private static class ViewHolder { - ViewGroup titleParent; - ViewGroup contentParent; - View titleView; - View contentView; - } - - /** - * Return the content view at the specified position. - * - * @param position - * Index of the view we want. - * @return the view if it exist, null otherwise. - */ - public static View getContentView(int position) { - return mViews.get(position).contentView; - } - - /** - * Return the title view at the specified position. - * - * @param position - * Index of the view we want. - * @return the view if it exist, null otherwise. - */ - public static View getTitleView(int position) { - return mViews.get(position).titleView; - } - - private static class RootView extends LinearLayout { - - private ViewGroup mTitleViewGroup; - private ViewGroup mContentViewGroup; - - public RootView(Context context) { - super(context); - init(); - } - - private void init() { - setOrientation(VERTICAL); - - mTitleViewGroup = new FrameLayout(getContext()); - mTitleViewGroup.setId(DEFAULTTITLEPARENTRESID); - addView(mTitleViewGroup); - - mContentViewGroup = new FrameLayout(getContext()); - mContentViewGroup.setId(DEFAULTCONTENTPARENTRESID); - addView(mContentViewGroup); - } - } - - private class TitleViewOnClickListener implements View.OnClickListener { - - private View mContentParent; - - private TitleViewOnClickListener(View contentParent) { - this.mContentParent = contentParent; - } - - @Override - public void onClick(View view) { - boolean isVisible = mContentParent.getVisibility() == View.VISIBLE; - if (!isVisible && mLimit > 0 && mVisibleIds.size() >= mLimit) { - Long firstId = mVisibleIds.get(0); - View firstEV = mExpandedViews.get(firstId); - if (firstEV != null) { - ViewHolder firstVH = ((ViewHolder) firstEV.getTag()); - ViewGroup contentParent = firstVH.contentParent; - ExpandCollapseHelper.animateCollapsing(contentParent); - mExpandedViews.remove(mVisibleIds.get(0)); - } - mVisibleIds.remove(mVisibleIds.get(0)); - } - - if (isVisible) { - ExpandCollapseHelper.animateCollapsing(mContentParent); - mVisibleIds.remove(mContentParent.getTag()); - mExpandedViews.remove(mContentParent.getTag()); - } else { - ExpandCollapseHelper.animateExpanding(mContentParent); - mVisibleIds.add((Long) mContentParent.getTag()); - - if (mLimit > 0) { - View parent = (View) mContentParent.getParent(); - mExpandedViews.put((Long) mContentParent.getTag(), parent); - } - } - } - } - - private static class ExpandCollapseHelper { - - public static void animateCollapsing(final View view) { - int origHeight = view.getHeight(); - - ValueAnimator animator = createHeightAnimator(view, origHeight, 0); - animator.addListener(new AnimatorListenerAdapter() { - - @Override - public void onAnimationEnd(Animator animator) { - view.setVisibility(View.GONE); - } - }); - animator.start(); - } - - public static void animateExpanding(final View view) { - view.setVisibility(View.VISIBLE); - - final int widthSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); - final int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); - view.measure(widthSpec, heightSpec); - - ValueAnimator animator = createHeightAnimator(view, 0, view.getMeasuredHeight()); - animator.start(); - } - - public static ValueAnimator createHeightAnimator(final View view, int start, int end) { - ValueAnimator animator = ValueAnimator.ofInt(start, end); - animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { - - @Override - public void onAnimationUpdate(ValueAnimator valueAnimator) { - int value = (Integer) valueAnimator.getAnimatedValue(); - - ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); - layoutParams.height = value; - view.setLayoutParams(layoutParams); - } - }); - return animator; - } - } -} diff --git a/library/src/com/nhaarman/listviewanimations/itemmanipulation/SwipeDismissAdapter.java b/library/src/com/nhaarman/listviewanimations/itemmanipulation/SwipeDismissAdapter.java index 3bbb7bf8..83447a62 100644 --- a/library/src/com/nhaarman/listviewanimations/itemmanipulation/SwipeDismissAdapter.java +++ b/library/src/com/nhaarman/listviewanimations/itemmanipulation/SwipeDismissAdapter.java @@ -22,71 +22,78 @@ import com.nhaarman.listviewanimations.BaseAdapterDecorator; /** - * Adds an option to swipe items in a ListView away. This does nothing more than - * setting a new SwipeDismissListViewTouchListener to the ListView. + * Adds an option to swipe items in an AbsListView away. + * Do not call {@link android.widget.AbsListView#setOnTouchListener(android.view.View.OnTouchListener)} or + * {@link android.widget.AbsListView#setOnScrollListener(android.widget.AbsListView.OnScrollListener)} on your AbsListView! To use an {@link android.widget.AbsListView.OnScrollListener}, + * extends {@link com.nhaarman.listviewanimations.itemmanipulation.SwipeOnScrollListener} and + * pass it in the constructor {@link #SwipeDismissAdapter(android.widget.BaseAdapter, OnDismissCallback, SwipeOnScrollListener)}. */ public class SwipeDismissAdapter extends BaseAdapterDecorator { - protected OnDismissCallback mCallback; - protected SwipeDismissListViewTouchListener mSwipeDismissListViewTouchListener; + protected OnDismissCallback mOnDismissCallback; + protected SwipeDismissListViewTouchListener mSwipeDismissListViewTouchListener; + protected SwipeOnScrollListener mSwipeOnScrollListener; - protected SwipeOnScrollListener mOnScroll; - - public SwipeDismissAdapter(BaseAdapter baseAdapter, OnDismissCallback callback) { - // add a default OnScrollListener - this(baseAdapter, callback, new SwipeOnScrollListener()); - } + /** + * Create a new SwipeDismissAdapter. + * + * @param baseAdapter the {@link android.widget.BaseAdapter to use} + * @param onDismissCallback the {@link com.nhaarman.listviewanimations.itemmanipulation.OnDismissCallback} to be notified of dismissed items. + */ + public SwipeDismissAdapter(BaseAdapter baseAdapter, OnDismissCallback onDismissCallback) { + this(baseAdapter, onDismissCallback, new SwipeOnScrollListener()); + } - public SwipeDismissAdapter(BaseAdapter baseAdapter, OnDismissCallback callback, SwipeOnScrollListener onScroll) { - super(baseAdapter); - mCallback = callback; - mOnScroll = onScroll; - } - - /** - * Override-able - * @param listView - * @return SwipeDismissListViewTouchListener - */ - protected SwipeDismissListViewTouchListener createListViewTouchListener(AbsListView listView) { - return new SwipeDismissListViewTouchListener(listView, mCallback, mOnScroll); - } - - @Override - public void setAbsListView(AbsListView listView) { - super.setAbsListView(listView); - if (mDecoratedBaseAdapter instanceof ArrayAdapter) { - // fix #35 dirty trick ! - // if ArrayAdapter we assume that items manipulation will come from it - ((ArrayAdapter)mDecoratedBaseAdapter).propagateNotifyDataSetChanged(this); - } - mSwipeDismissListViewTouchListener = createListViewTouchListener(listView); - mSwipeDismissListViewTouchListener.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer()); - mSwipeDismissListViewTouchListener.setTouchChild(getTouchChild()); - listView.setOnTouchListener(mSwipeDismissListViewTouchListener); - } + /** + * Create a new SwipeDismissAdapter. + * + * @param baseAdapter the {@link android.widget.BaseAdapter to use} + * @param onDismissCallback the {@link com.nhaarman.listviewanimations.itemmanipulation.OnDismissCallback} to be notified of dismissed items. + * @param swipeOnScrollListener the {@link com.nhaarman.listviewanimations.itemmanipulation.SwipeOnScrollListener} to use. + */ + public SwipeDismissAdapter(BaseAdapter baseAdapter, OnDismissCallback onDismissCallback, SwipeOnScrollListener swipeOnScrollListener) { + super(baseAdapter); + mOnDismissCallback = onDismissCallback; + mSwipeOnScrollListener = swipeOnScrollListener; + } - @Override - public void setIsParentHorizontalScrollContainer(boolean isParentHorizontalScrollContainer) { - super.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer); - if (mSwipeDismissListViewTouchListener != null) { - mSwipeDismissListViewTouchListener.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer); - } - } + protected SwipeDismissListViewTouchListener createListViewTouchListener(AbsListView listView) { + return new SwipeDismissListViewTouchListener(listView, mOnDismissCallback, mSwipeOnScrollListener); + } - @Override - public void notifyDataSetChanged() { - super.notifyDataSetChanged(); - if (mSwipeDismissListViewTouchListener != null) { - mSwipeDismissListViewTouchListener.notifyDataSetChanged(); - } - } + @Override + public void setAbsListView(AbsListView listView) { + super.setAbsListView(listView); + if (mDecoratedBaseAdapter instanceof ArrayAdapter) { + ((ArrayAdapter) mDecoratedBaseAdapter).propagateNotifyDataSetChanged(this); + } + mSwipeDismissListViewTouchListener = createListViewTouchListener(listView); + mSwipeDismissListViewTouchListener.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer()); + mSwipeDismissListViewTouchListener.setTouchChild(getTouchChild()); + listView.setOnTouchListener(mSwipeDismissListViewTouchListener); + } - @Override - public void setTouchChild(int childResId) { - super.setTouchChild(childResId); - if (mSwipeDismissListViewTouchListener != null) { - mSwipeDismissListViewTouchListener.setTouchChild(childResId); - } - } + @Override + public void setIsParentHorizontalScrollContainer(boolean isParentHorizontalScrollContainer) { + super.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer); + if (mSwipeDismissListViewTouchListener != null) { + mSwipeDismissListViewTouchListener.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer); + } + } + + @Override + public void notifyDataSetChanged() { + super.notifyDataSetChanged(); + if (mSwipeDismissListViewTouchListener != null) { + mSwipeDismissListViewTouchListener.notifyDataSetChanged(); + } + } + + @Override + public void setTouchChild(int childResId) { + super.setTouchChild(childResId); + if (mSwipeDismissListViewTouchListener != null) { + mSwipeDismissListViewTouchListener.setTouchChild(childResId); + } + } } diff --git a/library/src/com/nhaarman/listviewanimations/itemmanipulation/SwipeOnScrollListener.java b/library/src/com/nhaarman/listviewanimations/itemmanipulation/SwipeOnScrollListener.java index 30627bb2..a8599141 100644 --- a/library/src/com/nhaarman/listviewanimations/itemmanipulation/SwipeOnScrollListener.java +++ b/library/src/com/nhaarman/listviewanimations/itemmanipulation/SwipeOnScrollListener.java @@ -21,22 +21,26 @@ import android.widget.AbsListView; +/** + * An {@link android.widget.AbsListView.OnScrollListener} that is used in conjunction with {@link com.nhaarman.listviewanimations.itemmanipulation.SwipeDismissAdapter}. Override this class to + * provide a custom implementation of the OnScrollListener. Do not forget to call super on the overridden methods! + */ public class SwipeOnScrollListener implements AbsListView.OnScrollListener { - - SwipeDismissListViewTouchListener mTouchListener; - - public void setTouchListener(SwipeDismissListViewTouchListener touchListener) { - mTouchListener = touchListener; - } - - @Override - public void onScrollStateChanged(AbsListView view, int scrollState) { - if (scrollState != AbsListView.OnScrollListener.SCROLL_STATE_IDLE) { - mTouchListener.disallowSwipe(); - } - } - @Override - public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { - } + private SwipeDismissListViewTouchListener mTouchListener; + + public void setTouchListener(SwipeDismissListViewTouchListener touchListener) { + mTouchListener = touchListener; + } + + @Override + public void onScrollStateChanged(AbsListView view, int scrollState) { + if (scrollState != AbsListView.OnScrollListener.SCROLL_STATE_IDLE) { + mTouchListener.disallowSwipe(); + } + } + + @Override + public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { + } } From a2d126d470f3df8c8bc89a205210f205e2c5da1b Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Sun, 8 Dec 2013 23:36:36 +0100 Subject: [PATCH 26/69] Modified maven_push to publish jar file --- library/AndroidManifest.xml | 2 +- maven_push.gradle | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/library/AndroidManifest.xml b/library/AndroidManifest.xml index cb88aaa0..0b39efcc 100644 --- a/library/AndroidManifest.xml +++ b/library/AndroidManifest.xml @@ -1,5 +1,5 @@ diff --git a/maven_push.gradle b/maven_push.gradle index ab35ba1c..f2e3915d 100644 --- a/maven_push.gradle +++ b/maven_push.gradle @@ -74,9 +74,13 @@ afterEvaluate { project -> from android.sourceSets.main.allSource } + task coreLibJar(type: Jar) { + from fileTree(dir: 'build/classes/release').matching { include 'com/nhaarman/listviewanimations/**' } + } + artifacts { - //archives packageReleaseJar archives androidSourcesJar archives androidJavadocsJar + archives coreLibJar } } \ No newline at end of file From 73bd877b37c15ad5c43c6e76e9d6d8896270d0c7 Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Mon, 9 Dec 2013 00:12:54 +0100 Subject: [PATCH 27/69] Removed gradle binaries --- gradle/wrapper/gradle-wrapper.jar | Bin 49896 -> 0 bytes gradle/wrapper/gradle-wrapper.properties | 6 - gradlew | 164 ----------------------- gradlew.bat | 90 ------------- 4 files changed, 260 deletions(-) delete mode 100644 gradle/wrapper/gradle-wrapper.jar delete mode 100644 gradle/wrapper/gradle-wrapper.properties delete mode 100644 gradlew delete mode 100644 gradlew.bat diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 8c0fb64a8698b08ecc4158d828ca593c4928e9dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49896 zcmagFb986H(k`5d^NVfUwr$(C?M#x1ZQHiZiEVpg+jrjgoQrerx!>1o_ul)D>ebz~ zs=Mmxr&>W81QY-S1PKWQ%N-;H^tS;2*XwVA`dej1RRn1z<;3VgfE4~kaG`A%QSPsR z#ovnZe+tS9%1MfeDyz`RirvdjPRK~p(#^q2(^5@O&NM19EHdvN-A&StN>0g6QA^VN z0Gx%Gq#PD$QMRFzmK+utjS^Y1F0e8&u&^=w5K<;4Rz|i3A=o|IKLY+g`iK6vfr9?+ z-`>gmU&i?FGSL5&F?TXFu`&Js6h;15QFkXp2M1H9|Eq~bpov-GU(uz%mH0n55wUl- zv#~ccAz`F5wlQ>e_KlJS3@{)B?^v*EQM=IxLa&76^y51a((wq|2-`qON>+4dLc{Oo z51}}o^Zen(oAjxDK7b++9_Yg`67p$bPo3~BCpGM7uAWmvIhWc5Gi+gQZ|Pwa-Gll@<1xmcPy z|NZmu6m)g5Ftu~BG&Xdxclw7Cij{xbBMBn-LMII#Slp`AElb&2^Hw+w>(3crLH!;I zN+Vk$D+wP1#^!MDCiad@vM>H#6+`Ct#~6VHL4lzmy;lSdk>`z6)=>Wh15Q2)dQtGqvn0vJU@+(B5{MUc*qs4!T+V=q=wy)<6$~ z!G>e_4dN@lGeF_$q9`Ju6Ncb*x?O7=l{anm7Eahuj_6lA{*#Gv*TaJclevPVbbVYu z(NY?5q+xxbO6%g1xF0r@Ix8fJ~u)VRUp`S%&rN$&e!Od`~s+64J z5*)*WSi*i{k%JjMSIN#X;jC{HG$-^iX+5f5BGOIHWAl*%15Z#!xntpk($-EGKCzKa zT7{siZ9;4TICsWQ$pu&wKZQTCvpI$Xvzwxoi+XkkpeE&&kFb!B?h2hi%^YlXt|-@5 zHJ~%AN!g_^tmn1?HSm^|gCE#!GRtK2(L{9pL#hp0xh zME}|DB>(5)`iE7CM)&_+S}-Bslc#@B5W4_+k4Cp$l>iVyg$KP>CN?SVGZ(&02>iZK zB<^HP$g$Lq*L$BWd?2(F?-MUbNWTJVQdW7$#8a|k_30#vHAD1Z{c#p;bETk0VnU5A zBgLe2HFJ3032$G<`m*OB!KM$*sdM20jm)It5OSru@tXpK5LT>#8)N!*skNu1$TpIw zufjjdp#lyH5bZ%|Iuo|iu9vG1HrIVWLH>278xo>aVBkPN3V$~!=KnlXQ4eDqS7%E% zQ!z^$Q$b^6Q)g#cLpwur(|<0gWHo6A6jc;n`t(V9T;LzTAU{IAu*uEQ%Ort1k+Kn+f_N`9|bxYC+~Z1 zCC1UCWv*Orx$_@ydv9mIe(liLfOr7mhbV@tKw{6)q^1DH1nmvZ0cj215R<~&I<4S| zgnr;9Cdjqpz#o8i0CQjtl`}{c*P)aSdH|abxGdrR)-3z+02-eX(k*B)Uqv6~^nh** z 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 \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- -APP_HOME="`pwd -P`" -cd "$SAVED" >&- - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" - -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat deleted file mode 100644 index 8a0b282a..00000000 --- a/gradlew.bat +++ /dev/null @@ -1,90 +0,0 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega From d992605788f97bbb0cbe4d43087a164046a6a80b Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Mon, 9 Dec 2013 23:26:35 +0100 Subject: [PATCH 28/69] Fixed bug where a header view's tag would be wrongly cast to ViewHolder --- .../itemmanipulation/ExpandableListItemAdapter.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/src/com/nhaarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java b/library/src/com/nhaarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java index 469ca5ee..0ee2db05 100644 --- a/library/src/com/nhaarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java +++ b/library/src/com/nhaarman/listviewanimations/itemmanipulation/ExpandableListItemAdapter.java @@ -284,7 +284,7 @@ public void expand(int position) { /** * Collapse the view at given position. Will do nothing if the view is already collapsed. * - * @param position the position to expand. + * @param position the position to collapse. */ public void collapse(int position) { long itemId = getItemId(position); @@ -296,7 +296,7 @@ public void collapse(int position) { } /** - * Toggle the view at given position. + * Toggle the {@link View} at given position, ignores header or footer Views. * * @param position the position of the view to toggle. */ @@ -307,7 +307,7 @@ public void toggle(int position) { boolean found = false; for (int i = 0; i < mAbsListView.getChildCount() && !found; i++) { View childView = mAbsListView.getChildAt(i); - if (mAbsListView.getPositionForView(childView) == position) { + if (mAbsListView.getPositionForView(childView) == position && childView.getTag() instanceof ViewHolder) { found = true; toggle(((ViewHolder) childView.getTag()).contentParent); } From b9d25bcdabd98776f233f5574e0ceb5348a479bd Mon Sep 17 00:00:00 2001 From: Niek Haarman Date: Tue, 10 Dec 2013 01:12:15 +0100 Subject: [PATCH 29/69] Created version update scripts --- README.md | 13 +++++++++--- build.gradle | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 913ef583..481e2b92 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,16 @@ Setup Add the following to your `build.gradle`: repositories { + + maven { + url "https://oss.sonatype.org/content/repositories/snapshots" + } + mavenCentral() } dependencies{ - compile 'com.nhaarman.listviewanimations:library:2.5.2' + compile 'com.nhaarman.listviewanimations:library:2.6.0-SNAPSHOT' } **Or**: @@ -63,7 +68,7 @@ Add the following to your `pom.xml`: com.nhaarman.listviewanimations library - 2.5.2 + 2.6.0-SNAPSHOT Usage @@ -105,7 +110,7 @@ License [1]: https://play.google.com/store/apps/details?id=com.haarman.listviewanimations [2]: http://nineoldandroids.com/ [3]: http://en.wikipedia.org/wiki/Decorator_pattern - [4]: https://github.com/nhaarman/ListViewAnimations/blob/master/com.haarman.listviewanimations-2.5.2.jar?raw=true + [4]: https://github.com/nhaarman/ListViewAnimations/blob/master/com.haarman.listviewanimations-2.6.0-SNAPSHOT.jar?raw=true [5]: https://gist.github.com/romannurik/2980593 [6]: https://play.google.com/store/apps/details?id=com.haarman.treinverkeer [7]: https://www.twitter.com/niekfct @@ -123,3 +128,5 @@ License [20]: https://play.google.com/store/apps/details?id=com.cafetaso.foodinfo [21]: https://play.google.com/store/apps/details?id=sa.voorleesVerhaaltjes [22]: https://play.google.com/store/apps/details?id=com.seedform.counter + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 393982a1..fd9947cd 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,5 @@ +import java.util.regex.Pattern + buildscript { repositories { mavenCentral() @@ -26,4 +28,61 @@ allprojects { } } + +task('increaseVersionCode') << { + def files = new File[2]; + files[0] = file("library/AndroidManifest.xml") + files[1] = file("example/AndroidManifest.xml") + def pattern = Pattern.compile("versionCode=\"(\\d+)\"") + for (int i = 0; i < files.length; ++i) { + def manifestText = files[i].getText() + def matcher = pattern.matcher(manifestText) + matcher.find() + def currentVersionCode = Long.parseLong(matcher.group(1)); + def versionCode = Long.parseLong(new Date().format('yyyyMMdd') + "1") + while (versionCode <= currentVersionCode) { + ++versionCode + } + println(versionCode) + def manifestContent = matcher.replaceAll("versionCode=\"" + versionCode + "\"") + files[i].write(manifestContent) + } +} + +task('syncVersionName') << { + def manifestFiles = new File[2]; + manifestFiles[0] = file("library/AndroidManifest.xml") + manifestFiles[1] = file("example/AndroidManifest.xml") + def pattern = Pattern.compile("versionName=\"(.+)\"") + for (int i = 0; i < manifestFiles.length; ++i) { + def manifestText = manifestFiles[i].getText() + def matcher = pattern.matcher(manifestText) + matcher.find() + def manifestContent = matcher.replaceAll("versionName=\"" + version + "\"") + manifestFiles[i].write(manifestContent) + } + + def readmeFile = file("README.md") + def readmeText = readmeFile.getText() + def matcher = pattern.matcher(readmeText) + matcher.find() + def previousVersion = matcher.group(1) + def readmeContent = readmeText.replaceAll(previousVersion, version) + + pattern = Pattern.compile("repostart -->(.+)" + repo + "(.+)" + repo + "**f0M_I>RJ`_Z>?cK#fn`s%Z5@CV&`IME2*exZd6mJ%<;I*cAiWiB0sA&hI z9g(u>%%`|=_-nU`>lcY05}I!xn$d>vZ0OMwxOMqm-e*9_xD zSye!$;*oYh2=MhRDDF0i8%84m>^ys$#-W-sARxko`Hzcqim52pH- zKvIz$bw>z?*nCiKKJ)@dAmG*mw>~JxZfLRRi_yF|14g~5+A#i#&cn>@K<7Tr-{k8D z5rI+97XQORDIDMqv_Zaqb`QMV29JhyQRb_5u=1}34<*%M(3gG zwTDrIkW~*&y!um)D2X4#3O{~;s;GZLZxBDF_UtXKt8C!dmpFf6Bl#Q9&vVRDlP%+7 zQ7!SVsT&T-*rUmOVQb0}0|l6{@$1hDO8~jRv2B>(;bgJBksTh0SIO@mTdM{Zbk&yGi(~ z#Xrz;Wb01nZ_d>!QKl#CeNx_5uHP;8hDyTnK<_+rFp6&`BP;-81*q}++8y_C1N$lr1-YXg;LE^o7rr#ur;j+$kofZ z)>L+|M%g*QIKdZ2X%gtfM_ftVb`#(}ldT}7uM&{JV(1OfcE)~y9${hrqCwPS=!p&O zJQT2AEda}ZVf#5+m7na#H0_&$m-wV~&$xVn6zrQKP2W>?t9S)6fi|;y%3y7{i}|mz z!ja~n=O+N8p3?S2Cd@Pb8Jd{xg^SMO4G|E~5S81o!tJoQhAOqoE?jm;9N1NUMwZ(V zN2Znd);M~xkI}vlwjHUh+}OZA5!9;`uUCHD6cJ^AE5x7tFRzEE<9j4~Eia%(})k zEqi3UWCu&vabP@V?Nu=cZQHUZvb#z186`gpJ@UhFPeE6UWBj86$S$peM`rOpxK~5r ze36GT?IzQyQ?{X<7>I&JsR+mKNx8YUG5;ZuF~xzK%5M@eF&;%<4}daZHwo+i6bC(hY!1{@05={cep91A%?9S9H*Lj>Xt><+^l zvBZ|+@`^g0(KSd6%PSoAE%}*D-eo6$a{a!p#>S4Kczu`8;%A%=-+H3ovJy=6a<=-X zg(y-3Dc%h2EcNEkn>tNry^;kg*h5B_Y2ea-P9#ThE5Sqnl3P`_j`Qry_Oq)L@}W`` zO^t#0DZ1WbpX=)Fv#jI`As6ykV)y_P?S zPYQmY+i@*4H>oeg2WAD}X+4@Ii1EngvhO9G2t;dxY)hh=&#UIg$8%LJ6XlR?0GgwJ zh=Fy0d)1jOE-yD&ZJRU7=6RV;psoHg+$Uf$<0o^D?N<&wO*R;3-f!>%-Rj*o3~(xW z+zm_Zu22z(Dz^uw`Nm3dvNF(H7fU=vvEQ;ki^)aMQ$NOKfv$X42@-CM)r!XaXHkP6 zR>iphPYcnh$hy2~J~oZ~d!kOo-U7mZKPz=kfi3|@c@UeY^L4bnw@BwN7ty_~s@jfZ zwIkjwwmVVy!(?Idg!z9aVE92S4Py087JJN~+YYtCdvjy#J0DZ8Fs zfti1!Ojb`?5elYLuNw&F=jBTN)sVM2Op{zi^m5kaz0P@7mYx%VS=Zw^`wcFCdY~`w z9%9^Rm9v@i9yxjsb+L)7r(dDHTsbF1+g~M#`2z&tlLBG?xzdi%j z>NMtO*~KdK!smQB%+yQalFpicFhSh~l}#R+f6c$H?96Hc3foz)A>4-rI~&sEH$_u? zYtBf?2*Zt0tg{+WkUDfd2?f94DjHw4{i3eFBD`Ewe=YaoQDuhu1Z}8WL&=c&PB8f|q&j<2<*s%`&T-R}0 zf@m40r6z8<5vRcgRJ z_a+9FB=_`#3AWI|ooAqa7w0nuCeNx{IBzMWrA@cv>^iy&X#C!R^Nq1yybn+HNfrG) zPg)QS<6Dby4F>s%A(+~HP7u>s9FX2O_u{Z3S=BUYpWWv?~~g@|)4O z(FH2Gkca}2ojNivqFNUFhgZ#FW2v46p9d>gKonHkmyuS|0hI0XRZ^^GBf)2>c}F0*ZOR2MCf)qJLgb7V*ZTAFYw`-sdT~{Wr%16z zi4IRE8^F!$yGA4!5wE`UVg=0aV=AoLot21`%h^ zR2`BSfg(}%=JpwY9+FpO;D z45OFPJHFDE=?}o1l-+j}YhjtOvseqrEc8Gx=JD|$a;B3VNS1j2X8!;q-RO=!0^O!s zcM3l()0TZ!Vd#yVHgxmdZz=|~Eu1q-i(FaZ%G{Nu`bnAJjG|E;C!;i5VKo(atNX){M^t~@<9QiDpFZktSnF>8}P7_*2>n}xwOduQTqblb{!tFmdqfas8S zwSJm@I`9f92aA>)P2!9n-C1^XtjTqM+eCPa+ZJ>8p8PT*`_8CcX~bm@jN5ryW|Pc| z)oRVsKeJW?K|%E7eKYhFy@%dc_v?A$qnk&g7U*qc#k!XBk1G(^EITJ$l#f#CYgxh4vIQe>AA-MB3yhv*n+KphUOQfx zJT>Xl9SO9-^ZOfOsIK=mbdz1Dtr_%9)k2%Bz&wr5D;3$gP+;4zV47OkrMwjb@SR7A z9e~C2->T3c!W8`LGQ!wjD~wHl$xxMy5?_~5f2$L~?*Vv+dCGSzVDJ`b^|c}N$}Joq zLTxtyur)6c)e805sLDz&eZos$@X|+kqODe*Xlz}wv4^ zwwR**mwFfIgZM7dcSU4>Vjtl&0^wI)dan0;D~n;})&=7KG{)nt5wa2kHtT_qZaPlb zk;cOSg(9}p;~^b#bUhYqua8C>fY_t2W(>>qon2v9=n^Vi9+%>g0a^r|rw9<$O+^Z> zQsN$aL#hB0&su1=`fNcRy4RxNK(B=v=+1zgam+R)|Dy6WNd~)r)1>2IbRTqx=eO*b z;{@0S+0|c&ACC=T6mWyRReFxgY?(@tha^QF@=@d=?OlMI^C)N;yb*LGPa1nG^?3d| za^hMq`Hn(-OS`f+My?L&DwLcZ#OczgqME(PNyQV;Fl(%V!oUIXr_sx%lg!z}#iAPY zIEmX8FjMzbQ_bgph4-aRCulkiHoQ!b-6O=VqDA?rfhe~R(F1u>Lsw~beRx}5q`vMj z1zA5#U2dgL+KEmE>^h7W*(G?mxWqpY{ob%mg67M9VD#I0Zf;Xt7PVCAahcOm1i!tX z52BIeEF74D&)D!gU={xQ$-{CUd05UT&&z%HRqCc3v;^jVfGl2$hUICKiXcDZjUp`) z+AF)gj#u3`6+wHMZ(`g1?!o7zzlQK>PX>X|_4u$HYWJUs_Q}~>ir}}`vq7NNDc|J7 zuYMeVjj!|d#j@w|a(${ib6%}pVamc8SRre3kuI`J1f%D3>glUZwMbY$TJX zKNUnU;(987!paYD_s+1(KsS2;DF^zc$hjgv2}-K>*NgN4`ape1SSg!b_Jcj{wNTo?@WUto(m?YqSZFtmjpl zy@U|)m(M5j_Mk7Kb$PcIkaD#0+5(G0pI@7B7Ka8xWP7nL5ASVL6=n@UN#Yr7XWjrZ zu7nbQ8v}I201&#JWnUshyZ^@#+F40~GokteWrr&%Tpr{SHG2x%p*o&C{eJ(1alsG; ztFe|-10E-Aim3q%P{^L`sk~_S1O&s@^z^uID+cfXebsRpg{jsNYhkbV^cZ?87LA2t zVfI$f1pi(lvd4(){AkvEz27~WA3F*u+fHVGAG>^Fb19veZBK?3d)Es=w%rRswuod; z5HAtkgKV0__8_gQ(>m(>ujGkJ)p@h9_d3aTly5gIR!Hv)^yRxMkA#ut#^40^z?35j z#XgbA#o1y5TY(G^hz!9(q&$HuTbf7@A_#k zecnr_tDR>=&6IxZrR%-)H80)lrQ5yqZ7<#JrJsB0mtOjfm;T_T`@Qr^wXup(!r8TA z*$5hdf2(_wL}Hv=ArYc=F~#fQ8+iABT^yShgtp?nc}eIYgx2H8wj%TjLXRMH5}_v$ zx)*2iN`$^f=vjm)6!{AX?ZTGVC7-bsp)bnFWD1}=aBb~E=p7vQ_Yfj4nD`Qx>JBq+bq z|9~{}0jtdkQI5to_J73pd9I^rhe{vu9nS@#{ZVO`xS!&~(gX5_p}Jtdk&h=Zjkn4- z;3yE+TE}VrU#^nBsbq{wu2RW3m0Yiqs7h{B$*o+alfAUbOYij3Xz z-EcC$0|-sM&;ahcDm3(hl>iXUiQ5D~G!yO+^1CW;CNyL2yCGufCl`@_w>O)`a3kT9 z0#C)KSzXN|cbk1NlKY26v{UL<3^Rl53v~_eiW^P!KygTWE*X#)1A|UcepDvV$sEd3 zg~0jEASa6ro+tWkUbJIi7WWWX;<{7WSG=>CCYSfhPBazm?d_T#QVyV!JubJ+!63(d zRD=?o8F!*LnXwjewO?m{p#p;qG2y!>UkBa>Q1|4b50!6O^5+Y*qlw)Ks~>e6#%wDiH8Iv- zXz-|^;Xy8YK3#5qEL>W41o{*Epf9`vaL8;uW*!V3#ZEq*PGiCzP8Z(|M9#^%Q8Ii? zJPg7&eCZTuWl=i+4h#Q~<`s&ux6{Oo!b$lwn%Ik=#nz<}P3~Z?rsyawbOpU8^#f$}S(=GIj&!$H-LI4<2C5L|>Od`;Xl4xEN7s8)u1>XceWIPK677sr_b*SjW3i38a*3fQ zn3~sh!tiW=i{6Q)gUXN92dK?=WjV}P(QS0;Z_H-&yEwV1INrHSc#f9vj;|uOV^a~^ z3FqT}=;O7xM>+JOi`abOT|fhC25mL$x{8xiw}MRc9dK%444u&Bro+|>Y6xqdAh4tc z{e~QnR$WE=6vv$cB~RvoP-su>aO!O9a@V>f3S#Jg9Tg}#Hdg3S2bDHZz_Qqzf{gVA z)~|Ck`9$r*zE5(4Tua!xvjc@EQy0TZ+AsP3vJ^jhH@?z86&65itqS;orW8l*emWbn zlucDHiQ8U@@fubf{xf@~^BViTzVov3qQ9`0r0~XeF4gyo?mxmziUgc`ZmrTPj_ zn^&cO4|dQ66fEg#k@KVYm%kZ$`FO2vfvjxX=ty8J?O)qXzzmT!mNF}OQ?(REtuh*K z|LZWry~rhlz2Q~c)8qK8k#wrcEp}l77C_!77om$3_IKZ`k@M{b?R#tQt6gJ#TmFJ| zq8yD^GuhbmpWoS1*-@$Pj-s~M$j&CKJHbYO-U(0b0#|l|x2bG4Uc;v}6>mYDd?Q>u zXg3$*L)d6tJzuS8^#+$2oq6cCv`xh*N6#;_$n5(Oui5)};su}Qzxakh*3SRq3kGqk zo7$P@r4M=O`(FBim$rE6TVDDm@A5tt(77&egx*(Ac_$0RqMy8w1>{&UWcPEv5E1x) zY|gh;k#wo@m(dIVR`FEmkeXesl3P^rZ}Gt)hxE*N9qq@7BCAuTHy3w9-vmA^#+d&=k09)~UV5zT3D zYiqlvR~viIcM9ck9QL9wL0SBfu-rY3$iO!EOLjvDe043 zt{lEvX#Osa4MLL?*1(UU$XbuqV5A7cCgDBYc6A2;2M6fnoxbZdcy^fdRG{)Ul=i9e z>s%fi6K=p@L7jWmS-kNvq z0mE-i)&WCldUY4MelgB(t1apYl5Z%}gDuWY_z_=V z%QSI!>8I5x{&+ARWYeT@t^MeiChlGVbn9yNv?S{&Wi4Vi1nR>!Tac*JR?!}0CnQ?X zkA?|zv~VXn8NIu7r*7Fch2CkAaz(8kB%>wKt6W^+H^i@XVc9`{J7hVQT^ok3KA8Mo zcAN5xJ5*;*Z|^kz39<^eC$`^chwaOjNaF~`U3yJwhahd0`r+z_Xv@7-icbp`>Xuch z3*ZgE>c7^oUCH0?yVj_%qZL*#8N0?1ResTXreU}=B=v^IzN8iKIvyj~{|zgv{VJ5_ zUF!$JE0@t)ZH5tld^vB62587b^=pN*dCraSpbJ`vR)goD}rMK z!K+Me=&aOW;wTmbOw z$SL=x2-0}7FX@BSp4LWUT&>wOunnF^_C&54?&&}K4Bm}@&%J;#>?27_xV{g@#locv z(7Q?KGeN7^Y_{vdfGBGB>xn*%1?lp3k}|C$>^LnzKLvmpUr|vZZYXEJQYNt=`>Gyz z+ijycPGB#r+ItFF?L)5&3i!x#>53o6^JVf|#G?N8*}<9yTjY#~4y>--Y#=YkkcYnzOGBnsRK1;Y~ujp6yn7qxx9vL?`%(fpgMtBMo8;4Z``cC|hOF7$Fb3)ZiOz zlnhsN<~^n~F=K3lLBURwv+->g&aF< zu~{kNdz*CYrMx4wS%X>fbwRskHe2C{iqa~76i>Chg592iW(+yi;yQnWWVeOh)otqv z(NG>8`VV#;uA`DxJB%^Z>`-evACwb)8k*Qzq&reHmICH1MUNeM2etNSEO7`1O`%lx76Fo!6u+GBmW)nI&V&b|nAX2|g#r=-RZ4}r3a&ec60}AFK&;e6L z0U(uI2%2KwqfY-kc%cRg4L>7AOdQXD_6WrY!mYWzR{o29sMISc_cN)CJ&#b{aYAvx zG;FGzX+R76imXULis>QUoTCQ%94{7$@<{On;jg*miNgv3Sw-pt!_iD$^&h4#O_HAC zA|kmCU}Fd~v?WG6u0}h`9#&DW(DlGLf2)*ljMN=hiuJ=cYi12hfCa&XZ%A{0xfoxb zIQ$gd%Z-G(CNQknm_I6dH|n~m_Z#{Lk{t`J;kMl-y3f@0h`6EJ(A(^lfT?uT#=STd zlkr7GXLwFl!gra&o<(kL0g{t2#wmLUrhTL@`i4O*Wjlz$K*aLOz2!u@V1C-cHujR> zbE;EHpxg?1~#e~M^f&UQ`$FR*QbOHp+-mYV_ z1hp7La*qhkK~FgGoyMON=Lg8uW=$^QEVkaHfYJF&H&M&jPsyRCJ4J z)|a|9%;K-X0~1ymd!_h)rgocVqT@+Aq4*;@dmd_E0_1I#P>*wvU~kjnVdWqk#{`N? zhaKe}Hc^*f^CU)58Hc!sQPkyDTwv{hSzlAOKv~(|e)v0To0`_&ZQe#L9nvLrSYawL z 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 LCAPRtJU|Hm1M#gw diff --git a/README.md b/README.md index 481e2b92..ead66a33 100644 --- a/README.md +++ b/README.md @@ -50,15 +50,12 @@ Add the following to your `build.gradle`: repositories { - maven { - url "https://oss.sonatype.org/content/repositories/snapshots" - } mavenCentral() } dependencies{ - compile 'com.nhaarman.listviewanimations:library:2.6.0-SNAPSHOT' + compile 'com.nhaarman.listviewanimations:library:2.6.0' } **Or**: @@ -68,7 +65,7 @@ Add the following to your `pom.xml`: com.nhaarman.listviewanimations library - 2.6.0-SNAPSHOT + 2.6.0 Usage @@ -110,7 +107,7 @@ License [1]: https://play.google.com/store/apps/details?id=com.haarman.listviewanimations [2]: http://nineoldandroids.com/ [3]: http://en.wikipedia.org/wiki/Decorator_pattern - [4]: https://github.com/nhaarman/ListViewAnimations/blob/master/com.haarman.listviewanimations-2.6.0-SNAPSHOT.jar?raw=true + [4]: https://github.com/nhaarman/ListViewAnimations/blob/master/com.haarman.listviewanimations-2.6.0.jar?raw=true [5]: https://gist.github.com/romannurik/2980593 [6]: https://play.google.com/store/apps/details?id=com.haarman.treinverkeer [7]: https://www.twitter.com/niekfct @@ -129,4 +126,4 @@ License [21]: https://play.google.com/store/apps/details?id=sa.voorleesVerhaaltjes [22]: https://play.google.com/store/apps/details?id=com.seedform.counter - \ No newline at end of file + \ No newline at end of file diff --git a/com.haarman.listviewanimations-2.5.2.jar b/com.haarman.listviewanimations-2.5.2.jar deleted file mode 100644 index 121fe02502d687924799cabeeaf2bff2d8201904..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77081 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
C^EIU){CHgbcXs&alb#ZLCWtkpnqy#`-m?> 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
FwPD|}}a;k@+Vi<$9nc1UW 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

1j2qN55B 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