altosdroid: make disconnect stick past pause/restart
authorKeith Packard <keithp@keithp.com>
Wed, 11 May 2016 19:43:51 +0000 (12:43 -0700)
committerKeith Packard <keithp@keithp.com>
Thu, 12 May 2016 06:22:15 +0000 (23:22 -0700)
Clear the active_device preference on disconnect so we don't reconnect
anytime the service gets activated.

Signed-off-by: Keith Packard <keithp@keithp.com>
altosdroid/src/org/altusmetrum/AltosDroid/AltosDroidPreferences.java
altosdroid/src/org/altusmetrum/AltosDroid/TelemetryService.java

index dd86c818b06b5822af48335ca465e23ec69c7fdf..16ee4429097536ffe58829d92a6a446850757573 100644 (file)
@@ -57,8 +57,13 @@ public class AltosDroidPreferences extends AltosPreferences {
        public static void set_active_device(DeviceAddress address) {
                synchronized(backend) {
                        active_device_address = address;
-                       backend.putString(activeDeviceAddressPreference, active_device_address.address);
-                       backend.putString(activeDeviceNamePreference, active_device_address.name);
+                       if (active_device_address != null) {
+                               backend.putString(activeDeviceAddressPreference, active_device_address.address);
+                               backend.putString(activeDeviceNamePreference, active_device_address.name);
+                       } else {
+                               backend.remove(activeDeviceAddressPreference);
+                               backend.remove(activeDeviceNamePreference);
+                       }
                        flush_preferences();
                }
        }
index 3c1a17823d595c681cfa61a938e6537093df173f..a81e24b03d063a7724a030f0dbeb8d7dc49b226f 100644 (file)
@@ -129,6 +129,7 @@ public class TelemetryService extends Service implements AltosIdleMonitorListene
                        case MSG_DISCONNECT:
                                AltosDebug.debug("Disconnect command received");
                                s.address = null;
+                               AltosDroidPreferences.set_active_device(null);
                                s.disconnect(true);
                                break;
                        case MSG_DELETE_SERIAL: