summaryrefslogtreecommitdiff
path: root/altoslib/AltosPreferences.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-12-31 11:38:53 -0800
committerKeith Packard <keithp@keithp.com>2012-12-31 11:38:53 -0800
commit6db192898eebf750c4d51516eff7916bc4da493b (patch)
treee737a920c8e58bad6284cbe1f47ecbe2338699ae /altoslib/AltosPreferences.java
parent03496dc47372c40f7faae1766b0e729a1feeab7c (diff)
altoslib: Add units change notification list
This allows the UI to automatically respond to changes in the preferred units. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosPreferences.java')
-rw-r--r--altoslib/AltosPreferences.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/altoslib/AltosPreferences.java b/altoslib/AltosPreferences.java
index 47196d6e..e50b9b5c 100644
--- a/altoslib/AltosPreferences.java
+++ b/altoslib/AltosPreferences.java
@@ -367,6 +367,8 @@ public class AltosPreferences {
set_common_frequencies(new_frequencies);
}
+ static LinkedList<AltosUnitsListener> units_listeners;
+
public static boolean imperial_units() {
synchronized(backend) {
return AltosConvert.imperial_units;
@@ -379,5 +381,24 @@ public class AltosPreferences {
backend.putBoolean(unitsPreference, imperial_units);
flush_preferences();
}
+ if (units_listeners != null) {
+ for (AltosUnitsListener l : units_listeners) {
+ l.units_changed(imperial_units);
+ }
+ }
+ }
+
+ public static void register_units_listener(AltosUnitsListener l) {
+ synchronized(backend) {
+ if (units_listeners == null)
+ units_listeners = new LinkedList<AltosUnitsListener>();
+ units_listeners.add(l);
+ }
+ }
+
+ public static void unregister_units_listener(AltosUnitsListener l) {
+ synchronized(backend) {
+ units_listeners.remove(l);
+ }
}
}