diff options
| author | Bjorn Bringert <bringert@android.com> | 2009-04-28 11:26:52 +0100 |
|---|---|---|
| committer | Bjorn Bringert <bringert@android.com> | 2009-04-28 12:15:56 +0100 |
| commit | 74708bbdf8d6f172b08343bdc578a20aa4b39148 (patch) | |
| tree | b6335841450434f488dc4467ecb5512cb6856018 /core/java/android/server | |
| parent | 17f213bc528cf296e133e9ec9c9e0ce5dce41781 (diff) | |
| download | frameworks_base-74708bbdf8d6f172b08343bdc578a20aa4b39148.zip frameworks_base-74708bbdf8d6f172b08343bdc578a20aa4b39148.tar.gz frameworks_base-74708bbdf8d6f172b08343bdc578a20aa4b39148.tar.bz2 | |
Add GLOBAL_SEARCH intent for finding global search provider.
Diffstat (limited to 'core/java/android/server')
| -rw-r--r-- | core/java/android/server/search/SearchManagerService.java | 18 | ||||
| -rw-r--r-- | core/java/android/server/search/Searchables.java | 30 |
2 files changed, 11 insertions, 37 deletions
diff --git a/core/java/android/server/search/SearchManagerService.java b/core/java/android/server/search/SearchManagerService.java index eaace6b..f180823 100644 --- a/core/java/android/server/search/SearchManagerService.java +++ b/core/java/android/server/search/SearchManagerService.java @@ -22,7 +22,6 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.pm.PackageManager.NameNotFoundException; import android.os.Handler; /** @@ -116,23 +115,6 @@ public class SearchManagerService extends ISearchManager.Stub private void updateSearchables() { mSearchables.buildSearchableList(); mSearchablesDirty = false; - - // TODO SearchableInfo should be the source of truth about whether a searchable exists. - // As it stands, if the package exists but is misconfigured in some way, then this - // would fail, and needs to be fixed. - ComponentName defaultSearch = new ComponentName( - "com.android.globalsearch", - "com.android.globalsearch.GlobalSearch"); - - try { - mContext.getPackageManager().getActivityInfo(defaultSearch, 0); - } catch (NameNotFoundException e) { - defaultSearch = new ComponentName( - "com.android.googlesearch", - "com.android.googlesearch.GoogleSearch"); - } - - mSearchables.setDefaultSearchable(defaultSearch); } /** diff --git a/core/java/android/server/search/Searchables.java b/core/java/android/server/search/Searchables.java index ba75d21..e338bd2 100644 --- a/core/java/android/server/search/Searchables.java +++ b/core/java/android/server/search/Searchables.java @@ -16,6 +16,7 @@ package android.server.search; +import android.app.SearchManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -148,22 +149,6 @@ public class Searchables { } /** - * Set the default searchable activity (when none is specified). - */ - public synchronized void setDefaultSearchable(ComponentName activity) { - SearchableInfo si = null; - if (activity != null) { - si = getSearchableInfo(activity); - if (si != null) { - // move to front of list - mSearchablesList.remove(si); - mSearchablesList.add(0, si); - } - } - mDefaultSearchable = si; - } - - /** * Provides the system-default search activity, which you can use * whenever getSearchableInfo() returns null; * @@ -199,14 +184,15 @@ public class Searchables { */ public void buildSearchableList() { - // create empty hash & list + // These will become the new values at the end of the method HashMap<ComponentName, SearchableInfo> newSearchablesMap = new HashMap<ComponentName, SearchableInfo>(); ArrayList<SearchableInfo> newSearchablesList = new ArrayList<SearchableInfo>(); - // use intent resolver to generate list of ACTION_SEARCH receivers final PackageManager pm = mContext.getPackageManager(); + + // use intent resolver to generate list of ACTION_SEARCH receivers List<ResolveInfo> infoList; final Intent intent = new Intent(Intent.ACTION_SEARCH); infoList = pm.queryIntentActivities(intent, PackageManager.GET_META_DATA); @@ -226,10 +212,16 @@ public class Searchables { } } - // record the final values as a coherent pair + // Find the global search provider + Intent globalSearchIntent = new Intent(SearchManager.INTENT_ACTION_GLOBAL_SEARCH); + ComponentName globalSearchActivity = globalSearchIntent.resolveActivity(pm); + SearchableInfo newDefaultSearchable = newSearchablesMap.get(globalSearchActivity); + + // Store a consistent set of new values synchronized (this) { mSearchablesList = newSearchablesList; mSearchablesMap = newSearchablesMap; + mDefaultSearchable = newDefaultSearchable; } } |
