OSDN Git Service

2009/09/28
[tokyorunners/tokyorunners.git] / src / net / kazhik / android / tokyorunners / RunningRecordProvider.java
1 package net.kazhik.android.tokyorunners;\r
2 \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
13 \r
14 public class RunningRecordProvider extends ContentProvider {\r
15 \r
16     private static class DatabaseHelper extends SQLiteOpenHelper {\r
17         DatabaseHelper(Context context) {\r
18             super(context, "tokyorunners.db", null, 1);\r
19         }\r
20 \r
21         @Override\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
31         }\r
32 \r
33         @Override\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
37             onCreate(db);\r
38 \r
39         }\r
40     }\r
41     \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
46 \r
47         @Override\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
52         return true;\r
53         }\r
54 \r
55         @Override\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
62                 null, null);\r
63         return c;\r
64         }\r
65 \r
66         @Override\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
70                 }\r
71         SQLiteDatabase db = m_databaseHelper.getWritableDatabase();\r
72         db.insert("running_record", null, values);\r
73                 return null;\r
74         }\r
75 \r
76         @Override\r
77         public int update(Uri uri, ContentValues values, String selection,\r
78                         String[] selectionArgs) {\r
79                 SQLiteDatabase db = m_databaseHelper.getWritableDatabase();\r
80                 int updateCount;\r
81                 switch (m_uriMatcher.match(uri)) {\r
82                 case RUNNING_RECORDS:\r
83                         updateCount = db.update("running_record", values, selection, selectionArgs);\r
84                         break;\r
85                 default:\r
86                         throw new IllegalArgumentException("Unknown URI " + uri);\r
87                 }\r
88 \r
89                 return updateCount;\r
90         }\r
91         @Override\r
92         public int delete(Uri uri, String selection, String[] selectionArgs) {\r
93                 SQLiteDatabase db = m_databaseHelper.getWritableDatabase();\r
94                 int deleteCount;\r
95                 switch (m_uriMatcher.match(uri)) {\r
96                 case RUNNING_RECORDS:\r
97                         deleteCount = db.delete("running_record", selection, selectionArgs);\r
98                         break;\r
99                 default:\r
100                         throw new IllegalArgumentException("Unknown URI " + uri);\r
101                 }\r
102 \r
103                 return deleteCount;\r
104         }\r
105 \r
106         @Override\r
107         public String getType(Uri uri) {\r
108                 return null;\r
109         }\r
110 \r
111 \r
112 }\r