diff options
| author | Bdale Garbee <bdale@gag.com> | 2016-06-17 10:00:10 -0600 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2016-06-17 10:00:10 -0600 | 
| commit | 31cf047113ec72a78f4b500223a2c6be23bc86fd (patch) | |
| tree | 4f171ddf642fb06bd1b520cd98a242efe5f8320f /altoslib/AltosPreferences.java | |
| parent | 2f0c977c747824d0798550ac64eceb1d66c50efd (diff) | |
| parent | afe74c067a31ce420d0d4cdac2069c1d258a5114 (diff) | |
Merge branch 'master' into branch-1.6
Diffstat (limited to 'altoslib/AltosPreferences.java')
| -rw-r--r-- | altoslib/AltosPreferences.java | 47 | 
1 files changed, 31 insertions, 16 deletions
| diff --git a/altoslib/AltosPreferences.java b/altoslib/AltosPreferences.java index fb3026a4..569aaa54 100644 --- a/altoslib/AltosPreferences.java +++ b/altoslib/AltosPreferences.java @@ -15,7 +15,7 @@   * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.   */ -package org.altusmetrum.altoslib_10; +package org.altusmetrum.altoslib_11;  import java.io.*;  import java.util.*; @@ -116,7 +116,7 @@ public class AltosPreferences {  	public final static String	frequency_count = "COUNT";  	public final static String	frequency_format = "FREQUENCY-%d";  	public final static String	description_format = "DESCRIPTION-%d"; -	public final static String	frequenciesPreference = "FREQUENCIES"; +	public final static String	frequenciesPreference = "FREQUENCIES-1";  	/* Units preference */ @@ -133,24 +133,30 @@ public class AltosPreferences {  	static int	map_type;  	public static AltosFrequency[] load_common_frequencies() { -  		AltosFrequency[] frequencies = null; -		frequencies = (AltosFrequency[]) backend.getSerializable(frequenciesPreference, null); +		try { +			AltosJson json = AltosJson.fromString(backend.getString(frequenciesPreference, +										null)); +			frequencies = (AltosFrequency[]) json.make(frequencies.getClass()); +		} catch (Exception e) { +		}  		if (frequencies == null) {  			if (backend.nodeExists(common_frequencies_node_name)) {  				AltosPreferencesBackend	node = backend.node(common_frequencies_node_name);  				int		count = node.getInt(frequency_count, 0); -				frequencies = new AltosFrequency[count]; -				for (int i = 0; i < count; i++) { -					double	frequency; -					String	description; +				if (count > 0) { +					frequencies = new AltosFrequency[count]; +					for (int i = 0; i < count; i++) { +						double	frequency; +						String	description; -					frequency = node.getDouble(String.format(frequency_format, i), 0.0); -					description = node.getString(String.format(description_format, i), null); -					frequencies[i] = new AltosFrequency(frequency, description); +						frequency = node.getDouble(String.format(frequency_format, i), 0.0); +						description = node.getString(String.format(description_format, i), null); +						frequencies[i] = new AltosFrequency(frequency, description); +					}  				}  			}  		} @@ -165,6 +171,12 @@ public class AltosPreferences {  		return frequencies;  	} +	public static void save_common_frequencies() { +		AltosJson	json = new AltosJson(common_frequencies); +		backend.putString(frequenciesPreference, json.toString()); +		flush_preferences(); +	} +  	public static int launcher_serial;  	public static int launcher_channel; @@ -353,7 +365,7 @@ public class AltosPreferences {  	public static void set_state(AltosState state) {  		synchronized(backend) { -			backend.putSerializable(String.format(statePreferenceFormat, state.serial), state); +			backend.putJson(String.format(statePreferenceFormat, state.serial), new AltosJson(state));  			backend.putInt(statePreferenceLatest, state.serial);  			flush_preferences();  		} @@ -378,6 +390,7 @@ public class AltosPreferences {  	public static void remove_state(int serial) {  		synchronized(backend) {  			backend.remove(String.format(statePreferenceFormat, serial)); +			flush_preferences();  		}  	} @@ -392,10 +405,12 @@ public class AltosPreferences {  	public static AltosState state(int serial) {  		synchronized(backend) {  			try { -				return (AltosState) backend.getSerializable(String.format(statePreferenceFormat, serial), null); +				AltosJson json = backend.getJson(String.format(statePreferenceFormat, serial)); +				if (json != null) +					return (AltosState) (json.make(AltosState.class));  			} catch (Exception e) { -				return null;  			} +			return null;  		}  	} @@ -512,8 +527,8 @@ public class AltosPreferences {  	public static void set_common_frequencies(AltosFrequency[] frequencies) {  		synchronized(backend) {  			common_frequencies = frequencies; -			backend.putSerializable(frequenciesPreference, frequencies); -			flush_preferences(); + +			save_common_frequencies();  		}  	} | 
