@Override public int bulkInsert(Uri uri, ContentValues[] values) { final SQLiteDatabase db = mDbHelper.getWritableDatabase(); final int match = sUriMatcher.match(uri); switch (match) { case VERTRETUNGEN: db.beginTransaction(); int returnCount = 0; try { for (ContentValues value : values) { long _id = db.insert(Vertretungen.TABLE_NAME, null, value); if (_id != -1) { returnCount++; } } db.setTransactionSuccessful(); } finally { db.endTransaction(); } getContext().getContentResolver().notifyChange(uri, null); return returnCount; default: return super.bulkInsert(uri, values); } }
@Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { final SQLiteDatabase db = mDbHelper.getWritableDatabase(); final int match = sUriMatcher.match(uri); int rowsUpdated; switch (match) { case VERTRETUNGEN: rowsUpdated = db.update(Vertretungen.TABLE_NAME, values, selection, selectionArgs); break; case DAYS: rowsUpdated = db.update(Days.TABLE_NAME, values, selection, selectionArgs); break; case ABSENT_CLASSES: rowsUpdated = db.update(AbsentClasses.TABLE_NAME, values, selection, selectionArgs); break; case GENERAL_INFO: rowsUpdated = db.update(GeneralInfo.TABLE_NAME, values, selection, selectionArgs); break; case PERSONAL_DATA: rowsUpdated = db.update(PersonalData.TABLE_NAME, values, selection, selectionArgs); break; default: throw new UnsupportedOperationException("Unknown uri: " + uri); } if (rowsUpdated != 0) { getContext().getContentResolver().notifyChange(uri, null); } return rowsUpdated; }
private Cursor getVertretungenByDate(Uri uri, String[] projection, String sortOrder) { String date = Vertretungen.getDateFromUri(uri); String[] selectionArgs = {date}; String selection = sVertretungenDateSelection; return sVertretungenByDateQueryBuilder.query( mDbHelper.getReadableDatabase(), projection, selection, selectionArgs, null, null, sortOrder); }
@Override public Uri insert(Uri uri, ContentValues values) { final SQLiteDatabase db = mDbHelper.getReadableDatabase(); final int match = sUriMatcher.match(uri); Uri returnUri; switch (match) { case VERTRETUNGEN: { long _id = db.insert(Vertretungen.TABLE_NAME, null, values); if (_id > 0) { returnUri = VertretungsplanContract.Vertretungen.buildVertretungenUri(_id); } else { throw new SQLException("Failed to insert row into " + uri); } break; } case DAYS: { long _id = db.insert(Days.TABLE_NAME, null, values); if (_id > 0) { returnUri = Days.buildDaysUri(_id); } else { throw new SQLException("Failed to insert row into " + uri); } break; } case ABSENT_CLASSES: { long _id = db.insert(VertretungsplanContract.AbsentClasses.TABLE_NAME, null, values); if (_id > 0) { returnUri = VertretungsplanContract.AbsentClasses.buildAbsentClassesUri(_id); } else { throw new SQLException("Failed to insert row into " + uri); } break; } case GENERAL_INFO: { long _id = db.insert(VertretungsplanContract.GeneralInfo.TABLE_NAME, null, values); if (_id > 0) { returnUri = VertretungsplanContract.GeneralInfo.buildGeneralInfoUri(_id); } else { throw new SQLException("Failed to insert row into " + uri); } break; } case PERSONAL_DATA: { long _id = db.insert(PersonalData.TABLE_NAME, null, values); if (_id > 0) { returnUri = PersonalData.buildPersonalDataUri(_id); } else { throw new SQLException("Failed to insert row into " + uri); } break; } default: throw new UnsupportedOperationException("Unknown uri: " + uri); } getContext().getContentResolver().notifyChange(uri, null); return returnUri; }
@Override public Cursor query( Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { // switch on the given uri and determine what request it is. After that the database can be // queried accordingly Cursor returnCursor; switch (sUriMatcher.match(uri)) { case VERTRETUNGEN: { returnCursor = mDbHelper .getReadableDatabase() .query( Vertretungen.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder); break; } case VERTRETUNGEN_WITH_DATE: { returnCursor = getVertretungenByDate(uri, projection, sortOrder); break; } case VERTRETUNGEN_WITH_DATE_AND_ID: { returnCursor = getVertretungenByDateAndId(uri, projection, sortOrder); break; } case DAYS: { returnCursor = mDbHelper .getReadableDatabase() .query( Days.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder); break; } case GENERAL_INFO: { returnCursor = mDbHelper .getReadableDatabase() .query( GeneralInfo.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder); break; } case ABSENT_CLASSES: { returnCursor = mDbHelper .getReadableDatabase() .query( AbsentClasses.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder); break; } case PERSONAL_DATA: { returnCursor = mDbHelper .getReadableDatabase() .query( PersonalData.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder); break; } default: throw new UnsupportedOperationException("Unknown uri: " + uri); } returnCursor.setNotificationUri(getContext().getContentResolver(), uri); return returnCursor; }