private Cursor getReviewsByMovieId(Uri uri, String[] projection, String sortOrder) { String movieId = MoviesContract.ReviewEntry.getMovieIdFromUri(uri); String[] selectionArgs = new String[] {movieId}; String selection = sMovieSelection; return sReviewByMovieIdQueryBuilder.query( moviesDbHelper.getReadableDatabase(), projection, selection, selectionArgs, null, null, sortOrder); }
@Nullable @Override public Cursor query( Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { Cursor retCursor; switch (sUriMatcher.match(uri)) { case MOVIE: { retCursor = moviesDbHelper .getReadableDatabase() .query( MoviesContract.MovieEntry.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder); break; } case MOVIE_WITH_ID: { String movieId = MoviesContract.ReviewEntry.getMovieIdFromUri(uri); selectionArgs = new String[] {movieId}; selection = sMovieSelection; retCursor = moviesDbHelper .getReadableDatabase() .query( MoviesContract.MovieEntry.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder); break; } case TRAILER: { retCursor = getTrailersByMovieId(uri, projection, sortOrder); break; } case REVIEW: { retCursor = getReviewsByMovieId(uri, projection, sortOrder); break; } case REVIEW_WITH_ID: { String movieId = MoviesContract.ReviewEntry.getMovieIdFromUri(uri); retCursor = sReviewByMovieIdQueryBuilder.query( moviesDbHelper.getReadableDatabase(), projection, sMovieSelection, new String[] {movieId}, null, null, sortOrder); break; } case TRAILER_WITH_ID: { String movieId = MoviesContract.TrailerEntry.getMovieIdFromUri(uri); retCursor = sTrailerByMovieIdQueryBuilder.query( moviesDbHelper.getReadableDatabase(), projection, sMovieSelection, new String[] {movieId}, null, null, sortOrder); break; } default: throw new UnsupportedOperationException("Unknown uri: " + uri); } retCursor.setNotificationUri(getContext().getContentResolver(), uri); return retCursor; }