Fix BatterySaverPolicy night mode flag parsing.

BatterySaverPolicy incorrectly negated the enable_night_mode flag,
so when the flag was set to true, night mode was disabled, and vice
versa. This didn't affect the default value, just when the key was
set via string constants.

Bug: 127356043
Test: atest com.android.server.power.batterysaver.BatterySaverPolicyTest
Change-Id: I45d0fc30ea0348eefc706cf67c8820d0cbb5f3a1
This commit is contained in:
Kweku Adams
2019-03-04 17:16:02 -08:00
parent 24ed9e4f35
commit 44e6280897
2 changed files with 7 additions and 2 deletions

View File

@@ -728,8 +728,8 @@ public class BatterySaverPolicy extends ContentObserver {
!defaultPolicy.enableDataSaver);
boolean enableFirewall = !parser.getBoolean(KEY_ACTIVATE_FIREWALL_DISABLED,
!defaultPolicy.enableFirewall);
boolean enableNightMode = !parser.getBoolean(KEY_ENABLE_NIGHT_MODE,
!defaultPolicy.enableNightMode);
boolean enableNightMode = parser.getBoolean(KEY_ENABLE_NIGHT_MODE,
defaultPolicy.enableNightMode);
boolean enableQuickDoze = parser.getBoolean(KEY_QUICK_DOZE_ENABLED,
defaultPolicy.enableQuickDoze);
boolean forceAllAppsStandby = parser.getBoolean(KEY_FORCE_ALL_APPS_STANDBY,

View File

@@ -58,6 +58,7 @@ public class BatterySaverPolicyTest extends AndroidTestCase {
+ "fullbackup_deferred=true,"
+ "keyvaluebackup_deferred=false,"
+ "gps_mode=0," // LOCATION_MODE_NO_CHANGE
+ "enable_night_mode=false,"
+ "quick_doze_enabled=true";
private static final String BATTERY_SAVER_INCORRECT_CONSTANTS = "vi*,!=,,true";
@@ -234,6 +235,10 @@ public class BatterySaverPolicyTest extends AndroidTestCase {
final PowerSaveState quickDozeState = mBatterySaverPolicy.getBatterySaverPolicy(
ServiceType.QUICK_DOZE);
assertThat(quickDozeState.batterySaverEnabled).isTrue();
final PowerSaveState nightModeState = mBatterySaverPolicy.getBatterySaverPolicy(
ServiceType.NIGHT_MODE);
assertThat(nightModeState.batterySaverEnabled).isFalse();
}
@SmallTest