Skip to content

Commit 6e94f1b

Browse files
savschmarcnause
authored andcommitted
fix: handle configuration changes in SensorActivity
Fixes #2596
1 parent 98445e1 commit 6e94f1b

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

app/src/main/java/io/pslab/activity/SensorActivity.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import android.widget.ListView;
1111
import android.widget.TextView;
1212

13+
import androidx.annotation.NonNull;
1314
import androidx.annotation.Nullable;
1415
import androidx.appcompat.app.ActionBar;
1516
import androidx.appcompat.widget.Toolbar;
@@ -45,6 +46,11 @@
4546
*/
4647

4748
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";
4854

4955
private I2C i2c;
5056
private ScienceLab scienceLab;
@@ -94,6 +100,15 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
94100
lvSensor = findViewById(R.id.lv_sensor);
95101
lvSensor.setAdapter(adapter);
96102

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+
97112
buttonSensorAutoScan.setOnClickListener(v -> {
98113
buttonSensorAutoScan.setClickable(false);
99114
tvSensorScan.setText(getResources().getString(R.string.scanning));
@@ -155,6 +170,14 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
155170
});
156171
}
157172

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+
158181
private class PopulateSensors extends AsyncTask<Void, Void, Void> {
159182
private List<Integer> detectedSensors;
160183

0 commit comments

Comments
 (0)