summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
diff options
context:
space:
mode:
authorYi Jiang <eejiang@google.com>2021-05-05 12:06:42 -0700
committerYi Jiang <eejiang@google.com>2021-05-05 12:06:51 -0700
commitf54a2be819a11d4204b537c393a203f4b05edee0 (patch)
treee38313471b31561549c947f02c692fb65379a199 /src/com/android/settings/display/AdaptiveSleepPreferenceController.java
parent177d76986a7ba13489f2c040025567595f3aa540 (diff)
downloadpackages_apps_Settings-f54a2be819a11d4204b537c393a203f4b05edee0.tar.gz
packages_apps_Settings-f54a2be819a11d4204b537c393a203f4b05edee0.tar.bz2
packages_apps_Settings-f54a2be819a11d4204b537c393a203f4b05edee0.zip
Fixes NPE in Screen attention setting
Bug: 186904496 Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.display Change-Id: I9bd1e6824e19cf8ea281f7af482d13ef47f36256
Diffstat (limited to 'src/com/android/settings/display/AdaptiveSleepPreferenceController.java')
-rw-r--r--src/com/android/settings/display/AdaptiveSleepPreferenceController.java31
1 files changed, 17 insertions, 14 deletions
diff --git a/src/com/android/settings/display/AdaptiveSleepPreferenceController.java b/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
index 7fbb01ecd3..8f61683bb6 100644
--- a/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
+++ b/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
@@ -73,7 +73,6 @@ public class AdaptiveSleepPreferenceController {
* Adds the controlled preference to the provided preference screen.
*/
public void addToScreen(PreferenceScreen screen) {
- initializePreference();
updatePreference();
screen.addPreference(mPreference);
}
@@ -82,6 +81,7 @@ public class AdaptiveSleepPreferenceController {
* Updates the appearance of the preference.
*/
public void updatePreference() {
+ initializePreference();
final EnforcedAdmin enforcedAdmin = mRestrictionUtils.checkIfRestrictionEnforced(mContext,
UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT);
if (enforcedAdmin != null) {
@@ -93,19 +93,22 @@ public class AdaptiveSleepPreferenceController {
@VisibleForTesting
void initializePreference() {
- mPreference = new RestrictedSwitchPreference(mContext);
- mPreference.setTitle(R.string.adaptive_sleep_title);
- mPreference.setSummary(R.string.adaptive_sleep_description);
- mPreference.setChecked(isChecked());
- mPreference.setKey(PREFERENCE_KEY);
- mPreference.setOnPreferenceChangeListener((preference, value) -> {
- final boolean isChecked = (Boolean) value;
- mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_SCREEN_ATTENTION_CHANGED,
- isChecked);
- Settings.Secure.putInt(mContext.getContentResolver(),
- Settings.Secure.ADAPTIVE_SLEEP, isChecked ? 1 : DEFAULT_VALUE);
- return true;
- });
+ if (mPreference == null) {
+ mPreference = new RestrictedSwitchPreference(mContext);
+ mPreference.setTitle(R.string.adaptive_sleep_title);
+ mPreference.setSummary(R.string.adaptive_sleep_description);
+ mPreference.setChecked(isChecked());
+ mPreference.setKey(PREFERENCE_KEY);
+ mPreference.setOnPreferenceChangeListener((preference, value) -> {
+ final boolean isChecked = (Boolean) value;
+ mMetricsFeatureProvider.action(mContext,
+ SettingsEnums.ACTION_SCREEN_ATTENTION_CHANGED,
+ isChecked);
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.ADAPTIVE_SLEEP, isChecked ? 1 : DEFAULT_VALUE);
+ return true;
+ });
+ }
}
@VisibleForTesting