package com.tekinarslan.material.sample.container.news.model; import com.tekinarslan.material.sample.base.Urls; import com.tekinarslan.material.sample.bean.NewsBean; import com.tekinarslan.material.sample.bean.NewsDetailBean; import com.tekinarslan.material.sample.container.news.widget.NewsFragment; import com.tekinarslan.material.sample.uitls.MyOkHttpUtils; import java.util.List; /** * Description : 新闻业务处理类 * Author : lauren * Email : lauren.liuling@gmail.com * Blog : http://www.liuling123.com * Date : 15/12/19 */ public class NewsModelImpl implements com.tekinarslan.material.sample.container.news.model.NewsModel { /** * 加载新闻列表 * @param url * @param listener */ @Override public void loadNews(String url, final int type, final OnLoadNewsListListener listener) { MyOkHttpUtils.ResultCallback<String> loadNewsCallback = new MyOkHttpUtils.ResultCallback<String>() { @Override public void onSuccess(String response) { List<NewsBean> newsBeanList = com.tekinarslan.material.sample.container.news.NewsJsonUtils.readJsonNewsBeans(response, getID(type)); listener.onSuccess(newsBeanList); } @Override public void onFailure(Exception e) { listener.onFailure("load news list failure.", e); } }; MyOkHttpUtils.get(url, loadNewsCallback); } /** * 加载新闻详情 * @param docid * @param listener */ @Override public void loadNewsDetail(final String docid, final OnLoadNewsDetailListener listener) { String url = getDetailUrl(docid); MyOkHttpUtils.ResultCallback<String> loadNewsCallback = new MyOkHttpUtils.ResultCallback<String>() { @Override public void onSuccess(String response) { NewsDetailBean newsDetailBean = com.tekinarslan.material.sample.container.news.NewsJsonUtils.readJsonNewsDetailBeans(response, docid); listener.onSuccess(newsDetailBean); } @Override public void onFailure(Exception e) { listener.onFailure("load news detail info failure.", e); } }; MyOkHttpUtils.get(url, loadNewsCallback); } /** * 获取ID * @param type * @return */ private String getID(int type) { String id; switch (type) { case NewsFragment.NEWS_TYPE_TOP: id = Urls.TOP_ID; break; case NewsFragment.NEWS_TYPE_NBA: id = Urls.NBA_ID; break; case NewsFragment.NEWS_TYPE_CARS: id = Urls.CAR_ID; break; case NewsFragment.NEWS_TYPE_JOKES: id = Urls.JOKE_ID; break; default: id = Urls.TOP_ID; break; } return id; } private String getDetailUrl(String docId) { StringBuffer sb = new StringBuffer(Urls.NEW_DETAIL); sb.append(docId).append(Urls.END_DETAIL_URL); return sb.toString(); } public interface OnLoadNewsListListener { void onSuccess(List<NewsBean> list); void onFailure(String msg, Exception e); } public interface OnLoadNewsDetailListener { void onSuccess(NewsDetailBean newsDetailBean); void onFailure(String msg, Exception e); } }