Merge "Adding overscroll effect in recents list" into ub-launcher3-edmonton-polish
diff --git a/quickstep/src/com/android/launcher3/uioverrides/TaskViewTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/TaskViewTouchController.java
index ba15ebe..cfd4119 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/TaskViewTouchController.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/TaskViewTouchController.java
@@ -241,16 +241,16 @@
if (blockedFling) {
fling = false;
}
+ float progress = mCurrentAnimation.getProgressFraction();
+ float interpolatedProgress = mCurrentAnimation.getInterpolator().getInterpolation(progress);
if (fling) {
logAction = Touch.FLING;
boolean goingUp = velocity < 0;
goingToEnd = goingUp == mCurrentAnimationIsGoingUp;
} else {
logAction = Touch.SWIPE;
- goingToEnd = mCurrentAnimation.getProgressFraction() > SUCCESS_TRANSITION_PROGRESS;
+ goingToEnd = interpolatedProgress > SUCCESS_TRANSITION_PROGRESS;
}
-
- float progress = mCurrentAnimation.getProgressFraction();
long animationDuration = SwipeDetector.calculateDuration(
velocity, goingToEnd ? (1 - progress) : progress);
if (blockedFling && !goingToEnd) {
diff --git a/quickstep/src/com/android/quickstep/TaskSystemShortcut.java b/quickstep/src/com/android/quickstep/TaskSystemShortcut.java
index f82ff8c..c77d0c7 100644
--- a/quickstep/src/com/android/quickstep/TaskSystemShortcut.java
+++ b/quickstep/src/com/android/quickstep/TaskSystemShortcut.java
@@ -152,8 +152,7 @@
}
};
- AbstractFloatingView.closeOpenViews(activity, true,
- AbstractFloatingView.TYPE_ALL & ~AbstractFloatingView.TYPE_REBIND_SAFE);
+ dismissTaskMenuView(activity);
final int navBarPosition = WindowManagerWrapper.getInstance().getNavBarPosition();
if (navBarPosition == WindowManagerWrapper.NAV_BAR_POS_INVALID) {
@@ -246,6 +245,7 @@
}
};
taskView.launchTask(true, resultCallback, mHandler);
+ dismissTaskMenuView(activity);
};
}
}
@@ -265,4 +265,9 @@
return null;
}
}
+
+ private static void dismissTaskMenuView(BaseDraggingActivity activity) {
+ AbstractFloatingView.closeOpenViews(activity, true,
+ AbstractFloatingView.TYPE_ALL & ~AbstractFloatingView.TYPE_REBIND_SAFE);
+ }
}
diff --git a/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java b/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java
index c9f94bd..532699e 100644
--- a/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java
+++ b/quickstep/src/com/android/quickstep/WindowTransformSwipeHandler.java
@@ -575,7 +575,7 @@
final boolean passed = mCurrentShift.value >= MIN_PROGRESS_FOR_OVERVIEW;
if (passed != mPassedOverviewThreshold) {
mPassedOverviewThreshold = passed;
- if (mRecentsView != null) {
+ if (mInteractionType == INTERACTION_NORMAL && mRecentsView != null) {
mRecentsView.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY,
HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING);
}
diff --git a/src/com/android/launcher3/anim/AnimatorPlaybackController.java b/src/com/android/launcher3/anim/AnimatorPlaybackController.java
index 50fb0a5..164728a 100644
--- a/src/com/android/launcher3/anim/AnimatorPlaybackController.java
+++ b/src/com/android/launcher3/anim/AnimatorPlaybackController.java
@@ -15,6 +15,8 @@
*/
package com.android.launcher3.anim;
+import static com.android.launcher3.anim.Interpolators.LINEAR;
+
import android.animation.Animator;
import android.animation.Animator.AnimatorListener;
import android.animation.AnimatorListenerAdapter;
@@ -72,7 +74,7 @@
mOnCancelRunnable = onCancelRunnable;
mAnimationPlayer = ValueAnimator.ofFloat(0, 1);
- mAnimationPlayer.setInterpolator(Interpolators.LINEAR);
+ mAnimationPlayer.setInterpolator(LINEAR);
mAnimationPlayer.addListener(new OnAnimationEndDispatcher());
mAnimationPlayer.addUpdateListener(this);
@@ -107,6 +109,10 @@
return mDuration;
}
+ public TimeInterpolator getInterpolator() {
+ return mAnim.getInterpolator() != null ? mAnim.getInterpolator() : LINEAR;
+ }
+
/**
* Starts playing the animation forward from current position.
*/
diff --git a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java
index ff3b425..b1fef02 100644
--- a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java
+++ b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java
@@ -354,6 +354,8 @@
final LauncherState targetState;
final float progress = mCurrentAnimation.getProgressFraction();
+ final float interpolatedProgress = mCurrentAnimation.getInterpolator()
+ .getInterpolation(progress);
if (fling) {
targetState =
Float.compare(Math.signum(velocity), Math.signum(mProgressMultiplier)) == 0
@@ -362,7 +364,7 @@
} else {
float successProgress = mToState == ALL_APPS
? MIN_PROGRESS_TO_ALL_APPS : SUCCESS_TRANSITION_PROGRESS;
- targetState = (progress > successProgress) ? mToState : mFromState;
+ targetState = (interpolatedProgress > successProgress) ? mToState : mFromState;
}
final float endProgress;