|
10 | 10 | import android.widget.ListView;
|
11 | 11 | import android.widget.TextView;
|
12 | 12 |
|
| 13 | +import androidx.annotation.NonNull; |
13 | 14 | import androidx.annotation.Nullable;
|
14 | 15 | import androidx.appcompat.app.ActionBar;
|
15 | 16 | import androidx.appcompat.widget.Toolbar;
|
|
45 | 46 | */
|
46 | 47 |
|
47 | 48 | public class SensorActivity extends GuideActivity {
|
| 49 | + private static final String TAG = SensorActivity.class.getSimpleName(); |
| 50 | + |
| 51 | + private static final String KEY_ENTRIES_ADDRESSES = TAG + "_entries_addrs"; |
| 52 | + private static final String KEY_ENTRIES_NAMES = TAG + "_entries_names"; |
| 53 | + private static final String KEY_VALUE_SCAN = TAG + "_value_tvscan"; |
48 | 54 |
|
49 | 55 | private I2C i2c;
|
50 | 56 | private ScienceLab scienceLab;
|
@@ -94,6 +100,15 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
|
94 | 100 | lvSensor = findViewById(R.id.lv_sensor);
|
95 | 101 | lvSensor.setAdapter(adapter);
|
96 | 102 |
|
| 103 | + if (savedInstanceState != null) { |
| 104 | + String savedScanResults = savedInstanceState.getString(KEY_VALUE_SCAN); |
| 105 | + List<String> savedNames = savedInstanceState.getStringArrayList(KEY_ENTRIES_NAMES); |
| 106 | + List<String> savedAddresses = savedInstanceState.getStringArrayList(KEY_ENTRIES_ADDRESSES); |
| 107 | + if (savedScanResults != null) tvSensorScan.setText(savedScanResults); |
| 108 | + if (savedNames != null) dataName.addAll(savedNames); |
| 109 | + if (savedAddresses != null) dataAddress.addAll(savedAddresses); |
| 110 | + } |
| 111 | + |
97 | 112 | buttonSensorAutoScan.setOnClickListener(v -> {
|
98 | 113 | buttonSensorAutoScan.setClickable(false);
|
99 | 114 | tvSensorScan.setText(getResources().getString(R.string.scanning));
|
@@ -155,6 +170,14 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
|
155 | 170 | });
|
156 | 171 | }
|
157 | 172 |
|
| 173 | + @Override |
| 174 | + protected void onSaveInstanceState(@NonNull Bundle outState) { |
| 175 | + super.onSaveInstanceState(outState); |
| 176 | + outState.putString(KEY_VALUE_SCAN, tvSensorScan.getText().toString()); |
| 177 | + outState.putStringArrayList(KEY_ENTRIES_NAMES, new ArrayList<>(dataName)); |
| 178 | + outState.putStringArrayList(KEY_ENTRIES_ADDRESSES, new ArrayList<>(dataAddress)); |
| 179 | + } |
| 180 | + |
158 | 181 | private class PopulateSensors extends AsyncTask<Void, Void, Void> {
|
159 | 182 | private List<Integer> detectedSensors;
|
160 | 183 |
|
|
0 commit comments