From 81ad972f39a12ff0aa8351b6a43727ffb73c4685 Mon Sep 17 00:00:00 2001 From: Robin Lee Date: Fri, 19 Jan 2018 16:34:31 +0100 Subject: [PATCH] Feature flag for stopping restricted profiles Defaults to true by default. Some devices may override this to force the restricted profile to stop when not in use to save all the memory it consumes where that is an issue. There is no framework / first-party code setting it, but since this is checked every time a user switches into the profile rolling it out should be relatively straightfoward. Bug: 71626497 Test: make droid Change-Id: I7a718c4fdd2d80131df083908129b715d94e824e --- core/java/android/provider/Settings.java | 12 ++++++++++++ core/res/res/values/config.xml | 2 ++ core/res/res/values/symbols.xml | 2 ++ .../src/android/provider/SettingsBackupTest.java | 1 + 4 files changed, 17 insertions(+) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 2440b489f4162..1f0d683192d5c 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -10519,6 +10519,18 @@ public final class Settings { */ public static final String NETWORK_WATCHLIST_ENABLED = "network_watchlist_enabled"; + /** + * Flag to keep background restricted profiles running after exiting. If disabled, + * the restricted profile can be put into stopped state as soon as the user leaves it. + * Type: int (0 for false, 1 for true) + * + * Overridden by the system based on device information. If null, the value specified + * by {@code config_keepRestrictedProfilesInBackground} is used. + * + * @hide + */ + public static final String KEEP_PROFILE_IN_BACKGROUND = "keep_profile_in_background"; + /** * Get the key that retrieves a bluetooth headset's priority. * @hide diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 38f890a1e95eb..ae0a11889121e 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -3269,4 +3269,6 @@ android.ext.services true + + true diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index e8ab0be78b365..1ab33ba7f2a94 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -3241,4 +3241,6 @@ + + diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java index 733f7a107fa87..0083b017033bc 100644 --- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java +++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java @@ -245,6 +245,7 @@ public class SettingsBackupTest { Settings.Global.INTENT_FIREWALL_UPDATE_CONTENT_URL, Settings.Global.INTENT_FIREWALL_UPDATE_METADATA_URL, Settings.Global.JOB_SCHEDULER_CONSTANTS, + Settings.Global.KEEP_PROFILE_IN_BACKGROUND, Settings.Global.LANG_ID_UPDATE_CONTENT_URL, Settings.Global.LANG_ID_UPDATE_METADATA_URL, Settings.Global.LOCATION_BACKGROUND_THROTTLE_INTERVAL_MS,