code: private void tryRippleEnter() {
          if (mExitingRipplesCount >= MAX_RIPPLES) {
              // This should never happen unless the user is tapping like a maniac
              // or there is a bug that's preventing ripples from being removed.
              return;
          }
  
          if (mRipple == null) {
              final float x;
              final float y;
              if (mHasPending) {
                  mHasPending = false;
                  x = mPendingX;
                  y = mPendingY;
              } else {
                  x = mHotspotBounds.exactCenterX();
                  y = mHotspotBounds.exactCenterY();
              }
  
              final boolean isBounded = isBounded();
              mRipple = new RippleForeground(this, mHotspotBounds, x, y, isBounded);
          }
  
          mRipple.setup(mState.mMaxRadius, mDensity);
          mRipple.enter(false);
      }
docs: Attempts to start an enter animation for the active hotspot. Fails if there are too many
  animating ripples.