Block sleep options in Settings app when DISALLOW_CONFIG_SCREEN_TIMEOUT is set.

Test: m -j RunSettingsRoboTests
Bug: 67675734
Change-Id: Icdcadd03caa2884338d4300fb41f0036b8b9eb51
This commit is contained in:
yuemingw
2018-01-18 21:05:12 +00:00
parent ad6ba3bd5a
commit cdeeaff473
3 changed files with 51 additions and 4 deletions

View File

@@ -13,9 +13,11 @@
*/
package com.android.settings.display;
import android.app.admin.DevicePolicyManager;
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
import android.content.Context;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.util.Log;
@@ -25,10 +27,9 @@ import com.android.settings.TimeoutListPreference;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.wrapper.DevicePolicyManagerWrapper;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import com.android.settingslib.core.AbstractPreferenceController;
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
public class TimeoutPreferenceController extends AbstractPreferenceController implements
PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
@@ -69,6 +70,13 @@ public class TimeoutPreferenceController extends AbstractPreferenceController im
timeoutListPreference.removeUnusableTimeouts(maxTimeout, admin);
}
updateTimeoutPreferenceDescription(timeoutListPreference, currentTimeout);
EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(
mContext, UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT,
UserHandle.myUserId());
if(admin != null) {
timeoutListPreference.removeUnusableTimeouts(0/* disable all*/, admin);
}
}
@Override