[ShellTransition]: add WMS#setRecentsAppBehindSystemBars for recents
For legacy recents animation, launcher side use RecentsAnimationController#setAnimationTargetsBehindSystemBars to callback if the animating recents task target is valid to affect system bar apparence according the gesture threadshold. if the animating recents task is behind system bar, means the gesture threshod not yet passed and the task still can affect system bar apparence, and vice-versa. with shell-transition, since launcher triggers recents animation by normal startActivity without initiating RecentsAnimationController with startRecentsActivity, the launcher will be top-resumed (but the surface hierarchy the recents task is still be top-most) when starting gesture on navbar, in this case, launcher can affect the system appearence even though launcher is behind systembar. beside, previously we also rely on setAnimationTargetsBehindSystemBars to hide soft-keyboard in multi-windowing mode when quick-swich tasks, without this, soft-keyboard will keep visible when swiping up to recents. As the result, we needs to backport the most logic of setAnimationTargetsBehindSystemBars for fixing the above cases, the only difference is we renaming the method with setRecentsAppBehindSystemBars(behindSystemBars) to only set recents app can affect systembar apparence, and placing hide IME/IME icon logic into handleLegacyRecentsStartBehavior when starting recents animation. Fix: 215504556 Test: manual as below CUJs with enabling shell-transition: CUJ1: 1) Launching a app with showing IME 2) Quick-switching to the next task or swiping task to home 3) Expect no navbar icon flickering CUJ2: 1) With entering split-screen and showing IME on the split task 2) Swipe up to recents 3) Expect IME shound be hidden CUJ3: 1) Launching a app 2) Hammer tapping on the navigation bar 3) Expect the staus bar icon won't blinking Change-Id: I552eea738aed5566eb897bb9c68507e83ac43e1d
Loading
Please register or sign in to comment