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
This commit is contained in:
yuemingw
2017-10-23 18:36:00 +01:00
parent bd642f9db8
commit 7b1da61346
9 changed files with 222 additions and 21 deletions

View File

@@ -46,8 +46,10 @@ public class AutoTimePreferenceController extends AbstractPreferenceController
if (!(preference instanceof RestrictedSwitchPreference)) {
return;
}
((RestrictedSwitchPreference) preference).setDisabledByAdmin(
getEnforcedAdminProperty());
if (!((RestrictedSwitchPreference) preference).isDisabledByAdmin()) {
((RestrictedSwitchPreference) preference).setDisabledByAdmin(
getEnforcedAdminProperty());
}
((RestrictedSwitchPreference) preference).setChecked(isEnabled());
}

View File

@@ -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,9 +60,14 @@ 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()));
preference.setEnabled(!mAutoTimePreferenceController.isEnabled());
if (!((RestrictedPreference) preference).isDisabledByAdmin()) {
preference.setEnabled(!mAutoTimePreferenceController.isEnabled());
}
}
@Override

View File

@@ -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,9 +61,14 @@ 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()));
preference.setEnabled(!mAutoTimePreferenceController.isEnabled());
if (!((RestrictedPreference) preference).isDisabledByAdmin()) {
preference.setEnabled(!mAutoTimePreferenceController.isEnabled());
}
}
@Override

View File

@@ -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,8 +42,13 @@ public class TimeZonePreferenceController extends AbstractPreferenceController
@Override
public void updateState(Preference preference) {
if (!(preference instanceof RestrictedPreference)) {
return;
}
preference.setSummary(getTimeZoneOffsetAndName());
preference.setEnabled(!mAutoTimeZonePreferenceController.isEnabled());
if( !((RestrictedPreference) preference).isDisabledByAdmin()) {
preference.setEnabled(!mAutoTimeZonePreferenceController.isEnabled());
}
}
@Override