package com.yassirh.digitalocean.ui;
import android.app.Activity;
import android.content.Context;
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 com.yassirh.digitalocean.R;
import com.yassirh.digitalocean.model.Image;
import com.yassirh.digitalocean.utils.ApiHelper;
import java.util.ArrayList;
import java.util.List;
public class ImageAdapter extends BaseAdapter {
private List<Image> data;
private boolean showRegion;
private static LayoutInflater inflater=null;
public ImageAdapter(Activity activity, List<Image> data) {
this.data = data;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public ImageAdapter(Activity activity, List<Image> data, boolean showRegions) {
this.data = data;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.showRegion = showRegions;
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return data.get(position);
}
public long getItemId(int position) {
return data.get(position).getId();
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.image_list_row, parent, false);
final Image image = data.get(position);
if(image.getId() == 0){
vi = inflater.inflate(R.layout.image_list_header, parent, false);
TextView listHeaderTextView = (TextView)vi.findViewById(R.id.listHeaderTextView);
listHeaderTextView.setText(image.getName());
vi.setOnClickListener(null);
}else{
if(vi.findViewById(R.id.nameTextView) == null){
vi = inflater.inflate(R.layout.image_list_row, parent, false);
}
TextView nameTextView = (TextView)vi.findViewById(R.id.nameTextView);
ImageView distroImageView = (ImageView)vi.findViewById(R.id.distroImageView);
TextView visibilityTextView = (TextView)vi.findViewById(R.id.visibilityTextView);
distroImageView.setImageResource(ApiHelper.getImageLogo(image.getName(), image.getDistribution(), "active"));
nameTextView.setText(image.getName());
String visibility;
if(!image.isPublic()) {
visibility = vi.getResources().getString(R.string.private_visibility);
} else{
visibility = vi.getResources().getString(R.string.public_visibility);
}
visibilityTextView.setText(visibility);
if(showRegion) {
TextView regionsTextView = (TextView) vi.findViewById(R.id.regionsTextView);
String[] regions = image.getRegions().split(";");
StringBuilder regionsStringBuilder = new StringBuilder();
List<String> distinctRegions = new ArrayList<String>();
for(String region : regions){
if(!distinctRegions.contains(region)) {
distinctRegions.add(region);
regionsStringBuilder.append(region).append(",");
}
}
regionsTextView.setText(regionsStringBuilder.substring(0,regionsStringBuilder.length()-1));
}
}
return vi;
}
}