1 package net.kazhik.android.tokyorunners;
\r
3 import android.content.ContentProvider;
\r
4 import android.content.ContentValues;
\r
5 import android.content.Context;
\r
6 import android.content.UriMatcher;
\r
7 import android.database.Cursor;
\r
8 import android.database.sqlite.SQLiteDatabase;
\r
9 import android.database.sqlite.SQLiteOpenHelper;
\r
10 import android.database.sqlite.SQLiteQueryBuilder;
\r
11 import android.net.Uri;
\r
12 import android.provider.BaseColumns;
\r
14 public class RunningRecordProvider extends ContentProvider {
\r
16 private static class DatabaseHelper extends SQLiteOpenHelper {
\r
17 DatabaseHelper(Context context) {
\r
18 super(context, "tokyorunners.db", null, 1);
\r
22 public void onCreate(SQLiteDatabase db) {
\r
23 db.execSQL("CREATE TABLE running_record ("
\r
24 + BaseColumns._ID + " INTEGER PRIMARY KEY,"
\r
25 + "start_datetime INTEGER,"
\r
26 + "current_datetime INTEGER,"
\r
27 + "point_name TEXT,"
\r
28 + "distance INTEGER,"
\r
29 + "latitude INTEGER,"
\r
30 + "longitude INTEGER);");
\r
34 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
\r
35 // TODO Auto-generated method stub
\r
36 db.execSQL("DROP TABLE IF EXISTS running_record");
\r
42 private static final String AUTHORITY = "net.kazhik.android.tokyorunners.runningrecordprovider";
\r
43 private static final int RUNNING_RECORDS = 1;
\r
44 private DatabaseHelper m_databaseHelper;
\r
45 private UriMatcher m_uriMatcher;
\r
48 public boolean onCreate() {
\r
49 m_databaseHelper = new DatabaseHelper(getContext());
\r
50 m_uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
\r
51 m_uriMatcher.addURI(AUTHORITY, "runningrecords", RUNNING_RECORDS);
\r
56 public Cursor query(Uri uri, String[] projection, String selection,
\r
57 String[] selectionArgs, String sortOrder) {
\r
58 SQLiteDatabase db = m_databaseHelper.getReadableDatabase();
\r
59 SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
\r
60 qb.setTables("running_record");
\r
61 Cursor c = qb.query(db, projection, selection, selectionArgs, null,
\r
67 public Uri insert(Uri uri, ContentValues values) {
\r
68 if (m_uriMatcher.match(uri) != RUNNING_RECORDS) {
\r
69 throw new IllegalArgumentException("Unknown URI " + uri);
\r
71 SQLiteDatabase db = m_databaseHelper.getWritableDatabase();
\r
72 db.insert("running_record", null, values);
\r
77 public int update(Uri uri, ContentValues values, String selection,
\r
78 String[] selectionArgs) {
\r
79 SQLiteDatabase db = m_databaseHelper.getWritableDatabase();
\r
81 switch (m_uriMatcher.match(uri)) {
\r
82 case RUNNING_RECORDS:
\r
83 updateCount = db.update("running_record", values, selection, selectionArgs);
\r
86 throw new IllegalArgumentException("Unknown URI " + uri);
\r
92 public int delete(Uri uri, String selection, String[] selectionArgs) {
\r
93 SQLiteDatabase db = m_databaseHelper.getWritableDatabase();
\r
95 switch (m_uriMatcher.match(uri)) {
\r
96 case RUNNING_RECORDS:
\r
97 deleteCount = db.delete("running_record", selection, selectionArgs);
\r
100 throw new IllegalArgumentException("Unknown URI " + uri);
\r
103 return deleteCount;
\r
107 public String getType(Uri uri) {
\r