From 44e62808976b92916dc29c7e746b82387782ec49 Mon Sep 17 00:00:00 2001 From: Kweku Adams Date: Mon, 4 Mar 2019 17:16:02 -0800 Subject: [PATCH] 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 --- .../server/power/batterysaver/BatterySaverPolicy.java | 4 ++-- .../server/power/batterysaver/BatterySaverPolicyTest.java | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/power/batterysaver/BatterySaverPolicy.java b/services/core/java/com/android/server/power/batterysaver/BatterySaverPolicy.java index fac95f9af42c0..f23b68e28c346 100644 --- a/services/core/java/com/android/server/power/batterysaver/BatterySaverPolicy.java +++ b/services/core/java/com/android/server/power/batterysaver/BatterySaverPolicy.java @@ -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, diff --git a/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySaverPolicyTest.java b/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySaverPolicyTest.java index 5c0a1c83b1b05..98cfc41ccfa8e 100644 --- a/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySaverPolicyTest.java +++ b/services/tests/servicestests/src/com/android/server/power/batterysaver/BatterySaverPolicyTest.java @@ -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