code: public void addUnchanged(int unchangedLength) {
          if(unchangedLength < 0) {
              throw new IllegalArgumentException(
                      "addUnchanged(" + unchangedLength + "): length must not be negative");
          }
          // Merge into previous unchanged-text record, if any.
          int last = lastUnit();
          if(last < MAX_UNCHANGED) {
              int remaining = MAX_UNCHANGED - last;
              if (remaining >= unchangedLength) {
                  setLastUnit(last + unchangedLength);
                  return;
              }
              setLastUnit(MAX_UNCHANGED);
              unchangedLength -= remaining;
          }
          // Split large lengths into multiple units.
          while(unchangedLength >= MAX_UNCHANGED_LENGTH) {
              append(MAX_UNCHANGED);
              unchangedLength -= MAX_UNCHANGED_LENGTH;
          }
          // Write a small (remaining) length.
          if(unchangedLength > 0) {
              append(unchangedLength - 1);
          }
      }
docs: Adds a record for an unchanged segment of text.
  Normally called from inside ICU string transformation functions, not user code.
  @hide draft / provisional / internal are hidden on Android