package com.dl7.mvp.module.base;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.dl7.mvp.R;
import com.dl7.mvp.adapter.BaseVideoDLAdapter;
import com.dl7.mvp.module.manage.download.DownloadActivity;
import com.dl7.recycler.adapter.BaseViewHolder;
import com.dl7.recycler.listener.OnRecyclerViewItemLongClickListener;
import javax.inject.Inject;
import butterknife.BindView;
/**
* Created by long on 2016/12/20.
* video下载的基类Fragment
*/
public abstract class BaseVideoDLFragment<T extends IBasePresenter> extends BaseFragment<T> {
@BindView(R.id.rv_video_list)
protected RecyclerView mRvVideoList;
@Inject
protected BaseVideoDLAdapter mAdapter;
private int mEditLayoutHeight;
/**
* 初始化长按点击,必须在 initViews() 里调用
*/
public void initItemLongClick() {
mEditLayoutHeight = getResources().getDimensionPixelSize(R.dimen.edit_layout_height);
mAdapter.setOnItemLongClickListener(new OnRecyclerViewItemLongClickListener() {
@Override
public boolean onItemLongClick(View view, int position) {
if (!mAdapter.isEditMode()) {
mAdapter.setEditMode(true);
((DownloadActivity) getActivity()).enableEditMode(true);
// 增加 padding 是防止底下被删除按钮遮住
mRvVideoList.setPadding(0, 0, 0, mEditLayoutHeight);
}
// 这里获取对应position对应的ViewHolder,需要借助RecyclerView,还有个更简便的做法是自定义的点击事件把ViewHolder一起传过来
BaseViewHolder viewHolder = (BaseViewHolder) mRvVideoList.getChildViewHolder(view);
if (viewHolder != null) {
mAdapter.toggleItemChecked(position, viewHolder);
}
return true;
}
});
}
/**
* 处理后退键
*
* @return
*/
public boolean exitEditMode() {
if (mAdapter.isEditMode()) {
mAdapter.setEditMode(false);
mRvVideoList.setPadding(0, 0, 0, 0);
return true;
}
return false;
}
/**
* 是否存于编辑模式
* @return
*/
public boolean isEditMode() {
return mAdapter.isEditMode();
}
/**
* 全选或取消全选
* @param isChecked
*/
public void checkAllOrNone(boolean isChecked) {
mAdapter.checkAllOrNone(isChecked);
}
/**
* 删除选中
*/
public void deleteChecked() {
mAdapter.deleteItemChecked();
}
}