Loading src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java +6 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.os.PowerManager; import android.provider.Settings; import android.provider.SettingsSlicesContract; import android.widget.Switch; Loading Loading @@ -101,6 +102,11 @@ public class BatterySaverButtonPreferenceController extends @Override public void onSwitchChanged(Switch switchView, boolean isChecked) { // Cancel preference's check state once it's first time launch if (isChecked && (Settings.Secure.getInt(mContext.getContentResolver(), Settings.Secure.LOW_POWER_WARNING_ACKNOWLEDGED, 0) == 0)) { mPreference.setChecked(false); } setChecked(isChecked); } Loading tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java +27 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.Intent; import android.os.PowerManager; import android.provider.Settings; import android.provider.SettingsSlicesContract; import androidx.preference.PreferenceScreen; Loading Loading @@ -75,6 +76,24 @@ public class BatterySaverButtonPreferenceControllerTest { .isEqualTo(SettingsSlicesContract.AUTHORITY); } @Test public void onSwitchChanged_isCheckedButNotAcked_preferenceIsUnchecked() { setLowPowerWarningAcked(/* acked= */ 0); mController.onSwitchChanged(/* switchView= */ null, /* isChecked= */ true); assertThat(mPreference.isChecked()).isFalse(); } @Test public void onSwitchChanged_isCheckedAndAcked_setPowerSaveMode() { setLowPowerWarningAcked(/* acked= */ 1); mController.onSwitchChanged(/* switchView= */ null, /* isChecked= */ true); verify(mPowerManager).setPowerSaveModeEnabled(true); } @Test public void updateState_lowPowerOn_preferenceIsChecked() { when(mPowerManager.isPowerSaveMode()).thenReturn(true); Loading Loading @@ -126,4 +145,12 @@ public class BatterySaverButtonPreferenceControllerTest { public void isPublicSlice_returnsTrue() { assertThat(mController.isPublicSlice()).isTrue(); } // 0 means not acked, 1 means acked. private void setLowPowerWarningAcked(int acked) { Settings.Secure.putInt( mContext.getContentResolver(), Settings.Secure.LOW_POWER_WARNING_ACKNOWLEDGED, acked); } } Loading
src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java +6 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.os.PowerManager; import android.provider.Settings; import android.provider.SettingsSlicesContract; import android.widget.Switch; Loading Loading @@ -101,6 +102,11 @@ public class BatterySaverButtonPreferenceController extends @Override public void onSwitchChanged(Switch switchView, boolean isChecked) { // Cancel preference's check state once it's first time launch if (isChecked && (Settings.Secure.getInt(mContext.getContentResolver(), Settings.Secure.LOW_POWER_WARNING_ACKNOWLEDGED, 0) == 0)) { mPreference.setChecked(false); } setChecked(isChecked); } Loading
tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceControllerTest.java +27 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.Intent; import android.os.PowerManager; import android.provider.Settings; import android.provider.SettingsSlicesContract; import androidx.preference.PreferenceScreen; Loading Loading @@ -75,6 +76,24 @@ public class BatterySaverButtonPreferenceControllerTest { .isEqualTo(SettingsSlicesContract.AUTHORITY); } @Test public void onSwitchChanged_isCheckedButNotAcked_preferenceIsUnchecked() { setLowPowerWarningAcked(/* acked= */ 0); mController.onSwitchChanged(/* switchView= */ null, /* isChecked= */ true); assertThat(mPreference.isChecked()).isFalse(); } @Test public void onSwitchChanged_isCheckedAndAcked_setPowerSaveMode() { setLowPowerWarningAcked(/* acked= */ 1); mController.onSwitchChanged(/* switchView= */ null, /* isChecked= */ true); verify(mPowerManager).setPowerSaveModeEnabled(true); } @Test public void updateState_lowPowerOn_preferenceIsChecked() { when(mPowerManager.isPowerSaveMode()).thenReturn(true); Loading Loading @@ -126,4 +145,12 @@ public class BatterySaverButtonPreferenceControllerTest { public void isPublicSlice_returnsTrue() { assertThat(mController.isPublicSlice()).isTrue(); } // 0 means not acked, 1 means acked. private void setLowPowerWarningAcked(int acked) { Settings.Secure.putInt( mContext.getContentResolver(), Settings.Secure.LOW_POWER_WARNING_ACKNOWLEDGED, acked); } }