Loading services/core/java/com/android/server/power/Notifier.java +1 −1 Original line number Diff line number Diff line Loading @@ -454,7 +454,7 @@ public class Notifier { int ownerUid, int ownerPid, WorkSource workSource, String historyTag, IWakeLockCallback callback) { onWakeLockReleased(flags, tag, packageName, ownerUid, ownerPid, workSource, historyTag, callback, ScreenTimeoutOverridePolicy.RELEASE_REASON_UNKNOWN); callback, ScreenTimeoutOverridePolicy.RELEASE_REASON_NOT_ACQUIRED); } /** Loading services/core/java/com/android/server/power/PowerManagerService.java +4 −4 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ import static com.android.internal.util.LatencyTracker.ACTION_TURN_ON_SCREEN; import static com.android.server.deviceidle.Flags.disableWakelocksInLightIdle; import static com.android.server.display.DisplayDeviceConfig.INVALID_BRIGHTNESS_IN_CONFIG; import static com.android.server.display.brightness.BrightnessUtils.isValidBrightnessValue; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_UNKNOWN; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_NOT_ACQUIRED; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_WAKE_LOCK_DEATH; import android.annotation.IntDef; Loading Loading @@ -1879,7 +1879,7 @@ public final class PowerManagerService extends SystemService @GuardedBy("mLock") private void removeWakeLockNoUpdateLocked(WakeLock wakeLock, int index) { removeWakeLockNoUpdateLocked(wakeLock, index, ScreenTimeoutOverridePolicy.RELEASE_REASON_UNKNOWN); ScreenTimeoutOverridePolicy.RELEASE_REASON_NOT_ACQUIRED); } @GuardedBy("mLock") Loading Loading @@ -2065,7 +2065,7 @@ public final class PowerManagerService extends SystemService @GuardedBy("mLock") private void notifyWakeLockReleasedLocked(WakeLock wakeLock) { notifyWakeLockReleasedLocked(wakeLock, RELEASE_REASON_UNKNOWN); notifyWakeLockReleasedLocked(wakeLock, RELEASE_REASON_NOT_ACQUIRED); } @GuardedBy("mLock") Loading Loading @@ -2195,7 +2195,7 @@ public final class PowerManagerService extends SystemService mAttentionDetector.onUserActivity(eventTime, event); if (mScreenTimeoutOverridePolicy != null) { mScreenTimeoutOverridePolicy.onUserActivity(mWakeLockSummary, event); mScreenTimeoutOverridePolicy.onUserActivity(mWakeLockSummary, event, flags); } if (mUserInactiveOverrideFromWindowManager) { Loading services/core/java/com/android/server/power/ScreenTimeoutOverridePolicy.java +9 −5 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.server.power; import static android.os.PowerManager.USER_ACTIVITY_FLAG_INDIRECT; import static com.android.server.power.PowerManagerService.WAKE_LOCK_BUTTON_BRIGHT; import static com.android.server.power.PowerManagerService.WAKE_LOCK_SCREEN_BRIGHT; import static com.android.server.power.PowerManagerService.WAKE_LOCK_SCREEN_DIM; Loading Loading @@ -46,7 +48,7 @@ final class ScreenTimeoutOverridePolicy { /** * Release reason code: The wake lock is never acquired. */ public static final int RELEASE_REASON_UNKNOWN = -1; public static final int RELEASE_REASON_NOT_ACQUIRED = -1; /** * Release reason code: The wake lock can't be acquired because of screen off. Loading Loading @@ -92,7 +94,7 @@ final class ScreenTimeoutOverridePolicy { * @hide */ @IntDef(prefix = { "RELEASE_REASON_" }, value = { RELEASE_REASON_UNKNOWN, RELEASE_REASON_NOT_ACQUIRED, RELEASE_REASON_NON_INTERACTIVE, RELEASE_REASON_SCREEN_LOCK, RELEASE_REASON_USER_ACTIVITY_ATTENTION, Loading @@ -109,7 +111,7 @@ final class ScreenTimeoutOverridePolicy { private long mScreenTimeoutOverrideConfig; // The last reason that wake locks had been released by service. private @ReleaseReason int mLastAutoReleaseReason = RELEASE_REASON_UNKNOWN; private @ReleaseReason int mLastAutoReleaseReason = RELEASE_REASON_NOT_ACQUIRED; interface PolicyCallback { /** Loading Loading @@ -150,8 +152,10 @@ final class ScreenTimeoutOverridePolicy { /** * Called when the policy have to release all wake lock when user activity occurred. */ void onUserActivity(int wakeLockSummary, @PowerManager.UserActivityEvent int event) { if (!isWakeLockAcquired(wakeLockSummary)) { void onUserActivity(int wakeLockSummary, @PowerManager.UserActivityEvent int event, int flags) { if (!isWakeLockAcquired(wakeLockSummary) || (flags & USER_ACTIVITY_FLAG_INDIRECT) != 0) { // Do not release wake lock when there is no wake lock hold or the flag hints not to // reset the user activity timeout. return; } Loading services/core/java/com/android/server/power/WakefulnessSessionObserver.java +3 −2 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ import static android.view.Display.DEFAULT_DISPLAY; import static com.android.server.power.ScreenTimeoutConstants.DEFAULT_SCREEN_OFF_TIMEOUT; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_NON_INTERACTIVE; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_SCREEN_LOCK; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_UNKNOWN; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_NOT_ACQUIRED; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_USER_ACTIVITY_ACCESSIBILITY; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_USER_ACTIVITY_ATTENTION; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_USER_ACTIVITY_BUTTON; Loading Loading @@ -492,7 +492,8 @@ public class WakefulnessSessionObserver { mOverrideTimeoutMs, screenOffTimeoutMs); mSendOverrideTimeoutLogTimestamp = eventTime; mTimeoutOverrideReleaseReason = RELEASE_REASON_UNKNOWN; // reset the reason // Reset the reason after applied. mTimeoutOverrideReleaseReason = RELEASE_REASON_NOT_ACQUIRED; } checkAndLogDimIfQualified(POLICY_REASON_OFF_POWER_BUTTON, eventTime); Loading services/tests/powerservicetests/src/com/android/server/power/ScreenTimeoutOverridePolicyTest.java +35 −11 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.power; import static android.os.PowerManager.USER_ACTIVITY_FLAG_INDIRECT; import static android.os.PowerManagerInternal.WAKEFULNESS_ASLEEP; import static android.os.PowerManagerInternal.WAKEFULNESS_AWAKE; import static android.os.PowerManagerInternal.WAKEFULNESS_DOZING; Loading @@ -28,7 +29,7 @@ import static com.android.server.power.PowerManagerService.WAKE_LOCK_SCREEN_DIM; import static com.android.server.power.PowerManagerService.WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_NON_INTERACTIVE; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_SCREEN_LOCK; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_UNKNOWN; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_NOT_ACQUIRED; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_USER_ACTIVITY_ACCESSIBILITY; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_USER_ACTIVITY_ATTENTION; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_USER_ACTIVITY_BUTTON; Loading Loading @@ -63,7 +64,7 @@ public class ScreenTimeoutOverridePolicyTest { private ScreenTimeoutOverridePolicy mScreenTimeoutOverridePolicy; private ScreenTimeoutOverridePolicy.PolicyCallback mPolicyCallback; private int mReleaseReason = RELEASE_REASON_UNKNOWN; private int mReleaseReason = RELEASE_REASON_NOT_ACQUIRED; @Before public void setUp() { Loading @@ -83,30 +84,53 @@ public class ScreenTimeoutOverridePolicyTest { @Test public void testUserActivity() { mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_ATTENTION); PowerManager.USER_ACTIVITY_EVENT_ATTENTION, 0); verifyReason(RELEASE_REASON_USER_ACTIVITY_ATTENTION); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_OTHER); PowerManager.USER_ACTIVITY_EVENT_OTHER, 0); verifyReason(RELEASE_REASON_USER_ACTIVITY_OTHER); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_BUTTON); PowerManager.USER_ACTIVITY_EVENT_BUTTON, 0); verifyReason(RELEASE_REASON_USER_ACTIVITY_BUTTON); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_TOUCH); PowerManager.USER_ACTIVITY_EVENT_TOUCH, 0); verifyReason(RELEASE_REASON_USER_ACTIVITY_TOUCH); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_ACCESSIBILITY); PowerManager.USER_ACTIVITY_EVENT_ACCESSIBILITY, 0); verifyReason(RELEASE_REASON_USER_ACTIVITY_ACCESSIBILITY); } @Test public void testUserActivityIndirect() { mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_ATTENTION, USER_ACTIVITY_FLAG_INDIRECT); verifyReason(RELEASE_REASON_NOT_ACQUIRED); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_OTHER, USER_ACTIVITY_FLAG_INDIRECT); verifyReason(RELEASE_REASON_NOT_ACQUIRED); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_BUTTON, USER_ACTIVITY_FLAG_INDIRECT); verifyReason(RELEASE_REASON_NOT_ACQUIRED); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_TOUCH, USER_ACTIVITY_FLAG_INDIRECT); verifyReason(RELEASE_REASON_NOT_ACQUIRED); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_ACCESSIBILITY, USER_ACTIVITY_FLAG_INDIRECT); verifyReason(RELEASE_REASON_NOT_ACQUIRED); } @Test public void testScreenWakeLock() { mScreenTimeoutOverridePolicy.checkScreenWakeLock(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE); verifyReason(RELEASE_REASON_UNKNOWN); verifyReason(RELEASE_REASON_NOT_ACQUIRED); mScreenTimeoutOverridePolicy.checkScreenWakeLock( WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE | WAKE_LOCK_SCREEN_BRIGHT); Loading @@ -126,11 +150,11 @@ public class ScreenTimeoutOverridePolicyTest { public void testWakefulnessChange() { mScreenTimeoutOverridePolicy.onWakefulnessChange( WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, WAKEFULNESS_AWAKE); verifyReason(RELEASE_REASON_UNKNOWN); verifyReason(RELEASE_REASON_NOT_ACQUIRED); mScreenTimeoutOverridePolicy.onWakefulnessChange( WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, WAKEFULNESS_DREAMING); verifyReason(RELEASE_REASON_UNKNOWN); verifyReason(RELEASE_REASON_NOT_ACQUIRED); mScreenTimeoutOverridePolicy.onWakefulnessChange( WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, WAKEFULNESS_ASLEEP); Loading @@ -143,6 +167,6 @@ public class ScreenTimeoutOverridePolicyTest { private void verifyReason(int expectedReason) { assertThat(mReleaseReason).isEqualTo(expectedReason); mReleaseReason = RELEASE_REASON_UNKNOWN; mReleaseReason = RELEASE_REASON_NOT_ACQUIRED; } } Loading
services/core/java/com/android/server/power/Notifier.java +1 −1 Original line number Diff line number Diff line Loading @@ -454,7 +454,7 @@ public class Notifier { int ownerUid, int ownerPid, WorkSource workSource, String historyTag, IWakeLockCallback callback) { onWakeLockReleased(flags, tag, packageName, ownerUid, ownerPid, workSource, historyTag, callback, ScreenTimeoutOverridePolicy.RELEASE_REASON_UNKNOWN); callback, ScreenTimeoutOverridePolicy.RELEASE_REASON_NOT_ACQUIRED); } /** Loading
services/core/java/com/android/server/power/PowerManagerService.java +4 −4 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ import static com.android.internal.util.LatencyTracker.ACTION_TURN_ON_SCREEN; import static com.android.server.deviceidle.Flags.disableWakelocksInLightIdle; import static com.android.server.display.DisplayDeviceConfig.INVALID_BRIGHTNESS_IN_CONFIG; import static com.android.server.display.brightness.BrightnessUtils.isValidBrightnessValue; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_UNKNOWN; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_NOT_ACQUIRED; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_WAKE_LOCK_DEATH; import android.annotation.IntDef; Loading Loading @@ -1879,7 +1879,7 @@ public final class PowerManagerService extends SystemService @GuardedBy("mLock") private void removeWakeLockNoUpdateLocked(WakeLock wakeLock, int index) { removeWakeLockNoUpdateLocked(wakeLock, index, ScreenTimeoutOverridePolicy.RELEASE_REASON_UNKNOWN); ScreenTimeoutOverridePolicy.RELEASE_REASON_NOT_ACQUIRED); } @GuardedBy("mLock") Loading Loading @@ -2065,7 +2065,7 @@ public final class PowerManagerService extends SystemService @GuardedBy("mLock") private void notifyWakeLockReleasedLocked(WakeLock wakeLock) { notifyWakeLockReleasedLocked(wakeLock, RELEASE_REASON_UNKNOWN); notifyWakeLockReleasedLocked(wakeLock, RELEASE_REASON_NOT_ACQUIRED); } @GuardedBy("mLock") Loading Loading @@ -2195,7 +2195,7 @@ public final class PowerManagerService extends SystemService mAttentionDetector.onUserActivity(eventTime, event); if (mScreenTimeoutOverridePolicy != null) { mScreenTimeoutOverridePolicy.onUserActivity(mWakeLockSummary, event); mScreenTimeoutOverridePolicy.onUserActivity(mWakeLockSummary, event, flags); } if (mUserInactiveOverrideFromWindowManager) { Loading
services/core/java/com/android/server/power/ScreenTimeoutOverridePolicy.java +9 −5 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.server.power; import static android.os.PowerManager.USER_ACTIVITY_FLAG_INDIRECT; import static com.android.server.power.PowerManagerService.WAKE_LOCK_BUTTON_BRIGHT; import static com.android.server.power.PowerManagerService.WAKE_LOCK_SCREEN_BRIGHT; import static com.android.server.power.PowerManagerService.WAKE_LOCK_SCREEN_DIM; Loading Loading @@ -46,7 +48,7 @@ final class ScreenTimeoutOverridePolicy { /** * Release reason code: The wake lock is never acquired. */ public static final int RELEASE_REASON_UNKNOWN = -1; public static final int RELEASE_REASON_NOT_ACQUIRED = -1; /** * Release reason code: The wake lock can't be acquired because of screen off. Loading Loading @@ -92,7 +94,7 @@ final class ScreenTimeoutOverridePolicy { * @hide */ @IntDef(prefix = { "RELEASE_REASON_" }, value = { RELEASE_REASON_UNKNOWN, RELEASE_REASON_NOT_ACQUIRED, RELEASE_REASON_NON_INTERACTIVE, RELEASE_REASON_SCREEN_LOCK, RELEASE_REASON_USER_ACTIVITY_ATTENTION, Loading @@ -109,7 +111,7 @@ final class ScreenTimeoutOverridePolicy { private long mScreenTimeoutOverrideConfig; // The last reason that wake locks had been released by service. private @ReleaseReason int mLastAutoReleaseReason = RELEASE_REASON_UNKNOWN; private @ReleaseReason int mLastAutoReleaseReason = RELEASE_REASON_NOT_ACQUIRED; interface PolicyCallback { /** Loading Loading @@ -150,8 +152,10 @@ final class ScreenTimeoutOverridePolicy { /** * Called when the policy have to release all wake lock when user activity occurred. */ void onUserActivity(int wakeLockSummary, @PowerManager.UserActivityEvent int event) { if (!isWakeLockAcquired(wakeLockSummary)) { void onUserActivity(int wakeLockSummary, @PowerManager.UserActivityEvent int event, int flags) { if (!isWakeLockAcquired(wakeLockSummary) || (flags & USER_ACTIVITY_FLAG_INDIRECT) != 0) { // Do not release wake lock when there is no wake lock hold or the flag hints not to // reset the user activity timeout. return; } Loading
services/core/java/com/android/server/power/WakefulnessSessionObserver.java +3 −2 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ import static android.view.Display.DEFAULT_DISPLAY; import static com.android.server.power.ScreenTimeoutConstants.DEFAULT_SCREEN_OFF_TIMEOUT; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_NON_INTERACTIVE; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_SCREEN_LOCK; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_UNKNOWN; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_NOT_ACQUIRED; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_USER_ACTIVITY_ACCESSIBILITY; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_USER_ACTIVITY_ATTENTION; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_USER_ACTIVITY_BUTTON; Loading Loading @@ -492,7 +492,8 @@ public class WakefulnessSessionObserver { mOverrideTimeoutMs, screenOffTimeoutMs); mSendOverrideTimeoutLogTimestamp = eventTime; mTimeoutOverrideReleaseReason = RELEASE_REASON_UNKNOWN; // reset the reason // Reset the reason after applied. mTimeoutOverrideReleaseReason = RELEASE_REASON_NOT_ACQUIRED; } checkAndLogDimIfQualified(POLICY_REASON_OFF_POWER_BUTTON, eventTime); Loading
services/tests/powerservicetests/src/com/android/server/power/ScreenTimeoutOverridePolicyTest.java +35 −11 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.power; import static android.os.PowerManager.USER_ACTIVITY_FLAG_INDIRECT; import static android.os.PowerManagerInternal.WAKEFULNESS_ASLEEP; import static android.os.PowerManagerInternal.WAKEFULNESS_AWAKE; import static android.os.PowerManagerInternal.WAKEFULNESS_DOZING; Loading @@ -28,7 +29,7 @@ import static com.android.server.power.PowerManagerService.WAKE_LOCK_SCREEN_DIM; import static com.android.server.power.PowerManagerService.WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_NON_INTERACTIVE; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_SCREEN_LOCK; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_UNKNOWN; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_NOT_ACQUIRED; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_USER_ACTIVITY_ACCESSIBILITY; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_USER_ACTIVITY_ATTENTION; import static com.android.server.power.ScreenTimeoutOverridePolicy.RELEASE_REASON_USER_ACTIVITY_BUTTON; Loading Loading @@ -63,7 +64,7 @@ public class ScreenTimeoutOverridePolicyTest { private ScreenTimeoutOverridePolicy mScreenTimeoutOverridePolicy; private ScreenTimeoutOverridePolicy.PolicyCallback mPolicyCallback; private int mReleaseReason = RELEASE_REASON_UNKNOWN; private int mReleaseReason = RELEASE_REASON_NOT_ACQUIRED; @Before public void setUp() { Loading @@ -83,30 +84,53 @@ public class ScreenTimeoutOverridePolicyTest { @Test public void testUserActivity() { mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_ATTENTION); PowerManager.USER_ACTIVITY_EVENT_ATTENTION, 0); verifyReason(RELEASE_REASON_USER_ACTIVITY_ATTENTION); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_OTHER); PowerManager.USER_ACTIVITY_EVENT_OTHER, 0); verifyReason(RELEASE_REASON_USER_ACTIVITY_OTHER); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_BUTTON); PowerManager.USER_ACTIVITY_EVENT_BUTTON, 0); verifyReason(RELEASE_REASON_USER_ACTIVITY_BUTTON); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_TOUCH); PowerManager.USER_ACTIVITY_EVENT_TOUCH, 0); verifyReason(RELEASE_REASON_USER_ACTIVITY_TOUCH); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_ACCESSIBILITY); PowerManager.USER_ACTIVITY_EVENT_ACCESSIBILITY, 0); verifyReason(RELEASE_REASON_USER_ACTIVITY_ACCESSIBILITY); } @Test public void testUserActivityIndirect() { mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_ATTENTION, USER_ACTIVITY_FLAG_INDIRECT); verifyReason(RELEASE_REASON_NOT_ACQUIRED); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_OTHER, USER_ACTIVITY_FLAG_INDIRECT); verifyReason(RELEASE_REASON_NOT_ACQUIRED); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_BUTTON, USER_ACTIVITY_FLAG_INDIRECT); verifyReason(RELEASE_REASON_NOT_ACQUIRED); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_TOUCH, USER_ACTIVITY_FLAG_INDIRECT); verifyReason(RELEASE_REASON_NOT_ACQUIRED); mScreenTimeoutOverridePolicy.onUserActivity(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, PowerManager.USER_ACTIVITY_EVENT_ACCESSIBILITY, USER_ACTIVITY_FLAG_INDIRECT); verifyReason(RELEASE_REASON_NOT_ACQUIRED); } @Test public void testScreenWakeLock() { mScreenTimeoutOverridePolicy.checkScreenWakeLock(WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE); verifyReason(RELEASE_REASON_UNKNOWN); verifyReason(RELEASE_REASON_NOT_ACQUIRED); mScreenTimeoutOverridePolicy.checkScreenWakeLock( WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE | WAKE_LOCK_SCREEN_BRIGHT); Loading @@ -126,11 +150,11 @@ public class ScreenTimeoutOverridePolicyTest { public void testWakefulnessChange() { mScreenTimeoutOverridePolicy.onWakefulnessChange( WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, WAKEFULNESS_AWAKE); verifyReason(RELEASE_REASON_UNKNOWN); verifyReason(RELEASE_REASON_NOT_ACQUIRED); mScreenTimeoutOverridePolicy.onWakefulnessChange( WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, WAKEFULNESS_DREAMING); verifyReason(RELEASE_REASON_UNKNOWN); verifyReason(RELEASE_REASON_NOT_ACQUIRED); mScreenTimeoutOverridePolicy.onWakefulnessChange( WAKE_LOCK_SCREEN_TIMEOUT_OVERRIDE, WAKEFULNESS_ASLEEP); Loading @@ -143,6 +167,6 @@ public class ScreenTimeoutOverridePolicyTest { private void verifyReason(int expectedReason) { assertThat(mReleaseReason).isEqualTo(expectedReason); mReleaseReason = RELEASE_REASON_UNKNOWN; mReleaseReason = RELEASE_REASON_NOT_ACQUIRED; } }