@Override public Uri insert(Uri uri, ContentValues values) { final SQLiteDatabase db = mOpenHelper.getWritableDatabase(); final int match = sUriMatcher.match(uri); Uri returnUri; switch (match) { case MOVIES: { long _id = db.insert(MoviesContract.MoviesEntry.TABLE_NAME, null, values); if (_id > 0) returnUri = MoviesContract.MoviesEntry.buildMovieUri(_id); else throw new android.database.SQLException("Failed to insert row into " + uri); break; } case TRAILERS: { long _id = db.insert(MoviesContract.TrailersEntry.TABLE_NAME, null, values); if (_id > 0) returnUri = MoviesContract.TrailersEntry.buildTrailerUri(_id); else throw new android.database.SQLException("Failed to insert row into " + uri); break; } case REVIEWS: { long _id = db.insert(MoviesContract.ReviewsEntry.TABLE_NAME, null, values); if (_id > 0) returnUri = MoviesContract.ReviewsEntry.buildReviewUri(_id); else throw new android.database.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) { Cursor retCursor; switch (sUriMatcher.match(uri)) { // "weather/*/*" case MOVIES: { retCursor = mOpenHelper .getReadableDatabase() .query( MoviesContract.MoviesEntry.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder); break; } // "weather/*" case MOVIE_WITH_ID: { selectionArgs = new String[] {Long.toString(MoviesContract.MoviesEntry.getMovieIDFromUri(uri))}; retCursor = mOpenHelper .getReadableDatabase() .query( MoviesContract.MoviesEntry.TABLE_NAME, projection, sItemMovieIDSelection, selectionArgs, null, null, sortOrder); break; } // "weather" case TRAILERS: { retCursor = mOpenHelper .getReadableDatabase() .query( MoviesContract.TrailersEntry.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder); break; } // "location" case TRAILER_WITH_MOVIE: { selectionArgs = new String[] {Long.toString(MoviesContract.TrailersEntry.getMovieIDFromUri(uri))}; retCursor = sTrailerByMovieID.query( mOpenHelper.getReadableDatabase(), projection, sMovieIDSelection, selectionArgs, null, null, sortOrder); break; } // "weather" case REVIEWS: { retCursor = mOpenHelper .getReadableDatabase() .query( MoviesContract.ReviewsEntry.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder); break; } // "location" case REVIEW_WITH_MOVIE: { selectionArgs = new String[] {Long.toString(MoviesContract.ReviewsEntry.getMovieIDFromUri(uri))}; retCursor = sReviewByMovieID.query( mOpenHelper.getReadableDatabase(), projection, sMovieIDSelection, selectionArgs, null, null, sortOrder); break; } default: throw new UnsupportedOperationException("Unknown uri: " + uri); } retCursor.setNotificationUri(getContext().getContentResolver(), uri); return retCursor; }