- backend.debug("set_state for %d pos %g,%g\n",
- serial,
- state.gps != null ? state.gps.lat : 0.0,
- state.gps != null ? state.gps.lon : 0.0);
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
- try {
- ObjectOutputStream oos = new ObjectOutputStream(baos);
-
- AltosSavedState saved_state = new AltosSavedState(state, listener_state);
- oos.writeObject(saved_state);
-
- byte[] bytes = baos.toByteArray();
-
- synchronized(backend) {
- backend.putBytes(String.format(statePreferenceFormat, serial), bytes);
- backend.putInt(statePreferenceLatest, serial);
- flush_preferences();
- }
- } catch (IOException ie) {
- backend.debug("set_state failed %s\n", ie.toString());
+ synchronized(backend) {
+ backend.putSerializable(String.format(statePreferenceFormat, serial),
+ new AltosSavedState(state, listener_state));
+ backend.putInt(statePreferenceLatest, serial);