Skip to content

Commit 4d13e3b

Browse files
committed
Create a list of tuples <vuln result, vuln descr>
1 parent 59e59f5 commit 4d13e3b

File tree

2 files changed

+36
-32
lines changed

2 files changed

+36
-32
lines changed

app/src/main/java/fuzion24/device/vulnerability/test/VulnerabilityTestDescriptor.java

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ public class VulnerabilityDescriptor {
2828
List<String> patches;
2929

3030
private VulnerabilityDescriptor(String cve,
31-
String desc,
32-
String impact,
33-
Double cvssv2,
34-
String cveDate,
31+
String desc,
32+
String impact,
33+
Double cvssv2,
34+
String cveDate,
3535
List<String> externLinks,
3636
List<String> altNames,
3737
List<String> patches) {
@@ -45,17 +45,6 @@ private VulnerabilityDescriptor(String cve,
4545
this.patches = patches;
4646
}
4747

48-
public static VulnerabilityDescriptor getDescriptorObject(String cve,
49-
String desc,
50-
String impact,
51-
Double cvssv2,
52-
String cveDate,
53-
String[] externLinks,
54-
String[] altNames,
55-
String[] patches) {
56-
VulnerabilityDescriptor vo = new VulnerabilityDescriptor(cve, desc, impact, cvssv2, cveDate, externLinks, altNames, patches);
57-
return vo;
58-
}
5948

6049
private static List<String> extractStringArray(JSONObject obj, String arrayName) throws Exception {
6150
JSONArray jsonStringArray = obj.getJSONArray(arrayName);
@@ -98,9 +87,17 @@ public static Map<String, VulnerabilityDescriptor> getParsedVulnMap(Context ctx)
9887
patches = extractStringArray(jobj, "patch");
9988
cveDate = jobj.getString("cvedate");
10089

101-
new VulnerabilityDescriptor(cve, description, impact, cvssV2Score, cveDate, externalLinks, altNames, patches);
102-
103-
descriptorMap.put(cve, )
90+
VulnerabilityDescriptor vd = new VulnerabilityDescriptor(
91+
cve,
92+
description,
93+
impact,
94+
cvssV2Score,
95+
cveDate,
96+
externalLinks,
97+
altNames,
98+
patches);
99+
100+
descriptorMap.put(cve, vd);
104101
}
105102

106103
return descriptorMap;

app/src/main/java/fuzion24/device/vulnerability/test/adapter/RecyclerAdapter.java

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import android.graphics.Color;
55
import android.support.v7.widget.RecyclerView;
66
import android.text.TextUtils;
7+
import android.util.Pair;
78
import android.view.LayoutInflater;
89
import android.view.View;
910
import android.view.ViewGroup;
@@ -14,21 +15,33 @@
1415
import org.json.JSONObject;
1516

1617
import java.util.ArrayList;
18+
import java.util.Iterator;
1719
import java.util.List;
20+
import java.util.Map;
1821

22+
import fuzion24.device.vulnerability.test.VulnerabilityDescriptor;
1923
import fuzion24.device.vulnerability.test.VulnerabilityTestResult;
2024
import fuzion24.device.vulnerability.test.adapter.viewholder.RecyclerItemViewHolder;
2125
import fuzion24.device.vulnerability.vulnerabilities.helper.BinaryAssets;
2226

2327
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
2428

25-
private List<VulnerabilityTestResult> mResults;
29+
final private List<Pair<VulnerabilityTestResult, VulnerabilityDescriptor>> mResults;
2630
private Context mContext;
2731

2832
public RecyclerAdapter(Context context, List<VulnerabilityTestResult> itemList) {
2933
this.mContext = context;
30-
this.mResults = itemList;
34+
Map<String, VulnerabilityDescriptor> vMap = VulnerabilityDescriptor.getParsedVulnMap(context);
3135

36+
List<Pair<VulnerabilityTestResult, VulnerabilityDescriptor>> res =
37+
new ArrayList<Pair<VulnerabilityTestResult, VulnerabilityDescriptor>>();
38+
39+
for(VulnerabilityTestResult vtr : itemList){
40+
VulnerabilityDescriptor vd = vMap.get(vtr.getCVEorID());
41+
res.add(Pair.create(vtr, vd));
42+
}
43+
44+
this.mResults = res;
3245

3346
}
3447

@@ -49,25 +62,19 @@ private class VulnObject {
4962
@Override
5063
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
5164
RecyclerItemViewHolder holder = (RecyclerItemViewHolder) viewHolder;
52-
VulnerabilityTestResult item = mResults.get(position);
65+
Pair<VulnerabilityTestResult, VulnerabilityDescriptor> item = mResults.get(position);
5366

54-
holder.setItemTestName(item.getCVEorID());
67+
VulnerabilityTestResult vulnRes = item.first;
68+
VulnerabilityDescriptor vulnDesc = item.second;
5569

70+
holder.setItemTestName(vulnRes.getCVEorID());
5671

57-
try {
58-
jobj = mVulnMap.getJSONObject(item.getCVEorID());
59-
60-
61-
} catch (Exception e) {
62-
//We dont have an entry or are missing necessary components of it
63-
e.printStackTrace();
64-
}
6572

66-
if (item.getException() != null) {
73+
if (vulnRes.getException() != null) {
6774
holder.setItemTestResult(mContext.getString(R.string.error_test, item.getException().getMessage()));
6875
holder.setItemTestResultColor(mContext.getResources().getColor(R.color.orange));
6976
} else {
70-
if (item.getResult()) {
77+
if (vulnRes.getResult()) {
7178
holder.setItemTestResultColor(mContext.getResources().getColor(R.color.red));
7279
holder.setItemTestResult(mContext.getString(R.string.test_result_failure));
7380
} else {

0 commit comments

Comments
 (0)