]>
Commit | Line | Data |
---|---|---|
c6f3dff3 | 1 | package org.proofofconcept.shisensho; |
2 | ||
3 | import java.io.Serializable; | |
4 | ||
5 | import android.app.Activity; | |
6 | import android.os.Bundle; | |
7 | import android.view.View; | |
8 | import android.view.Window; | |
9 | import android.widget.AdapterView; | |
10 | import android.widget.ArrayAdapter; | |
11 | import android.widget.CompoundButton; | |
12 | import android.widget.Spinner; | |
13 | import android.widget.ToggleButton; | |
14 | ||
15 | public class ShisenShoOptionsActivity extends Activity { | |
16 | ||
17 | Bundle state; | |
18 | ShisenSho app; | |
19 | ||
20 | private void appToState (boolean merge) { | |
21 | String[] fields = { "size", "difficulty", "gravity", "timeCounter" }; | |
22 | Bundle options = app.getOptions(); | |
23 | if (state == null) state = new Bundle(); | |
24 | for (int i=0; i<fields.length; i++) { | |
25 | if (!merge || !state.containsKey(fields[i])) { | |
26 | state.putSerializable(fields[i], (Serializable)(options.get(fields[i]))); | |
27 | } | |
28 | } | |
29 | } | |
30 | ||
31 | /** Called when the activity is first created. */ | |
32 | @Override | |
33 | public void onCreate(Bundle savedInstanceState) { | |
34 | super.onCreate(savedInstanceState); | |
35 | requestWindowFeature(Window.FEATURE_NO_TITLE); | |
36 | setContentView(R.layout.options); | |
37 | ||
38 | app = ShisenSho.app(); | |
39 | state = savedInstanceState; | |
40 | appToState(true); | |
41 | ||
42 | Spinner s; | |
43 | ToggleButton tb; | |
44 | ArrayAdapter adapter; | |
45 | ||
46 | s = (Spinner) findViewById(R.id.size); | |
47 | adapter = ArrayAdapter.createFromResource( | |
48 | this, R.array.sizes, android.R.layout.simple_spinner_item); | |
49 | adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); | |
50 | s.setAdapter(adapter); | |
51 | s.setSelection(state.getInt("size")-1); | |
52 | s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { | |
53 | public void onItemSelected(AdapterView<?> arg0, View arg1, | |
54 | int pos, long arg3) { | |
55 | state.putInt("size", pos+1); | |
56 | } | |
57 | ||
58 | public void onNothingSelected(AdapterView<?> arg0) { } | |
59 | }); | |
60 | ||
61 | s = (Spinner) findViewById(R.id.difficulty); | |
62 | adapter = ArrayAdapter.createFromResource( | |
63 | this, R.array.difficulties, android.R.layout.simple_spinner_item); | |
64 | adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); | |
65 | s.setAdapter(adapter); | |
66 | s.setSelection(2-state.getInt("difficulty")); | |
67 | s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { | |
68 | public void onItemSelected(AdapterView<?> arg0, View arg1, | |
69 | int pos, long arg3) { | |
70 | state.putInt("difficulty", 2-pos); | |
71 | } | |
72 | ||
73 | public void onNothingSelected(AdapterView<?> arg0) { } | |
74 | }); | |
75 | ||
76 | tb = (ToggleButton) findViewById(R.id.gravity); | |
77 | tb.setChecked(state.getBoolean("gravity")); | |
78 | tb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { | |
79 | public void onCheckedChanged(CompoundButton arg0, boolean arg1) { | |
80 | state.putBoolean("gravity", arg1); | |
81 | } | |
82 | }); | |
83 | ||
84 | tb = (ToggleButton) findViewById(R.id.timeCounter); | |
85 | tb.setChecked(state.getBoolean("timeCounter")); | |
86 | tb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { | |
87 | public void onCheckedChanged(CompoundButton arg0, boolean arg1) { | |
88 | state.putBoolean("timeCounter", arg1); | |
89 | } | |
90 | }); | |
91 | } | |
92 | ||
93 | @Override | |
94 | public void onBackPressed() { | |
95 | app.setOptions(state); | |
96 | super.onBackPressed(); | |
97 | } | |
98 | ||
99 | } |