package com.dl7.mvp.module.manage.love.video;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Handler;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.TextView;
import com.dl7.mvp.R;
import com.dl7.mvp.injector.components.DaggerLoveVideoComponent;
import com.dl7.mvp.injector.modules.LoveVideoModule;
import com.dl7.mvp.local.table.VideoInfo;
import com.dl7.mvp.module.base.BaseFragment;
import com.dl7.mvp.module.base.ILocalPresenter;
import com.dl7.mvp.module.base.ILocalView;
import com.dl7.mvp.module.video.player.VideoPlayerActivity;
import com.dl7.mvp.utils.CommonConstant;
import com.dl7.mvp.utils.DialogHelper;
import com.dl7.recycler.adapter.BaseQuickAdapter;
import com.dl7.recycler.helper.RecyclerViewHelper;
import com.dl7.recycler.listener.OnRecyclerViewItemClickListener;
import com.dl7.recycler.listener.OnRecyclerViewItemLongClickListener;
import java.util.List;
import javax.inject.Inject;
import butterknife.BindView;
import jp.wasabeef.recyclerview.adapters.SlideInRightAnimationAdapter;
import jp.wasabeef.recyclerview.animators.SlideInLeftAnimator;
import static android.app.Activity.RESULT_OK;
/**
* Created by long on 2016/12/13.
* Video收藏界面
*/
public class LoveVideoFragment extends BaseFragment<ILocalPresenter> implements ILocalView<VideoInfo> {
@BindView(R.id.rv_love_list)
RecyclerView mRvVideoList;
@BindView(R.id.default_bg)
TextView mDefaultBg;
@Inject
BaseQuickAdapter mAdapter;
private int mCurIndex;
@Override
protected int attachLayoutRes() {
return R.layout.fragment_love_list;
}
@Override
protected void initInjector() {
DaggerLoveVideoComponent.builder()
.applicationComponent(getAppComponent())
.loveVideoModule(new LoveVideoModule(this))
.build()
.inject(this);
}
@Override
protected void initViews() {
SlideInRightAnimationAdapter slideAdapter = new SlideInRightAnimationAdapter(mAdapter);
RecyclerViewHelper.initRecyclerViewV(mContext, mRvVideoList, slideAdapter);
mRvVideoList.setItemAnimator(new SlideInLeftAnimator());
mAdapter.setOnItemClickListener(new OnRecyclerViewItemClickListener() {
@Override
public void onItemClick(View view, int position) {
mCurIndex = position;
VideoPlayerActivity.launchForResult(LoveVideoFragment.this, (VideoInfo) mAdapter.getItem(position));
}
});
mAdapter.setOnItemLongClickListener(new OnRecyclerViewItemLongClickListener() {
@Override
public boolean onItemLongClick(View view, final int position) {
DialogHelper.deleteDialog(mContext, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mPresenter.delete(mAdapter.getItem(position));
mAdapter.removeItem(position);
}
});
return true;
}
});
}
@Override
protected void updateViews(boolean isRefresh) {
mPresenter.getData(isRefresh);
}
@Override
public void loadData(List<VideoInfo> photoList) {
if (mDefaultBg.getVisibility() == View.VISIBLE) {
mDefaultBg.setVisibility(View.GONE);
}
mAdapter.updateItems(photoList);
}
@Override
public void noData() {
mDefaultBg.setVisibility(View.VISIBLE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CommonConstant.VIDEO_REQUEST_CODE && resultCode == RESULT_OK) {
final boolean isCollect = data.getBooleanExtra(CommonConstant.RESULT_KEY, true);
// 延迟 500MS 做删除操作,不然退回来看不到动画效果
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (!isCollect) {
mAdapter.removeItem(mCurIndex);
}
}
}, 500);
}
}
}