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:
@@ -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;
|
||||
}
|
||||
|
@@ -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 {
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user