Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55aba46f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Unchecked battery saver switch once it's 1st launch" into tm-dev

parents 4bc8231c d2ce1d91
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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);
    }

+27 −0
Original line number Diff line number Diff line
@@ -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);
    }
}