package com.boardgamegeek.provider; import android.app.SearchManager; import android.content.ContentResolver; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteQueryBuilder; import android.net.Uri; import android.text.TextUtils; import com.boardgamegeek.provider.BggDatabase.Tables; public class SearchRefreshProvider extends BaseProvider { @Override protected String getPath() { return SearchManager.SUGGEST_URI_PATH_SHORTCUT + "/#"; } @Override protected String getType(Uri uri) { return SearchManager.SHORTCUT_MIME_TYPE; } @Override protected Cursor query(ContentResolver resolver, SQLiteDatabase db, Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { String shortcutId = null; if (uri.getPathSegments().size() > 1) { shortcutId = uri.getLastPathSegment(); } if (TextUtils.isEmpty(shortcutId)) { return null; } else { SQLiteQueryBuilder qb = new SQLiteQueryBuilder(); qb.setTables(Tables.GAMES); qb.setProjectionMap(SearchSuggestProvider.sSuggestionProjectionMap); qb.appendWhere(SearchManager.SUGGEST_COLUMN_SHORTCUT_ID + "=" + shortcutId); Cursor cursor = qb.query(db, projection, selection, selectionArgs, null, null, sortOrder); cursor.setNotificationUri(resolver, uri); return cursor; } } }