summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2010-07-26 12:30:10 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-07-26 12:30:10 -0700
commit4cca89c0425a93dd842d85a56205c017a418e1c1 (patch)
tree4e3874b9ba1e018412dffde7a556f3e58c3a1f77 /services
parent48b9cbb046d7fc546e5e4c08f772ddb8ef528ed3 (diff)
parent3a2ff74fa4c3f014555ec64fccc16e1b9f6d0111 (diff)
downloadframeworks_base-4cca89c0425a93dd842d85a56205c017a418e1c1.zip
frameworks_base-4cca89c0425a93dd842d85a56205c017a418e1c1.tar.gz
frameworks_base-4cca89c0425a93dd842d85a56205c017a418e1c1.tar.bz2
am 3a2ff74f: am 46730fc7: Fix handling of application disabled state.
Merge commit '3a2ff74fa4c3f014555ec64fccc16e1b9f6d0111' * commit '3a2ff74fa4c3f014555ec64fccc16e1b9f6d0111': Fix handling of application disabled state.
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/PackageManagerService.java26
1 files changed, 19 insertions, 7 deletions
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java
index af2145e..01376eb 100644
--- a/services/java/com/android/server/PackageManagerService.java
+++ b/services/java/com/android/server/PackageManagerService.java
@@ -1495,6 +1495,7 @@ class PackageManagerService extends IPackageManager.Stub {
ps.pkg.applicationInfo.publicSourceDir = ps.resourcePathString;
ps.pkg.applicationInfo.sourceDir = ps.codePathString;
ps.pkg.applicationInfo.dataDir = getDataPathForPackage(ps.pkg).getPath();
+ ps.pkg.mSetEnabled = ps.enabled;
}
return generatePackageInfo(ps.pkg, flags);
}
@@ -6875,6 +6876,7 @@ class PackageManagerService extends IPackageManager.Stub {
return;
}
pkgSetting.enabled = newState;
+ pkgSetting.pkg.mSetEnabled = newState;
} else {
// We're dealing with a component level state change
switch (newState) {
@@ -8261,6 +8263,7 @@ class PackageManagerService extends IPackageManager.Stub {
private void insertPackageSettingLP(PackageSetting p, PackageParser.Package pkg) {
p.pkg = pkg;
+ pkg.mSetEnabled = p.enabled;
String codePath = pkg.applicationInfo.sourceDir;
String resourcePath = pkg.applicationInfo.publicSourceDir;
// Update code path if needed
@@ -9486,6 +9489,9 @@ class PackageManagerService extends IPackageManager.Stub {
}
boolean isEnabledLP(ComponentInfo componentInfo, int flags) {
+ if ((flags&PackageManager.GET_DISABLED_COMPONENTS) != 0) {
+ return true;
+ }
final PackageSetting packageSettings = mPackages.get(componentInfo.packageName);
if (Config.LOGV) {
Log.v(TAG, "isEnabledLock - packageName = " + componentInfo.packageName
@@ -9501,14 +9507,20 @@ class PackageManagerService extends IPackageManager.Stub {
Debug.waitForDebugger();
Log.i(TAG, "We will crash!");
}
+ return false;
+ }
+ if (packageSettings.enabled == COMPONENT_ENABLED_STATE_DISABLED
+ || (packageSettings.pkg != null && !packageSettings.pkg.applicationInfo.enabled
+ && packageSettings.enabled == COMPONENT_ENABLED_STATE_DEFAULT)) {
+ return false;
+ }
+ if (packageSettings.enabledComponents.contains(componentInfo.name)) {
+ return true;
+ }
+ if (packageSettings.disabledComponents.contains(componentInfo.name)) {
+ return false;
}
- return ((flags&PackageManager.GET_DISABLED_COMPONENTS) != 0)
- || ((componentInfo.enabled
- && ((packageSettings.enabled == COMPONENT_ENABLED_STATE_ENABLED)
- || (componentInfo.applicationInfo.enabled
- && packageSettings.enabled != COMPONENT_ENABLED_STATE_DISABLED))
- && !packageSettings.disabledComponents.contains(componentInfo.name))
- || packageSettings.enabledComponents.contains(componentInfo.name));
+ return componentInfo.enabled;
}
}