altosdroid: Fix offline map messages to match new meanings
[fw/altos] / altoslib / AltosTelemetryFile.java
index 46a5d060caf9a264335947ec26e5909aa4a251f7..679c6809559508a7b7c8719e8255b0d0ac00837a 100644 (file)
@@ -16,7 +16,7 @@
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altoslib_11;
+package org.altusmetrum.altoslib_13;
 
 import java.io.*;
 import java.util.*;
@@ -52,6 +52,8 @@ class AltosTelemetryNullListener extends AltosDataListener {
 
        public boolean cal_data_complete() {
                /* All telemetry packets */
+               AltosCalData cal_data = cal_data();
+
                if (cal_data.serial == AltosLib.MISSING)
                        return false;
 
@@ -107,7 +109,7 @@ public class AltosTelemetryFile implements AltosRecordSet {
                        AltosTelemetryNullListener l = new AltosTelemetryNullListener(cal_data);
 
                        for (AltosTelemetry telem : telems) {
-                               telem.provide_data(l, cal_data);
+                               telem.provide_data(l);
                                if (l.cal_data_complete())
                                        break;
                        }
@@ -118,16 +120,21 @@ public class AltosTelemetryFile implements AltosRecordSet {
        public void capture_series(AltosDataListener listener) {
                AltosCalData    cal_data = cal_data();
 
+               cal_data.reset();
                for (AltosTelemetry telem : telems) {
                        int tick = telem.tick();
                        cal_data.set_tick(tick);
-                       if (cal_data.time() >= -1)
-                               telem.provide_data(listener, cal_data);
+
+                       /* Try to pick up at least one pre-boost value */
+                       if (cal_data.time() >= -2)
+                               telem.provide_data(listener);
+                       if (listener.state() == AltosLib.ao_flight_landed)
+                               break;
                }
                listener.finish();
        }
 
-       public AltosTelemetryFile(FileInputStream input) {
+       public AltosTelemetryFile(FileInputStream input) throws IOException {
                telems = new AltosTelemetryIterable(input);
        }
 }