package edu.mit.mitmobile2.maps; import java.util.ArrayList; import java.util.HashMap; import org.json.JSONException; import org.json.JSONObject; import android.content.Context; import android.database.Cursor; import android.os.Handler; import android.os.Message; import android.widget.Toast; import edu.mit.mitmobile2.MobileWebApi; import edu.mit.mitmobile2.objs.MapItem; public class MapModel { public static String MODULE_MAP = "map"; public static final String TAG = "MapModel"; public static final String MAP_EXPORT_PATH = "http://ims-pub.mit.edu/ArcGIS/rest/services/base/WhereIs_Base/MapServer/export"; public static final int FETCH_SUCCESSFUL = 1; public static final int FETCH_FAILED = 2; private Context mContext; private MapsDB mMapsDB; public MapModel(Context context) { mMapsDB = MapsDB.getInstance(context); mContext = context; //mSharedPreferences = mContext.getSharedPreferences(NEWS_PREFERENCES_FILE, Context.MODE_PRIVATE); } public static void fetchMapServerData(final Context context, final Handler uiHandler) { HashMap<String, String> parameters = new HashMap<String, String>(); parameters.put("command", "bootstrap"); parameters.put("module", MODULE_MAP); MobileWebApi webApi = new MobileWebApi(false, true, "Map", context, uiHandler); webApi.requestJSONObject(parameters, new MobileWebApi.JSONObjectResponseListener( new MobileWebApi.DefaultErrorListener(uiHandler), new MobileWebApi.DefaultCancelRequestListener( uiHandler)) { @Override public void onResponse(JSONObject jobject) throws JSONException { //Log.d(TAG,jobject.toString()); MapServerData mapServerData = MapParser.parseMapServerData(jobject); MobileWebApi.sendSuccessMessage(uiHandler, mapServerData); } }); } public Cursor getMapsCursor() { return mMapsDB.getMapsCursor(); } public void getBookmarks(final Handler uiHandler) { new Thread() { @Override public void run() { ArrayList<MapItem> mapItems = mMapsDB.getMapItems(); Message msg = new Message(); msg.obj = mapItems; uiHandler.sendMessage(msg); } }.start(); } public void clearAllBookmarks(final Handler uiHandler) { new Thread() { @Override public void run() { mMapsDB.clearAllBookmarks(); uiHandler.sendEmptyMessage(0); } }.start(); Toast.makeText(mContext, "clearing bookmarks", Toast.LENGTH_LONG).show(); } }