From 60b97de72bc3fabe88d27df6f56b30579abeda73 Mon Sep 17 00:00:00 2001 From: shawnlin Date: Mon, 7 Jun 2021 15:58:00 +0800 Subject: [PATCH] Play the nav bar animation for app launch from recent in live tile Bug: 189278432 Test: manual - launch an app from recent in live tile mode Change-Id: I9a39cdbbe0b8b9ee6d11a3ee53936d2fea699dd8 --- .../android/quickstep/RecentsAnimationController.java | 9 +++++++++ quickstep/src/com/android/quickstep/TaskViewUtils.java | 8 ++++++++ .../src/com/android/quickstep/views/RecentsView.java | 6 ++++++ 3 files changed, 23 insertions(+) diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationController.java b/quickstep/src/com/android/quickstep/RecentsAnimationController.java index 50d0569cf2..0ebe13be8d 100644 --- a/quickstep/src/com/android/quickstep/RecentsAnimationController.java +++ b/quickstep/src/com/android/quickstep/RecentsAnimationController.java @@ -18,6 +18,7 @@ package com.android.quickstep; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; +import android.view.IRecentsAnimationController; import android.view.SurfaceControl; import android.window.PictureInPictureSurfaceTransaction; @@ -162,6 +163,14 @@ public class RecentsAnimationController { UI_HELPER_EXECUTOR.execute(() -> mController.detachNavigationBarFromApp(moveHomeToTop)); } + /** + * @see IRecentsAnimationController#animateNavigationBarToApp(long) + */ + @UiThread + public void animateNavigationBarToApp(long duration) { + UI_HELPER_EXECUTOR.execute(() -> mController.animateNavigationBarToApp(duration)); + } + /** * Sets the final surface transaction on a Task. This is used by Launcher to notify the system * that animating Activity to PiP has completed and the associated task surface should be diff --git a/quickstep/src/com/android/quickstep/TaskViewUtils.java b/quickstep/src/com/android/quickstep/TaskViewUtils.java index a59ba5136d..59bd1ed9ea 100644 --- a/quickstep/src/com/android/quickstep/TaskViewUtils.java +++ b/quickstep/src/com/android/quickstep/TaskViewUtils.java @@ -263,6 +263,14 @@ public final class TaskViewUtils { finalParams.applySurfaceParams(navBuilder.build()); } }); + } else if (inLiveTileMode) { + // There is no transition animation for app launch from recent in live tile mode so + // we have to trigger the navigation bar animation from system here. + final RecentsAnimationController controller = + recentsView.getRecentsAnimationController(); + if (controller != null) { + controller.animateNavigationBarToApp(RECENTS_LAUNCH_DURATION); + } } topMostSimulator = tsv; } diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index 74906ddac0..b7aca065bf 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -3843,4 +3843,10 @@ public abstract class RecentsView