package au.com.museumvictoria.fieldguide.bunurong.adapter;
import java.util.Locale;
import android.content.Context;
import android.database.Cursor;
import android.support.v4.widget.CursorAdapter;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AlphabetIndexer;
import android.widget.ImageView;
import android.widget.SectionIndexer;
import android.widget.TextView;
import au.com.museumvictoria.fieldguide.bunurong.db.FieldGuideDatabase;
import au.com.museumvictoria.fieldguide.bunurong.util.ImageResizer;
import au.com.museumvictoria.fieldguide.bunurong.util.Utilities;
import au.com.museumvictoria.fieldguide.bunurong.R;
/**
* <p>CursorAdapter for displaying species groups</p>
*
* @author Ajay Ranipeta <ajay.ranipeta@gmail.com>
*
*/
public class SpeciesGroupListCursorAdapter extends CursorAdapter implements SectionIndexer {
private static final String TAG = "SpeciesGroupListCursorAdapter";
AlphabetIndexer mAlphabetIndexer;
public SpeciesGroupListCursorAdapter(Context context, Cursor c, int flags) {
super(context, c, flags);
mAlphabetIndexer = new AlphabetIndexer(c,
c.getColumnIndex(FieldGuideDatabase.SPECIES_GROUP),
" ABCDEFGHIJKLMNOPQRTSUVWXYZ");
mAlphabetIndexer.setCursor(c);
}
@Override
public int getPositionForSection(int section) {
return mAlphabetIndexer.getPositionForSection(section);
}
@Override
public int getSectionForPosition(int position) {
return mAlphabetIndexer.getSectionForPosition(position);
}
@Override
public Object[] getSections() {
return mAlphabetIndexer.getSections();
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
String groupLabel = cursor.getString(cursor.getColumnIndex(FieldGuideDatabase.SPECIES_GROUP));
String iconLabel = groupLabel.toLowerCase(Locale.UK).replaceAll(" ", "").replaceAll(",", "");
String iconPath = Utilities.SPECIES_GROUPS_PATH + iconLabel + "@2x.png";
TextView txtView1 = (TextView) view.findViewById(R.id.speciesLabel);
txtView1.setText(groupLabel);
Log.w(TAG, "Getting AssetsFileDescriptor for species group icon: " + iconPath);
ImageView imgView = (ImageView) view.findViewById(R.id.speciesIcon);
imgView.setImageBitmap(ImageResizer.decodeSampledBitmapFromFile(Utilities.getFullExternalDataPath(context, iconPath), 75, 75));
TextView txtView2 = (TextView) view.findViewById(R.id.speciesSublabel);
txtView2.setVisibility(View.GONE);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
View newView = inflater.inflate(R.layout.species_list, parent, false);
return newView;
}
}