Updates screen attention preference at onStart().
Screen attention preference needs to be refreshed at onStart() so that
it get updated immediately once the camera permission is revoked/granted
for the screen attention feature.
Bug: 171019472
Test: manual + atest AdaptiveSleepPreferenceControllerTest
Change-Id: If9ac68c022f10ffefde61b035bbf38ee14c02180
diff --git a/src/com/android/settings/display/AdaptiveSleepPreferenceController.java b/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
index dfe6826..c0c5e63 100644
--- a/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
+++ b/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
@@ -75,6 +75,14 @@
* Adds the controlled preference to the provided preference screen.
*/
public void addToScreen(PreferenceScreen screen) {
+ updatePreference();
+ screen.addPreference(mPreference);
+ }
+
+ /**
+ * Updates the appearance of the preference.
+ */
+ public void updatePreference() {
final EnforcedAdmin enforcedAdmin = mRestrictionUtils.checkIfRestrictionEnforced(mContext,
UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT);
if (enforcedAdmin != null) {
@@ -82,7 +90,6 @@
} else {
mPreference.setEnabled(hasSufficientPermission(mPackageManager));
}
- screen.addPreference(mPreference);
}
@VisibleForTesting
diff --git a/src/com/android/settings/display/ScreenTimeoutSettings.java b/src/com/android/settings/display/ScreenTimeoutSettings.java
index 35c2cc0..676acf9 100644
--- a/src/com/android/settings/display/ScreenTimeoutSettings.java
+++ b/src/com/android/settings/display/ScreenTimeoutSettings.java
@@ -104,6 +104,7 @@
public void onStart() {
super.onStart();
mAdaptiveSleepPermissionController.updateVisibility();
+ mAdaptiveSleepController.updatePreference();
}
@Override