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/AltosPreferencesBackend.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/AltosPreferencesBackend.java')
-rw-r--r-- | altoslib/AltosPreferencesBackend.java | 40 |
1 files changed, 8 insertions, 32 deletions
diff --git a/altoslib/AltosPreferencesBackend.java b/altoslib/AltosPreferencesBackend.java index 1f925914..9131ad39 100644 --- a/altoslib/AltosPreferencesBackend.java +++ b/altoslib/AltosPreferencesBackend.java @@ -38,40 +38,16 @@ public abstract class AltosPreferencesBackend { public abstract byte[] getBytes(String key, byte[] def); public abstract void putBytes(String key, byte[] value); - public Serializable getSerializable(String key, Serializable def) { - byte[] bytes = null; - - bytes = getBytes(key, null); - if (bytes == null) - return def; - - ByteArrayInputStream bais = new ByteArrayInputStream(bytes); - - try { - ObjectInputStream ois = new ObjectInputStream(bais); - Serializable object = (Serializable) ois.readObject(); - return object; - } catch (IOException ie) { - debug("IO exception %s\n", ie.toString()); - } catch (ClassNotFoundException ce) { - debug("ClassNotFoundException %s\n", ce.toString()); - } - return def; - } - - public void putSerializable(String key, Serializable object) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); + public AltosHashSet getHashSet(String key) { + String value = getString(key, null); - try { - ObjectOutputStream oos = new ObjectOutputStream(baos); - - oos.writeObject(object); - byte[] bytes = baos.toByteArray(); + if (value == null) + return null; + return AltosHashSet.fromString(value); + } - putBytes(key, bytes); - } catch (IOException ie) { - debug("set_state failed %s\n", ie.toString()); - } + public void putHashSet(String key, AltosHashSet h) { + putString(key, h.toString()); } public abstract boolean nodeExists(String key); |