MVP:
P:
public class NewPresnter implements Basepresenter{
private IView iv;
private DefaultSubscriber<WelfareBean> subscriberWel;
private DefaultSubscriber<AllBean> subscriberAll;
private DefaultSubscriber<IsoBean> subscriberIos;
private DefaultSubscriber<AndroidBean> subscriberAndroid;
public void attach(IView iv){
this.iv=iv;
}
public void dettach(){
if(iv!=null){
iv=null;
}
if(subscriberAll!=null){
subscriberAll=null;
}
if(subscriberAndroid!=null){
subscriberAndroid=null;
}
if(subscriberWel!=null){
subscriberWel=null;
}
if(subscriberIos!=null){
subscriberIos=null;
}
}
@Override
public void getAndroid(HashMap<String, Integer> map) {
NewModel model = new NewModel(this);
model.getAndroid(map);
}
@Override
public void getIos(HashMap<String, Integer> map) {
NewModel model = new NewModel(this);
model.getIos(map);
}
@Override
public void getAll(HashMap<String, Integer> map) {
NewModel model = new NewModel(this);
model.getAll(map);
}
@Override
public void getWelfare(HashMap<String, Integer> map) {
NewModel model = new NewModel(this);
model.getWelfare(map);
}
public void setAndroid(Flowable<AndroidBean> bean) {
subscriberAndroid = bean.subscribeOn(Schedulers.io()).observeOn(Schedulers.newThread()).subscribeWith(new DefaultSubscriber<AndroidBean>() {
@Override
public void onNext(AndroidBean androidBean) {
iv.successAndroid(androidBean);
}
@Override
public void onError(Throwable t) {
iv.failed(t.getMessage());
}
@Override
public void onComplete() {
}
});
}
public void setIos(Flowable<IsoBean> bean) {
subscriberIos = bean.subscribeOn(Schedulers.io()).observeOn(Schedulers.newThread()).subscribeWith(new DefaultSubscriber<IsoBean>() {
@Override
public void onNext(IsoBean isoBean) {
iv.successIos(isoBean);
}
@Override
public void onError(Throwable t) {
iv.failed(t.getMessage());
}
@Override
public void onComplete() {
}
});
}
public void setAll(Flowable<AllBean> bean) {
subscriberAll = bean.subscribeOn(Schedulers.io()).observeOn(Schedulers.newThread()).subscribeWith(new DefaultSubscriber<AllBean>() {
@Override
public void onNext(AllBean allBean) {
iv.successAll(allBean);
}
@Override
public void onError(Throwable t) {
iv.failed(t.getMessage());
}
@Override
public void onComplete() {
}
});
}
public void setWelfare(Flowable<WelfareBean> bean) {
subscriberWel = bean.subscribeOn(Schedulers.io()).observeOn(Schedulers.newThread()).subscribeWith(new DefaultSubscriber<WelfareBean>() {
@Override
public void onNext(WelfareBean welfareBean) {
iv.successWelfare(welfareBean);
}
@Override
public void onError(Throwable t) {
iv.failed(t.getMessage());
}
@Override
public void onComplete() {
}
});
}
}
M:
public class NewModel implements BaseModel{
private NewPresnter presenter;
public NewModel(NewPresnter presnter){
this.presenter=presnter;
}
@Override
public void getAndroid(HashMap<String, Integer> map) {
Flowable<AndroidBean> flowable = RetrofitUtils.getInstance().getAndroidBean(map);
presenter.setAndroid(flowable);
}
@Override
public void getIos(HashMap<String, Integer> map) {
Flowable<IsoBean> flowable = RetrofitUtils.getInstance().getIsoBean(map);
presenter.setIos(flowable);
}
@Override
public void getAll(HashMap<String, Integer> map) {
Flowable<AllBean> flowable = RetrofitUtils.getInstance().getAllBean(map);
presenter.setAll(flowable);
}
@Override
public void getWelfare(HashMap<String, Integer> map) {
Flowable<WelfareBean> flowable = RetrofitUtils.getInstance().getWelfareBean(map);
presenter.setWelfare(flowable);
}
}
MyRetrofit:
public interface MyRetrofit {
@GET("api/data/Android/{num}/{page}")
Flowable<AndroidBean> getAndroid(@Path("num") int num,@Path("page") int page);
@GET("api/data/iOS/{num}/{page}")
Flowable<IsoBean> getIos(@Path("num") int num, @Path("page") int page);
@GET("api/data/福利/{num}/{page}")
Flowable<WelfareBean> getWelfare(@Path("num") int num, @Path("page") int page);
@GET("api/data/all/{num}/{page}")
Flowable<AllBean> getAll(@Path("num") int num, @Path("page") int page);
}
RetrofitUtils:
public class RetrofitUtils {
private static volatile RetrofitUtils instance;
private final MyRetrofit retrofit1;
private RetrofitUtils(){
Log.d("zzz","111");
OkHttpClient client = new OkHttpClient.Builder().build();
Retrofit retrofit=new Retrofit.Builder().client(client).baseUrl("http://gank.io/").addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create()).build();
retrofit1 = retrofit.create(MyRetrofit.class);
}
public static RetrofitUtils getInstance(){
if(instance==null){
synchronized (RetrofitUtils.class){
if(null==instance){
instance=new RetrofitUtils();
}
}
}
return instance;
}
public Flowable<AndroidBean> getAndroidBean(HashMap<String,Integer> map){
return retrofit1.getAndroid(map.get("num"),map.get("page"));
}
public Flowable<IsoBean> getIsoBean(HashMap<String,Integer> map){
return retrofit1.getIos(map.get("num"),map.get("page"));
}
public Flowable<WelfareBean> getWelfareBean(HashMap<String,Integer> map){
return retrofit1.getWelfare(map.get("num"),map.get("page"));
}
public Flowable<AllBean> getAllBean(HashMap<String,Integer> map){
return retrofit1.getAll(map.get("num"),map.get("page"));
}
}
My Shopping
最新推荐文章于 2022-06-21 11:19:17 发布