Improved UX when DISALLOW_SET_WALLPAPER is set.
Changed type of Settings > Display > Wallpeper menu item to RestrictedPreference. This allows to show the reason, why the Wallpaper menu item is blocked. BUG: 27914814 Change-Id: I6eb23ec9fcaa39bb7e45d020a5aaca0d83cef81f
This commit is contained in:
@@ -41,11 +41,12 @@
|
|||||||
android:entries="@array/night_mode_entries"
|
android:entries="@array/night_mode_entries"
|
||||||
android:entryValues="@array/night_mode_values" /> -->
|
android:entryValues="@array/night_mode_values" /> -->
|
||||||
|
|
||||||
<PreferenceScreen
|
<com.android.settingslib.RestrictedPreference
|
||||||
android:key="wallpaper"
|
android:key="wallpaper"
|
||||||
android:title="@string/wallpaper_settings_title"
|
android:title="@string/wallpaper_settings_title"
|
||||||
settings:keywords="@string/keywords_display_wallpaper"
|
settings:keywords="@string/keywords_display_wallpaper"
|
||||||
android:fragment="com.android.settings.WallpaperTypeSettings" />
|
android:fragment="com.android.settings.WallpaperTypeSettings"
|
||||||
|
settings:useAdminDisabledSummary="true" />
|
||||||
|
|
||||||
<com.android.settings.TimeoutListPreference
|
<com.android.settings.TimeoutListPreference
|
||||||
android:key="screen_timeout"
|
android:key="screen_timeout"
|
||||||
|
@@ -31,6 +31,7 @@ import android.os.Build;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.provider.SearchIndexableResource;
|
import android.provider.SearchIndexableResource;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.support.v14.preference.SwitchPreference;
|
import android.support.v14.preference.SwitchPreference;
|
||||||
@@ -49,6 +50,7 @@ import com.android.settings.dashboard.SummaryLoader;
|
|||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settings.search.Indexable;
|
import com.android.settings.search.Indexable;
|
||||||
import com.android.settingslib.RestrictedLockUtils;
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
|
import com.android.settingslib.RestrictedPreference;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -129,10 +131,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
|||||||
removePreference(KEY_AUTO_BRIGHTNESS);
|
removePreference(KEY_AUTO_BRIGHTNESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isWallpaperSettingAllowed(activity)) {
|
|
||||||
grayPreferenceOut(KEY_WALLPAPER);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isLiftToWakeAvailable(activity)) {
|
if (isLiftToWakeAvailable(activity)) {
|
||||||
mLiftToWakePreference = (SwitchPreference) findPreference(KEY_LIFT_TO_WAKE);
|
mLiftToWakePreference = (SwitchPreference) findPreference(KEY_LIFT_TO_WAKE);
|
||||||
mLiftToWakePreference.setOnPreferenceChangeListener(this);
|
mLiftToWakePreference.setOnPreferenceChangeListener(this);
|
||||||
@@ -224,10 +222,6 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
|||||||
com.android.internal.R.bool.config_allowAllRotations);
|
com.android.internal.R.bool.config_allowAllRotations);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isWallpaperSettingAllowed(Context context) {
|
|
||||||
return WallpaperManager.getInstance(context).isWallpaperSettingAllowed();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean isLiftToWakeAvailable(Context context) {
|
private static boolean isLiftToWakeAvailable(Context context) {
|
||||||
SensorManager sensors = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
|
SensorManager sensors = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
|
||||||
return sensors != null && sensors.getDefaultSensor(Sensor.TYPE_WAKE_GESTURE) != null;
|
return sensors != null && sensors.getDefaultSensor(Sensor.TYPE_WAKE_GESTURE) != null;
|
||||||
@@ -308,6 +302,8 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
|||||||
mScreenTimeoutPreference.removeUnusableTimeouts(maxTimeout, admin);
|
mScreenTimeoutPreference.removeUnusableTimeouts(maxTimeout, admin);
|
||||||
}
|
}
|
||||||
updateTimeoutPreferenceDescription(currentTimeout);
|
updateTimeoutPreferenceDescription(currentTimeout);
|
||||||
|
|
||||||
|
disablePreferenceIfManaged(KEY_WALLPAPER, UserManager.DISALLOW_SET_WALLPAPER);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateState() {
|
private void updateState() {
|
||||||
@@ -429,10 +425,16 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
|
|||||||
return R.string.help_uri_display;
|
return R.string.help_uri_display;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void grayPreferenceOut(String key) {
|
private void disablePreferenceIfManaged(String key, String restriction) {
|
||||||
Preference pref = findPreference(key);
|
final RestrictedPreference pref = (RestrictedPreference) findPreference(key);
|
||||||
if (pref != null) {
|
if (pref != null) {
|
||||||
pref.setEnabled(false);
|
pref.setDisabledByAdmin(null);
|
||||||
|
if (RestrictedLockUtils.hasBaseUserRestriction(getActivity(), restriction,
|
||||||
|
UserHandle.myUserId())) {
|
||||||
|
pref.setEnabled(false);
|
||||||
|
} else {
|
||||||
|
pref.checkRestrictionAndSetDisabled(restriction);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user