Skip to content
Commit 08a970ca authored by Ming-Shin Lu's avatar Ming-Shin Lu
Browse files

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
parent 5d520cb0
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment