docs: public boolean executeKeyEvent(KeyEvent event) {
          mTempRect.setEmpty();
          if (!canScroll()) {
              if (isFocused()) {
                  View currentFocused = findFocus();
                  if (currentFocused == this) currentFocused = null;
                  View nextFocused = FocusFinder.getInstance().findNextFocus(this, currentFocused, View.FOCUS_DOWN);
                  return nextFocused != null && nextFocused != this && nextFocused.requestFocus(View.FOCUS_DOWN);
              }
              return false;
          }
          boolean handled = false;
          if (event.getAction() == KeyEvent.ACTION_DOWN) {
              switch (event.getKeyCode()) {
                  case KeyEvent.KEYCODE_DPAD_UP:
                      if (!event.isAltPressed()) {
                          handled = arrowScroll(View.FOCUS_UP, false);
                      } else {
                          handled = fullScroll(View.FOCUS_UP, false);
                      }
                      break;
                  case KeyEvent.KEYCODE_DPAD_DOWN:
                      if (!event.isAltPressed()) {
                          handled = arrowScroll(View.FOCUS_DOWN, false);
                      } else {
                          handled = fullScroll(View.FOCUS_DOWN, false);
                      }
                      break;
                  case KeyEvent.KEYCODE_DPAD_LEFT:
                      if (!event.isAltPressed()) {
                          handled = arrowScroll(View.FOCUS_LEFT, true);
                      } else {
                          handled = fullScroll(View.FOCUS_LEFT, true);
                      }
                      break;
                  case KeyEvent.KEYCODE_DPAD_RIGHT:
                      if (!event.isAltPressed()) {
                          handled = arrowScroll(View.FOCUS_RIGHT, true);
                      } else {
                          handled = fullScroll(View.FOCUS_RIGHT, true);
                      }
                      break;
              }
          }
          return handled;
      }