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

Commit 17b9fa3e authored by Sudheer Shanka's avatar Sudheer Shanka Committed by Android (Google) Code Review
Browse files

Merge "Add padlocks to more preferences that can be disabled by policy."

parents c84ccbfb 9c32468c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@
        android:title="@string/date_and_time"
        settings:keywords="@string/keywords_date_and_time">

    <SwitchPreference android:key="auto_time"
    <com.android.settingslib.RestrictedSwitchPreference android:key="auto_time"
        android:title="@string/date_time_auto"
        android:summaryOn="@string/date_time_auto_summaryOn"
        android:summaryOff="@string/date_time_auto_summaryOff"
+5 −7
Original line number Diff line number Diff line
@@ -64,10 +64,8 @@
            android:title="@string/credentials_title"
            android:persistent="false">

        <Preference android:key="credential_storage_type"
        <com.android.settingslib.RestrictedPreference android:key="credential_storage_type"
                android:title="@string/credential_storage_type"
                android:enabled="false"
                android:shouldDisableView="false"
                android:persistent="false" />

        <Preference android:key="trusted_credentials"
@@ -82,7 +80,7 @@
                android:persistent="false"
                android:fragment="com.android.settings.UserCredentialsSettings"/>

        <Preference android:key="credentials_install"
        <com.android.settingslib.RestrictedPreference android:key="credentials_install"
                android:title="@string/credentials_install"
                android:summary="@string/credentials_install_summary"
                android:persistent="false">
@@ -91,9 +89,9 @@
                    android:targetPackage="com.android.certinstaller"
                    android:targetClass="com.android.certinstaller.CertInstallerMain"/>

        </Preference>
        </com.android.settingslib.RestrictedPreference>

        <Preference android:key="credentials_reset"
        <com.android.settingslib.RestrictedPreference android:key="credentials_reset"
                android:title="@string/credentials_reset"
                android:summary="@string/credentials_reset_summary"
                android:persistent="false">
@@ -102,7 +100,7 @@
                    android:targetPackage="com.android.settings"
                    android:targetClass="com.android.settings.CredentialStorage"/>

        </Preference>
        </com.android.settingslib.RestrictedPreference>

    </PreferenceCategory>

+5 −5
Original line number Diff line number Diff line
@@ -18,27 +18,27 @@
        android:title="@string/lock_settings_picker_title"
        android:key="lock_settings_picker">

    <PreferenceScreen
    <com.android.settingslib.RestrictedPreference
            android:key="unlock_set_off"
            android:title="@string/unlock_set_unlock_off_title"
            android:persistent="false"/>

    <PreferenceScreen
    <com.android.settingslib.RestrictedPreference
            android:key="unlock_set_none"
            android:title="@string/unlock_set_unlock_none_title"
            android:persistent="false"/>

    <PreferenceScreen
    <com.android.settingslib.RestrictedPreference
            android:key="unlock_set_pattern"
            android:title="@string/unlock_set_unlock_pattern_title"
            android:persistent="false"/>

    <PreferenceScreen
    <com.android.settingslib.RestrictedPreference
            android:key="unlock_set_pin"
            android:title="@string/unlock_set_unlock_pin_title"
            android:persistent="false"/>

    <PreferenceScreen
    <com.android.settingslib.RestrictedPreference
            android:key="unlock_set_password"
            android:title="@string/unlock_set_unlock_password_title"
            android:persistent="false"/>
+26 −1
Original line number Diff line number Diff line
@@ -45,6 +45,10 @@ import android.widget.Toast;

import com.android.internal.logging.MetricsLogger;
import com.android.internal.widget.LockPatternUtils;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedPreference;

import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;

