From: Keith Packard Date: Sun, 1 May 2016 01:37:05 +0000 (-0700) Subject: altoslib: Flush during set_state. Don't store listener state. X-Git-Tag: 1.6.3~2^2~9 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=59466c1c2dbf95c427c2bb52304049eaac4d124f altoslib: Flush during set_state. Don't store listener state. The listener state wasn't used anyways, so don't bother storing it. Also, flush the state during set_state, which actually causes the state to be written out. Signed-off-by: Keith Packard --- diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index 4b26d263..7c5fde50 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -263,7 +263,7 @@ public class TelemetryService extends Service implements AltosIdleMonitorListene telem.update_state(state); telemetry_state.states.put(telem.serial, state); if (state != null) { - AltosPreferences.set_state(telem.serial, state, null); + AltosPreferences.set_state(state); } send_to_clients(); } @@ -613,24 +613,21 @@ public class TelemetryService extends Service implements AltosIdleMonitorListene telemetry_state.latest_serial = AltosPreferences.latest_state(); for (int serial : serials) { - AltosSavedState saved_state = AltosPreferences.state(serial); + AltosState saved_state = AltosPreferences.state(serial); if (saved_state != null) { - if (serial == 0) { - serial = saved_state.state.serial; - AltosPreferences.set_state(serial, saved_state.state, saved_state.listener_state); - AltosPreferences.remove_state(0); - } if (telemetry_state.latest_serial == 0) telemetry_state.latest_serial = serial; - AltosDebug.debug("recovered old state serial %d flight %d\n", + AltosDebug.debug("recovered old state serial %d flight %d", serial, - saved_state.state.flight); - if (saved_state.state.gps != null) - AltosDebug.debug("\tposition %f,%f\n", - saved_state.state.gps.lat, - saved_state.state.gps.lon); - telemetry_state.states.put(serial, saved_state.state); + saved_state.flight); + if (saved_state.gps != null) + AltosDebug.debug("\tposition %f,%f", + saved_state.gps.lat, + saved_state.gps.lon); + telemetry_state.states.put(serial, saved_state); + } else { + AltosDebug.debug("Failed to recover state for %d", serial); } } } diff --git a/altoslib/AltosPreferences.java b/altoslib/AltosPreferences.java index cc340d03..fb3026a4 100644 --- a/altoslib/AltosPreferences.java +++ b/altoslib/AltosPreferences.java @@ -350,12 +350,12 @@ public class AltosPreferences { } } - public static void set_state(int serial, AltosState state, AltosListenerState listener_state) { + public static void set_state(AltosState state) { synchronized(backend) { - backend.putSerializable(String.format(statePreferenceFormat, serial), - new AltosSavedState(state, listener_state)); - backend.putInt(statePreferenceLatest, serial); + backend.putSerializable(String.format(statePreferenceFormat, state.serial), state); + backend.putInt(statePreferenceLatest, state.serial); + flush_preferences(); } } @@ -389,9 +389,13 @@ public class AltosPreferences { return latest; } - public static AltosSavedState state(int serial) { + public static AltosState state(int serial) { synchronized(backend) { - return (AltosSavedState) backend.getSerializable(String.format(statePreferenceFormat, serial), null); + try { + return (AltosState) backend.getSerializable(String.format(statePreferenceFormat, serial), null); + } catch (Exception e) { + return null; + } } }