summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/display/AdaptiveSleepBatterySaverPreferenceController.java
diff options
context:
space:
mode:
authorYi Jiang <eejiang@google.com>2021-05-19 11:44:36 -0700
committerYi Jiang <eejiang@google.com>2021-05-19 12:18:23 -0700
commit8aaa9f55497e52651d15b8f06eb4077586012852 (patch)
tree02a7158773e4b7e4969f37857d74c2053674316b /src/com/android/settings/display/AdaptiveSleepBatterySaverPreferenceController.java
parent3616520985d775678a54b673f6798248aa538ddb (diff)
downloadpackages_apps_Settings-8aaa9f55497e52651d15b8f06eb4077586012852.tar.gz
packages_apps_Settings-8aaa9f55497e52651d15b8f06eb4077586012852.tar.bz2
packages_apps_Settings-8aaa9f55497e52651d15b8f06eb4077586012852.zip
Defers initialization of preferences.
In Screen Timeout Settings, preferences should not be initialized in onAttach() because the setting style hasn't been loaded yet. This change defers the initialiaztion of those preferences so that they appear correctly. Test: manually tested. Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.display Bug: 183909540 Change-Id: I86cfe196549d709ed763faa004fff7b631365b1e
Diffstat (limited to 'src/com/android/settings/display/AdaptiveSleepBatterySaverPreferenceController.java')
-rw-r--r--src/com/android/settings/display/AdaptiveSleepBatterySaverPreferenceController.java22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/com/android/settings/display/AdaptiveSleepBatterySaverPreferenceController.java b/src/com/android/settings/display/AdaptiveSleepBatterySaverPreferenceController.java
index 855c5070bf..528c94d7d8 100644
--- a/src/com/android/settings/display/AdaptiveSleepBatterySaverPreferenceController.java
+++ b/src/com/android/settings/display/AdaptiveSleepBatterySaverPreferenceController.java
@@ -32,23 +32,20 @@ import com.android.settingslib.widget.BannerMessagePreference;
public class AdaptiveSleepBatterySaverPreferenceController {
@VisibleForTesting
- final BannerMessagePreference mPreference;
+ BannerMessagePreference mPreference;
private final PowerManager mPowerManager;
+ private final Context mContext;
public AdaptiveSleepBatterySaverPreferenceController(Context context) {
- mPreference = new BannerMessagePreference(context);
- mPreference.setTitle(R.string.ambient_camera_summary_battery_saver_on);
- mPreference.setPositiveButtonText(R.string.disable_text);
mPowerManager = context.getSystemService(PowerManager.class);
- mPreference.setPositiveButtonOnClickListener(p -> {
- mPowerManager.setPowerSaveModeEnabled(false);
- });
+ mContext = context;
}
/**
* Adds the controlled preference to the provided preference screen.
*/
public void addToScreen(PreferenceScreen screen) {
+ initializePreference();
screen.addPreference(mPreference);
updateVisibility();
}
@@ -66,6 +63,17 @@ public class AdaptiveSleepBatterySaverPreferenceController {
* Refreshes the visibility of the preference.
*/
public void updateVisibility() {
+ initializePreference();
mPreference.setVisible(isPowerSaveMode());
}
+
+ private void initializePreference() {
+ if (mPreference == null) {
+ mPreference = new BannerMessagePreference(mContext);
+ mPreference.setTitle(R.string.ambient_camera_summary_battery_saver_on);
+ mPreference.setPositiveButtonText(R.string.disable_text);
+ mPreference.setPositiveButtonOnClickListener(
+ p -> mPowerManager.setPowerSaveModeEnabled(false));
+ }
+ }
}