content: package fuzion24.device.vulnerability.test.adapter.viewholder;
  
  import android.content.Context;
  import android.support.v7.widget.RecyclerView;
  import android.text.TextUtils;
  import android.text.util.Linkify;
  import android.view.View;
  import android.widget.Button;
  import android.widget.TextView;
  
  import com.afollestad.materialdialogs.MaterialDialog;
  import com.nowsecure.android.vts.R;
  
  import java.util.List;
  import java.util.Locale;
  
  public class RecyclerItemViewHolder extends RecyclerView.ViewHolder {
  
      private final TextView textviewTestName;
      private final TextView textviewTestResult;
      private final TextView textviewTestDescription;
      private final Button buttonShowDetails;
  
      public RecyclerItemViewHolder(final View parent, TextView textviewTestName, TextView textviewTestResult, TextView textviewTestDescription, Button buttonShowDetails) {
          super(parent);
  
          this.textviewTestName = textviewTestName;
          this.textviewTestResult = textviewTestResult;
          this.textviewTestDescription = textviewTestDescription;
          this.buttonShowDetails = buttonShowDetails;
      }
  
      public static RecyclerItemViewHolder newInstance(View view) {
          TextView textviewTestName = (TextView) view.findViewById(R.id.vulnerabity_name);
          TextView textviewTestResult = (TextView) view.findViewById(R.id.vulnerabity_result);
          TextView textviewTestDescription = (TextView) view.findViewById(R.id.vulnerabity_description);
          Button buttonShowDetails = (Button) view.findViewById(R.id.vulnerabity_show_details);
  
          return new RecyclerItemViewHolder(view, textviewTestName, textviewTestResult, textviewTestDescription, buttonShowDetails);
      }
  
      public void setItemTestName(CharSequence text) {
          textviewTestName.setText(text);
      }
  
      public void setItemTestResult(CharSequence text) {
          textviewTestResult.setText(text);
      }
  
      public void setItemTestResultColor(int color) {
          textviewTestResult.setTextColor(color);
      }
  
      public void setItemTestResultDescription(CharSequence description) {
          textviewTestDescription.setText(description);
      }
  
      public void setButtonShowDetailsClickListner(final Context context, final String title) {
          buttonShowDetails.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  new MaterialDialog.Builder(context)
                      .title(title)
                      .content(R.string.information_not_available)
                      .positiveText(R.string.dismiss)
                      .show();
              }
          });
      }
  
      public void setButtonShowDetailsClickListner(final Context context, final String title, final List<String> names, final String description, final String impact, final List<String> moreInfo, final List<String> patches, final Double cvssv2Score, final String cvedate) {
          buttonShowDetails.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  MaterialDialog dialog = new MaterialDialog.Builder(context)
                      .title(title)
                      .customView(R.layout.dialog_vulnerability_details, true)
                      .positiveText(R.string.dismiss)
                      .show();
  
                  View view = dialog.getCustomView();
                  TextView textViewNames = (TextView) view.findViewById(R.id.dialog_vulnerabity_names);
                  TextView textViewDescription = (TextView) view.findViewById(R.id.dialog_vulnerabity_description);
                  TextView textViewImpact = (TextView) view.findViewById(R.id.dialog_vulnerabity_impact);
                  TextView textViewMoreInfo = (TextView) view.findViewById(R.id.dialog_vulnerabity_more_info);
                  TextView textViewPatches = (TextView) view.findViewById(R.id.dialog_vulnerabity_patches);
                  TextView textViewCvssv2 = (TextView) view.findViewById(R.id.dialog_vulnerabity_cvssv2);
                  TextView textViewCvedate = (TextView) view.findViewById(R.id.dialog_vulnerabity_cvedate);
  
                  textViewNames.setText(TextUtils.join("\n", names));
                  textViewDescription.setText(description);
                  textViewImpact.setText(impact);
  
                  textViewMoreInfo.setText(TextUtils.join("\n", moreInfo));
                  Linkify.addLinks(textViewMoreInfo, Linkify.WEB_URLS);
  
                  textViewPatches.setText(TextUtils.join("\n", patches));
                  Linkify.addLinks(textViewPatches, Linkify.WEB_URLS);
  
                  textViewCvssv2.setText(String.format(Locale.getDefault(), "%.1f", cvssv2Score));
                  textViewCvedate.setText(cvedate);
              }
          });
      }
  
  }
  