package com.laotan.easyreader.presenter.impl; import com.laotan.easyreader.app.AppConstants; import com.laotan.easyreader.bean.topnews.NewsDetailBean; import com.laotan.easyreader.bean.topnews.NewsListBean; import com.laotan.easyreader.http.Stateful; import com.laotan.easyreader.http.service.TopNewsService; import com.laotan.easyreader.http.utils.Callback; import com.laotan.easyreader.presenter.BasePresenter; import com.laotan.easyreader.presenter.TopNewsPresenter; import com.laotan.easyreader.utils.NewsJsonUtils; import com.laotan.easyreader.utils.OkHttpUtils; import javax.inject.Inject; /** * Created by quantan.liu on 2017/3/27. */ public class TopNewsPresenterImpl extends BasePresenter<TopNewsPresenter.View> implements TopNewsPresenter.Presenter { private TopNewsService mTopNewsService; @Inject public TopNewsPresenterImpl(TopNewsService mTopNewsService) { this.mTopNewsService = mTopNewsService; } @Override public void fetchTopNewsList(int id) { invoke(mTopNewsService.fetchNews(id),new Callback<NewsListBean>(){ @Override public void onResponse(NewsListBean data) { checkState(data.getNewsList()); mView.refreshView(data); } }); } public void getDescrible(final String docid) { String url = getDetailUrl(docid); OkHttpUtils.ResultCallback<String> loadNewsCallback = new OkHttpUtils.ResultCallback<String>() { @Override public void onSuccess(String response) { if (response==null){ if (mView instanceof Stateful) ((Stateful) mView).setState(AppConstants.STATE_EMPTY); } NewsDetailBean newsDetailBean = NewsJsonUtils.readJsonNewsDetailBeans(response, docid); ((TopNewsPresenter.ViewActivity) mView).refreshActivityView(newsDetailBean); } @Override public void onFailure(Exception e) { } }; OkHttpUtils.get(url, loadNewsCallback); } private String getDetailUrl(String docId) { StringBuffer sb = new StringBuffer("http://c.m.163.com/nc/article/"); sb.append(docId).append("/full.html"); return sb.toString(); } }