X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altoslib%2FAltosPreferences.java;h=f446d4ddfd38d08249bf2e93e638f7ebb98d7b5d;hp=8e625674840c964ecf6335b1918d58a2e3347807;hb=cb1e757d4d486d04af0219b3f36ad17ee8095110;hpb=1b5ea911049a8afae6af475a4a2bf62a6e3aa57b diff --git a/altoslib/AltosPreferences.java b/altoslib/AltosPreferences.java index 8e625674..f446d4dd 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 @@ -135,23 +136,11 @@ public class AltosPreferences { public static AltosFrequency[] load_common_frequencies() { AltosFrequency[] frequencies = null; - AltosJson sets; - try { - sets = AltosJson.fromString(backend.getString(frequenciesPreference,null)); - - if (sets != null) { - ArrayList freqs = new ArrayList(); - - for (int i = 0; i < sets.size(); i++) { - AltosFrequency f = AltosFrequency.fromJson(sets.get(i), null); - if (f != null) - freqs.add(f); - } - frequencies = freqs.toArray(new AltosFrequency[0]); - } + AltosJson json = AltosJson.fromString(backend.getString(frequenciesPreference, + null)); + frequencies = (AltosFrequency[]) json.make(frequencies.getClass()); } catch (Exception e) { - sets = null; } if (frequencies == null) { @@ -374,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.putJson(String.format(statePreferenceFormat, state.serial), state.json()); - backend.putInt(statePreferenceLatest, state.serial); + backend.putJson(String.format(statePreferenceFormat, serial), new AltosJson(state)); + backend.putInt(statePreferenceLatest, serial); flush_preferences(); } } @@ -417,10 +406,12 @@ public class AltosPreferences { public static AltosState state(int serial) { synchronized(backend) { try { - return AltosState.fromJson(backend.getJson(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; } }