Merge "Fix some issues with haptic" into ub-launcher3-edmonton-polish

This commit is contained in:
Tony Wickham 2018-06-12 15:55:30 +00:00 committed by Android (Google) Code Review
commit fe1402d8a4
4 changed files with 14 additions and 6 deletions

View File

@ -241,16 +241,16 @@ public abstract class TaskViewTouchController<T extends BaseDraggingActivity>
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) {

View File

@ -575,7 +575,7 @@ public class WindowTransformSwipeHandler<T extends BaseDraggingActivity> {
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);
}

View File

@ -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 @@ public abstract class AnimatorPlaybackController implements ValueAnimator.Animat
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 @@ public abstract class AnimatorPlaybackController implements ValueAnimator.Animat
return mDuration;
}
public TimeInterpolator getInterpolator() {
return mAnim.getInterpolator() != null ? mAnim.getInterpolator() : LINEAR;
}
/**
* Starts playing the animation forward from current position.
*/

View File

@ -354,6 +354,8 @@ public abstract class AbstractStateChangeTouchController
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 @@ public abstract class AbstractStateChangeTouchController
} 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;