diff options
Diffstat (limited to 'src/com/android')
4 files changed, 23 insertions, 2 deletions
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java index 5589849..e1e1e18 100644 --- a/src/com/android/browser/BrowserActivity.java +++ b/src/com/android/browser/BrowserActivity.java @@ -1215,6 +1215,12 @@ public class BrowserActivity extends Activity if (appSearchData == null) { appSearchData = createGoogleSearchSourceBundle(GOOGLE_SEARCH_SOURCE_TYPE); } + + SearchEngine searchEngine = mSettings.getSearchEngine(); + if (searchEngine != null && !searchEngine.supportsVoiceSearch()) { + appSearchData.putBoolean(SearchManager.DISABLE_VOICE_SEARCH, true); + } + super.startSearch(initialQuery, selectInitialQuery, appSearchData, globalSearch); } diff --git a/src/com/android/browser/search/DefaultSearchEngine.java b/src/com/android/browser/search/DefaultSearchEngine.java index 42d274d..c939de7 100644 --- a/src/com/android/browser/search/DefaultSearchEngine.java +++ b/src/com/android/browser/search/DefaultSearchEngine.java @@ -67,9 +67,9 @@ public class DefaultSearchEngine implements SearchEngine { String packageName = mSearchable.getSearchActivity().getPackageName(); // Use "google" as name to avoid showing Google twice (app + OpenSearch) if ("com.google.android.googlequicksearchbox".equals(packageName)) { - return "google"; + return SearchEngine.GOOGLE; } else if ("com.android.quicksearchbox".equals(packageName)) { - return "google"; + return SearchEngine.GOOGLE; } else { return packageName; } @@ -110,6 +110,10 @@ public class DefaultSearchEngine implements SearchEngine { public void close() { } + public boolean supportsVoiceSearch() { + return getName().equals(SearchEngine.GOOGLE); + } + @Override public String toString() { return "ActivitySearchEngine{" + mSearchable + "}"; diff --git a/src/com/android/browser/search/OpenSearchSearchEngine.java b/src/com/android/browser/search/OpenSearchSearchEngine.java index e78a93c..3c1cd5b 100644 --- a/src/com/android/browser/search/OpenSearchSearchEngine.java +++ b/src/com/android/browser/search/OpenSearchSearchEngine.java @@ -196,6 +196,10 @@ public class OpenSearchSearchEngine implements SearchEngine { mHttpClient.close(); } + public boolean supportsVoiceSearch() { + return getName().equals(SearchEngine.GOOGLE); + } + private boolean isNetworkConnected(Context context) { NetworkInfo networkInfo = getActiveNetworkInfo(context); return networkInfo != null && networkInfo.isConnected(); diff --git a/src/com/android/browser/search/SearchEngine.java b/src/com/android/browser/search/SearchEngine.java index 3d24d2e..b7e1859 100644 --- a/src/com/android/browser/search/SearchEngine.java +++ b/src/com/android/browser/search/SearchEngine.java @@ -24,6 +24,9 @@ import android.os.Bundle; */ public interface SearchEngine { + // Used if the search engine is Google + static final String GOOGLE = "google"; + /** * Gets the unique name of this search engine. */ @@ -54,4 +57,8 @@ public interface SearchEngine { */ public void close(); + /** + * Checks whether this search engine supports voice search. + */ + public boolean supportsVoiceSearch(); } |
