~w-shackleton/+junk/carrerpia-android

« back to all changes in this revision

Viewing changes to src/uk/digitalsquid/carrerpia/Controller.java

  • Committer: William Shackleton
  • Date: 2013-09-19 21:44:53 UTC
  • Revision ID: w.shackleton@gmail.com-20130919214453-bt95aradtjcwy8uy
First commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package uk.digitalsquid.carrerpia;
 
2
 
 
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;
 
14
 
 
15
import com.MobileAnarchy.Android.Widgets.Joystick.JoystickMovedListener;
 
16
import com.MobileAnarchy.Android.Widgets.Joystick.JoystickView;
 
17
 
 
18
public class Controller extends Activity implements JoystickMovedListener {
 
19
        
 
20
        TextView statusText;
 
21
 
 
22
        @Override
 
23
        protected void onCreate(Bundle savedInstanceState) {
 
24
                super.onCreate(savedInstanceState);
 
25
 
 
26
                setContentView(R.layout.activity_controller);
 
27
                
 
28
                JoystickView joystick = (JoystickView) findViewById(R.id.leftControl);
 
29
                joystick.setAutoReturnToCenter(true);
 
30
                joystick.setOnJoystickMovedListener(this);
 
31
                joystick.setUserCoordinateSystem(JoystickView.COORDINATE_CARTESIAN);
 
32
                
 
33
                statusText = (TextView) findViewById(R.id.status);
 
34
        }
 
35
 
 
36
        @Override
 
37
        public void onStart() {
 
38
                super.onStart();
 
39
                bindService(new Intent(this, ConnectionService.class),
 
40
                                serviceConnection, BIND_AUTO_CREATE);
 
41
                LocalBroadcastManager.getInstance(this).registerReceiver(receiver,
 
42
                                ConnectionService.INTENT_FILTER);
 
43
        }
 
44
        
 
45
        @Override
 
46
        public void onStop() {
 
47
                super.onStop();
 
48
                unbindService(serviceConnection);
 
49
        }
 
50
        
 
51
        private ConnectionService boundService;
 
52
        
 
53
        private ServiceConnection serviceConnection = new ServiceConnection() {
 
54
                @Override
 
55
                public void onServiceDisconnected(ComponentName name) {
 
56
                        boundService = null;
 
57
                }
 
58
                
 
59
                @Override
 
60
                public void onServiceConnected(ComponentName name, IBinder service) {
 
61
                        boundService = ((ConnectionService.ConnectionBinder) service).getService();
 
62
 
 
63
                        // Update UI state
 
64
                        if(!boundService.isConnected()) {
 
65
                                Toast.makeText(Controller.this, "No connection!", Toast.LENGTH_LONG).show();
 
66
                                Controller.this.finish();
 
67
                        }
 
68
                }
 
69
        };
 
70
 
 
71
        private BroadcastReceiver receiver = new BroadcastReceiver() {
 
72
 
 
73
                @Override
 
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);
 
79
                                        break;
 
80
                                case Connection.STATUS_HANDSHAKE:
 
81
                                        statusText.setText(R.string.status_handshake);
 
82
                                        break;
 
83
                                case Connection.STATUS_CONNECTED:
 
84
                                        statusText.setText(R.string.status_connected);
 
85
                                        break;
 
86
                                case Connection.STATUS_DISCONNECTED:
 
87
                                        statusText.setText(R.string.status_disconnected);
 
88
                                        break;
 
89
                                case Connection.STATUS_DISCONNECTING:
 
90
                                        statusText.setText(R.string.status_disconnecting);
 
91
                                        break;
 
92
                                }
 
93
                        }
 
94
                }
 
95
        };
 
96
 
 
97
        @Override
 
98
        public void OnMoved(int pan, int tilt) {
 
99
                // TODO Auto-generated method stub
 
100
                
 
101
        }
 
102
 
 
103
        @Override public void OnReleased() { }
 
104
        @Override public void OnReturnedToCenter() { }
 
105
}