@Override
  public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) {
    RecipientsListLoader.Result item =
        (RecipientsListLoader.Result) adapter.getItemAtPosition(position);

    if (mMode == MODE_VCARD) {
      flipVCardNumberState(item.phoneNumber);
    } else {
      if (item.group != null) {
        checkGroup(item.group, !item.group.isChecked());
      } else {
        selectPhoneNumber(item.phoneNumber, !item.phoneNumber.isChecked());
        updateGroupCheckStateForNumber(item.phoneNumber, null);
      }
    }

    invalidateOptionsMenu();
    mListAdapter.notifyDataSetChanged();
  }