am 2c10b5f4: Merge change 4914 into donut

Merge commit '2c10b5f483f832523305c11d44035fc7f5d9a54b'

* commit '2c10b5f483f832523305c11d44035fc7f5d9a54b':
  Make all static methods in SearchManager non-static.
diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java
index 3a3a983..5d1af52 100644
--- a/core/java/android/app/SearchDialog.java
+++ b/core/java/android/app/SearchDialog.java
@@ -310,15 +310,17 @@
                     + appSearchData + ", " + globalSearch + ")");
         }
         
+        SearchManager searchManager = (SearchManager)
+                mContext.getSystemService(Context.SEARCH_SERVICE);
         // Try to get the searchable info for the provided component (or for global search,
         // if globalSearch == true).
-        mSearchable = SearchManager.getSearchableInfo(componentName, globalSearch);
+        mSearchable = searchManager.getSearchableInfo(componentName, globalSearch);
         
         // If we got back nothing, and it wasn't a request for global search, then try again
         // for global search, as we'll try to launch that in lieu of any component-specific search.
         if (!globalSearch && mSearchable == null) {
             globalSearch = true;
-            mSearchable = SearchManager.getSearchableInfo(componentName, globalSearch);
+            mSearchable = searchManager.getSearchableInfo(componentName, globalSearch);
             
             // If we still get back null (i.e., there's not even a searchable info available
             // for global search), then really give up.
@@ -333,7 +335,7 @@
         mAppSearchData = appSearchData;
         // Using globalSearch here is just an optimization, just calling
         // isDefaultSearchable() should always give the same result.
-        mGlobalSearchMode = globalSearch || SearchManager.isDefaultSearchable(mSearchable); 
+        mGlobalSearchMode = globalSearch || searchManager.isDefaultSearchable(mSearchable);
         mActivityContext = mSearchable.getActivityContext(getContext());
         
         // show the dialog. this will call onStart().
diff --git a/core/java/android/app/SearchManager.java b/core/java/android/app/SearchManager.java
index 4c868d4..fd69ba4 100644
--- a/core/java/android/app/SearchManager.java
+++ b/core/java/android/app/SearchManager.java
@@ -1514,7 +1514,7 @@
     /**
      * Reference to the shared system search service.
      */
-    private static ISearchManager sService = getSearchManagerService();
+    private static ISearchManager mService;
 
     private final Context mContext;
 
@@ -1529,6 +1529,8 @@
     /*package*/ SearchManager(Context context, Handler handler)  {
         mContext = context;
         mHandler = handler;
+        mService = ISearchManager.Stub.asInterface(
+                ServiceManager.getService(Context.SEARCH_SERVICE));
     }
     
     /**
@@ -1581,7 +1583,7 @@
         try {
             mIsShowing = true;
             // activate the search manager and start it up!
-            sService.startSearch(initialQuery, selectInitialQuery, launchActivity, appSearchData,
+            mService.startSearch(initialQuery, selectInitialQuery, launchActivity, appSearchData,
                     globalSearch, mSearchManagerCallback);
         } catch (RemoteException ex) {
             Log.e(TAG, "startSearch() failed: " + ex);
@@ -1603,7 +1605,7 @@
         if (DBG) debug("stopSearch(), mIsShowing=" + mIsShowing);
         if (!mIsShowing) return;
         try {
-            sService.stopSearch();
+            mService.stopSearch();
             // onDismiss will also clear this, but we do it here too since onDismiss() is
             // called asynchronously.
             mIsShowing = false;
@@ -1725,7 +1727,7 @@
         if (DBG) debug("saveSearchDialog(), mIsShowing=" + mIsShowing);
         if (!mIsShowing) return null;
         try {
-            return sService.onSaveInstanceState();
+            return mService.onSaveInstanceState();
         } catch (RemoteException ex) {
             Log.e(TAG, "onSaveInstanceState() failed: " + ex);
             return null;
@@ -1743,7 +1745,7 @@
         if (DBG) debug("restoreSearchDialog(" + searchDialogState + ")");
         if (searchDialogState == null) return;
         try {
-            sService.onRestoreInstanceState(searchDialogState);
+            mService.onRestoreInstanceState(searchDialogState);
         } catch (RemoteException ex) {
             Log.e(TAG, "onRestoreInstanceState() failed: " + ex);
         }
@@ -1760,17 +1762,12 @@
         if (DBG) debug("onConfigurationChanged(" + newConfig + "), mIsShowing=" + mIsShowing);
         if (!mIsShowing) return;
         try {
-            sService.onConfigurationChanged(newConfig);
+            mService.onConfigurationChanged(newConfig);
         } catch (RemoteException ex) {
             Log.e(TAG, "onConfigurationChanged() failed:" + ex);
         }
     }
 
-    private static ISearchManager getSearchManagerService() {
-        return ISearchManager.Stub.asInterface(
-            ServiceManager.getService(Context.SEARCH_SERVICE));
-    }
-    
     /**
      * Gets information about a searchable activity. This method is static so that it can
      * be used from non-Activity contexts.
@@ -1782,10 +1779,10 @@
      * 
      * @hide because SearchableInfo is not part of the API.
      */
-    public static SearchableInfo getSearchableInfo(ComponentName componentName, 
+    public SearchableInfo getSearchableInfo(ComponentName componentName,
             boolean globalSearch) {
         try {
-            return sService.getSearchableInfo(componentName, globalSearch);
+            return mService.getSearchableInfo(componentName, globalSearch);
         } catch (RemoteException ex) {
             Log.e(TAG, "getSearchableInfo() failed: " + ex);
             return null;
@@ -1797,12 +1794,12 @@
      * 
      * @hide because SearchableInfo is not part of the API.
      */
-    public static boolean isDefaultSearchable(SearchableInfo searchable) {
-        SearchableInfo defaultSearchable = SearchManager.getSearchableInfo(null, true);
+    public boolean isDefaultSearchable(SearchableInfo searchable) {
+        SearchableInfo defaultSearchable = getSearchableInfo(null, true);
         return defaultSearchable != null 
                 && defaultSearchable.getSearchActivity().equals(searchable.getSearchActivity());
     }
-    
+
     /**
      * Gets a cursor with search suggestions.
      *
@@ -1813,20 +1810,6 @@
      * @hide because SearchableInfo is not part of the API.
      */
     public Cursor getSuggestions(SearchableInfo searchable, String query) {
-        return getSuggestions(mContext, searchable, query);
-    }
-
-    /**
-     * Gets a cursor with search suggestions. This method is static so that it can
-     * be used from non-Activity context.
-     *
-     * @param searchable Information about how to get the suggestions.
-     * @param query The search text entered (so far).
-     * @return a cursor with suggestions, or <code>null</null> the suggestion query failed. 
-     * 
-     * @hide because SearchableInfo is not part of the API.
-     */
-    public static Cursor getSuggestions(Context context, SearchableInfo searchable, String query) {
         if (searchable == null) {
             return null;
         }
@@ -1865,7 +1848,7 @@
                 .build();
 
         // finally, make the query
-        return context.getContentResolver().query(uri, null, selection, selArgs, null);
+        return mContext.getContentResolver().query(uri, null, selection, selArgs, null);
     }
      
     /**
@@ -1877,9 +1860,9 @@
      * 
      * @hide because SearchableInfo is not part of the API.
      */
-    public static List<SearchableInfo> getSearchablesInGlobalSearch() {
+    public List<SearchableInfo> getSearchablesInGlobalSearch() {
         try {
-            return sService.getSearchablesInGlobalSearch();
+            return mService.getSearchablesInGlobalSearch();
         } catch (RemoteException e) {
             Log.e(TAG, "getSearchablesInGlobalSearch() failed: " + e);
             return null;
@@ -1894,9 +1877,9 @@
      *
      * @hide because SearchableInfo is not part of the API.
      */
-    public static List<SearchableInfo> getSearchablesForWebSearch() {
+    public List<SearchableInfo> getSearchablesForWebSearch() {
         try {
-            return sService.getSearchablesForWebSearch();
+            return mService.getSearchablesForWebSearch();
         } catch (RemoteException e) {
             Log.e(TAG, "getSearchablesForWebSearch() failed: " + e);
             return null;
@@ -1910,9 +1893,9 @@
      *
      * @hide because SearchableInfo is not part of the API.
      */
-    public static SearchableInfo getDefaultSearchableForWebSearch() {
+    public SearchableInfo getDefaultSearchableForWebSearch() {
         try {
-            return sService.getDefaultSearchableForWebSearch();
+            return mService.getDefaultSearchableForWebSearch();
         } catch (RemoteException e) {
             Log.e(TAG, "getDefaultSearchableForWebSearch() failed: " + e);
             return null;
@@ -1926,9 +1909,9 @@
      *
      * @hide
      */
-    public static void setDefaultWebSearch(ComponentName component) {
+    public void setDefaultWebSearch(ComponentName component) {
         try {
-            sService.setDefaultWebSearch(component);
+            mService.setDefaultWebSearch(component);
         } catch (RemoteException e) {
             Log.e(TAG, "setDefaultWebSearch() failed: " + e);
         }
diff --git a/core/java/android/app/SuggestionsAdapter.java b/core/java/android/app/SuggestionsAdapter.java
index ed76f4e..0bdb10b 100644
--- a/core/java/android/app/SuggestionsAdapter.java
+++ b/core/java/android/app/SuggestionsAdapter.java
@@ -54,6 +54,7 @@
     private static final boolean DBG = false;
     private static final String LOG_TAG = "SuggestionsAdapter";
 
+    private SearchManager mSearchManager;
     private SearchDialog mSearchDialog;
     private SearchableInfo mSearchable;
     private Context mProviderContext;
@@ -92,6 +93,7 @@
                 com.android.internal.R.layout.search_dropdown_item_icons_2line,
                 null,   // no initial cursor
                 true);  // auto-requery
+        mSearchManager = (SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE);
         mSearchDialog = searchDialog;
         mSearchable = searchable;
 
@@ -142,7 +144,7 @@
             mSearchDialog.getWindow().getDecorView().post(mStartSpinnerRunnable);
         }
         try {
-            final Cursor cursor = SearchManager.getSuggestions(mContext, mSearchable, query);
+            final Cursor cursor = mSearchManager.getSuggestions(mSearchable, query);
             // trigger fill window so the spinner stays up until the results are copied over and
             // closer to being ready
             if (!mGlobalSearchMode) cursor.getCount();
diff --git a/tests/AndroidTests/src/com/android/unit_tests/SearchManagerTest.java b/tests/AndroidTests/src/com/android/unit_tests/SearchManagerTest.java
index f03a779..4c6da76 100644
--- a/tests/AndroidTests/src/com/android/unit_tests/SearchManagerTest.java
+++ b/tests/AndroidTests/src/com/android/unit_tests/SearchManagerTest.java
@@ -163,17 +163,19 @@
 
     @MediumTest
     public void testSearchables() {
+        SearchManager searchManager = (SearchManager)
+                mContext.getSystemService(Context.SEARCH_SERVICE);
         SearchableInfo si;
 
-        si = SearchManager.getSearchableInfo(SEARCHABLE_ACTIVITY, false);
+        si = searchManager.getSearchableInfo(SEARCHABLE_ACTIVITY, false);
         assertNotNull(si);
-        assertFalse(SearchManager.isDefaultSearchable(si));
-        si = SearchManager.getSearchableInfo(SEARCHABLE_ACTIVITY, true);
+        assertFalse(searchManager.isDefaultSearchable(si));
+        si = searchManager.getSearchableInfo(SEARCHABLE_ACTIVITY, true);
         assertNotNull(si);
-        assertTrue(SearchManager.isDefaultSearchable(si));
-        si = SearchManager.getSearchableInfo(null, true);
+        assertTrue(searchManager.isDefaultSearchable(si));
+        si = searchManager.getSearchableInfo(null, true);
         assertNotNull(si);
-        assertTrue(SearchManager.isDefaultSearchable(si));
+        assertTrue(searchManager.isDefaultSearchable(si));
     }
 
     /**