package com.hpw.myapp.ui.zhihu.contract;
import com.hpw.mvpframe.base.CoreBaseModel;
import com.hpw.mvpframe.base.CoreBasePresenter;
import com.hpw.mvpframe.base.CoreBaseView;
import com.hpw.myapp.ui.zhihu.model.dailymodel.DailyListBean;
import com.hpw.myapp.ui.zhihu.model.dailymodel.ZhihuDetailBean;
import com.hpw.myapp.ui.zhihu.model.sectionmodel.SectionChildListBean;
import com.hpw.myapp.ui.zhihu.model.sectionmodel.SectionListBean;
import com.hpw.myapp.ui.zhihu.model.wechatmodel.WXItemBean;
import java.util.List;
import rx.Observable;
/**
* Created by hpw on 16/10/31.
*/
public interface ZhihuContract {
//主页接口
abstract class ZhihuMainPresenter extends CoreBasePresenter<ZhihuMainModel, ZhihuMainView> {
public abstract void getTabList();
}
interface ZhihuMainModel extends CoreBaseModel {
String[] getTabs();
}
interface ZhihuMainView extends CoreBaseView {
void showTabList(String[] mTabs);
}
//daily所有接口(model写在了一起,view presenter分开写)
abstract class DailyPresenter extends CoreBasePresenter<DailyModel, DailyView> {
public abstract void getDailyData();
public abstract void startInterval();
}
interface DailyModel extends CoreBaseModel {
Observable<DailyListBean> getDailyData();
Observable<ZhihuDetailBean> getZhihuDetails(int anInt);
}
interface DailyView extends CoreBaseView {
void showContent(DailyListBean info);
void doInterval(int i);
}
abstract class ZhihuDetailsPresenter extends CoreBasePresenter<DailyModel, ZhihuDetailsView> {
public abstract void getZhihuDetails(int anInt);
}
interface ZhihuDetailsView extends CoreBaseView {
void showContent(ZhihuDetailBean info);
}
//section所有接口
abstract class SectionPresenter extends CoreBasePresenter<SectionModel, SectionView> {
public abstract void getSectionData();
}
interface SectionModel extends CoreBaseModel {
Observable<SectionListBean> getSectionData();
Observable<SectionChildListBean> getSectionListData(int id);
}
interface SectionView extends CoreBaseView {
void showContent(SectionListBean info);
}
abstract class SectionListPresenter extends CoreBasePresenter<SectionModel, SectionListView> {
public abstract void getSectionListData(int id);
}
interface SectionListView extends CoreBaseView {
void showContent(SectionChildListBean info);
}
abstract class WechatPresenter extends CoreBasePresenter<WechatModel, WechatView> {
public abstract void getWechatData(int num, int page);
}
interface WechatModel extends CoreBaseModel {
Observable<List<WXItemBean>> getWechatData(int num, int page);
}
interface WechatView extends CoreBaseView {
void showContent(List<WXItemBean> mList);
}
}