Skip to content
Commit 8f162c6e authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

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
parent 5fd1c97e
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