X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosdroid%2Fsrc%2Forg%2Faltusmetrum%2FAltosDroid%2FAltosDroid.java;h=437369e22e2a26343058bbb22bb029289265266c;hb=781bdb6c15b7dd3cc2280b08a2f47ce0f92cf53f;hp=bbb2970f44d0aa676e8cbb6120fda68274a71dfc;hpb=150a726e125aa7d181c00348ddd1791fd84164e5;p=fw%2Faltos diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index bbb2970f..437369e2 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -43,6 +43,8 @@ import android.view.Window; import android.widget.TextView; import android.widget.Toast; +import org.altusmetrum.AltosLib.*; + /** * This is the main Activity that displays the current chat session. */ @@ -53,10 +55,7 @@ public class AltosDroid extends Activity { // Message types received by our Handler public static final int MSG_STATE_CHANGE = 1; - public static final int MSG_DEVNAME = 2; - public static final int MSG_TOAST = 3; - public static final int MSG_DEVCONFIG = 4; - public static final int MSG_TELEMETRY = 5; + public static final int MSG_TELEMETRY = 2; // Intent request codes private static final int REQUEST_CONNECT_DEVICE = 1; @@ -71,8 +70,8 @@ public class AltosDroid extends Activity { private Messenger mService = null; final Messenger mMessenger = new Messenger(new IncomingHandler(this)); - // Name of the connected device - private String mConnectedDeviceName = null; + // TeleBT Config data + private AltosConfigData mConfigData = null; // Local Bluetooth adapter private BluetoothAdapter mBluetoothAdapter = null; @@ -93,39 +92,29 @@ public class AltosDroid extends Activity { if(D) Log.d(TAG, "MSG_STATE_CHANGE: " + msg.arg1); switch (msg.arg1) { case TelemetryService.STATE_CONNECTED: + ad.mConfigData = (AltosConfigData) msg.obj; + String str = String.format(" %s S/N: %d", ad.mConfigData.product, ad.mConfigData.serial); ad.mTitle.setText(R.string.title_connected_to); - ad.mTitle.append(ad.mConnectedDeviceName); - ad.mSerialView.setText(""); + ad.mTitle.append(str); + Toast.makeText(ad.getApplicationContext(), "Connected to " + str, Toast.LENGTH_SHORT).show(); break; case TelemetryService.STATE_CONNECTING: ad.mTitle.setText(R.string.title_connecting); break; case TelemetryService.STATE_READY: case TelemetryService.STATE_NONE: + ad.mConfigData = null; ad.mTitle.setText(R.string.title_not_connected); + ad.mSerialView.setText(""); break; } break; - case MSG_DEVCONFIG: case MSG_TELEMETRY: //byte[] buf = (byte[]) msg.obj; // construct a string from the buffer //String telem = new String(buf); //ad.mSerialView.append(telem); break; - case MSG_DEVNAME: - // save the connected device's name - ad.mConnectedDeviceName = (String) msg.obj; - if (ad.mConnectedDeviceName != null) - Toast.makeText(ad.getApplicationContext(), "Connected to " - + ad.mConnectedDeviceName, Toast.LENGTH_SHORT).show(); - break; - case MSG_TOAST: - Toast.makeText( - ad.getApplicationContext(), - (String) msg.obj, - Toast.LENGTH_SHORT).show(); - break; } } }; @@ -150,6 +139,30 @@ public class AltosDroid extends Activity { }; + void doBindService() { + bindService(new Intent(this, TelemetryService.class), mConnection, Context.BIND_AUTO_CREATE); + mIsBound = true; + } + + void doUnbindService() { + if (mIsBound) { + // If we have received the service, and hence registered with it, then now is the time to unregister. + if (mService != null) { + try { + Message msg = Message.obtain(null, TelemetryService.MSG_UNREGISTER_CLIENT); + msg.replyTo = mMessenger; + mService.send(msg); + } catch (RemoteException e) { + // There is nothing special we need to do if the service has crashed. + } + } + // Detach our existing connection. + unbindService(mConnection); + mIsBound = false; + } + } + + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -189,10 +202,6 @@ public class AltosDroid extends Activity { } }); - // Start Telemetry Service - startService(new Intent(AltosDroid.this, TelemetryService.class)); - - doBindService(); } @Override @@ -204,13 +213,17 @@ public class AltosDroid extends Activity { Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableIntent, REQUEST_ENABLE_BT); } + + // Start Telemetry Service + startService(new Intent(AltosDroid.this, TelemetryService.class)); + + doBindService(); } @Override public synchronized void onResume() { super.onResume(); if(D) Log.e(TAG, "+ ON RESUME +"); - } @Override @@ -223,17 +236,16 @@ public class AltosDroid extends Activity { public void onStop() { super.onStop(); if(D) Log.e(TAG, "-- ON STOP --"); + + doUnbindService(); } @Override public void onDestroy() { super.onDestroy(); - - doUnbindService(); + if(D) Log.e(TAG, "--- ON DESTROY ---"); if (tts != null) tts.shutdown(); - - if(D) Log.e(TAG, "--- ON DESTROY ---"); } @@ -297,28 +309,4 @@ public class AltosDroid extends Activity { return false; } - - void doBindService() { - bindService(new Intent(this, TelemetryService.class), mConnection, Context.BIND_AUTO_CREATE); - mIsBound = true; - } - - void doUnbindService() { - if (mIsBound) { - // If we have received the service, and hence registered with it, then now is the time to unregister. - if (mService != null) { - try { - Message msg = Message.obtain(null, TelemetryService.MSG_UNREGISTER_CLIENT); - msg.replyTo = mMessenger; - mService.send(msg); - } catch (RemoteException e) { - // There is nothing special we need to do if the service has crashed. - } - } - // Detach our existing connection. - unbindService(mConnection); - mIsBound = false; - } - } - }