package com.example.qyh.joe.model;
import com.example.qyh.joe.fragment.FirstFragment;
import com.example.qyh.joe.bean.DataBean;
import com.example.qyh.joe.commons.Urls;
import com.example.qyh.joe.utils.NewsJsonUtils;
import com.example.qyh.joe.utils.OkHttpUtils;
import com.example.qyh.joe.bean.DataDetilBean;
import java.util.List;
/**
* Created by qyh on 2016/8/8.
*/
public class FirstModeImpl implements FirstModel {
//加载首页数据条目相关
@Override
public void loadData(final String url, final int type, final OnLoadFirstDataListener listener) {
OkHttpUtils.ResultCallback<String> loadNewsCallback=new OkHttpUtils.ResultCallback<String>() {
@Override
public void onSuccess(String response) {
List<DataBean> dataBeans = NewsJsonUtils.readJsonDataBeans(response, getID(type));
listener.onSuccess(dataBeans);
}
@Override
public void onFailure(Exception e) {
listener.onFailure("load news list failure.",e);
}
};
OkHttpUtils.get(url, loadNewsCallback);
}
//加载新闻详情数据
@Override
public void loadDetilData(final String dcoid, final OnloadFirstDataDetilListener listener) {
String detailUrl = getDetailUrl(dcoid);
OkHttpUtils.ResultCallback<String> loadNewsCallback = new OkHttpUtils.ResultCallback<String>() {
@Override
public void onSuccess(String response) {
DataDetilBean newsDetailBean = NewsJsonUtils.readJsonNewsDetailBeans(response, dcoid);
listener.onSuccess(newsDetailBean);
}
@Override
public void onFailure(Exception e) {
listener.onFailure("load news detail info failure.", e);
}
};
OkHttpUtils.get(detailUrl, loadNewsCallback);
}
public interface OnLoadFirstDataListener{
void onSuccess(List<DataBean> list);
void onFailure(String str,Exception e);
}
public interface OnloadFirstDataDetilListener{
void onSuccess(DataDetilBean list);
void onFailure(String str,Exception e);
}
/**
* 获取ID
* @param type
* @return
*/
private String getID(int type) {
String id;
switch (type) {
case FirstFragment.ONE:
id = Urls.TOP_ID;
break;
case FirstFragment.TWO:
id = Urls.NBA_ID;
break;
case FirstFragment.THREE:
id = Urls.CAR_ID;
break;
case FirstFragment.FOUR:
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();
}
}