Loading api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -1054,6 +1054,7 @@ package android { field public static final int resizeable = 16843405; // 0x101028d field public static final int resizeableActivity = 16844022; // 0x10104f6 field public static final int resource = 16842789; // 0x1010025 field public static final int restartOnConfigChanges = 16844105; // 0x1010549 field public static final int restoreAnyVersion = 16843450; // 0x10102ba field public static final deprecated int restoreNeedsApplication = 16843421; // 0x101029d field public static final int restrictedAccountType = 16843733; // 0x10103d5 api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -1163,6 +1163,7 @@ package android { field public static final int resizeable = 16843405; // 0x101028d field public static final int resizeableActivity = 16844022; // 0x10104f6 field public static final int resource = 16842789; // 0x1010025 field public static final int restartOnConfigChanges = 16844105; // 0x1010549 field public static final int restoreAnyVersion = 16843450; // 0x10102ba field public static final deprecated int restoreNeedsApplication = 16843421; // 0x101029d field public static final int restrictedAccountType = 16843733; // 0x10103d5 api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -1054,6 +1054,7 @@ package android { field public static final int resizeable = 16843405; // 0x101028d field public static final int resizeableActivity = 16844022; // 0x10104f6 field public static final int resource = 16842789; // 0x1010025 field public static final int restartOnConfigChanges = 16844105; // 0x1010549 field public static final int restoreAnyVersion = 16843450; // 0x10102ba field public static final deprecated int restoreNeedsApplication = 16843421; // 0x101029d field public static final int restrictedAccountType = 16843733; // 0x10103d5 core/java/android/content/pm/PackageParser.java +21 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -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); Loading Loading @@ -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); Loading core/res/res/values/attrs_manifest.xml +24 −2 Original line number Diff line number Diff line Loading @@ -776,6 +776,21 @@ <enum name="locked" value="14" /> </attr> <!-- Specify the configuration changes that trigger the system to restart the current activity if any of these configuration changes happen in the system. The valid configuration changes include mcc and mnc which are the same with those in configChanges. By default from Android O, we don't restart the activity even the app doesn't specify mcc or mnc in configChanges. If the app wants to restart, specify them in restartOnConfigChanges. --> <attr name="restartOnConfigChanges"> <!-- The IMSI MCC has changed, that is a SIM has been detected and updated the Mobile Country Code. --> <flag name="mcc" value="0x0001" /> <!-- The IMSI MNC has changed, that is a SIM has been detected and updated the Mobile Network Code. --> <flag name="mnc" value="0x0002" /> </attr> <!-- Specify one or more configuration changes that the activity will handle itself. If not specified, the activity will be restarted if any of these configuration changes happen in the system. Otherwise, Loading @@ -793,10 +808,16 @@ include/utils/ResourceTypes.h. --> <attr name="configChanges"> <!-- The IMSI MCC has changed, that is a SIM has been detected and updated the Mobile Country Code. --> updated the Mobile Country Code. By default from Android O, we don't restart the activity even the app doesn't specify mcc in configChanges. If the app wants to restart, specify mcc in restartOnConfigChanges. --> <flag name="mcc" value="0x0001" /> <!-- The IMSI MNC has changed, that is a SIM has been detected and updated the Mobile Network Code. --> updated the Mobile Network Code. By default from Android O, we don't restart the activity even the app doesn't specify mnc in configChanges. If the app wants to restart, specify mnc in restartOnConfigChanges. --> <flag name="mnc" value="0x0002" /> <!-- The locale has changed, that is the user has selected a new language that text should be displayed in. --> Loading Loading @@ -1920,6 +1941,7 @@ <attr name="launchMode" /> <attr name="screenOrientation" /> <attr name="configChanges" /> <attr name="restartOnConfigChanges" /> <attr name="permission" /> <attr name="multiprocess" /> <attr name="process" /> Loading Loading
api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -1054,6 +1054,7 @@ package android { field public static final int resizeable = 16843405; // 0x101028d field public static final int resizeableActivity = 16844022; // 0x10104f6 field public static final int resource = 16842789; // 0x1010025 field public static final int restartOnConfigChanges = 16844105; // 0x1010549 field public static final int restoreAnyVersion = 16843450; // 0x10102ba field public static final deprecated int restoreNeedsApplication = 16843421; // 0x101029d field public static final int restrictedAccountType = 16843733; // 0x10103d5
api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -1163,6 +1163,7 @@ package android { field public static final int resizeable = 16843405; // 0x101028d field public static final int resizeableActivity = 16844022; // 0x10104f6 field public static final int resource = 16842789; // 0x1010025 field public static final int restartOnConfigChanges = 16844105; // 0x1010549 field public static final int restoreAnyVersion = 16843450; // 0x10102ba field public static final deprecated int restoreNeedsApplication = 16843421; // 0x101029d field public static final int restrictedAccountType = 16843733; // 0x10103d5
api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -1054,6 +1054,7 @@ package android { field public static final int resizeable = 16843405; // 0x101028d field public static final int resizeableActivity = 16844022; // 0x10104f6 field public static final int resource = 16842789; // 0x1010025 field public static final int restartOnConfigChanges = 16844105; // 0x1010549 field public static final int restoreAnyVersion = 16843450; // 0x10102ba field public static final deprecated int restoreNeedsApplication = 16843421; // 0x101029d field public static final int restrictedAccountType = 16843733; // 0x10103d5
core/java/android/content/pm/PackageParser.java +21 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -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); Loading Loading @@ -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); Loading
core/res/res/values/attrs_manifest.xml +24 −2 Original line number Diff line number Diff line Loading @@ -776,6 +776,21 @@ <enum name="locked" value="14" /> </attr> <!-- Specify the configuration changes that trigger the system to restart the current activity if any of these configuration changes happen in the system. The valid configuration changes include mcc and mnc which are the same with those in configChanges. By default from Android O, we don't restart the activity even the app doesn't specify mcc or mnc in configChanges. If the app wants to restart, specify them in restartOnConfigChanges. --> <attr name="restartOnConfigChanges"> <!-- The IMSI MCC has changed, that is a SIM has been detected and updated the Mobile Country Code. --> <flag name="mcc" value="0x0001" /> <!-- The IMSI MNC has changed, that is a SIM has been detected and updated the Mobile Network Code. --> <flag name="mnc" value="0x0002" /> </attr> <!-- Specify one or more configuration changes that the activity will handle itself. If not specified, the activity will be restarted if any of these configuration changes happen in the system. Otherwise, Loading @@ -793,10 +808,16 @@ include/utils/ResourceTypes.h. --> <attr name="configChanges"> <!-- The IMSI MCC has changed, that is a SIM has been detected and updated the Mobile Country Code. --> updated the Mobile Country Code. By default from Android O, we don't restart the activity even the app doesn't specify mcc in configChanges. If the app wants to restart, specify mcc in restartOnConfigChanges. --> <flag name="mcc" value="0x0001" /> <!-- The IMSI MNC has changed, that is a SIM has been detected and updated the Mobile Network Code. --> updated the Mobile Network Code. By default from Android O, we don't restart the activity even the app doesn't specify mnc in configChanges. If the app wants to restart, specify mnc in restartOnConfigChanges. --> <flag name="mnc" value="0x0002" /> <!-- The locale has changed, that is the user has selected a new language that text should be displayed in. --> Loading Loading @@ -1920,6 +1941,7 @@ <attr name="launchMode" /> <attr name="screenOrientation" /> <attr name="configChanges" /> <attr name="restartOnConfigChanges" /> <attr name="permission" /> <attr name="multiprocess" /> <attr name="process" /> Loading