summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-09-28 15:47:56 -0400
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-09-28 15:47:56 -0400
commit2dfa6edcd086bb9ce4fbb3b979f3afec93f6cddc (patch)
treef8d072fb0da25584f8cc77916c859d4f8b8ecc5e
parent9d686c9384cad2bccb3db27eb19bb089bf05041c (diff)
parent3fc7c67de192a5baee2b4510fdb464b0fec72dca (diff)
downloadframeworks_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.java39
-rw-r--r--core/java/android/app/SuggestionsAdapter.java3
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();