Recycle FloatingIconView for swipe up to home animation.

Bug: 123900446
Change-Id: I63e900e86d921eddd3129ff68f895d6e8e7bff47
This commit is contained in:
Jon Miranda 2019-05-14 13:59:22 -07:00
parent 3658d9fa0c
commit 04d29a61c9
2 changed files with 13 additions and 4 deletions

View File

@ -118,16 +118,15 @@ public final class LauncherActivityControllerHelper implements ActivityControlHe
}
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

View File

@ -75,6 +75,7 @@ import com.android.launcher3.BaseActivity;
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.OverScroller;
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 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
private Layout mEmptyTextLayout;
private LiveTileOverlay mLiveTileOverlay;
private FloatingIconView mFloatingIconView;
private BaseActivity.MultiWindowModeChangedListener mMultiWindowModeChangedListener =
(inMultiWindowMode) -> {
if (!inMultiWindowMode && mOverviewStateEnabled) {
@ -1704,4 +1708,10 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
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;
}
}