public class ChooseLockGeneric extends SettingsActivity {
    public static final String CONFIRM_CREDENTIALS = "confirm_credentials";
@@ -367,39 +371,60 @@ public class ChooseLockGeneric extends SettingsActivity {
                boolean hideDisabled) {
            final PreferenceScreen entries = getPreferenceScreen();

            int adminEnforcedQuality = mDPM.getPasswordQuality(null);
            EnforcedAdmin enforcedAdmin = RestrictedLockUtils.checkIfPasswordQualityIsSet(
                    getActivity());
            for (int i = entries.getPreferenceCount() - 1; i >= 0; --i) {
                Preference pref = entries.getPreference(i);
                if (pref instanceof PreferenceScreen) {
                if (pref instanceof RestrictedPreference) {
                    final String key = pref.getKey();
                    boolean enabled = true;
                    boolean visible = true;
                    boolean disabledByAdmin = false;
                    if (KEY_UNLOCK_SET_OFF.equals(key)) {
                        enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
                        if (getResources().getBoolean(R.bool.config_hide_none_security_option)) {
                            enabled = false;
                            visible = false;
                        }
                        disabledByAdmin = adminEnforcedQuality
                                > DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
                    } else if (KEY_UNLOCK_SET_NONE.equals(key)) {
                        if (mUserId != UserHandle.myUserId()) {
                            // Swipe doesn't make sense for profiles.
                            visible = false;
                        }
                        enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
                        disabledByAdmin = adminEnforcedQuality
                                > DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
                    } else if (KEY_UNLOCK_SET_PATTERN.equals(key)) {
                        enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
                        disabledByAdmin = adminEnforcedQuality
                                > DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
                    } else if (KEY_UNLOCK_SET_PIN.equals(key)) {
                        enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX;
                        disabledByAdmin = adminEnforcedQuality
                                > DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX;
                    } else if (KEY_UNLOCK_SET_PASSWORD.equals(key)) {
                        enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_COMPLEX;
                        disabledByAdmin = adminEnforcedQuality
                                > DevicePolicyManager.PASSWORD_QUALITY_COMPLEX;
                    }
                    if (hideDisabled) {
                        visible = enabled;
                    }
                    if (!visible) {
                        entries.removePreference(pref);
                    } else if (disabledByAdmin && enforcedAdmin != null) {
                        ((RestrictedPreference) pref).setDisabledByAdmin(enforcedAdmin);
                    } else if (!enabled) {
                        // we need to setDisabledByAdmin to null first to disable the padlock
                        // in case it was set earlier.
                        ((RestrictedPreference) pref).setDisabledByAdmin(null);
                        pref.setSummary(R.string.unlock_set_unlock_disabled_summary);
                        pref.setEnabled(false);
                    } else {
                        ((RestrictedPreference) pref).setDisabledByAdmin(null);
                    }
                }
            }
+10 −12
Original line number Diff line number Diff line
@@ -39,11 +39,15 @@ import android.widget.TimePicker;

import com.android.internal.logging.MetricsLogger;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settingslib.datetime.ZoneGetter;

import java.util.Calendar;
import java.util.Date;

import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;

public class DateTimeSettings extends SettingsPreferenceFragment
        implements OnSharedPreferenceChangeListener,
                TimePickerDialog.OnTimeSetListener, DatePickerDialog.OnDateSetListener {
@@ -64,7 +68,7 @@ public class DateTimeSettings extends SettingsPreferenceFragment
    // have we been launched from the setup wizard?
    protected static final String EXTRA_IS_FIRST_RUN = "firstRun";

    private SwitchPreference mAutoTimePref;
    private RestrictedSwitchPreference mAutoTimePref;
    private Preference mTimePref;
    private Preference mTime24Pref;
    private SwitchPreference mAutoTimeZonePref;
@@ -89,23 +93,17 @@ public class DateTimeSettings extends SettingsPreferenceFragment
        boolean autoTimeEnabled = getAutoState(Settings.Global.AUTO_TIME);
        boolean autoTimeZoneEnabled = getAutoState(Settings.Global.AUTO_TIME_ZONE);

        mAutoTimePref = (SwitchPreference) findPreference(KEY_AUTO_TIME);

        DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(Context
                .DEVICE_POLICY_SERVICE);
        if (dpm.getAutoTimeRequired()) {
            mAutoTimePref.setEnabled(false);

            // If Settings.Global.AUTO_TIME is false it will be set to true
            // by the device policy manager very soon.
            // Note that this app listens to that change.
        }
        mAutoTimePref = (RestrictedSwitchPreference) findPreference(KEY_AUTO_TIME);
        EnforcedAdmin admin = RestrictedLockUtils.checkIfAutoTimeRequired(getActivity());
        mAutoTimePref.setDisabledByAdmin(admin);

        Intent intent = getActivity().getIntent();
        boolean isFirstRun = intent.getBooleanExtra(EXTRA_IS_FIRST_RUN, false);

        mDummyDate = Calendar.getInstance();

        // If device admin requires auto time device policy manager will set
        // Settings.Global.AUTO_TIME to true. Note that this app listens to that change.
        mAutoTimePref.setChecked(autoTimeEnabled);
        mAutoTimeZonePref = (SwitchPreference) findPreference(KEY_AUTO_TIME_ZONE);
        // Override auto-timezone if it's a wifi-only device or if we're still in setup wizard.
Loading