@Override public Uri insert(Uri uri, ContentValues values) { if (values.size() == 0) return null; switch (_uriMatcher.match(uri)) { case SUBSCRIPTIONS: break; default: throw new IllegalArgumentException("Unknown URI"); } if (Helper.isGPodderInstalled(getContext())) { ContentValues gpodderValues = new ContentValues(); gpodderValues.put("url", values.getAsString(COLUMN_URL)); getContext().getContentResolver().insert(Constants.GPODDER_URI, gpodderValues); } SQLiteDatabase db = _dbAdapter.getWritableDatabase(); long id = db.insert("subscriptions", null, values); getContext().getContentResolver().notifyChange(URI, null); return ContentUris.withAppendedId(URI, id); }
@Override public int delete(Uri uri, String where, String[] whereArgs) { switch (_uriMatcher.match(uri)) { case SUBSCRIPTIONS: break; case SUBSCRIPTION_ID: String extraWhere = COLUMN_ID + " = " + uri.getLastPathSegment(); if (where != null) where = extraWhere + " AND " + where; else where = extraWhere; getContext() .getContentResolver() .delete( PodcastProvider.URI, "subscriptionId = ?", new String[] {uri.getLastPathSegment()}); break; default: throw new IllegalArgumentException("Unknown URI"); } SQLiteDatabase db = _dbAdapter.getWritableDatabase(); if (Helper.isGPodderInstalled(getContext())) { // delete from gpodder Cursor c = db.query("subscriptions", new String[] {"url"}, where, whereArgs, null, null, null); while (c.moveToNext()) getContext() .getContentResolver() .delete(Constants.GPODDER_URI, "url = ?", new String[] {c.getString(0)}); c.close(); } int count = db.delete("subscriptions", where, whereArgs); getContext().getContentResolver().notifyChange(URI, null); db.close(); return count; }