]> git.zerfleddert.de Git - FreeShisen/blobdiff - src/de/cwde/shisensho/ShisenShoOptionsActivity.java
rename, add hdpi icons, cleanup some warnings
[FreeShisen] / src / de / cwde / shisensho / ShisenShoOptionsActivity.java
diff --git a/src/de/cwde/shisensho/ShisenShoOptionsActivity.java b/src/de/cwde/shisensho/ShisenShoOptionsActivity.java
new file mode 100644 (file)
index 0000000..9d3ecbb
--- /dev/null
@@ -0,0 +1,101 @@
+package de.cwde.shisensho;
+
+import java.io.Serializable;
+
+import de.cwde.shisensho.R;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.View;
+import android.view.Window;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.CompoundButton;
+import android.widget.Spinner;
+import android.widget.ToggleButton;
+
+public class ShisenShoOptionsActivity extends Activity {
+
+       Bundle state;
+       ShisenSho app;
+
+       private void appToState (boolean merge) {
+               String[] fields = { "size", "difficulty", "gravity", "timeCounter" };
+               Bundle options = app.getOptions();
+               if (state == null) state = new Bundle();
+               for (int i=0; i<fields.length; i++) {
+                       if (!merge || !state.containsKey(fields[i])) {
+                               state.putSerializable(fields[i], (Serializable)(options.get(fields[i])));
+                       }
+               }
+       }
+
+       /** Called when the activity is first created. */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        requestWindowFeature(Window.FEATURE_NO_TITLE);
+        setContentView(R.layout.options);
+
+        app = ShisenSho.app();
+        state = savedInstanceState;
+        appToState(true);
+
+        Spinner s;
+        ToggleButton tb;
+        ArrayAdapter adapter;
+
+        s = (Spinner) findViewById(R.id.size);
+        adapter = ArrayAdapter.createFromResource(
+                this, R.array.sizes, android.R.layout.simple_spinner_item);
+        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        s.setAdapter(adapter);
+        s.setSelection(state.getInt("size")-1);
+        s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+                       public void onItemSelected(AdapterView<?> arg0, View arg1,
+                                       int pos, long arg3) {
+                               state.putInt("size", pos+1);
+                       }
+
+                       public void onNothingSelected(AdapterView<?> arg0) { }
+        });
+
+        s = (Spinner) findViewById(R.id.difficulty);
+        adapter = ArrayAdapter.createFromResource(
+                this, R.array.difficulties, android.R.layout.simple_spinner_item);
+        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        s.setAdapter(adapter);
+        s.setSelection(2-state.getInt("difficulty"));
+        s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+                       public void onItemSelected(AdapterView<?> arg0, View arg1,
+                                       int pos, long arg3) {
+                               state.putInt("difficulty", 2-pos);
+                       }
+
+                       public void onNothingSelected(AdapterView<?> arg0) { }
+        });
+
+        tb = (ToggleButton) findViewById(R.id.gravity);
+        tb.setChecked(state.getBoolean("gravity"));
+        tb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+                       public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
+                               state.putBoolean("gravity", arg1);
+                       }
+        });
+
+        tb = (ToggleButton) findViewById(R.id.timeCounter);
+        tb.setChecked(state.getBoolean("timeCounter"));
+        tb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+                       public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
+                               state.putBoolean("timeCounter", arg1);
+                       }
+        });
+    }
+
+       @Override
+       public void onBackPressed() {
+               app.setOptions(state);
+               super.onBackPressed();
+       }
+
+}
Impressum, Datenschutz