@Override
  public void onBindViewHolder(ViewHolder holder, int position) {
    Member member = members.get(position);

    if (member.getUserId().equals(User.getUserId())) {
      try {
        holder.image.setImageBitmap(
            ActionsHelper.getImage(
                context, "user_thumbnail_image", User.getUserEid() + File.separator + "user"));
      } catch (FileNotFoundException e) {
        e.printStackTrace();
      }
    } else {

      try {
        holder.image.setImageBitmap(
            ActionsHelper.getImage(
                context,
                member.getUserId() + "_image",
                User.getUserEid()
                    + File.separator
                    + "memberships"
                    + File.separator
                    + siteData.getId()
                    + File.separator
                    + "roster"
                    + File.separator
                    + "user_images"));
      } catch (FileNotFoundException e) {
        e.printStackTrace();
      }
    }

    holder.name.setText(member.getSortName());
    holder.eid.setText(member.getEid());
    holder.role.setText(member.getRole());

    int status = member.getConnectionStatus();

    if (status == 0 || status == 3) {

      holder.friendRequest.setVisibility(View.GONE);
      if (!member.getUserId().equals(User.getUserId())) {

        holder.friendStatus.setVisibility(View.VISIBLE);

        if (status == 0) {
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            holder.addRemove.setImageDrawable(
                ActionsHelper.setCustomDrawableColor(
                    context,
                    R.mipmap.ic_join,
                    context.getResources().getColor(R.color.green, context.getTheme())));
          } else {
            holder.addRemove.setImageDrawable(
                ActionsHelper.setCustomDrawableColor(
                    context, R.mipmap.ic_join, context.getResources().getColor(R.color.green)));
          }
        } else {
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            holder.addRemove.setImageDrawable(
                ActionsHelper.setCustomDrawableColor(
                    context,
                    R.mipmap.ic_unjoin,
                    context.getResources().getColor(R.color.delete_red, context.getTheme())));
          } else {
            holder.addRemove.setImageDrawable(
                ActionsHelper.setCustomDrawableColor(
                    context,
                    R.mipmap.ic_unjoin,
                    context.getResources().getColor(R.color.delete_red)));
          }
        }
      }
    } else {
      holder.friendStatus.setVisibility(View.GONE);
      holder.friendRequest.setVisibility(View.VISIBLE);

      if (status == 1) {
        holder.connectionRequest.setVisibility(View.VISIBLE);
        holder.friendRequest.setVisibility(View.GONE);
      } else {
        holder.connectionRequest.setVisibility(View.GONE);
        holder.friendRequest.setVisibility(View.VISIBLE);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
          holder.confirm.setImageDrawable(
              ActionsHelper.setCustomDrawableColor(
                  context,
                  R.mipmap.ic_check_circle,
                  context.getResources().getColor(R.color.green, context.getTheme())));
          holder.ignore.setImageDrawable(
              ActionsHelper.setCustomDrawableColor(
                  context,
                  R.mipmap.ic_cancel,
                  context.getResources().getColor(R.color.delete_red, context.getTheme())));
        } else {
          holder.confirm.setImageDrawable(
              ActionsHelper.setCustomDrawableColor(
                  context,
                  R.mipmap.ic_check_circle,
                  context.getResources().getColor(R.color.green)));
          holder.ignore.setImageDrawable(
              ActionsHelper.setCustomDrawableColor(
                  context,
                  R.mipmap.ic_cancel,
                  context.getResources().getColor(R.color.delete_red)));
        }
      }
    }

    holder.name.setText(member.getSortName());
  }