Create BatterySaverReceiver

Cherry-picked from oc-dev

This cl elicits BatterySaverReceiver that listen to the change about
battery state and battery saver state.

BatterySaverController and BatterySaverSettings will use this receiver
to update the UI.

Bug: 32410757
Test: RunSettingsRoboTests
Change-Id: Ia92c6776985b89fe6a8d5b8d80898e502942b9b5
This commit is contained in:
jackqdyulei
2017-07-05 15:49:16 -07:00
parent 120dbe43db
commit 88b580a0a9
6 changed files with 260 additions and 84 deletions

View File

@@ -17,10 +17,12 @@ package com.android.settings.fuelgauge;
import android.content.Context;
import android.os.PowerManager;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.widget.MasterSwitchPreference;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -77,6 +79,20 @@ public class BatterySaverControllerTest {
testUpdateStateInner(false);
}
@Test
public void testOnBatteryChanged_pluggedIn_setDisable() {
mBatterySaverController.onBatteryChanged(true /* pluggedIn */);
verify(mBatterySaverPref).setSwitchEnabled(false);
}
@Test
public void testOnBatteryChanged_notPluggedIn_setEnable() {
mBatterySaverController.onBatteryChanged(false /* pluggedIn */);
verify(mBatterySaverPref).setSwitchEnabled(true);
}
private void testOnPreferenceChangeInner(final boolean saverOn) {
when(mPowerManager.setPowerSaveMode(saverOn)).thenReturn(true);
when(mPowerManager.isPowerSaveMode()).thenReturn(!saverOn);