Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cf9e39b2 authored by Yi Jiang's avatar Yi Jiang Committed by Android (Google) Code Review
Browse files

Merge "Grays out Screen Timeout Setting when disabled."

parents 881d2532 11100495
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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"
+26 −20
Original line number Diff line number Diff line
@@ -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}.
@@ -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);
@@ -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() {