package com.zcy.ghost.vivideo.ui.view;
import android.content.Context;
import android.support.v7.widget.GridLayoutManager;
import android.util.AttributeSet;
import android.view.View;
import android.widget.RelativeLayout;
import com.jude.easyrecyclerview.EasyRecyclerView;
import com.jude.easyrecyclerview.adapter.RecyclerArrayAdapter;
import com.jude.easyrecyclerview.decoration.SpaceDecoration;
import com.zcy.ghost.vivideo.R;
import com.zcy.ghost.vivideo.base.RootView;
import com.zcy.ghost.vivideo.model.bean.VideoInfo;
import com.zcy.ghost.vivideo.model.bean.VideoType;
import com.zcy.ghost.vivideo.presenter.VideoInfoPresenter;
import com.zcy.ghost.vivideo.presenter.contract.CollectionContract;
import com.zcy.ghost.vivideo.ui.activitys.CollectionActivity;
import com.zcy.ghost.vivideo.ui.activitys.HistoryActivity;
import com.zcy.ghost.vivideo.ui.adapter.VideoListAdapter;
import com.zcy.ghost.vivideo.utils.BeanUtil;
import com.zcy.ghost.vivideo.utils.EventUtil;
import com.zcy.ghost.vivideo.utils.JumpUtil;
import com.zcy.ghost.vivideo.utils.Preconditions;
import com.zcy.ghost.vivideo.utils.ScreenUtil;
import com.zcy.ghost.vivideo.widget.theme.ColorTextView;
import org.simple.eventbus.EventBus;
import org.simple.eventbus.Subscriber;
import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
/**
* Description: 收藏
* Creator: yxc
* date: 2016/9/29 12:16
*/
public class CollectionView extends RootView<CollectionContract.Presenter> implements CollectionContract.View {
@BindView(R.id.rl_collect_clear)
RelativeLayout rlCollectClear;
@BindView(R.id.rl_back)
RelativeLayout rlBack;
@BindView(R.id.title_name)
ColorTextView titleName;
@BindView(R.id.recyclerView)
EasyRecyclerView mRecyclerView;
VideoListAdapter mAdapter;
VideoInfo videoInfo;
public CollectionView(Context context) {
super(context);
}
public CollectionView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void getLayout() {
inflate(mContext, R.layout.activity_collection_view, this);
}
@Override
protected void initView() {
setTitle();
rlCollectClear.setVisibility(View.VISIBLE);
mRecyclerView.setAdapterWithProgress(mAdapter = new VideoListAdapter(mContext));
GridLayoutManager gridLayoutManager = new GridLayoutManager(mContext, 3);
gridLayoutManager.setSpanSizeLookup(mAdapter.obtainGridSpanSizeLookUp(3));
mRecyclerView.setLayoutManager(gridLayoutManager);
SpaceDecoration itemDecoration = new SpaceDecoration(ScreenUtil.dip2px(mContext, 8));
itemDecoration.setPaddingEdgeSide(true);
itemDecoration.setPaddingStart(true);
itemDecoration.setPaddingHeaderFooter(false);
mRecyclerView.addItemDecoration(itemDecoration);
}
@Override
protected void initEvent() {
mAdapter.setOnItemClickListener(new RecyclerArrayAdapter.OnItemClickListener() {
@Override
public void onItemClick(int position) {
videoInfo = BeanUtil.VideoType2VideoInfo(mAdapter.getItem(position), videoInfo);
JumpUtil.go2VideoInfoActivity(getContext(), videoInfo);
}
});
}
@Override
public void setPresenter(CollectionContract.Presenter presenter) {
mPresenter = Preconditions.checkNotNull(presenter);
}
@Override
public void showError(String msg) {
EventUtil.showToast(mContext, msg);
}
@Override
public boolean isActive() {
return mActive;
}
@Override
public void showContent(List<VideoType> list) {
mAdapter.clear();
mAdapter.addAll(list);
}
@OnClick({R.id.rl_back, R.id.rl_collect_clear})
public void onClick(View view) {
switch (view.getId()) {
case R.id.rl_back:
if (mContext instanceof CollectionActivity) {
((CollectionActivity) mContext).finish();
} else if (mContext instanceof HistoryActivity) {
((HistoryActivity) mContext).finish();
}
break;
case R.id.rl_collect_clear:
mAdapter.clear();
mPresenter.delAllDatas();
break;
}
}
private void setTitle() {
if (mContext instanceof CollectionActivity) {
titleName.setText("收藏");
} else if (mContext instanceof HistoryActivity) {
titleName.setText("历史");
}
}
@Subscriber(tag = VideoInfoPresenter.Refresh_Collection_List)
public void setData(String tag) {
mPresenter.getCollectData();
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
EventBus.getDefault().register(this);
}
@Override
protected void onDetachedFromWindow() {
EventBus.getDefault().unregister(this);
super.onDetachedFromWindow();
}
}