summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/display/AdaptiveSleepBatterySaverPreferenceController.java
diff options
context:
space:
mode:
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));
+ }
+ }
}