test_class.file: library/src/test/java/com/mapbox/android/gestures/MoveGestureDetectorTest.java
test_class.identifier: MoveGestureDetectorTest
test_class.superclass: extends
    AbstractGestureDetectorTest<MoveGestureDetector, MoveGestureDetector.OnMoveGestureListener>
test_case.body: @Test
    public void analyzeEventTest() {
      doReturn(true).when(listener).onMoveBegin(gestureDetector);
      doReturn(true).when(gestureDetector).checkAnyMoveAboveThreshold();
      doReturn(true).when(gestureDetector).checkPressure();
      doReturn(false).when(gestureDetector).isSloppyGesture();
  
      MotionEvent downEvent = TestUtils.INSTANCE.getMotionEvent(MotionEvent.ACTION_DOWN, 100, 100, null);
      gestureDetector.onTouchEvent(downEvent);
      MotionEvent moveEvent = TestUtils.INSTANCE.getMotionEvent(MotionEvent.ACTION_MOVE, 105, 100, downEvent);
      gestureDetector.onTouchEvent(moveEvent);
      verify(listener, times(1)).onMoveBegin(gestureDetector);
  
      moveEvent = TestUtils.INSTANCE.getMotionEvent(MotionEvent.ACTION_MOVE, 110, 100, moveEvent);
      gestureDetector.onTouchEvent(moveEvent);
      verify(listener, times(1)).onMove(
        gestureDetector, gestureDetector.lastDistanceX, gestureDetector.lastDistanceY);
  
      MotionEvent pointerDownEvent = TestUtils.INSTANCE.getMotionEvent(MotionEvent.ACTION_POINTER_DOWN, 200, 100,
        moveEvent);
      gestureDetector.onTouchEvent(pointerDownEvent);
      moveEvent = TestUtils.INSTANCE.getMotionEvent(MotionEvent.ACTION_MOVE, 115, 100, pointerDownEvent);
      gestureDetector.onTouchEvent(moveEvent);
      // checking for 0, 0 difference because focal point should be reset with pointer count change
      verify(listener, times(1)).onMove(gestureDetector, 0, 0);
  
      MotionEvent pointerUpEvent = TestUtils.INSTANCE.getMotionEvent(MotionEvent.ACTION_POINTER_UP, 200, 100, moveEvent);
      gestureDetector.onTouchEvent(pointerUpEvent);
      MotionEvent upEvent = TestUtils.INSTANCE.getMotionEvent(MotionEvent.ACTION_POINTER_UP, 200, 100, pointerUpEvent);
      gestureDetector.onTouchEvent(upEvent);
      verify(listener, times(1)).onMoveEnd(
        gestureDetector, gestureDetector.velocityX, gestureDetector.velocityY
      );
    }
test_case.class_method_signature: MoveGestureDetectorTest.analyzeEventTest()
test_case.full_signature: @Test public void analyzeEventTest()
test_case.identifier: analyzeEventTest
test_case.invocations: onMoveBegin when doReturn checkAnyMoveAboveThreshold when doReturn checkPressure when doReturn isSloppyGesture when doReturn getMotionEvent onTouchEvent getMotionEvent onTouchEvent onMoveBegin verify times getMotionEvent onTouchEvent onMove verify times getMotionEvent onTouchEvent getMotionEvent onTouchEvent onMove verify times getMotionEvent onTouchEvent getMotionEvent onTouchEvent onMoveEnd verify times
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void analyzeEventTest()
focal_class.declarator: MOVE_REQUIRED_POINTERS_COUNT = 1
focal_class.modifier: private static final
focal_class.original_string: private static final int MOVE_REQUIRED_POINTERS_COUNT = 1;
focal_class.type: int
focal_class.var_name: MOVE_REQUIRED_POINTERS_COUNT
focal_class.declarator: handledTypes = new HashSet<>()
focal_class.modifier: private static final
focal_class.original_string: private static final Set<Integer> handledTypes = new HashSet<>();
focal_class.type: Set<Integer>
focal_class.var_name: handledTypes
focal_class.declarator: previousFocalPoint
focal_class.modifier: private
focal_class.original_string: private PointF previousFocalPoint;
focal_class.type: PointF
focal_class.var_name: previousFocalPoint
focal_class.declarator: resetFocal
focal_class.modifier: private
focal_class.original_string: private boolean resetFocal;
focal_class.type: boolean
focal_class.var_name: resetFocal
focal_class.declarator: lastDistanceX
focal_class.original_string: float lastDistanceX;
focal_class.type: float
focal_class.var_name: lastDistanceX
focal_class.declarator: lastDistanceY
focal_class.original_string: float lastDistanceY;
focal_class.type: float
focal_class.var_name: lastDistanceY
focal_class.declarator: moveThresholdRect
focal_class.modifier: @Nullable
    private
