Add intent receiver in BatterySaverCondition

Receive ACTION_POWER_SAVE_MODE_CHANGING
to listen state and update immediately.

Change-Id: Iff2ebb262d95f43d0c970b32f326e3a3e6981a2a
Fixes: 78104542
Test: make RunSettingsRoboTests
This commit is contained in:
HJ ChangLiao
2018-04-18 17:28:21 +08:00
parent b0877b390d
commit 3b7f08d1ee
2 changed files with 134 additions and 2 deletions

View File

@@ -23,12 +23,20 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.fuelgauge.BatterySaverDrawable;
import com.android.settings.fuelgauge.BatterySaverReceiver;
import com.android.settings.fuelgauge.batterysaver.BatterySaverSettings;
import com.android.settingslib.fuelgauge.BatterySaverUtils;
public class BatterySaverCondition extends Condition {
public class BatterySaverCondition extends Condition implements
BatterySaverReceiver.BatterySaverListener {
private final BatterySaverReceiver mReceiver;
public BatterySaverCondition(ConditionManager manager) {
super(manager);
mReceiver = new BatterySaverReceiver(manager.getContext());
mReceiver.setBatterySaverListener(this);
}
@Override
@@ -54,7 +62,7 @@ public class BatterySaverCondition extends Condition {
@Override
public CharSequence[] getActions() {
return new CharSequence[] {mManager.getContext().getString(R.string.condition_turn_off)};
return new CharSequence[]{mManager.getContext().getString(R.string.condition_turn_off)};
}
@Override
@@ -82,4 +90,25 @@ public class BatterySaverCondition extends Condition {
public int getMetricsConstant() {
return MetricsEvent.SETTINGS_CONDITION_BATTERY_SAVER;
}
@Override
public void onResume() {
mReceiver.setListening(true);
}
@Override
public void onPause() {
mReceiver.setListening(false);
}
@Override
public void onPowerSaveModeChanged() {
ConditionManager.get(mManager.getContext()).getCondition(BatterySaverCondition.class)
.refreshState();
}
@Override
public void onBatteryChanged(boolean pluggedIn) {
// do nothing
}
}