@Override public int getItemViewType(int position) { if (isInChildView()) { if (position == 0) { return ItemType.itemTypeToViewType(ItemType.NAVIGATION_BACK); } return ItemType.itemTypeToViewType(ItemType.CHILD); } else { final int numClients = remoteClients.size(); if (position < numClients) { if (!hiddenClients.isEmpty() && position == numClients - 1) { return ItemType.itemTypeToViewType(ItemType.HIDDEN_DEVICES); } return ItemType.itemTypeToViewType(ItemType.CLIENT); } final int sectionPosition = transformAdapterPositionForDataStructure(ItemType.SECTION_HEADER, position); if (sectionHeaders.get(sectionPosition) != null) { return ItemType.itemTypeToViewType(ItemType.SECTION_HEADER); } return ItemType.itemTypeToViewType(ItemType.HISTORY); } }