package com.dl7.mvp.module.video.list;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import com.dl7.mvp.R;
import com.dl7.mvp.adapter.SlideInBottomAdapter;
import com.dl7.mvp.injector.components.DaggerVideoListComponent;
import com.dl7.mvp.injector.modules.VideoListModule;
import com.dl7.mvp.local.table.VideoInfo;
import com.dl7.mvp.module.base.BaseFragment;
import com.dl7.mvp.module.base.IBasePresenter;
import com.dl7.mvp.module.base.ILoadDataView;
import com.dl7.recycler.adapter.BaseQuickAdapter;
import com.dl7.recycler.helper.RecyclerViewHelper;
import com.dl7.recycler.listener.OnRequestDataListener;
import java.util.List;
import javax.inject.Inject;
import butterknife.BindView;
/**
* Created by long on 2016/10/11.
*/
public class VideoListFragment extends BaseFragment<IBasePresenter> implements ILoadDataView<List<VideoInfo>> {
private static final String VIDEO_ID_KEY = "VideoIdKey";
@BindView(R.id.rv_photo_list)
RecyclerView mRvPhotoList;
@Inject
BaseQuickAdapter mAdapter;
private String mVideoId;
public static VideoListFragment newInstance(String videoId) {
VideoListFragment fragment = new VideoListFragment();
Bundle bundle = new Bundle();
bundle.putString(VIDEO_ID_KEY, videoId);
fragment.setArguments(bundle);
return fragment;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mVideoId = getArguments().getString(VIDEO_ID_KEY);
}
}
@Override
protected int attachLayoutRes() {
return R.layout.fragment_photo_list;
}
@Override
protected void initInjector() {
DaggerVideoListComponent.builder()
.applicationComponent(getAppComponent())
.videoListModule(new VideoListModule(this, mVideoId))
.build()
.inject(this);
}
@Override
protected void initViews() {
SlideInBottomAdapter slideAdapter = new SlideInBottomAdapter(mAdapter);
RecyclerViewHelper.initRecyclerViewV(mContext, mRvPhotoList, slideAdapter);
mAdapter.setRequestDataListener(new OnRequestDataListener() {
@Override
public void onLoadMore() {
mPresenter.getMoreData();
}
});
}
@Override
protected void updateViews(boolean isRefresh) {
mPresenter.getData(isRefresh);
}
@Override
public void loadData(List<VideoInfo> videoList) {
mAdapter.updateItems(videoList);
for (VideoInfo bean : videoList) {
Log.e("VideoListFragment", bean.toString());
}
}
@Override
public void loadMoreData(List<VideoInfo> photoList) {
mAdapter.loadComplete();
mAdapter.addItems(photoList);
}
@Override
public void loadNoData() {
mAdapter.loadAbnormal();
}
}