docs: private OnItemClickListener createItemClickListener() {
          return new OnItemClickListener() {
  
              @Override
              public void onItemClick(final AdapterView<?> parent, final View view,
                                      final int position, final long id) {
                  Pair<Integer, Integer> itemPosition =
                          getItemPosition(position - getHeaderViewsCount());
                  int groupIndex = itemPosition.first;
                  int childIndex = itemPosition.second;
                  long packedId;
  
                  if (childIndex != -1) {
                      packedId = getPackedPositionForChild(groupIndex, childIndex);
                      notifyOnChildClicked(view, groupIndex, childIndex, packedId);
                  } else if (groupIndex != -1) {
                      packedId = getPackedPositionForGroup(groupIndex);
                      notifyOnGroupClicked(view, groupIndex, packedId);
                  } else {
                      packedId = getPackedPositionForChild(Integer.MAX_VALUE, position);
                  }
  
                  notifyOnItemClicked(view, getPackedPosition(position), packedId);
              }
  
          };
      }