diff options
| author | 2023-04-19 16:39:57 -0700 | |
|---|---|---|
| committer | 2023-04-20 00:20:49 +0000 | |
| commit | 4eb5845678b187fe13f3073e2197505b9defb963 (patch) | |
| tree | c081f66fe975d32e0a4bf3b297aa6c38d6b0e189 /libs/androidfw/StringPool.cpp | |
| parent | 9188aa60688692d205e85a2131c396e8669f0f4e (diff) | |
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
Diffstat (limited to 'libs/androidfw/StringPool.cpp')
0 files changed, 0 insertions, 0 deletions