package com.zcy.ghost.vivideo.ui.view; import android.content.Context; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.GridLayoutManager; import android.text.TextUtils; import android.util.AttributeSet; import android.view.View; 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.VideoRes; import com.zcy.ghost.vivideo.presenter.contract.ClassificationContract; import com.zcy.ghost.vivideo.ui.adapter.ClassificationAdapter; 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.utils.StringUtils; import com.zcy.ghost.vivideo.widget.theme.ColorTextView; import java.util.ArrayList; import java.util.List; import butterknife.BindView; /** * Description: 专题 * Creator: yxc * date: 2016/9/21 17:55 */ public class ClassificationView extends RootView<ClassificationContract.Presenter> implements ClassificationContract.View, SwipeRefreshLayout.OnRefreshListener { @BindView(R.id.title_name) ColorTextView titleName; @BindView(R.id.recyclerView) EasyRecyclerView recyclerView; ClassificationAdapter adapter; public ClassificationView(Context context) { super(context); } public ClassificationView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void getLayout() { inflate(mContext, R.layout.fragment_classification_view, this); } @Override protected void initView() { titleName.setText("专题"); recyclerView.setAdapterWithProgress(adapter = new ClassificationAdapter(getContext())); recyclerView.setLayoutManager(new GridLayoutManager(getContext(), 2)); recyclerView.setErrorView(R.layout.view_error); SpaceDecoration itemDecoration = new SpaceDecoration(ScreenUtil.dip2px(getContext(), 8)); itemDecoration.setPaddingEdgeSide(true); itemDecoration.setPaddingStart(true); itemDecoration.setPaddingHeaderFooter(false); recyclerView.addItemDecoration(itemDecoration); } @Override protected void initEvent() { recyclerView.setRefreshListener(this); adapter.setOnItemClickListener(new RecyclerArrayAdapter.OnItemClickListener() { @Override public void onItemClick(int position) { JumpUtil.go2VideoListActivity(mContext, StringUtils.getCatalogId(adapter.getItem(position).moreURL), adapter.getItem(position).title); } }); recyclerView.getErrorView().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { recyclerView.showProgress(); onRefresh(); } }); } @Override public boolean isActive() { return mActive; } @Override public void setPresenter(ClassificationContract.Presenter presenter) { mPresenter = Preconditions.checkNotNull(presenter); } @Override public void showError(String msg) { EventUtil.showToast(mContext, msg); } @Override public void showContent(final VideoRes videoRes) { if (videoRes != null) { adapter.clear(); List<VideoInfo> videoInfos = new ArrayList<>(); for (int i = 1; i < videoRes.list.size(); i++) { if (!TextUtils.isEmpty(videoRes.list.get(i).moreURL) && !TextUtils.isEmpty(videoRes.list.get(i).title)) { VideoInfo videoInfo = videoRes.list.get(i).childList.get(0); videoInfo.title = videoRes.list.get(i).title; videoInfo.moreURL = videoRes.list.get(i).moreURL; videoInfos.add(videoInfo); } } adapter.addAll(videoInfos); } } @Override public void refreshFaild(String msg) { if (!TextUtils.isEmpty(msg)) showError(msg); recyclerView.showError(); } @Override public void onRefresh() { mPresenter.onRefresh(); } }