Update searchables list in getSearchablesInGlobalSearch().

Should fix http://b/issue?id=1866432
diff --git a/core/java/android/server/search/SearchManagerService.java b/core/java/android/server/search/SearchManagerService.java
index 03623d6..952372f 100644
--- a/core/java/android/server/search/SearchManagerService.java
+++ b/core/java/android/server/search/SearchManagerService.java
@@ -37,9 +37,6 @@
         // 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 @@
         
         // 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 @@
                 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 @@
      */
     private Runnable mRunUpdateSearchable = new Runnable() {
         public void run() {
-            if (mSearchablesDirty) {
-                updateSearchables();
-            }
+            updateSearchablesIfDirty();
         } 
     };
 
@@ -120,6 +111,15 @@
     }
 
     /**
+     * Updates the list of searchables if needed.
+     */
+    private void updateSearchablesIfDirty() {
+        if (mSearchablesDirty) {
+            updateSearchables();
+        }
+    }
+
+    /**
      * Returns the SearchableInfo for a given activity
      *
      * @param launchActivity The activity from which we're launching this search.
@@ -131,11 +131,7 @@
      * 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 @@
      * Returns a list of the searchable activities that can be included in global search.
      */
     public List<SearchableInfo> getSearchablesInGlobalSearch() {
+        updateSearchablesIfDirty();
         return mSearchables.getSearchablesInGlobalSearchList();
     }