diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index f8ea9320c4..5f0da1cc87 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -151,6 +151,7 @@ import com.android.quickstep.views.FloatingWidgetView; import com.android.quickstep.views.RecentsView; import com.android.systemui.animation.ActivityLaunchAnimator; import com.android.systemui.animation.DelegateLaunchAnimatorController; +import com.android.systemui.animation.LaunchableView; import com.android.systemui.animation.RemoteAnimationDelegate; import com.android.systemui.shared.system.BlurUtils; import com.android.systemui.shared.system.InteractionJankMonitorWrapper; @@ -1777,7 +1778,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener @Nullable private static ContainerAnimationRunner from(View v, Launcher launcher, StartingWindowListener startingWindowListener, RunnableList onEndCallback) { - View viewToUse = findViewWithBackground(v); + View viewToUse = findLaunchableViewWithBackground(v); if (viewToUse == null) { viewToUse = v; } @@ -1820,11 +1821,15 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener new ActivityLaunchAnimator.AnimationDelegate(controller, callback, listener)); } - /** Finds the closest parent of [view] (inclusive) with a background drawable. */ + /** + * Finds the closest parent of [view] (inclusive) that implements {@link LaunchableView} and + * has a background drawable. + */ @Nullable - private static View findViewWithBackground(View view) { + private static T findLaunchableViewWithBackground( + View view) { View current = view; - while (current.getBackground() == null) { + while (current.getBackground() == null || !(current instanceof LaunchableView)) { if (!(current.getParent() instanceof View)) { return null; } @@ -1832,7 +1837,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener current = (View) view.getParent(); } - return current; + return (T) current; } @Override