summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java17
1 files changed, 9 insertions, 8 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
index d1de38c7b9e4..5f4bd1d7c240 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
@@ -3900,6 +3900,7 @@ public class NotificationStackScrollLayout extends ViewGroup
private class NotificationSwipeHelper extends SwipeHelper {
private static final long SHOW_GEAR_DELAY = 60;
private static final long COVER_GEAR_DELAY = 4000;
+ private static final long SWIPE_GEAR_TIMING = 200;
private CheckForDrag mCheckForDrag;
private Runnable mFalsingCheck;
private Handler mHandler;
@@ -4016,6 +4017,9 @@ public class NotificationStackScrollLayout extends ViewGroup
boolean gestureTowardsGear = isTowardsGear(velocity, mCurrIconRow.isIconOnLeft());
boolean gestureFastEnough = Math.abs(velocity) > getEscapeVelocity();
+ final double timeForGesture = ev.getEventTime() - ev.getDownTime();
+ final boolean showGearForSlowOnGoing = !canChildBeDismissed(animView)
+ && timeForGesture >= SWIPE_GEAR_TIMING;
if (mGearSnappedTo && mCurrIconRow.isVisible()) {
if (mGearSnappedOnLeft == mCurrIconRow.isIconOnLeft()) {
@@ -4040,7 +4044,8 @@ public class NotificationStackScrollLayout extends ViewGroup
} else {
dismissOrSnapBack(animView, velocity, ev);
}
- } else if ((!gestureFastEnough && swipedEnoughToShowGear(animView))
+ } else if (((!gestureFastEnough || showGearForSlowOnGoing)
+ && swipedEnoughToShowGear(animView))
|| gestureTowardsGear) {
// Gear has not been snapped to previously and this is gear revealing gesture
snapToGear(animView, velocity);
@@ -4092,13 +4097,9 @@ public class NotificationStackScrollLayout extends ViewGroup
final float multiplier = canChildBeDismissed(animView) ? 0.4f : 0.2f;
final float snapBackThreshold = getSpaceForGear(animView) * multiplier;
final float translation = getTranslation(animView);
- final boolean fromLeft = translation > 0;
- final float absTrans = Math.abs(translation);
- final float notiThreshold = getSize(mTranslatingParentView) * 0.4f;
-
- return mCurrIconRow.isVisible() && (mCurrIconRow.isIconOnLeft()
- ? (translation > snapBackThreshold && translation <= notiThreshold)
- : (translation < -snapBackThreshold && translation >= -notiThreshold));
+ return !swipedFarEnough() && mCurrIconRow.isVisible() && (mCurrIconRow.isIconOnLeft()
+ ? translation > snapBackThreshold
+ : translation < -snapBackThreshold);
}
@Override