summaryrefslogtreecommitdiff
path: root/altoslib/AltosCompanion.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-05-12 23:33:53 -0700
committerKeith Packard <keithp@keithp.com>2016-05-12 23:41:55 -0700
commitb1a90adac9f6e2a609ce1ccd6749462bb5c9adbe (patch)
tree107b6491d8ffc507609f9923353d5454c0664323 /altoslib/AltosCompanion.java
parentb13037fad0905c5933d1ff579122ba1357b02eea (diff)
altoslib: Store saved state in version-independent format
Use AltosHashSet for AltosState so that AltosDroid doesn't lose tracker information when the application is upgraded. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosCompanion.java')
-rw-r--r--altoslib/AltosCompanion.java28
1 files changed, 27 insertions, 1 deletions
diff --git a/altoslib/AltosCompanion.java b/altoslib/AltosCompanion.java
index 381b0a25..6f18d93e 100644
--- a/altoslib/AltosCompanion.java
+++ b/altoslib/AltosCompanion.java
@@ -19,7 +19,7 @@ package org.altusmetrum.altoslib_11;
import java.io.*;
-public class AltosCompanion implements Serializable {
+public class AltosCompanion implements AltosHashable {
public final static int board_id_telescience = 0x0a;
public final static int MAX_CHANNELS = 12;
@@ -37,4 +37,30 @@ public class AltosCompanion implements Serializable {
channels = MAX_CHANNELS;
companion_data = new int[channels];
}
+
+ public AltosHashSet hashSet() {
+ AltosHashSet h = new AltosHashSet();
+
+ h.putInt("tick", tick);
+ h.putInt("board_id", board_id);
+ h.putInt("update_period", update_period);
+ h.putInt("channels", channels);
+ h.putIntArray("companion_data", companion_data);
+ return h;
+ }
+
+ public AltosCompanion(AltosHashSet h) {
+ tick = h.getInt("tick", tick);
+ board_id = h.getInt("board_id", board_id);
+ update_period = h.getInt("update_period", update_period);
+ channels = h.getInt("channels", channels);
+ companion_data = h.getIntArray("companion_data", new int[channels]);
+ }
+
+ public static AltosCompanion fromHashSet(AltosHashSet h, AltosCompanion def) {
+ if (h == null)
+ return def;
+
+ return new AltosCompanion(h);
+ }
}