Insets: Allow animations when setting SYSTEM_UI_LAYOUT_* flags
Test: atest android.server.wm.WindowInsetsAnimationTests#testAnimationCallbacks_withLegacyFlags
Fixes: 155955734
Change-Id: Idb35218abb4e17688bfb985abb97ae739a60136b
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index 7935eb1..e3362aa 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -7298,7 +7298,8 @@
boolean isOptionalFitSystemWindows = (mViewFlags & OPTIONAL_FITS_SYSTEM_WINDOWS) != 0
|| isFrameworkOptionalFitsSystemWindows();
if (isOptionalFitSystemWindows && mAttachInfo != null
- && mAttachInfo.mContentOnApplyWindowInsetsListener != null) {
+ && mAttachInfo.mContentOnApplyWindowInsetsListener != null
+ && (getWindowSystemUiVisibility() & SYSTEM_UI_LAYOUT_FLAGS) == 0) {
return false;
}
@@ -7322,7 +7323,8 @@
|| isFrameworkOptionalFitsSystemWindows();
if (isOptionalFitSystemWindows && mAttachInfo != null
&& getListenerInfo().mWindowInsetsAnimationCallback == null
- && mAttachInfo.mContentOnApplyWindowInsetsListener != null) {
+ && mAttachInfo.mContentOnApplyWindowInsetsListener != null
+ && (getWindowSystemUiVisibility() & SYSTEM_UI_LAYOUT_FLAGS) == 0) {
mInsetsAnimationDispatchMode = DISPATCH_MODE_STOP;
return;
}