diff options
| author | Keith Packard <keithp@keithp.com> | 2016-05-12 23:33:53 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2016-05-12 23:41:55 -0700 | 
| commit | b1a90adac9f6e2a609ce1ccd6749462bb5c9adbe (patch) | |
| tree | 107b6491d8ffc507609f9923353d5454c0664323 /altoslib/AltosCompanion.java | |
| parent | b13037fad0905c5933d1ff579122ba1357b02eea (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.java | 28 | 
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); +	}  }  | 
