summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/SuggestionsAdapter.java
diff options
context:
space:
mode:
authorMichael Kolb <kolby@google.com>2010-12-14 10:36:11 -0800
committerMichael Kolb <kolby@google.com>2010-12-15 09:12:17 -0800
commitcfa3af5c59abb38c895416a80ef16da0ec1b5287 (patch)
tree18afb4abaf1539d46c3eec57100cca1faa5877fb /src/com/android/browser/SuggestionsAdapter.java
parent478b2442684004d6dfe192c0ae3dd04845b9f1b7 (diff)
downloadpackages_apps_Browser-cfa3af5c59abb38c895416a80ef16da0ec1b5287.tar.gz
packages_apps_Browser-cfa3af5c59abb38c895416a80ef16da0ec1b5287.tar.bz2
packages_apps_Browser-cfa3af5c59abb38c895416a80ef16da0ec1b5287.zip
Enable voice search
http://b/issue?id=3039695 send voice search intent implement voice search title bar also fixes another Urlbar focus handling bug Change-Id: Icdcbec9ffff586d445545cc7fe86ca045022f381
Diffstat (limited to 'src/com/android/browser/SuggestionsAdapter.java')
-rw-r--r--src/com/android/browser/SuggestionsAdapter.java62
1 files changed, 41 insertions, 21 deletions
diff --git a/src/com/android/browser/SuggestionsAdapter.java b/src/com/android/browser/SuggestionsAdapter.java
index 6473dfd29..4c0217c3f 100644
--- a/src/com/android/browser/SuggestionsAdapter.java
+++ b/src/com/android/browser/SuggestionsAdapter.java
@@ -23,7 +23,6 @@ import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.AsyncTask;
-import android.os.Handler;
import android.provider.BrowserContract;
import android.text.TextUtils;
import android.view.LayoutInflater;
@@ -69,6 +68,7 @@ public class SuggestionsAdapter extends BaseAdapter implements Filterable, OnCli
int mLinesPortrait;
int mLinesLandscape;
Object mResultsLock = new Object();
+ List<String> mVoiceResults;
interface CompletionListener {
@@ -92,6 +92,12 @@ public class SuggestionsAdapter extends BaseAdapter implements Filterable, OnCli
addSource(new CombinedCursor());
}
+ void setVoiceResults(List<String> voiceResults) {
+ mVoiceResults = voiceResults;
+ notifyDataSetInvalidated();
+
+ }
+
public void setLandscapeMode(boolean mode) {
mLandscapeMode = mode;
notifyDataSetChanged();
@@ -132,11 +138,18 @@ public class SuggestionsAdapter extends BaseAdapter implements Filterable, OnCli
@Override
public int getCount() {
+ if (mVoiceResults != null) {
+ return mVoiceResults.size();
+ }
return (mMixedResults == null) ? 0 : mMixedResults.getLineCount();
}
@Override
public SuggestItem getItem(int position) {
+ if (mVoiceResults != null) {
+ return new SuggestItem(mVoiceResults.get(position), null,
+ TYPE_SEARCH);
+ }
if (mMixedResults == null) {
return null;
}
@@ -176,7 +189,7 @@ public class SuggestionsAdapter extends BaseAdapter implements Filterable, OnCli
View s1 = view.findViewById(R.id.suggest1);
View s2 = view.findViewById(R.id.suggest2);
View div = view.findViewById(R.id.suggestion_divider);
- if (mLandscapeMode) {
+ if (mLandscapeMode && (mVoiceResults == null)) {
SuggestItem item = getItem(position);
div.setVisibility(View.VISIBLE);
if (item != null) {
@@ -310,25 +323,30 @@ public class SuggestionsAdapter extends BaseAdapter implements Filterable, OnCli
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults res = new FilterResults();
- if (TextUtils.isEmpty(constraint)) {
- res.count = 0;
- res.values = null;
- return res;
- }
- startSuggestionsAsync(constraint);
- List<SuggestItem> filterResults = new ArrayList<SuggestItem>();
- if (constraint != null) {
- for (CursorSource sc : mSources) {
- sc.runQuery(constraint);
+ if (mVoiceResults == null) {
+ if (TextUtils.isEmpty(constraint)) {
+ res.count = 0;
+ res.values = null;
+ return res;
}
- mixResults(filterResults);
- }
- synchronized (mResultsLock) {
- mFilterResults = filterResults;
+ startSuggestionsAsync(constraint);
+ List<SuggestItem> filterResults = new ArrayList<SuggestItem>();
+ if (constraint != null) {
+ for (CursorSource sc : mSources) {
+ sc.runQuery(constraint);
+ }
+ mixResults(filterResults);
+ }
+ synchronized (mResultsLock) {
+ mFilterResults = filterResults;
+ }
+ SuggestionResults mixed = buildSuggestionResults();
+ res.count = mixed.getLineCount();
+ res.values = mixed;
+ } else {
+ res.count = mVoiceResults.size();
+ res.values = mVoiceResults;
}
- SuggestionResults mixed = buildSuggestionResults();
- res.count = mixed.getLineCount();
- res.values = mixed;
return res;
}
@@ -348,8 +366,10 @@ public class SuggestionsAdapter extends BaseAdapter implements Filterable, OnCli
@Override
protected void publishResults(CharSequence constraint, FilterResults fresults) {
- mMixedResults = (SuggestionResults) fresults.values;
- mListener.onFilterComplete(fresults.count);
+ if (fresults.values instanceof SuggestionResults) {
+ mMixedResults = (SuggestionResults) fresults.values;
+ mListener.onFilterComplete(fresults.count);
+ }
notifyDataSetChanged();
}