diff options
author | Tony Wickham <twickham@google.com> | 2018-04-24 13:42:59 -0700 |
---|---|---|
committer | Tony Wickham <twickham@google.com> | 2018-05-03 14:04:25 -0700 |
commit | 52240a3aa069ffd97ffe6a85ed6cd452b295fa2d (patch) | |
tree | 279ec401bedc41a613c3ee481197e34a5da0447f /src_ui_overrides/com | |
parent | f325b19de384da8666af558f65933e0243508349 (diff) | |
download | android_packages_apps_Trebuchet-52240a3aa069ffd97ffe6a85ed6cd452b295fa2d.tar.gz android_packages_apps_Trebuchet-52240a3aa069ffd97ffe6a85ed6cd452b295fa2d.tar.bz2 android_packages_apps_Trebuchet-52240a3aa069ffd97ffe6a85ed6cd452b295fa2d.zip |
Only detect swipe directions that lead to new states
This cleans up the code and ensures that the current state animation
is always initialized when we get drag events.
Also log when we pass through states.
Bug: 78017680
Change-Id: I54ab42923ed539940ea708973ad65f5793669c11
Diffstat (limited to 'src_ui_overrides/com')
-rw-r--r-- | src_ui_overrides/com/android/launcher3/uioverrides/AllAppsSwipeController.java | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src_ui_overrides/com/android/launcher3/uioverrides/AllAppsSwipeController.java b/src_ui_overrides/com/android/launcher3/uioverrides/AllAppsSwipeController.java index d1cddc18f..860be5ff7 100644 --- a/src_ui_overrides/com/android/launcher3/uioverrides/AllAppsSwipeController.java +++ b/src_ui_overrides/com/android/launcher3/uioverrides/AllAppsSwipeController.java @@ -17,12 +17,17 @@ import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType; */ public class AllAppsSwipeController extends AbstractStateChangeTouchController { + private MotionEvent mTouchDownEvent; + public AllAppsSwipeController(Launcher l) { super(l, SwipeDetector.VERTICAL); } @Override protected boolean canInterceptTouch(MotionEvent ev) { + if (ev.getAction() == MotionEvent.ACTION_DOWN) { + mTouchDownEvent = ev; + } if (mCurrentAnimation != null) { // If we are already animating from a previous state, we can intercept. return true; @@ -41,18 +46,6 @@ public class AllAppsSwipeController extends AbstractStateChangeTouchController { } @Override - protected int getSwipeDirection(MotionEvent ev) { - if (mLauncher.isInState(ALL_APPS)) { - mStartContainerType = ContainerType.ALLAPPS; - return SwipeDetector.DIRECTION_NEGATIVE; - } else { - mStartContainerType = mLauncher.getDragLayer().isEventOverHotseat(ev) ? - ContainerType.HOTSEAT : ContainerType.WORKSPACE; - return SwipeDetector.DIRECTION_POSITIVE; - } - } - - @Override protected LauncherState getTargetState(LauncherState fromState, boolean isDragTowardPositive) { if (fromState == NORMAL && isDragTowardPositive) { return ALL_APPS; @@ -63,6 +56,12 @@ public class AllAppsSwipeController extends AbstractStateChangeTouchController { } @Override + protected int getLogContainerTypeForNormalState() { + return mLauncher.getDragLayer().isEventOverHotseat(mTouchDownEvent) ? + ContainerType.HOTSEAT : ContainerType.WORKSPACE; + } + + @Override protected float initCurrentAnimation() { float range = getShiftRange(); long maxAccuracy = (long) (2 * range); |