Sync split dismiss anim scrim fadee timing with taskbar to home anim duration

* We sync the scrim fade with the taskbar animation duration
to avoid any flickers fortaskbar icons disappearing before hotseat
icons show up.
* Layer wise taskbarIcons > scrim > hotseat
as taskbarIcons are translating into place, the frame where they fade out
the scrim should also fade out so they get seamlessly replaced by hotseat icons
* In our case the scrim was staying on too long so the scrim would show before
the hotseat, making it look like a flicker.
* Now we fade away the scrim sooner

Bug: 318747712
Test: Flicker no longer occurs
Flag: None
Change-Id: I779af1826ee55bfcbced3e972f14f5f299e9aaeb
diff --git a/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java b/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java
index 6651c73..0650f9d 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java
@@ -110,10 +110,13 @@
                         clampToProgress(LINEAR, 0, 0.33f));
             }
 
+            // We sync the scrim fade with the taskbar animation duration to avoid any flickers for
+            // taskbar icons disappearing before hotseat icons show up.
+            float scrimUpperBoundFromSplit = TASKBAR_TO_HOME_DURATION / (float) config.duration;
             config.setInterpolator(ANIM_OVERVIEW_ACTIONS_FADE, clampToProgress(LINEAR, 0, 0.25f));
             config.setInterpolator(ANIM_SCRIM_FADE,
                     fromState == OVERVIEW_SPLIT_SELECT
-                            ? clampToProgress(LINEAR, 0.33f, 1)
+                            ? clampToProgress(LINEAR, 0.33f, scrimUpperBoundFromSplit)
                             : LINEAR);
             config.setInterpolator(ANIM_WORKSPACE_SCALE, DECELERATE);
             config.setInterpolator(ANIM_WORKSPACE_FADE, ACCELERATE);