diff options
-rw-r--r-- | core/java/android/content/pm/ApplicationInfo.java | 13 | ||||
-rw-r--r-- | core/java/android/content/pm/PackageParser.java | 11 | ||||
-rw-r--r-- | services/java/com/android/server/am/ActivityStack.java | 4 |
3 files changed, 19 insertions, 9 deletions
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java index 38d897e..ba74d9b 100644 --- a/core/java/android/content/pm/ApplicationInfo.java +++ b/core/java/android/content/pm/ApplicationInfo.java @@ -296,12 +296,12 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { * the normal application lifecycle. * * <p>Comes from the - * {@link android.R.styleable#AndroidManifestApplication_heavyWeight android:heavyWeight} + * {@link android.R.styleable#AndroidManifestApplication_cantSaveState android:cantSaveState} * attribute of the <application> tag. * * {@hide} */ - public static final int CANT_SAVE_STATE = 1<<27; + public static final int FLAG_CANT_SAVE_STATE = 1<<27; /** * Flags associated with the application. Any combination of @@ -380,6 +380,12 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { */ public boolean enabled = true; + /** + * For convenient access to package's install location. + * @hide + */ + public int installLocation = PackageInfo.INSTALL_LOCATION_UNSPECIFIED; + public void dump(Printer pw, String prefix) { super.dumpFront(pw, prefix); if (className != null) { @@ -456,6 +462,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { uid = orig.uid; targetSdkVersion = orig.targetSdkVersion; enabled = orig.enabled; + installLocation = orig.installLocation; manageSpaceActivityName = orig.manageSpaceActivityName; descriptionRes = orig.descriptionRes; } @@ -488,6 +495,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { dest.writeInt(uid); dest.writeInt(targetSdkVersion); dest.writeInt(enabled ? 1 : 0); + dest.writeInt(installLocation); dest.writeString(manageSpaceActivityName); dest.writeString(backupAgentName); dest.writeInt(descriptionRes); @@ -520,6 +528,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { uid = source.readInt(); targetSdkVersion = source.readInt(); enabled = source.readInt() != 0; + installLocation = source.readInt(); manageSpaceActivityName = source.readString(); backupAgentName = source.readString(); descriptionRes = source.readInt(); diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index eaf1e33..6cbc9b5 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -783,7 +783,8 @@ public class PackageParser { pkg.installLocation = sa.getInteger( com.android.internal.R.styleable.AndroidManifest_installLocation, PARSE_DEFAULT_INSTALL_LOCATION); - + pkg.applicationInfo.installLocation = pkg.installLocation; + // Resource boolean are -1, so 1 means we don't know the value. int supportsSmallScreens = 1; int supportsNormalScreens = 1; @@ -1612,7 +1613,7 @@ public class PackageParser { if (sa.getBoolean( com.android.internal.R.styleable.AndroidManifestApplication_cantSaveState, false)) { - ai.flags |= ApplicationInfo.CANT_SAVE_STATE; + ai.flags |= ApplicationInfo.FLAG_CANT_SAVE_STATE; // A heavy-weight application can not be in a custom process. // We can do direct compare because we intern all strings. @@ -1929,7 +1930,7 @@ public class PackageParser { sa.recycle(); - if (receiver && (owner.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) { + if (receiver && (owner.applicationInfo.flags&ApplicationInfo.FLAG_CANT_SAVE_STATE) != 0) { // A heavy-weight application can not have receives in its main process // We can do direct compare because we intern all strings. if (a.info.processName == owner.packageName) { @@ -2219,7 +2220,7 @@ public class PackageParser { sa.recycle(); - if ((owner.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) { + if ((owner.applicationInfo.flags&ApplicationInfo.FLAG_CANT_SAVE_STATE) != 0) { // A heavy-weight application can not have providers in its main process // We can do direct compare because we intern all strings. if (p.info.processName == owner.packageName) { @@ -2460,7 +2461,7 @@ public class PackageParser { sa.recycle(); - if ((owner.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) { + if ((owner.applicationInfo.flags&ApplicationInfo.FLAG_CANT_SAVE_STATE) != 0) { // A heavy-weight application can not have services in its main process // We can do direct compare because we intern all strings. if (s.info.processName == owner.packageName) { diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java index 30395c0..9ed1242 100644 --- a/services/java/com/android/server/am/ActivityStack.java +++ b/services/java/com/android/server/am/ActivityStack.java @@ -515,7 +515,7 @@ public class ActivityStack { r.info, r.icicle, results, newIntents, !andResume, mService.isNextTransitionForward()); - if ((app.info.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) { + if ((app.info.flags&ApplicationInfo.FLAG_CANT_SAVE_STATE) != 0) { // This may be a heavy-weight process! Note that the package // manager will ensure that only activity can run in the main // process of the .apk, which is the only thing that will be @@ -2442,7 +2442,7 @@ public class ActivityStack { final long origId = Binder.clearCallingIdentity(); if (mMainStack && aInfo != null && - (aInfo.applicationInfo.flags&ApplicationInfo.CANT_SAVE_STATE) != 0) { + (aInfo.applicationInfo.flags&ApplicationInfo.FLAG_CANT_SAVE_STATE) != 0) { // This may be a heavy-weight process! Check to see if we already // have another, different heavy-weight process running. if (aInfo.processName.equals(aInfo.applicationInfo.packageName)) { |