summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSuchi Amalapurapu <asuchitra@google.com>2009-10-14 12:11:48 -0700
committerSuchi Amalapurapu <asuchitra@google.com>2009-10-15 20:20:00 -0700
commitb897cff1ef1981757d8e26e24d1fc77893a34e40 (patch)
treec6f3f5998efb641c4f44a025433f14ac2783b479
parent37a13208c93bbe00cf233baf1ebcd6e081972a27 (diff)
downloadframeworks_base-b897cff1ef1981757d8e26e24d1fc77893a34e40.zip
frameworks_base-b897cff1ef1981757d8e26e24d1fc77893a34e40.tar.gz
frameworks_base-b897cff1ef1981757d8e26e24d1fc77893a34e40.tar.bz2
do not merge
Return valid package info for packages that have been uninstalled with an option to retain data and resources using the flag GET_UNINSTALLED_PACKAGES These packages do not have a package setting. just check the flag and return the required info from PackageParser.generatePackageInfo
-rw-r--r--services/java/com/android/server/PackageManagerService.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java
index 6289d4f..66e7ecd 100644
--- a/services/java/com/android/server/PackageManagerService.java
+++ b/services/java/com/android/server/PackageManagerService.java
@@ -872,6 +872,10 @@ class PackageManagerService extends IPackageManager.Stub {
}
PackageInfo generatePackageInfo(PackageParser.Package p, int flags) {
+ if ((flags & PackageManager.GET_UNINSTALLED_PACKAGES) != 0) {
+ // The package has been uninstalled but has retained data and resources.
+ return PackageParser.generatePackageInfo(p, null, flags);
+ }
final PackageSetting ps = (PackageSetting)p.mExtras;
if (ps == null) {
return null;