[flexiglass] Fix for "return to lockscreen" bug.
This is a highly complex bug that started occurring following the integration of the KeguardTransition framework (KTF) with Flexiglass (AKA "STL"). There are multiple root causes that have conspired together to create this highly disruptive bug, this CL addresses them all: 1. lockscreenVisibility in WindowManagerLockscreenVisibilityInteractor was improperly defined to only depend on transitions to and from the Gone scene. This CL changes that to depend on whether the keyguard "views" should be visible, which is the intent of the original work (despite a bug in it, see b/341400177) - this uses isDeviceEntered from DeviceEntryInteractor which is the blessed single source of truth for knowing whether the lockscreen has been (by)passed. 2. show in StatusBarKeyguardViewManager was directly causing a scene change to the Lockscreen scene. This was added in ag/26445610 to make sure that, when a foldable is folded closed, we change to the Lockscreen scene. Since the show method can be called from more than one place and doesn't always necessarily mean that the actual Lockscreen UI should be shown, this CL moves that changeScene to happen upstream, in showDismissibleKeyguard of KeyguardService - which is a callback invoked by system server when the device is folded to a closed position after being open. 3. There's a bug where the system server signal for showing the dismissible lockscreen isn't being respected when the keyguard_wm_refactor flag is on, this is explained thoroughly in b/341400177. While this isn't really a root cause for the bug that this CL is fixing, it complicated the debugging effort so it's worth mentioning here. Fix: 340536968 Test: existing unit tests pass Test: manually verified that scene transition work as expected. Started on LS, swiped down to reveal shade, swiped down to reveal QS, swiped up twice to go back to LS, swipe up again to open the bouncer, enter the correct credentials to unlock, ended up on the gone scene, swipe down once and again to the shade and QS scenes, swipe up twice to return to gone. Test: manually verified that folding the unfolded device completely closed correctly moves to the lockscreen scene. Discovered and logged b/341445974 Flag: com.android.systemui.scene_container Change-Id: I011b5cd43979e75b3e805bc363ca1a86d64ea5de
Loading
Please register or sign in to comment