package com.anarchy.classify.adapter;
import android.app.Dialog;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.VelocityTracker;
import android.view.View;
import com.anarchy.classify.ClassifyView;
import com.anarchy.classify.callback.SubRecyclerViewCallBack;
import java.util.List;
/**
* Version 1.0
*
* Date: 16/6/1 15:34
* Author: rsshinide38@163.com
*
*/
public abstract class BaseSubAdapter extends RecyclerView.Adapter implements SubRecyclerViewCallBack {
private final static int VELOCITY = 1;
@Override
public boolean canDragOnLongPress(int position, View pressedView) {
return true;
}
private int mSelectedPosition = SELECT_UNKNOWN;
@Override
public void setDragPosition(int position,boolean shouldNotify) {
if(position >= getItemCount()||position<-1) return;
if(position == -1 && mSelectedPosition != -1){
// int oldPosition = mSelectedPosition;
mSelectedPosition = position;
if(shouldNotify) notifyDataSetChanged();
// notifyItemChanged(oldPosition);
}else {
mSelectedPosition = position;
if(shouldNotify) notifyItemChanged(mSelectedPosition);
}
}
@Override
public void initData(int parentIndex, List data) {
prepareExplodeItem(parentIndex);
}
@Override
public void prepareExplodeItem(int parentPosition) {
}
@Override
public void onDialogShow(Dialog subDialog, int parentPosition) {
}
@Override
public void onDialogCancel(Dialog subDialog, int parentPosition) {
}
@SuppressWarnings("unchecked")
@Override
public void onDragStart(RecyclerView recyclerView, int position) {
VH selectedViewHolder = (VH) recyclerView.findViewHolderForAdapterPosition(position);
if(selectedViewHolder == null) return;
onDragStart(selectedViewHolder,position);
}
@SuppressWarnings("unchecked")
@Override
public void onDragAnimationEnd(RecyclerView recyclerView, int position) {
VH selectedViewHolder = (VH) recyclerView.findViewHolderForAdapterPosition(position);
if(selectedViewHolder == null) return;
onDragAnimationEnd(selectedViewHolder,position);
}
public void onDragStart(VH selectedViewHolder,int selectedPosition){
}
public void onDragAnimationEnd(VH selectedViewHolder,int selectedPosition){
}
@Override
public int getDragPosition() {
return mSelectedPosition;
}
@Override
public void onBindViewHolder(VH holder, int position, List