1
package uk.digitalsquid.carrerpia;
3
import android.app.Activity;
4
import android.content.BroadcastReceiver;
5
import android.content.ComponentName;
6
import android.content.Context;
7
import android.content.Intent;
8
import android.content.ServiceConnection;
9
import android.os.Bundle;
10
import android.os.IBinder;
11
import android.support.v4.content.LocalBroadcastManager;
12
import android.widget.TextView;
13
import android.widget.Toast;
15
import com.MobileAnarchy.Android.Widgets.Joystick.JoystickMovedListener;
16
import com.MobileAnarchy.Android.Widgets.Joystick.JoystickView;
18
public class Controller extends Activity implements JoystickMovedListener {
23
protected void onCreate(Bundle savedInstanceState) {
24
super.onCreate(savedInstanceState);
26
setContentView(R.layout.activity_controller);
28
JoystickView joystick = (JoystickView) findViewById(R.id.leftControl);
29
joystick.setAutoReturnToCenter(true);
30
joystick.setOnJoystickMovedListener(this);
31
joystick.setUserCoordinateSystem(JoystickView.COORDINATE_CARTESIAN);
33
statusText = (TextView) findViewById(R.id.status);
37
public void onStart() {
39
bindService(new Intent(this, ConnectionService.class),
40
serviceConnection, BIND_AUTO_CREATE);
41
LocalBroadcastManager.getInstance(this).registerReceiver(receiver,
42
ConnectionService.INTENT_FILTER);
46
public void onStop() {
48
unbindService(serviceConnection);
51
private ConnectionService boundService;
53
private ServiceConnection serviceConnection = new ServiceConnection() {
55
public void onServiceDisconnected(ComponentName name) {
60
public void onServiceConnected(ComponentName name, IBinder service) {
61
boundService = ((ConnectionService.ConnectionBinder) service).getService();
64
if(!boundService.isConnected()) {
65
Toast.makeText(Controller.this, "No connection!", Toast.LENGTH_LONG).show();
66
Controller.this.finish();
71
private BroadcastReceiver receiver = new BroadcastReceiver() {
74
public void onReceive(Context context, Intent intent) {
75
if(intent.getAction().equals(Connection.INTENT_CONNECTION_STATUS)) {
76
switch(intent.getIntExtra(Connection.INTENT_CONNECTION_STATUS_STATUS, 0)) {
77
case Connection.STATUS_CONNECTING:
78
statusText.setText(R.string.status_connecting);
80
case Connection.STATUS_HANDSHAKE:
81
statusText.setText(R.string.status_handshake);
83
case Connection.STATUS_CONNECTED:
84
statusText.setText(R.string.status_connected);
86
case Connection.STATUS_DISCONNECTED:
87
statusText.setText(R.string.status_disconnected);
89
case Connection.STATUS_DISCONNECTING:
90
statusText.setText(R.string.status_disconnecting);
98
public void OnMoved(int pan, int tilt) {
99
// TODO Auto-generated method stub
103
@Override public void OnReleased() { }
104
@Override public void OnReturnedToCenter() { }