X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosdroid%2Fsrc%2Forg%2Faltusmetrum%2FAltosDroid%2FTelemetryService.java;h=dc39c899822ef9ad995ae52c2658f2e21b37e29e;hb=b1a90adac9f6e2a609ce1ccd6749462bb5c9adbe;hp=4b26d263509b18ff1cb3bc6dff49bf258ab74a07;hpb=204ae5142702044eb8ad2697a55028e904067958;p=fw%2Faltos diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java index 4b26d263..dc39c899 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java @@ -40,7 +40,7 @@ import android.os.Looper; import android.widget.Toast; import android.location.Criteria; -import org.altusmetrum.altoslib_10.*; +import org.altusmetrum.altoslib_11.*; public class TelemetryService extends Service implements AltosIdleMonitorListener { @@ -129,6 +129,8 @@ public class TelemetryService extends Service implements AltosIdleMonitorListene case MSG_DISCONNECT: AltosDebug.debug("Disconnect command received"); s.address = null; + if (!(Boolean) msg.obj) + AltosDroidPreferences.set_active_device(null); s.disconnect(true); break; case MSG_DELETE_SERIAL: @@ -263,7 +265,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(); } @@ -612,25 +614,25 @@ public class TelemetryService extends Service implements AltosIdleMonitorListene telemetry_state.latest_serial = AltosPreferences.latest_state(); + AltosDebug.debug("latest serial %d\n", telemetry_state.latest_serial); + 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); + AltosPreferences.remove_state(serial); } } } @@ -703,4 +705,8 @@ public class TelemetryService extends Service implements AltosIdleMonitorListene public void failed() { } + + public void error(String reason) { + stop_idle_monitor(); + } }