// Path: app/src/main/java/com/yunq/gankio/core/MeiziService.java
// public interface MeiziService {
// 
//     /**
//      * 数据主机地址
//      */
//     String HOST = "http://gank.avosapps.com/api/";
// 
//     @GET("data/福利/{pageSize}/{page}")
//     Observable<PrettyGirlData> getPrettyGirlData(@Path("pageSize") int pageSize, @Path("page") int page);
// 
//     @GET("data/休息视频/{pageSize}/{page}")
//     Observable<休息视频Data> get休息视频Data(@Path("pageSize") int pageSize, @Path("page") int page);
// 
//     @GET("day/{year}/{month}/{day}")
//     Observable<GankData> getGankData(@Path("year") int year, @Path("month") int month, @Path("day") int day);
// 
//     class Creator {
//         public static MeiziService newGudongService(OkHttpClient client) {
//             Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").serializeNulls().create();
// 
//             Retrofit apiAdapter = new Retrofit.Builder()
//                     .baseUrl(HOST)
//                     .addConverterFactory(GsonConverterFactory.create(gson))
//                     .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
//                     .client(client)
//                     .build();
// 
//             return apiAdapter.create(MeiziService.class);
//         }
//     }
// 
// }
// 
// Path: app/src/main/java/com/yunq/gankio/data/entity/Gank.java
// @Table("ganks")
// public class Gank 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("updatedAt")
//     public Date updatedAt;
//     @Column("createdAt")
//     public Date createdAt;
//     @Column("publishedAt")
//     public Date publishedAt;
// }
// 
// 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/data/parse/GankData.java
// public class GankData extends BaseData{
// 
//     public List<String> category;
//     public Result results;
// 
//     public class Result {
//         @SerializedName("Android")
//         public List<Gank> androidList;
//         @SerializedName("休息视频")
//         public List<Gank> 休息视频List;
//         @SerializedName("iOS")
//         public List<Gank> iOSList;
//         @SerializedName("福利")
//         public List<Gank> 妹纸List;
//         @SerializedName("拓展资源")
//         public List<Gank> 拓展资源List;
//         @SerializedName("瞎推荐")
//         public List<Gank> 瞎推荐List;
//         @SerializedName("App")
//         public List<Gank> appList;
//     }
// }
// 
// Path: app/src/main/java/com/yunq/gankio/data/parse/PrettyGirlData.java
// public class PrettyGirlData extends BaseData {
// 
//     public List<Girl> results;
// }


import com.yunq.gankio.core.MeiziService;
import com.yunq.gankio.data.entity.Gank;
import com.yunq.gankio.data.entity.Girl;
import com.yunq.gankio.data.parse.GankData;
import com.yunq.gankio.data.parse.PrettyGirlData;
import com.yunq.gankio.data.parse.休息视频Data;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import okhttp3.OkHttpClient;
import rx.Observable;
import rx.functions.Func1;
import rx.functions.Func2;
package com.yunq.gankio.data;





/**
 * Model层数据管理类，所有的数据变换操作全部放到这个类中，
 * 但随着数据操作的增多，这个类会变得越来越臃肿，
 * 我们可以可以将每组相关的数据操作抽取出来放到另一个类中去管理
 */
@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
     */
// Path: app/src/main/java/com/yunq/gankio/core/MeiziService.java
// public interface MeiziService {
// 
//     /**
//      * 数据主机地址
//      */
//     String HOST = "http://gank.avosapps.com/api/";
// 
//     @GET("data/福利/{pageSize}/{page}")
//     Observable<PrettyGirlData> getPrettyGirlData(@Path("pageSize") int pageSize, @Path("page") int page);
// 
//     @GET("data/休息视频/{pageSize}/{page}")
//     Observable<休息视频Data> get休息视频Data(@Path("pageSize") int pageSize, @Path("page") int page);
// 
//     @GET("day/{year}/{month}/{day}")
//     Observable<GankData> getGankData(@Path("year") int year, @Path("month") int month, @Path("day") int day);
// 
//     class Creator {
//         public static MeiziService newGudongService(OkHttpClient client) {
//             Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").serializeNulls().create();
// 
//             Retrofit apiAdapter = new Retrofit.Builder()
//                     .baseUrl(HOST)
//                     .addConverterFactory(GsonConverterFactory.create(gson))
//                     .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
//                     .client(client)
//                     .build();
// 
//             return apiAdapter.create(MeiziService.class);
//         }
//     }
// 
// }
// 
// Path: app/src/main/java/com/yunq/gankio/data/entity/Gank.java
// @Table("ganks")
// public class Gank 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("updatedAt")
//     public Date updatedAt;
//     @Column("createdAt")
//     public Date createdAt;
//     @Column("publishedAt")
//     public Date publishedAt;
// }
// 
// 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/data/parse/GankData.java
// public class GankData extends BaseData{
// 
//     public List<String> category;
//     public Result results;
// 
//     public class Result {
//         @SerializedName("Android")
//         public List<Gank> androidList;
//         @SerializedName("休息视频")
//         public List<Gank> 休息视频List;
//         @SerializedName("iOS")
//         public List<Gank> iOSList;
//         @SerializedName("福利")
//         public List<Gank> 妹纸List;
//         @SerializedName("拓展资源")
//         public List<Gank> 拓展资源List;
//         @SerializedName("瞎推荐")
//         public List<Gank> 瞎推荐List;
//         @SerializedName("App")
//         public List<Gank> appList;
//     }
// }
// 
// Path: app/src/main/java/com/yunq/gankio/data/parse/PrettyGirlData.java
// public class PrettyGirlData extends BaseData {
// 
//     public List<Girl> results;
// }


// Path: app/src/main/java/com/yunq/gankio/data/DataManager.java
import com.yunq.gankio.core.MeiziService;
import com.yunq.gankio.data.entity.Gank;
import com.yunq.gankio.data.entity.Girl;
import com.yunq.gankio.data.parse.GankData;
import com.yunq.gankio.data.parse.PrettyGirlData;
import com.yunq.gankio.data.parse.休息视频Data;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import okhttp3.OkHttpClient;
import rx.Observable;
import rx.functions.Func1;
import rx.functions.Func2;

package com.yunq.gankio.data;





/**
 * Model层数据管理类，所有的数据变换操作全部放到这个类中，
 * 但随着数据操作的增多，这个类会变得越来越臃肿，
 * 我们可以可以将每组相关的数据操作抽取出来放到另一个类中去管理
 */
@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) {