]> git.zerfleddert.de Git - FreeShisen/blob - src/org/proofofconcept/shisensho/ShisenShoOptionsActivity.java
87631bd97aa6d806d115f03df1bd4c4e135937be
[FreeShisen] / src / org / proofofconcept / shisensho / ShisenShoOptionsActivity.java
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 }
Impressum, Datenschutz