summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-04-30 18:37:05 -0700
committerKeith Packard <keithp@keithp.com>2016-04-30 18:37:05 -0700
commit59466c1c2dbf95c427c2bb52304049eaac4d124f (patch)
treebdc6e825a39dd2ff40cda8033df476a71df1f0e5
parent4219fd7720caeec196bf6cb1b4cf78c8fadaf3cd (diff)
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 <keithp@keithp.com>
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java25
-rw-r--r--altoslib/AltosPreferences.java16
2 files changed, 21 insertions, 20 deletions
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;
+ }
}
}