Fix work profile screen timeout policy

Settings screen should apply both primary and managed maximum
timeout policy, even separate profile challenge is enabled.

Bug: 27493348
Change-Id: I09e815d6c6ae6ecd554316cfac82daf0ad0b0cdf
This commit is contained in:
Ricky Wai
2016-03-18 16:26:35 +00:00
parent 751de37275
commit 36cce830b9
3 changed files with 6 additions and 3 deletions

View File

@@ -566,7 +566,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
return; return;
} }
if (mDpm.getMaximumTimeToLock(null) > 0) { if (mDpm.getMaximumTimeToLockForUserAndProfiles(UserHandle.myUserId()) > 0) {
// A DeviceAdmin has specified a maximum time until the device // A DeviceAdmin has specified a maximum time until the device
// will lock... in this case we can't allow the user to turn // will lock... in this case we can't allow the user to turn
// on "stay awake when plugged in" because that would defeat the // on "stay awake when plugged in" because that would defeat the

View File

@@ -30,6 +30,7 @@ import android.hardware.SensorManager;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.os.UserHandle;
import android.provider.SearchIndexableResource; import android.provider.SearchIndexableResource;
import android.provider.Settings; import android.provider.Settings;
import android.support.v14.preference.SwitchPreference; import android.support.v14.preference.SwitchPreference;
@@ -302,7 +303,8 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
if (dpm != null) { if (dpm != null) {
final EnforcedAdmin admin = RestrictedLockUtils.checkIfMaximumTimeToLockIsSet( final EnforcedAdmin admin = RestrictedLockUtils.checkIfMaximumTimeToLockIsSet(
getActivity()); getActivity());
final long maxTimeout = dpm.getMaximumTimeToLock(null); final long maxTimeout = dpm
.getMaximumTimeToLockForUserAndProfiles(UserHandle.myUserId());
mScreenTimeoutPreference.removeUnusableTimeouts(maxTimeout, admin); mScreenTimeoutPreference.removeUnusableTimeouts(maxTimeout, admin);
} }
updateTimeoutPreferenceDescription(currentTimeout); updateTimeoutPreferenceDescription(currentTimeout);

View File

@@ -1116,7 +1116,8 @@ public class SecuritySettings extends SettingsPreferenceFragment
if (mDPM != null) { if (mDPM != null) {
final EnforcedAdmin admin = RestrictedLockUtils.checkIfMaximumTimeToLockIsSet( final EnforcedAdmin admin = RestrictedLockUtils.checkIfMaximumTimeToLockIsSet(
getActivity()); getActivity());
final long adminTimeout = mDPM.getMaximumTimeToLock(null); final long adminTimeout = mDPM
.getMaximumTimeToLockForUserAndProfiles(UserHandle.myUserId());
final long displayTimeout = Math.max(0, final long displayTimeout = Math.max(0,
Settings.System.getInt(getContentResolver(), SCREEN_OFF_TIMEOUT, 0)); Settings.System.getInt(getContentResolver(), SCREEN_OFF_TIMEOUT, 0));
// This setting is a slave to display timeout when a device policy is enforced. // This setting is a slave to display timeout when a device policy is enforced.