mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 02:38:20 +00:00
Merge "Allow user gesture to take priority over taskbar translation reset animnatiuon." into tm-qpr-dev
This commit is contained in:
@@ -642,7 +642,7 @@ public class TaskbarLauncherStateController {
|
||||
long resetDuration = mControllers.taskbarStashController.isInApp()
|
||||
? duration
|
||||
: duration / 2;
|
||||
if (!mControllers.taskbarTranslationController.willAnimateToZeroBefore(resetDuration)
|
||||
if (mControllers.taskbarTranslationController.shouldResetBackToZero(resetDuration)
|
||||
&& (isAnimatingToLauncher() || mLauncherState == LauncherState.NORMAL)) {
|
||||
animatorSet.play(mControllers.taskbarTranslationController
|
||||
.createAnimToResetTranslation(resetDuration));
|
||||
|
||||
@@ -54,6 +54,7 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
|
||||
private boolean mHasSprungOnceThisGesture;
|
||||
private @Nullable ValueAnimator mSpringBounce;
|
||||
private boolean mGestureEnded;
|
||||
private boolean mGestureInProgress;
|
||||
private boolean mAnimationToHomeRunning;
|
||||
|
||||
private final boolean mIsTransientTaskbar;
|
||||
@@ -123,6 +124,7 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
|
||||
|
||||
private void reset() {
|
||||
mGestureEnded = false;
|
||||
mGestureInProgress = false;
|
||||
mHasSprungOnceThisGesture = false;
|
||||
}
|
||||
|
||||
@@ -134,18 +136,24 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if we will animate to zero before the input duration.
|
||||
* Returns {@code true} if we should reset the animation back to zero.
|
||||
*
|
||||
* Returns {@code false} if there is a gesture in progress, or if we are already animating
|
||||
* to 0 within the specified duration.
|
||||
*/
|
||||
public boolean willAnimateToZeroBefore(long duration) {
|
||||
public boolean shouldResetBackToZero(long duration) {
|
||||
if (mGestureInProgress) {
|
||||
return false;
|
||||
}
|
||||
if (mSpringBounce != null && mSpringBounce.isRunning()) {
|
||||
long springDuration = mSpringBounce.getDuration();
|
||||
long current = mSpringBounce.getCurrentPlayTime();
|
||||
return (springDuration - current < duration);
|
||||
return (springDuration - current >= duration);
|
||||
}
|
||||
if (mTranslationYForSwipe.isAnimatingToValue(0)) {
|
||||
return mTranslationYForSwipe.getRemainingTime() < duration;
|
||||
return mTranslationYForSwipe.getRemainingTime() >= duration;
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -188,6 +196,7 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
|
||||
mAnimationToHomeRunning = false;
|
||||
cancelSpringIfExists();
|
||||
reset();
|
||||
mGestureInProgress = true;
|
||||
}
|
||||
/**
|
||||
* Called when there is movement to move the taskbar.
|
||||
@@ -211,6 +220,7 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
|
||||
mGestureEnded = true;
|
||||
startSpring();
|
||||
}
|
||||
mGestureInProgress = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -222,6 +232,7 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
|
||||
pw.println(prefix + "\tmHasSprungOnceThisGesture=" + mHasSprungOnceThisGesture);
|
||||
pw.println(prefix + "\tmAnimationToHomeRunning=" + mAnimationToHomeRunning);
|
||||
pw.println(prefix + "\tmGestureEnded=" + mGestureEnded);
|
||||
pw.println(prefix + "\tmGestureInProgress=" + mGestureInProgress);
|
||||
pw.println(prefix + "\tmSpringBounce is running=" + (mSpringBounce != null
|
||||
&& mSpringBounce.isRunning()));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user