docs: private boolean processKeyUp(int keyCode) {
          if (keyCode == KeyEvent.KEYCODE_TAB) {
              if(mInKbMode) {
                  if (isTypedTimeFullyLegal()) {
                      finishKbMode(true);
                  }
                  return true;
              }
          } else if (keyCode == KeyEvent.KEYCODE_ENTER) {
              if (mInKbMode) {
                  if (!isTypedTimeFullyLegal()) {
                      return true;
                  }
                  finishKbMode(false);
              }
              if (mCallback != null) {
                  mCallback.onTimeSet(this,
                          mTimePicker.getHours(), mTimePicker.getMinutes(), mTimePicker.getSeconds());
              }
              dismiss();
              return true;
          } else if (keyCode == KeyEvent.KEYCODE_DEL) {
              if (mInKbMode) {
                  if (!mTypedTimes.isEmpty()) {
                      int deleted = deleteLastTypedKey();
                      String deletedKeyStr;
                      if (deleted == getAmOrPmKeyCode(AM)) {
                          deletedKeyStr = mAmText;
                      } else if (deleted == getAmOrPmKeyCode(PM)) {
                          deletedKeyStr = mPmText;
                      } else {
                          deletedKeyStr = String.format(mLocale, "%d", getValFromKeyCode(deleted));
                      }
                      Utils.tryAccessibilityAnnounce(mTimePicker,
                              String.format(mDeletedKeyFormat, deletedKeyStr));
                      updateDisplay(true);
                  }
              }
          } else if (keyCode == KeyEvent.KEYCODE_0 || keyCode == KeyEvent.KEYCODE_1
                  || keyCode == KeyEvent.KEYCODE_2 || keyCode == KeyEvent.KEYCODE_3
                  || keyCode == KeyEvent.KEYCODE_4 || keyCode == KeyEvent.KEYCODE_5
                  || keyCode == KeyEvent.KEYCODE_6 || keyCode == KeyEvent.KEYCODE_7
                  || keyCode == KeyEvent.KEYCODE_8 || keyCode == KeyEvent.KEYCODE_9
                  || (!mIs24HourMode &&
                          (keyCode == getAmOrPmKeyCode(AM) || keyCode == getAmOrPmKeyCode(PM)))) {
              if (!mInKbMode) {
                  if (mTimePicker == null) {
                      // Something's wrong, because time picker should definitely not be null.
                      Log.e(TAG, "Unable to initiate keyboard mode, TimePicker was null.");
                      return true;
                  }
                  mTypedTimes.clear();
                  tryStartingKbMode(keyCode);
                  return true;
              }
              // We're already in keyboard mode.
              if (addKeyIfLegal(keyCode)) {
                  updateDisplay(false);
              }
              return true;
          }
          return false;
      }