diff options
| author | Michael Kolb <kolby@google.com> | 2010-12-14 10:36:11 -0800 |
|---|---|---|
| committer | Michael Kolb <kolby@google.com> | 2010-12-15 09:12:17 -0800 |
| commit | cfa3af5c59abb38c895416a80ef16da0ec1b5287 (patch) | |
| tree | 18afb4abaf1539d46c3eec57100cca1faa5877fb /src/com/android/browser/SuggestionsAdapter.java | |
| parent | 478b2442684004d6dfe192c0ae3dd04845b9f1b7 (diff) | |
| download | packages_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.java | 62 |
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(); } |
