Recycle FloatingIconView for swipe up to home animation.
Bug: 123900446
Change-Id: I63e900e86d921eddd3129ff68f895d6e8e7bff47
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java
index c33d25c..434353d 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java
@@ -118,16 +118,15 @@
}
final RectF iconLocation = new RectF();
boolean canUseWorkspaceView = workspaceView != null && workspaceView.isAttachedToWindow();
- final FloatingIconView floatingView = canUseWorkspaceView
- ? FloatingIconView.getFloatingIconView(activity, workspaceView,
- true /* hideOriginal */, iconLocation, false /* isOpening */, null /* recycle */)
+ FloatingIconView floatingIconView = canUseWorkspaceView
+ ? recentsView.getFloatingIconView(activity, workspaceView, iconLocation)
: null;
return new HomeAnimationFactory() {
@Nullable
@Override
public View getFloatingView() {
- return floatingView;
+ return floatingIconView;
}
@NonNull
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java
index 525ead8..bded5ba 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java
@@ -75,6 +75,7 @@
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.Insettable;
import com.android.launcher3.InvariantDeviceProfile;
+import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherAnimUtils.ViewProgressProperty;
import com.android.launcher3.PagedView;
import com.android.launcher3.R;
@@ -91,6 +92,7 @@
import com.android.launcher3.util.PendingAnimation;
import com.android.launcher3.util.Themes;
import com.android.launcher3.util.ViewPool;
+import com.android.launcher3.views.FloatingIconView;
import com.android.quickstep.RecentsAnimationWrapper;
import com.android.quickstep.RecentsModel;
import com.android.quickstep.RecentsModel.TaskThumbnailChangeListener;
@@ -288,6 +290,8 @@
private Layout mEmptyTextLayout;
private LiveTileOverlay mLiveTileOverlay;
+ private FloatingIconView mFloatingIconView;
+
private BaseActivity.MultiWindowModeChangedListener mMultiWindowModeChangedListener =
(inMultiWindowMode) -> {
if (!inMultiWindowMode && mOverviewStateEnabled) {
@@ -1704,4 +1708,10 @@
return super::onTouchEvent;
}
}
+
+ public FloatingIconView getFloatingIconView(Launcher launcher, View view, RectF iconLocation) {
+ mFloatingIconView = FloatingIconView.getFloatingIconView(launcher, view,
+ true /* hideOriginal */, iconLocation, false /* isOpening */, mFloatingIconView);
+ return mFloatingIconView;
+ }
}