docs: private void updateTextSize(@NonNull Rect viewBounds) {
          float textSize = (float) viewBounds.height() * (mRespectFontBounds ? 1 : 2);
          mIconBrush.getPaint().setTextSize(textSize);
  
          String textValue = mIcon != null ? String.valueOf(mIcon.getCharacter()) : String.valueOf(mPlainIcon);
          mIconBrush.getPaint().getTextPath(textValue, 0, textValue.length(), 0, viewBounds.height(), mPath);
          mPath.computeBounds(mPathBounds, true);
  
          if (!mRespectFontBounds) {
              float deltaWidth = ((float) mPaddingBounds.width() / mPathBounds.width());
              float deltaHeight = ((float) mPaddingBounds.height() / mPathBounds.height());
              float delta = (deltaWidth < deltaHeight) ? deltaWidth : deltaHeight;
              textSize *= delta;
  
              mIconBrush.getPaint().setTextSize(textSize);
  
              mIconBrush.getPaint().getTextPath(textValue, 0, textValue.length(), 0, viewBounds.height(), mPath);
              mPath.computeBounds(mPathBounds, true);
          }
      }