Merge "Fixing recents command not working properly in gesture mode" into sc-dev
This commit is contained in:
commit
9a8c77afe9
|
@ -621,7 +621,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
|||
final boolean passed = mCurrentShift.value >= MIN_PROGRESS_FOR_OVERVIEW;
|
||||
if (passed != mPassedOverviewThreshold) {
|
||||
mPassedOverviewThreshold = passed;
|
||||
if (mDeviceState.isTwoButtonNavMode()) {
|
||||
if (mDeviceState.isTwoButtonNavMode() && !mGestureState.isHandlingAtomicEvent()) {
|
||||
performHapticFeedback();
|
||||
}
|
||||
}
|
||||
|
@ -854,7 +854,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
|||
|
||||
private GestureEndTarget calculateEndTarget(PointF velocity, float endVelocity, boolean isFling,
|
||||
boolean isCancel) {
|
||||
if (mDeviceState.isButtonNavMode()) {
|
||||
if (mGestureState.isHandlingAtomicEvent()) {
|
||||
// Button mode, this is only used to go to recents
|
||||
return RECENTS;
|
||||
}
|
||||
|
@ -979,7 +979,7 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
|
|||
mRecentsView.snapToPage(mRecentsView.getNextPage(), (int) MAX_SWIPE_DURATION);
|
||||
isScrolling = true;
|
||||
}
|
||||
if (!mDeviceState.isButtonNavMode() || isScrolling) {
|
||||
if (!mGestureState.isHandlingAtomicEvent() || isScrolling) {
|
||||
duration = Math.max(duration, mRecentsView.getScroller().getDuration());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -146,6 +146,8 @@ public class GestureState implements RecentsAnimationCallbacks.RecentsAnimationL
|
|||
/** The time when the swipe up gesture is triggered. */
|
||||
private long mSwipeUpStartTimeMs;
|
||||
|
||||
private boolean mHandlingAtomicEvent;
|
||||
|
||||
public GestureState(OverviewComponentObserver componentObserver, int gestureId) {
|
||||
mHomeIntent = componentObserver.getHomeIntent();
|
||||
mOverviewIntent = componentObserver.getOverviewIntent();
|
||||
|
@ -314,6 +316,22 @@ public class GestureState implements RecentsAnimationCallbacks.RecentsAnimationL
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates if the gesture is handling an atomic event like a click and not a
|
||||
* user controlled gesture.
|
||||
*/
|
||||
public void setHandlingAtomicEvent(boolean handlingAtomicEvent) {
|
||||
mHandlingAtomicEvent = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the gesture is handling an atomic event like a click and not a
|
||||
* user controlled gesture.
|
||||
*/
|
||||
public boolean isHandlingAtomicEvent() {
|
||||
return mHandlingAtomicEvent;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return whether the current gesture is still running a recents animation to a state in the
|
||||
* Launcher or Recents activity.
|
||||
|
|
|
@ -179,6 +179,7 @@ public class OverviewCommandHelper {
|
|||
}
|
||||
|
||||
GestureState gestureState = mService.createGestureState(GestureState.DEFAULT_STATE);
|
||||
gestureState.setHandlingAtomicEvent(true);
|
||||
AbsSwipeUpHandler interactionHandler = mService.getSwipeUpHandlerFactory()
|
||||
.newHandler(gestureState, cmd.createTime);
|
||||
interactionHandler.setGestureEndCallback(
|
||||
|
|
Loading…
Reference in New Issue