docs: @Override
      protected boolean onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect) {
          // convert from forward / backward notation to up / down / left / right
          // (ugh).
          if (direction == View.FOCUS_FORWARD) {
              direction = View.FOCUS_DOWN;
          } else if (direction == View.FOCUS_BACKWARD) {
              direction = View.FOCUS_UP;
          }
  
          final View nextFocus = previouslyFocusedRect == null ?
                  FocusFinder.getInstance().findNextFocus(this, null, direction) :
                  FocusFinder.getInstance().findNextFocusFromRect(this,
                          previouslyFocusedRect, direction);
  
          if (nextFocus == null) {
              return false;
          }
  
          return nextFocus.requestFocus(direction, previouslyFocusedRect);
      }