diff options
| -rw-r--r-- | altoslib/AltosPreferences.java | 119 | ||||
| -rw-r--r-- | altosui/AltosUIPreferences.java | 22 | 
2 files changed, 87 insertions, 54 deletions
diff --git a/altoslib/AltosPreferences.java b/altoslib/AltosPreferences.java index 065b6e99..0e7b2bd3 100644 --- a/altoslib/AltosPreferences.java +++ b/altoslib/AltosPreferences.java @@ -202,173 +202,200 @@ public class AltosPreferences {  	}  	public static void set_logdir(File new_logdir) { -		logdir = new_logdir; -		mapdir = new File(logdir, "maps"); -		if (!mapdir.exists()) -			mapdir.mkdirs();  		synchronized (preferences) { +			logdir = new_logdir; +			mapdir = new File(logdir, "maps"); +			if (!mapdir.exists()) +				mapdir.mkdirs();  			preferences.put(logdirPreference, logdir.getPath());  			flush_preferences();  		}  	}  	public static File logdir() { -		return logdir; +		synchronized (preferences) { +			return logdir; +		}  	}  	public static File mapdir() { -		return mapdir; +		synchronized (preferences) { +			return mapdir; +		}  	}  	public static void set_frequency(int serial, double new_frequency) { -		frequencies.put(serial, new_frequency);  		synchronized (preferences) { +			frequencies.put(serial, new_frequency);  			preferences.putDouble(String.format(frequencyPreferenceFormat, serial), new_frequency);  			flush_preferences();  		}  	}  	public static double frequency(int serial) { -		if (frequencies.containsKey(serial)) -			return frequencies.get(serial); -		double frequency = preferences.getDouble(String.format(frequencyPreferenceFormat, serial), 0); -		if (frequency == 0.0) { -			int channel = preferences.getInt(String.format(channelPreferenceFormat, serial), 0); -			frequency = AltosConvert.radio_channel_to_frequency(channel); +		synchronized (preferences) { +			if (frequencies.containsKey(serial)) +				return frequencies.get(serial); +			double frequency = preferences.getDouble(String.format(frequencyPreferenceFormat, serial), 0); +			if (frequency == 0.0) { +				int channel = preferences.getInt(String.format(channelPreferenceFormat, serial), 0); +				frequency = AltosConvert.radio_channel_to_frequency(channel); +			} +			frequencies.put(serial, frequency); +			return frequency;  		} -		frequencies.put(serial, frequency); -		return frequency;  	}  	public static void set_telemetry(int serial, int new_telemetry) { -		telemetries.put(serial, new_telemetry);  		synchronized (preferences) { +			telemetries.put(serial, new_telemetry);  			preferences.putInt(String.format(telemetryPreferenceFormat, serial), new_telemetry);  			flush_preferences();  		}  	}  	public static int telemetry(int serial) { -		if (telemetries.containsKey(serial)) -			return telemetries.get(serial); -		int telemetry = preferences.getInt(String.format(telemetryPreferenceFormat, serial), -						   AltosLib.ao_telemetry_standard); -		telemetries.put(serial, telemetry); -		return telemetry; +		synchronized (preferences) { +			if (telemetries.containsKey(serial)) +				return telemetries.get(serial); +			int telemetry = preferences.getInt(String.format(telemetryPreferenceFormat, serial), +							   AltosLib.ao_telemetry_standard); +			telemetries.put(serial, telemetry); +			return telemetry; +		}  	}  	public static void set_scanning_telemetry(int new_scanning_telemetry) { -		scanning_telemetry = new_scanning_telemetry;  		synchronized (preferences) { +			scanning_telemetry = new_scanning_telemetry;  			preferences.putInt(scanningTelemetryPreference, scanning_telemetry);  			flush_preferences();  		}  	}  	public static int scanning_telemetry() { -		return scanning_telemetry; +		synchronized (preferences) { +			return scanning_telemetry; +		}  	}  	public static void set_voice(boolean new_voice) { -		voice = new_voice;  		synchronized (preferences) { +			voice = new_voice;  			preferences.putBoolean(voicePreference, voice);  			flush_preferences();  		}  	}  	public static boolean voice() { -		return voice; +		synchronized (preferences) { +			return voice; +		}  	}  	public static void set_callsign(String new_callsign) { -		callsign = new_callsign;  		synchronized(preferences) { +			callsign = new_callsign;  			preferences.put(callsignPreference, callsign);  			flush_preferences();  		}  	}  	public static String callsign() { -		return callsign; +		synchronized(preferences) { +			return callsign; +		}  	}  	public static void set_firmwaredir(File new_firmwaredir) { -		firmwaredir = new_firmwaredir;  		synchronized (preferences) { +			firmwaredir = new_firmwaredir;  			preferences.put(firmwaredirPreference, firmwaredir.getPath());  			flush_preferences();  		}  	}  	public static File firmwaredir() { -		return firmwaredir; +		synchronized (preferences) { +			return firmwaredir; +		}  	}  	public static void set_launcher_serial(int new_launcher_serial) { -		launcher_serial = new_launcher_serial;  		synchronized (preferences) { +			launcher_serial = new_launcher_serial;  			preferences.putInt(launcherSerialPreference, launcher_serial);  			flush_preferences();  		}  	}  	public static int launcher_serial() { -		return launcher_serial; +		synchronized (preferences) { +			return launcher_serial; +		}  	}  	public static void set_launcher_channel(int new_launcher_channel) { -		launcher_channel = new_launcher_channel;  		synchronized (preferences) { +			launcher_channel = new_launcher_channel;  			preferences.putInt(launcherChannelPreference, launcher_channel);  			flush_preferences();  		}  	}  	public static int launcher_channel() { -		return launcher_channel; +		synchronized (preferences) { +			return launcher_channel; +		}  	}  	public static Preferences bt_devices() { -		return preferences.node("bt_devices"); +		synchronized (preferences) { +			return preferences.node("bt_devices"); +		}  	}  	public static AltosFrequency[] common_frequencies() { -		return common_frequencies; +		synchronized (preferences) { +			return common_frequencies; +		}  	}  	public static void set_common_frequencies(AltosFrequency[] frequencies) { -		common_frequencies = frequencies;  		synchronized(preferences) { +			common_frequencies = frequencies;  			save_common_frequencies(frequencies);  			flush_preferences();  		}  	}  	public static void add_common_frequency(AltosFrequency frequency) { -		AltosFrequency[]	new_frequencies = new AltosFrequency[common_frequencies.length + 1]; +		AltosFrequency[]	old_frequencies = common_frequencies(); +		AltosFrequency[]	new_frequencies = new AltosFrequency[old_frequencies.length + 1];  		int			i; -		for (i = 0; i < common_frequencies.length; i++) { -			if (frequency.frequency == common_frequencies[i].frequency) +		for (i = 0; i < old_frequencies.length; i++) { +			if (frequency.frequency == old_frequencies[i].frequency)  				return; -			if (frequency.frequency < common_frequencies[i].frequency) +			if (frequency.frequency < old_frequencies[i].frequency)  				break; -			new_frequencies[i] = common_frequencies[i]; +			new_frequencies[i] = old_frequencies[i];  		}  		new_frequencies[i] = frequency; -		for (; i < common_frequencies.length; i++) -			new_frequencies[i+1] = common_frequencies[i]; +		for (; i < old_frequencies.length; i++) +			new_frequencies[i+1] = old_frequencies[i];  		set_common_frequencies(new_frequencies);  	}  	public static boolean imperial_units() { -		return AltosConvert.imperial_units; +		synchronized(preferences) { +			return AltosConvert.imperial_units; +		}  	}  	public static void set_imperial_units(boolean imperial_units) { -		AltosConvert.imperial_units = imperial_units;  		synchronized (preferences) { +			AltosConvert.imperial_units = imperial_units;  			preferences.putBoolean(unitsPreference, imperial_units);  			flush_preferences();  		} diff --git a/altosui/AltosUIPreferences.java b/altosui/AltosUIPreferences.java index 10ab26c3..8f1e45d9 100644 --- a/altosui/AltosUIPreferences.java +++ b/altosui/AltosUIPreferences.java @@ -102,15 +102,17 @@ public class AltosUIPreferences extends AltosPreferences {  		}  	}  	public static int font_size() { -		return font_size; +		synchronized (preferences) { +			return font_size; +		}  	}  	static void set_fonts() {  	}  	public static void set_font_size(int new_font_size) { -		font_size = new_font_size;  		synchronized (preferences) { +			font_size = new_font_size;  			preferences.putInt(fontSizePreference, font_size);  			flush_preferences();  			Altos.set_fonts(font_size); @@ -132,12 +134,12 @@ public class AltosUIPreferences extends AltosPreferences {  	}  	public static void set_look_and_feel(String new_look_and_feel) { -		look_and_feel = new_look_and_feel;  		try { -			UIManager.setLookAndFeel(look_and_feel); +			UIManager.setLookAndFeel(new_look_and_feel);  		} catch (Exception e) {  		}  		synchronized(preferences) { +			look_and_feel = new_look_and_feel;  			preferences.put(lookAndFeelPreference, look_and_feel);  			flush_preferences();  			for (AltosUIListener l : ui_listeners) @@ -146,7 +148,9 @@ public class AltosUIPreferences extends AltosPreferences {  	}  	public static String look_and_feel() { -		return look_and_feel; +		synchronized (preferences) { +			return look_and_feel; +		}  	}  	public static void register_ui_listener(AltosUIListener l) { @@ -161,16 +165,18 @@ public class AltosUIPreferences extends AltosPreferences {  		}  	}  	public static void set_serial_debug(boolean new_serial_debug) { -		serial_debug = new_serial_debug; -		AltosLink.set_debug(serial_debug); +		AltosLink.set_debug(new_serial_debug);  		synchronized (preferences) { +			serial_debug = new_serial_debug;  			preferences.putBoolean(serialDebugPreference, serial_debug);  			flush_preferences();  		}  	}  	public static boolean serial_debug() { -		return serial_debug; +		synchronized (preferences) { +			return serial_debug; +		}  	}  }
\ No newline at end of file  | 
