@Override
 public boolean onChildClick(
     ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
   LocalIndexInfo item = listAdapter.getChild(groupPosition, childPosition);
   item.setExpanded(!item.isExpanded());
   if (item.isExpanded()) {
     descriptionLoader = new LoadLocalIndexDescriptionTask();
     descriptionLoader.execute(item);
   }
   if (selectionMode) {
     selectedItems.add(item);
   }
   listAdapter.notifyDataSetInvalidated();
   return true;
 }
    @Override
    public View getChildView(
        int groupPosition,
        int childPosition,
        boolean isLastChild,
        View convertView,
        ViewGroup parent) {
      View v = convertView;
      final LocalIndexInfo child = (LocalIndexInfo) getChild(groupPosition, childPosition);
      if (v == null) {
        LayoutInflater inflater = getLayoutInflater();
        v = inflater.inflate(net.osmand.plus.R.layout.local_index_list_item, parent, false);
      }
      TextView viewName = ((TextView) v.findViewById(R.id.local_index_name));
      viewName.setText(child.getName());
      if (child.isNotSupported()) {
        viewName.setTextColor(Color.RED);
      } else if (child.isCorrupted()) {
        viewName.setTextColor(Color.MAGENTA);
      } else if (child.isLoaded()) {
        viewName.setTextColor(Color.GREEN);
      } else {
        viewName.setTextColor(Color.LTGRAY);
      }
      if (child.getSize() >= 0) {
        String size;
        if (child.getSize() > 100) {
          size = formatMb.format(new Object[] {(float) child.getSize() / (1 << 10)});
        } else {
          size = child.getSize() + " Kb";
        }
        ((TextView) v.findViewById(R.id.local_index_size)).setText(size);
      } else {
        ((TextView) v.findViewById(R.id.local_index_size)).setText("");
      }
      TextView descr = ((TextView) v.findViewById(R.id.local_index_descr));
      if (child.isExpanded()) {
        descr.setVisibility(View.VISIBLE);
        descr.setText(child.getDescription());
      } else {
        descr.setVisibility(View.GONE);
      }
      final CheckBox checkbox = (CheckBox) v.findViewById(R.id.check_local_index);
      checkbox.setVisibility(selectionMode ? View.VISIBLE : View.GONE);
      if (selectionMode) {
        checkbox.setChecked(selectedItems.contains(child));
        checkbox.setOnClickListener(
            new View.OnClickListener() {

              @Override
              public void onClick(View v) {
                if (checkbox.isChecked()) {
                  selectedItems.add(child);
                } else {
                  selectedItems.remove(child);
                }
              }
            });
      }

      return v;
    }