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
Loading
Please register or sign in to comment