// Path: app/src/main/java/me/wavever/ganklock/model/bean/Gank.java
// @Table(name = "Ganks") public class Gank extends Model implements Serializable {
// 
//     @Column(name = "_id") private String _id;
//     @Column(name = "url") private String url;
//     @Column(name = "desc") private String desc;
//     @Column(name = "who") private String who;
//     @Column(name = "type") private String type;
//     @Column(name = "used") private boolean used;
//     @Column(name = "createdAt") private Date createdAt;
//     //2016-03-10T12:54:31.68Z->2016/03/10
//     @Column(name = "publishedAt") private Date publishedAt;
//     private boolean isLike;
// 
// 
//     public String get_id() {
//         return _id;
//     }
// 
// 
//     public Date getCreatedAt() {
//         return createdAt;
//     }
// 
// 
//     public String getUrl() {
//         return url;
//     }
// 
// 
//     public String getDesc() {
//         return desc;
//     }
// 
// 
//     public String getWho() {
//         return who;
//     }
// 
// 
//     public String getType() {
//         return type;
//     }
// 
// 
//     public boolean isUsed() {
//         return used;
//     }
// 
// 
//     public Date getCreateAt() {
//         return createdAt;
//     }
// 
// 
//     public Date getPublishedAt() {
//         return publishedAt;
//     }
// 
// 
//     public void setIsLike(boolean like) {
//         isLike = like;
//     }
// 
//     public boolean getIsLike() {
//         return isLike;
//     }
// }
// 
// Path: app/src/main/java/me/wavever/ganklock/model/data/ContentGankData.java
// public class ContentGankData {
// 
//     private GankService service = RetrofitUtil.getSingleton();
//     private List<Gank> mList = new ArrayList<>();
// 
//     public void getDailyGankDataFromServer(String date, Observer observer) {
// 
//         service.getGankData(date)
//                 .map(new Function<GankContent, GankContent.Result>() {
//                     @Override
//                     public GankContent.Result apply(GankContent gankContent) throws Exception {
//                         return gankContent.results;
//                     }
//                 }).map(new Function<GankContent.Result, List<Gank>>() {
//             @Override
//             public List<Gank> apply(GankContent.Result result) throws Exception {
//                 return addAllResult(result);
//             }
//         }).subscribeOn(Schedulers.io())   //在io线程进行数据的读取  放在任何地方都可以
//                 .observeOn(AndroidSchedulers.mainThread())  //在主线程处理数据  指定的是它之后的操作的线程，因此如果需要多次切换线程，可指定多次
//                 .subscribe(observer);
//         /*service.getGankData(date).flatMap(new Func1<GankContent, Observable<Gank>>() {
//             @Override public Observable<Gank> call(GankContent gankContent) {
//                 return Observable.from(gankContent.results);
//             }
//         })
//             .subscribeOn(Schedulers.io())
//             .observeOn(AndroidSchedulers.mainThread()).subscribe(subscriber);*/
//     }
// 
// 
//     private List<Gank> addAllResult(GankContent.Result results) {
//         if (!mList.isEmpty()) mList.clear();
//         if (results.androidList != null) mList.addAll(0, results.androidList);
//         if (results.iosList != null) mList.addAll(results.iosList);
//         if (results.htmlList != null) mList.addAll(results.htmlList);
//         if (results.appList != null) mList.addAll(results.appList);
//         if (results.recommendList != null) mList.addAll(results.recommendList);
//         if(results.extendRespurseList != null) mList.addAll(results.extendRespurseList);
//         if (results.restVideoList != null) mList.addAll(results.restVideoList);
//         return mList;
//     }
// }
// 
// Path: app/src/main/java/me/wavever/ganklock/view/IGankContentView.java
// public interface IGankContentView extends IBaseView {
// 
//     void loadData(String date);
//     void showData(List<Gank> list);
//     void showError();
// }


import java.util.List;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import me.wavever.ganklock.model.bean.Gank;
import me.wavever.ganklock.model.data.ContentGankData;
import me.wavever.ganklock.view.IGankContentView;
package me.wavever.ganklock.presenter;




/**
 * Created by wavever on 2016/3/4.
 */
public class GankContentPresenter extends BasePresenter<IGankContentView> {

    private static final String TAG = "GankContentPresenter-->";
    private final ContentGankData contentGankData = new ContentGankData();

