package com.sjl.yuehu.injector.component;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.sjl.yuehu.api.ApiService;
import com.sjl.yuehu.api.RemoteResult;
import com.sjl.yuehu.api.SimpleAPICallBack;
import com.sjl.yuehu.data.bean.HomeBean;
import com.sjl.yuehu.data.bean.ThemesBean;
import com.sjl.yuehu.data.bean.TitileBean;
import com.sjl.yuehu.data.bean.WebBean;
import com.sjl.yuehu.data.bean.WebExtraBean;
import javax.inject.Inject;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
import rx.Subscriber;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
/**
* Created by 小鹿 on 2017/2/8.
*/
@Singleton
public class DataManager {
private final ApiService apiService;
private final Gson gson;
@Inject
public DataManager(ApiService apiService, Gson gson) {
this.apiService = apiService;
this.gson = gson;
}
//左侧标题栏
public Subscription getLeftContent(Subscriber<TitileBean> subscriber) {
return apiService.getLeftContent()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(subscriber);
}
//主题数据
public Subscription onLoad(int id, Subscriber<ThemesBean> subscriber) {
return apiService.onLoad(id)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(subscriber);
}
//首页数据
public Subscription getLatest(Subscriber<HomeBean> subscriber) {
return apiService.onLatest()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(subscriber);
}
//web
public Subscription onLoadWeb(int id, Subscriber<WebBean> subscriber) {
return apiService.onLoadWeb(id)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(subscriber);
}
//首页过往消息
public Subscription getGone(Subscriber<HomeBean> subscriber, String date) {
return apiService.onGone(date)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(subscriber);
}
//主题过往消息
public Subscription onLoadThemeGone(String timestamp, Subscriber<ThemesBean> subscriber, int id) {
return apiService.onThemeGone(timestamp,id)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(subscriber);
}
//点赞等信息
public Subscription onLoadExtra(int id, Subscriber<WebExtraBean> subscriber) {
return apiService.onLoadExtra(id)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(subscriber);
}
}