From 1e08dd8e180b1823f9e5463eb651ae98a8e1a287 Mon Sep 17 00:00:00 2001 From: Makoto Onuki Date: Tue, 9 Jan 2018 15:20:20 -0800 Subject: [PATCH] Add 50% and 100% to auto battery saver settings The settings UI will be updated for P eventually, but let's add more options to the settings for dogfooders until the UI update happens. Also add the current value to the choices, so that if we push a number that's not in the choices, the settings app will work properly. Bug: 68769804 Bug: 71762373 Test: Manual test Change-Id: I22fd14d43f4575885b4b8e068d3df1e65f60c9e1 --- res/values/arrays.xml | 2 ++ .../settings/fuelgauge/BatterySaverSettings.java | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) 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)); }