The documentation say this about that:
A gesture starts with a motion event with ACTION_DOWN that provides the location of the first pointer down. A
I believe your code is missing the masking operation like:
switch (motionaction & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_POINTER_DOWN: }
This code should be able to check for ACTION_POINTER_DOWN.
Good luck & tell us what happens.
Tommy Kwee