From 2872d82fd8ae905cccc05af4f029c636ef9d7e68 Mon Sep 17 00:00:00 2001 From: nilupeng <qingingrunt2010@qq.com> Date: Tue, 09 Aug 2022 04:15:40 +0000 Subject: [PATCH] Merge branch 'master' into page --- app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java | 55 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 35 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java b/app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java index 5560ad5..bc7a5d7 100644 --- a/app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java +++ b/app/src/main/java/com/runt/open/mvvm/base/model/LoadPageViewModel.java @@ -6,42 +6,57 @@ import com.runt.open.mvvm.data.PageResult; import com.runt.open.mvvm.retrofit.observable.HttpObserver; -import java.util.List; -import java.util.Map; +import java.lang.reflect.ParameterizedType; +import java.util.ArrayList; + +import io.reactivex.Observable; /** * 分页 * Created by Administrator on 2021/11/3 0003. */ -public abstract class LoadPageViewModel<RESULT extends PageResult> extends BaseViewModel { +public abstract class LoadPageViewModel<D> extends BaseViewModel { public final int SIZE = 10; - private MutableLiveData<List> liveData = new MutableLiveData<>(); + private MutableLiveData<ArrayList<D>> liveData = new MutableLiveData<>(); private MutableLiveData liveFailed = new MutableLiveData(); - protected abstract String requestUrl(); + /** + * 请求地址 + * @param page 页数 + * @param objects 参数 + * @return + */ + public abstract Observable<HttpApiResult<PageResult<D>>> request(int page,Object... objects); - public void requestData(int page,Map param){ - httpObserverOn( commonApi.getPageData(requestUrl(), page, SIZE, param), new HttpObserver<RESULT>() { - - @Override - protected void onSuccess(RESULT data) { - liveData.postValue(data.rows); - } - - @Override - protected void onFailed(HttpApiResult httpResult) { - mActivity.showToast(httpResult.msg); - liveFailed.postValue(1); - } - }); + /** + * 数据请求 + */ + public void requestData(Observable<HttpApiResult<PageResult<D>>> observable){ + final ParameterizedType type = (ParameterizedType) this.getClass().getGenericSuperclass(); + Class<D> entityClass = (Class<D>) type.getActualTypeArguments()[0]; + httpObserverOn( observable, new PageHttpObserver()); } - public MutableLiveData<List> getLiveData(){ + public MutableLiveData<ArrayList<D>> getLiveData(){ return liveData; } public MutableLiveData getLiveFailed() { return liveFailed; } + + public class PageHttpObserver extends HttpObserver<PageResult<D>> { + @Override + protected void onSuccess(PageResult<D> data) { + liveData.postValue(data.rows); + } + + @Override + protected void onFailed(HttpApiResult httpResult) { + mActivity.showToast(httpResult.msg); + liveFailed.postValue(1); + } + } + } -- Gitblit v1.9.1