DecorView#mNavigationGuard is gone
With this CL, DecorView#mNavigationGuard that handles navigation bar only for IME windows [1] is finally gone and replaced with the standard mechanism to handle navigation bar layout padding / background color. This CL addresses multiple anomalies regarding how the following APIs work for IME windows. * Window#setNavigationBarColor() * Previous behavior: - Only works for Color#TRANSPARENT [2]. - Ignores FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS. * New behavior: - Works as documented. - Requires FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS to work. * SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION flag * Previous behavior: - The system automatically sets SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION to the IME windows [3]. - Does not work as documented. Content area is not extended to the navigation bar area. - Manually unsetting SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION can cause unexpected layout, because the system expects that this flag is always set to the IME window. - Had a special logic for FLAG_LAYOUT_IN_OVERSCAN [4]. * New behavior: - Works as documented. - Can set/unset as necessary. From the viewpoint of IME developers, this CL enables IME windows to * correctly extend the input view to the navigation bar region by using SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION as documented, instead of relying on a special hack with FLAG_LAYOUT_IN_OVERSCAN hack. * use Window#setNavigationBarColor() to easily change the navigation bar background color, like other non-floating windows. Note that SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR is not yet supported for IME windows, which will be implemented in a subsequent CL. [1]: I6a93f30aec83f1cecfb854073046cbc87ab4aa66 ae3349e1 [2]: Iea77915ecc55eedaf19899e72c44f704ba9d852c 0a9d1ea0 [3]: I460912ee7c117480c57b947ed31eca330819f32c c68d577f [4]: Ic38f204a892bf34e8dae65990d5aa8c95af555d8 9b32a35a [5]: I4b10a19641bd3ce6c43e7629404b6f202d4186e8 Fix: 25706186 Bug: 69002467 Test: ThemedNavBarKeyboard sample [5] works for the following cases * Extended Dark Navigation Bar * Separate Dark Navigation Bar * Floating Mode (if the target app uses dark navigation bar) Change-Id: I664630099b6eb3fe31675444ba94944cb0eb98b0
Loading
Please register or sign in to comment