Loading res/xml/display_settings.xml +1 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ </com.android.settingslib.RestrictedPreference> <!-- Cross-listed item, if you change this, also change it in power_usage_summary.xml --> <Preference <com.android.settingslib.RestrictedPreference android:key="screen_timeout" android:title="@string/screen_timeout" android:summary="@string/summary_placeholder" Loading src/com/android/settings/display/ScreenTimeoutPreferenceController.java +26 −20 Original line number Diff line number Diff line Loading @@ -26,10 +26,13 @@ import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.RestrictedPreference; /** * The controller of {@link ScreenTimeoutSettings}. Loading @@ -43,14 +46,20 @@ public class ScreenTimeoutPreferenceController extends BasePreferenceController @Override public int getAvailabilityStatus() { return isDisableByAdmin() ? UNSUPPORTED_ON_DEVICE : AVAILABLE; return AVAILABLE; } @Override public CharSequence getSummary() { if (isDisableByAdmin()) { return mContext.getString(com.android.settings.R.string.disabled_by_policy_title); } else { public void updateState(Preference preference) { final RestrictedLockUtils.EnforcedAdmin admin = getEnforcedAdmin(); if (admin != null) { preference.setEnabled(false); ((RestrictedPreference) preference).setDisabledByAdmin(admin); } preference.setSummary(getTimeoutSummary()); } private CharSequence getTimeoutSummary() { final long currentTimeout = getCurrentScreenTimeout(); final CharSequence[] timeoutEntries = mContext.getResources().getStringArray( R.array.screen_timeout_entries); Loading @@ -60,18 +69,15 @@ public class ScreenTimeoutPreferenceController extends BasePreferenceController currentTimeout, timeoutEntries, timeoutValues); return mContext.getString(R.string.screen_timeout_summary, description); } } private boolean isDisableByAdmin() { private RestrictedLockUtils.EnforcedAdmin getEnforcedAdmin() { final DevicePolicyManager dpm = mContext.getSystemService(DevicePolicyManager.class); if (dpm != null) { final RestrictedLockUtils.EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced( return RestrictedLockUtilsInternal.checkIfRestrictionEnforced( mContext, UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT, UserHandle.myUserId()); return admin != null; } return false; return null; } private long getCurrentScreenTimeout() { Loading Loading
res/xml/display_settings.xml +1 −1 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ </com.android.settingslib.RestrictedPreference> <!-- Cross-listed item, if you change this, also change it in power_usage_summary.xml --> <Preference <com.android.settingslib.RestrictedPreference android:key="screen_timeout" android:title="@string/screen_timeout" android:summary="@string/summary_placeholder" Loading
src/com/android/settings/display/ScreenTimeoutPreferenceController.java +26 −20 Original line number Diff line number Diff line Loading @@ -26,10 +26,13 @@ import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.RestrictedPreference; /** * The controller of {@link ScreenTimeoutSettings}. Loading @@ -43,14 +46,20 @@ public class ScreenTimeoutPreferenceController extends BasePreferenceController @Override public int getAvailabilityStatus() { return isDisableByAdmin() ? UNSUPPORTED_ON_DEVICE : AVAILABLE; return AVAILABLE; } @Override public CharSequence getSummary() { if (isDisableByAdmin()) { return mContext.getString(com.android.settings.R.string.disabled_by_policy_title); } else { public void updateState(Preference preference) { final RestrictedLockUtils.EnforcedAdmin admin = getEnforcedAdmin(); if (admin != null) { preference.setEnabled(false); ((RestrictedPreference) preference).setDisabledByAdmin(admin); } preference.setSummary(getTimeoutSummary()); } private CharSequence getTimeoutSummary() { final long currentTimeout = getCurrentScreenTimeout(); final CharSequence[] timeoutEntries = mContext.getResources().getStringArray( R.array.screen_timeout_entries); Loading @@ -60,18 +69,15 @@ public class ScreenTimeoutPreferenceController extends BasePreferenceController currentTimeout, timeoutEntries, timeoutValues); return mContext.getString(R.string.screen_timeout_summary, description); } } private boolean isDisableByAdmin() { private RestrictedLockUtils.EnforcedAdmin getEnforcedAdmin() { final DevicePolicyManager dpm = mContext.getSystemService(DevicePolicyManager.class); if (dpm != null) { final RestrictedLockUtils.EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced( return RestrictedLockUtilsInternal.checkIfRestrictionEnforced( mContext, UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT, UserHandle.myUserId()); return admin != null; } return false; return null; } private long getCurrentScreenTimeout() { Loading