My Shopping

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"));
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值