@Override public Cursor query( Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { Cursor retCursor; switch (uriMatcher.match(uri)) { case BOOK: retCursor = dbHelper .getReadableDatabase() .query( com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry .TABLE_NAME, projection, selection, selection == null ? null : selectionArgs, null, null, sortOrder); break; case AUTHOR: retCursor = dbHelper .getReadableDatabase() .query( com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.AuthorEntry .TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder); break; case CATEGORY: retCursor = dbHelper .getReadableDatabase() .query( com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.CategoryEntry .TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder); break; case BOOK_ID: retCursor = dbHelper .getReadableDatabase() .query( com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry .TABLE_NAME, projection, com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry._ID + " = '" + ContentUris.parseId(uri) + "'", selectionArgs, null, null, sortOrder); break; case AUTHOR_ID: retCursor = dbHelper .getReadableDatabase() .query( com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.AuthorEntry .TABLE_NAME, projection, com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.AuthorEntry._ID + " = '" + ContentUris.parseId(uri) + "'", selectionArgs, null, null, sortOrder); break; case CATEGORY_ID: retCursor = dbHelper .getReadableDatabase() .query( com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.CategoryEntry .TABLE_NAME, projection, com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.CategoryEntry._ID + " = '" + ContentUris.parseId(uri) + "'", selectionArgs, null, null, sortOrder); break; case BOOK_FULLDETAIL: String[] bfd_projection = { com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.TABLE_NAME + "." + AlexandriaContract.BookEntry._ID, com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.TABLE_NAME + "." + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.TITLE, com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.TABLE_NAME + "." + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.SUBTITLE, com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.TABLE_NAME + "." + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.IMAGE_URL, com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.TABLE_NAME + "." + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.DESC, "group_concat(DISTINCT " + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.AuthorEntry.TABLE_NAME + "." + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.AuthorEntry.AUTHOR + ") as " + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.AuthorEntry.AUTHOR, "group_concat(DISTINCT " + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.CategoryEntry.TABLE_NAME + "." + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.CategoryEntry.CATEGORY + ") as " + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.CategoryEntry.CATEGORY }; retCursor = bookFull.query( dbHelper.getReadableDatabase(), bfd_projection, com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.TABLE_NAME + "." + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry._ID + " = '" + ContentUris.parseId(uri) + "'", selectionArgs, com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.TABLE_NAME + "." + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry._ID, null, sortOrder); break; case BOOK_FULL: String[] bf_projection = { com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.TABLE_NAME + "." + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.TITLE, com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.TABLE_NAME + "." + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.IMAGE_URL, "group_concat(DISTINCT " + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.AuthorEntry.TABLE_NAME + "." + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.AuthorEntry.AUTHOR + ") as " + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.AuthorEntry.AUTHOR, "group_concat(DISTINCT " + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.CategoryEntry.TABLE_NAME + "." + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.CategoryEntry.CATEGORY + ") as " + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.CategoryEntry.CATEGORY }; retCursor = bookFull.query( dbHelper.getReadableDatabase(), bf_projection, null, selectionArgs, com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry.TABLE_NAME + "." + com.awesome.byunghwa.app.alexandria.data.AlexandriaContract.BookEntry._ID, null, sortOrder); break; default: throw new UnsupportedOperationException("Unknown uri: " + uri); } retCursor.setNotificationUri(getContext().getContentResolver(), uri); return retCursor; }