// Path: app/src/main/java/com/yunq/gankio/data/DataManager.java
// @Singleton
// public class DataManager {
//     private final OkHttpClient mClient;
// 
//     private final MeiziService mMeiziService;
// 
//     @Inject
//     public DataManager(OkHttpClient client) {
//         mClient = client;
//         mMeiziService = MeiziService.Creator.newGudongService(client);
//     }
// 
// 
//     public void cancelRequest() {
//        mClient.dispatcher().cancelAll();
//     }
// 
//     /**
//      * MainActivity中获取所有Girls
//      */
//     public Observable<List<Girl>> getGirls(int pageSize, int currentPage) {
//         return Observable.zip(mMeiziService.getPrettyGirlData(pageSize, currentPage),
//                 mMeiziService.get休息视频Data(pageSize, currentPage),
//                 new Func2<PrettyGirlData, 休息视频Data, PrettyGirlData>() {
//                     @Override
//                     public PrettyGirlData call(PrettyGirlData prettyGirlData, 休息视频Data 休息视频Data) {
//                         return DataUtils.createGirlInfoWith休息视频(prettyGirlData, 休息视频Data);
//                     }
//                 })
//                 .map(new Func1<PrettyGirlData, List<Girl>>() {
//                     @Override
//                     public List<Girl> call(PrettyGirlData girlData) {
//                         return girlData.results;
//                     }
//                 })
//                 .flatMap(new Func1<List<Girl>, Observable<Girl>>() {
//                     @Override
//                     public Observable<Girl> call(List<Girl> girls) {
//                         return Observable.from(girls);
//                     }
//                 })
//                 .toSortedList(new Func2<Girl, Girl, Integer>() {
//                     @Override
//                     public Integer call(Girl girl, Girl girl2) {
//                         return girl2.publishedAt.compareTo(girl.publishedAt);
//                     }
//                 });
//     }
// 
//     /**
//      * GankDetailActivity
//      */
//     public Observable<List<Gank>> getGankData(Date date) {
//         Calendar calendar = Calendar.getInstance();
//         calendar.setTime(date);
//         int year = calendar.get(Calendar.YEAR);
//         int month = calendar.get(Calendar.MONTH) + 1;
//         int day = calendar.get(Calendar.DAY_OF_MONTH);
// 
//         return mMeiziService.getGankData(year, month, day)
//                 .map(new Func1<GankData, GankData.Result>() {
//                     @Override
//                     public GankData.Result call(GankData gankData) {
//                         return gankData.results;
//                     }
//                 })
//                 .map(new Func1<GankData.Result, List<Gank>>() {
//                     @Override
//                     public List<Gank> call(GankData.Result result) {
//                         return DataUtils.addAllResults(result);
//                     }
//                 });
//     }
// 
// }
// 
// Path: app/src/main/java/com/yunq/gankio/data/entity/Girl.java
// public class Girl extends Soul {
// 
//     @Column("used")
//     public boolean used;
//     @Column("type")
//     public String type;
//     @Column("url")
//     public String url;
//     @Column("who")
//     public String who;
//     @Column("desc")
//     public String desc;
//     @Column("createdAt")
//     public Date createdAt;
//     @Column("publishedAt")
//     public Date publishedAt;
//     @Column("updatedAt")
//     public Date updatedAt;
// 
// }
// 
// Path: app/src/main/java/com/yunq/gankio/presenter/view/IMainView.java
// public interface IMainView<T extends Soul> extends ISwipeRefreshView {
// 
//     void fillData(List<T> data);
// 
//     void appendMoreDataToView(List<T> data);
// 
//     void hasNoMoreData();
// 
// 
// }


import com.yunq.gankio.data.DataManager;
import com.yunq.gankio.data.entity.Girl;
import com.yunq.gankio.presenter.view.IMainView;
import java.util.List;
import javax.inject.Inject;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action0;
import rx.functions.Action1;
import rx.schedulers.Schedulers;
package com.yunq.gankio.presenter;





/**
 * Created by admin on 16/1/5.
 */
public class MainPresenter extends BasePresenter<IMainView> {

    private final DataManager mDataManager;

    private int mCurrentPage = 1;

    private static final int PAGE_SIZE = 10;

    @Inject
    public MainPresenter(DataManager dataManager) {
        mDataManager = dataManager;
    }

    @Override
    public void attachView(IMainView view) {
        super.attachView(view);
    }

    public void resetCurrentPage() {
        mCurrentPage = 1;
    }

    public boolean shouldRefillGirls() {
        return mCurrentPage <= 2;
    }

