/* * Copyright (c) 2014. The Trustees of Indiana University. * * This version of the code is licensed under the MPL 2.0 Open Source license with additional * healthcare disclaimer. If the user is an entity intending to commercialize any application * that uses this code in a for-profit venture, please contact the copyright holder. */ package com.muzima.adapters.cohort; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageButton; import android.widget.TextView; import com.muzima.R; import com.muzima.adapters.ListAdapter; import com.muzima.service.CohortPrefixPreferenceService; import com.muzima.view.preferences.CohortPreferenceActivity; import java.util.Collections; import java.util.Comparator; import java.util.List; /** * Responsible to display CohortPrefixes in the CohortPreferenceActivity */ public class CohortPrefixPrefAdapter extends ListAdapter<String> { private final CohortPrefixPreferenceService cohortPrefixPreferenceService; private final CohortPreferenceActivity cohortPreferenceActivity; public CohortPrefixPrefAdapter(Context context, int textViewResourceId, CohortPreferenceActivity cohortPreferenceActivity) { super(context, textViewResourceId); this.cohortPreferenceActivity = cohortPreferenceActivity; cohortPrefixPreferenceService = new CohortPrefixPreferenceService(context); reloadData(); } @Override public void reloadData() { clear(); List<String> cohortPrefixes = cohortPrefixPreferenceService.getCohortPrefixes(); Collections.sort(cohortPrefixes, new Comparator<String>() { @Override public int compare(String lhs, String rhs) { return lhs.toLowerCase().compareTo(rhs.toLowerCase()); } }); addAll(cohortPrefixes); } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { LayoutInflater layoutInflater = LayoutInflater.from(getContext()); convertView = layoutInflater.inflate( R.layout.item_preference, parent, false); holder = new ViewHolder(convertView, position); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.setTextForTextField(getItem(position)); return convertView; } protected class ViewHolder { private TextView text; private ImageButton deleteButton; public ViewHolder(View convertView, int position) { text = (TextView) convertView.findViewById(R.id.prefix); deleteButton = (ImageButton) convertView.findViewById(R.id.del_cohort_prefix_btn); deleteButton.setOnClickListener(new OnPrefDeleteListener(position)); } public void setTextForTextField(String textToBeDisplayed) { text.setText(textToBeDisplayed); } } private class OnPrefDeleteListener implements View.OnClickListener { private int position; private OnPrefDeleteListener(int position) { this.position = position; } @Override public void onClick(View view) { cohortPreferenceActivity.onDeletePreferenceClick(getItem(position)); } } }