X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosPreferences.java;h=f277f31a2eac62e5c686c501f390702276708dfc;hp=3f8e7a070a98715ab0749a80a35a4c1b32250e85;hb=HEAD;hpb=b1a90adac9f6e2a609ce1ccd6749462bb5c9adbe diff --git a/altoslib/AltosPreferences.java b/altoslib/AltosPreferences.java index 3f8e7a07..2fda9621 100644 --- a/altoslib/AltosPreferences.java +++ b/altoslib/AltosPreferences.java @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,7 +16,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_11; +package org.altusmetrum.altoslib_14; import java.io.*; import java.util.*; @@ -71,8 +72,8 @@ public class AltosPreferences { /* Launcher channel preference name */ public final static String launcherChannelPreference = "LAUNCHER-CHANNEL"; - /* Default logdir is ~/TeleMetrum */ - public final static String logdirName = "TeleMetrum"; + /* Default logdir is ~/AltusMetrum */ + public final static String logdirName = "AltusMetrum"; /* Log directory */ public static File logdir; @@ -133,19 +134,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 freqs = new ArrayList(); - - 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((new AltosFrequency[1]).getClass()); + } catch (Exception e) { } if (frequencies == null) { @@ -178,10 +173,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(); } @@ -370,11 +363,11 @@ public class AltosPreferences { } } - public static void set_state(AltosState state) { + public static void set_state(AltosState state, int serial) { synchronized(backend) { - backend.putHashSet(String.format(statePreferenceFormat, state.serial), state.hashSet()); - backend.putInt(statePreferenceLatest, state.serial); + backend.putJson(String.format(statePreferenceFormat, serial), new AltosJson(state)); + backend.putInt(statePreferenceLatest, serial); flush_preferences(); } } @@ -413,10 +406,12 @@ public class AltosPreferences { public static AltosState state(int serial) { synchronized(backend) { try { - return AltosState.fromHashSet(backend.getHashSet(String.format(statePreferenceFormat, serial))); + AltosJson json = backend.getJson(String.format(statePreferenceFormat, serial)); + if (json != null) + return (AltosState) (json.make(AltosState.class)); } catch (Exception e) { - return null; } + return null; } }