public void setAll(String json) { albums = new HashMap<String, JSONObject>(); images = new HashMap<String, Map<String, JSONObject>>(); try { JSONArray jAlbums = new JSONArray(json); String albumId; JSONObject jo; for (int i = 0; i < jAlbums.length(); i++) { jo = jAlbums.getJSONObject(i); if (!jo.has("id")) { error.fire(new ErrorEvent("Error, object does not contain albums")); } albumId = jo.getString("id"); images.put(albumId, new HashMap<String, JSONObject>()); if (jo.getInt("size") > 0) { storeImagesToAlbum(albumId, jo.getJSONArray("images")); jo.remove("images"); } albums.put(albumId, jo); } loaded = true; emptyCache = jAlbums.length() == 0; } catch (JSONException e) { error.fire(new ErrorEvent("Error: ", e.getMessage())); } }
public void storeImagesToAlbum(String albumId, JSONArray ja) { String imageId = ""; JSONObject jo; Map<String, JSONObject> album = images.get(albumId); try { for (int i = 0; i < ja.length(); i++) { jo = ja.getJSONObject(i); if (!jo.has("id")) { error.fire(new ErrorEvent("Error, object does not contain images")); } imageId = jo.getString("id"); album.put(imageId, jo); } } catch (JSONException je) { error.fire(new ErrorEvent("Error", je.getMessage())); } }