import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; public class GPSDataSource { // Database fields private SQLiteDatabase database; private DataBaseHelper dbHelper; private String[] allColumns = { DataBaseHelper.COLUMN_ID, DataBaseHelper.COLUMN_LAT, DataBaseHelper.COLUMN_LON, DataBaseHelper.COLUMN_TIME, DataBaseHelper.COLUMN_FREQUENCY, DataBaseHelper.COLUMN_BATTERY_LEVEL}; public GPSDataSource(Context context) { dbHelper = new DataBaseHelper(context); } public void open() throws SQLException { database = dbHelper.getWritableDatabase(); } public void close() { dbHelper.close(); } public GPS createGPSEntry(double lat, double lon, String timestamp, int frequency, int battery) { ContentValues values = new ContentValues(); values.put(DataBaseHelper.COLUMN_LAT, lat); values.put(DataBaseHelper.COLUMN_LON, lon); values.put(DataBaseHelper.COLUMN_TIME, timestamp); values.put(DataBaseHelper.COLUMN_LON, lon); values.put(DataBaseHelper.COLUMN_FREQUENCY, frequency); values.put(DataBaseHelper.COLUMN_BATTERY_LEVEL, battery); long insertId = database.insert(DataBaseHelper.TABLE_GPS, null, values); Cursor cursor = database.query(DataBaseHelper.TABLE_GPS, allColumns, DataBaseHelper.COLUMN_ID + " = " + insertId, null, null, null, null); cursor.moveToFirst(); GPS newGPS = cursorToGPS(cursor); cursor.close(); return newGPS; } public void deleteGPS(GPS gps) { long id = gps.getId(); database.delete(DataBaseHelper.TABLE_GPS, DataBaseHelper.COLUMN_ID + " = " + id, null); } public List getAllGPS() { List gpses = new ArrayList(); Cursor cursor = database.query(DataBaseHelper.TABLE_GPS, allColumns, null, null, null, null, null); if(cursor.moveToFirst()){ while (!cursor.isAfterLast()) { GPS gps = cursorToGPS(cursor); gpses.add(gps); cursor.moveToNext(); } } // Make sure to close the cursor cursor.close(); return gpses; } private GPS cursorToGPS(Cursor cursor) { GPS gps = null; if (cursor != null) { gps = new GPS(); gps.setId(cursor.getLong(0)); gps.setLat(cursor.getDouble(cursor.getColumnIndex(DataBaseHelper.COLUMN_LAT))); gps.setLon(cursor.getDouble(cursor.getColumnIndex(DataBaseHelper.COLUMN_LON))); gps.setTimestamp(cursor.getString(cursor.getColumnIndex(DataBaseHelper.COLUMN_TIME))); gps.setFrequency(cursor.getInt(cursor.getColumnIndex(DataBaseHelper.COLUMN_FREQUENCY))); gps.setBattery(cursor.getInt(cursor.getColumnIndex(DataBaseHelper.COLUMN_BATTERY_LEVEL))); } return gps; } }