'MotionEventCompat functions are deprecated

I am trying to add an onTouchEvent to a View, but I then see the deprecation support on this link: https://developer.android.com/sdk/support_api_diff/26.0.0-alpha1/changes/android.support.v4.view.MotionEventCompat.html.

enter image description here

It says, they are all deprecated. So what code should be used to replace the MotionEventCompat functions?



Solution 1:[1]

I know it is an old question but, I had to refactor some code and, I had to update these deprecated functions. It is easy to refactorize it, just do this:

  • If you use constants like MotionEventCompat.ACTION_MASK, then replace them for MotionEvent.ACTION_MASK
  • Every time you have something like MotionEventCompat.getPointerId(ev, index); do this instead: ev.getPointerId(index);

And that is all! I will list a few more examples to be clearer:

  • Replace MotionEventCompat.ACTION_POINTER_DOWN by MotionEvent.ACTION_POINTER_DOWN
  • Replace MotionEventCompat.ACTION_POINTER_UP by MotionEvent.ACTION_POINTER_UP
  • Replace MotionEventCompat.getX(ev, pointerIndex); by ev.getX(pointerIndex);
  • Replace MotionEventCompat.getY(ev, pointerIndex); by ev.getY(pointerIndex);
  • Replace MotionEventCompat.getActionIndex(ev); by ev.getActionIndex();

Also (not directly related to this question) I had to replace VelocityTrackerCompat.getXVelocity(velocityTracker, mActivePointerId); by velocityTracker.getXVelocity(mActivePointerId);

I hope this can help someone else in the future :)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Daniel S.