Loading res/values/strings.xml +5 −8 Original line number Diff line number Diff line Loading @@ -9127,16 +9127,13 @@ <string name="suggestion_additional_fingerprints_summary">Unlock with a different finger</string> <!-- Summary of battery saver when on [CHAR LIMIT=NONE] --> <string name="battery_saver_on_summary">On / <xliff:g name="automatic_state" example="Never turn on automatically">%1$s</xliff:g></string> <string name="battery_saver_on_summary">On</string> <!-- Summary of battery saver when off [CHAR LIMIT=NONE] --> <string name="battery_saver_off_summary">Off / <xliff:g name="automatic_state" example="Never turn on automatically">%1$s</xliff:g></string> <!-- Summary of battery saver when it is off and scheduled [CHAR LIMIT=NONE] --> <string name="battery_saver_off_scheduled_summary">Will turn on at <xliff:g id="battery_percentage" example="15%">%1$s</xliff:g></string> <!-- [CHAR_LIMIT=NONE] Battery saver: Description for automatic entry option: Never --> <string name="battery_saver_desc_turn_on_auto_never">Never turn on automatically</string> <!-- [CHAR_LIMIT=NONE] Battery saver: Description for automatic entry option: pct% battery --> <string name="battery_saver_desc_turn_on_auto_pct">Turn on automatically at %1$s battery</string> <!-- Summary of battery saver when it is off and scheduled [CHAR LIMIT=NONE] --> <string name="battery_saver_off_summary">Off</string> <!-- Battery saver: Label for button that will turn on battery saver. [CHAR LIMIT=30] --> <string name="battery_saver_button_turn_on">Turn on now</string> src/com/android/settings/fuelgauge/BatterySaverController.java +9 −8 Original line number Diff line number Diff line Loading @@ -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() { Loading tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java +35 −26 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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"); } } Loading
res/values/strings.xml +5 −8 Original line number Diff line number Diff line Loading @@ -9127,16 +9127,13 @@ <string name="suggestion_additional_fingerprints_summary">Unlock with a different finger</string> <!-- Summary of battery saver when on [CHAR LIMIT=NONE] --> <string name="battery_saver_on_summary">On / <xliff:g name="automatic_state" example="Never turn on automatically">%1$s</xliff:g></string> <string name="battery_saver_on_summary">On</string> <!-- Summary of battery saver when off [CHAR LIMIT=NONE] --> <string name="battery_saver_off_summary">Off / <xliff:g name="automatic_state" example="Never turn on automatically">%1$s</xliff:g></string> <!-- Summary of battery saver when it is off and scheduled [CHAR LIMIT=NONE] --> <string name="battery_saver_off_scheduled_summary">Will turn on at <xliff:g id="battery_percentage" example="15%">%1$s</xliff:g></string> <!-- [CHAR_LIMIT=NONE] Battery saver: Description for automatic entry option: Never --> <string name="battery_saver_desc_turn_on_auto_never">Never turn on automatically</string> <!-- [CHAR_LIMIT=NONE] Battery saver: Description for automatic entry option: pct% battery --> <string name="battery_saver_desc_turn_on_auto_pct">Turn on automatically at %1$s battery</string> <!-- Summary of battery saver when it is off and scheduled [CHAR LIMIT=NONE] --> <string name="battery_saver_off_summary">Off</string> <!-- Battery saver: Label for button that will turn on battery saver. [CHAR LIMIT=30] --> <string name="battery_saver_button_turn_on">Turn on now</string>
src/com/android/settings/fuelgauge/BatterySaverController.java +9 −8 Original line number Diff line number Diff line Loading @@ -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() { Loading
tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java +35 −26 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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"); } }