package org.schmivits.testbluetoothclientserver; import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.os.Bundle; import android.text.method.ScrollingMovementMethod; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.RadioButton; import android.widget.TextView; public class MainActivity extends Activity { private RpcThread mThread; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final TextView view = (TextView) findViewById(R.id.log); view.setMovementMethod(new ScrollingMovementMethod()); ((Button) findViewById(R.id.client_server_off)).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { destroy(); } }); ((Button) findViewById(R.id.act_as_client)).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { destroy(); (mThread = new AirballServerFinder(findBluetoothAdapter(), view)).start(); } }); ((Button) findViewById(R.id.act_as_server)).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { destroy(); (mThread = new AirballServer(findBluetoothAdapter(), view)).start(); } }); ((Button) findViewById(R.id.act_as_skyview_proxy)).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { destroy(); DataSourceStream stream = new ActualDataSourceStream(view, findBluetoothAdapter()); ((Thread) stream).start(); (mThread = new DataServer(view, findBluetoothAdapter(), stream)).start(); } }); ((Button) findViewById(R.id.act_as_skyview_dummy_source)).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { destroy(); DataSourceStream stream = new DummyDataSourceStream(view); ((Thread) stream).start(); (mThread = new DataServer(view, findBluetoothAdapter(), stream)).start(); } }); } @Override protected void onResume() { ((TextView) findViewById(R.id.log)).setText(""); super.onResume(); } @Override public void onPause() { destroy(); ((RadioButton) findViewById(R.id.client_server_off)).setChecked(true); super.onPause(); } private void destroy() { if (mThread != null) { mThread.destroy(); } mThread = null; ((TextView) findViewById(R.id.log)).setText(""); } private BluetoothAdapter findBluetoothAdapter() { BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); if (adapter == null) { adapter = (BluetoothAdapter) getSystemService("BLUETOOTH_SERVICE"); } return adapter; } }