package info.papdt.pano.ui.adapter;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.ActivityOptionsCompat;
import android.support.v7.widget.RecyclerView;
import com.squareup.picasso.Picasso;
import java.io.File;
import java.util.List;
import info.papdt.pano.R;
import info.papdt.pano.ui.activities.PictureActivity;
import static info.papdt.pano.ui.util.UiUtility.*;
public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ViewHolder>
{
private LayoutInflater mInflater;
private List<File> mFiles;
private Context mContext;
public ImageAdapter(Context context, List<File> files) {
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mFiles = files;
mContext = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(mInflater.inflate(R.layout.image_card, parent, false));
}
@Override
public void onViewRecycled(ViewHolder holder) {
super.onViewRecycled(holder);
holder.file = null;
}
@Override
public void onBindViewHolder(ViewHolder h, int position) {
File f = mFiles.get(position);
h.file = f;
Picasso.with(mContext)
.load(f)
.fit()
.centerCrop()
.into(h.image);
}
@Override
public int getItemCount() {
return mFiles.size();
}
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
ImageView image;
File file = null;
public ViewHolder(View v) {
super(v);
image = $(v, R.id.image_view);
image.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (file == null) return;
if (v == image) {
Intent i = new Intent(mContext, PictureActivity.class);
i.putExtra(PictureActivity.EXTRA_FILE, file.getAbsolutePath());
if (mContext instanceof Activity) {
ActivityOptionsCompat o = ActivityOptionsCompat.makeSceneTransitionAnimation(
(Activity) mContext, image, PictureActivity.TRANSIT_PIC);
ActivityCompat.startActivity((Activity) mContext, i, o.toBundle());
} else {
mContext.startActivity(i);
}
}
}
}
}