package com.marshalchen.ultimaterecyclerview.demo.rvComponents;
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.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.marshalchen.ultimaterecyclerview.SwipeableUltimateViewAdapter;
import com.marshalchen.ultimaterecyclerview.URLogs;
import com.marshalchen.ultimaterecyclerview.UltimateRecyclerviewViewHolder;
import com.marshalchen.ultimaterecyclerview.demo.R;
import com.marshalchen.ultimaterecyclerview.swipe.SwipeLayout;
import java.util.List;
public class SwipeAdapter extends SwipeableUltimateViewAdapter<String> {
public SwipeAdapter(List<String> mData) {
super(mData);
}
@Override
protected void withBindHolder(UltimateRecyclerviewViewHolder holder, String data, int position) {
super.withBindHolder(holder, data, position);
((SVHolder) holder).textView.setText(data);
}
/**
* the layout id for the normal data
*
* @return the ID
*/
@Override
protected int getNormalLayoutResId() {
return SVHolder.layout;
}
/**
* this is the Normal View Holder initiation
*
* @param view view
* @return holder
*/
@Override
protected UltimateRecyclerviewViewHolder newViewHolder(final View view) {
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
URLogs.d("click");
}
});
final SVHolder viewHolder = new SVHolder(view, true);
viewHolder.swipeLayout.setOnDoubleClickListener(new SwipeLayout.DoubleClickListener() {
@Override
public void onDoubleClick(SwipeLayout layout, boolean surface) {
Toast.makeText(view.getContext(), "DoubleClick", Toast.LENGTH_SHORT).show();
}
});
viewHolder.deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
removeAt(viewHolder.getPosition());
Toast.makeText(view.getContext(), "Deleted " + viewHolder.getPosition(), Toast.LENGTH_SHORT).show();
}
});
return viewHolder;
}
@Override
public SVHolder newFooterHolder(View view) {
return new SVHolder(view, false);
}
@Override
public SVHolder newHeaderHolder(View view) {
return new SVHolder(view, false);
}
@Override
public long generateHeaderId(int position) {
return 0;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
protected void removeNotifyExternal(int pos) {
closeItem(pos);
}
public static class SVHolder extends UltimateRecyclerviewViewHolder {
public static final int layout = R.layout.item_swipeable;
public TextView textView;
public Button deleteButton;
public SwipeLayout swipeLayout;
public SVHolder(View itemView, boolean bind) {
super(itemView);
if (bind) {
textView = (TextView) itemView.findViewById(R.id.position);
deleteButton = (Button) itemView.findViewById(R.id.delete);
swipeLayout = (SwipeLayout) itemView.findViewById(R.id.recyclerview_swipe);
swipeLayout.setDragEdge(SwipeLayout.DragEdge.Right);
swipeLayout.setShowMode(SwipeLayout.ShowMode.PullOut);
}
}
}
}