Prevent multiple competing dismissals.

This brings into line with existing UX prior to the feature.

Fix: 400727071
Test: Manual. Dismiss as quickly as possible.
Flag: com.android.launcher3.enable_expressive_dismiss_task_motion
Change-Id: Ie3f6f82c3ed4626829f3a61307e73cbdb8a31ceb
This commit is contained in:
Pat Manning
2025-03-14 16:06:46 +00:00
parent 02be70164c
commit cc973dfdce
3 changed files with 13 additions and 4 deletions
@@ -142,7 +142,6 @@ import androidx.annotation.UiThread;
import androidx.core.graphics.ColorUtils;
import androidx.dynamicanimation.animation.SpringAnimation;
import com.android.app.tracing.TraceUtilsKt;
import com.android.internal.jank.Cuj;
import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.BaseActivity.MultiWindowModeChangedListener;
@@ -4748,11 +4747,12 @@ public abstract class RecentsView<
runDismissAnimation(pa);
}
protected void expressiveDismissTaskView(TaskView taskView) {
protected void expressiveDismissTaskView(TaskView taskView, Function0<Unit> onEndRunnable) {
PendingAnimation pa = new PendingAnimation(DISMISS_TASK_DURATION);
createTaskDismissAnimation(pa, taskView, false /* animateTaskView */, true /* removeTask */,
DISMISS_TASK_DURATION, false /* dismissingForSplitSelection*/,
true /* isExpressiveDismiss */);
pa.addEndListener((success) -> onEndRunnable.invoke());
runDismissAnimation(pa);
}