My Shopping

来源:互联网 发布:阿里云邮箱人工客服 编辑:程序博客网 时间:2024/06/01 21:06
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"));    }}

原创粉丝点击