Merge "Headless: fix locking work profile with separate challenge on power button" into udc-dev
This commit is contained in:
@@ -1610,8 +1610,9 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
||||
}
|
||||
|
||||
private void doKeyguardLaterForChildProfilesLocked() {
|
||||
UserManager um = UserManager.get(mContext);
|
||||
for (int profileId : um.getEnabledProfileIds(UserHandle.myUserId())) {
|
||||
for (UserInfo profile : mUserTracker.getUserProfiles()) {
|
||||
if (!profile.isEnabled()) continue;
|
||||
final int profileId = profile.id;
|
||||
if (mLockPatternUtils.isSeparateProfileChallengeEnabled(profileId)) {
|
||||
long userTimeout = getLockTimeout(profileId);
|
||||
if (userTimeout == 0) {
|
||||
@@ -1634,8 +1635,9 @@ public class KeyguardViewMediator implements CoreStartable, Dumpable,
|
||||
}
|
||||
|
||||
private void doKeyguardForChildProfilesLocked() {
|
||||
UserManager um = UserManager.get(mContext);
|
||||
for (int profileId : um.getEnabledProfileIds(UserHandle.myUserId())) {
|
||||
for (UserInfo profile : mUserTracker.getUserProfiles()) {
|
||||
if (!profile.isEnabled()) continue;
|
||||
final int profileId = profile.id;
|
||||
if (mLockPatternUtils.isSeparateProfileChallengeEnabled(profileId)) {
|
||||
lockProfile(profileId);
|
||||
}
|
||||
|
||||
@@ -5865,8 +5865,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
||||
// would allow bypassing of the maximum time to lock.
|
||||
mInjector.settingsGlobalPutInt(Settings.Global.STAY_ON_WHILE_PLUGGED_IN, 0);
|
||||
}
|
||||
getPowerManagerInternal().setMaximumScreenOffTimeoutFromDeviceAdmin(
|
||||
UserHandle.USER_SYSTEM, timeMs);
|
||||
getPowerManagerInternal().setMaximumScreenOffTimeoutFromDeviceAdmin(parentId, timeMs);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -3267,31 +3267,31 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
reset(getServices().settings);
|
||||
|
||||
dpm.setMaximumTimeToLock(admin1, 0);
|
||||
verifyScreenTimeoutCall(null, UserHandle.USER_SYSTEM);
|
||||
verifyScreenTimeoutCall(null, CALLER_USER_HANDLE);
|
||||
verifyStayOnWhilePluggedCleared(false);
|
||||
reset(getServices().powerManagerInternal);
|
||||
reset(getServices().settings);
|
||||
|
||||
dpm.setMaximumTimeToLock(admin1, 1);
|
||||
verifyScreenTimeoutCall(1L, UserHandle.USER_SYSTEM);
|
||||
verifyScreenTimeoutCall(1L, CALLER_USER_HANDLE);
|
||||
verifyStayOnWhilePluggedCleared(true);
|
||||
reset(getServices().powerManagerInternal);
|
||||
reset(getServices().settings);
|
||||
|
||||
dpm.setMaximumTimeToLock(admin2, 10);
|
||||
verifyScreenTimeoutCall(null, UserHandle.USER_SYSTEM);
|
||||
verifyScreenTimeoutCall(null, CALLER_USER_HANDLE);
|
||||
verifyStayOnWhilePluggedCleared(false);
|
||||
reset(getServices().powerManagerInternal);
|
||||
reset(getServices().settings);
|
||||
|
||||
dpm.setMaximumTimeToLock(admin1, 5);
|
||||
verifyScreenTimeoutCall(5L, UserHandle.USER_SYSTEM);
|
||||
verifyScreenTimeoutCall(5L, CALLER_USER_HANDLE);
|
||||
verifyStayOnWhilePluggedCleared(true);
|
||||
reset(getServices().powerManagerInternal);
|
||||
reset(getServices().settings);
|
||||
|
||||
dpm.setMaximumTimeToLock(admin2, 4);
|
||||
verifyScreenTimeoutCall(4L, UserHandle.USER_SYSTEM);
|
||||
verifyScreenTimeoutCall(4L, CALLER_USER_HANDLE);
|
||||
verifyStayOnWhilePluggedCleared(true);
|
||||
reset(getServices().powerManagerInternal);
|
||||
reset(getServices().settings);
|
||||
@@ -3301,20 +3301,20 @@ public class DevicePolicyManagerTest extends DpmTestBase {
|
||||
reset(getServices().settings);
|
||||
|
||||
dpm.setMaximumTimeToLock(admin2, Long.MAX_VALUE);
|
||||
verifyScreenTimeoutCall(Long.MAX_VALUE, UserHandle.USER_SYSTEM);
|
||||
verifyScreenTimeoutCall(Long.MAX_VALUE, CALLER_USER_HANDLE);
|
||||
verifyStayOnWhilePluggedCleared(true);
|
||||
reset(getServices().powerManagerInternal);
|
||||
reset(getServices().settings);
|
||||
|
||||
dpm.setMaximumTimeToLock(admin2, 10);
|
||||
verifyScreenTimeoutCall(10L, UserHandle.USER_SYSTEM);
|
||||
verifyScreenTimeoutCall(10L, CALLER_USER_HANDLE);
|
||||
verifyStayOnWhilePluggedCleared(true);
|
||||
reset(getServices().powerManagerInternal);
|
||||
reset(getServices().settings);
|
||||
|
||||
// There's no restriction; should be set to MAX.
|
||||
dpm.setMaximumTimeToLock(admin2, 0);
|
||||
verifyScreenTimeoutCall(Long.MAX_VALUE, UserHandle.USER_SYSTEM);
|
||||
verifyScreenTimeoutCall(Long.MAX_VALUE, CALLER_USER_HANDLE);
|
||||
verifyStayOnWhilePluggedCleared(false);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user