/**
   * Get the character conversion data for a given key code.
   *
   * @param keyCode The keyCode to query.
   * @param results A {@link KeyData} instance that will be filled with the results.
   * @return True if the key was mapped. If the key was not mapped, results is not modified.
   * @deprecated instead use {@link KeyCharacterMap#getDisplayLabel(int)}, {@link
   *     KeyCharacterMap#getNumber(int)} or {@link KeyCharacterMap#get(int, int)}.
   */
  @Deprecated
  public boolean getKeyData(int keyCode, KeyData results) {
    if (results.meta.length < KeyData.META_LENGTH) {
      throw new IndexOutOfBoundsException("results.meta.length must be >= " + KeyData.META_LENGTH);
    }

    char displayLabel = nativeGetDisplayLabel(mPtr, keyCode);
    if (displayLabel == 0) {
      return false;
    }

    results.displayLabel = displayLabel;
    results.number = nativeGetNumber(mPtr, keyCode);
    results.meta[0] = nativeGetCharacter(mPtr, keyCode, 0);
    results.meta[1] = nativeGetCharacter(mPtr, keyCode, KeyEvent.META_SHIFT_ON);
    results.meta[2] = nativeGetCharacter(mPtr, keyCode, KeyEvent.META_ALT_ON);
    results.meta[3] =
        nativeGetCharacter(mPtr, keyCode, KeyEvent.META_ALT_ON | KeyEvent.META_SHIFT_ON);
    return true;
  }