package com.kenny.openimgur.ui.adapters; import android.content.Context; import android.database.Cursor; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.kenny.openimgur.R; import com.kenny.openimgur.classes.ImgurAlbum; import com.kenny.openimgur.classes.ImgurPhoto; import com.kenny.openimgur.util.DBContracts; import com.kenny.openimgur.util.ImageUtil; import com.kennyc.adapters.CursorRecyclerAdapter; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import butterknife.BindView; /** * Created by Kenny-PC on 1/14/2015. */ public class UploadAdapter extends CursorRecyclerAdapter<UploadAdapter.UploadHolder> { private View.OnClickListener clickListener; private View.OnLongClickListener longClickListener; private DisplayImageOptions options; private ImageLoader loader; public UploadAdapter(Context context, Cursor cursor, View.OnClickListener listener, View.OnLongClickListener longClickListener) { super(context, cursor); clickListener = listener; this.longClickListener = longClickListener; options = ImageUtil.getDisplayOptionsForGallery().build(); loader = ImageUtil.getImageLoader(context); } public void onDestroy() { clickListener = null; longClickListener = null; } @Override public UploadHolder onCreateViewHolder(ViewGroup parent, int viewType) { UploadHolder holder = new UploadHolder(inflateView(R.layout.upload_item, parent)); holder.itemView.setOnClickListener(clickListener); holder.itemView.setOnLongClickListener(longClickListener); return holder; } @Override public void onBindViewHolder(UploadHolder holder, int position) { moveToPosition(position); Cursor cursor = super.getCursor(); String url; String photoUrl = cursor.getString(DBContracts.UploadContract.COLUMN_INDEX_URL); String converId = cursor.getString(DBContracts.UploadContract.COLUMN_INDEX_COVER_ID); boolean isAlbum = cursor.getInt(DBContracts.UploadContract.COLUMN_INDEX_IS_ALBUM) == 1; if (isAlbum) { url = String.format(ImgurAlbum.ALBUM_COVER_URL, converId + ImgurPhoto.THUMBNAIL_GALLERY); holder.albumIndicator.setVisibility(View.VISIBLE); } else { url = ImageUtil.getThumbnail(photoUrl, ImgurPhoto.THUMBNAIL_GALLERY); holder.albumIndicator.setVisibility(View.GONE); } loader.displayImage(url, holder.image, options); // TODO Album count } public Cursor getCursor() { return super.getCursor(); } static class UploadHolder extends BaseRecyclerAdapter.BaseViewHolder { @BindView(R.id.image) ImageView image; @BindView(R.id.albumIndicator) ImageView albumIndicator; public UploadHolder(View view) { super(view); } } }