package org.flisolsaocarlos.flisolapp.adapter;
import android.content.res.AssetManager;
import android.graphics.drawable.Drawable;
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 org.flisolsaocarlos.flisolapp.R;
import org.flisolsaocarlos.flisolapp.model.Supporter;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
public class SupporterAdapter extends BaseAdapter {
final static String SUPPORTER_FILE_FOLDER = "supporter_image/";
private List<Supporter> supporters = new ArrayList();
private LayoutInflater mInflater;
private AssetManager assets;
public SupporterAdapter(LayoutInflater layoutInflater, AssetManager assets) {
mInflater = layoutInflater;
this.assets = assets;
}
public void addItem(final Supporter Supporter) {
supporters.add(Supporter);
notifyDataSetChanged();
}
@Override
public int getCount() {
return supporters.size();
}
@Override
public Supporter getItem(int position) {
return supporters.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
Supporter supporter = supporters.get(position);
if (convertView == null) {
convertView = mInflater.inflate(R.layout.supporter_default_list, null);
holder = new ViewHolder();
holder.nameTxt = (TextView) convertView.findViewById(R.id.name);
holder.websiteTxt = (TextView) convertView.findViewById(R.id.website);
holder.logoImage = (ImageView) convertView.findViewById(R.id.logoImage);
holder.businessPackageImage = (ImageView) convertView.findViewById(R.id.icon);
holder.businessPackageTxt = (TextView) convertView.findViewById(R.id.business_package);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.nameTxt.setText(supporter.getName());
holder.businessPackageTxt.setText(supporter.getBusinessPackage().toString());
holder.websiteTxt.setText(supporter.getWebsiteTitle());
//supporters' images are in folder 'assets/supporter_image'and the Entity Supporter
//has only the filename of its image;
try {
final InputStream logoInput = assets.open(SUPPORTER_FILE_FOLDER + supporter.getImage());
final Drawable logoDrawable = Drawable.createFromStream(logoInput, null);
holder.logoImage.setImageDrawable(logoDrawable);
InputStream packageInput = null;
switch (supporter.getBusinessPackage()) {
case DIAMOND:
packageInput = assets.open(SUPPORTER_FILE_FOLDER + Supporter.BusinessPackage.DIAMOND.getIcon());
break;
case GOLD:
packageInput = assets.open(SUPPORTER_FILE_FOLDER + Supporter.BusinessPackage.GOLD.getIcon());
break;
case SILVER:
packageInput = assets.open(SUPPORTER_FILE_FOLDER + Supporter.BusinessPackage.SILVER.getIcon());
break;
case BRONZE:
packageInput = assets.open(SUPPORTER_FILE_FOLDER +Supporter.BusinessPackage.BRONZE.getIcon());
break;
}
if (packageInput != null) {
final Drawable packageDrawable = Drawable.createFromStream(packageInput, null);
holder.businessPackageImage.setImageDrawable(packageDrawable);
}
} catch (IOException ex) {
Log.e("m:", ex.toString());
}
return convertView;
}
public static class ViewHolder {
public TextView nameTxt;
public ImageView logoImage;
public TextView businessPackageTxt;
public ImageView businessPackageImage;
public TextView websiteTxt;
}
}