focal_class.original_string: @Nullable
    private RectF moveThresholdRect;
focal_class.type: RectF
focal_class.var_name: moveThresholdRect
focal_class.declarator: moveThreshold
focal_class.modifier: private
focal_class.original_string: private float moveThreshold;
focal_class.type: float
focal_class.var_name: moveThreshold
focal_class.declarator: moveDistancesObjectMap = new HashMap<>()
focal_class.modifier: private final
focal_class.original_string: private final Map<Integer, MoveDistancesObject> moveDistancesObjectMap = new HashMap<>();
focal_class.type: Map<Integer, MoveDistancesObject>
focal_class.var_name: moveDistancesObjectMap
focal_class.file: library/src/main/java/com/mapbox/android/gestures/MoveGestureDetector.java
focal_class.identifier: MoveGestureDetector
focal_class.class_method_signature: MoveGestureDetector.MoveGestureDetector(Context context, AndroidGesturesManager gesturesManager)
focal_class.full_signature: public  MoveGestureDetector(Context context, AndroidGesturesManager gesturesManager)
focal_class.identifier: MoveGestureDetector
focal_class.modifiers: public
focal_class.parameters: (Context context, AndroidGesturesManager gesturesManager)
focal_class.signature:  MoveGestureDetector(Context context, AndroidGesturesManager gesturesManager)
focal_class.class_method_signature: MoveGestureDetector.provideHandledTypes()
focal_class.full_signature: @NonNull @Override protected Set<Integer> provideHandledTypes()
focal_class.identifier: provideHandledTypes
focal_class.modifiers: @NonNull @Override protected
focal_class.parameters: ()
focal_class.return: Set<Integer>
focal_class.signature: Set<Integer> provideHandledTypes()
focal_class.class_method_signature: MoveGestureDetector.analyzeEvent(@NonNull MotionEvent motionEvent)
focal_class.full_signature: @Override protected boolean analyzeEvent(@NonNull MotionEvent motionEvent)
focal_class.identifier: analyzeEvent
focal_class.modifiers: @Override protected
focal_class.parameters: (@NonNull MotionEvent motionEvent)
focal_class.return: boolean
focal_class.signature: boolean analyzeEvent(@NonNull MotionEvent motionEvent)
focal_class.class_method_signature: MoveGestureDetector.analyzeMovement()
focal_class.full_signature: @Override protected boolean analyzeMovement()
focal_class.identifier: analyzeMovement
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean analyzeMovement()
focal_class.class_method_signature: MoveGestureDetector.updateMoveDistancesObjects()
focal_class.full_signature: private void updateMoveDistancesObjects()
focal_class.identifier: updateMoveDistancesObjects
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void updateMoveDistancesObjects()
focal_class.class_method_signature: MoveGestureDetector.checkAnyMoveAboveThreshold()
focal_class.full_signature:  boolean checkAnyMoveAboveThreshold()
focal_class.identifier: checkAnyMoveAboveThreshold
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean checkAnyMoveAboveThreshold()
focal_class.class_method_signature: MoveGestureDetector.canExecute(int invokedGestureType)
focal_class.full_signature: @Override protected boolean canExecute(int invokedGestureType)
focal_class.identifier: canExecute
focal_class.modifiers: @Override protected
focal_class.parameters: (int invokedGestureType)
focal_class.return: boolean
focal_class.signature: boolean canExecute(int invokedGestureType)
focal_class.class_method_signature: MoveGestureDetector.reset()
focal_class.full_signature: @Override protected void reset()
focal_class.identifier: reset
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void reset()
focal_class.class_method_signature: MoveGestureDetector.gestureStopped()
focal_class.full_signature: @Override protected void gestureStopped()
focal_class.identifier: gestureStopped
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void gestureStopped()
focal_class.class_method_signature: MoveGestureDetector.getRequiredPointersCount()
focal_class.full_signature: @Override protected int getRequiredPointersCount()
focal_class.identifier: getRequiredPointersCount
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getRequiredPointersCount()
focal_class.class_method_signature: MoveGestureDetector.getMoveThreshold()
focal_class.full_signature: public float getMoveThreshold()
focal_class.identifier: getMoveThreshold
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: float
focal_class.signature: float getMoveThreshold()
focal_class.class_method_signature: MoveGestureDetector.setMoveThreshold(float moveThreshold)
focal_class.full_signature: public void setMoveThreshold(float moveThreshold)
focal_class.identifier: setMoveThreshold
focal_class.modifiers: public
focal_class.parameters: (float moveThreshold)
focal_class.return: void
focal_class.signature: void setMoveThreshold(float moveThreshold)
focal_class.class_method_signature: MoveGestureDetector.getMoveThresholdRect()
focal_class.full_signature: @Nullable public RectF getMoveThresholdRect()
focal_class.identifier: getMoveThresholdRect
focal_class.modifiers: @Nullable public
focal_class.parameters: ()
focal_class.return: RectF
focal_class.signature: RectF getMoveThresholdRect()
focal_class.class_method_signature: MoveGestureDetector.setMoveThresholdRect(@Nullable RectF moveThresholdRect)
focal_class.full_signature: public void setMoveThresholdRect(@Nullable RectF moveThresholdRect)
focal_class.identifier: setMoveThresholdRect
focal_class.modifiers: public
focal_class.parameters: (@Nullable RectF moveThresholdRect)
focal_class.return: void
focal_class.signature: void setMoveThresholdRect(@Nullable RectF moveThresholdRect)
focal_class.class_method_signature: MoveGestureDetector.setMoveThresholdResource(@DimenRes int moveThresholdDimen)
focal_class.full_signature: public void setMoveThresholdResource(@DimenRes int moveThresholdDimen)
focal_class.identifier: setMoveThresholdResource
focal_class.modifiers: public
focal_class.parameters: (@DimenRes int moveThresholdDimen)
focal_class.return: void
focal_class.signature: void setMoveThresholdResource(@DimenRes int moveThresholdDimen)
focal_class.class_method_signature: MoveGestureDetector.getLastDistanceX()
focal_class.full_signature: public float getLastDistanceX()
focal_class.identifier: getLastDistanceX
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: float
focal_class.signature: float getLastDistanceX()
focal_class.class_method_signature: MoveGestureDetector.getLastDistanceY()
focal_class.full_signature: public float getLastDistanceY()
focal_class.identifier: getLastDistanceY
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: float
focal_class.signature: float getLastDistanceY()
focal_class.class_method_signature: MoveGestureDetector.getMoveObject(int pointerIndex)
focal_class.full_signature: public MoveDistancesObject getMoveObject(int pointerIndex)
focal_class.identifier: getMoveObject
focal_class.modifiers: public
focal_class.parameters: (int pointerIndex)
focal_class.return: MoveDistancesObject
focal_class.signature: MoveDistancesObject getMoveObject(int pointerIndex)
focal_class.superclass: extends ProgressiveGesture<MoveGestureDetector.OnMoveGestureListener>
focal_method.body: @Override
    protected boolean analyzeEvent(@NonNull MotionEvent motionEvent) {
      switch (motionEvent.getActionMasked()) {
        case MotionEvent.ACTION_DOWN:
        case MotionEvent.ACTION_POINTER_DOWN:
          resetFocal = true; //recalculating focal point
  
          float x = motionEvent.getX(motionEvent.getActionIndex());
          float y = motionEvent.getY(motionEvent.getActionIndex());
          moveDistancesObjectMap.put(
            motionEvent.getPointerId(motionEvent.getActionIndex()),
            new MoveDistancesObject(x, y)
          );
          break;
  
        case MotionEvent.ACTION_UP:
          moveDistancesObjectMap.clear();
          break;
  
        case MotionEvent.ACTION_POINTER_UP:
          resetFocal = true; //recalculating focal point
  
          moveDistancesObjectMap.remove(motionEvent.getPointerId(motionEvent.getActionIndex()));
          break;
  
        case MotionEvent.ACTION_CANCEL:
          moveDistancesObjectMap.clear();
          break;
  
        default:
          break;
      }
  
      return super.analyzeEvent(motionEvent);
    }
focal_method.class_method_signature: MoveGestureDetector.analyzeEvent(@NonNull MotionEvent motionEvent)
focal_method.full_signature: @Override protected boolean analyzeEvent(@NonNull MotionEvent motionEvent)
focal_method.identifier: analyzeEvent
focal_method.invocations: getActionMasked getX getActionIndex getY getActionIndex put getPointerId getActionIndex clear remove getPointerId getActionIndex clear analyzeEvent
focal_method.modifiers: @Override protected
focal_method.parameters: (@NonNull MotionEvent motionEvent)
focal_method.return: boolean
focal_method.signature: boolean analyzeEvent(@NonNull MotionEvent motionEvent)