Refine clearsCompatInsets
It is used to decide if the compat insets can be cleared by
FLAG_LAYOUT_NO_LIMITS.
Previously, it returns false if the window is in multi-window mode.
However, since NAV_BAR_FORCE_VISIBLE can also force consuming system
bars regardless of the windowing mode, this CL checks the activity type
and the force consuming types instead.
The reason why we need to check activity type is for compatibility that
we only reject to clear compat insets for apps which have
FLAG_LAYOUT_NO_LIMITS. For system windows, except wallpaper and system
error windows, they can always clear compat insets by using
FLAG_LAYOUT_NO_LIMITS.
Fix: 291825755
Test: InsetsStateTest InsetsControllerTest ImeInsetsSourceConsumerTest
Change-Id: I88271c6a45e5eb5c9770d0dab128a9806870f705
12 files changed