package com.deardhruv.swipevolley.adapters;
import java.util.List;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import com.deardhruv.swipevolley.R;
import com.deardhruv.swipevolley.activities.ImageUploadActivity.AddPictureEvent;
import com.deardhruv.swipevolley.activities.ImageUploadActivity.RemovePictureEvent;
import com.deardhruv.swipevolley.utils.AnimateImageListener;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import de.greenrobot.event.EventBus;
public class AdvertisePictureAdapter extends PagerAdapter {
private final List<String> mImageFileList;
private final Context mContext;
private final AnimateImageListener mAnimateImageListener = new AnimateImageListener();
private final DisplayImageOptions mImageOptions;
private final ImageLoader mImageLoader;
private EventBus mEventBus;
// private int mDefaultPicture = 0;
public AdvertisePictureAdapter(final Context context, final List<String> fileList) {
if (context == null) {
throw new IllegalArgumentException("context shouldn't be null!");
}
if (fileList == null) {
throw new IllegalArgumentException("fileList shouldn't be null!");
}
mEventBus = EventBus.getDefault();
mImageFileList = fileList;
mContext = context;
mImageLoader = ImageLoader.getInstance();
mImageLoader.clearMemoryCache();
mImageOptions = new DisplayImageOptions.Builder()
.showImageOnLoading(android.R.color.transparent)
.showImageForEmptyUri(R.drawable.ic_launcher).cacheInMemory(true).cacheOnDisk(true)
.considerExifParams(true).build();
}
@Override
public int getCount() {
if (mImageFileList.size() == 0) {
return 0;
}
if (mImageFileList.size() < 8) {
return mImageFileList.size() + 1;
}
return mImageFileList.size();
}
@Override
public boolean isViewFromObject(View view, Object obj) {
return view == ((View) obj);
}
@Override
public Object instantiateItem(ViewGroup container, final int position) {
final LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View page;
if (mImageFileList.size() == position) {
page = inflater.inflate(R.layout.row_advertise_add_item, container, false);
View addButton = page.findViewById(R.id.fragment_advertise_btn_add_photo);
addButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mEventBus.post(new AddPictureEvent());
}
});
container.addView(page);
return page;
}
page = inflater.inflate(R.layout.row_advertise_image_item, null);
container.addView(page);
final ImageView iv = (ImageView) page.findViewById(R.id.row_advertise_image_item_image);
final ImageButton deleteBtn = (ImageButton) page
.findViewById(R.id.row_advertise_image_btn_delete);
deleteBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
final RemovePictureEvent event = new RemovePictureEvent();
final Integer selection = (Integer) v.getTag();
event.position = selection;
mEventBus.post(event);
}
});
deleteBtn.setTag(position);
mImageLoader.displayImage(mImageFileList.get(position), iv, mImageOptions,
mAnimateImageListener);
return page;
}
@Override
public void destroyItem(View view, int index, Object obj) {
((ViewPager) view).removeView((View) obj);
}
@Override
public float getPageWidth(int position) {
if (mImageFileList.size() == 1) {
return 0.5f;
}
return 0.34f;
}
public List<String> getFileList() {
return mImageFileList;
}
// public int getDefaultPicture() {
// return mDefaultPicture;
// }
//
// public void setDefaultPicture(final int defaultPic) {
// mDefaultPicture = defaultPic;
// }
}