am 6f7e10ca: Merge "Make it easier to figure out whether an app can go on sd card." into gingerbread

Merge commit '6f7e10ca0aa869c4b3ed4c37e56cf9d471fd9283' into gingerbread-plus-aosp

* commit '6f7e10ca0aa869c4b3ed4c37e56cf9d471fd9283':
  Make it easier to figure out whether an app can go on sd card.
This commit is contained in:
Dianne Hackborn
2010-10-04 23:04:53 -07:00
committed by Android Git Automerger
3 changed files with 19 additions and 9 deletions

View File

@@ -297,12 +297,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 &lt;application&gt; 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
@@ -381,6 +381,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) {
@@ -457,6 +463,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;
}
@@ -489,6 +496,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);
@@ -521,6 +529,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();

View File

@@ -787,7 +787,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;
@@ -1600,7 +1601,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.
@@ -1897,7 +1898,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) {
@@ -2185,7 +2186,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) {
@@ -2425,7 +2426,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) {

View File

@@ -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)) {