summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorJiuyu Sun <jiuyu@google.com>2017-01-20 22:58:21 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-01-20 22:58:25 +0000
commit417d30d88b7fef58a9b8765d712885cef2d3eb88 (patch)
treeabc312dedc85a3160afd958c1efc0e9a71971a55 /core/java/android
parent6ba5dccd50d098d8ae1c5fac8e83be7f61c70018 (diff)
parentb6d7695cf2e7cec5c7b24e1b09e1f7d8f1788cb7 (diff)
Merge "Change the default behavior when MCC/MNC changes."
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/content/pm/PackageParser.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 083e4cc6676b..2fdc527208c0 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -179,6 +179,13 @@ public class PackageParser {
private static final String TAG_PACKAGE = "package";
private static final String TAG_RESTRICT_UPDATE = "restrict-update";
+ /**
+ * Bit mask of all the valid bits that can be set in restartOnConfigChanges.
+ * @hide
+ */
+ private static final int RESTART_ON_CONFIG_CHANGES_MASK =
+ ActivityInfo.CONFIG_MCC | ActivityInfo.CONFIG_MNC;
+
// These are the tags supported by child packages
private static final Set<String> CHILD_PACKAGE_TAGS = new ArraySet<>();
static {
@@ -3855,7 +3862,9 @@ public class PackageParser {
a.info.maxRecents = sa.getInt(
R.styleable.AndroidManifestActivity_maxRecents,
ActivityManager.getDefaultAppRecentsLimitStatic());
- a.info.configChanges = sa.getInt(R.styleable.AndroidManifestActivity_configChanges, 0);
+ a.info.configChanges = getActivityConfigChanges(
+ sa.getInt(R.styleable.AndroidManifestActivity_configChanges, 0),
+ sa.getInt(R.styleable.AndroidManifestActivity_restartOnConfigChanges, 0));
a.info.softInputMode = sa.getInt(
R.styleable.AndroidManifestActivity_windowSoftInputMode, 0);
@@ -4083,6 +4092,17 @@ public class PackageParser {
}
}
+ /**
+ * @param configChanges The bit mask of configChanges fetched from AndroidManifest.xml.
+ * @param restartOnConfigChanges The bit mask restartOnConfigChanges fetched from
+ * AndroidManifest.xml.
+ * @hide Exposed for unit testing only.
+ */
+ @TestApi
+ public static int getActivityConfigChanges(int configChanges, int restartOnConfigChanges) {
+ return configChanges | ((~restartOnConfigChanges) & RESTART_ON_CONFIG_CHANGES_MASK);
+ }
+
private void parseLayout(Resources res, AttributeSet attrs, Activity a) {
TypedArray sw = res.obtainAttributes(attrs,
com.android.internal.R.styleable.AndroidManifestLayout);