Enforce BaseUserRestriction for DISALLOW_CONFIG_BRIGHTNESS
- For Adaptive brightness
Fix: 330855652
Test: Manual test. see b/330855652
Change-Id: Iea848c9d92abdf152d3eb827fbe1fb141f4687d7
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index 5b4bee8..35ae6fb 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -35,7 +35,10 @@
android:key="auto_brightness_entry"
android:title="@string/auto_brightness_title"
android:fragment="com.android.settings.display.AutoBrightnessSettings"
- settings:controller="com.android.settings.display.AutoBrightnessPreferenceController"/>
+ settings:useAdminDisabledSummary="true"
+ settings:userRestriction="no_config_brightness"
+ settings:controller="com.android.settings.display.AutoBrightnessPreferenceController" />
+
<SwitchPreferenceCompat
android:key="even_dimmer_activated"
android:title="@string/even_dimmer_display_title"
diff --git a/src/com/android/settings/display/AutoBrightnessPreferenceController.java b/src/com/android/settings/display/AutoBrightnessPreferenceController.java
index d925de3..bf21183 100644
--- a/src/com/android/settings/display/AutoBrightnessPreferenceController.java
+++ b/src/com/android/settings/display/AutoBrightnessPreferenceController.java
@@ -18,11 +18,15 @@
import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL;
import android.content.Context;
+import android.os.Process;
+import android.os.UserManager;
import android.provider.Settings;
+import androidx.preference.Preference;
+
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
-
+import com.android.settingslib.PrimarySwitchPreference;
public class AutoBrightnessPreferenceController extends TogglePreferenceController {
@@ -56,6 +60,17 @@
}
@Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ PrimarySwitchPreference pref = (PrimarySwitchPreference) preference;
+ if (pref.isEnabled() && UserManager.get(mContext).hasBaseUserRestriction(
+ UserManager.DISALLOW_CONFIG_BRIGHTNESS, Process.myUserHandle())) {
+ pref.setEnabled(false);
+ pref.setSwitchEnabled(false);
+ }
+ }
+
+ @Override
public CharSequence getSummary() {
return mContext.getText(isChecked()
? R.string.auto_brightness_summary_on