    public void loadContentData(String date) {

// Path: app/src/main/java/me/wavever/ganklock/model/bean/Gank.java
// @Table(name = "Ganks") public class Gank extends Model implements Serializable {
// 
//     @Column(name = "_id") private String _id;
//     @Column(name = "url") private String url;
//     @Column(name = "desc") private String desc;
//     @Column(name = "who") private String who;
//     @Column(name = "type") private String type;
//     @Column(name = "used") private boolean used;
//     @Column(name = "createdAt") private Date createdAt;
//     //2016-03-10T12:54:31.68Z->2016/03/10
//     @Column(name = "publishedAt") private Date publishedAt;
//     private boolean isLike;
// 
// 
//     public String get_id() {
//         return _id;
//     }
// 
// 
//     public Date getCreatedAt() {
//         return createdAt;
//     }
// 
// 
//     public String getUrl() {
//         return url;
//     }
// 
// 
//     public String getDesc() {
//         return desc;
//     }
// 
// 
//     public String getWho() {
//         return who;
//     }
// 
// 
//     public String getType() {
//         return type;
//     }
// 
// 
//     public boolean isUsed() {
//         return used;
//     }
// 
// 
//     public Date getCreateAt() {
//         return createdAt;
//     }
// 
// 
//     public Date getPublishedAt() {
//         return publishedAt;
//     }
// 
// 
//     public void setIsLike(boolean like) {
//         isLike = like;
//     }
// 
//     public boolean getIsLike() {
//         return isLike;
//     }
// }
// 
// Path: app/src/main/java/me/wavever/ganklock/model/data/ContentGankData.java
// public class ContentGankData {
// 
//     private GankService service = RetrofitUtil.getSingleton();
//     private List<Gank> mList = new ArrayList<>();
// 
//     public void getDailyGankDataFromServer(String date, Observer observer) {
// 
//         service.getGankData(date)
//                 .map(new Function<GankContent, GankContent.Result>() {
//                     @Override
//                     public GankContent.Result apply(GankContent gankContent) throws Exception {
//                         return gankContent.results;
//                     }
//                 }).map(new Function<GankContent.Result, List<Gank>>() {
//             @Override
//             public List<Gank> apply(GankContent.Result result) throws Exception {
//                 return addAllResult(result);
//             }
//         }).subscribeOn(Schedulers.io())   //在io线程进行数据的读取  放在任何地方都可以
//                 .observeOn(AndroidSchedulers.mainThread())  //在主线程处理数据  指定的是它之后的操作的线程，因此如果需要多次切换线程，可指定多次
//                 .subscribe(observer);
//         /*service.getGankData(date).flatMap(new Func1<GankContent, Observable<Gank>>() {
//             @Override public Observable<Gank> call(GankContent gankContent) {
//                 return Observable.from(gankContent.results);
//             }
//         })
//             .subscribeOn(Schedulers.io())
//             .observeOn(AndroidSchedulers.mainThread()).subscribe(subscriber);*/
//     }
// 
// 
//     private List<Gank> addAllResult(GankContent.Result results) {
//         if (!mList.isEmpty()) mList.clear();
//         if (results.androidList != null) mList.addAll(0, results.androidList);
//         if (results.iosList != null) mList.addAll(results.iosList);
//         if (results.htmlList != null) mList.addAll(results.htmlList);
//         if (results.appList != null) mList.addAll(results.appList);
//         if (results.recommendList != null) mList.addAll(results.recommendList);
//         if(results.extendRespurseList != null) mList.addAll(results.extendRespurseList);
//         if (results.restVideoList != null) mList.addAll(results.restVideoList);
//         return mList;
//     }
// }
// 
// Path: app/src/main/java/me/wavever/ganklock/view/IGankContentView.java
// public interface IGankContentView extends IBaseView {
// 
//     void loadData(String date);
//     void showData(List<Gank> list);
//     void showError();
// }


// Path: app/src/main/java/me/wavever/ganklock/presenter/GankContentPresenter.java
import java.util.List;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import me.wavever.ganklock.model.bean.Gank;
import me.wavever.ganklock.model.data.ContentGankData;
import me.wavever.ganklock.view.IGankContentView;

package me.wavever.ganklock.presenter;




/**
 * Created by wavever on 2016/3/4.
 */
public class GankContentPresenter extends BasePresenter<IGankContentView> {

    private static final String TAG = "GankContentPresenter-->";
    private final ContentGankData contentGankData = new ContentGankData();

    public void loadContentData(String date) {

        Observer observer = new Observer<List<Gank>>() {