diff --git a/res/values/strings.xml b/res/values/strings.xml
index d9e1ff40510..fee417f1f57 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -9127,16 +9127,13 @@
Unlock with a different finger
- On / %1$s
+ On
-
- Off / %1$s
+
+ Will turn on at %1$s
-
- Never turn on automatically
-
-
- Turn on automatically at %1$s battery
+
+ Off
Turn on now
diff --git a/src/com/android/settings/fuelgauge/BatterySaverController.java b/src/com/android/settings/fuelgauge/BatterySaverController.java
index 086cdde5443..4042e79794a 100644
--- a/src/com/android/settings/fuelgauge/BatterySaverController.java
+++ b/src/com/android/settings/fuelgauge/BatterySaverController.java
@@ -88,16 +88,17 @@ public class BatterySaverController extends BasePreferenceController
@Override
public CharSequence getSummary() {
- final boolean mode = mPowerManager.isPowerSaveMode();
- final int format = mode ? R.string.battery_saver_on_summary
- : R.string.battery_saver_off_summary;
+ final boolean isPowerSaveOn = mPowerManager.isPowerSaveMode();
final int percent = Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
- final int percentFormat = percent > 0 ? R.string.battery_saver_desc_turn_on_auto_pct
- : R.string.battery_saver_desc_turn_on_auto_never;
-
- return mContext.getString(format, mContext.getString(percentFormat,
- Utils.formatPercentage(percent)));
+ if (isPowerSaveOn) {
+ return mContext.getString(R.string.battery_saver_on_summary);
+ } else if (percent != 0) {
+ return mContext.getString(R.string.battery_saver_off_scheduled_summary,
+ Utils.formatPercentage(percent));
+ } else {
+ return mContext.getString(R.string.battery_saver_off_summary);
+ }
}
private void updateSummary() {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
index 8924fa7f9ee..d1357694a36 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
@@ -15,28 +15,26 @@
*/
package com.android.settings.fuelgauge;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.content.ContentResolver;
import android.content.Context;
import android.os.PowerManager;
+import android.provider.Settings;
import android.support.v7.preference.Preference;
-import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -46,45 +44,56 @@ public class BatterySaverControllerTest {
private Preference mBatterySaverPref;
@Mock
private PowerManager mPowerManager;
- @Mock
- private Context mContext;
- @Mock
- private ContentResolver mContentResolver;
private BatterySaverController mBatterySaverController;
-
- private static final String SAVER_ON_SUMMARY = "saver-on";
- private static final String SAVER_OFF_SUMMARY = "saver-off";
+ private Context mContext;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
mBatterySaverController = spy(new BatterySaverController(mContext));
ReflectionHelpers.setField(mBatterySaverController, "mPowerManager", mPowerManager);
ReflectionHelpers.setField(mBatterySaverController, "mBatterySaverPref", mBatterySaverPref);
doNothing().when(mBatterySaverController).refreshConditionManager();
- when(mContext.getContentResolver()).thenReturn(mContentResolver);
-
- when(mContext.getString(anyInt(), any(Object.class)))
- .thenAnswer((inv) -> "str-" + inv.getArgument(0));
-
- when(mContext.getString(eq(R.string.battery_saver_on_summary), any(Object.class)))
- .thenReturn(SAVER_ON_SUMMARY);
- when(mContext.getString(eq(R.string.battery_saver_off_summary), any(Object.class)))
- .thenReturn(SAVER_OFF_SUMMARY);
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
}
@Test
- public void testOnPreferenceChange_onStart() {
+ public void onPreferenceChange_onStart() {
mBatterySaverController.onStart();
- verify(mBatterySaverPref).setSummary(eq(SAVER_OFF_SUMMARY));
+ verify(mBatterySaverPref).setSummary("Off");
}
@Test
- public void testOnPreferenceChange_onPowerSaveModeChanged() {
+ public void onPreferenceChange_onPowerSaveModeChanged() {
mBatterySaverController.onPowerSaveModeChanged();
- verify(mBatterySaverPref).setSummary(eq(SAVER_OFF_SUMMARY));
+ verify(mBatterySaverPref).setSummary("Off");
+ }
+
+ @Test
+ public void getSummary_batterySaverOn_showSummaryOn() {
+ when(mPowerManager.isPowerSaveMode()).thenReturn(true);
+
+ assertThat(mBatterySaverController.getSummary()).isEqualTo("On");
+ }
+
+ @Test
+ public void getSummary_batterySaverOffButScheduled_showSummaryScheduled() {
+ when(mPowerManager.isPowerSaveMode()).thenReturn(false);
+ Settings.Global.putInt(mContext.getContentResolver(),
+ Settings.Global.LOW_POWER_MODE_TRIGGER_LEVEL, 15);
+
+ assertThat(mBatterySaverController.getSummary()).isEqualTo("Will turn on at 15%");
+ }
+
+ @Test
+ public void getSummary_batterySaverOff_showSummaryOff() {
+ when(mPowerManager.isPowerSaveMode()).thenReturn(false);
+
+ assertThat(mBatterySaverController.getSummary()).isEqualTo("Off");
}
}