From de56d5dcae280b08a595602a5d3123b1fd419357 Mon Sep 17 00:00:00 2001
From: Dexafree For {@link android.widget.ListView} list items that don't manage their own touch events
- * (i.e. you're using
- * {@link android.widget.ListView#setOnItemClickListener(android.widget.AdapterView.OnItemClickListener)}
- * or an equivalent listener on {@link android.app.ListActivity} or
- * {@link android.app.ListFragment}, use {@link SwipeDismissListViewTouchListener} instead. Example usage: This class Requires API level 12 or later due to use of {@link
- * android.view.ViewPropertyAnimator}. After creating the listener, the caller should also call
- * {@link ListView#setOnScrollListener(android.widget.AbsListView.OnScrollListener)}, passing
- * in the scroll listener returned by {@link #makeScrollListener()}. If a scroll listener is
- * already assigned, the caller should still pass scroll changes through to this listener. This will
- * ensure that this {@link SwipeDismissListViewTouchListener} is paused during list view
- * scrolling. Example usage: This class Requires API level 12 or later due to use of {@link
- * android.view.ViewPropertyAnimator}. For a generalized {@link android.view.View.OnTouchListener} that makes any view dismissable,
- * see {@link SwipeDismissTouchListener}.
- * view.setOnTouchListener(new SwipeDismissTouchListener(
- * view,
- * null, // Optional token/cookie object
- * new SwipeDismissTouchListener.OnDismissCallback() {
- * public void onDismiss(View view, Object token) {
- * parent.removeView(view);
- * }
- * }));
- *
- *
- *
- * SwipeDismissListViewTouchListener touchListener =
- * new SwipeDismissListViewTouchListener(
- * listView,
- * new SwipeDismissListViewTouchListener.OnDismissCallback() {
- * public void onDismiss(ListView listView, int[] reverseSortedPositions) {
- * for (int position : reverseSortedPositions) {
- * adapter.remove(adapter.getItem(position));
- * }
- * adapter.notifyDataSetChanged();
- * }
- * });
- * listView.setOnTouchListener(touchListener);
- * listView.setOnScrollListener(touchListener.makeScrollListener());
- *
- *
- *
#^im!-SzcciXukRXwH4^=YGmL^I!Mx-`~FdOQR_gLA3}L!zqlQae@Yq1Wv06MkzfKN=B(-)k@g}6~Ti?jY>yq^pw^>lU9y)2yCRlx_Dl; zXn~Irgd|=_)QQQWA=O~a04AFHh?X?HIm2wrH<|NAeY$8!(}}5q5C`5O^05LF#WQYE z7b|dXhITNNRbU+g=ipg8OIt );vqzYJp~DKkacDaxVMT1e8O)tXdly;^Hg zX|1@*7=bYgltkg6&?rV@7^6hM1?1ESEB{^+7xFNR3gN)@Cr}-Mi3BPtF#$(uFeu=% zv#7XC>HZRr+@Z96K{$$0M;xZ(P^$(r;25V;MG~qQl&~pKN*?0>E&cu1wrx8lD9}Mn zQ1Td{2n9bEfx{Cay%K;0!~_G70nU$r2T+pHN?d2eT@K7)z>Ey8BT)gz4NBYyURUBg zj?pqKWGJ8j0Vs(8OoYJ>7&rm&%W;gsQ04=a`XC614^U`but2o{juIlnjf942F^Gu( zIFw2TU_vrZr36=jRjFiHa6wpz02wrC;b=S0Me&>)U_z&h68JcSn5r`*>GY{OF *w2h+7G-aVl z6HOXv+RD;)jaBVV*@$#kal>Yw9XmSN%(PauSa$T^XB2cm$TOa@v@*^W31K9%CiG<6BJ4noE zQ99DmC^cqLVg?DhEG98Z&>%xdXdop(bio3A7Y?XJ`bhv8;93OWB3+k%2a6!(;1r6J z5;!0-x?n+YLCz3l1F!(J0gypyz_6Ja+9e1vIw4LkCK&X|W@DDwl5I5Rn9T(SLtld_ zS1@GJx>UU_&tU6kuoW6?d4efhF!cpk5si5|W45TzWcdW0m?DU&3 a*=DXj_MgCT7+ tn1~W~Op}UY zLWCj=7U0Vu4lwCBgbon~BEbTe*#hlia!ew5863ERMxh@8Z=@6iPZ3t0u-ggeB6ZSa zg;kB|0Z$O{?4hp#$Uq? @RXvi~JhZ?K{MKj=uBAo%e zI6!CVFIWnBGXO_FJ;Y7E&d^6R=5WBFuyGs{Ly>NP43>$dNEbu9!B;?T0E8jKg0ung z0pJ3(g%*&6)~wb#)M^_V@Et*t0Hcd>D9(|n4#0v4IO2d)HYoL?LZ=3=Lsel^;}*ac zGDFLZ3$BI=Dhy7CfVb-@M6X171d~6U#nmyW(vB l-`j+64k~-;96$;6_;Sz6Qa2|kJ!pH`626QFLkiy_`wE#@10<^&a zssOOikXGQ@DJGI;-MlW|V93y!b3|*d&IC cA_G zp*jEv=RkvF0N@M}Fo!vp(`B+kGR?%YTs#fHK?9ND)>2L|_CQyHN2oDLKow4kacC&3 zhBO070jNTyv0*3&7#?~MoPo0$1y_~V-~xt9!-PUTM@ZKn$O|>j3z#6Hq81f3xIvAX zfa4~hmgHsej!Ci 7+C`|NNo{6mP=c^Pb>O=dC ?J|blWqK}S%$4C+vqCtj*q$>Ua z7Mg%NfXHApIGX~%ih~mi@L7;B=y3ND07{U$z>{!)EHg()VL-hJ*aC6}t5maqHUKhI zS~D0PigD4Lo8{wpAq6-KXvTb QOw3JK_9|W~Uz= G zVU-FJ3yuN!4RLgzy_)<(s W55ZZbl2a CPt!0 z66H|ICxH2eVFF1wa72)N0wnSPEHIgH0&EkEA)(P>+CtI QXpemSF8?un#sk0VNDKxJOyz zCYxd=an50aW0+_j%IW*@#(sLo5WQoR7&*oiGeLBX<|MYzG6`BbiQ*DTI+kV=NIHgQ zV@Vn?M>Jpsz)U3V(vU9TI3QJ!4ooS^T3fczD0KbaFj&Y`0iq8TZc?Ix6lZn;sM}SN zU?FQyl>$%;Ps7-ik(4Zt5WwBoC_FYG?WGGCfCZ14A_yJuMsl_Q4LdnGm{bI)0tyRA zV&Ds)fq`cLPL*;V0)POc
NZv|X3PVXMa+lSI( zE+^(Qx;_+_!U*Z$a{z5nTs+CfQB16cj8tiDz@U- hoN}E#YQY)QO&=3eU z0 IWQcd5~=Jh>cr1ct0{sB%GF+A@sDgl z%CHU3WGHajN{GXi&NNg6pnP{ugg663!q2}879b**V%IJK528CI9xwn72^J<`lE?t` z9!qm6tdPbDS-dVwXDr~&g9YahopUrmfZjbu7d1xj93_|siOx}C)L7m&96S-6BYE2} z-q4@b^=0*0S~h_dG8jIc=F%uGS<579sRRufB{PIl140kL6K((t0#b!G0;7Uck?s`} z@-)CCSim7bp%cNRK(Yri!lV_4!AzGPhlve_#5hU;*n)#uEKERfTBVACLImk@_W@X# zaFeWP6x}I0LJA1OVIk)_Wmpihlaq%*LJW?vPO9%LZSq*cs8PsMmh9Du1cMQ6Z HtP$RgarE5I)&gFm|q7Gdr$-~{2XRY1pwO1fCK(2+8=1`+^D zQK>QnU_k;k5JR$wz!)ZpWs`XW5E=QLwZG0WoHY&*tb=*$Aja6Aw+>~kgZ1vwtaX^q zF`9RcVQnKB^FUI_AcYhSAPGK`W-}Nzg#l87OQP8%EfodA4d69o&QNNcgvyM<*$lL~ z9RHIr|N9 HfnN)lf(c8s)8Q8WBDj LT zMb{MGK8i9FQ2IPd$ffvf79fL8)H3l 6+EQFmzbZUj5Qs{70FR=wDrL4dZlQ2T; z0SgrdbER^ABb3w%<|<^tuMKBoH0VTNmJ=KqHozLf!VqRvKvhuhdJtf8QY++2 0H%co2z7*!9S0Vu-OypmgH%Xq z#K0>U6>`Za&JijdK{}O`Q%y!wY!btzF kon})>;7Wuvl8sf7P7UQ!X)H>$4PXL9q#wX= zlnOFmKph7)wVbzwzao&XhO`G$;7X|KSS1GY8F1{nu>}Y*IHNMki8v`-U{HZWMHba- za8VZ_PREk+l`$ADNck#=LR7l85j~s;teT*F;8enLok2I>ZN`USAqxvBEzy;p(h^pd zutHe$^zH%o(Sr&8p+*|4nDj7sjeuYT2Co#(gk}}Y<$(wu<$%%#Pk2-S1|l({J7 qP25a9684BH<2qHO=9 g~;)ob1Y*W%UMQfba|9{5Tzf?0YC_S8GRnD&u7GZEdYd& ztz|RRbc~XWR055uwPR|NBq``n&> %njl0K$7&ZR0d&z z_KY>Ogo(zCDkLEI!yu*UAuRqMU=d8VB3gh9T&lu{;t>^4rkJ2bSQh0CsAxt3g$8v- zAnn%UDtCJ^ 0U>;ClO{*X~8j@6?Zz7t^}nUhe>qm zeVFK0K~-bCA|Q0TIT4uFloU|-5P~_Rl$0Hue+V5e4hRLy;U=Xbm|s$azc=6-{u5aI z!%2soh6V@`@Cz}Vk~41~1TQggx+0>}DFhJ_7=)8yp+uN)D1>su-OAQdO&^m=5=htu zfpe7LRca$6W@^R0thqm98A_T4XbnZQeYDy%lr{}zEu(1LSk^j$)DMB+FbvZ0IT|4o zxDPF#1CXJH;7C%FaavWB7Bd4$hlFHAz(D}4lR +CoI$0jk?WJ)VL^uJO*&jQ0 3xbBwsWnc~n(K@kOo@4{aiE6J zr%Z!M>rkzJ0Hqs98AsCADWqk*)-Z$;`q8>P4WG*z`qN^ehRsybDOx&}RL80aJC5n4 z 4B(z~lPAgq`G6V}w1wI;Kq|}8}*@7n;h)!h-W(>6v zQq4j@Sqt!O(8a(4l~j*_!yJJz29?c>ij)FChw8yJ|G5)E0&n~$Siq_cJOPb#DYY0z zfk;H|S%N+eg8{l7F<3Bz)G`P!XoS=z7=iVa5kc~hVF5=d0_n<&z?3 wwB){K8AQ~ure^TF{HVskh3MjEqYaGJZ$1~QES^?;Z9E#6XGZ|{Gk5=eQve_y! zNu!C=C?g5NgyVV)?^ZpRgCj(4H<4U})P_ULxqn +|R0E;vYouVR>HDs!a zOi(JF1a2Y-Kow$lSOgqLh{Ld8eM*j`-pzG}C*=UWq3 iSbIQ 8J6hOtt7AHa9u7ljf4 zJyXS$T5UD6(IjD(yg01vgX1+gr^oqhQ)E`O`?mu-o?bcG+S2g#_U%9I-F5fw)i3sa zJ9g4%jG-TG985uE45E#LD6vSz=Bl||lJBEt02<=8REmm9S88H#0%8Kk1r!FB;F0OB zE9D_4VS^(kw=K%*p_}%U8!4o^2_0&*LEcGcVNhytQK*n4rknU|0+EM5;Hu;zhE(AK zN+lc?LAKDM##qcS0yR?+f^_Y=Qh{9^3=%BRAS~RtU{=5@PIS*9Vu4&Te4T?+R$?cG z7Iy0>WTyI0VbS})N}Lqt4mCY0t~~@wa54q(4QEvl2jP#vbWBu~Bd1?%{)qH`$9g{MW z)D_Z};TmzER#&7I3bcG4$z^M}bR`+5CR0?}c%TPyOou@OY@rA8Lhg$Tk2R!>Ela?> z98bsvvv+iH2o^ZPFc=dZL8(wJ7W`=;1EIA&f=j^66gW)l3Xw#R8v;F6QvQkT1r`)) zwkz!)5>6eeQw4Y;Y?$RFH*`XQ>?BY(HiY957ME0KSoJb+>7_HKbO@_fNF_}G3q>G> zh03jauog;2bgPs?CXn2aM%KAf@>Gu2;PW7u=urI^Km?YT5KXTYmI&Aerj^f4fx-DF zvxt0U0jUrwn9l*u8|bPiM@Ez-bLzN-pA4J!>A0y|=P#a^GiXdk-hh~dVX?`}Mhv;| z J zDIF5*+lF14S}Y*GsO~~lo-yyLR|z7DKxRe$H1OepQ$k4 nRoV^Dr{e*cV-b0#faIAQ+kIdiuxSh9P~rh~;>fBbUS*(1BJo!EWv(hsj5U%qkS zRCE1HzqjRYe`iNWr`PL!`SP{T=X-Gf-tixP{_5+aYu9`+b^Ns0 avuiuYv@K!4(iI!D?an@RQ02 zDiqv?*HGk@Ad+~dddr-W66~btUs_oteH{s+Wg2BDlw}E?(U`2fE5VwQ8J*)c#7!JH zVa3$>Gy9KUI(yC1*=tuW-n4b~?#+wWZ<@1q@A3`bZrJw6k^PS@|6Kk0Zf#Xb_1g#a zHLqJ+8#_Dw9nzo2(+ 6YfYdp9p0-oNkIH^-K&*sQk=Q&XupVFw@} z09!y<0C4D)1V9OJC gb{(Y?_eHN4w5mEM{Ro4!D1E`6|)G# z0;PT(W{&!wa%BWaB1(-iMwH3HnZ5`cg~_hGcUTY+u!~9#bVGv`gau~M5<&*1cLN=c zu z4^}tcvq(htky1qswqW6~ZCZ;96v_ZtnAynm$gF;;{j=k8Miz`)IdA2>iE|fCTeN!V z)^!UvuUoWb?Z?GSCN3$SzGlaarAIzncH!9JdlybMRzCB#Hnulb`aLb39i9FFDgu9g zzrVV=`t94&rpBh)n%d3|Ux&}v;rG@ymY+F&dim1TanV^?6-+T%t!YZ7S&11b1UM0s zRIlQ?C;{gcSfGN15eAenDsUbpM77o`S2{G9MTfZ^c$5>SryNGal!%*Gs_dHxYk~s8 z0t|{7r87{b0A>0EWT1=-I&>|j=p7bn1V(B&(i{EX429i zGT8pp`#KSV;ItYONtsyAW;7%Ue2h*X%L~y0Wf!$Jmmy|A+Q4CX!-nLHm^WqK+C^)o zjF`D%$;R1}mM)pLe9o8!llo3tGi&+w1#7-pQ~c{!+isu!vGV18Uwbnce4p3T0TIzD z*}H!L9{%=rk90(*r?vUX-Sg*8oZ7N_^EZ3HEnc}{*1Tetju#ci7~Ewg>^N>j0%c6u zIDmk}tbx#{NWC*SZa{I^DWkwC1TKhTw74kXRz2p>W05A@Z9<(6rD49>J|5M>>xP2M z%epW=3uSUKJ`dvoEKEp%;NJraMlGeJ!&};dus{r$QZHgc9%@j&4;F!rsX)se{*DI; z9v}2lP@|ARnJM}82wD|EYeKMqg%z@Eu+i=aK(+5;BD5+*h6SpSYV=Tlg$#ODrHWUp zOj@m(=OZ~Tisz&CrbJ#BD~iz;F*e#9H)+tM4~Ks=XTsvu^FLocXZ3=QR(~|<)7dju z&lvT|jD8<2o3!k^jk~^EzxKCXTdtot^78JbmWJAn|K=YMAAkG))lgG@>&mTH&!1J6 zz5VT{Q-^naH$=#eC*nlHp+?O%dj_u3BLST#aR#n)yR*!ec&Vj|1F!&wK+VBnQkGMV z2{dYEQLBz{=x{r)FjKhBN{BGoC6y;Zw5dfH76euZ?ZDYMloilGuh+XCK<>Z95jrg0 zPIoo!0Zs!5WpTbQZd4*P(Yv 0B97hGh=q`mpqd|Qu%RMzhX%GfzRT5z| zu&_b~)vqiF0tbUAMhSmmSTK!tTNMIJVp4E~2OF*cg=n+}hIbmwae^V1*T>SVljU6; z=jJ$ F`YA0cn6{lA4T9oGr z(Wo?P6};4402^??rH~u`lv0l^Y_pXvI9v* Y5EC9olRaV| zc`ba1Jc5f$Nno(yAZ+ccMx`^FBJK7ht0UE9O*Gk4_10vAIfdq;NYbj+!d2md;L!8- zXiI#eJ7e0Eg%d}AJZH|Dg|pYq9JhGhwACMuS}=0GBYK4D_eL3oduszEk?? zs=#4^QhB$33N8qMu@F==xRh^~*FB=a&cTSVzMbA+(XDMn#-NnjhgmE%peRX|tSSI3 z5a>a)a8&`N3J3_YD;+D7O;;G*Q$5JA08va3QZ%U%dC{)7#9AE5Mq3JRh;ukI&6X6C zHI>uFQcR?Vw2`cx;~X}lJI dn!~$x7G;lEJa2teY+nL3 zaK?-glNKv68wgcCAoQfhGG)|Ej);s>x<{xJHxX%Lumlma0B)cO9R;T@9Vk(uT?Oah zny$c30uU3@l|+$V0U=jVDMDg>MX#_3=1h9&sD6Ke`(0R2QraNcITDhPl70lbMsgpN zWKdWHVWCBXMX9b7i0m39SOgMi!9<0uA;8DtQhG|Q6nNHdFvpr4X$EVG(Uz(+B>;`7 z7vn`kg29}mHzrW5i`Kb~#yGp#oe`Inn$Y*-Im>3xUOsp3nyHf)E||G;>ZrL3CNJK< zX8Xa_>rNj!_}hWq7mw|_dUDtObI0C3ztdI^qK~%!Pq2WRqtowsa`UfrW9HANu0}@X zVoC?2$(}Q9eU`p3&7DUmtsG|me9?MAV`ng<6SuF^rVK;uBBTmV6-+CmVJ($1^UIwB za@U;vh)M1EXfMqrf&Og>i{9v@8!Y5yTXL_jqI=)izk>x8*7zB|vN;ed;tEm|0hA^~ zA+phwL>NkG9VrNHBIKURu!1cr_nk_tBWExJdshT@umG~0QmO=#H6b!4*OgFUiRxpE z$<+aAX^1nJ6ZHTb`e>siNi@Xkjft#2Dk>_=YKqEDE6C3rGk5;lDIYGGJY~s@nXBf1 zyl&CdHA|;2Kk)g+Q#-exKD__@(XakIvi|z%Lk} M@nqBj!EzgfH(qK+I5j`qzRBn0^jp+rIbr9}IKtXg3 zJ2$1#p(Ob)x57|zQ#;yYm4>tqR9-cXzJrNS2e|?b9H4j)EFe_`mLDNqT^FIA$KJp} zy+ch@7#IWf3ls}Pn<@n(5eA5o;c7EA@B*;;@4d^E-&+%rn|%nKULO^k(ASla8yVl% z9+TsU&2h%%T3wldHduW$XNa-bQyh_f0B4BC1id9WIx5#Jx^j~X3bV$~`gqltadXFx zpF3^(ia9gaE}K#O)%v~rSFZZw@ZM8 67NV3Qu#buf3(i zCr77&Nc24d!vCM*qqFnX?Z57yI=6iAM@y%zSigSP_Tt?Wa>kpmXi;e&+;41FYypGm zNn9^=TEHP!Nx9>|E-`3erLH2N>!p?A5E+4$MR)`yC#ga^Q@q>!he~}L5Fc1K=ycoP zLT(+Fs|G!s%|E~*)I8l?WOOYKllD)NkSi@Jk)8zfgbexjtQL7sJsqVf#%wet*zBne zccwKeh1a_|y_*%Ib*6aU7$;g11@LH2Fj~``?mT;BroohCu%)?U@=UxlJt`|VW7LN; zKOZq-&iE+{$4*?ZV9vUY^EZCGZO=EK7oR(R;M}pjXZNl;`|Y-y=YDv4`~2Hi4;yRV zwl!6ITkG1It3B;4AheK1-xorH{K|iWFgiN}DGtBS+tyTi 2jt(AyE4S%zusF2a!G$9Gzqdv2oA zy#p<9OgLLGy|xYhTWui=(s2LOt??6f0R_Shw0q*cd#7i&PYyOSzPnVAqF9H{5MwaM z+nlLJM}lYptdQt%r5f!?CP#|Roe>oed`drOT)xGbWpQTPof$x32>LjaCB