Loading go/quickstep/src/com/android/quickstep/AppToOverviewAnimationProvider.java +6 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.quickstep; import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN; import static com.android.quickstep.views.IconRecentsView.REMOTE_APP_TO_OVERVIEW_DURATION; import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.ACTIVITY_TYPE_HOME; import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.MODE_CLOSING; import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.MODE_OPENING; Loading Loading @@ -134,7 +135,11 @@ final class AppToOverviewAnimationProvider<T extends BaseDraggingActivity> imple return anim; } if (closingAppTarget.activityType == ACTIVITY_TYPE_HOME) { mRecentsView.playRemoteHomeToRecentsAnimation(anim, closingAppTarget, recentsTarget); } else { mRecentsView.playRemoteAppToRecentsAnimation(anim, closingAppTarget, recentsTarget); } return anim; } Loading go/quickstep/src/com/android/quickstep/views/IconRecentsView.java +47 −0 Original line number Diff line number Diff line Loading @@ -641,6 +641,53 @@ public final class IconRecentsView extends FrameLayout implements Insettable { mStartedEnterAnimation = true; } /** * Play remote app to recents animation when the app is the home activity. We use a simple * cross-fade here. Note this is only used if the home activity is a separate app than the * recents activity. * * @param anim animator set * @param homeTarget the home surface thats closing * @param recentsTarget the surface containing recents */ public void playRemoteHomeToRecentsAnimation(@NonNull AnimatorSet anim, @NonNull RemoteAnimationTargetCompat homeTarget, @NonNull RemoteAnimationTargetCompat recentsTarget) { SyncRtSurfaceTransactionApplierCompat surfaceApplier = new SyncRtSurfaceTransactionApplierCompat(this); SurfaceParams[] params = new SurfaceParams[2]; int boostedMode = MODE_CLOSING; ValueAnimator remoteHomeAnim = ValueAnimator.ofFloat(0, 1); remoteHomeAnim.setDuration(REMOTE_APP_TO_OVERVIEW_DURATION); remoteHomeAnim.addUpdateListener(valueAnimator -> { float val = (float) valueAnimator.getAnimatedValue(); float alpha; RemoteAnimationTargetCompat visibleTarget; RemoteAnimationTargetCompat invisibleTarget; if (val < .5f) { visibleTarget = homeTarget; invisibleTarget = recentsTarget; alpha = 1 - (val * 2); } else { visibleTarget = recentsTarget; invisibleTarget = homeTarget; alpha = (val - .5f) * 2; } params[0] = new SurfaceParams(visibleTarget.leash, alpha, null /* matrix */, null /* windowCrop */, getLayer(visibleTarget, boostedMode), 0 /* cornerRadius */); params[1] = new SurfaceParams(invisibleTarget.leash, 0.0f, null /* matrix */, null /* windowCrop */, getLayer(invisibleTarget, boostedMode), 0 /* cornerRadius */); surfaceApplier.scheduleApply(params); }); anim.play(remoteHomeAnim); animateFadeInLayoutAnimation(); } /** * Play remote animation from app to recents. This should scale the currently closing app down * to the recents thumbnail. Loading Loading
go/quickstep/src/com/android/quickstep/AppToOverviewAnimationProvider.java +6 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.quickstep; import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN; import static com.android.quickstep.views.IconRecentsView.REMOTE_APP_TO_OVERVIEW_DURATION; import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.ACTIVITY_TYPE_HOME; import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.MODE_CLOSING; import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.MODE_OPENING; Loading Loading @@ -134,7 +135,11 @@ final class AppToOverviewAnimationProvider<T extends BaseDraggingActivity> imple return anim; } if (closingAppTarget.activityType == ACTIVITY_TYPE_HOME) { mRecentsView.playRemoteHomeToRecentsAnimation(anim, closingAppTarget, recentsTarget); } else { mRecentsView.playRemoteAppToRecentsAnimation(anim, closingAppTarget, recentsTarget); } return anim; } Loading
go/quickstep/src/com/android/quickstep/views/IconRecentsView.java +47 −0 Original line number Diff line number Diff line Loading @@ -641,6 +641,53 @@ public final class IconRecentsView extends FrameLayout implements Insettable { mStartedEnterAnimation = true; } /** * Play remote app to recents animation when the app is the home activity. We use a simple * cross-fade here. Note this is only used if the home activity is a separate app than the * recents activity. * * @param anim animator set * @param homeTarget the home surface thats closing * @param recentsTarget the surface containing recents */ public void playRemoteHomeToRecentsAnimation(@NonNull AnimatorSet anim, @NonNull RemoteAnimationTargetCompat homeTarget, @NonNull RemoteAnimationTargetCompat recentsTarget) { SyncRtSurfaceTransactionApplierCompat surfaceApplier = new SyncRtSurfaceTransactionApplierCompat(this); SurfaceParams[] params = new SurfaceParams[2]; int boostedMode = MODE_CLOSING; ValueAnimator remoteHomeAnim = ValueAnimator.ofFloat(0, 1); remoteHomeAnim.setDuration(REMOTE_APP_TO_OVERVIEW_DURATION); remoteHomeAnim.addUpdateListener(valueAnimator -> { float val = (float) valueAnimator.getAnimatedValue(); float alpha; RemoteAnimationTargetCompat visibleTarget; RemoteAnimationTargetCompat invisibleTarget; if (val < .5f) { visibleTarget = homeTarget; invisibleTarget = recentsTarget; alpha = 1 - (val * 2); } else { visibleTarget = recentsTarget; invisibleTarget = homeTarget; alpha = (val - .5f) * 2; } params[0] = new SurfaceParams(visibleTarget.leash, alpha, null /* matrix */, null /* windowCrop */, getLayer(visibleTarget, boostedMode), 0 /* cornerRadius */); params[1] = new SurfaceParams(invisibleTarget.leash, 0.0f, null /* matrix */, null /* windowCrop */, getLayer(invisibleTarget, boostedMode), 0 /* cornerRadius */); surfaceApplier.scheduleApply(params); }); anim.play(remoteHomeAnim); animateFadeInLayoutAnimation(); } /** * Play remote animation from app to recents. This should scale the currently closing app down * to the recents thumbnail. Loading