package edu.stanford.cs.sujogger.util; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import edu.stanford.cs.sujogger.R; import edu.stanford.cs.sujogger.db.DatabaseHelper; import edu.stanford.cs.sujogger.db.GPStracking.Categories; public class AchCatAdapter extends BaseAdapter { private Context mContext; private DatabaseHelper mDbHelper; private int mSection; public AchCatAdapter(Context context, DatabaseHelper dbHelper, int section) { mContext = context; mDbHelper = dbHelper; mSection = section; } public int getCount() { switch(mSection) { case 0: return Categories.NUM_DIFF_CAT; case 1: return Categories.NUM_TYPE_CAT; default: return 0; } } public Object getItem(int position) { if (mSection == 0) { switch(position) { case 0: return Categories.DIFF_EASY; case 1: return Categories.DIFF_MED; case 2: return Categories.DIFF_HARD; default: break; } } else if (mSection == 1) { switch(position) { case 0: return Categories.TYPE_SPEED; case 1: return Categories.TYPE_ENDURANCE; case 2: return Categories.TYPE_DETERMINATION; case 3: return Categories.TYPE_CHARISMA; default: return null; } } return null; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) convertView = LayoutInflater.from(mContext).inflate(R.layout.achievementcatitem, parent, false); TextView title = (TextView)convertView.findViewById(R.id.achievementcat_name); if (mSection == 0) { switch(position) { case 0: title.setText(Categories.getNameForCat(Categories.DIFF_EASY)); break; case 1: title.setText(Categories.getNameForCat(Categories.DIFF_MED)); break; case 2: title.setText(Categories.getNameForCat(Categories.DIFF_HARD)); break; default: break; } } else if (mSection == 1) { switch(position) { case 0: title.setText(Categories.getNameForCat(Categories.TYPE_SPEED)); break; case 1: title.setText(Categories.getNameForCat(Categories.TYPE_ENDURANCE)); break; case 2: title.setText(Categories.getNameForCat(Categories.TYPE_DETERMINATION)); break; case 3: title.setText(Categories.getNameForCat(Categories.TYPE_CHARISMA)); break; default: break; } } TextView fraction = (TextView)convertView.findViewById(R.id.achievementcat_fraction); if (mSection == 0) { switch(position) { case 0: fraction.setText( mDbHelper.getCompletedAchievementCountForCat(Categories.DIFF_EASY, Categories.DIFF_MASK) + "/" + mDbHelper.getAchievementCountForCat(Categories.DIFF_EASY, Categories.DIFF_MASK)); break; case 1: fraction.setText( mDbHelper.getCompletedAchievementCountForCat(Categories.DIFF_MED, Categories.DIFF_MASK) + "/" + mDbHelper.getAchievementCountForCat(Categories.DIFF_MED, Categories.DIFF_MASK)); break; case 2: fraction.setText( mDbHelper.getCompletedAchievementCountForCat(Categories.DIFF_HARD, Categories.DIFF_MASK) + "/" + mDbHelper.getAchievementCountForCat(Categories.DIFF_HARD, Categories.DIFF_MASK)); break; default: break; } } else if (mSection == 1) { switch(position) { case 0: fraction.setText( mDbHelper.getCompletedAchievementCountForCat(Categories.TYPE_SPEED, Categories.TYPE_MASK) + "/" + mDbHelper.getAchievementCountForCat(Categories.TYPE_SPEED, Categories.TYPE_MASK)); break; case 1: fraction.setText( mDbHelper.getCompletedAchievementCountForCat(Categories.TYPE_ENDURANCE, Categories.TYPE_MASK) + "/" + mDbHelper.getAchievementCountForCat(Categories.TYPE_ENDURANCE, Categories.TYPE_MASK)); break; case 2: fraction.setText( mDbHelper.getCompletedAchievementCountForCat(Categories.TYPE_DETERMINATION, Categories.TYPE_MASK) + "/" + mDbHelper.getAchievementCountForCat(Categories.TYPE_DETERMINATION, Categories.TYPE_MASK)); break; case 3: fraction.setText( mDbHelper.getCompletedAchievementCountForCat(Categories.TYPE_CHARISMA, Categories.TYPE_MASK) + "/" + mDbHelper.getAchievementCountForCat(Categories.TYPE_CHARISMA, Categories.TYPE_MASK)); break; default: break; } } return convertView; } }