diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 64a27882b7c..7ab9afbb008 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -983,6 +983,8 @@ 0 5 15 + 50 + 100 diff --git a/src/com/android/settings/fuelgauge/BatterySaverSettings.java b/src/com/android/settings/fuelgauge/BatterySaverSettings.java index f00b9520bba..303f7674d41 100644 --- a/src/com/android/settings/fuelgauge/BatterySaverSettings.java +++ b/src/com/android/settings/fuelgauge/BatterySaverSettings.java @@ -26,12 +26,14 @@ import android.os.Bundle; import android.os.Handler; import android.os.PowerManager; import android.provider.SearchIndexableResource; +import android.provider.Settings; import android.provider.Settings.Global; import android.support.annotation.VisibleForTesting; import android.util.Log; import android.widget.Switch; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; +import com.android.internal.util.ArrayUtils; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; @@ -88,13 +90,19 @@ public class BatterySaverSettings extends SettingsPreferenceFragment mSwitch = mSwitchBar.getSwitch(); mSwitchBar.show(); + int[] levelChoices = getResources().getIntArray(R.array.battery_saver_trigger_values); + final int currentThreshold = Global.getInt(mContext.getContentResolver(), + Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0); + levelChoices = ArrayUtils.appendInt(levelChoices, currentThreshold); + Arrays.sort(levelChoices); + mTriggerPref = new SettingPref(SettingPref.TYPE_GLOBAL, KEY_TURN_ON_AUTOMATICALLY, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0, /*default*/ - getResources().getIntArray(R.array.battery_saver_trigger_values)) { + levelChoices) { @Override protected String getCaption(Resources res, int value) { - if (value > 0 && value < 100) { + if (value > 0 && value <= 100) { return res.getString(R.string.battery_saver_turn_on_automatically_pct, Utils.formatPercentage(value)); }