Skip to content

Commit 540da5f

Browse files
committed
Merge pull request #72 from SandroMachado/bugfix/app-reconstruction
Fix application onCreate with savedInstanceState
2 parents 858a7bd + 5742cbe commit 540da5f

File tree

3 files changed

+29
-10
lines changed

3 files changed

+29
-10
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package fuzion24.device.vulnerability.test;
22

3+
import java.io.Serializable;
4+
35
import fuzion24.device.vulnerability.vulnerabilities.VulnerabilityTest;
46

5-
public class VulnerabilityTestResult {
7+
public class VulnerabilityTestResult implements Serializable {
68

79
private final VulnerabilityTest mTest;
810
private final boolean mIsVuln;

app/src/main/java/fuzion24/device/vulnerability/test/ui/MainActivity.java

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.json.JSONException;
2626
import org.json.JSONObject;
2727

28+
import java.util.ArrayList;
2829
import java.util.List;
2930

3031
import fuzion24.device.vulnerability.test.ResultsCallback;
@@ -36,13 +37,16 @@
3637

3738
public class MainActivity extends AppCompatActivity {
3839

40+
private static final String SERIALIZABLE_RESULTS = "SERIALIZABLE_RESULTS";
41+
3942
private static final String TAG = "VULN_TEST";
4043

4144
private DeviceInfo devInfo;
42-
private List<VulnerabilityTestResult> testResults;
45+
private ArrayList<VulnerabilityTestResult> testResults;
4346
private RecyclerView recyclerView;
4447
private TextView emptyView;
4548
private CoordinatorLayout coordinatorLayout;
49+
RecyclerAdapter recyclerAdapter;
4650

4751
@Override
4852
protected void onCreate(Bundle savedInstanceState) {
@@ -54,9 +58,19 @@ protected void onCreate(Bundle savedInstanceState) {
5458
setSupportActionBar(toolbar);
5559
getSupportActionBar().setTitle(R.string.app_name);
5660

61+
if (savedInstanceState != null && savedInstanceState.containsKey(SERIALIZABLE_RESULTS)) {
62+
testResults = (ArrayList<VulnerabilityTestResult>) savedInstanceState.getSerializable(SERIALIZABLE_RESULTS);
63+
} else {
64+
testResults = new ArrayList<>();
65+
}
66+
5767
coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorLayout);
5868
emptyView = (TextView) findViewById(R.id.emptyView);
5969
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
70+
recyclerAdapter = new RecyclerAdapter(MainActivity.this, testResults);
71+
72+
recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
73+
recyclerView.setAdapter(recyclerAdapter);
6074

6175
final TextView tvKernelVersion = (TextView) findViewById(R.id.kernelVersion);
6276
final TextView tvBuildFingerPrint = (TextView) findViewById(R.id.buildFingerPrint);
@@ -69,7 +83,6 @@ protected void onCreate(Bundle savedInstanceState) {
6983

7084
final TextView tvBuildABIList = (TextView) findViewById(R.id.buildABIList);
7185

72-
7386
devInfo = DeviceInfo.getDeviceInfo();
7487
tvBuildFingerPrint.setText(devInfo.getBuildFingerPrint());
7588
tvBuildID.setText(devInfo.getBuildID());
@@ -199,14 +212,11 @@ private void runTestsSuit() {
199212
public void finished(final List<VulnerabilityTestResult> results) {
200213
Log.d(TAG, "Device Vulnerability callback, finished");
201214

202-
testResults = results;
215+
testResults.clear();
216+
testResults.addAll(results);
203217

204218
emptyView.setVisibility(View.GONE);
205-
recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
206-
207-
RecyclerAdapter recyclerAdapter = new RecyclerAdapter(MainActivity.this, results);
208-
recyclerView.setAdapter(recyclerAdapter);
209-
219+
recyclerAdapter.notifyDataSetChanged();
210220
}
211221
}).execute();
212222
}
@@ -216,4 +226,9 @@ public void onConfigurationChanged(Configuration newConfig) {
216226
super.onConfigurationChanged(newConfig);
217227
}
218228

229+
@Override
230+
protected void onSaveInstanceState(final Bundle outState) {
231+
outState.putSerializable(SERIALIZABLE_RESULTS, testResults);
232+
}
233+
219234
}

app/src/main/java/fuzion24/device/vulnerability/vulnerabilities/VulnerabilityTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package fuzion24.device.vulnerability.vulnerabilities;
22

33
import android.content.Context;
4+
5+
import java.io.Serializable;
46
import java.util.List;
57
import fuzion24.device.vulnerability.util.CPUArch;
68

7-
public interface VulnerabilityTest {
9+
public interface VulnerabilityTest extends Serializable {
810
public String getCVEorID();
911
public boolean isVulnerable(Context context) throws Exception;
1012
public List<CPUArch> getSupportedArchitectures();

0 commit comments

Comments
 (0)