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);
}
});
}
}