code: private boolean onDownEvent(@NonNull MotionEvent event) {
          if (MotionEventCompat.getActionMasked(event) != MotionEvent.ACTION_DOWN) {
              throw new IllegalStateException("Has to be down event!");
          }
  
          if (mVelocityTracker == null) {
              mVelocityTracker = VelocityTracker.obtain();
          } else {
              mVelocityTracker.clear();
          }
  
          mDownY = event.getY();
  
          if (!mScroller.isFinished()) {
              mScroller.forceFinished(true);
              if (mScroller.getFinalY() == 0) {
                  mDragStartY = mDownY + mScroller.getStartY() - mScroller.getCurrY();
              } else {
                  mDragStartY = mDownY - mScroller.getCurrY();
              }
              mState = State.DRAGGING;
              return true;
          } else {
              return false;
          }
  
      }
docs: Triggered
  @param event Down event