package com.swifty.fillcolor.controller.categorylist;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import com.swifty.fillcolor.MyApplication;
import com.swifty.fillcolor.listener.OnUnLockImageSuccessListener;
import com.swifty.fillcolor.R;
import com.swifty.fillcolor.factory.MyDialogFactory;
import com.swifty.fillcolor.factory.SharedPreferencesFactory;
import com.swifty.fillcolor.model.GridViewActivityModel;
import com.swifty.fillcolor.model.OnRecycleViewItemClickListener;
import com.swifty.fillcolor.model.bean.PictureBean;
import com.swifty.fillcolor.util.L;
import java.util.List;
/**
* Created by Swifty on 2015/8/13.
*/
public class GirdRecyclerViewAdapter extends RecyclerView.Adapter<GirdRecyclerViewAdapter.ViewHolder> {
private Context mContext;
private List<PictureBean.Picture> pictureBeans;
private int categoryid;
private boolean isLocal;
public void setOnRecycleViewItemClickListener(OnRecycleViewItemClickListener onRecycleViewItemClickListener) {
this.onRecycleViewItemClickListener = onRecycleViewItemClickListener;
}
private OnRecycleViewItemClickListener onRecycleViewItemClickListener;
public GirdRecyclerViewAdapter(Context context, List<PictureBean.Picture> pictureBeans, int categoryid, boolean isLocal) {
mContext = context;
this.pictureBeans = pictureBeans;
this.isLocal = isLocal;
this.categoryid = categoryid;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(mContext)
.inflate(R.layout.view_gridview_item, parent, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
String url = null;
if (isLocal) {
holder.image.setLayoutParams(new FrameLayout.LayoutParams(MyApplication.getScreenWidth(mContext) / 2, MyApplication.getScreenWidth(mContext) / 2));
url = MyApplication.SECRETGARDENLOCATION + pictureBeans.get(position).getUri();
GridViewActivityModel.getInstance().showGridLocalImageAsyn(holder.image, url);
} else {
if (position < pictureBeans.size() && pictureBeans.get(position).getWvHradio() != 0) {
holder.image.setLayoutParams(new FrameLayout.LayoutParams(MyApplication.getScreenWidth(mContext) / 2, (int) (MyApplication.getScreenWidth(mContext) / 2 / pictureBeans.get(position).getWvHradio())));
holder.enableImage.setLayoutParams(new FrameLayout.LayoutParams(MyApplication.getScreenWidth(mContext) / 2, (int) (MyApplication.getScreenWidth(mContext) / 2 / pictureBeans.get(position).getWvHradio())));
} else {
holder.image.setLayoutParams(new FrameLayout.LayoutParams(MyApplication.getScreenWidth(mContext) / 2, (int) (MyApplication.getScreenWidth(mContext) / 2 / 0.71)));
holder.enableImage.setLayoutParams(new FrameLayout.LayoutParams(MyApplication.getScreenWidth(mContext) / 2, (int) (MyApplication.getScreenWidth(mContext) / 2 / 0.71)));
}
if (position == pictureBeans.size()) {
holder.image.setImageResource(R.mipmap.comingsoon);
holder.enableImage.setVisibility(View.GONE);
holder.image.setEnabled(false);
holder.localtag.setVisibility(View.INVISIBLE);
} else {
holder.localtag.setVisibility(View.VISIBLE);
if (pictureBeans.get(position).getStatus() <= SharedPreferencesFactory.getInteger(mContext, SharedPreferencesFactory.ImageStatus, 0)) {
holder.image.setEnabled(true);
holder.enableImage.setVisibility(View.GONE);
} else {
holder.image.setEnabled(false);
holder.enableImage.setVisibility(View.VISIBLE);
if (pictureBeans.get(position).getStatus() == 1) {
holder.enableImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MyDialogFactory myDialogFactory = new MyDialogFactory(mContext);
myDialogFactory.showUnLockdialog(pictureBeans.get(position).getStatus(), new OnUnLockImageSuccessListener() {
@Override
public void UnlockImageSuccess() {
SharedPreferencesFactory.saveInteger(mContext, SharedPreferencesFactory.ImageStatus, 1);
}
});
}
});
} else if (pictureBeans.get(position).getStatus() == 2) {
holder.enableImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MyDialogFactory myDialogFactory = new MyDialogFactory(mContext);
myDialogFactory.showUnLockdialog(pictureBeans.get(position).getStatus(), new OnUnLockImageSuccessListener() {
@Override
public void UnlockImageSuccess() {
SharedPreferencesFactory.saveInteger(mContext, SharedPreferencesFactory.ImageStatus, 2);
}
});
}
});
} else {
holder.enableImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MyDialogFactory myDialogFactory = new MyDialogFactory(mContext);
myDialogFactory.showPleaseUpdateVersionDialog();
}
});
}
}
url = String.format(MyApplication.ImageThumbUrl, categoryid, pictureBeans.get(position).getId());
L.e(url);
GridViewActivityModel.getInstance().showGridInternetImageAsyn(holder.image, holder.localtag, url);
}
}
holder.image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (onRecycleViewItemClickListener != null)
onRecycleViewItemClickListener.recycleViewItemClickListener(holder.image, position);
}
});
}
@Override
public int getItemCount() {
if (isLocal) {
return pictureBeans.size();
} else {
return pictureBeans.size() + 1;
}
}
static class ViewHolder extends RecyclerView.ViewHolder {
public ImageView image;
public ImageView enableImage;
public ImageView localtag;
public ViewHolder(View itemView) {
super(itemView);
image = (ImageView) itemView.findViewById(R.id.gridImage);
enableImage = (ImageView) itemView.findViewById(R.id.gridenableImage);
localtag = (ImageView) itemView.findViewById(R.id.localtag);
}
}
}