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

Commit 9c32468c authored by Sudheer Shanka's avatar Sudheer Shanka
Browse files

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

Change-Id: I7cc999dd1d46c20c888e0ba67053564e4d50946b
parent 4ccc2c35
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";
@@ -355,39 +359,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