diff options
author | Dianne Hackborn <hackbod@google.com> | 2009-07-13 13:07:51 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2009-07-14 11:37:11 -0700 |
commit | b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0 (patch) | |
tree | 2fcae8f89195ef4b162627892aeca97f06d42ef7 /core/java/android/server/search/SearchManagerService.java | |
parent | 3660c09500a4d01eb6a733b5f0b15545855f8fe8 (diff) | |
download | frameworks_base-b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0.zip frameworks_base-b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0.tar.gz frameworks_base-b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0.tar.bz2 |
Add reporting of activity movement for search manager.
This adds a new API with the activity manager to find out about movement between
activities. For my sanity, the old IActivityWatcher is now renamed to
IActivityController, and the new activity movement interface is named
IActivityWatcher.
This changes the search manager itself to use the new API to manage its state.
Note that there are still problems when going back to the search dialog after
it was hidden -- the suggestions window no longer appears until you explicitly
dismiss and re-show it.
Diffstat (limited to 'core/java/android/server/search/SearchManagerService.java')
-rw-r--r-- | core/java/android/server/search/SearchManagerService.java | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/core/java/android/server/search/SearchManagerService.java b/core/java/android/server/search/SearchManagerService.java index f9c0f1a..7629912 100644 --- a/core/java/android/server/search/SearchManagerService.java +++ b/core/java/android/server/search/SearchManagerService.java @@ -16,6 +16,8 @@ package android.server.search; +import android.app.ActivityManagerNative; +import android.app.IActivityWatcher; import android.app.ISearchManager; import android.app.ISearchManagerCallback; import android.app.SearchManager; @@ -26,6 +28,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.os.Handler; +import android.os.RemoteException; import android.util.Log; import java.util.List; @@ -71,8 +74,11 @@ public class SearchManagerService extends ISearchManager.Stub { * Initializes the list of searchable activities and the search UI. */ void initialize() { - ensureSearchablesCreated(); - ensureSearchDialogCreated(); + try { + ActivityManagerNative.getDefault().registerActivityWatcher( + mActivityWatcher); + } catch (RemoteException e) { + } } private synchronized void ensureSearchablesCreated() { @@ -126,6 +132,14 @@ public class SearchManagerService extends ISearchManager.Stub { } }; + private IActivityWatcher.Stub mActivityWatcher = new IActivityWatcher.Stub() { + public void activityResuming(int activityId) throws RemoteException { + if (DBG) Log.i("foo", "********************** resuming: " + activityId); + if (mSearchDialog == null) return; + mSearchDialog.activityResuming(activityId); + } + }; + /** * Informs all listeners that the list of searchables has been updated. */ @@ -206,13 +220,15 @@ public class SearchManagerService extends ISearchManager.Stub { ComponentName launchActivity, Bundle appSearchData, boolean globalSearch, - ISearchManagerCallback searchManagerCallback) { + ISearchManagerCallback searchManagerCallback, + int ident) { getSearchDialog().startSearch(initialQuery, selectInitialQuery, launchActivity, appSearchData, globalSearch, - searchManagerCallback); + searchManagerCallback, + ident); } /** |