package boston.Bus.Map.provider; import android.app.SearchManager; import android.content.ContentResolver; import android.content.SearchRecentSuggestionsProvider; import android.content.UriMatcher; import android.database.Cursor; import android.net.Uri; public class TransitContentProvider extends SearchRecentSuggestionsProvider { private UriMatcher matcher; public static final String AUTHORITY = "com.bostonbusmap.transitprovider"; public static final int MODE = SearchRecentSuggestionsProvider.DATABASE_MODE_QUERIES; private static final int SUGGESTIONS_CODE = 5; public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY); public TransitContentProvider() { matcher = new UriMatcher(UriMatcher.NO_MATCH); matcher.addURI(AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY, SUGGESTIONS_CODE); setupSuggestions(AUTHORITY, MODE); } @Override public boolean onCreate() { boolean create = super.onCreate(); return create; } @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { int code = matcher.match(uri); switch (code) { case SUGGESTIONS_CODE: if (selectionArgs == null || selectionArgs.length == 0 || selectionArgs[0].trim().length() == 0) { return super.query(uri, projection, selection, selectionArgs, sortOrder); } else { ContentResolver resolver = getContext().getContentResolver(); return DatabaseAgent.getCursorForSearch(resolver, selectionArgs[0]); } default: return super.query(uri, projection, selection, selectionArgs, sortOrder); } } }