- bytes = backend.getBytes(String.format(statePreferenceFormat, serial), null);
- }
-
- if (bytes == null) {
- backend.debug("no state for %d\n", serial);
- return null;
- }
-
- ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
-
- try {
- ObjectInputStream ois = new ObjectInputStream(bais);
- AltosSavedState saved_state = (AltosSavedState) ois.readObject();
- backend.debug("got saved state for %d: %g,%g\n",
- serial,
- saved_state.state.gps != null ? saved_state.state.gps.lat : 0.0,
- saved_state.state.gps != null ? saved_state.state.gps.lon : 0.0);
- return saved_state;
- } catch (IOException ie) {
- backend.debug("IO exception %s\n", ie.toString());
- } catch (ClassNotFoundException ce) {
- backend.debug("ClassNotFoundException %s\n", ce.toString());
+ try {
+ return AltosState.fromJson(backend.getJson(String.format(statePreferenceFormat, serial)));
+ } catch (Exception e) {
+ return null;
+ }