Merge "Fix battery saver setting default state" into pi-dev

am: 856017f915

Change-Id: I32f20eac01ddeed16ed95c3b8b9323067b8d0608
This commit is contained in:
Makoto Onuki
2018-03-28 20:00:45 +00:00
committed by android-build-merger
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.content.Context;
import android.provider.Settings; import android.provider.Settings;
import android.support.annotation.VisibleForTesting; import android.support.annotation.VisibleForTesting;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
/** /**
@@ -29,14 +27,24 @@ import com.android.settings.core.TogglePreferenceController;
*/ */
public class AutoBatterySaverPreferenceController extends TogglePreferenceController implements public class AutoBatterySaverPreferenceController extends TogglePreferenceController implements
Preference.OnPreferenceChangeListener { 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 @VisibleForTesting
static final String KEY_AUTO_BATTERY_SAVER = "auto_battery_saver"; static final String KEY_AUTO_BATTERY_SAVER = "auto_battery_saver";
public AutoBatterySaverPreferenceController(Context context) { public AutoBatterySaverPreferenceController(Context context) {
super(context, KEY_AUTO_BATTERY_SAVER); super(context, KEY_AUTO_BATTERY_SAVER);
mDefWarnLevel = mContext.getResources().getInteger( mDefaultTriggerLevelForOn = mContext.getResources().getInteger(
com.android.internal.R.integer.config_lowBatteryWarningLevel); com.android.internal.R.integer.config_lowBatteryWarningLevel);
} }
@@ -48,7 +56,7 @@ public class AutoBatterySaverPreferenceController extends TogglePreferenceContro
@Override @Override
public boolean isChecked() { public boolean isChecked() {
return Settings.Global.getInt(mContext.getContentResolver(), 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 @Override
@@ -56,7 +64,7 @@ public class AutoBatterySaverPreferenceController extends TogglePreferenceContro
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL,
isChecked isChecked
? mDefWarnLevel ? mDefaultTriggerLevelForOn
: 0); : 0);
return true; return true;
} }

View File

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

View File

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

View File

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