package com.bczm.widgetcollections.http.protocol;
import com.android.volley.AuthFailureError;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.StringRequest;
import com.bczm.widgetcollections.bean.RecommendAppInfo;
import com.bczm.widgetcollections.http.ConfigManage;
import com.bczm.widgetcollections.http.HttpUtil;
import com.bczm.widgetcollections.http.NetUtils;
import com.bczm.widgetcollections.http.parse.JsonHelper;
import com.bczm.widgetcollections.utils.FileUtils;
import com.bczm.widgetcollections.utils.LogUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 获取推荐应用协议
* @author:Jorge on 2015/9/16 16:52
*/
public class RecommendedAppProtocol extends BaseProtocol <List<RecommendAppInfo>> {
boolean waitflag=true;
String result ="";
private ArrayList<RecommendAppInfo> list;
@Override
protected String loadFromNet(int index) {
StringRequest stringRequest=new StringRequest(NetUtils.FETCH_RECOMMENDED_APP,new Response.SuccessListener<String>() {
@Override
public void onResponse(String s) {
// LogUtils.log2File(s, FileUtils.getDownloadDir() + "FETCH_RECOMMEND_CHANNELS.txt");
LogUtils.e("RecommendedAppProtocol:"+s);
result =s;
waitflag=false;
}
},new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
result =null;
waitflag=false;
}
}){
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return ConfigManage.getHeaders();
}
};
HttpUtil.getRequestQueue().add(stringRequest);
while(waitflag){
}
return result;
}
@Override
protected String getKey() {
return "recommendedappprotocol";
}
@Override
protected List<RecommendAppInfo> parseFromJson(String json) {
try {
JSONObject jsonObject=new JSONObject(json);
if(!jsonObject.has("items"))
return null;
list = new ArrayList<>();
JSONArray arrays= jsonObject.optJSONArray("items");
JsonHelper.JSONArrayToList(arrays, list,RecommendAppInfo.class);
} catch (JSONException e) {
e.printStackTrace();
return null ;
}
return list;
}
}