package com.dl7.mvp.module.manage.download.cache;
import android.view.View;
import android.widget.TextView;
import com.dl7.downloaderlib.entity.FileInfo;
import com.dl7.mvp.R;
import com.dl7.mvp.injector.components.DaggerVideoCacheComponent;
import com.dl7.mvp.injector.modules.VideoCacheModule;
import com.dl7.mvp.local.table.VideoInfo;
import com.dl7.mvp.module.base.BaseVideoDLFragment;
import com.dl7.mvp.module.base.ILocalView;
import com.dl7.mvp.module.base.IRxBusPresenter;
import com.dl7.mvp.module.manage.download.DownloadActivity;
import com.dl7.recycler.helper.RecyclerViewHelper;
import com.dl7.recycler.listener.OnRemoveDataListener;
import java.util.List;
import butterknife.BindView;
import jp.wasabeef.recyclerview.animators.SlideInLeftAnimator;
import rx.functions.Action1;
/**
* Created by long on 2016/12/15.
* video缓存列表
*/
public class VideoCacheFragment extends BaseVideoDLFragment<IRxBusPresenter> implements ILocalView<VideoInfo> {
@BindView(R.id.default_bg)
TextView mDefaultBg;
@Override
protected int attachLayoutRes() {
return R.layout.fragment_download;
}
@Override
protected void initInjector() {
DaggerVideoCacheComponent.builder()
.applicationComponent(getAppComponent())
.videoCacheModule(new VideoCacheModule(this))
.build()
.inject(this);
}
@Override
protected void initViews() {
RecyclerViewHelper.initRecyclerViewV(mContext, mRvVideoList, mAdapter);
mRvVideoList.setItemAnimator(new SlideInLeftAnimator());
mAdapter.setRemoveDataListener(new OnRemoveDataListener() {
@Override
public void onRemove(int position) {
if (mAdapter.getItemCount() <= 1 && mDefaultBg.getVisibility() == View.GONE) {
mDefaultBg.setVisibility(View.VISIBLE);
((DownloadActivity)getActivity()).enableEditMode(false);
}
}
});
initItemLongClick();
mPresenter.registerRxBus(FileInfo.class, new Action1<FileInfo>() {
@Override
public void call(FileInfo fileInfo) {
mAdapter.updateDownload(fileInfo);
}
});
}
@Override
protected void updateViews(boolean isRefresh) {
mPresenter.getData(isRefresh);
}
@Override
public void loadData(List<VideoInfo> dataList) {
if (mDefaultBg.getVisibility() == View.VISIBLE) {
mDefaultBg.setVisibility(View.GONE);
}
mAdapter.updateItems(dataList);
}
@Override
public void noData() {
mDefaultBg.setVisibility(View.VISIBLE);
}
@Override
public void onDestroy() {
super.onDestroy();
mPresenter.unregisterRxBus();
}
}