code: @Override
      public int getPositionForSection(int sectionIndex) {
          if (mSectionList.size() == 0) {
              for (Integer key : mSections.keySet()) {
                  mSectionList.add(key);
              }
          }
          return sectionIndex < mSectionList.size() ? mSectionList.get(sectionIndex) : getCount();
      }
docs: Given the index of a section within the array of section objects, returns
  the starting position of that section within the adapter.
  
  If the section's starting position is outside of the adapter bounds, the
  position must be clipped to fall within the size of the adapter.
  
  @param sectionIndex the index of the section within the array of section
  objects
  @return the starting position of that section within the adapter,
  constrained to fall within the adapter bounds