Merge "Update battery saver schedule to show warning"
This commit is contained in:
committed by
Android (Google) Code Review
commit
db1c8a5fed
@@ -20,6 +20,8 @@ import android.content.Context;
|
||||
import android.os.PowerManager;
|
||||
import android.provider.Settings;
|
||||
import android.provider.Settings.Global;
|
||||
import android.text.TextUtils;
|
||||
import com.android.settingslib.fuelgauge.BatterySaverUtils;
|
||||
|
||||
/**
|
||||
* Responds to user actions in the Settings > Battery > Set a Schedule Screen
|
||||
@@ -66,25 +68,35 @@ public class BatterySaverScheduleRadioButtonsController {
|
||||
|
||||
public boolean setDefaultKey(String key) {
|
||||
final ContentResolver resolver = mContext.getContentResolver();
|
||||
|
||||
int mode = PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE;
|
||||
int triggerLevel = 0;
|
||||
if (!TextUtils.equals(key, KEY_NO_SCHEDULE)
|
||||
&& BatterySaverUtils.maybeShowBatterySaverConfirmation(
|
||||
mContext, true /* confirmOnly */)) {
|
||||
return true;
|
||||
} else {
|
||||
switch (key) {
|
||||
case KEY_NO_SCHEDULE:
|
||||
Settings.Global.putInt(resolver, Global.AUTOMATIC_POWER_SAVE_MODE,
|
||||
PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
|
||||
Settings.Global.putInt(resolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
|
||||
break;
|
||||
case KEY_PERCENTAGE:
|
||||
Settings.Global.putInt(resolver, Global.AUTOMATIC_POWER_SAVE_MODE,
|
||||
PowerManager.POWER_SAVE_MODE_TRIGGER_PERCENTAGE);
|
||||
Settings.Global.putInt(resolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, 5);
|
||||
triggerLevel = 5;
|
||||
break;
|
||||
case KEY_ROUTINE:
|
||||
Settings.Global.putInt(resolver, Global.AUTOMATIC_POWER_SAVE_MODE,
|
||||
PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC);
|
||||
mode = PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC;
|
||||
break;
|
||||
default:
|
||||
throw new IllegalStateException(
|
||||
"Not a valid key for " + this.getClass().getSimpleName());
|
||||
}
|
||||
}
|
||||
|
||||
// Trigger level is intentionally left alone when going between dynamic and percentage modes
|
||||
// so that a users percentage based schedule is preserved when they toggle between the two.
|
||||
Settings.Global.putInt(resolver, Global.AUTOMATIC_POWER_SAVE_MODE, mode);
|
||||
if (mode != PowerManager.POWER_SAVE_MODE_TRIGGER_DYNAMIC) {
|
||||
Settings.Global.putInt(resolver, Global.LOW_POWER_MODE_TRIGGER_LEVEL, triggerLevel);
|
||||
}
|
||||
mSeekBarController.updateSeekBar();
|
||||
return true;
|
||||
}
|
||||
|
@@ -7,6 +7,7 @@ import android.content.Context;
|
||||
import android.os.PowerManager;
|
||||
import android.provider.Settings;
|
||||
import android.provider.Settings.Global;
|
||||
import android.provider.Settings.Secure;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -54,4 +55,13 @@ public class BatterySaverScheduleRadioButtonsControllerTest {
|
||||
assertThat(mController.getDefaultKey())
|
||||
.isEqualTo(BatterySaverScheduleRadioButtonsController.KEY_NO_SCHEDULE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setDefaultKey_any_defaultsToNoScheduleIfWarningNotSeen() {
|
||||
Secure.putString(
|
||||
mContext.getContentResolver(), Secure.LOW_POWER_WARNING_ACKNOWLEDGED, "null");
|
||||
mController.setDefaultKey(BatterySaverScheduleRadioButtonsController.KEY_ROUTINE);
|
||||
assertThat(mController.getDefaultKey())
|
||||
.isEqualTo(BatterySaverScheduleRadioButtonsController.KEY_NO_SCHEDULE);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user