package edu.mit.mitmobile2.links; import java.util.ArrayList; import java.util.HashMap; import org.json.JSONArray; import org.json.JSONException; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Handler; import edu.mit.mitmobile2.MobileWebApi; public class LinksModel { private final static String LINKS_PREFS_NAME = "linksPreferences"; public static void fetchLinks(final Context context, final Handler uiHandler) { HashMap<String, String> parameters = new HashMap<String, String>(); parameters.put("module", "links"); MobileWebApi webApi = new MobileWebApi(false, false, "Links", context, uiHandler); webApi.setIsSearchQuery(false); webApi.requestJSONArray(parameters, new MobileWebApi.JSONArrayResponseListener( new MobileWebApi.DefaultErrorListener(uiHandler), new MobileWebApi.DefaultCancelRequestListener(uiHandler) ) { @Override public void onResponse(JSONArray array) throws JSONException { SharedPreferences preferences = context.getSharedPreferences(LINKS_PREFS_NAME, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString("json", array.toString()); editor.commit(); ArrayList<LinkListItem> linkLists = new ArrayList<LinkListItem>(); for (int i = 0; i < array.length(); i++) { linkLists.add(new LinkListItem(array.getJSONObject(i))); } MobileWebApi.sendSuccessMessage(uiHandler, linkLists); } }); } public static ArrayList<LinkListItem> getCachedLinks(Context context) { SharedPreferences preferences = context.getSharedPreferences(LINKS_PREFS_NAME, Context.MODE_PRIVATE); String json = preferences.getString("json", ""); if (json.length() > 0) { JSONArray array; try { array = new JSONArray(json); ArrayList<LinkListItem> linkLists = new ArrayList<LinkListItem>(); for (int i = 0; i < array.length(); i++) { linkLists.add(new LinkListItem(array.getJSONObject(i))); } return linkLists; } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } else { return null; } } }