Loading quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +13 −9 Original line number Diff line number Diff line Loading @@ -1354,7 +1354,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener */ private RectFSpringAnim getClosingWindowAnimators(AnimatorSet animation, RemoteAnimationTargetCompat[] targets, View launcherView, PointF velocityPxPerS, RectF closingWindowStartRect) { RectF closingWindowStartRect, float startWindowCornerRadius) { FloatingIconView floatingIconView = null; FloatingWidgetView floatingWidget = null; RectF targetRect = new RectF(); Loading Loading @@ -1403,7 +1403,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener final float windowAlphaThreshold = 1f - SHAPE_PROGRESS_DURATION; RectFSpringAnim.OnUpdateListener runner = new SpringAnimRunner(targets, targetRect, windowTargetBounds) { windowTargetBounds, startWindowCornerRadius) { @Override public void onUpdate(RectF currentRectF, float progress) { finalFloatingIconView.update(1f, 255 /* fgAlpha */, currentRectF, progress, Loading @@ -1421,7 +1421,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener final float floatingWidgetAlpha = isTransluscent ? 0 : 1; FloatingWidgetView finalFloatingWidget = floatingWidget; RectFSpringAnim.OnUpdateListener runner = new SpringAnimRunner(targets, targetRect, windowTargetBounds) { windowTargetBounds, startWindowCornerRadius) { @Override public void onUpdate(RectF currentRectF, float progress) { final float fallbackBackgroundAlpha = Loading @@ -1438,7 +1438,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener } else { // If no floating icon or widget is present, animate the to the default window // target rect. anim.addOnUpdateListener(new SpringAnimRunner(targets, targetRect, windowTargetBounds)); anim.addOnUpdateListener(new SpringAnimRunner( targets, targetRect, windowTargetBounds, startWindowCornerRadius)); } // Use a fixed velocity to start the animation. Loading Loading @@ -1580,7 +1581,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener RemoteAnimationTargetCompat[] appTargets, RemoteAnimationTargetCompat[] wallpaperTargets, boolean fromUnlock, RectF startRect) { RectF startRect, float startWindowCornerRadius) { AnimatorSet anim = null; RectFSpringAnim rectFSpringAnim = null; Loading Loading @@ -1612,7 +1614,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener .getDimension(R.dimen.unlock_staggered_velocity_dp_per_s); PointF velocity = new PointF(0, -velocityPxPerS); rectFSpringAnim = getClosingWindowAnimators( anim, appTargets, launcherView, velocity, startRect); anim, appTargets, launcherView, velocity, startRect, startWindowCornerRadius); if (!mLauncher.isInState(LauncherState.ALL_APPS)) { anim.play(new StaggeredWorkspaceAnim(mLauncher, velocity.y, true /* animateOverviewScrim */, launcherView).getAnimators()); Loading Loading @@ -1711,7 +1714,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener Pair<RectFSpringAnim, AnimatorSet> pair = createWallpaperOpenAnimations( appTargets, wallpaperTargets, mFromUnlock, new RectF(0, 0, mDeviceProfile.widthPx, mDeviceProfile.heightPx)); new RectF(0, 0, mDeviceProfile.widthPx, mDeviceProfile.heightPx), QuickStepContract.getWindowCornerRadius(mLauncher)); mLauncher.clearForceInvisibleFlag(INVISIBLE_ALL); result.setAnimation(pair.second, mLauncher); Loading Loading @@ -1874,9 +1878,9 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener private final Rect mTmpRect = new Rect(); SpringAnimRunner(RemoteAnimationTargetCompat[] appTargets, RectF targetRect, Rect windowTargetBounds) { Rect windowTargetBounds, float startWindowCornerRadius) { mAppTargets = appTargets; mStartRadius = QuickStepContract.getWindowCornerRadius(mLauncher); mStartRadius = startWindowCornerRadius; mEndRadius = Math.max(1, targetRect.width()) / 2f; mSurfaceApplier = new SurfaceTransactionApplier(mDragLayer); mWindowTargetBounds.set(windowTargetBounds); Loading quickstep/src/com/android/quickstep/LauncherBackAnimationController.java +13 −9 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import android.graphics.PointF; import android.graphics.Rect; import android.graphics.RectF; import android.os.Handler; import android.util.MathUtils; import android.util.Pair; import android.view.RemoteAnimationTarget; import android.view.SurfaceControl; Loading Loading @@ -195,10 +194,10 @@ public class LauncherBackAnimationController { float followWidth = screenWidth - dX; // The 'progress width' is the width of the window if it strictly linearly interpolates // to minimum scale base on progress. float progressWidth = MathUtils.lerp(1, MIN_WINDOW_SCALE, progress) * screenWidth; float progressWidth = Utilities.mapRange(progress, 1, MIN_WINDOW_SCALE) * screenWidth; // The final width is derived from interpolating between the follow with and progress width // using gesture progress. float width = MathUtils.lerp(followWidth, progressWidth, progress); float width = Utilities.mapRange(progress, followWidth, progressWidth); float height = screenHeight / screenWidth * width; float deltaYRatio = (event.getTouchY() - mInitialTouchPos.y) / screenHeight; // Base the window movement in the Y axis on the touch movement in the Y axis. Loading @@ -221,13 +220,15 @@ public class LauncherBackAnimationController { return; } mCurrentRect.set( MathUtils.lerp(mCancelRect.left, mStartRect.left, progress), MathUtils.lerp(mCancelRect.top, mStartRect.top, progress), MathUtils.lerp(mCancelRect.right, mStartRect.right, progress), MathUtils.lerp(mCancelRect.bottom, mStartRect.bottom, progress)); Utilities.mapRange(progress, mCancelRect.left, mStartRect.left), Utilities.mapRange(progress, mCancelRect.top, mStartRect.top), Utilities.mapRange(progress, mCancelRect.right, mStartRect.right), Utilities.mapRange(progress, mCancelRect.bottom, mStartRect.bottom)); float endCornerRadius = Utilities.mapRange( mBackProgress, mWindowScaleStartCornerRadius, mWindowScaleEndCornerRadius); float cornerRadius = Utilities.mapRange( progress, mWindowScaleEndCornerRadius, mWindowScaleStartCornerRadius); progress, endCornerRadius, mWindowScaleStartCornerRadius); applyTransform(mCurrentRect, cornerRadius); } Loading Loading @@ -267,12 +268,15 @@ public class LauncherBackAnimationController { mLauncher.getStateManager().moveToRestState(); } float cornerRadius = Utilities.mapRange( mBackProgress, mWindowScaleStartCornerRadius, mWindowScaleEndCornerRadius); Pair<RectFSpringAnim, AnimatorSet> pair = mQuickstepTransitionManager.createWallpaperOpenAnimations( new RemoteAnimationTargetCompat[]{mBackTarget}, new RemoteAnimationTargetCompat[]{}, false /* fromUnlock */, mCurrentRect); mCurrentRect, cornerRadius); startTransitionAnimations(pair.first, pair.second); mLauncher.clearForceInvisibleFlag(INVISIBLE_ALL); } Loading Loading
quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +13 −9 Original line number Diff line number Diff line Loading @@ -1354,7 +1354,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener */ private RectFSpringAnim getClosingWindowAnimators(AnimatorSet animation, RemoteAnimationTargetCompat[] targets, View launcherView, PointF velocityPxPerS, RectF closingWindowStartRect) { RectF closingWindowStartRect, float startWindowCornerRadius) { FloatingIconView floatingIconView = null; FloatingWidgetView floatingWidget = null; RectF targetRect = new RectF(); Loading Loading @@ -1403,7 +1403,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener final float windowAlphaThreshold = 1f - SHAPE_PROGRESS_DURATION; RectFSpringAnim.OnUpdateListener runner = new SpringAnimRunner(targets, targetRect, windowTargetBounds) { windowTargetBounds, startWindowCornerRadius) { @Override public void onUpdate(RectF currentRectF, float progress) { finalFloatingIconView.update(1f, 255 /* fgAlpha */, currentRectF, progress, Loading @@ -1421,7 +1421,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener final float floatingWidgetAlpha = isTransluscent ? 0 : 1; FloatingWidgetView finalFloatingWidget = floatingWidget; RectFSpringAnim.OnUpdateListener runner = new SpringAnimRunner(targets, targetRect, windowTargetBounds) { windowTargetBounds, startWindowCornerRadius) { @Override public void onUpdate(RectF currentRectF, float progress) { final float fallbackBackgroundAlpha = Loading @@ -1438,7 +1438,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener } else { // If no floating icon or widget is present, animate the to the default window // target rect. anim.addOnUpdateListener(new SpringAnimRunner(targets, targetRect, windowTargetBounds)); anim.addOnUpdateListener(new SpringAnimRunner( targets, targetRect, windowTargetBounds, startWindowCornerRadius)); } // Use a fixed velocity to start the animation. Loading Loading @@ -1580,7 +1581,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener RemoteAnimationTargetCompat[] appTargets, RemoteAnimationTargetCompat[] wallpaperTargets, boolean fromUnlock, RectF startRect) { RectF startRect, float startWindowCornerRadius) { AnimatorSet anim = null; RectFSpringAnim rectFSpringAnim = null; Loading Loading @@ -1612,7 +1614,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener .getDimension(R.dimen.unlock_staggered_velocity_dp_per_s); PointF velocity = new PointF(0, -velocityPxPerS); rectFSpringAnim = getClosingWindowAnimators( anim, appTargets, launcherView, velocity, startRect); anim, appTargets, launcherView, velocity, startRect, startWindowCornerRadius); if (!mLauncher.isInState(LauncherState.ALL_APPS)) { anim.play(new StaggeredWorkspaceAnim(mLauncher, velocity.y, true /* animateOverviewScrim */, launcherView).getAnimators()); Loading Loading @@ -1711,7 +1714,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener Pair<RectFSpringAnim, AnimatorSet> pair = createWallpaperOpenAnimations( appTargets, wallpaperTargets, mFromUnlock, new RectF(0, 0, mDeviceProfile.widthPx, mDeviceProfile.heightPx)); new RectF(0, 0, mDeviceProfile.widthPx, mDeviceProfile.heightPx), QuickStepContract.getWindowCornerRadius(mLauncher)); mLauncher.clearForceInvisibleFlag(INVISIBLE_ALL); result.setAnimation(pair.second, mLauncher); Loading Loading @@ -1874,9 +1878,9 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener private final Rect mTmpRect = new Rect(); SpringAnimRunner(RemoteAnimationTargetCompat[] appTargets, RectF targetRect, Rect windowTargetBounds) { Rect windowTargetBounds, float startWindowCornerRadius) { mAppTargets = appTargets; mStartRadius = QuickStepContract.getWindowCornerRadius(mLauncher); mStartRadius = startWindowCornerRadius; mEndRadius = Math.max(1, targetRect.width()) / 2f; mSurfaceApplier = new SurfaceTransactionApplier(mDragLayer); mWindowTargetBounds.set(windowTargetBounds); Loading
quickstep/src/com/android/quickstep/LauncherBackAnimationController.java +13 −9 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import android.graphics.PointF; import android.graphics.Rect; import android.graphics.RectF; import android.os.Handler; import android.util.MathUtils; import android.util.Pair; import android.view.RemoteAnimationTarget; import android.view.SurfaceControl; Loading Loading @@ -195,10 +194,10 @@ public class LauncherBackAnimationController { float followWidth = screenWidth - dX; // The 'progress width' is the width of the window if it strictly linearly interpolates // to minimum scale base on progress. float progressWidth = MathUtils.lerp(1, MIN_WINDOW_SCALE, progress) * screenWidth; float progressWidth = Utilities.mapRange(progress, 1, MIN_WINDOW_SCALE) * screenWidth; // The final width is derived from interpolating between the follow with and progress width // using gesture progress. float width = MathUtils.lerp(followWidth, progressWidth, progress); float width = Utilities.mapRange(progress, followWidth, progressWidth); float height = screenHeight / screenWidth * width; float deltaYRatio = (event.getTouchY() - mInitialTouchPos.y) / screenHeight; // Base the window movement in the Y axis on the touch movement in the Y axis. Loading @@ -221,13 +220,15 @@ public class LauncherBackAnimationController { return; } mCurrentRect.set( MathUtils.lerp(mCancelRect.left, mStartRect.left, progress), MathUtils.lerp(mCancelRect.top, mStartRect.top, progress), MathUtils.lerp(mCancelRect.right, mStartRect.right, progress), MathUtils.lerp(mCancelRect.bottom, mStartRect.bottom, progress)); Utilities.mapRange(progress, mCancelRect.left, mStartRect.left), Utilities.mapRange(progress, mCancelRect.top, mStartRect.top), Utilities.mapRange(progress, mCancelRect.right, mStartRect.right), Utilities.mapRange(progress, mCancelRect.bottom, mStartRect.bottom)); float endCornerRadius = Utilities.mapRange( mBackProgress, mWindowScaleStartCornerRadius, mWindowScaleEndCornerRadius); float cornerRadius = Utilities.mapRange( progress, mWindowScaleEndCornerRadius, mWindowScaleStartCornerRadius); progress, endCornerRadius, mWindowScaleStartCornerRadius); applyTransform(mCurrentRect, cornerRadius); } Loading Loading @@ -267,12 +268,15 @@ public class LauncherBackAnimationController { mLauncher.getStateManager().moveToRestState(); } float cornerRadius = Utilities.mapRange( mBackProgress, mWindowScaleStartCornerRadius, mWindowScaleEndCornerRadius); Pair<RectFSpringAnim, AnimatorSet> pair = mQuickstepTransitionManager.createWallpaperOpenAnimations( new RemoteAnimationTargetCompat[]{mBackTarget}, new RemoteAnimationTargetCompat[]{}, false /* fromUnlock */, mCurrentRect); mCurrentRect, cornerRadius); startTransitionAnimations(pair.first, pair.second); mLauncher.clearForceInvisibleFlag(INVISIBLE_ALL); } Loading