mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 10:48:19 +00:00
Fix bug where taskbar jumps when double swiping up.
Bug: 273948325 Change-Id: Ib3f19f4bf7348cd3545864351d48780dbc9acd65 Flag: ENABLE_TRANSIENT_TASKBAR Test: swipe up to unstash taskbar, quickly swipe up again
This commit is contained in:
@@ -76,12 +76,11 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
|
||||
/**
|
||||
* Called to cancel any existing animations.
|
||||
*/
|
||||
public void cancelAnimationIfExists() {
|
||||
public void cancelSpringIfExists() {
|
||||
if (mSpringBounce != null) {
|
||||
mSpringBounce.cancel();
|
||||
mSpringBounce = null;
|
||||
}
|
||||
reset();
|
||||
}
|
||||
|
||||
private void updateTranslationYForSwipe() {
|
||||
@@ -138,13 +137,14 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
|
||||
* Returns an animation to reset the taskbar translation to {@code 0}.
|
||||
*/
|
||||
public ObjectAnimator createAnimToResetTranslation(long duration) {
|
||||
ObjectAnimator animator = ObjectAnimator.ofFloat(mTranslationYForSwipe, VALUE, 0);
|
||||
ObjectAnimator animator = mTranslationYForSwipe.animateToValue(0);
|
||||
animator.setInterpolator(Interpolators.LINEAR);
|
||||
animator.setDuration(duration);
|
||||
animator.addListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationStart(Animator animation) {
|
||||
cancelAnimationIfExists();
|
||||
cancelSpringIfExists();
|
||||
reset();
|
||||
mAnimationToHomeRunning = true;
|
||||
}
|
||||
|
||||
@@ -162,6 +162,18 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
|
||||
*/
|
||||
public class TransitionCallback {
|
||||
|
||||
/**
|
||||
* Clears any existing animations so that user
|
||||
* can take control over the movement of the taskbaer.
|
||||
*/
|
||||
public void onActionDown() {
|
||||
if (mAnimationToHomeRunning) {
|
||||
mTranslationYForSwipe.cancelAnimation();
|
||||
}
|
||||
mAnimationToHomeRunning = false;
|
||||
cancelSpringIfExists();
|
||||
reset();
|
||||
}
|
||||
/**
|
||||
* Called when there is movement to move the taskbar.
|
||||
*/
|
||||
|
||||
@@ -126,6 +126,10 @@ public class TaskbarStashInputConsumer extends DelegateInputConsumer {
|
||||
mCanceledUnstashHint = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (mTransitionCallback != null && !mIsTaskbarAllAppsOpen) {
|
||||
mTransitionCallback.onActionDown();
|
||||
}
|
||||
break;
|
||||
case MotionEvent.ACTION_POINTER_UP:
|
||||
int ptrIdx = ev.getActionIndex();
|
||||
|
||||
Reference in New Issue
Block a user