@Override
    public View getChildView(
        final int groupPosition,
        final int childPosition,
        boolean isLastChild,
        View convertView,
        ViewGroup parent) {
      final Object child = getChild(groupPosition, childPosition);
      if (child instanceof IndexItem) {

        IndexItem item = (IndexItem) child;
        DownloadResourceGroup group = getGroupObj(groupPosition);
        ItemViewHolder viewHolder;
        if (convertView != null && convertView.getTag() instanceof ItemViewHolder) {
          viewHolder = (ItemViewHolder) convertView.getTag();
        } else {
          convertView =
              LayoutInflater.from(parent.getContext())
                  .inflate(R.layout.two_line_with_images_list_item, parent, false);
          viewHolder = new ItemViewHolder(convertView, ctx);
          viewHolder.setShowRemoteDate(true);
          convertView.setTag(viewHolder);
        }
        if (mainGroup.getType() == DownloadResourceGroupType.REGION
            && group != null
            && group.getType() == DownloadResourceGroupType.REGION_MAPS) {
          viewHolder.setShowTypeInName(true);
          viewHolder.setShowTypeInDesc(false);
        } else if (group != null
            && (group.getType() == DownloadResourceGroupType.SRTM_HEADER
                || group.getType() == DownloadResourceGroupType.HILLSHADE_HEADER)) {
          viewHolder.setShowTypeInName(false);
          viewHolder.setShowTypeInDesc(false);
        } else {
          viewHolder.setShowTypeInDesc(true);
        }
        viewHolder.bindIndexItem(item, group);
      } else {
        DownloadResourceGroup group = (DownloadResourceGroup) child;
        DownloadGroupViewHolder viewHolder;
        if (convertView != null && convertView.getTag() instanceof DownloadGroupViewHolder) {
          viewHolder = (DownloadGroupViewHolder) convertView.getTag();
        } else {
          convertView =
              LayoutInflater.from(parent.getContext())
                  .inflate(R.layout.simple_list_menu_item, parent, false);
          viewHolder = new DownloadGroupViewHolder(ctx, convertView);
          convertView.setTag(viewHolder);
        }
        viewHolder.bindItem(group);
      }

      return convertView;
    }
 @Override
 public boolean onChildClick(
     ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
   Object child = listAdapter.getChild(groupPosition, childPosition);
   if (child instanceof DownloadResourceGroup) {
     String uniqueId = ((DownloadResourceGroup) child).getUniqueId();
     final DownloadResourceGroupFragment regionDialogFragment =
         DownloadResourceGroupFragment.createInstance(uniqueId);
     ((DownloadActivity) getActivity()).showDialog(getActivity(), regionDialogFragment);
     return true;
   } else if (child instanceof IndexItem) {
     IndexItem indexItem = (IndexItem) child;
     DownloadResourceGroup groupObj = listAdapter.getGroupObj(groupPosition);
     ItemViewHolder vh = (ItemViewHolder) v.getTag();
     OnClickListener ls =
         vh.getRightButtonAction(indexItem, vh.getClickAction(indexItem), groupObj);
     ls.onClick(v);
     return true;
   }
   return false;
 }