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

Commit 7b1da613 authored by yuemingw's avatar yuemingw
Browse files

Block settings when DISALLOW_CONFIG_DATE_TIME.

Test: m -j RunSettingsRoboTests
runtest -x packages/apps/Settings/tests/unit/src/com/android/settings/core/UserRestrictionTest.java

Fix: 67497909

After turn on the user restriction in TestDPC:
https://hsv.googleplex.com/5414119658225664
The date time settings page become:
https://hsv.googleplex.com/5199302573948928


Change-Id: I42590c4a505ec1b6ffa86eb460b90fa6ec8ba783
parent bd642f9d
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
@@ -29,32 +29,37 @@
            android:summaryOn="@string/date_time_auto_summaryOn"
            android:summaryOff="@string/date_time_auto_summaryOff"
            settings:useAdditionalSummary="true"
            settings:restrictedSwitchSummary="@string/enabled_by_admin" />
            settings:restrictedSwitchSummary="@string/enabled_by_admin"
            settings:userRestriction="no_config_date_time" />

        <Preference
        <com.android.settingslib.RestrictedPreference
            android:key="date"
            android:title="@string/date_time_set_date"
            android:summary="@string/summary_placeholder" />
            android:summary="@string/summary_placeholder"
            settings:userRestriction="no_config_date_time" />

        <Preference
        <com.android.settingslib.RestrictedPreference
            android:key="time"
            android:title="@string/date_time_set_time"
            android:summary="@string/summary_placeholder" />
            android:summary="@string/summary_placeholder"
            settings:userRestriction="no_config_date_time" />
    </PreferenceCategory>

    <PreferenceCategory
        android:key="time_zone_preference_category">
        <SwitchPreference
        <com.android.settingslib.RestrictedSwitchPreference
            android:key="auto_zone"
            android:title="@string/zone_auto"
            android:summaryOn="@string/zone_auto_summaryOn"
            android:summaryOff="@string/zone_auto_summaryOff" />
            android:summaryOff="@string/zone_auto_summaryOff"
            settings:userRestriction="no_config_date_time" />

        <Preference
        <com.android.settingslib.RestrictedPreference
            android:fragment="com.android.settings.datetime.ZonePicker"
            android:key="timezone"
            android:title="@string/date_time_set_timezone"
            android:summary="GMT-8:00" />
            android:summary="GMT-8:00"
            settings:userRestriction="no_config_date_time" />
    </PreferenceCategory>

    <PreferenceCategory
+4 −2
Original line number Diff line number Diff line
@@ -46,8 +46,10 @@ public class AutoTimePreferenceController extends AbstractPreferenceController
        if (!(preference instanceof RestrictedSwitchPreference)) {
            return;
        }
        if (!((RestrictedSwitchPreference) preference).isDisabledByAdmin()) {
            ((RestrictedSwitchPreference) preference).setDisabledByAdmin(
                    getEnforcedAdminProperty());
        }
        ((RestrictedSwitchPreference) preference).setChecked(isEnabled());
    }

+7 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.text.format.DateFormat;
import android.widget.DatePicker;

import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.core.AbstractPreferenceController;

import java.util.Calendar;
@@ -59,10 +60,15 @@ public class DatePreferenceController extends AbstractPreferenceController

    @Override
    public void updateState(Preference preference) {
        if (!(preference instanceof RestrictedPreference)) {
            return;
        }
        final Calendar now = Calendar.getInstance();
        preference.setSummary(DateFormat.getLongDateFormat(mContext).format(now.getTime()));
        if (!((RestrictedPreference) preference).isDisabledByAdmin()) {
            preference.setEnabled(!mAutoTimePreferenceController.isEnabled());
        }
    }

    @Override
    public boolean handlePreferenceTreeClick(Preference preference) {
+7 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.text.format.DateFormat;
import android.widget.TimePicker;

import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.core.AbstractPreferenceController;

import java.util.Calendar;
@@ -60,10 +61,15 @@ public class TimePreferenceController extends AbstractPreferenceController

    @Override
    public void updateState(Preference preference) {
        if (!(preference instanceof RestrictedPreference)) {
            return;
        }
        final Calendar now = Calendar.getInstance();
        preference.setSummary(DateFormat.getTimeFormat(mContext).format(now.getTime()));
        if (!((RestrictedPreference) preference).isDisabledByAdmin()) {
            preference.setEnabled(!mAutoTimePreferenceController.isEnabled());
        }
    }

    @Override
    public boolean handlePreferenceTreeClick(Preference preference) {
+7 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference;

import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.datetime.ZoneGetter;

@@ -41,9 +42,14 @@ public class TimeZonePreferenceController extends AbstractPreferenceController

    @Override
    public void updateState(Preference preference) {
        if (!(preference instanceof RestrictedPreference)) {
            return;
        }
        preference.setSummary(getTimeZoneOffsetAndName());
        if( !((RestrictedPreference) preference).isDisabledByAdmin()) {
            preference.setEnabled(!mAutoTimeZonePreferenceController.isEnabled());
        }
    }

    @Override
    public boolean isAvailable() {
Loading