package com.papagiannis.tuberun; import android.app.SearchManager; import android.content.SearchRecentSuggestionsProvider; import android.content.UriMatcher; import android.database.Cursor; import android.net.Uri; import android.util.Log; public class StationsProvider extends SearchRecentSuggestionsProvider { public final static String AUTHORITY = "com.papagiannis.tuberun.stationsprovider"; public final static int MODE = DATABASE_MODE_QUERIES;// // // DATABASE_MODE_2LINES;| protected final DatabaseHelper myDbHelper = new DatabaseHelper(getContext()); protected boolean isOpen=false; protected static final UriMatcher sUriMatcher = new UriMatcher( UriMatcher.NO_MATCH); public StationsProvider() { setupSuggestions(AUTHORITY, MODE); sUriMatcher.addURI(AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY+"/#", 1); tryOpen(); } protected void tryOpen() { try { myDbHelper.openDataBase(); isOpen=true; } catch (Exception e) { Log.w("StationsProvider", e); } } // Implements ContentProvider.query() public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { if (!isOpen) tryOpen(); if (!isOpen) return null; Cursor result = null; try { switch (sUriMatcher.match(uri)) { case 1: result = myDbHelper.getAllSuggestions(selectionArgs[0]); break; default: } result = myDbHelper.getAllSuggestions(selectionArgs[0]); } catch (Exception e) { Log.w("StationsProvider", e); } finally { // myDbHelper.close(); } return result; } }