Loading quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +19 −7 Original line number Diff line number Diff line Loading @@ -151,6 +151,7 @@ import com.android.quickstep.util.MultiValueUpdateListener; import com.android.quickstep.util.RectFSpringAnim; import com.android.quickstep.util.RectFSpringAnim.DefaultSpringConfig; import com.android.quickstep.util.RectFSpringAnim.TaskbarHotseatSpringConfig; import com.android.quickstep.util.ScalingWorkspaceRevealAnim; import com.android.quickstep.util.StaggeredWorkspaceAnim; import com.android.quickstep.util.SurfaceTransaction; import com.android.quickstep.util.SurfaceTransaction.SurfaceProperties; Loading @@ -174,7 +175,6 @@ import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map.Entry; /** * Manages the opening and closing app transitions from Launcher Loading Loading @@ -1630,10 +1630,15 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener anim.play(getUnlockWindowAnimator(appTargets, wallpaperTargets)); } else if (ENABLE_BACK_SWIPE_HOME_ANIMATION.get() && !playFallBackAnimation) { PointF velocity; if (enableScalingRevealHomeAnimation()) { velocity = new PointF(); } else { // Use a fixed velocity to start the animation. float velocityPxPerS = DynamicResource.provider(mLauncher) .getDimension(R.dimen.unlock_staggered_velocity_dp_per_s); PointF velocity = new PointF(0, -velocityPxPerS); velocity = new PointF(0, -velocityPxPerS); } rectFSpringAnim = getClosingWindowAnimators( anim, appTargets, launcherView, velocity, startRect, startWindowCornerRadius); Loading @@ -1642,8 +1647,15 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener // layout bounds. skipAllAppsScale = true; } else if (!fromPredictiveBack) { if (enableScalingRevealHomeAnimation()) { anim.play( new ScalingWorkspaceRevealAnim( mLauncher, rectFSpringAnim, rectFSpringAnim.getTargetRect()).getAnimators()); } else { anim.play(new StaggeredWorkspaceAnim(mLauncher, velocity.y, true /* animateOverviewScrim */, launcherView).getAnimators()); } if (!areAllTargetsTranslucent(appTargets)) { anim.play(ObjectAnimator.ofFloat(mLauncher.getDepthController().stateDepth, Loading quickstep/src/com/android/quickstep/LauncherSwipeHandlerV2.java +23 −11 Original line number Diff line number Diff line Loading @@ -173,14 +173,10 @@ public class LauncherSwipeHandlerV2 extends } @Override public void playAtomicAnimation(float velocity) { if (enableScalingRevealHomeAnimation()) { protected void playScalingRevealAnimation() { if (mContainer != null) { new ScalingWorkspaceRevealAnim( mContainer, mSiblingAnimation, getWindowTargetRect()).start(); } } else { super.playAtomicAnimation(velocity); new ScalingWorkspaceRevealAnim(mContainer, mSiblingAnimation, getWindowTargetRect()).start(); } } Loading Loading @@ -370,9 +366,25 @@ public class LauncherSwipeHandlerV2 extends @Override public void playAtomicAnimation(float velocity) { if (enableScalingRevealHomeAnimation()) { playScalingRevealAnimation(); } else { new StaggeredWorkspaceAnim(mContainer, velocity, true /* animateOverviewScrim */, getViewIgnoredInWorkspaceRevealAnimation()) .start(); } } /** * Extracted in a different method so subclasses that have a custom window animation with a * target (icons, widgets) can pass the optional parameters. */ protected void playScalingRevealAnimation() { if (mContainer != null) { new ScalingWorkspaceRevealAnim( mContainer, null /* siblingAnimation */, null /* windowTargetRect */).start(); } } } } quickstep/src/com/android/quickstep/util/RectFSpringAnim.java +4 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,10 @@ public class RectFSpringAnim extends ReleaseCheck { mCurrentY = getTrackedYFromRect(mStartRect); } public RectF getTargetRect() { return mTargetRect; } private float getTrackedYFromRect(RectF rect) { switch (mTracking) { case TRACKING_TOP: Loading quickstep/src/com/android/quickstep/util/ScalingWorkspaceRevealAnim.kt +6 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.quickstep.util import android.animation.AnimatorSet import android.graphics.Matrix import android.graphics.Path import android.graphics.RectF Loading Loading @@ -187,7 +188,11 @@ class ScalingWorkspaceRevealAnim( ) } fun getAnimators(): AnimatorSet { return animation.buildAnim() } fun start() { animation.buildAnim().start() getAnimators().start() } } Loading
quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +19 −7 Original line number Diff line number Diff line Loading @@ -151,6 +151,7 @@ import com.android.quickstep.util.MultiValueUpdateListener; import com.android.quickstep.util.RectFSpringAnim; import com.android.quickstep.util.RectFSpringAnim.DefaultSpringConfig; import com.android.quickstep.util.RectFSpringAnim.TaskbarHotseatSpringConfig; import com.android.quickstep.util.ScalingWorkspaceRevealAnim; import com.android.quickstep.util.StaggeredWorkspaceAnim; import com.android.quickstep.util.SurfaceTransaction; import com.android.quickstep.util.SurfaceTransaction.SurfaceProperties; Loading @@ -174,7 +175,6 @@ import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map.Entry; /** * Manages the opening and closing app transitions from Launcher Loading Loading @@ -1630,10 +1630,15 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener anim.play(getUnlockWindowAnimator(appTargets, wallpaperTargets)); } else if (ENABLE_BACK_SWIPE_HOME_ANIMATION.get() && !playFallBackAnimation) { PointF velocity; if (enableScalingRevealHomeAnimation()) { velocity = new PointF(); } else { // Use a fixed velocity to start the animation. float velocityPxPerS = DynamicResource.provider(mLauncher) .getDimension(R.dimen.unlock_staggered_velocity_dp_per_s); PointF velocity = new PointF(0, -velocityPxPerS); velocity = new PointF(0, -velocityPxPerS); } rectFSpringAnim = getClosingWindowAnimators( anim, appTargets, launcherView, velocity, startRect, startWindowCornerRadius); Loading @@ -1642,8 +1647,15 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener // layout bounds. skipAllAppsScale = true; } else if (!fromPredictiveBack) { if (enableScalingRevealHomeAnimation()) { anim.play( new ScalingWorkspaceRevealAnim( mLauncher, rectFSpringAnim, rectFSpringAnim.getTargetRect()).getAnimators()); } else { anim.play(new StaggeredWorkspaceAnim(mLauncher, velocity.y, true /* animateOverviewScrim */, launcherView).getAnimators()); } if (!areAllTargetsTranslucent(appTargets)) { anim.play(ObjectAnimator.ofFloat(mLauncher.getDepthController().stateDepth, Loading
quickstep/src/com/android/quickstep/LauncherSwipeHandlerV2.java +23 −11 Original line number Diff line number Diff line Loading @@ -173,14 +173,10 @@ public class LauncherSwipeHandlerV2 extends } @Override public void playAtomicAnimation(float velocity) { if (enableScalingRevealHomeAnimation()) { protected void playScalingRevealAnimation() { if (mContainer != null) { new ScalingWorkspaceRevealAnim( mContainer, mSiblingAnimation, getWindowTargetRect()).start(); } } else { super.playAtomicAnimation(velocity); new ScalingWorkspaceRevealAnim(mContainer, mSiblingAnimation, getWindowTargetRect()).start(); } } Loading Loading @@ -370,9 +366,25 @@ public class LauncherSwipeHandlerV2 extends @Override public void playAtomicAnimation(float velocity) { if (enableScalingRevealHomeAnimation()) { playScalingRevealAnimation(); } else { new StaggeredWorkspaceAnim(mContainer, velocity, true /* animateOverviewScrim */, getViewIgnoredInWorkspaceRevealAnimation()) .start(); } } /** * Extracted in a different method so subclasses that have a custom window animation with a * target (icons, widgets) can pass the optional parameters. */ protected void playScalingRevealAnimation() { if (mContainer != null) { new ScalingWorkspaceRevealAnim( mContainer, null /* siblingAnimation */, null /* windowTargetRect */).start(); } } } }
quickstep/src/com/android/quickstep/util/RectFSpringAnim.java +4 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,10 @@ public class RectFSpringAnim extends ReleaseCheck { mCurrentY = getTrackedYFromRect(mStartRect); } public RectF getTargetRect() { return mTargetRect; } private float getTrackedYFromRect(RectF rect) { switch (mTracking) { case TRACKING_TOP: Loading
quickstep/src/com/android/quickstep/util/ScalingWorkspaceRevealAnim.kt +6 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.quickstep.util import android.animation.AnimatorSet import android.graphics.Matrix import android.graphics.Path import android.graphics.RectF Loading Loading @@ -187,7 +188,11 @@ class ScalingWorkspaceRevealAnim( ) } fun getAnimators(): AnimatorSet { return animation.buildAnim() } fun start() { animation.buildAnim().start() getAnimators().start() } }