Fix an edge case of IME surface overlapped on the overview
A race condition might happen when a IME layering overlay target visible unexpectedly during swiping the app task to the overview, that causes InputMonitor didn't call hideCurrentInputMethod when the input focus change since isImeAttachedToApp still return true in that time, but acutally it will become false after the IME layering overlay became visible. Refine the logic to keep tracking isImeAttachedToApp and IME visible state during the swiping up gesture, and hide IME when the IME is visible and not attachable on the new target. Fix: 222064495 Test: manual as test steps: 1) install a 3rd-party app "Always visible volume button" 2) enabling "Display over the other apps" for 1) to show the volume button 3) launching any apps with showing IME 4) swping up to the overview screen, verify if IME hides expectedly 5) repeat 3-5 10 times, expect no IME being overlapped on the overview screen, and the task snapshot didn't show the IME snapshot after hiding the IME. Change-Id: I71f397b93b9f94e9351ded8191676b1dfb249d9e
Loading
Please register or sign in to comment