@Nullable
 @Override
 public Cursor query(
     Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
   Log.v(TAG, "Attempting to query for Uri: " + uri);
   // FIXME: fix the selection parameter
   final String singleMovieQuerySelection =
       MovieEntry.TABLE_NAME + "." + MovieEntry.COLUMN_ID + " = " + MovieEntry.extractMovieId(uri);
   int match = mUriMatcher.match(uri);
   switch (match) {
     case CODE_MOVIE:
       Log.v(TAG, "matched for a single movie with id: " + extractMovieId(uri));
       return sQueryBuilder.query(
           mMoviesDatabaseHelper.getReadableDatabase(),
           null,
           singleMovieQuerySelection,
           new String[] {},
           null,
           null,
           null);
     case CODE_MOVIES:
       Log.v(TAG, "matched for a all movies");
       return sQueryBuilder.query(
           mMoviesDatabaseHelper.getReadableDatabase(), null, null, null, null, null, null);
     default:
       Log.w(TAG, "No match found for uri: " + uri);
       return null;
   }
 }
 @Override
 public int delete(Uri uri, String selection, String[] selectionArgs) {
   return mMoviesDatabaseHelper
       .getWritableDatabase()
       .delete(MovieEntry.TABLE_NAME, selection, selectionArgs);
 }
 @Nullable
 @Override
 public Uri insert(Uri uri, ContentValues values) {
   mMoviesDatabaseHelper.getWritableDatabase().insert(MovieEntry.TABLE_NAME, null, values);
   return uri;
 }