3535import com .gcssloop .diycode .fragment .provider .Footer ;
3636import com .gcssloop .diycode .fragment .provider .FooterProvider ;
3737import com .gcssloop .diycode_sdk .api .base .event .BaseEvent ;
38- import com .gcssloop .diycode_sdk .log .Logger ;
3938import com .gcssloop .recyclerview .adapter .multitype .HeaderFooterAdapter ;
4039
4140import org .greenrobot .eventbus .EventBus ;
4948 */
5049public abstract class RefreshRecyclerFragment <T , Event extends BaseEvent <List <T >>> extends
5150 BaseFragment {
52-
5351 // 请求状态 - 下拉刷新 还是 加载更多
5452 public static final String POST_LOAD_MORE = "load_more" ;
5553 public static final String POST_REFRESH = "refresh" ;
@@ -107,30 +105,15 @@ public void needLoadMore() {
107105 mRecyclerView .setAdapter (mAdapter );
108106 mRecyclerView .setLayoutManager (getRecyclerViewLayoutManager ());
109107 setRecyclerViewAdapter (getContext (), mRecyclerView , mAdapter );
110-
111108 // 监听 RefreshLayout 下拉刷新
112109 mRefreshLayout .setOnRefreshListener (new SwipeRefreshLayout .OnRefreshListener () {
113110 @ Override
114111 public void onRefresh () {
115112 refresh ();
116113 }
117114 });
118- Logger .e ("initViews - end" );
119115 }
120116
121- /**
122- * 为 Adapter 注册类型
123- *
124- * @param recyclerView RecyclerView
125- */
126- protected abstract void setRecyclerViewAdapter (Context context , RecyclerView recyclerView ,
127- HeaderFooterAdapter adapter );
128-
129- @ NonNull
130- protected abstract RecyclerView .LayoutManager getRecyclerViewLayoutManager ();
131-
132- public abstract void initData (HeaderFooterAdapter adapter );
133-
134117 protected void refresh () {
135118 if (!refreshEnable ) return ;
136119 pageIndex = 0 ;
@@ -141,7 +124,6 @@ protected void refresh() {
141124 }
142125
143126 protected void loadMore () {
144- Logger .e ("loadMore - start" );
145127 try {
146128 if (!loadMoreEnable ) return ;
147129 String uuid = request (pageIndex * pageCount , pageCount );
@@ -150,21 +132,10 @@ protected void loadMore() {
150132 mState = STATE_LOADING ;
151133 mFooterProvider .setFooterLoading ();
152134 } catch (Exception e ) {
153- Logger . e ( "loadMore:" + e . toString () );
135+ e . printStackTrace ( );
154136 }
155- Logger .e ("loadMore - end" );
156137 }
157138
158- /**
159- * 请求数据。
160- *
161- * @param offset 偏移量
162- * @param limit 数量
163- * @return uuid
164- */
165- @ NonNull
166- protected abstract String request (int offset , int limit );
167-
168139 @ Subscribe (threadMode = ThreadMode .MAIN )
169140 public void onResultEvent (Event event ) {
170141 String postType = mPostTypes .get (event .getUUID ());
@@ -186,8 +157,6 @@ protected void onRefresh(Event event) {
186157 onRefresh (event , mAdapter );
187158 }
188159
189- protected abstract void onRefresh (Event event , HeaderFooterAdapter adapter );
190-
191160 protected void onLoadMore (Event event ) {
192161 if (event .getBean ().size () < pageCount ) {
193162 mState = STATE_NO_MORE ;
@@ -199,8 +168,6 @@ protected void onLoadMore(Event event) {
199168 onLoadMore (event , mAdapter );
200169 }
201170
202- protected abstract void onLoadMore (Event event , HeaderFooterAdapter adapter );
203-
204171 protected void onError (Event event ) {
205172 mState = STATE_NORMAL ; // 状态重置为正常,以便可以重试,否则进入异常状态后无法再变为正常状态
206173 String postType = mPostTypes .get (event .getUUID ());
@@ -219,9 +186,6 @@ public void onClick(View v) {
219186 onError (event , postType );
220187 }
221188
222- protected abstract void onError (Event event , String postType );
223-
224-
225189 public void setRefreshEnable (boolean refreshEnable ) {
226190 this .refreshEnable = refreshEnable ;
227191 mRefreshLayout .setEnabled (refreshEnable );
@@ -246,4 +210,21 @@ public void onStop() {
246210 super .onStop ();
247211 EventBus .getDefault ().unregister (this );
248212 }
249- }
213+
214+ //--- 需要继承类处理的部分 ----------------------------------------------------------------------
215+
216+ public abstract void initData (HeaderFooterAdapter adapter );
217+
218+ protected abstract void setRecyclerViewAdapter (Context context , RecyclerView recyclerView ,
219+ HeaderFooterAdapter adapter );
220+
221+ @ NonNull protected abstract RecyclerView .LayoutManager getRecyclerViewLayoutManager ();
222+
223+ @ NonNull protected abstract String request (int offset , int limit );
224+
225+ protected abstract void onRefresh (Event event , HeaderFooterAdapter adapter );
226+
227+ protected abstract void onLoadMore (Event event , HeaderFooterAdapter adapter );
228+
229+ protected abstract void onError (Event event , String postType );
230+ }
0 commit comments