Merge "Unchecked battery saver switch once it's 1st launch" into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
55aba46fe9
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
@@ -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);
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user