1 /*
2  * Copyright (C) 2009 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 // Android JET demonstration code:
18 // See the JetBoyView.java file for examples on the use of the JetPlayer class.
19 
20 package com.example.android.jetboy;
21 
22 import com.example.android.jetboy.JetBoyView.JetBoyThread;
23 
24 import android.app.Activity;
25 import android.os.Bundle;
26 import android.util.Log;
27 import android.view.KeyEvent;
28 import android.view.View;
29 import android.widget.Button;
30 import android.widget.TextView;
31 
32 public class JetBoy extends Activity implements View.OnClickListener {
33 
34     /** A handle to the thread that's actually running the animation. */
35     private JetBoyThread mJetBoyThread;
36 
37     /** A handle to the View in which the game is running. */
38     private JetBoyView mJetBoyView;
39 
40     // the play start button
41     private Button mButton;
42 
43     // used to hit retry
44     private Button mButtonRetry;
45 
46     // the window for instructions and such
47     private TextView mTextView;
48 
49     // game window timer
50     private TextView mTimerView;
51 
52     /**
53      * Required method from parent class
54      *
55      * @param savedInstanceState - The previous instance of this app
56      */
onCreate(Bundle savedInstanceState)57     public void onCreate(Bundle savedInstanceState) {
58         super.onCreate(savedInstanceState);
59 
60         setContentView(R.layout.main);
61 
62         // get handles to the JetView from XML and the JET thread.
63         mJetBoyView = (JetBoyView)findViewById(R.id.JetBoyView);
64         mJetBoyThread = mJetBoyView.getThread();
65 
66         // look up the happy shiny button
67         mButton = (Button)findViewById(R.id.Button01);
68         mButton.setOnClickListener(this);
69 
70         mButtonRetry = (Button)findViewById(R.id.Button02);
71         mButtonRetry.setOnClickListener(this);
72 
73         // set up handles for instruction text and game timer text
74         mTextView = (TextView)findViewById(R.id.text);
75         mTimerView = (TextView)findViewById(R.id.timer);
76 
77         mJetBoyView.setTimerView(mTimerView);
78 
79         mJetBoyView.SetButtonView(mButtonRetry);
80 
81         mJetBoyView.SetTextView(mTextView);
82     }
83 
84 
85     /**
86      * Handles component interaction
87      *
88      * @param v The object which has been clicked
89      */
onClick(View v)90     public void onClick(View v) {
91         // this is the first screen
92         if (mJetBoyThread.getGameState() == JetBoyThread.STATE_START) {
93             mButton.setText("PLAY!");
94             mTextView.setVisibility(View.VISIBLE);
95 
96             mTextView.setText(R.string.helpText);
97             mJetBoyThread.setGameState(JetBoyThread.STATE_PLAY);
98 
99         }
100         // we have entered game play, now we about to start running
101         else if (mJetBoyThread.getGameState() == JetBoyThread.STATE_PLAY) {
102             mButton.setVisibility(View.INVISIBLE);
103             mTextView.setVisibility(View.INVISIBLE);
104             mTimerView.setVisibility(View.VISIBLE);
105             mJetBoyThread.setGameState(JetBoyThread.STATE_RUNNING);
106 
107         }
108         // this is a retry button
109         else if (mButtonRetry.equals(v)) {
110 
111             mTextView.setText(R.string.helpText);
112 
113             mButton.setText("PLAY!");
114             mButtonRetry.setVisibility(View.INVISIBLE);
115             // mButtonRestart.setVisibility(View.INVISIBLE);
116 
117             mTextView.setVisibility(View.VISIBLE);
118             mButton.setText("PLAY!");
119             mButton.setVisibility(View.VISIBLE);
120 
121             mJetBoyThread.setGameState(JetBoyThread.STATE_PLAY);
122 
123         } else {
124             Log.d("JB VIEW", "unknown click " + v.getId());
125 
126             Log.d("JB VIEW", "state is  " + mJetBoyThread.mState);
127 
128         }
129     }
130 
131     /**
132      * Standard override to get key-press events.
133      */
134     @Override
onKeyDown(int keyCode, KeyEvent msg)135     public boolean onKeyDown(int keyCode, KeyEvent msg) {
136         if (keyCode == KeyEvent.KEYCODE_BACK) {
137             return super.onKeyDown(keyCode, msg);
138         } else {
139             return mJetBoyThread.doKeyDown(keyCode, msg);
140         }
141     }
142 
143     /**
144      * Standard override for key-up.
145      */
146     @Override
onKeyUp(int keyCode, KeyEvent msg)147     public boolean onKeyUp(int keyCode, KeyEvent msg) {
148         if (keyCode == KeyEvent.KEYCODE_BACK) {
149             return super.onKeyUp(keyCode, msg);
150         } else {
151             return mJetBoyThread.doKeyUp(keyCode, msg);
152         }
153     }
154 }
155