diff options
author | Robert Garbee <robert@gag.com> | 2015-06-13 17:40:59 -0600 |
---|---|---|
committer | Robert Garbee <robert@gag.com> | 2015-06-13 17:40:59 -0600 |
commit | c46c2c5767c6e909fa58587e6c864a4fbaa9fa20 (patch) | |
tree | 282e9152196bfc2ae66a2d5892f25811fa0e2c96 /altoslib/AltosPreferences.java | |
parent | 39f4361675aa13899864f427a33d4aa48be56cd2 (diff) | |
parent | 6cb7d76c3fbe32b442713e358654d07b2506897e (diff) |
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
Diffstat (limited to 'altoslib/AltosPreferences.java')
-rw-r--r-- | altoslib/AltosPreferences.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/altoslib/AltosPreferences.java b/altoslib/AltosPreferences.java index 2fad96fd..cdff93f6 100644 --- a/altoslib/AltosPreferences.java +++ b/altoslib/AltosPreferences.java @@ -19,6 +19,7 @@ package org.altusmetrum.altoslib_7; import java.io.*; import java.util.*; +import java.text.*; public class AltosPreferences { public static AltosPreferencesBackend backend = null; @@ -42,7 +43,9 @@ public class AltosPreferences { public final static String logfilePreferenceFormat = "LOGFILE-%d"; /* state preference name */ + public final static String statePreferenceHead = "STATE-"; public final static String statePreferenceFormat = "STATE-%d"; + public final static String statePreferenceLatest = "STATE-LATEST"; /* voice preference name */ public final static String voicePreference = "VOICE"; @@ -360,12 +363,43 @@ public class AltosPreferences { synchronized(backend) { backend.putBytes(String.format(statePreferenceFormat, serial), bytes); + backend.putInt(statePreferenceLatest, serial); flush_preferences(); } } catch (IOException ie) { } } + public static ArrayList<Integer> list_states() { + String[] keys = backend.keys(); + ArrayList<Integer> states = new ArrayList<Integer>(); + + for (String key : keys) { + if (key.startsWith(statePreferenceHead)) { + try { + int serial = AltosParse.parse_int(key.substring(statePreferenceHead.length())); + states.add(serial); + } catch (ParseException pe) { + } + } + } + return states; + } + + public static void remove_state(int serial) { + synchronized(backend) { + backend.remove(String.format(statePreferenceFormat, serial)); + } + } + + public static int latest_state() { + int latest = 0; + synchronized (backend) { + latest = backend.getInt(statePreferenceLatest, 0); + } + return latest; + } + public static AltosSavedState state(int serial) { byte[] bytes = null; |