altosdroid: rework ConnectThread
authorMike Beattie <mike@ethernal.org>
Tue, 28 Aug 2012 09:58:47 +0000 (21:58 +1200)
committerMike Beattie <mike@ethernal.org>
Tue, 28 Aug 2012 09:58:47 +0000 (21:58 +1200)
* Start input_thread after connection, otherwise it's painful to kill
  on connect failure.

Signed-off-by: Mike Beattie <mike@ethernal.org>
altosdroid/src/org/altusmetrum/AltosDroid/AltosBluetooth.java

index 5a8ed096ff429f6e88b5ddf60006ebbe7fd24390..dffa9ffb8c31c3612a907d27ef1e32a894425cf1 100644 (file)
@@ -59,8 +59,6 @@ public class AltosBluetooth extends AltosLink {
                connect_thread = new ConnectThread(device);
                connect_thread.start();
 
-               input_thread = new Thread(this);
-               input_thread.start();
        }
 
        private class ConnectThread extends Thread {
@@ -108,20 +106,22 @@ public class AltosBluetooth extends AltosLink {
                                        return;
                                }
 
+                               input_thread = new Thread(AltosBluetooth.this);
+                               input_thread.start();
+
                                // Configure the newly connected device for telemetry
                                print("~\nE 0\n");
                                set_monitor(false);
 
-                               // Reset the ConnectThread because we're done
-                               connect_thread = null;
-
-                               // Send the device name back to the Telemetry Service
-                               name = device.getName();
+                               // Let TelemetryService know we're connected
                                handler.obtainMessage(TelemetryService.MSG_CONNECTED).sendToTarget();
 
                                // Notify other waiting threads, now that we're connected
                                AltosBluetooth.this.notifyAll();
 
+                               // Reset the ConnectThread because we're done
+                               connect_thread = null;
+
                                if (D) Log.d(TAG, "ConnectThread: Connect completed");
                        }
                }