OSDN Git Service

Mac移行後
[train-delayed/source.git] / workspace / TrainDelayed / src / com / td / WaitActivity.java
1 package com.td;\r
2 \r
3 import android.content.Context;\r
4 import android.os.Bundle;\r
5 import android.os.Handler;\r
6 import android.view.View;\r
7 import android.view.View.OnClickListener;\r
8 import android.widget.Button;\r
9 import android.widget.TextView;\r
10 \r
11 import com.td.utility.BaseActivity;\r
12 import com.td.utility.Debug;\r
13 import com.td.utility.EditPrefUtil;\r
14 import com.td.utility.StatusFlag;\r
15 import com.td.utility.StatusFlagFactory;\r
16 import com.td.wait.IWating;\r
17 \r
18 public class WaitActivity extends BaseActivity {\r
19         // TODO StatusFlag\82ð\8eg\97p\82·\82é\81B\8f\88\97\9d\8e©\91Ì\82à\8dÄ\8c\9f\93¢\r
20         // public static final String PREF_WIT_FLAG = "WIT_FLAG";\r
21 \r
22         public static final String CLASS = "CLASS";\r
23         public static final String MESSAGE1 = "MESSAGE1";\r
24         public static final String MESSAGE2 = "MESSAGE2";\r
25         public static final String MESSAGE3 = "MESSAGE3";\r
26 \r
27         public static final int ID_OK = 0;\r
28         public static final int ID_NG = -1;\r
29 \r
30         private TextView textView;\r
31         private WaitView waitView;\r
32         private Button button;\r
33 \r
34         private IWating waiting = null;\r
35         private String clazzName;\r
36         private String message1;\r
37         private String message2;\r
38         private String message3;\r
39 \r
40         private EditPrefUtil pref = new EditPrefUtil(this);\r
41         private StatusFlag waSf = StatusFlagFactory.getInstance().getStatusFlag(\r
42                         this, StatusFlagFactory.Type.WAIT_ACTIVITY);\r
43 \r
44         @Override\r
45         public void onCreate(Bundle savedInstanceState) {\r
46                 super.onCreate(savedInstanceState);\r
47                 setContentView(R.layout.wait);\r
48 \r
49                 textView = (TextView) findViewById(R.id.textViewa1);\r
50                 waitView = (WaitView) findViewById(R.id.waitViewa1);\r
51                 button = (Button) findViewById(R.id.buttona1);\r
52 \r
53                 button.setOnClickListener(new OnClickListener() {\r
54                         public void onClick(View v) {\r
55                                 WaitActivity.this.setResult(ID_OK);\r
56                                 WaitActivity.this.finish();\r
57                         }\r
58                 });\r
59 \r
60                 Bundle extras = getIntent().getExtras();\r
61                 clazzName = extras.getString(CLASS);\r
62                 message1 = extras.getString(MESSAGE1);\r
63                 message2 = extras.getString(MESSAGE2);\r
64                 message3 = extras.getString(MESSAGE3);\r
65 \r
66                 Debug.d(this, waSf.toString());\r
67                 if (waSf.isOff()) {\r
68                         textView.setText(message1);\r
69                 } else if (waSf.isRdy()) {\r
70                         textView.setText(message1);\r
71                 } else if (waSf.isOn()) {\r
72                         textView.setText(message2);\r
73                 } else {\r
74                         textView.setText(message3);\r
75                 }\r
76 \r
77                 // TODO\r
78                 // int flag = pref.getInt(PREF_WIT_FLAG, 0);\r
79                 if (waSf.isOff() || waSf.isRdy()) {\r
80                         Class<IWating> clazz;\r
81                         try {\r
82                                 clazz = (Class<IWating>) Class.forName(clazzName);\r
83                                 IWating obj = clazz.newInstance();\r
84                                 waiting = obj;\r
85                                 waiting.setContext(this);\r
86                                 waiting.setHandler(handler);\r
87                                 \r
88                                 // TODO\r
89                                 //if (waSf.isOff()){\r
90                                         waitView.start();\r
91                                 //}\r
92                         } catch (Exception e) {\r
93                                 this.setResult(ID_NG);\r
94                                 this.finish();\r
95                         }\r
96 \r
97                         // TODO\r
98                         // pref.put(PREF_WIT_FLAG, 1);\r
99                         // waSf.setRdy();\r
100 \r
101                         button.setEnabled(false);\r
102                 } else {\r
103                         waitView.stop();\r
104                         waiting = null;\r
105                 }\r
106         }\r
107 \r
108         @Override\r
109         protected void onStart() {\r
110                 super.onStart();\r
111 \r
112                 if (waiting != null && waSf.isOff()) {\r
113                         waSf.setRdy();\r
114                         waiting.onStart();\r
115                 }\r
116         }\r
117 \r
118         @Override\r
119         protected void onStop() {\r
120                 // TODO \89æ\96Ê\82Ì\8fc\89¡\90Ø\82è\91Ö\82¦\8e\9e\91Î\89\9e\r
121                 // if (waiting != null) {\r
122                 // waiting.onStop();\r
123                 // }\r
124 \r
125                 super.onStop();\r
126         }\r
127 \r
128         @Override\r
129         protected void onDestroy() {\r
130                 super.onDestroy();\r
131 \r
132                 if (waiting != null && waSf.isOn()) {\r
133                         waiting.onStop();\r
134                 }\r
135                 if (waitView != null){\r
136                         // \8e\9f\82ÌonCreate\82Å\90V\82½\82É\8dì\90¬\82³\82ê\82é\82½\82ß\81A\82±\82ÌwaitView\82Í\8e~\82ß\82Ä\82¨\82©\82È\82¯\82ê\82Î\82¢\82¯\82È\82¢\r
137                         waitView.stop();\r
138                         waitView = null;\r
139                 }\r
140         }\r
141 \r
142         private Handler handler = new Handler() {\r
143                 public void handleMessage(android.os.Message msg) {\r
144                         try {\r
145                                 Debug.d(this, "handleMessage start");\r
146                                 int code = msg.what;\r
147 \r
148                                 switch (code) {\r
149                                 case ID_OK:\r
150                                 case ID_NG:\r
151                                         // TODO \83v\83\8d\83Z\83X\82Ì\8dÄ\8bN\93®\82É\82Í\91Î\89\9e\82Å\82«\82È\82¢\r
152                                         if (waitView == null){\r
153                                                 // \8dí\8f\9c\8dÏ\82Ý\82ÌView\r
154                                                 Debug.d(this, "waitView == null");\r
155                                                 return;\r
156                                         }\r
157                                         waitView.stop();\r
158                                         textView.setText((code == ID_OK) ? message2 : message3);\r
159                                         button.setEnabled(true);\r
160                                         if (code == ID_OK){\r
161                                                 waSf.setOn();\r
162                                         }\r
163                                         else {\r
164                                                 waSf.setErr();                                          \r
165                                         }\r
166                                         if (waiting != null) {\r
167                                                 waiting.setContext(null);\r
168                                                 waiting.setHandler(null);\r
169                                                 waiting = null;\r
170                                         }\r
171                                         break;\r
172                                 default:\r
173                                         super.handleMessage(msg);\r
174                                         break;\r
175                                 }\r
176                         } catch (Exception e) {\r
177                                 Debug.d(this, null, e);\r
178                         }\r
179                         finally {\r
180                                 Debug.d(this, "handleMessage end");                             \r
181                         }\r
182                 }\r
183         };\r
184 \r
185         public static void init(Context context) {\r
186                 // TODO\r
187                 // EditPrefUtil pref = new EditPrefUtil(context);\r
188                 // pref.remove(WaitActivity.PREF_WIT_FLAG);\r
189                 StatusFlag waSf = StatusFlagFactory.getInstance().getStatusFlag(\r
190                                 context, StatusFlagFactory.Type.WAIT_ACTIVITY);\r
191                 waSf.setOff();\r
192         }\r
193 }\r