summaryrefslogtreecommitdiffstats
path: root/core/java/android/server
diff options
context:
space:
mode:
authorSuchi Amalapurapu <asuchitra@google.com>2010-01-28 09:57:30 -0800
committerSuchi Amalapurapu <asuchitra@google.com>2010-02-02 18:33:29 -0800
commit08675a3376819a82aa5ab344bc3e7b1635c30b05 (patch)
tree9a16e6be377fe367639ef9e02c5421e0ce9b9044 /core/java/android/server
parent57405b93f194851eb2187a8ed3362be18a483a17 (diff)
downloadframeworks_base-08675a3376819a82aa5ab344bc3e7b1635c30b05.zip
frameworks_base-08675a3376819a82aa5ab344bc3e7b1635c30b05.tar.gz
frameworks_base-08675a3376819a82aa5ab344bc3e7b1635c30b05.tar.bz2
Apps on sdcard: Add new broadcasts
Add new broadcasts ACTION_MEDIA_RESOURCES_AVAILABLE and ACTION_MEDIA_RESOURCES_UNAVAILABLE that get broadcast by PackageManagerService when sdcard gets mounted/unmounted by MountService so that packages on sdcard get recognized by various system services as being installed/available or removed/unavailable by the system. The broadcasts are sent before the actual package cleanup which includes mounting/unmounting the packages and we force a gc right after so that any lingering file references to resources on sdcard get released.
Diffstat (limited to 'core/java/android/server')
-rw-r--r--core/java/android/server/search/SearchManagerService.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/core/java/android/server/search/SearchManagerService.java b/core/java/android/server/search/SearchManagerService.java
index 9953b56..324fbaa 100644
--- a/core/java/android/server/search/SearchManagerService.java
+++ b/core/java/android/server/search/SearchManagerService.java
@@ -73,6 +73,11 @@ public class SearchManagerService extends ISearchManager.Stub {
packageFilter.addAction(Intent.ACTION_PACKAGE_CHANGED);
packageFilter.addDataScheme("package");
mContext.registerReceiver(mPackageChangedReceiver, packageFilter);
+ // Register for events related to sdcard installation.
+ IntentFilter sdFilter = new IntentFilter();
+ sdFilter.addAction(Intent.ACTION_MEDIA_RESOURCES_AVAILABLE);
+ sdFilter.addAction(Intent.ACTION_MEDIA_RESOURCES_UNAVAILABLE);
+ mContext.registerReceiver(mPackageChangedReceiver, sdFilter);
}
private synchronized Searchables getSearchables() {
@@ -90,7 +95,9 @@ public class SearchManagerService extends ISearchManager.Stub {
if (Intent.ACTION_PACKAGE_ADDED.equals(action) ||
Intent.ACTION_PACKAGE_REMOVED.equals(action) ||
- Intent.ACTION_PACKAGE_CHANGED.equals(action)) {
+ Intent.ACTION_PACKAGE_CHANGED.equals(action) ||
+ Intent.ACTION_MEDIA_RESOURCES_AVAILABLE.equals(action) ||
+ Intent.ACTION_MEDIA_RESOURCES_UNAVAILABLE.equals(action)) {
if (DBG) Log.d(TAG, "Got " + action);
// Update list of searchable activities
getSearchables().buildSearchableList();