From da7ac699fb0921903e734dab8703e2a0223023ec Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Tue, 20 Feb 2018 18:15:24 -0800 Subject: [PATCH] Change def value for LOW_POWER_MODE_TRIGGER_LEVEL Fixes: 73668682 Test: RunSettingsRoboTests Change-Id: I2122523c958f12bbdd658ae53d63b00769db3520 --- .../AutoBatterySaverPreferenceController.java | 8 +++++--- ...utoBatterySeekBarPreferenceController.java | 5 ++++- ...oBatterySaverPreferenceControllerTest.java | 11 ++++++++++- ...atterySeekBarPreferenceControllerTest.java | 19 ++++++++++++++++--- 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceController.java index 4d3dd31cdd8..bf8cd07a0f2 100644 --- a/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceController.java @@ -29,13 +29,15 @@ import com.android.settings.core.TogglePreferenceController; */ public class AutoBatterySaverPreferenceController extends TogglePreferenceController implements Preference.OnPreferenceChangeListener { - private static final int LOW_POWER_MODE_TRIGGER_THRESHOLD = 15; + private final int mDefWarnLevel; @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( + com.android.internal.R.integer.config_lowBatteryWarningLevel); } @Override @@ -46,7 +48,7 @@ public class AutoBatterySaverPreferenceController extends TogglePreferenceContro @Override public boolean isChecked() { return Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0) != 0; + Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, mDefWarnLevel) != 0; } @Override @@ -54,7 +56,7 @@ public class AutoBatterySaverPreferenceController extends TogglePreferenceContro Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, isChecked - ? LOW_POWER_MODE_TRIGGER_THRESHOLD + ? mDefWarnLevel : 0); return true; } diff --git a/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java index 1cc72a79fbb..05b3503529e 100644 --- a/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java @@ -42,12 +42,15 @@ public class AutoBatterySeekBarPreferenceController extends BasePreferenceContro LifecycleObserver, OnStart, OnStop, SeekBarPreference.OnPreferenceChangeListener { @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); } @@ -94,7 +97,7 @@ public class AutoBatterySeekBarPreferenceController extends BasePreferenceContro void updatePreference(Preference preference) { final ContentResolver contentResolver = mContext.getContentResolver(); final int level = Settings.Global.getInt(contentResolver, - Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0); + Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, mDefWarnLevel); if (level == 0) { preference.setVisible(false); } else { diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceControllerTest.java index cabcdcf26dc..af0f855c36e 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySaverPreferenceControllerTest.java @@ -25,6 +25,7 @@ import android.support.v14.preference.SwitchPreference; import com.android.settings.TestConfig; import com.android.settings.testutils.SettingsRobolectricTestRunner; +import com.android.settings.testutils.shadow.SettingsShadowResources; import org.junit.Before; import org.junit.Test; @@ -34,7 +35,8 @@ import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows = + SettingsShadowResources.class) public class AutoBatterySaverPreferenceControllerTest { private AutoBatterySaverPreferenceController mController; @@ -45,6 +47,8 @@ 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); @@ -84,4 +88,9 @@ public class AutoBatterySaverPreferenceControllerTest { Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0)).isEqualTo(0); } + @Test + public void testIsChecked_useDefaultValue_returnTrue() { + assertThat(mController.isChecked()).isTrue(); + } + } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceControllerTest.java index 32a4facb6a9..d3c2752af0b 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceControllerTest.java @@ -24,6 +24,7 @@ import android.support.v14.preference.SwitchPreference; import com.android.settings.TestConfig; import com.android.settings.testutils.SettingsRobolectricTestRunner; +import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settings.widget.SeekBarPreference; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -35,9 +36,11 @@ import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows = + SettingsShadowResources.class) public class AutoBatterySeekBarPreferenceControllerTest { - private static final int TRIGGER_LEVEL = 15; + private static final int TRIGGER_LEVEL = 20; + private static final int DEFAULT_LEVEL = 15; private AutoBatterySeekBarPreferenceController mController; private Context mContext; @@ -51,6 +54,8 @@ public class AutoBatterySeekBarPreferenceControllerTest { mLifecycleOwner = () -> mLifecycle; mLifecycle = new Lifecycle(mLifecycleOwner); + SettingsShadowResources.overrideResource( + com.android.internal.R.integer.config_lowBatteryWarningLevel, DEFAULT_LEVEL); mContext = RuntimeEnvironment.application; mPreference = new SeekBarPreference(mContext); mPreference.setMax(100); @@ -67,6 +72,14 @@ public class AutoBatterySeekBarPreferenceControllerTest { assertThat(mPreference.isVisible()).isFalse(); } + @Test + public void testPreference_defaultValue_preferenceVisible() { + mController.updateState(mPreference); + + assertThat(mPreference.isVisible()).isTrue(); + assertThat(mPreference.getProgress()).isEqualTo(DEFAULT_LEVEL); + } + @Test public void testPreference_lowPowerLevelNotZero_updatePreference() { Settings.Global.putInt(mContext.getContentResolver(), @@ -74,7 +87,7 @@ public class AutoBatterySeekBarPreferenceControllerTest { mController.updateState(mPreference); assertThat(mPreference.isVisible()).isTrue(); - assertThat(mPreference.getTitle()).isEqualTo("Turn on automatically at 15%"); + assertThat(mPreference.getTitle()).isEqualTo("Turn on automatically at 20%"); assertThat(mPreference.getProgress()).isEqualTo(TRIGGER_LEVEL); }