package com.vorsk.crossfitr;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import com.vorsk.crossfitr.models.AchievementModel;
import com.vorsk.crossfitr.models.AchievementRow;
import com.vorsk.crossfitr.models.WorkoutRow;
import android.app.Activity;
import android.os.Bundle;
import android.content.Context;
import android.content.Intent;
import android.graphics.Typeface;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class AchievementActivity extends Activity implements OnItemClickListener {
private AchievementModel model_data;
private AchievementRow[] pulledData;
private ArrayList<AchievementRow> achievementrowList;
private ListView derp_achievements_list;
private AchievementListHelper listAdapter;
private Typeface font;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.achievements_list);
font = Typeface.createFromAsset(this.getAssets(), "fonts/Roboto-Thin.ttf");
achievementrowList = new ArrayList<AchievementRow>();
model_data= new AchievementModel(this);
//Access the database and retrieve all the achievements
model_data.open();
pulledData = model_data.getAll();
model_data.close();
if (pulledData.length != 0) {
for (int i = 0; i < pulledData.length; i++) {
achievementrowList.add(pulledData[i]);
}
derp_achievements_list = (ListView) findViewById(R.id.achievement_list_view);
listAdapter = new AchievementListHelper(getApplicationContext(), achievementrowList);
listAdapter.notifyDataSetChanged();
derp_achievements_list.setAdapter(listAdapter);
derp_achievements_list.setOnItemClickListener(this);
}
}
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
AchievementRow achievement = listAdapter.get(position);
Context context = getApplicationContext();
CharSequence text;
int duration;
Toast toast;
duration = Toast.LENGTH_SHORT;
if(achievement.count >= 1){
Date date = new Date(achievement.date_modified);
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yy");
text = "Achieved on " + formatter.format(date);
}
else{
int difference = achievement.progress_thresh - achievement.progress;
text = difference + " more workout(s) to go";
}
toast = Toast.makeText(context, text, duration);
toast.show();
}
public class AchievementListHelper extends BaseAdapter implements OnClickListener {
private static final String tag = "AchievementListHelper";
private final Context listContext;
private ArrayList<AchievementRow> arrayList;
private TextView nameTView;
private TextView descTView;
private LayoutInflater inflater;
public AchievementListHelper(Context _context, ArrayList<AchievementRow> _data) {
this.listContext = _context;
this.arrayList = _data;
inflater = (LayoutInflater) _context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public View getView(int index, View convertView, ViewGroup parent) {
if (convertView == null)
convertView = inflater
.inflate(R.layout.custom_list_item, parent, false);
Log.d(tag, "arrayList.get(" + index + ").name : "
+ arrayList.get(index).name);
// achievement name
nameTView = (TextView) convertView
.findViewById(R.id.string_nameofworkout);
nameTView.setText(arrayList.get(index).name);
if(arrayList.get(index).count < 1){
nameTView.setTextColor(getResources().getColor(R.color.blue));
}
else{
nameTView.setTextColor(getResources().getColor(R.color.heroes));
}
nameTView.setTypeface(font);
//achievement description
descTView = (TextView) convertView
.findViewById(R.id.string_description);
descTView.setText(arrayList.get(index).description);
descTView.setTextColor(getResources().getColor(R.color.white));
descTView.setSelected(true);
descTView.setTypeface(font);
return convertView;
}
public int getCount() {
return arrayList.size();
}
public String getItem(int index) {
return arrayList.get(index).name;
}
public <T> T get(int arg0) {
return (T) arrayList.get(arg0);
}
public long getItemId(int id) {
return id;
}
public void onClick(View arg0) {
}
}
}