@Override public Cursor query( Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { Log.v("query(uri=" + uri + ", proj=" + Arrays.toString(projection) + ")"); final SQLiteDatabase db = mOpenHelper.getReadableDatabase(); final int match = getUriMatcher().match(uri); final SelectionBuilder builder = buildExpandedSelection(uri, match); Cursor query; synchronized (mutex) { query = builder.where(selection, selectionArgs).query(db, projection, sortOrder); } query.setNotificationUri(getContext().getContentResolver(), uri); return query; }