package com.vorsk.crossfitr; import com.vorsk.crossfitr.models.SQLiteDAO; import com.vorsk.crossfitr.models.WorkoutModel; import com.vorsk.crossfitr.models.WorkoutRow; import com.vorsk.crossfitr.models.WorkoutSessionModel; import android.app.Activity; import android.os.Bundle; import android.content.Intent; import android.content.res.Resources; import android.graphics.Typeface; import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; public class WorkoutCustomProfileActivity extends Activity implements OnClickListener { private WorkoutRow workout; private int ACT_TIMER = 1; private Typeface font; TextView screenName, tvname, tvdesc, tvbestRecord; WorkoutModel model = new WorkoutModel(this); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //get the id passed from previous activity (workout lists) long id = getIntent().getLongExtra("ID", -1); //if ID is invalid, go back to home screen if(id < 0) { finish(); } //set view setContentView(R.layout.workout_custom_profile); //create a WorkoutRow, to retrieve data from database model.open(); workout = model.getByID(id); //TextView objects font = Typeface.createFromAsset(this.getAssets(), "fonts/Roboto-Thin.ttf"); screenName = (TextView) findViewById(R.id.screenTitle); screenName.setTypeface(font); tvname = (TextView) findViewById(R.id.workout_profile_nameDB); tvname.setTypeface(font); tvbestRecord = (TextView) findViewById(R.id.workout_profile_best_recordDB); tvbestRecord.setTypeface(font); tvdesc = (TextView) findViewById(R.id.workout_profile_descDB); tvdesc.setTypeface(font); //set the text of the TextView objects from the data retrieved from the DB Resources res = getResources(); tvname.setText(workout.name); if (model.getTypeName(workout.workout_type_id).equals("WOD")) tvname.setTextColor(res.getColor(R.color.wod)); else if (model.getTypeName(workout.workout_type_id).equals("Hero")) tvname.setTextColor(res.getColor(R.color.heroes)); else if (model.getTypeName(workout.workout_type_id).equals("Girl")) tvname.setTextColor(res.getColor(R.color.girls)); else if(model.getTypeName(workout.workout_type_id).equals("Custom")) tvname.setTextColor(res.getColor(R.color.custom)); tvdesc.setText(workout.description); //tvrecordType.setText(model.getTypeName(workout.workout_type_id)); model.close(); // begin workout button View beginButton = findViewById(R.id.button_begin_workout); ((TextView) beginButton).setTypeface(font); beginButton.setOnClickListener(this); View editButton = findViewById(R.id.button_edit_workout); ((TextView) editButton).setTypeface(font); editButton.setOnClickListener(this); View deleteButton = findViewById(R.id.button_delete_workout); ((TextView) deleteButton).setTypeface(font); deleteButton.setOnClickListener(this); if (workout.description.indexOf("Rest Day") == -1){ //It is not a rest day tvbestRecord.setText("Personal Record: "+StopwatchActivity.formatElapsedTime(Long.parseLong(String.valueOf(workout.record)))); beginButton.setOnClickListener(this); }else{ //it is a rest day beginButton.setVisibility(View.GONE); tvbestRecord.setVisibility(View.GONE); } } public void onClick(View v) { switch (v.getId()) { // if user presses begin button, user will now go into the timer page. case R.id.button_begin_workout: Intent i = new Intent(this, TimeTabWidget.class); i.putExtra("workout_id", workout._id); startActivityForResult(i, ACT_TIMER); break; case R.id.button_edit_workout: Intent u = new Intent(this, CustomEditActivity.class); u.putExtra("id", workout._id); startActivity(u); break; case R.id.button_delete_workout: model.open(); model.delete(workout._id); model.close(); Intent j = new Intent(this, CustomActivity.class); startActivity(j); break; } } @Override protected void onActivityResult(int request, int result, Intent data) { if (request == ACT_TIMER) { if (result != RESULT_CANCELED) { // Session was completed long score; WorkoutSessionModel model = new WorkoutSessionModel(this); model.open(); // Get the score returned if (workout.record_type_id == SQLiteDAO.SCORE_TIME) { score = data.getLongExtra("time", -1); } else if (workout.record_type_id == SQLiteDAO.SCORE_REPS) { score = SQLiteDAO.NOT_SCORED; // TODO: this } else if (workout.record_type_id == SQLiteDAO.SCORE_WEIGHT) { score = SQLiteDAO.NOT_SCORED; // TODO: this } else { score = SQLiteDAO.NOT_SCORED; } // Save as a new session long id = model.insert(workout._id, score, workout.record_type_id); model.close(); // Show the results page Intent res = new Intent(this, ResultsActivity.class); res.putExtra("session_id", id); startActivity(res); } } } }