Back to project page SimpleReader.
The source code is released under:
Apache License
If you think the Android project SimpleReader listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.dreamteam.app.db.provider; //w ww . j a v a 2 s . co m import com.dreamteam.app.db.DbManager; import android.content.ContentProvider; import android.content.ContentUris; import android.content.ContentValues; import android.content.UriMatcher; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteQueryBuilder; import android.net.Uri; import android.text.TextUtils; public class RSSFeedCategoryProvider extends ContentProvider { public static final Uri CONTENT_URI = Uri.parse( "content://com.dreateam.app.ui.provider.category/categories"); public static final String KEY_ID = "id"; public static final String KEY_TITLE = "title"; public static final String KEY_TABLE = "tname"; public static final String KEY_DESCRIPTION = "description"; public static final String KEY_IMAGEURL = "imag_url"; public static final int ALLROWS = 1; public static final int SINGLE_ROW = 2; private static final UriMatcher uriMatcher; private DbManager sqliteHelper; static { uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); uriMatcher.addURI("com.dreateam.app.ui.provider.category", "categories", ALLROWS); uriMatcher.addURI("com.dreateam.app.ui.provider.category", "categories/#", SINGLE_ROW); } @Override public boolean onCreate() { sqliteHelper = new DbManager(getContext(), DbManager.DB_NAME, null, DbManager.DB_VERSION); return true; } @Override public String getType(Uri uri) { switch (uriMatcher.match(uri)) { case ALLROWS: return "vnd.android.cursor.dir/categories"; case SINGLE_ROW: return "vnd.android.cursor.item/categories"; default: throw new IllegalArgumentException("unsupport privider url"); } } @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { SQLiteDatabase db = sqliteHelper.getReadableDatabase(); String groupBy = null; String having = null; SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder(); queryBuilder.setTables(DbManager.RSS_CATEGORY_TABLE_NAME); switch(uriMatcher.match(uri)) { case SINGLE_ROW : //String rowId = uri.getPathSegments().get(1); long rowId = ContentUris.parseId(uri); queryBuilder.appendWhere(KEY_ID + "=" + rowId); break; default : break; } Cursor cursor = queryBuilder.query(db, projection, selection, selectionArgs, groupBy, having, sortOrder); return cursor; } @Override public Uri insert(Uri uri, ContentValues values) { SQLiteDatabase db = sqliteHelper.getWritableDatabase(); String nullColumnHack = null; long id = db.insert(DbManager.RSS_CATEGORY_TABLE_NAME, nullColumnHack, values); if(id > -1) { Uri insertedUri = ContentUris.withAppendedId(CONTENT_URI, id); getContext().getContentResolver().notifyChange(insertedUri, null); return insertedUri; } return null; } @Override public int delete(Uri uri, String selection, String[] selectionArgs) { SQLiteDatabase db = sqliteHelper.getWritableDatabase(); switch(uriMatcher.match(uri)) { case SINGLE_ROW : // String rowId = uri.getPathSegments().get(1); long rowId = ContentUris.parseId(uri); selection = KEY_ID + "=" + rowId + (TextUtils.isEmpty(selection) ? "" : " and (" + selection + ")"); default : break; } if(selection == null) { selection = "1"; } int deleteCount = db.delete(DbManager.RSS_CATEGORY_TABLE_NAME, selection, selectionArgs); getContext().getContentResolver().notifyChange(uri, null); return deleteCount; } @Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { SQLiteDatabase db = sqliteHelper.getWritableDatabase(); switch(uriMatcher.match(uri)) { case SINGLE_ROW : String rowId = uri.getPathSegments().get(1); selection = KEY_ID + "=" + rowId + (TextUtils.isEmpty(selection) ? "" : " and (" + selection + ")"); default : break; } int updateCount = db.update(DbManager.RSS_CATEGORY_TABLE_NAME, values, selection, selectionArgs); getContext().getContentResolver().notifyChange(uri, null); return updateCount; } }