package cz.destil.glasquare.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.google.android.glass.widget.CardScrollAdapter;
import com.squareup.picasso.Picasso;
import java.util.List;
import butterknife.ButterKnife;
import butterknife.InjectView;
import cz.destil.glasquare.App;
import cz.destil.glasquare.R;
import cz.destil.glasquare.api.ExploreVenues;
/**
* Adapter for list of venues.
*
* @author David 'Destil' Vavra (david@vavra.me)
*/
public class VenuesAdapter extends CardScrollAdapter {
public static int MAX_IMAGE_WIDTH = 213;
public static int MAX_IMAGE_HEIGHT = 360;
private List<ExploreVenues.Venue> mVenues;
public VenuesAdapter(List<ExploreVenues.Venue> venues) {
mVenues = venues;
}
@Override
public int getCount() {
return mVenues.size();
}
@Override
public Object getItem(int i) {
return mVenues.get(i);
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
if (view == null) {
view = LayoutInflater.from(App.get()).inflate(R.layout.view_venue, viewGroup, false);
holder = new ViewHolder(view);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
ExploreVenues.Venue venue = mVenues.get(i);
holder.name.setText(venue.name);
holder.category.setText(venue.category);
if (venue.hours == null) {
holder.hours.setVisibility(View.GONE);
} else {
holder.hours.setText(venue.hours);
holder.hours.setVisibility(View.VISIBLE);
}
holder.distance.setText(venue.distance + " m");
Picasso.with(App.get()).load(venue.imageUrl).resize(MAX_IMAGE_WIDTH, MAX_IMAGE_HEIGHT).centerCrop().placeholder(R.drawable
.ic_venue_placeholder).into(holder.image);
return view;
}
@Override
public int getPosition(Object o) {
return mVenues.indexOf(o);
}
static class ViewHolder {
@InjectView(R.id.name)
TextView name;
@InjectView(R.id.category)
TextView category;
@InjectView(R.id.hours)
TextView hours;
@InjectView(R.id.distance)
TextView distance;
@InjectView(R.id.image)
ImageView image;
public ViewHolder(View view) {
ButterKnife.inject(this, view);
}
}
}