package org.ohmage.mobility.glue;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.widget.Toast;
public class MobilityInterface
{
public static final String KEY_MODE = "mode";
public static final String KEY_ID = "id";
public static final String KEY_SPEED = "speed";
public static final String KEY_STATUS = "status";
public static final String KEY_LOC_TIMESTAMP = "location_timestamp";
public static final String KEY_ACCURACY = "accuracy";
public static final String KEY_PROVIDER = "provider";
public static final String KEY_WIFIDATA = "wifi_data";
public static final String KEY_ACCELDATA = "accel_data";
public static final String KEY_TIMEZONE = "timezone";
public static final String KEY_ROWID = "_id";
public static final String KEY_TIME = "time";
public static final String KEY_LATITUDE = "latitude";
public static final String KEY_LONGITUDE = "longitude";
public static final String KEY_DURATION = "duration";
public static final String KEY_DAY = "day";
public static final String KEY_USERNAME = "username";
public static final String WALK = "walk";
public static final String RUN = "run";
public static final String STILL = "still";
public static final String DRIVE = "drive";
public static final String BIKE = "bike";
public static final String ERROR = "error";
public static final String UNKNOWN = "unknown";
private static String [] columns = {KEY_ROWID, KEY_ID, KEY_MODE, KEY_SPEED, KEY_STATUS, KEY_LOC_TIMESTAMP, KEY_ACCURACY, KEY_PROVIDER, KEY_WIFIDATA, KEY_ACCELDATA, KEY_TIME, KEY_TIMEZONE, KEY_LATITUDE, KEY_LONGITUDE};
// Content provider strings
public static final String AUTHORITY = "org.ohmage.mobility.MobilityContentProvider";
public static final String PATH_MOBILITY = "mobility";
public static final Uri CONTENT_URI = Uri.parse("content://"+AUTHORITY + "/" + PATH_MOBILITY);
public static final String PATH_AGGREGATES = PATH_MOBILITY + "/" + "aggregates";
public static final Uri AGGREGATES_URI = Uri.parse("content://"+AUTHORITY + "/" + PATH_AGGREGATES);
public static final String PATH_AGGREGATES_ADD = PATH_AGGREGATES + "/" + "add";
public static final Uri AGGREGATES_ADD_URI = Uri.parse("content://"+AUTHORITY + "/" + PATH_AGGREGATES_ADD);
/**
* Helper function to get cursor to data with only the last retrieved timestamp.
* @param timestamp
* @return cursor to the data after the timestamp
*/
public static Cursor getMobilityCursor(Context context, Long timestamp) {
ContentResolver r = context.getContentResolver();
return r.query(CONTENT_URI, columns, KEY_TIME + " > ?", new String[] {String.valueOf(timestamp)}, KEY_TIME);
}
public static void showMobilityOptions(Context context) {
// context.startActivity(new Intent(context, MobilityControl.class));
try
{
final Intent intentDeviceTest = new Intent("android.intent.action.MAIN");
intentDeviceTest.setComponent(new ComponentName("org.ohmage.mobility","org.ohmage.mobility.MobilityControl"));
context.startActivity(intentDeviceTest);
}
catch(Exception e)
{
Toast.makeText(context, "There was an error. Please verify that Mobility has been installed.", Toast.LENGTH_SHORT).show();
}
}
}