Fix a few issues with ime adjust/minimized dock stack

- Do not override minimized state in SysUI when IME adjust change
comes in.
- Do not animate IME adjust if we are already animating for minimized.
This lead to problems that we animated the minimized state with the IME
adjust values.
- Make sure to update state after checking whether the IME adjust is
animating. This is to fix an issue where sometimes the IME adjust
animation didn't run because the old target was wrong.

Change-Id: Ie35e2f943a4cda99ffdc6f14663d892863759e46
Fixes: 28819201
diff --git a/services/core/java/com/android/server/wm/DockedStackDividerController.java b/services/core/java/com/android/server/wm/DockedStackDividerController.java
index 7a387ad..1b31d07c 100644
--- a/services/core/java/com/android/server/wm/DockedStackDividerController.java
+++ b/services/core/java/com/android/server/wm/DockedStackDividerController.java
@@ -300,7 +300,7 @@
             boolean animate, WindowState imeWin, int imeHeight) {
         if (mAdjustedForIme != adjustedForIme || (adjustedForIme && mImeHeight != imeHeight)
                 || mAdjustedForDivider != adjustedForDivider) {
-            if (animate) {
+            if (animate && !mAnimatingForMinimizedDockedStack) {
                 startImeAdjustAnimation(adjustedForIme, adjustedForDivider, imeWin);
             } else {
                 // Animation might be delayed, so only notify if we don't run an animation.
@@ -547,8 +547,6 @@
 
     private void startImeAdjustAnimation(
             boolean adjustedForIme, boolean adjustedForDivider, WindowState imeWin) {
-        mAnimatingForIme = true;
-        mAnimationStarted = false;
 
         // If we're not in an animation, the starting point depends on whether we're adjusted
         // or not. If we're already in an animation, we start from where the current animation
@@ -562,6 +560,8 @@
             mAnimationStart = mLastAnimationProgress;
             mDividerAnimationStart = mLastDividerProgress;
         }
+        mAnimatingForIme = true;
+        mAnimationStarted = false;
         mAnimationTarget = adjustedForIme ? 1 : 0;
         mDividerAnimationTarget = adjustedForDivider ? 1 : 0;