@Override
    public int hashCode() {
      int hashCode = 1;

      // Hashing the TextPaint object
      hashCode = 31 * hashCode + paint.getColor();
      hashCode = 31 * hashCode + Float.floatToIntBits(paint.getTextSize());
      hashCode = 31 * hashCode + (paint.getTypeface() != null ? paint.getTypeface().hashCode() : 0);
      hashCode = 31 * hashCode + Float.floatToIntBits(mShadowDx);
      hashCode = 31 * hashCode + Float.floatToIntBits(mShadowDy);
      hashCode = 31 * hashCode + Float.floatToIntBits(mShadowRadius);
      hashCode = 31 * hashCode + mShadowColor;
      hashCode = 31 * hashCode + paint.linkColor;
      hashCode = 31 * hashCode + Float.floatToIntBits(paint.density);
      hashCode = 31 * hashCode + Arrays.hashCode(paint.drawableState);

      hashCode = 31 * hashCode + width;
      hashCode = 31 * hashCode + measureMode;
      hashCode = 31 * hashCode + Float.floatToIntBits(spacingMult);
      hashCode = 31 * hashCode + Float.floatToIntBits(spacingAdd);
      hashCode = 31 * hashCode + Float.floatToIntBits(lineHeight);
      hashCode = 31 * hashCode + (includePadding ? 1 : 0);
      hashCode = 31 * hashCode + (useLineSpacingFromFallbacks ? 1 : 0);
      hashCode = 31 * hashCode + (ellipsize != null ? ellipsize.hashCode() : 0);
      hashCode = 31 * hashCode + (singleLine ? 1 : 0);
      hashCode = 31 * hashCode + maxLines;
      hashCode = 31 * hashCode + (alignment != null ? alignment.hashCode() : 0);
      hashCode = 31 * hashCode + (textDirection != null ? textDirection.hashCode() : 0);
      hashCode = 31 * hashCode + breakStrategy;
      hashCode = 31 * hashCode + hyphenationFrequency;
      hashCode = 31 * hashCode + Arrays.hashCode(leftIndents);
      hashCode = 31 * hashCode + Arrays.hashCode(rightIndents);
      hashCode = 31 * hashCode + (text != null ? text.hashCode() : 0);

      return hashCode;
    }
Create a new paint after the builder builds for the first time.
library/src/main/java/com/facebook/fbui/textlayoutbuilder/TextLayoutBuilder.java