package dk.dr.radio.data; import com.android.volley.Request; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; import dk.dr.radio.diverse.App; import dk.dr.radio.net.volley.DrVolleyResonseListener; import dk.dr.radio.net.volley.DrVolleyStringRequest; /** * Created by j on 05-10-14. */ public class ProgramserierAtilAA { public ArrayList<Programserie> liste; public List<Runnable> observatører = new ArrayList<Runnable>(); /** * Parser JSON-svar og opdaterer data derefter. Bør ikke kaldes udefra, udover i afprøvningsøjemed * @param json * @throws JSONException */ void parseSvar(String json) throws JSONException { JSONArray jsonArray = new JSONArray(json); ArrayList<Programserie> res = new ArrayList<Programserie>(); for (int n = 0; n < jsonArray.length(); n++) { JSONObject programserieJson = jsonArray.getJSONObject(n); String programserieSlug = programserieJson.getString(DRJson.Slug.name()); //Log.d("\n=========================================== programserieSlug = " + programserieSlug); Programserie programserie = DRData.instans.programserieFraSlug.get(programserieSlug); if (programserie == null) { // Hvis der allerede er et programserie-element fra anden side indeholder den mere information end denne her programserie = new Programserie(); DRJson.parsProgramserie(programserieJson, programserie); DRData.instans.programserieFraSlug.put(programserieSlug, programserie); } res.add(programserie); } //Log.d("programserierAtilÅ res=" + res); //Log.d("programserierAtilÅ jsonArray.length()=" + jsonArray.length()); //Log.d("programserierAtilÅ res.size()=" + res.size()); liste = res; } public void startHentData() { Request<?> req = new DrVolleyStringRequest(DRData.getAtilÅUrl(), new DrVolleyResonseListener() { @Override public void fikSvar(String json, boolean fraCache, boolean uændret) throws Exception { //Log.d("programserierAtilÅ fikSvar " + fraCache+uændret+json); if (uændret) return; parseSvar(json); for (Runnable r : observatører) r.run(); // Informér observatører } }) { public Priority getPriority() { return Priority.LOW; } }; App.volleyRequestQueue.add(req); } }