package typical_if.android.adapter;
import android.graphics.Bitmap;
import android.os.Parcelable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import com.felipecsl.asymmetricgridview.library.AsymmetricGridViewAdapterContract;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.vk.sdk.api.model.VKApiPhoto;
import java.util.List;
import typical_if.android.R;
import typical_if.android.util.PhotoUrlHelper;
/**
* Created by LJ on 16.07.2014.
*/
public class PhotoListAdapter extends BaseAdapter implements AsymmetricGridViewAdapterContract {
List<VKApiPhoto> photoList;
LayoutInflater layoutInflater;
public PhotoListAdapter(List<VKApiPhoto> list, LayoutInflater inflater) {
this.photoList = list;
this.layoutInflater = inflater;
}
@Override
public int getCount() {
return photoList.size();
}
@Override
public Object getItem(int position) {
return photoList.get(position);
}
@Override
public long getItemId(int position) {
return photoList.get(position).id;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final VKApiPhoto photo = photoList.get(position);
final ViewHolder viewHolder;
if (convertView == null) {
convertView = layoutInflater.inflate(R.layout.fragment_photo_list_item, null);
viewHolder = new ViewHolder(convertView);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
// final ProgressBar pbPreviewImageIsLoading = viewHolder.pbPreviewImageIsLoading;
// Glide.with(TIFApp.getAppContext())
// .load(PhotoUrlHelper.getPreviewUrl(photo))
// .placeholder(R.drawable.event_stub)
// .crossFade()
// .into(viewHolder.photo);
ImageLoader.getInstance().displayImage(PhotoUrlHelper.getPreviewUrl(photo), viewHolder.photo, new DisplayImageOptions.Builder()
.cacheOnDisc(true)
.cacheInMemory(true)
.showImageOnLoading(R.color.LOADING_IMAGE_COLOR_PHOTO_LIST) // TODO resource or drawable
// .showImageForEmptyUri(R.drawable.ic_empty_url) // TODO resource or drawable
// .showImageOnFail(R.drawable.ic_error) // TODO resource or drawable
.resetViewBeforeLoading(false)
.bitmapConfig(Bitmap.Config.RGB_565)
.imageScaleType(ImageScaleType.EXACTLY)
.build());
return convertView;
}
@Override
public void recalculateItemsPerRow() {
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void restoreState(Parcelable parcelable) {
}
private static class ViewHolder {
public final ImageView photo;
//public final ProgressBar pbPreviewImageIsLoading;
public ViewHolder(View convertView) {
this.photo = (ImageView) convertView.findViewById(R.id.img_photo_cover);
// this.pbPreviewImageIsLoading = (ProgressBar) convertView.findViewById(R.id.pbPreviewImageIsLoading);
}
}
}