altosui: Generalize and centralize telemetry constants, parse v0.8 telemetry
[fw/altos] / altosui / AltosPreferences.java
index 5f82765569dae85f0a69211c41bc0d1ed04b119f..c8dee743f2318950efc834da3a917d92aa5d0ddd 100644 (file)
@@ -79,11 +79,9 @@ class AltosPreferences {
        /* Serial debug */
        static boolean serial_debug;
 
-       public static void init(Component ui) {
+       public static void init() {
                preferences = Preferences.userRoot().node("/org/altusmetrum/altosui");
 
-               component = ui;
-
                /* Initialize logdir from preferences */
                String logdir_string = preferences.get(logdirPreference, null);
                if (logdir_string != null)
@@ -116,14 +114,23 @@ class AltosPreferences {
                AltosSerial.set_debug(serial_debug);
        }
 
+       static { init(); }
+
+       static void set_component(Component in_component) {
+               component = in_component;
+       }
+
        static void flush_preferences() {
                try {
                        preferences.flush();
                } catch (BackingStoreException ee) {
-                       JOptionPane.showMessageDialog(component,
-                                                     preferences.absolutePath(),
-                                                     "Cannot save prefernces",
-                                                     JOptionPane.ERROR_MESSAGE);
+                       if (component != null)
+                               JOptionPane.showMessageDialog(component,
+                                                             preferences.absolutePath(),
+                                                             "Cannot save prefernces",
+                                                             JOptionPane.ERROR_MESSAGE);
+                       else
+                               System.err.printf("Cannot save preferences\n");
                }
        }
 
@@ -209,7 +216,7 @@ class AltosPreferences {
                if (telemetries.containsKey(serial))
                        return telemetries.get(serial);
                int telemetry = preferences.getInt(String.format(telemetryPreferenceFormat, serial),
-                                                  Altos.ao_telemetry_full);
+                                                  Altos.ao_telemetry_standard);
                telemetries.put(serial, telemetry);
                return telemetry;
        }
@@ -262,4 +269,8 @@ class AltosPreferences {
        public static boolean serial_debug() {
                return serial_debug;
        }
+
+       public static Preferences bt_devices() {
+               return preferences.node("bt_devices");
+       }
 }