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

Fix NavigationBar overlapping with the IME window

As WindowToken#setInsetsFrozen that introduced by CL[1], [2] that used
for freezing dispathcing insets state when the app transitioning or
becoming invisible.

To prevent unnecessary app UI glitch during dispatching insets changes
while animating, the method call ends up setting frozen insets state
for all children windows.

Since forAllWindows will call forAllImeWindows to also set frozen
insets state for IME window when the window is IME layering targets
and not in split-screen windowing mode, which is not expected because
the IME window is controlled by IME insets provider and should not
have frozen insets state to make IME UI been overlapped with navbar
because of wrong insets state.

Make sure to set frozen state only for the window belongs to the same
window token.

[1]: Iae5025beaed7d70a4623b446a1bb73574d420663
[2]: I56418733c1abbd73e88a8918a5d55ecc15344c5e

Fix: 181840663
Test: manual as issue steps:
   1) Factory reset device.
   2) Skip Setup Wizard.
   3) Select a WIFI hotspot which require a password to
      show up keyboard
   4) Verify if IME layout correctly without overlapping with navbar.
Test: atest WindowTokenTests#testSetInsetsFrozen_notAffectImeWindowState
Change-Id: I9442095e833bf430f49cd824af2ab430da5d662c
parent 41f253e6
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