package com.couchbase.cityexplorer; import android.content.Context; import android.graphics.drawable.Drawable; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.couchbase.cityexplorer.model.Place; import com.couchbase.lite.Attachment; import com.couchbase.lite.CouchbaseLiteException; import com.couchbase.lite.Database; import com.couchbase.lite.Document; import java.io.InputStream; import java.util.List; public class PlacesAdapter extends RecyclerView.Adapter<PlacesAdapter.ViewHolder> { Context context; List<Place> dataSet; Database database; public PlacesAdapter(Context context, List<Place> dataSet, Database database) { this.context = context; this.dataSet = dataSet; this.database = database; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row_places, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { Place place = dataSet.get(position); holder.restaurantName.setText(place.getName()); holder.restaurantText.setText(place.getAddress()); Document document = database.getDocument(place.getId()); Attachment attachment = document.getCurrentRevision().getAttachment("photo"); if (attachment != null) { InputStream is = null; try { is = attachment.getContent(); } catch (CouchbaseLiteException e) { e.printStackTrace(); } Drawable drawable = Drawable.createFromStream(is, "photo"); holder.restaurantImage.setImageDrawable(drawable); } } @Override public int getItemCount() { return dataSet.size(); } public class ViewHolder extends RecyclerView.ViewHolder{ public TextView restaurantName; public TextView restaurantText; public ImageView restaurantImage; public ViewHolder(View itemView) { super(itemView); restaurantName = (TextView) itemView.findViewById(R.id.restaurantName); restaurantText = (TextView) itemView.findViewById(R.id.restaurantText); restaurantImage = (ImageView) itemView.findViewById(R.id.restaurantImage); } } }