From a48a5af931f2fb43c948416180b85dfe9ecdc9a1 Mon Sep 17 00:00:00 2001 From: Bjorn Bringert Date: Wed, 20 May 2009 17:58:39 +0100 Subject: [PATCH] Update searchables list in getSearchablesInGlobalSearch(). Should fix http://b/issue?id=1866432 --- .../server/search/SearchManagerService.java | 31 +++++++++---------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/core/java/android/server/search/SearchManagerService.java b/core/java/android/server/search/SearchManagerService.java index 03623d6bf4113..952372f4e8b77 100644 --- a/core/java/android/server/search/SearchManagerService.java +++ b/core/java/android/server/search/SearchManagerService.java @@ -37,9 +37,6 @@ public class SearchManagerService extends ISearchManager.Stub // general debugging support private static final String TAG = "SearchManagerService"; private static final boolean DEBUG = false; - - // configuration choices - private static final boolean IMMEDIATE_SEARCHABLES_UPDATE = true; // class maintenance and general shared data private final Context mContext; @@ -70,9 +67,7 @@ public class SearchManagerService extends ISearchManager.Stub // After startup settles down, preload the searchables list, // which will reduce the delay when the search UI is invoked. - if (IMMEDIATE_SEARCHABLES_UPDATE) { - mHandler.post(mRunUpdateSearchable); - } + mHandler.post(mRunUpdateSearchable); } /** @@ -91,9 +86,7 @@ public class SearchManagerService extends ISearchManager.Stub action.equals(Intent.ACTION_PACKAGE_REMOVED) || action.equals(Intent.ACTION_PACKAGE_CHANGED)) { mSearchablesDirty = true; - if (IMMEDIATE_SEARCHABLES_UPDATE) { - mHandler.post(mRunUpdateSearchable); - } + mHandler.post(mRunUpdateSearchable); return; } } @@ -104,9 +97,7 @@ public class SearchManagerService extends ISearchManager.Stub */ private Runnable mRunUpdateSearchable = new Runnable() { public void run() { - if (mSearchablesDirty) { - updateSearchables(); - } + updateSearchablesIfDirty(); } }; @@ -119,6 +110,15 @@ public class SearchManagerService extends ISearchManager.Stub mSearchablesDirty = false; } + /** + * Updates the list of searchables if needed. + */ + private void updateSearchablesIfDirty() { + if (mSearchablesDirty) { + updateSearchables(); + } + } + /** * Returns the SearchableInfo for a given activity * @@ -131,11 +131,7 @@ public class SearchManagerService extends ISearchManager.Stub * or null if no searchable metadata was available. */ public SearchableInfo getSearchableInfo(ComponentName launchActivity, boolean globalSearch) { - // final check. however we should try to avoid this, because - // it slows down the entry into the UI. - if (mSearchablesDirty) { - updateSearchables(); - } + updateSearchablesIfDirty(); SearchableInfo si = null; if (globalSearch) { si = mSearchables.getDefaultSearchable(); @@ -150,6 +146,7 @@ public class SearchManagerService extends ISearchManager.Stub * Returns a list of the searchable activities that can be included in global search. */ public List getSearchablesInGlobalSearch() { + updateSearchablesIfDirty(); return mSearchables.getSearchablesInGlobalSearchList(); }