Hide heavy-weight API.
And give it a better name, for when it is later un-hidden.
Change-Id: Iae0d3054d44f873b9f953bc41d175a47802a185e
diff --git a/api/current.xml b/api/current.xml
index 72487eb..62ab948 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -4508,17 +4508,6 @@
visibility="public"
>
</field>
-<field name="heavyWeight"
- type="int"
- transient="false"
- volatile="false"
- value="16843456"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
<field name="height"
type="int"
transient="false"
@@ -19543,17 +19532,6 @@
visibility="public"
>
</method>
-<method name="isImmersive"
- return="boolean"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
<method name="isTaskRoot"
return="boolean"
abstract="false"
@@ -20507,19 +20485,6 @@
<parameter name="uri" type="android.net.Uri">
</parameter>
</method>
-<method name="setImmersive"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="i" type="boolean">
-</parameter>
-</method>
<method name="setIntent"
return="void"
abstract="false"
@@ -46505,17 +46470,6 @@
visibility="public"
>
</field>
-<field name="FLAG_HEAVY_WEIGHT"
- type="int"
- transient="false"
- volatile="false"
- value="1048576"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
<field name="FLAG_KILL_AFTER_RESTORE"
type="int"
transient="false"
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java
index ed5af91..a3a8f09 100644
--- a/core/java/android/app/Activity.java
+++ b/core/java/android/app/Activity.java
@@ -3748,6 +3748,7 @@
* {@link #setImmersive}.
*
* @see android.content.pm.ActivityInfo#FLAG_IMMERSIVE
+ * @hide
*/
public boolean isImmersive() {
try {
@@ -3770,6 +3771,7 @@
*
* @see #isImmersive
* @see android.content.pm.ActivityInfo#FLAG_IMMERSIVE
+ * @hide
*/
public void setImmersive(boolean i) {
try {
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java
index 244d126..c812f36 100644
--- a/core/java/android/content/pm/ApplicationInfo.java
+++ b/core/java/android/content/pm/ApplicationInfo.java
@@ -273,17 +273,6 @@
public static final int FLAG_SUPPORTS_XLARGE_SCREENS = 1<<19;
/**
- * Value for {@link #flags}: set to <code>true</code> if the application
- * has reported that it is heavy-weight, and thus can not participate in
- * the normal application lifecycle.
- *
- * <p>Comes from the
- * {@link android.R.styleable#AndroidManifestApplication_heavyWeight android:heavyWeight}
- * attribute of the <application> tag.
- */
- public static final int FLAG_HEAVY_WEIGHT = 1<<20;
-
- /**
* Value for {@link #flags}: this is true if the application has set
* its android:neverEncrypt to true, false otherwise. It is used to specify
* that this package specifically "opts-out" of a secured file system solution,
@@ -310,6 +299,19 @@
public static final int FLAG_NATIVE_DEBUGGABLE = 1<<28;
/**
+ * Value for {@link #flags}: set to <code>true</code> if the application
+ * has reported that it is heavy-weight, and thus can not participate in
+ * the normal application lifecycle.
+ *
+ * <p>Comes from the
+ * {@link android.R.styleable#AndroidManifestApplication_heavyWeight android:heavyWeight}
+ * attribute of the <application> tag.
+ *
+ * {@hide}
+ */
+ public static final int CANT_SAVE_STATE = 1<<27;
+
+ /**
* Flags associated with the application. Any combination of
* {@link #FLAG_SYSTEM}, {@link #FLAG_DEBUGGABLE}, {@link #FLAG_HAS_CODE},
* {@link #FLAG_PERSISTENT}, {@link #FLAG_FACTORY_TEST}, and
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 47e668d..2a39dc0 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -1601,15 +1601,17 @@
ai.enabled = sa.getBoolean(
com.android.internal.R.styleable.AndroidManifestApplication_enabled, true);
- if (sa.getBoolean(
- com.android.internal.R.styleable.AndroidManifestApplication_heavyWeight,
- false)) {
- ai.flags |= ApplicationInfo.FLAG_HEAVY_WEIGHT;
-
- // A heavy-weight application can not be in a custom process.
- // We can do direct compare because we intern all strings.
- if (ai.processName != null && ai.processName != ai.packageName) {
- outError[0] = "Heavy-weight applications can not use custom processes";
+ if (false) {
+ if (sa.getBoolean(
+ com.android.internal.R.styleable.AndroidManifestApplication_cantSaveState,
+ false)) {
+ ai.flags |= ApplicationInfo.CANT_SAVE_STATE;
+
+ // A heavy-weight application can not be in a custom process.
+ // We can do direct compare because we intern all strings.
+ if (ai.processName != null && ai.processName != ai.packageName) {
+ outError[0] = "cantSaveState applications can not use custom processes";
+ }
}
}
}
@@ -1907,7 +1909,7 @@
sa.recycle();
- if (receiver && (owner.applicationInfo.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) {
+ if (receiver && (owner.applicationInfo.flags&ApplicationInfo.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) {
@@ -2197,7 +2199,7 @@
sa.recycle();
- if ((owner.applicationInfo.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) {
+ if ((owner.applicationInfo.flags&ApplicationInfo.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) {
@@ -2438,7 +2440,7 @@
sa.recycle();
- if ((owner.applicationInfo.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) {
+ if ((owner.applicationInfo.flags&ApplicationInfo.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/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index f18d14e..fb49120 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -744,15 +744,17 @@
<attr name="restoreNeedsApplication" />
<attr name="restoreAnyVersion" />
<attr name="neverEncrypt" />
- <!-- Declare that this is a heavy-weight application. This kind of
- application is not able to save and restore its state on demand,
- so can not participate in the normal activity lifecycle. It will
+ <!-- Declare that this applicationn can't participate in the normal
+ state save/restore mechanism. Since it is not able to save and
+ restore its state on demand,
+ it can not participate in the normal activity lifecycle. It will
not be killed while in the background; the user must explicitly
quit it. Only one such app can be running at a time; if the user
- tries to launch a second heavy-weight app, they will be prompted
- to quit the first before doing so. While a heavy-weight
- application is running, the user will be informed of this. -->
- <attr name="heavyWeight" format="boolean" />
+ tries to launch a second such app, they will be prompted
+ to quit the first before doing so. While the
+ application is running, the user will be informed of this.
+ @hide -->
+ <attr name="cantSaveState" format="boolean" />
</declare-styleable>
<!-- The <code>permission</code> tag declares a security permission that can be
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 1df424b..5b7e88f 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -1250,7 +1250,7 @@
<public type="attr" name="logo" id="0x010102be" />
<public type="attr" name="xlargeScreens" id="0x010102bf" />
- <public type="attr" name="heavyWeight" id="0x010102c0" />
+ <public type="attr" name="cantSaveState" id="0x010102c0" />
<public type="attr" name="immersive" id="0x010102c1" />
<public-padding type="attr" name="kraken_resource_pad" end="0x01010300" />
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java
index a99b48c..c21a221 100644
--- a/services/java/com/android/server/am/ActivityStack.java
+++ b/services/java/com/android/server/am/ActivityStack.java
@@ -504,7 +504,7 @@
r.info, r.icicle, results, newIntents, !andResume,
mService.isNextTransitionForward());
- if ((app.info.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) {
+ if ((app.info.flags&ApplicationInfo.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
@@ -2404,7 +2404,7 @@
final long origId = Binder.clearCallingIdentity();
if (mMainStack && aInfo != null &&
- (aInfo.applicationInfo.flags&ApplicationInfo.FLAG_HEAVY_WEIGHT) != 0) {
+ (aInfo.applicationInfo.flags&ApplicationInfo.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)) {