diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-09-28 15:47:56 -0400 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-09-28 15:47:56 -0400 |
commit | 2dfa6edcd086bb9ce4fbb3b979f3afec93f6cddc (patch) | |
tree | f8d072fb0da25584f8cc77916c859d4f8b8ecc5e | |
parent | 9d686c9384cad2bccb3db27eb19bb089bf05041c (diff) | |
parent | 3fc7c67de192a5baee2b4510fdb464b0fec72dca (diff) | |
download | frameworks_base-2dfa6edcd086bb9ce4fbb3b979f3afec93f6cddc.zip frameworks_base-2dfa6edcd086bb9ce4fbb3b979f3afec93f6cddc.tar.gz frameworks_base-2dfa6edcd086bb9ce4fbb3b979f3afec93f6cddc.tar.bz2 |
Merge change Ida50e915 into eclair
* changes:
Pass limit=50 to all suggestion sources.
-rw-r--r-- | core/java/android/app/SearchManager.java | 39 | ||||
-rw-r--r-- | core/java/android/app/SuggestionsAdapter.java | 3 |
2 files changed, 34 insertions, 8 deletions
diff --git a/core/java/android/app/SearchManager.java b/core/java/android/app/SearchManager.java index f0876f4..9851750 100644 --- a/core/java/android/app/SearchManager.java +++ b/core/java/android/app/SearchManager.java @@ -27,9 +27,9 @@ import android.os.Handler; import android.os.RemoteException; import android.os.ServiceManager; import android.server.search.SearchableInfo; +import android.text.TextUtils; import android.util.Log; import android.view.KeyEvent; -import android.text.TextUtils; import java.util.List; @@ -1591,6 +1591,13 @@ public class SearchManager public final static String SUGGEST_NEVER_MAKE_SHORTCUT = "_-1"; /** + * Query parameter added to suggestion queries to limit the number of suggestions returned. + * + * @hide Pending API council approval + */ + public final static String SUGGEST_PARAMETER_LIMIT = "limit"; + + /** * If a suggestion has this value in {@link #SUGGEST_COLUMN_INTENT_ACTION}, * the search dialog will switch to a different suggestion source when the * suggestion is clicked. @@ -1980,6 +1987,21 @@ public class SearchManager * @hide because SearchableInfo is not part of the API. */ public Cursor getSuggestions(SearchableInfo searchable, String query) { + return getSuggestions(searchable, query, -1); + } + + /** + * Gets a cursor with search suggestions. + * + * @param searchable Information about how to get the suggestions. + * @param query The search text entered (so far). + * @param limit The query limit to pass to the suggestion provider. This is advisory, + * the returned cursor may contain more rows. Pass {@code -1} for no limit. + * @return a cursor with suggestions, or <code>null</null> the suggestion query failed. + * + * @hide because SearchableInfo is not part of the API. + */ + public Cursor getSuggestions(SearchableInfo searchable, String query, int limit) { if (searchable == null) { return null; } @@ -1991,7 +2013,9 @@ public class SearchManager Uri.Builder uriBuilder = new Uri.Builder() .scheme(ContentResolver.SCHEME_CONTENT) - .authority(authority); + .authority(authority) + .query("") // TODO: Remove, workaround for a bug in Uri.writeToParcel() + .fragment(""); // TODO: Remove, workaround for a bug in Uri.writeToParcel() // if content path provided, insert it now final String contentPath = searchable.getSuggestPath(); @@ -1999,7 +2023,7 @@ public class SearchManager uriBuilder.appendEncodedPath(contentPath); } - // append standard suggestion query path + // append standard suggestion query path uriBuilder.appendPath(SearchManager.SUGGEST_URI_PATH_QUERY); // get the query selection, may be null @@ -2012,10 +2036,11 @@ public class SearchManager uriBuilder.appendPath(query); } - Uri uri = uriBuilder - .query("") // TODO: Remove, workaround for a bug in Uri.writeToParcel() - .fragment("") // TODO: Remove, workaround for a bug in Uri.writeToParcel() - .build(); + if (limit > 0) { + uriBuilder.appendQueryParameter(SUGGEST_PARAMETER_LIMIT, String.valueOf(limit)); + } + + Uri uri = uriBuilder.build(); // finally, make the query return mContext.getContentResolver().query(uri, null, selection, selArgs, null); diff --git a/core/java/android/app/SuggestionsAdapter.java b/core/java/android/app/SuggestionsAdapter.java index 9234a9c..12be97c 100644 --- a/core/java/android/app/SuggestionsAdapter.java +++ b/core/java/android/app/SuggestionsAdapter.java @@ -58,6 +58,7 @@ class SuggestionsAdapter extends ResourceCursorAdapter { private static final boolean DBG = false; private static final String LOG_TAG = "SuggestionsAdapter"; + private static final int QUERY_LIMIT = 50; private SearchManager mSearchManager; private SearchDialog mSearchDialog; @@ -186,7 +187,7 @@ class SuggestionsAdapter extends ResourceCursorAdapter { mSearchDialog.getWindow().getDecorView().post(mStartSpinnerRunnable); } try { - final Cursor cursor = mSearchManager.getSuggestions(mSearchable, query); + final Cursor cursor = mSearchManager.getSuggestions(mSearchable, query, QUERY_LIMIT); // trigger fill window so the spinner stays up until the results are copied over and // closer to being ready if (!mGlobalSearchMode && cursor != null) cursor.getCount(); |