package com.android.yzd.memo.mvp.ui.adapter; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.DecelerateInterpolator; import com.android.yzd.memo.R; import com.android.yzd.memo.mvp.model.bean.God; import com.android.yzd.memo.mvp.model.Constants; import com.android.yzd.memo.mvp.ui.adapter.viewholder.IndexViewHolder; import com.android.yzd.memo.utils.SPUtils; import com.android.yzd.memo.utils.TimeUtils; import com.android.yzd.memo.utils.Utils; import java.util.ArrayList; import java.util.List; /** * Created by yezhidong on 2016/1/15. */ public class IndexViewAdapter extends RecyclerView.Adapter<IndexViewHolder> { private final Context mContext; private List<God> mGodList = new ArrayList<>(); private OnRecyclerItemClickListener listener; private boolean isOpen; private int lastAnimatedPosition = -1; public IndexViewAdapter(Context context, ArrayList<God> godArrayList) { mContext = context; if (godArrayList != null) { mGodList.addAll(godArrayList); } } @Override public IndexViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(mContext).inflate(R.layout.main_password_item, parent, false); return new IndexViewHolder(view); } @Override public void onBindViewHolder(IndexViewHolder holder, int position) { runEnterAnimation(holder.itemView, position); holder.setLabelText(mGodList.get(position).getTitle()); holder.setContentText(mGodList.get(position).getUserName()); if (isOpen) { holder.setPassWordTextView(mGodList.get(position).getPassWord()); } else { holder.setPassWordTextView("*********"); } String memoInfo = mGodList.get(position).getMemoInfo(); if (!memoInfo.equals("")) { holder.setMemoInfoContentVisibility(true); holder.setMemoInfo(mGodList.get(position).getMemoInfo()); } else { holder.setMemoInfoContentVisibility(false); } int godType = mGodList.get(position).getGodType(); switch (godType) { case 0: holder.setMoRen(mContext); break; case 1: holder.setYouXiang(mContext); break; case 2: holder.setCard(mContext); break; } holder.setTimeText(TimeUtils.getConciseTime((mGodList.get(position).getTime()), mContext)); holder.setOnRippleClickListener(new IndexViewHolder.OnRippleClick() { @Override public void onRippleClick(View view) { if (listener != null) { listener.onRecyclerItemClick(view, position); } } }); } @Override public int getItemCount() { isOpen = (boolean) SPUtils.get(mContext, Constants.SETTING.OPEN_PASS_WORD_SHOW, true); return mGodList == null ? 0 : mGodList.size(); } public void addOneTop(God god) { mGodList.add(0, god); } public void addAll(ArrayList<God> godArrayList) { mGodList.clear(); mGodList.addAll(godArrayList); } public void clearData() { mGodList.clear(); } public void setOnRecyclerItemClick(OnRecyclerItemClickListener onItemClickListener){ listener = onItemClickListener; } public interface OnRecyclerItemClickListener { void onRecyclerItemClick(View view, int position); } private void runEnterAnimation(View view, int position) { if (position > lastAnimatedPosition) { lastAnimatedPosition = position; view.setTranslationY(Utils.getScreenHeight(mContext)); view.animate() .translationY(0) .setInterpolator(new DecelerateInterpolator(3.f)) .setDuration(1500) .start(); } } }