Fix some incompatibilities of 3p launcher and recentstransition
Since Launcher talks to both recentstransition and WMCore via binder, it can result in races. Because 3p launchers are treated half like apps (to recents), launcher would use normal activity calls to control the 3p launcher lifecycle. It would sometimes launch the app AND set focus at similar times. Because setfocus went through recentstransition, it could race and cause the focus change to happen after the activity-launch which would confuse recents. To fix this, add a special focus API for recents which says "focus top task" since all recents really needs is to tell WM to move focus to itself (transient launch defers focus change until the animation requests it). By just focusing "top" task, it should never result in a re-ordering but still work for recents use-case. Additionally, recentstransition was seeing 3p launcher as a regular (non-home) task. This meant that it would treat a non-committed gesture as a task-switch and "switch away" from the 3p launcher. So this CL detects when the gesture starts on 3p launcher and then uses that information to categorize uncommit properly. Bug: 277964651 Test: Use a 3p launcher (like Nova) and use gestures. Change-Id: I6511db60c5a92d2fa4418b95369e069142b3a00c
Loading
Please register or sign in to comment