code: @Override
      public void draw(Canvas canvas) {
          final boolean positionChanged = adapterPositionChanged();
          if (rippleOverlay) {
              if (!positionChanged) {
                  rippleBackground.draw(canvas);
              }
              super.draw(canvas);
              if (!positionChanged) {
                  if (rippleRoundedCorners != 0) {
                      Path clipPath = new Path();
                      RectF rect = new RectF(0, 0, canvas.getWidth(), canvas.getHeight());
                      clipPath.addRoundRect(rect, rippleRoundedCorners, rippleRoundedCorners, Path.Direction.CW);
                      canvas.clipPath(clipPath);
                  }
                  canvas.drawCircle(currentCoords.x, currentCoords.y, radius, paint);
              }
          } else {
              if (!positionChanged) {
                  rippleBackground.draw(canvas);
                  canvas.drawCircle(currentCoords.x, currentCoords.y, radius, paint);
              }
              super.draw(canvas);
          }
      }
docs: /*
  Drawing