package me.ccrama.redditslide.Adapters;
import android.content.Context;
import android.graphics.Bitmap;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import android.widget.ImageView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
import java.util.ArrayList;
import java.util.List;
import me.ccrama.redditslide.ImgurAlbum.Image;
import me.ccrama.redditslide.Reddit;
import me.ccrama.redditslide.Tumblr.Photo;
/**
* Created by carlo_000 on 3/20/2016.
*/
public class ImageGridAdapter extends android.widget.BaseAdapter {
private Context mContext;
private List<String> jsons;
public static final DisplayImageOptions options =
new DisplayImageOptions.Builder().cacheOnDisk(true)
.resetViewBeforeLoading(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.imageScaleType(ImageScaleType.EXACTLY)
.cacheInMemory(false)
.displayer(new FadeInBitmapDisplayer(250))
.build();
public ImageGridAdapter(Context c, List<Image> imgurAlbum) {
mContext = c;
jsons = new ArrayList<>();
for (Image i : imgurAlbum) {
jsons.add(i.getThumbnailUrl());
}
}
public ImageGridAdapter(Context c, List<Photo> tumblrAlbum, boolean tumblr) {
mContext = c;
jsons = new ArrayList<>();
for (Photo i : tumblrAlbum) {
jsons.add((i.getAltSizes() != null && !i.getAltSizes().isEmpty()) ? i.getAltSizes()
.get(0)
.getUrl() : i.getOriginalSize().getUrl());
}
}
public int getCount() {
return jsons.size();
}
public String getItem(int position) {
return jsons.get(position);
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
GridView grid = (GridView) parent;
int size = grid.getColumnWidth();
if (convertView == null) {
// if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
} else {
imageView = (ImageView) convertView;
}
imageView.setLayoutParams(new GridView.LayoutParams(size, size));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
((Reddit) mContext.getApplicationContext()).getImageLoader()
.displayImage(getItem(position), imageView, options);
return imageView;
}
}