From 8667f26c7c096c2043840961e62bcfc2edd3b421 Mon Sep 17 00:00:00 2001 From: Caesar2011 Date: Thu, 23 Jan 2014 19:10:42 +0100 Subject: [PATCH] Refresh is working --- .../teachersubstitution/TSAdapter.class | Bin 3448 -> 3453 bytes .../TSCreate$DownloadFilesTask.class | Bin 2515 -> 2643 bytes .../teachersubstitution/TSCreate.class | Bin 3265 -> 3690 bytes ...llToRefreshListView$HeaderViewHolder.class | Bin 1341 -> 1341 bytes .../PullToRefreshListView$RefreshState.class | Bin 641 -> 641 bytes .../views/PullToRefreshListView.class | Bin 4431 -> 5267 bytes .../teachersubstitution/TSAdapter.java | 2 +- .../teachersubstitution/TSCreate.java | 114 ++++++++++-------- .../vpherder/views/PullToRefreshListView.java | 40 ++++-- 9 files changed, 94 insertions(+), 62 deletions(-) diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSAdapter.class index 7f1ccec30095d9de22c5afd99f924ecc84b07ab4..f267e77709e757d072eb8c3ae504c5299a22c406 100644 GIT binary patch delta 358 zcmYL^O-lj+5Qd-4-Bp&=DA+lOvAZZ|x?K<<#Viid)m8@2~on){7tlpsP4)e9j}2 z((F$R+hhBSf~CC(myjHVB56s+;vdAOcNLFfp-*Ux4#r5@Sy_@A;K+tUN43MM$4MV^ zv~WOGj{J`Z=eEuHp2a#gX;#?8AtN}q9aKJT!tzT9y-gdT(|F)q{&W8)(ckF!Rh#n+J?K8-lnnMM+do=fuNWLrwPX72a*eu|6NUNK zL;LBm-%eZo&P%#3#^98O{iesmK5CpBG`UdFyPZL;)m2zb+8H(UG1l{1FNE9xEG4I= zVh)9@W`0u%Y44I0S(`c(@k^qK)F&$odx}G`JR;zt0~bjcmIc`_a;C#!PBkN{!|@11 z;F*18WQGB@Ns?!sU9uF|qDYkz4WZYhOq&V=;g^s@o71;gm5G0`*uZq(u(+1a88_GA jMhJL#rb`bMA9wVnPh&^wezXZmFPDnn7nu#(LI3?9l!iUe diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSCreate$DownloadFilesTask.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSCreate$DownloadFilesTask.class index c55a6780d11e8feedc7434062828361a1c99e4b4..5f89c751272306a27dba145cfd08e4670f7ddc17 100644 GIT binary patch literal 2643 zcmb_eT~`xV6y2AE48#Eu6~va-Dn&lj5iHdbYO8!`G=MdLwf1Y6T*F{8lg>>1Xjj{p z{uf_$tv0yoT3vnUQ-4K&N!xvACNM<$fU7TI?!D*iv(G-~p39$q|N0w%NmMno3Cvfe zVVTl5y~*CPaI2~2xNi{+aEeFFjaVsSUCdB*p3}s7PvI>S_q?S0_j<| zBs(E+Ku0?=S)|aVLqoSfYD5_vEZB}*s#n*gw_>hWq(E=Mwam(z>Dg)>Z>Ci;0@q%L z$g8q3x$csicdnY&gRQ*CEhZnf$o|k6tfS@Do(N2jM545W-QJ91WNm6GG7X%JB)5tH+Kel8oQZrrmDr|&j~FCCYSc*Xd3P*eeI@r1nQ6!xjm6T^@x(vzFTi$pR3ks~E817R_4N)EcHV%nJ0h z66Tic-16MACw+glR^rW96^}CxGs`=HEK4t^Zcs-pHl>(**)T5QTtAq9EUmi2IvQ6o zDbnbghMNKx_cbaueb-rD-(;s}aRZC$V&}71#wQwX30&A0Ry5*t+(wZ(nU=-m)%2R# z=kVF#M0FIIRUK<;-gGZ;ocSBg8LHt^mP+-$@-S``mzNT4mZA3bO3Hy8@j>yX=@j-Q(HK!d}nO%&yy&91zV`P6!rVo7`ny89mQI z>djV6-1cJ*3rXXJ^aq%5PG@#N!2Mv_>1@&_b&7vT^vtME}dy#oZeVb_{UuJ_-NL)m znSu6!Oz-duj0|KNIJfu|?bGdNo)JRh1U2~Xr^1lKAt}k#eV*9p!X^V%Fo-IK;n3E_ z1ilF=U5~=Xlt_TdOc61~Df&JxhH0L`C49i0E}XH7-sMx#TaD7%lL?CeoXoU zX#0mm(i((@D;ln9H00-`V7BbHINK?jD!oLjObe?9r^t7XjsK3T4cu!@g0q#!H0k++75-u`w<`^N`7AWrX_2Jc z9KPPm&1_)(zoUVrEX8iajIZR$j8Ple>JxRNN+N}FNMnO-qBw8j0spE?DLB?DX!{rb CO@sRY literal 2515 zcmb_dOLNm!6#i~3TZs`#2sjWL=qrF94GQ7WG$y2A0=P98upN?69+=(fM(}f-6BLbW?EWiC#|)$4NLv;PKE(vZtaC4KkphTqt~D6;cVim18rsOpILfeRE8)E5@j7>; z3x5D{96?G!8W{%pk!H4d@c|v2%y-iB<w{W!%Ct&}fK&ctyBGcrDBIAl9@Rcne) zQFXh~uq{^=MHMTaVY&*wz%0p1x0_EGW|IMsJwu`6Z7DWPQ70iM3-S62! zZj@{n$FQ}i{YwSsae+F|aC4fabJOG`8q)BJQ1?XzQN(0iqGs%tn=dYWtMg{Sxzut@ z!fB{SV^qFQ^79y2o}M3w-lu1SA+CoMbKt-9BJv5#AhB6`SOnC{kA2jMs7-?~8`KZG zOCB}DRjuhaoQxRh+_t(5SDH1NQ9@?nrs!%z^l^W4Qw;mIvtbw@%@+N!#gIsD*If+9 z-ihDUQHa0JD;ZY=DR&hlFe+n7EHnibP$u8)Y+C(KlSL?tp(bWroLDT`El1~KP7}o4 zS$|wega9cSbxZSF4($~R+YS1&@9-YhaToe9)B&T}bHt{Sr*Y%tOwDz{Zu~X&UyGcPHn5aQNYibM%|^$fZG1QzOG~eD zWI2+Mo{m4YMvkq0{|d=c8=w7(spXfLo|VU9WAez!S2#VHkjCUTvZW0~$*+z19}wGs zvM#ZNH2&j1&(f1Gkehr?=MUlr<+nhUihO5j4J^@WnKD|T)gA1|T^zhMsUln^dx2vEd3;4k^^@1vRBwc^yNd$7ljwvwT*Wm) z`7lnRi0iaJPw{TxCShHoj7AZAi$Nx%%>KfHj0HB(_cz(Ei%tko#A&kYqc7`)zv-to z8fUPABn2^1&Lh=BWtK0w|7 QUnRc8jVKCTgNeR>0kg1Y1^@s6 diff --git a/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSCreate.class b/source/bin/classes/me/caesar2011/vpherder/teachersubstitution/TSCreate.class index ba75662b95866ec09d4cd4e49c5d072b5d3e0b56..c992ef479cc7afb34d9c25af656f667c217dd853 100644 GIT binary patch literal 3690 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 delta 77 zcmV-T0J8tR3cU)j;sXtX00{tu01g0!02=^?lkWpk35fs*0Ez$*0E?4K1dkz(03ZO6 j04V^G04xBL05t%V05|}a06_qk07L+p08Id#lllZh0_+o9 diff --git a/source/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView$RefreshState.class b/source/bin/classes/me/caesar2011/vpherder/views/PullToRefreshListView$RefreshState.class index 8ac71e60fcddf21aad8b4c6a767459d9d18e10f2..cba516e6755061ce1c406cfb91107f632800429e 100644 GIT binary patch delta 13 UcmZoR delta 13 UcmZo?TO8GgQOlT2#s-_ulW_ zm*;!$EB|@!1pp0r+krfVhM?i`>qb5JH`Fl!>Uyd=%cESi>ZfYb`xeE)k)YBQ=5Vko;J=+mQCXLzW~jGDaxqdgpzmu;b} zcqSsyJROZWa;S1f`);3a|JJtdo%?;>R&S?5@j8FN44Kvjg?v|CmqI~PxX&osbSGz;rf8t}C0)}V%)P_0lH3CBWx@^~tI-R3uzOY{pbm=C;nn~?5`a7&60Yd`!0S%2<#{!QUR&H}G&*)2b>Qv3h zToi+)G9zF&(|$AAY))*#76&$G_5D>@)X;>j3gyItjw9^sV22SIHvO!N#V%i_v^p5R z&_H8d)~mMO1BTyfbb!sjV2X~G>TA)Up)CKNeB?W^4Yz9Wp_NHa+NrS2YO0l1^|)Srr|owaNstDrvF3ZJJF5~$rGDzhif`TJBgijU1DjMhH}i57TKer z2YU&TdS71#c@*YkvYqyxIW55*xYL1s%uiM->@;cEj}HeuJ?%`B#bgLe?phA&8G-L>@EX^iO7D9Gy zB+4bJs!>D)HG~jm3s~XArowDjE(>YzLev4m`7GP=i9Ttt#8StQxETmZaECR5A%U$p zoIIe2b(v`9_D-YM%dR9m>5&0;e`PvrlaMB;RwR~&#Illxr&QSoT+<-2*I-bpr&cRU zwQ#629PSc%W;kSTHrDNR;uH9!14k8Zn9u=PR2uHXr+B)udpG-q z*FG)05|>YFs6eU6xL?C(@i|6~RJ-&;Jg<48Gz-n=H8@Z#G+)&4r7W5r+5NJH64`CX zS2TPTUt`%4s_aA244Bpt#>2%>I`FWP&T4z&#q6J$4*;4z$W;IzV`_du@Utkg{*Ew%=oIF1qNgD3dLB^4r; zKBeJloTEwfd!k9Mt1>63G>JtbrV`I+IFD~J?0PTHnF3dHU9*6}MGcoEdvobg zEj4eLl1pJ7(-6lvS%dmvv8>tVZO5}3o|BAJ(6Z!MLVULCQA9tl;oF$YlqdJ(y!noX zd+{*}F%rc$e_~9ts*1;Ni5YES3xdF&EdLCCa+Rv1b-BYudFJd%4bL-k9ChHY3LB@9mt?@~ zVx+a%kEmhp^LZ5#TJi*ZILqb<%-Ab|++H~=*elO>d*$hAuLLxEW$AF8FB2`-QgYA1 zTuQxxPxX{1f2FfA?=lt~yM&qxe9Xfl{uYr)7;Eh};1g%pB;$6{2y3akejH2O^>Nf? z7_Xz%Ko#x2k;lzVwtzVaa@>ri+!H&N!9!spba_(fF7gSd=B~ea94jW3x{ziqB6qDV zwK_qcmZ~MCQU+FH6?KaI)k*pLP{4nnjPk3-am%C%Tnuy_+1<7RcY-0Upe(JREUAFv zu$Bf%qBzkfRh_5v5}$6jdmQg~*H^5MW8;h1HiqqP_b9ekcvT!b#<0_U1?@fZYUen1 zjbXQa8%Os=+oHV|J5({~$jG9C(thYt1N^GV@C>+6u$SM``VMapy zR``e=6S=#acLiKOihKAgWw()+BsxdImaMF*DHJF{=Y+7lf6yFeRlSqHo@My)t$Q6yIQh zJRZlBLdus9_6sj>9_YV}Z$5MqSKM)2co?IlX@biby??_sRwkqgE*BaiwS}44lR+w_~D|0y{=DX z?cG%@G70Z!+IC{yvHIDSl$S6?FTa(Nc7DaI)k<%RZXbDFswHeldMX~!s(*7^;pYr>!qg3PSkR%!T|b6bGw9;9 z-#$Z@^R}?WVNsL{8zKLfJjBH9U!~m+Cf!~sZYN6gy%ttR@f->PE)q2_@%wlb^Dsu- zjAwbYGHFB}eoe|e{047wZJ^Z74a{|4uO E0k8N@IsgCw literal 4431 zcmb_eTW}NC8UBtWdu@3Q#tS|;>Q>OB) z|J`%`+xaiw`TzLwd+!6-iQg-53G7VhfvBdZG;3#TTU%gyazeLax)qo<^qEwke<~gy zGzauCOHWONjg&paWd$CAby_lJnMN!yW5mXFJ5bmx7ihk1^WbPIx8Ha)8HrkEJT4dX zq;3f)iHNOP_HhBxo&OpZs7_=JbKBOr8xp8Ygpy-%ep0R>oHHYx4TQBhbIQ(b2L-AU zJ-WuTNS_5(FXonu(=wW=ddX z|FLlRRM*jm`%Z;Jy`e#Yiha?zku>ZM0k^MdNWjx+#`N+7Cz&Pwyr@IHf_nv4oYAJW zKwL|X2YNMoLPY~M2$WgoR5C^>UsuzSN(gLJu^Lsh6gHB2-&A5$w+1zur$b>gs>O#i z%aGsM#qxbwMClFr(}rXerf*s5X+8oe~(Q_+M*+LWRs_JqNs?YfJ& zF-(eMZI*i0-_ZeqJ$LplFEwQw@xVdbwv5p!TaV~D$6KZ2Eew^$Jvw^tG7BwwIP`7v`b@`&HVCXOWIKO) z=2QxgsBCsNZiShJNP*1-?$X)_hC-}5wx4E=w+htfy;_1b!_}4{J2Ql3x+Z7Jf!NLo zVv9~J*|@w}X;d|ngXUCp;?OjKf>>OTaE{e$+J>2QHiJzgUW~&~Fd^`XMHw#QQgH^4 z5#L#z2cuHfLBo)YOF~60s-zB6#Uwt=V56S8#7l-zh-HPlowyXmlS-FcSuem zpHLNF##h**bhB85%6&`JxKsR#bO$SO9#1K_Ah4xGc`3V!r)Axg(PMkUi*tBJR`;`9 z@yQC2o_yUw2ctEcO>vyePA` zjtA~GEIB6RZahQgQr=;gRJ?@mQZ%8>O3%6}TZ!-E2MR6|m5Kn!0Vfq#@G`l1r3>7X z0VBf<^b?$HLX@s0f?iz3j}*K@V0EMyZ>#t*uCY`mr9_u|vxKM6$d= z?MuNQqt=HvRs2j=OD&_8okfU^POnH@e_KTi#LqH4(*$+-4lL;bR<@DqVJ_pczr+Yn zY-OgZ2h7N675rO+d#G(KznZB>{;Jks z-A$~2>K)woHa}f736zrwSdY!l3i!q8Co6cEJW{mE-@JfN`kT|(RuEi4Z-ILH+dx3y z;3!y|VTYeK<*y3cv4hH_(w3~!0m?~9)!)2*0f8m8ZlYV8DZRzfx-r9_*Q#cZ}2(!>8zwOb}(QAGJ)R@Qz#GM6O=4iqI$EMq`OXvrvZ zYjlT+bG5tMS!rXJSavrM_gujd(&6$eP_N^@nw6)o!Q<(WSxwHvlGJWEKQ@mUaz)%} z%*im{!nt8d(|Fov77kj^Ox}te;Uufguhkg8E)b`&vabJ z_woyA{4n#Gm&>fwzM97CcQnY2Vfx?DK*wLfT7Ma{&9#VJPvfW8Fecy1vK&{*A?slg zN0;PKmea9Waxgk|(#ln=_A85Zc${d`jX$~DCF|?V7yclV#z!{F20op9=J>oQjn`Bx z8AW#{ir4V8WO5>1zStDkZ;L!#%1Oyn-+6a;!SHP{C>6^(;+JWgN4)+L6wftONRWE# z4IaYn09%^K19Y*9yNQv9*|a@ukr4K9RNs#WaU8vv+p)+0WxyIq! zb-crbxm-cqz&y{?NGM1EdER=|e1uh^=78As5iW{Nn>Kt1(cHMZp>1Us r { public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; int type = getItemViewType(position); - if (convertView == null) { + if (convertView == null || convertView.getTag() == null) { switch (type) { case AnnounceType.REMARK: convertView = mInflater.inflate(R.layout.teacher_substitution_row_remark, null); diff --git a/source/src/me/caesar2011/vpherder/teachersubstitution/TSCreate.java b/source/src/me/caesar2011/vpherder/teachersubstitution/TSCreate.java index d1e9a8f..4995878 100644 --- a/source/src/me/caesar2011/vpherder/teachersubstitution/TSCreate.java +++ b/source/src/me/caesar2011/vpherder/teachersubstitution/TSCreate.java @@ -9,9 +9,11 @@ import java.io.StringWriter; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; -import java.util.concurrent.ExecutionException; +import java.util.ArrayList; import me.caesar2011.vpherder.R; +import me.caesar2011.vpherder.views.PullToRefreshListView; +import me.caesar2011.vpherder.views.PullToRefreshListView.OnRefreshListener; import org.apache.commons.io.IOUtils; import org.json.JSONException; @@ -21,7 +23,6 @@ import android.os.AsyncTask; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.ListView; /** * Class to organize the drawings of the teacher substition. @@ -35,6 +36,9 @@ public class TSCreate { private final LayoutInflater inflater; private final ViewGroup container; private static TSjsonObject JsonObject; + private boolean downloadStarted; + private TSAdapter adapter; + private PullToRefreshListView listview; /** * Constructor @@ -43,26 +47,10 @@ public class TSCreate { this.activity = activity; this.inflater = inflater; this.container = container; + this.downloadStarted = false; if(JsonObject == null){ - try { - URL url = new URL("https://vpherder.canis.uberspace.de/example.json"); - - DownloadFilesTask downloadSubstitutions = new DownloadFilesTask(); - downloadSubstitutions.execute(url); - downloadSubstitutions.get(); - String theString = downloadSubstitutions.getOutput()[0]; - - JsonObject = new TSjsonObject(theString); - } catch (ExecutionException e) { - System.out.println("ERRRRRRRRRRRRRRRRRRRRROR ExecutionException!"); - } catch (InterruptedException e) { - System.out.println("ERRRRRRRRRRRRRRRRRRRRROR InterruptedException!"); - } catch (JSONException e) { - System.out.println("ERRRRRRRRRRRRRRRRRRRRROR JSONException!"); - } catch (MalformedURLException e) { - System.out.println("ERRRRRRRRRRRRRRRRRRRRROR MalformedURLException!"); - } + StartDownload(); } } @@ -70,49 +58,71 @@ public class TSCreate { View rootView = inflater.inflate(R.layout.fragment_teacher_substitution, container, false); - final ListView listview = (ListView) rootView.findViewById(R.id.listview); - - final TSAdapter adapter = new TSAdapter(activity, - R.layout.teacher_substitution_row_remark, JsonObject.announcements); + listview = (PullToRefreshListView) rootView.findViewById(R.id.listview); + listview.setOnRefreshListener(new OnRefreshListener() { + + @Override + public void onRefresh() { + StartDownload(); + } + + }); + System.out.println(JsonObject); + adapter = new TSAdapter(activity, + R.layout.teacher_substitution_row_remark, (JsonObject!=null)?JsonObject.announcements:(new ArrayList())); listview.setAdapter(adapter); - return rootView; } - - - private class DownloadFilesTask extends AsyncTask { - private String[] outputFiles; - - protected String[] doInBackground(URL... urls) { - int count = urls.length; - String[] files = new String[count]; - for (int i = 0; i < count; i++) { - URLConnection connection; - try { - connection = urls[i].openConnection(); - InputStream inputStream = connection.getInputStream(); - publishProgress((int) ((i / (float) count) * 100)); + public void StartDownload() { + if (!downloadStarted) { + downloadStarted = true; + try { + URL url = new URL("https://vpherder.canis.uberspace.de/example.json"); + DownloadFilesTask downloadSubstitutions = new DownloadFilesTask(); + downloadSubstitutions.execute(url); + } catch (MalformedURLException e) { + downloadStarted = false; + } + } + } - StringWriter writer = new StringWriter(); - IOUtils.copy(inputStream, writer, "UTF-8"); - files[i] = writer.toString(); - } catch (IOException e) { - } - - // Escape early if cancel() is called - if (isCancelled()) break; - } - outputFiles = files; - return files; + public void FinishDownload() { + downloadStarted = false; + adapter.clear(); + adapter.addAll(JsonObject.announcements); + adapter.notifyDataSetChanged(); + listview.onRefreshComplete(); + } + + private class DownloadFilesTask extends AsyncTask { + + protected String doInBackground(URL... urls) { + String file = ""; + URL url = urls[0]; + URLConnection connection; + try { + connection = url.openConnection(); + InputStream inputStream = connection.getInputStream(); + + StringWriter writer = new StringWriter(); + IOUtils.copy(inputStream, writer, "UTF-8"); + file = writer.toString(); + } catch (IOException e) { + } + return file; } protected void onProgressUpdate(Integer... progress) { //setProgressPercent(progress[0]); } - protected String[] getOutput() { - return outputFiles; + protected void onPostExecute(String result) { + try { + JsonObject = new TSjsonObject(result); + } catch (JSONException e) { + } + FinishDownload(); } } } diff --git a/source/src/me/caesar2011/vpherder/views/PullToRefreshListView.java b/source/src/me/caesar2011/vpherder/views/PullToRefreshListView.java index 28a5298..731142f 100644 --- a/source/src/me/caesar2011/vpherder/views/PullToRefreshListView.java +++ b/source/src/me/caesar2011/vpherder/views/PullToRefreshListView.java @@ -21,6 +21,7 @@ public class PullToRefreshListView extends ListView implements OnScrollListener private View mHeaderView; private HeaderViewHolder mHeaderViewHolder; private int mLastTopVisiblePos; + private OnRefreshListener mOnRefreshListener; private static final int PULL_DOWN_LIMIT = (int) Math.round(0.75 * DisplayMetrics.DENSITY_DEFAULT); @@ -48,6 +49,7 @@ public class PullToRefreshListView extends ListView implements OnScrollListener mHeaderView = mInflater.inflate(R.layout.pull_to_refresh_header, null); mHeaderViewHolder = new HeaderViewHolder(mHeaderView); addHeaderView(mHeaderView); + System.out.println("k"+mHeaderView); mRefreshState = RefreshState.PULL_TO_REFRESH; } @@ -68,7 +70,7 @@ public class PullToRefreshListView extends ListView implements OnScrollListener boolean isHandled = false; if (event.getAction() == MotionEvent.ACTION_DOWN || mLastTopVisiblePos == 1) { - int refreshBoxHeight = (int) ((mRefreshState == RefreshState.REFRESHING)?PULL_DOWN_LIMIT+15:1); + int refreshBoxHeight = (int) ((mRefreshState == RefreshState.REFRESHING)?PULL_DOWN_LIMIT:1); mStartX = event.getRawX(); mStartY = event.getRawY()-refreshBoxHeight; mHeaderViewHolder.setVisibility(View.VISIBLE); @@ -76,9 +78,6 @@ public class PullToRefreshListView extends ListView implements OnScrollListener } if (event.getRawY()-mStartY > Math.abs(event.getRawX()-mStartX) && getFirstVisiblePosition() == 0) { int stretch = (int) Math.max(0, event.getRawY()-mStartY); - System.out.println(event.getRawY()-mStartY); - System.out.println(Math.abs(event.getRawX()-mStartX)); - System.out.println("--"); mHeaderView.setLayoutParams(new LayoutParams(mHeaderView.getLayoutParams().width, stretch)); if (mRefreshState == RefreshState.PULL_TO_REFRESH && stretch > PULL_DOWN_LIMIT) { mRefreshState = RefreshState.RELEASE_TO_REFRESH; @@ -89,7 +88,7 @@ public class PullToRefreshListView extends ListView implements OnScrollListener } else if (mRefreshState == RefreshState.ABORTING && stretch > PULL_DOWN_LIMIT) { mRefreshState = RefreshState.RELEASE_TO_REFRESH; mHeaderViewHolder.setRefreshingState(mRefreshState); - } else if (mRefreshState == RefreshState.REFRESHING && stretch <= PULL_DOWN_LIMIT) { + } else if (mRefreshState == RefreshState.REFRESHING && stretch <= PULL_DOWN_LIMIT/2) { mRefreshState = RefreshState.ABORTING; mHeaderViewHolder.setRefreshingState(mRefreshState); } @@ -104,10 +103,7 @@ public class PullToRefreshListView extends ListView implements OnScrollListener mHeaderView.setLayoutParams(new LayoutParams(mHeaderView.getLayoutParams().width, 0)); break; case RefreshState.RELEASE_TO_REFRESH: - mHeaderViewHolder.setVisibility(View.VISIBLE); - mRefreshState = RefreshState.REFRESHING; - mHeaderViewHolder.setRefreshingState(mRefreshState); - mHeaderView.setLayoutParams(new LayoutParams(mHeaderView.getLayoutParams().width, PULL_DOWN_LIMIT)); + Refresh(); break; case RefreshState.REFRESHING: mHeaderView.setLayoutParams(new LayoutParams(mHeaderView.getLayoutParams().width, PULL_DOWN_LIMIT)); @@ -162,4 +158,30 @@ public class PullToRefreshListView extends ListView implements OnScrollListener public static final int REFRESHING = 3; public static final int ABORTING = 4; } + + public void Refresh() { + mHeaderViewHolder.setVisibility(View.VISIBLE); + mRefreshState = RefreshState.REFRESHING; + mHeaderViewHolder.setRefreshingState(mRefreshState); + mHeaderView.setLayoutParams(new LayoutParams(mHeaderView.getLayoutParams().width, PULL_DOWN_LIMIT)); + System.out.print("onRefresh"); + if (mOnRefreshListener != null) { + mOnRefreshListener.onRefresh(); + } + } + + public void setOnRefreshListener(OnRefreshListener onRefreshListener) { + mOnRefreshListener = onRefreshListener; + } + + public void onRefreshComplete() { + mHeaderViewHolder.setVisibility(View.GONE); + mRefreshState = RefreshState.PULL_TO_REFRESH; + mHeaderViewHolder.setRefreshingState(mRefreshState); + mHeaderView.setLayoutParams(new LayoutParams(mHeaderView.getLayoutParams().width, 0)); + } + + public interface OnRefreshListener { + public void onRefresh(); + } }