code: private void animateView(final int diff, final float animationSpeed,
                               @NonNull final AnimationListener animationListener,
                               @NonNull final Interpolator interpolator) {
          if (!isDragging() && !isAnimationRunning()) {
              long duration = calculateAnimationDuration(diff, animationSpeed);
              Animation animation =
                      new DraggableViewAnimation(this, diff, duration, animationListener);
              animation.setInterpolator(interpolator);
              startAnimation(animation);
          }
      }
docs: Animates the view to become shown or hidden.
  
  @param diff
  The distance the view has to be vertically moved by, as an {@link Integer} value
  @param animationSpeed
  The speed of the animation in pixels per millisecond as a {@link Float} value
  @param animationListener
  The listener, which should be notified about the animation's progress, as an instance
  of the type {@link AnimationListener}. The listener may not be null
  @param interpolator
  The interpolator, which should be used by the animation, as an instance of the type
  {@link Interpolator}. The interpolator may not be null