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;
         }