From 41282a35568b51270440450c46bb31aa00e52caa Mon Sep 17 00:00:00 2001 From: Satish Sampath Date: Tue, 23 Jun 2009 17:05:35 +0100 Subject: [PATCH] EnhancedGoogleSearch overrides GoogleSearch if present. This is to fix bug http://b/issue?id=1929993. If user had GoogleSearch earlier and that was the default, it will get overridden by EnhancedGoogleSearch when the user installs the latter from the market. --- .../java/android/server/search/Searchables.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/core/java/android/server/search/Searchables.java b/core/java/android/server/search/Searchables.java index a27667bcc246b..c7cc8edf108d8 100644 --- a/core/java/android/server/search/Searchables.java +++ b/core/java/android/server/search/Searchables.java @@ -57,6 +57,11 @@ public class Searchables { private SearchableInfo mDefaultSearchable = null; private SearchableInfo mDefaultSearchableForWebSearch = null; + public static String GOOGLE_SEARCH_COMPONENT_NAME = + "com.android.googlesearch/.GoogleSearch"; + public static String ENHANCED_GOOGLE_SEARCH_COMPONENT_NAME = + "com.google.android.providers.enhancedgooglesearch/.Launcher"; + /** * * @param context Context to use for looking up activities etc. @@ -341,6 +346,18 @@ public class Searchables { return component; } } + } else { + // If the current preferred activity is GoogleSearch, and we detect + // EnhancedGoogleSearch installed as well, set the latter as preferred since that + // is a superset and provides more functionality. + ComponentName cn = new ComponentName(ri.activityInfo.packageName, ri.activityInfo.name); + if (cn.flattenToShortString().equals(GOOGLE_SEARCH_COMPONENT_NAME)) { + ComponentName enhancedGoogleSearch = ComponentName.unflattenFromString( + ENHANCED_GOOGLE_SEARCH_COMPONENT_NAME); + if (setPreferredActivity(enhancedGoogleSearch, Intent.ACTION_WEB_SEARCH)) { + return enhancedGoogleSearch; + } + } } if (ri == null) return null;