X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altosdroid%2Fsrc%2Forg%2Faltusmetrum%2FAltosDroid%2FAltosDroid.java;h=b4725e220c41d27a4a3ce90f4467ae25f6a2f199;hb=359d7353fd7b7d4d537db04c5e89724502333ff8;hp=b4a3227cde7664d4e4b8d1a99f1c9edf84ec8352;hpb=c5304ac976dd44344a0b70ae3622e1f2d112a147;p=fw%2Faltos diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java index b4a3227c..b4725e22 100644 --- a/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java +++ b/altosdroid/src/org/altusmetrum/AltosDroid/AltosDroid.java @@ -23,6 +23,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.text.method.ScrollingMovementMethod; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; @@ -32,10 +33,8 @@ import android.view.View; import android.view.Window; import android.view.View.OnClickListener; import android.view.inputmethod.EditorInfo; -import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; -import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import org.altusmetrum.AltosDroid.R; @@ -46,11 +45,9 @@ import org.altusmetrum.AltosLib.*; */ public class AltosDroid extends Activity { // Debugging - private static final String TAG = "BluetoothChat"; + private static final String TAG = "AltosDroid"; private static final boolean D = true; - private static final AltosLine q = new AltosLine(); - // Message types sent from the BluetoothChatService Handler public static final int MESSAGE_STATE_CHANGE = 1; public static final int MESSAGE_READ = 2; @@ -63,20 +60,17 @@ public class AltosDroid extends Activity { public static final String TOAST = "toast"; // Intent request codes - private static final int REQUEST_CONNECT_DEVICE_SECURE = 1; - private static final int REQUEST_CONNECT_DEVICE_INSECURE = 2; - private static final int REQUEST_ENABLE_BT = 3; + private static final int REQUEST_CONNECT_DEVICE = 1; + private static final int REQUEST_ENABLE_BT = 2; // Layout Views private TextView mTitle; - private ListView mConversationView; + private TextView mSerialView; private EditText mOutEditText; private Button mSendButton; // Name of the connected device private String mConnectedDeviceName = null; - // Array adapter for the conversation thread - private ArrayAdapter mConversationArrayAdapter; // String buffer for outgoing messages private StringBuffer mOutStringBuffer; // Local Bluetooth adapter @@ -144,13 +138,35 @@ public class AltosDroid extends Activity { } } + @Override + public synchronized void onPause() { + super.onPause(); + if(D) Log.e(TAG, "- ON PAUSE -"); + } + + @Override + public void onStop() { + super.onStop(); + if(D) Log.e(TAG, "-- ON STOP --"); + } + + @Override + public void onDestroy() { + super.onDestroy(); + // Stop the Bluetooth chat services + if (mChatService != null) mChatService.stop(); + if(D) Log.e(TAG, "--- ON DESTROY ---"); + } + + + private void setupChat() { Log.d(TAG, "setupChat()"); - // Initialize the array adapter for the conversation thread - mConversationArrayAdapter = new ArrayAdapter(this, R.layout.message); - mConversationView = (ListView) findViewById(R.id.in); - mConversationView.setAdapter(mConversationArrayAdapter); + mSerialView = (TextView) findViewById(R.id.in); + mSerialView.setMovementMethod(new ScrollingMovementMethod()); + mSerialView.setClickable(false); + mSerialView.setLongClickable(false); // Initialize the compose field with a listener for the return key mOutEditText = (EditText) findViewById(R.id.edit_text_out); @@ -174,36 +190,6 @@ public class AltosDroid extends Activity { mOutStringBuffer = new StringBuffer(""); } - @Override - public synchronized void onPause() { - super.onPause(); - if(D) Log.e(TAG, "- ON PAUSE -"); - } - - @Override - public void onStop() { - super.onStop(); - if(D) Log.e(TAG, "-- ON STOP --"); - } - - @Override - public void onDestroy() { - super.onDestroy(); - // Stop the Bluetooth chat services - if (mChatService != null) mChatService.stop(); - if(D) Log.e(TAG, "--- ON DESTROY ---"); - } - - private void ensureDiscoverable() { - if(D) Log.d(TAG, "ensure discoverable"); - if (mBluetoothAdapter.getScanMode() != - BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) { - Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); - discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300); - startActivity(discoverableIntent); - } - } - /** * Sends a message. * @param message A string of text to send. @@ -252,7 +238,7 @@ public class AltosDroid extends Activity { case BluetoothChatService.STATE_CONNECTED: mTitle.setText(R.string.title_connected_to); mTitle.append(mConnectedDeviceName); - mConversationArrayAdapter.clear(); + mSerialView.setText(""); break; case BluetoothChatService.STATE_CONNECTING: mTitle.setText(R.string.title_connecting); @@ -267,13 +253,13 @@ public class AltosDroid extends Activity { byte[] writeBuf = (byte[]) msg.obj; // construct a string from the buffer String writeMessage = new String(writeBuf); - mConversationArrayAdapter.add("Me: " + writeMessage); + mSerialView.append(writeMessage + '\n'); break; case MESSAGE_READ: byte[] readBuf = (byte[]) msg.obj; // construct a string from the valid bytes in the buffer String readMessage = new String(readBuf, 0, msg.arg1); - mConversationArrayAdapter.add(mConnectedDeviceName+": " + readMessage); + mSerialView.append(readMessage); break; case MESSAGE_DEVICE_NAME: // save the connected device's name @@ -292,16 +278,10 @@ public class AltosDroid extends Activity { public void onActivityResult(int requestCode, int resultCode, Intent data) { if(D) Log.d(TAG, "onActivityResult " + resultCode); switch (requestCode) { - case REQUEST_CONNECT_DEVICE_SECURE: - // When DeviceListActivity returns with a device to connect + case REQUEST_CONNECT_DEVICE: + // When DeviceListActivity returns with a device to connect to if (resultCode == Activity.RESULT_OK) { - connectDevice(data, true); - } - break; - case REQUEST_CONNECT_DEVICE_INSECURE: - // When DeviceListActivity returns with a device to connect - if (resultCode == Activity.RESULT_OK) { - connectDevice(data, false); + connectDevice(data); } break; case REQUEST_ENABLE_BT: @@ -318,14 +298,14 @@ public class AltosDroid extends Activity { } } - private void connectDevice(Intent data, boolean secure) { + private void connectDevice(Intent data) { // Get the device MAC address String address = data.getExtras() .getString(DeviceListActivity.EXTRA_DEVICE_ADDRESS); // Get the BLuetoothDevice object BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address); // Attempt to connect to the device - mChatService.connect(device, secure); + mChatService.connect(device); } @Override @@ -347,19 +327,10 @@ public class AltosDroid extends Activity { serverIntent = new Intent(this, TelemetryServiceActivities.Binding.class); startActivity(serverIntent); return true; - case R.id.secure_connect_scan: - // Launch the DeviceListActivity to see devices and do scan - serverIntent = new Intent(this, DeviceListActivity.class); - startActivityForResult(serverIntent, REQUEST_CONNECT_DEVICE_SECURE); - return true; - case R.id.insecure_connect_scan: + case R.id.connect_scan: // Launch the DeviceListActivity to see devices and do scan serverIntent = new Intent(this, DeviceListActivity.class); - startActivityForResult(serverIntent, REQUEST_CONNECT_DEVICE_INSECURE); - return true; - case R.id.discoverable: - // Ensure this device is discoverable by others - ensureDiscoverable(); + startActivityForResult(serverIntent, REQUEST_CONNECT_DEVICE); return true; } return false;