package com.emuporium.gymrat.android;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.SortedSet;
import java.util.TreeSet;
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CheckedTextView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import com.emuporium.gymrat.android.data.Variation;
public class SelectVariations extends ListActivity {
SQLiteDatabase db;
ArrayList<Variation> variationList = null; // list of available variations
// from db
ArrayList<Variation> selected;
int exercise = -1;
SortedSet<Integer> selectedVariations = null; // list of currently checked
// variations
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e("yo", "create");
setContentView(R.layout.variation_select);
variationList = new ArrayList<Variation>();
selectedVariations = new TreeSet<Integer>();
Button submit = (Button) findViewById(R.id.submit_variations);
db = DbUtils.getStaticDb();
exercise = getIntent().getIntExtra(
"com.emuporium.gymrat.android.ExerciseChoice", 0);
// Log.e("Yo", "Received:" + exercise);
Cursor c = db
.rawQuery(
"Select variations._id, variation from variations join exercisevariations on variationid=variations._id\r\n"
+ "where exercisevariations.exerciseid = ?",
new String[] { Integer.toString(exercise) });
startManagingCursor(c);
ListAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_checked, c,
new String[] { "variation" }, new int[] { android.R.id.text1 });
setListAdapter(adapter);
while (c.moveToNext()) {
Variation v = new Variation();
v.setId(c.getInt(0));
v.setName(c.getString(1));
variationList.add(v);
}
// CheckBox cb = (CheckBox) getListAdapter().getView(1, null, null);
// getListView().setItemChecked(1, true);
// CheckedTextView check = (CheckedTextView) v;
// check.toggle();
submit.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(SelectVariations.this,
SelectEquipment.class);
ArrayList<Integer> a = new ArrayList<Integer>();
a.addAll(selectedVariations);
intent.putIntegerArrayListExtra(
"com.emuporium.gymrat.android.Variations", a);
intent.putExtra("com.emuporium.gymrat.android.ExerciseChoice",
exercise);
startActivityForResult(intent, 0);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == 2) {
setResult(resultCode, data);
finish();
}
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Save UI state changes to the savedInstanceState.
// This bundle will be passed to onCreate if the process is
// killed and restarted.
// ArrayList<Integer> a = new ArrayList<Integer>();
// a.addAll(selectedVariations);
// selected = new ArrayList<Variation>();
//
// savedInstanceState.putIntegerArrayList("Selected", a);
super.onSaveInstanceState(savedInstanceState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
ArrayList<Integer> s = new ArrayList<Integer>();
// s = savedInstanceState.getIntegerArrayList("Selected");
// if (s != null)
// selectedVariations.addAll(savedInstanceState
// .getIntegerArrayList("Selected"));
// ListView l = (ListView) findViewById(R.layout.variation_select);
// l.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
// l.setItemChecked(0, true);
// CheckedTextView ctv = (CheckedTextView) l.get;
// ctv.toggle();
}
@Override
protected void onListItemClick(ListView list, View v, int pos, long row) {
// super.onListItemClick(list, v, pos, id);
// list.setItemChecked(1, true);
// Log.e("Group", variationList.get(pos).toString() + ":" + pos);
if (!selectedVariations.add(variationList.get(pos).getId()))
selectedVariations.remove(variationList.get(pos).getId());
CheckedTextView check = (CheckedTextView) v;
check.toggle();
StringBuilder sb = new StringBuilder();
// for(int i = 0; i < selectedVariations.size(); i++){
// sb.append(selectedVariations.
Iterator iter = selectedVariations.iterator();
while (iter.hasNext()) {
Integer i = (Integer) iter.next();
sb.append(i);
}
// Log.e("Selected", "Current: " + sb);
// Intent intent = new
// Intent(SelectVariations.this,SelectEquipment.class);
// intent.putExtra("com.emuporium.gymrat.android.MuscleGroup",
// muscleList.get(pos));
// intent.putExtra("com.emuporium.gymrat.android.Name",
// intent.getStringExtra("com.emuporium.gymrat.android.Name"));
// startActivityForResult(intent, PICK_EXERCISE_REQUEST);
}
@Override
public void onResume() {
super.onResume();
if (!db.isOpen())
db = DbUtils.getStaticDb();
}
@Override
public void onPause() {
super.onPause();
// db.close();
}
}
|