package com.jaydenxiao.androidfire.ui.news.contract; import com.jaydenxiao.androidfire.bean.NewsChannelTable; import com.jaydenxiao.common.base.BaseModel; import com.jaydenxiao.common.base.BasePresenter; import com.jaydenxiao.common.base.BaseView; import java.util.ArrayList; import java.util.List; import rx.Observable; /** * des: * Created by xsf * on 2016.09.11:53 */ public interface NewsChannelContract { interface Model extends BaseModel { Observable<List<NewsChannelTable>> lodeMineNewsChannels(); Observable<List<NewsChannelTable>> lodeMoreNewsChannels(); Observable<String> swapDb(ArrayList<NewsChannelTable> newsChannelTableList, int fromPosition, int toPosition); Observable<String> updateDb(ArrayList<NewsChannelTable> mineChannelTableList, ArrayList<NewsChannelTable> moreChannelTableList); } interface View extends BaseView { void returnMineNewsChannels(List<NewsChannelTable> newsChannelsMine); void returnMoreNewsChannels(List<NewsChannelTable> newsChannelsMore); } abstract static class Presenter extends BasePresenter<View, Model> { public abstract void lodeChannelsRequest(); public abstract void onItemSwap(ArrayList<NewsChannelTable> newsChannelTableList, int fromPosition, final int toPosition); public abstract void onItemAddOrRemove(ArrayList<NewsChannelTable> mineChannelTableList, ArrayList<NewsChannelTable> moreChannelTableList); } }