package com.jaiky.imagespickers.container;

import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;

import com.jaiky.imagespickers.ImageLoader;
import com.jaiky.imagespickers.R;
import com.jaiky.imagespickers.preview.MultiImgShowActivity;
import com.jaiky.imagespickers.utils.Utils;

import java.util.ArrayList;
import java.util.List;


public class SimpleImageAdapter extends CommonAdapter<String> {

	private boolean isDelete;

	private FrameLayout.LayoutParams fl = null;

	private int containerWidth = 1080;

    private int rowCount = 4;

    private ImageLoader imageLoader;


	private void initImgSize() {
		//带删除
		if (isDelete) {
            // 如果行数为4,中间间隔3个3dp共9dp + 距离右边4个8dp共32dp
            int size = containerWidth - Utils.dip2px(mContext, 3 * (rowCount -1) + 8 * rowCount);
            size = Math.round(size / (float)rowCount);
            fl = new FrameLayout.LayoutParams(size, size);
            //填充上右,为删除按钮让出空间
			fl.setMargins(0, Utils.dip2px(mContext, 8), Utils.dip2px(mContext, 8), 0);
		}
		//不带删除
		else {
			// 如果行数为4,中间间隔3个10dp共30dp
			int size = containerWidth - Utils.dip2px(mContext, 10 * (rowCount -1));
			size = Math.round(size / (float)rowCount);
			fl = new FrameLayout.LayoutParams(size, size);
		}
	}


	public SimpleImageAdapter(ViewGroup container, boolean isDelete, int rowCount) {
		super(container.getContext(), null, R.layout.activity_gradview_item);
        this.containerWidth = container.getMeasuredWidth();
		this.isDelete = isDelete;
        this.rowCount = rowCount;
        initImgSize();
	}

    //更新数据
    public void refreshData(List<String> datas, ImageLoader imageLoader){
        this.imageLoader = imageLoader;
        onDataChange(datas);
    }


	@Override
	public void convert(final ViewHolder holder, final String data) {
		ImageView ivImage = holder.getView(R.id.activity_item_ivImage);
		ivImage.setLayoutParams(fl);

        imageLoader.displayImage(mContext, data, ivImage);

		ivImage.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent(mContext, MultiImgShowActivity.class);
				intent.putStringArrayListExtra("photos", (ArrayList<String>)mDatas);
				intent.putExtra("position", holder.getPostion());
				Activity ac = (Activity) mContext;
				ac.startActivity(intent);
				ac.overridePendingTransition(R.anim.zoom_in, 0);
			}
		});

        //是否带删除
		if (isDelete) {
            ImageView ivDelete = holder.getView(R.id.activity_item_ivDelete);
            ivDelete.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    //移除图片
                    mDatas.remove(data);
                    notifyDataSetChanged();
                }
            });
		}
		else {
            holder.setVisible(R.id.activity_item_ivDelete, View.GONE);
		}
	}


}