Fix battery saver setting default state

- Battery saver is off by default.

Test: manual test with: settings delete global low_power && settings delete global low_power_trigger_level
Test: b ROBOTEST_FILTER=BatterySaver RunSettingsRoboTests

Bug: 76460719
Change-Id: I749bba9a5e36fe8ccee6e4ed843596bc94d96fcc
Fix: 76460719
This commit is contained in:
Makoto Onuki
2018-03-27 13:14:40 -07:00
parent 49d0205749
commit c8db611068
4 changed files with 20 additions and 17 deletions

View File

@@ -18,10 +18,8 @@ package com.android.settings.fuelgauge.batterysaver;
import android.content.Context;
import android.provider.Settings;
import android.support.annotation.VisibleForTesting;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.TogglePreferenceController;
/**
@@ -29,14 +27,24 @@ import com.android.settings.core.TogglePreferenceController;
*/
public class AutoBatterySaverPreferenceController extends TogglePreferenceController implements
Preference.OnPreferenceChangeListener {
private final int mDefWarnLevel;
/**
* Default value for {@link Settings.Global#LOW_POWER_MODE_TRIGGER_LEVEL}.
*/
static final int DEFAULT_TRIGGER_LEVEL = 0;
/**
* The default value to set to {@link Settings.Global#LOW_POWER_MODE_TRIGGER_LEVEL} when the
* user enables battery saver.
*/
private final int mDefaultTriggerLevelForOn;
@VisibleForTesting
static final String KEY_AUTO_BATTERY_SAVER = "auto_battery_saver";
public AutoBatterySaverPreferenceController(Context context) {
super(context, KEY_AUTO_BATTERY_SAVER);
mDefWarnLevel = mContext.getResources().getInteger(
mDefaultTriggerLevelForOn = mContext.getResources().getInteger(
com.android.internal.R.integer.config_lowBatteryWarningLevel);
}
@@ -48,7 +56,7 @@ public class AutoBatterySaverPreferenceController extends TogglePreferenceContro
@Override
public boolean isChecked() {
return Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, mDefWarnLevel) != 0;
Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, DEFAULT_TRIGGER_LEVEL) != 0;
}
@Override
@@ -56,7 +64,7 @@ public class AutoBatterySaverPreferenceController extends TogglePreferenceContro
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL,
isChecked
? mDefWarnLevel
? mDefaultTriggerLevelForOn
: 0);
return true;
}

View File

@@ -44,15 +44,12 @@ public class AutoBatterySeekBarPreferenceController extends BasePreferenceContro
private static final String TAG = "AutoBatterySeekBarPreferenceController";
@VisibleForTesting
static final String KEY_AUTO_BATTERY_SEEK_BAR = "battery_saver_seek_bar";
private final int mDefWarnLevel;
private SeekBarPreference mPreference;
private AutoBatterySaverSettingObserver mContentObserver;
public AutoBatterySeekBarPreferenceController(Context context, Lifecycle lifecycle) {
super(context, KEY_AUTO_BATTERY_SEEK_BAR);
mContentObserver = new AutoBatterySaverSettingObserver(new Handler(Looper.getMainLooper()));
mDefWarnLevel = mContext.getResources().getInteger(
com.android.internal.R.integer.config_lowBatteryWarningLevel);
if (lifecycle != null) {
lifecycle.addObserver(this);
}
@@ -118,7 +115,8 @@ public class AutoBatterySeekBarPreferenceController extends BasePreferenceContro
// Set the current value.
final int level = Settings.Global.getInt(contentResolver,
Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, mDefWarnLevel);
Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL,
AutoBatterySaverPreferenceController.DEFAULT_TRIGGER_LEVEL);
if (level == 0) {
preference.setVisible(false);
} else {

View File

@@ -45,8 +45,6 @@ public class AutoBatterySaverPreferenceControllerTest {
public void setUp() {
MockitoAnnotations.initMocks(this);
SettingsShadowResources.overrideResource(
com.android.internal.R.integer.config_lowBatteryWarningLevel, 15);
mContext = RuntimeEnvironment.application;
mPreference = new SwitchPreference(mContext);
mController = new AutoBatterySaverPreferenceController(mContext);
@@ -87,7 +85,7 @@ public class AutoBatterySaverPreferenceControllerTest {
}
@Test
public void testIsChecked_useDefaultValue_returnTrue() {
assertThat(mController.isChecked()).isTrue();
public void testIsChecked_useDefaultValue_returnFalse() {
assertThat(mController.isChecked()).isFalse();
}
}

View File

@@ -71,11 +71,10 @@ public class AutoBatterySeekBarPreferenceControllerTest {
}
@Test
public void testPreference_defaultValue_preferenceVisible() {
public void testPreference_defaultValue_preferenceNotVisible() {
mController.updateState(mPreference);
assertThat(mPreference.isVisible()).isTrue();
assertThat(mPreference.getProgress()).isEqualTo(DEFAULT_LEVEL);
assertThat(mPreference.isVisible()).isFalse();
}
@Test