    public void refillGirls() {

        addSubscription( mDataManager.getGirls(PAGE_SIZE, mCurrentPage)
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeOn(Schedulers.io())
// Path: app/src/main/java/com/yunq/gankio/data/DataManager.java
// @Singleton
// public class DataManager {
//     private final OkHttpClient mClient;
// 
//     private final MeiziService mMeiziService;
// 
//     @Inject
//     public DataManager(OkHttpClient client) {
//         mClient = client;
//         mMeiziService = MeiziService.Creator.newGudongService(client);
//     }
// 
// 
//     public void cancelRequest() {
//        mClient.dispatcher().cancelAll();
//     }
// 
//     /**
//      * MainActivity中获取所有Girls
//      */
//     public Observable<List<Girl>> getGirls(int pageSize, int currentPage) {
//         return Observable.zip(mMeiziService.getPrettyGirlData(pageSize, currentPage),
//                 mMeiziService.get休息视频Data(pageSize, currentPage),
//                 new Func2<PrettyGirlData, 休息视频Data, PrettyGirlData>() {
//                     @Override
//                     public PrettyGirlData call(PrettyGirlData prettyGirlData, 休息视频Data 休息视频Data) {
//                         return DataUtils.createGirlInfoWith休息视频(prettyGirlData, 休息视频Data);
//                     }
//                 })
//                 .map(new Func1<PrettyGirlData, List<Girl>>() {
//                     @Override
//                     public List<Girl> call(PrettyGirlData girlData) {
//                         return girlData.results;
//                     }
//                 })
//                 .flatMap(new Func1<List<Girl>, Observable<Girl>>() {
//                     @Override
//                     public Observable<Girl> call(List<Girl> girls) {
//                         return Observable.from(girls);
//                     }
//                 })
//                 .toSortedList(new Func2<Girl, Girl, Integer>() {
//                     @Override
//                     public Integer call(Girl girl, Girl girl2) {
//                         return girl2.publishedAt.compareTo(girl.publishedAt);
//                     }
//                 });
//     }
// 
//     /**
//      * GankDetailActivity
//      */
//     public Observable<List<Gank>> getGankData(Date date) {
//         Calendar calendar = Calendar.getInstance();
//         calendar.setTime(date);
//         int year = calendar.get(Calendar.YEAR);
//         int month = calendar.get(Calendar.MONTH) + 1;
//         int day = calendar.get(Calendar.DAY_OF_MONTH);
// 
//         return mMeiziService.getGankData(year, month, day)
//                 .map(new Func1<GankData, GankData.Result>() {
//                     @Override
//                     public GankData.Result call(GankData gankData) {
//                         return gankData.results;
//                     }
//                 })
//                 .map(new Func1<GankData.Result, List<Gank>>() {
//                     @Override
//                     public List<Gank> call(GankData.Result result) {
//                         return DataUtils.addAllResults(result);
//                     }
//                 });
//     }
// 
// }
// 
// Path: app/src/main/java/com/yunq/gankio/data/entity/Girl.java
// public class Girl extends Soul {
// 
//     @Column("used")
//     public boolean used;
//     @Column("type")
//     public String type;
//     @Column("url")
//     public String url;
//     @Column("who")
//     public String who;
//     @Column("desc")
//     public String desc;
//     @Column("createdAt")
//     public Date createdAt;
//     @Column("publishedAt")
//     public Date publishedAt;
//     @Column("updatedAt")
//     public Date updatedAt;
// 
// }
// 
// Path: app/src/main/java/com/yunq/gankio/presenter/view/IMainView.java
// public interface IMainView<T extends Soul> extends ISwipeRefreshView {
// 
//     void fillData(List<T> data);
// 
//     void appendMoreDataToView(List<T> data);
// 
//     void hasNoMoreData();
// 
// 
// }


// Path: app/src/main/java/com/yunq/gankio/presenter/MainPresenter.java
import com.yunq.gankio.data.DataManager;
import com.yunq.gankio.data.entity.Girl;
import com.yunq.gankio.presenter.view.IMainView;
import java.util.List;
import javax.inject.Inject;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action0;
import rx.functions.Action1;
import rx.schedulers.Schedulers;

package com.yunq.gankio.presenter;





/**
 * Created by admin on 16/1/5.
 */
public class MainPresenter extends BasePresenter<IMainView> {

    private final DataManager mDataManager;

    private int mCurrentPage = 1;

    private static final int PAGE_SIZE = 10;

    @Inject
    public MainPresenter(DataManager dataManager) {
        mDataManager = dataManager;
    }

    @Override
    public void attachView(IMainView view) {
        super.attachView(view);
    }

    public void resetCurrentPage() {
        mCurrentPage = 1;
    }

    public boolean shouldRefillGirls() {
        return mCurrentPage <= 2;
    }

    public void refillGirls() {

        addSubscription( mDataManager.getGirls(PAGE_SIZE, mCurrentPage)
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeOn(Schedulers.io())
                .subscribe(new Subscriber<List<Girl>>() {