Loading services/core/java/com/android/server/power/BatterySaverPolicy.java +6 −1 Original line number Diff line number Diff line Loading @@ -310,6 +310,11 @@ public class BatterySaverPolicy extends ContentObserver { return R.string.config_batterySaverDeviceSpecificConfig; } @VisibleForTesting boolean isAccessibilityEnabled() { return mAccessibilityManager.isEnabled(); } @Override public void onChange(boolean selfChange, Uri uri) { refreshSettings(); Loading Loading @@ -403,7 +408,7 @@ public class BatterySaverPolicy extends ContentObserver { parser.getString(KEY_CPU_FREQ_NONINTERACTIVE, "")).toSysFileMap(); // Update the effective policy. mAccessibilityEnabled = mAccessibilityManager.isEnabled(); mAccessibilityEnabled = isAccessibilityEnabled(); mVibrationDisabledEffective = mVibrationDisabledConfig && !mAccessibilityEnabled; // Don't disable vibration when accessibility is on. Loading services/tests/servicestests/src/com/android/server/power/BatterySaverPolicyTest.java +30 −7 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.server.power; import android.os.PowerManager; import android.os.PowerManager.ServiceType; import android.os.PowerSaveState; import android.os.Handler; Loading @@ -41,7 +42,8 @@ public class BatterySaverPolicyTest extends AndroidTestCase { private static final float DEFAULT_BRIGHTNESS_FACTOR = 0.5f; private static final float PRECISION = 0.001f; private static final int GPS_MODE = 0; private static final int DEFAULT_GPS_MODE = 0; private static final int DEFAULT_GPS_MODE = PowerManager.LOCATION_MODE_ALL_DISABLED_WHEN_SCREEN_OFF; private static final String BATTERY_SAVER_CONSTANTS = "vibration_disabled=true," + "animation_disabled=false," + "soundtrigger_disabled=true," Loading Loading @@ -69,6 +71,10 @@ public class BatterySaverPolicyTest extends AndroidTestCase { return mDeviceSpecificConfigResId; } @Override boolean isAccessibilityEnabled() { return mMockAccessibilityEnabled; } @VisibleForTesting void onChange() { Loading @@ -83,11 +89,15 @@ public class BatterySaverPolicyTest extends AndroidTestCase { private final ArrayMap<String, String> mMockGlobalSettings = new ArrayMap<>(); private int mDeviceSpecificConfigResId = R.string.config_batterySaverDeviceSpecificConfig_1; private boolean mMockAccessibilityEnabled; public void setUp() throws Exception { super.setUp(); MockitoAnnotations.initMocks(this); mBatterySaverPolicy = new BatterySaverPolicyForTest(mHandler); mBatterySaverPolicy.systemReady(getContext()); mMockAccessibilityEnabled = false; } @SmallTest Loading @@ -100,6 +110,12 @@ public class BatterySaverPolicyTest extends AndroidTestCase { testServiceDefaultValue(ServiceType.VIBRATION); } @SmallTest public void testGetBatterySaverPolicy_PolicyVibration_WithAccessibilityEnabled() { mMockAccessibilityEnabled = true; testServiceDefaultValue_unchanged(ServiceType.VIBRATION); } @SmallTest public void testGetBatterySaverPolicy_PolicySound_DefaultValueCorrect() { testServiceDefaultValue(ServiceType.SOUND); Loading @@ -117,7 +133,7 @@ public class BatterySaverPolicyTest extends AndroidTestCase { @SmallTest public void testGetBatterySaverPolicy_PolicyAnimation_DefaultValueCorrect() { testServiceDefaultValue(ServiceType.ANIMATION); testServiceDefaultValue_unchanged(ServiceType.ANIMATION); } @SmallTest Loading @@ -144,11 +160,7 @@ public class BatterySaverPolicyTest extends AndroidTestCase { @SmallTest public void testGetBatterySaverPolicy_PolicyScreenBrightness_DefaultValueCorrect() { testServiceDefaultValue(ServiceType.SCREEN_BRIGHTNESS); PowerSaveState stateOn = mBatterySaverPolicy.getBatterySaverPolicy(ServiceType.SCREEN_BRIGHTNESS, true); assertThat(stateOn.brightnessFactor).isWithin(PRECISION).of(DEFAULT_BRIGHTNESS_FACTOR); testServiceDefaultValue_unchanged(ServiceType.SCREEN_BRIGHTNESS); } @SmallTest Loading Loading @@ -222,6 +234,17 @@ public class BatterySaverPolicyTest extends AndroidTestCase { assertThat(batterySaverStateOff.batterySaverEnabled).isFalse(); } private void testServiceDefaultValue_unchanged(@ServiceType int type) { mBatterySaverPolicy.updateConstantsLocked("", ""); final PowerSaveState batterySaverStateOn = mBatterySaverPolicy.getBatterySaverPolicy(type, BATTERY_SAVER_ON); assertThat(batterySaverStateOn.batterySaverEnabled).isFalse(); final PowerSaveState batterySaverStateOff = mBatterySaverPolicy.getBatterySaverPolicy(type, BATTERY_SAVER_OFF); assertThat(batterySaverStateOff.batterySaverEnabled).isFalse(); } public void testDeviceSpecific() { mDeviceSpecificConfigResId = R.string.config_batterySaverDeviceSpecificConfig_1; mMockGlobalSettings.put(Global.BATTERY_SAVER_CONSTANTS, ""); Loading Loading
services/core/java/com/android/server/power/BatterySaverPolicy.java +6 −1 Original line number Diff line number Diff line Loading @@ -310,6 +310,11 @@ public class BatterySaverPolicy extends ContentObserver { return R.string.config_batterySaverDeviceSpecificConfig; } @VisibleForTesting boolean isAccessibilityEnabled() { return mAccessibilityManager.isEnabled(); } @Override public void onChange(boolean selfChange, Uri uri) { refreshSettings(); Loading Loading @@ -403,7 +408,7 @@ public class BatterySaverPolicy extends ContentObserver { parser.getString(KEY_CPU_FREQ_NONINTERACTIVE, "")).toSysFileMap(); // Update the effective policy. mAccessibilityEnabled = mAccessibilityManager.isEnabled(); mAccessibilityEnabled = isAccessibilityEnabled(); mVibrationDisabledEffective = mVibrationDisabledConfig && !mAccessibilityEnabled; // Don't disable vibration when accessibility is on. Loading
services/tests/servicestests/src/com/android/server/power/BatterySaverPolicyTest.java +30 −7 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.server.power; import android.os.PowerManager; import android.os.PowerManager.ServiceType; import android.os.PowerSaveState; import android.os.Handler; Loading @@ -41,7 +42,8 @@ public class BatterySaverPolicyTest extends AndroidTestCase { private static final float DEFAULT_BRIGHTNESS_FACTOR = 0.5f; private static final float PRECISION = 0.001f; private static final int GPS_MODE = 0; private static final int DEFAULT_GPS_MODE = 0; private static final int DEFAULT_GPS_MODE = PowerManager.LOCATION_MODE_ALL_DISABLED_WHEN_SCREEN_OFF; private static final String BATTERY_SAVER_CONSTANTS = "vibration_disabled=true," + "animation_disabled=false," + "soundtrigger_disabled=true," Loading Loading @@ -69,6 +71,10 @@ public class BatterySaverPolicyTest extends AndroidTestCase { return mDeviceSpecificConfigResId; } @Override boolean isAccessibilityEnabled() { return mMockAccessibilityEnabled; } @VisibleForTesting void onChange() { Loading @@ -83,11 +89,15 @@ public class BatterySaverPolicyTest extends AndroidTestCase { private final ArrayMap<String, String> mMockGlobalSettings = new ArrayMap<>(); private int mDeviceSpecificConfigResId = R.string.config_batterySaverDeviceSpecificConfig_1; private boolean mMockAccessibilityEnabled; public void setUp() throws Exception { super.setUp(); MockitoAnnotations.initMocks(this); mBatterySaverPolicy = new BatterySaverPolicyForTest(mHandler); mBatterySaverPolicy.systemReady(getContext()); mMockAccessibilityEnabled = false; } @SmallTest Loading @@ -100,6 +110,12 @@ public class BatterySaverPolicyTest extends AndroidTestCase { testServiceDefaultValue(ServiceType.VIBRATION); } @SmallTest public void testGetBatterySaverPolicy_PolicyVibration_WithAccessibilityEnabled() { mMockAccessibilityEnabled = true; testServiceDefaultValue_unchanged(ServiceType.VIBRATION); } @SmallTest public void testGetBatterySaverPolicy_PolicySound_DefaultValueCorrect() { testServiceDefaultValue(ServiceType.SOUND); Loading @@ -117,7 +133,7 @@ public class BatterySaverPolicyTest extends AndroidTestCase { @SmallTest public void testGetBatterySaverPolicy_PolicyAnimation_DefaultValueCorrect() { testServiceDefaultValue(ServiceType.ANIMATION); testServiceDefaultValue_unchanged(ServiceType.ANIMATION); } @SmallTest Loading @@ -144,11 +160,7 @@ public class BatterySaverPolicyTest extends AndroidTestCase { @SmallTest public void testGetBatterySaverPolicy_PolicyScreenBrightness_DefaultValueCorrect() { testServiceDefaultValue(ServiceType.SCREEN_BRIGHTNESS); PowerSaveState stateOn = mBatterySaverPolicy.getBatterySaverPolicy(ServiceType.SCREEN_BRIGHTNESS, true); assertThat(stateOn.brightnessFactor).isWithin(PRECISION).of(DEFAULT_BRIGHTNESS_FACTOR); testServiceDefaultValue_unchanged(ServiceType.SCREEN_BRIGHTNESS); } @SmallTest Loading Loading @@ -222,6 +234,17 @@ public class BatterySaverPolicyTest extends AndroidTestCase { assertThat(batterySaverStateOff.batterySaverEnabled).isFalse(); } private void testServiceDefaultValue_unchanged(@ServiceType int type) { mBatterySaverPolicy.updateConstantsLocked("", ""); final PowerSaveState batterySaverStateOn = mBatterySaverPolicy.getBatterySaverPolicy(type, BATTERY_SAVER_ON); assertThat(batterySaverStateOn.batterySaverEnabled).isFalse(); final PowerSaveState batterySaverStateOff = mBatterySaverPolicy.getBatterySaverPolicy(type, BATTERY_SAVER_OFF); assertThat(batterySaverStateOff.batterySaverEnabled).isFalse(); } public void testDeviceSpecific() { mDeviceSpecificConfigResId = R.string.config_batterySaverDeviceSpecificConfig_1; mMockGlobalSettings.put(Global.BATTERY_SAVER_CONSTANTS, ""); Loading