Merge "Translate taskbar to hotseat without jump when swiping up from overview" into tm-qpr-dev am: 3dd1440520

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/21592805

Change-Id: Ic8972961193226ab1cb1a0a31bd6ff9e12f980c8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2023-03-04 06:40:43 +00:00
committed by Automerger Merge Worker
3 changed files with 11 additions and 11 deletions

View File

@@ -198,15 +198,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
*/
public Animator createAnimToLauncher(@NonNull LauncherState toState,
@NonNull RecentsAnimationCallbacks callbacks, long duration) {
AnimatorSet set = new AnimatorSet();
Animator taskbarState = mTaskbarLauncherStateController
.createAnimToLauncher(toState, callbacks, duration);
long halfDuration = Math.round(duration * 0.5f);
Animator translation =
mControllers.taskbarTranslationController.createAnimToLauncher(halfDuration);
set.playTogether(taskbarState, translation);
return set;
return mTaskbarLauncherStateController.createAnimToLauncher(toState, callbacks, duration);
}
public boolean isDraggingItem() {

View File

@@ -433,6 +433,14 @@ import java.util.StringJoiner;
});
animatorSet.play(stashAnimator);
}
if (isAnimatingToLauncher() || mLauncherState == LauncherState.NORMAL) {
// Translate back to 0 at a shorter or same duration as the icon alignment animation.
// This ensures there is no jump after switching to hotseat, e.g. when swiping up from
// overview to home. Currently we do duration / 2 just to make it feel snappier.
animatorSet.play(mControllers.taskbarTranslationController
.createAnimToResetTranslation(duration / 2));
}
}
private boolean isInLauncher() {

View File

@@ -135,9 +135,9 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
}
/**
* Returns an animation to reset the taskbar translation for animation back to launcher.
* Returns an animation to reset the taskbar translation to {@code 0}.
*/
public ObjectAnimator createAnimToLauncher(long duration) {
public ObjectAnimator createAnimToResetTranslation(long duration) {
ObjectAnimator animator = ObjectAnimator.ofFloat(mTranslationYForSwipe, VALUE, 0);
animator.setInterpolator(Interpolators.LINEAR);
animator.setDuration(duration);