public class BookProvider extends ContentProvider {
private static final String TAG = "BookProvider"; public static final String AUTHORITY = "com.wshunli.ipc.demo.book.provider";
public static final Uri BOOK_CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/book"); public static final Uri USER_CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/user");
public static final int BOOK_URI_CODE = 0; public static final int USER_URI_CODE = 1; private static final UriMatcher sUriMatcher = new UriMatcher( UriMatcher.NO_MATCH);
static { sUriMatcher.addURI(AUTHORITY, "book", BOOK_URI_CODE); sUriMatcher.addURI(AUTHORITY, "user", USER_URI_CODE); }
private Context context; private SQLiteDatabase db;
public BookProvider() { }
@Override public boolean onCreate() { context = getContext(); initProviderData(); return true; }
private void initProviderData() { db = new DBHelper(context).getWritableDatabase(); db.execSQL("delete from " + DBHelper.BOOK_TABLE_NAME); db.execSQL("delete from " + DBHelper.USER_TALBE_NAME); db.execSQL("insert into book values(3,'Android');"); db.execSQL("insert into book values(4,'Ios');"); db.execSQL("insert into book values(5,'Html5');"); db.execSQL("insert into user values(1,'jake',1);"); db.execSQL("insert into user values(2,'jasmine',0);"); }
@Override public String getType(Uri uri) { Log.d(TAG, "getType: "); return null; }
@Override public Uri insert(Uri uri, ContentValues values) { String table = getTableName(uri); if (table == null) { throw new IllegalArgumentException("Unsupported URI: " + uri); } db.insert(table, null, values); context.getContentResolver().notifyChange(uri, null); return uri; }
@Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { String table = getTableName(uri); if (table == null) { throw new IllegalArgumentException("Unsupported URI: " + uri); } return db.query(table, projection, selection, selectionArgs, null, null, sortOrder, null); }
@Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { String table = getTableName(uri); if (table == null) { throw new IllegalArgumentException("Unsupported URI: " + uri); } int row = db.update(table, values, selection, selectionArgs); if (row > 0) { context.getContentResolver().notifyChange(uri, null); } return row; }
@Override public int delete(Uri uri, String selection, String[] selectionArgs) { String table = getTableName(uri); if (table == null) { throw new IllegalArgumentException("Unsupported URI: " + uri); } int count = db.delete(table, selection, selectionArgs); if (count > 0) { context.getContentResolver().notifyChange(uri, null); } return count; }
private String getTableName(Uri uri) { String tableName = null; switch (sUriMatcher.match(uri)) { case BOOK_URI_CODE: tableName = DBHelper.BOOK_TABLE_NAME; break; case USER_URI_CODE: tableName = DBHelper.USER_TALBE_NAME; break; default: break; }
return tableName; } }
|