Loading src/com/android/launcher3/touch/WorkspaceTouchListener.java +9 −8 Original line number Diff line number Diff line Loading @@ -20,12 +20,12 @@ import static android.view.MotionEvent.ACTION_DOWN; import static android.view.MotionEvent.ACTION_MOVE; import static android.view.MotionEvent.ACTION_POINTER_UP; import static android.view.MotionEvent.ACTION_UP; import static android.view.ViewConfiguration.getLongPressTimeout; import static com.android.launcher3.LauncherState.NORMAL; import android.graphics.PointF; import android.graphics.Rect; import android.view.GestureDetector; import android.view.HapticFeedbackConstants; import android.view.MotionEvent; import android.view.View; Loading @@ -45,7 +45,8 @@ import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType; /** * Helper class to handle touch on empty space in workspace and show options popup on long press */ public class WorkspaceTouchListener implements OnTouchListener, Runnable { public class WorkspaceTouchListener extends GestureDetector.SimpleOnGestureListener implements OnTouchListener { /** * STATE_PENDING_PARENT_INFORM is the state between longPress performed & the next motionEvent. Loading @@ -66,16 +67,21 @@ public class WorkspaceTouchListener implements OnTouchListener, Runnable { private int mLongPressState = STATE_CANCELLED; private final GestureDetector mGestureDetector; public WorkspaceTouchListener(Launcher launcher, Workspace workspace) { mLauncher = launcher; mWorkspace = workspace; // Use twice the touch slop as we are looking for long press which is more // likely to cause movement. mTouchSlop = 2 * ViewConfiguration.get(launcher).getScaledTouchSlop(); mGestureDetector = new GestureDetector(workspace.getContext(), this); } @Override public boolean onTouch(View view, MotionEvent ev) { mGestureDetector.onTouchEvent(ev); int action = ev.getActionMasked(); if (action == ACTION_DOWN) { // Check if we can handle long press. Loading @@ -97,7 +103,6 @@ public class WorkspaceTouchListener implements OnTouchListener, Runnable { if (handleLongPress) { mLongPressState = STATE_REQUESTED; mTouchDownPoint.set(ev.getX(), ev.getY()); mWorkspace.postDelayed(this, getLongPressTimeout()); } mWorkspace.onTouchEvent(ev); Loading Loading @@ -143,9 +148,6 @@ public class WorkspaceTouchListener implements OnTouchListener, Runnable { } } if (action == ACTION_UP || action == ACTION_CANCEL) { cancelLongPress(); } return result; } Loading @@ -155,12 +157,11 @@ public class WorkspaceTouchListener implements OnTouchListener, Runnable { } private void cancelLongPress() { mWorkspace.removeCallbacks(this); mLongPressState = STATE_CANCELLED; } @Override public void run() { public void onLongPress(MotionEvent event) { if (mLongPressState == STATE_REQUESTED) { if (canHandleLongPress()) { mLongPressState = STATE_PENDING_PARENT_INFORM; Loading Loading
src/com/android/launcher3/touch/WorkspaceTouchListener.java +9 −8 Original line number Diff line number Diff line Loading @@ -20,12 +20,12 @@ import static android.view.MotionEvent.ACTION_DOWN; import static android.view.MotionEvent.ACTION_MOVE; import static android.view.MotionEvent.ACTION_POINTER_UP; import static android.view.MotionEvent.ACTION_UP; import static android.view.ViewConfiguration.getLongPressTimeout; import static com.android.launcher3.LauncherState.NORMAL; import android.graphics.PointF; import android.graphics.Rect; import android.view.GestureDetector; import android.view.HapticFeedbackConstants; import android.view.MotionEvent; import android.view.View; Loading @@ -45,7 +45,8 @@ import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType; /** * Helper class to handle touch on empty space in workspace and show options popup on long press */ public class WorkspaceTouchListener implements OnTouchListener, Runnable { public class WorkspaceTouchListener extends GestureDetector.SimpleOnGestureListener implements OnTouchListener { /** * STATE_PENDING_PARENT_INFORM is the state between longPress performed & the next motionEvent. Loading @@ -66,16 +67,21 @@ public class WorkspaceTouchListener implements OnTouchListener, Runnable { private int mLongPressState = STATE_CANCELLED; private final GestureDetector mGestureDetector; public WorkspaceTouchListener(Launcher launcher, Workspace workspace) { mLauncher = launcher; mWorkspace = workspace; // Use twice the touch slop as we are looking for long press which is more // likely to cause movement. mTouchSlop = 2 * ViewConfiguration.get(launcher).getScaledTouchSlop(); mGestureDetector = new GestureDetector(workspace.getContext(), this); } @Override public boolean onTouch(View view, MotionEvent ev) { mGestureDetector.onTouchEvent(ev); int action = ev.getActionMasked(); if (action == ACTION_DOWN) { // Check if we can handle long press. Loading @@ -97,7 +103,6 @@ public class WorkspaceTouchListener implements OnTouchListener, Runnable { if (handleLongPress) { mLongPressState = STATE_REQUESTED; mTouchDownPoint.set(ev.getX(), ev.getY()); mWorkspace.postDelayed(this, getLongPressTimeout()); } mWorkspace.onTouchEvent(ev); Loading Loading @@ -143,9 +148,6 @@ public class WorkspaceTouchListener implements OnTouchListener, Runnable { } } if (action == ACTION_UP || action == ACTION_CANCEL) { cancelLongPress(); } return result; } Loading @@ -155,12 +157,11 @@ public class WorkspaceTouchListener implements OnTouchListener, Runnable { } private void cancelLongPress() { mWorkspace.removeCallbacks(this); mLongPressState = STATE_CANCELLED; } @Override public void run() { public void onLongPress(MotionEvent event) { if (mLongPressState == STATE_REQUESTED) { if (canHandleLongPress()) { mLongPressState = STATE_PENDING_PARENT_INFORM; Loading