package com.pledgeapps.buyingtime; import android.app.AlertDialog; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import android.widget.ToggleButton; import com.pledgeapps.buyingtime.data.Alarm; import com.pledgeapps.buyingtime.data.Alarms; public class AlarmListAdapter extends BaseAdapter { private LayoutInflater mInflater; Context context=null; public AlarmListAdapter(Context context) { this.context = context; mInflater = LayoutInflater.from(context); } public int getCount() { return Alarms.getCurrent().size(); } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; int currentAlarmIdx = 0; //Settings.getCurrent().getSchedule(); if (convertView == null) { convertView = mInflater.inflate(R.layout.row_alarm, null); holder = new ViewHolder(); holder.name = (TextView) convertView.findViewById(R.id.alarmName); holder.alarmDays = (TextView) convertView.findViewById(R.id.alarmDays); holder.pledge = (TextView) convertView.findViewById(R.id.pledge); holder.activeToggle = (ToggleButton) convertView.findViewById(R.id.activeToggle); //holder.selectButton = (ImageView) convertView.findViewById(R.id.selectButton); convertView.setTag(holder); } else holder = (ViewHolder) convertView.getTag(); Alarm a = Alarms.getCurrent().get(position); holder.name.setText(a.getDisplayTime()); if (a.getDisplayDays()!="") holder.alarmDays.setText(a.getDisplayDays()); if (a.centsPerMinute>0) { double dollars = a.centsPerMinute / 100.0; String displayPledge = "$" + String.format("%1.2f", dollars) + " / min."; if (a.graceMinutes>0) { displayPledge += " after " + Integer.toString(a.graceMinutes) + " min."; } holder.pledge.setText(displayPledge); } else { holder.pledge.setText("No pledge."); } holder.activeToggle.setChecked(a.active); final int currentPosition = position; holder.activeToggle.setOnClickListener(new View.OnClickListener() {public void onClick(View view) {toggleAlarm(currentPosition, view);}}); return convertView; } private void toggleAlarm(int idx, View view) { ToggleButton tmpActiveToggle = (ToggleButton) view.findViewById(R.id.activeToggle); Alarms.getCurrent().get(idx).active = tmpActiveToggle.isChecked(); this.notifyDataSetChanged(); } static class ViewHolder { TextView name; TextView alarmDays; TextView pledge; ToggleButton activeToggle; } }