summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Benjamin Franz <bfranz@google.com> 2015-03-11 15:43:06 +0000
committer Benjamin Franz <bfranz@google.com> 2015-03-13 09:44:44 +0000
commit68cc42009e656b785420c531e39c131bbe6729cf (patch)
tree95c34ba1e73d2d43f3dce7da9eda2f6621f7af01
parentc6ee744a90a4a84df93b6631ca7df8736ef320e1 (diff)
Allow DO to set Settings.Global.STAY_ON_WHILE_PLUGGED_IN
Bug: 19704419 Change-Id: I3fc970eae8ef947775b6b565916bb245dea1b43b
-rw-r--r--core/java/android/app/admin/DevicePolicyManager.java3
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java9
2 files changed, 12 insertions, 0 deletions
diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java
index e23ffe412d4a..245db06d164f 100644
--- a/core/java/android/app/admin/DevicePolicyManager.java
+++ b/core/java/android/app/admin/DevicePolicyManager.java
@@ -3562,6 +3562,9 @@ public class DevicePolicyManager {
* Changing this setting has not effect as of {@link android.os.Build.VERSION_CODES#MNC}. Use
* {@link android.net.wifi.WifiManager#setWifiEnabled(boolean)} instead.</li>
* <li>{@link Settings.Global#WIFI_SLEEP_POLICY}</li>
+ * <li>{@link Settings.Global#STAY_ON_WHILE_PLUGGED_IN}
+ * This setting is only available from {@link android.os.Build.VERSION_CODES#MNC} onwards
+ * and can only be set if {@link #setMaximumTimeToLock} is not used to set a timeout.</li>
* </ul>
*
* @param admin Which {@link DeviceAdminReceiver} this request is associated with.
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 00d7971ce959..365a67a87a74 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -211,6 +211,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
GLOBAL_SETTINGS_WHITELIST.add(Settings.Global.NETWORK_PREFERENCE);
GLOBAL_SETTINGS_WHITELIST.add(Settings.Global.USB_MASS_STORAGE_ENABLED);
GLOBAL_SETTINGS_WHITELIST.add(Settings.Global.WIFI_SLEEP_POLICY);
+ GLOBAL_SETTINGS_WHITELIST.add(Settings.Global.STAY_ON_WHILE_PLUGGED_IN);
}
final Context mContext;
@@ -5437,6 +5438,14 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
}
}
+ if (Settings.Global.STAY_ON_WHILE_PLUGGED_IN.equals(setting)) {
+ // ignore if it contradicts an existing policy
+ long timeMs = getMaximumTimeToLock(who, UserHandle.getCallingUserId());
+ if (timeMs > 0 && timeMs < Integer.MAX_VALUE) {
+ return;
+ }
+ }
+
long id = Binder.clearCallingIdentity();
try {
Settings.Global.putString(contentResolver, setting, value);