altoslib: Improve AltosState save/restore debugging
[fw/altos] / altoslib / AltosPreferences.java
index 3f8e7a070a98715ab0749a80a35a4c1b32250e85..51fc4205e6b79fa987376ee068cb5b80a30d7ac3 100644 (file)
@@ -133,19 +133,13 @@ public class AltosPreferences {
        static int      map_type;
 
        public static AltosFrequency[] load_common_frequencies() {
-
                AltosFrequency[] frequencies = null;
 
-               AltosHashSet[]  sets = AltosHashSet.array(backend.getString(frequenciesPreference,null));
-               if (sets != null) {
-                       ArrayList<AltosFrequency>       freqs = new ArrayList<AltosFrequency>();
-
-                       for (int i = 0; i < sets.length; i++) {
-                               AltosFrequency f = AltosFrequency.fromHashSet(sets[i], null);
-                               if (f != null)
-                                       freqs.add(f);
-                       }
-                       frequencies = freqs.toArray(new AltosFrequency[0]);
+               try {
+                       AltosJson json = AltosJson.fromString(backend.getString(frequenciesPreference,
+                                                                               null));
+                       frequencies = (AltosFrequency[]) json.make(frequencies.getClass());
+               } catch (Exception e) {
                }
 
                if (frequencies == null) {
@@ -178,10 +172,8 @@ public class AltosPreferences {
        }
 
        public static void save_common_frequencies() {
-               AltosHashSet[]  sets = new AltosHashSet[common_frequencies.length];
-               for (int i = 0; i < sets.length; i++)
-                       sets[i] = common_frequencies[i].hashSet();
-               backend.putString(frequenciesPreference, AltosHashSet.toString(sets));
+               AltosJson       json = new AltosJson(common_frequencies);
+               backend.putString(frequenciesPreference, json.toString());
                flush_preferences();
        }
 
@@ -373,7 +365,7 @@ public class AltosPreferences {
        public static void set_state(AltosState state) {
 
                synchronized(backend) {
-                       backend.putHashSet(String.format(statePreferenceFormat, state.serial), state.hashSet());
+                       backend.putJson(String.format(statePreferenceFormat, state.serial), state.json());
                        backend.putInt(statePreferenceLatest, state.serial);
                        flush_preferences();
                }
@@ -413,7 +405,7 @@ public class AltosPreferences {
        public static AltosState state(int serial) {
                synchronized(backend) {
                        try {
-                               return AltosState.fromHashSet(backend.getHashSet(String.format(statePreferenceFormat, serial)));
+                               return AltosState.fromJson(backend.getJson(String.format(statePreferenceFormat, serial)));
                        } catch (Exception e) {
                                return null;
                        }