Wait to handle a pending lock until after keyguardGoingAway = false.
If we attempt to re-lock the device in the middle of the unlock sequence, we can end up in a partially or totally unlocked state indefinitely. This should have occurred any time the device was re-locked during unlock. However, the UnlockedScreenOffAnimation delays the pending lock until after the animation ends. This meant that it was ~always applied after the going away sequence had already ended. Because we still can't smoothly animate from the shade to AOD, we disable the unlocked screen off animation temporarily when the shade is expanded. During an activity launch from a notification, we leave the shade expanded for the animation. This meant that the screen off animation was disabled when the power button was pressed during activity launch, so we applied the lock immediately, where it was subsequently re-unlocked by the launch animator's end callbacks. Fixes: 220907477 Test: atest SystemUITests Test: No lock screen set, w/ AOD: PASS Test: No lock screen set, no AOD: PASS Test: Swipe, w/ AOD: PASS Test: Swipe, no AOD: PASS Test: PIN, w/ AOD: PASS Test: PIN, no AOD: PASS Test: PIN, w/ AOD, power button does not instantly lock, unlock in < 5s: PASS (does not lock) Test: PIN, w/ AOD, power button does not instantly lock, unlock in > 5s: PASS Test: PIN, no AOD, power button does not instantly lock, unlock in < 5s: PASS (does not lock) Test: PIN, no AOD, power button does not instantly lock, unlock in > 5s: PASS Test: UDFPS, w/ AOD: PASS Test: UDFPS, no AOD: PASS Change-Id: I5ca6f7be21f6c68471fb9e66f9fa1ee65d7ffaaf
Loading
Please register or sign in to comment