package com.metis.coursepart.adapter.holder; import android.content.Context; import android.content.res.Resources; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.metis.base.manager.DisplayManager; import com.metis.base.module.User; import com.metis.base.widget.adapter.holder.AbsViewHolder; import com.metis.coursepart.ActivityDispatcher; import com.metis.coursepart.R; import com.metis.coursepart.adapter.AlbumAdapter; import com.metis.coursepart.adapter.decoration.VideoItemSmallDecoration; import com.metis.coursepart.adapter.delegate.AlbumSmallDelegate; import com.metis.coursepart.adapter.delegate.AlbumContainerDelegate; import com.metis.coursepart.adapter.delegate.ItemTitleDelegate; import com.metis.coursepart.module.CourseAlbum; import java.util.ArrayList; import java.util.List; /** * Created by Beak on 2015/7/10. */ public class AlbumContainerHolder extends AbsViewHolder<AlbumContainerDelegate> { private static final String TAG = AlbumContainerHolder.class.getSimpleName(); private static final int MARGIN_BOTTOM_IN_DP = 8; private static final int MAX_FOLLOW_ITEM_COUNT = 3; //private static final boolean SHOW_ALL = false; public View itemBigView; public ImageView itemBigThumbIv, itemBigAuthorProfileIv, itemBigMoreBtn; public TextView itemBigTitleTv, itemBigAuthorNameTv, itemBigCountTv; public RecyclerView itemRv; public AlbumContainerHolder(View itemView) { super(itemView); itemBigView = itemView.findViewById(R.id.item_container_big); itemBigThumbIv = (ImageView)itemView.findViewById(R.id.item_big_thumb); itemBigAuthorProfileIv = (ImageView)itemView.findViewById(R.id.item_big_author_profile); itemBigMoreBtn = (ImageView)itemView.findViewById(R.id.item_big_btn_more); itemBigTitleTv = (TextView)itemView.findViewById(R.id.item_big_title); itemBigAuthorNameTv = (TextView)itemView.findViewById(R.id.item_big_author_name); itemBigCountTv = (TextView)itemView.findViewById(R.id.item_big_play_count); itemRv = (RecyclerView)itemView.findViewById(R.id.item_container_recycler_view); itemRv.setLayoutManager(new LinearLayoutManager(itemView.getContext())); itemRv.addItemDecoration(new VideoItemSmallDecoration()); } @Override public void bindData(final Context context, AlbumContainerDelegate videoItemDelegate, RecyclerView.Adapter adapter, int position) { List<CourseAlbum> albumList = videoItemDelegate.getSource(); if (!albumList.isEmpty()) { final CourseAlbum firstOne = albumList.get(0); final User studioInfo = firstOne.studio; DisplayManager.getInstance(context).display(firstOne.coursePic, itemBigThumbIv); itemBigTitleTv.setText(firstOne.title); itemBigCountTv.setText(context.getString(R.string.course_play_count, firstOne.viewCount)); if (studioInfo != null) { DisplayManager.getInstance(context).display(studioInfo.getAvailableAvatar(), itemBigAuthorProfileIv); itemBigAuthorNameTv.setText(studioInfo.name); /*View.OnClickListener listener = new View.OnClickListener() { @Override public void onClick(View v) { com.metis.base.ActivityDispatcher.userActivity(context, studioInfo.userId); } }; itemBigAuthorProfileIv.setOnClickListener(listener); itemBigAuthorNameTv.setOnClickListener(listener);*/ } else { itemBigAuthorNameTv.setText(""); itemBigAuthorProfileIv.setOnClickListener(null); itemBigAuthorNameTv.setOnClickListener(null); } itemBigView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ActivityDispatcher.videoDetailActivity(context, firstOne); } }); List<CourseAlbum> subAlbumList = albumList.subList(1, albumList.size()); if (subAlbumList != null && !subAlbumList.isEmpty()) { AlbumAdapter subAdapter = videoItemDelegate.getSubAdapter(); if (subAdapter == null) { subAdapter = new AlbumAdapter(context); videoItemDelegate.setSubAdapter(subAdapter); } itemRv.setAdapter(subAdapter); List<AlbumSmallDelegate> albumDelegates = new ArrayList<AlbumSmallDelegate>(); final int length = subAlbumList.size(); for (int i = 0; i < length; i++) { albumDelegates.add(new AlbumSmallDelegate(subAlbumList.get(i))); } int rvHeight = videoItemDelegate.getSubRecyclerViewHeight(); if (rvHeight <= 0) { Resources resources = context.getResources(); final int itemHeight = resources.getDimensionPixelSize(R.dimen.video_item_small_height); final int titleHeight = resources.getDimensionPixelSize(R.dimen.video_item_title_height); final int bottom_margin = (int)(resources.getDisplayMetrics().density * MARGIN_BOTTOM_IN_DP); final int maxHeight = MAX_FOLLOW_ITEM_COUNT * itemHeight + titleHeight + bottom_margin; final int measureHeight = length * itemHeight + titleHeight + bottom_margin; rvHeight = Math.min(maxHeight, measureHeight); videoItemDelegate.setSubRecyclerViewHeight(rvHeight); } RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)itemRv.getLayoutParams(); if (params == null) { params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, rvHeight); } else { params.height = rvHeight; } itemRv.setLayoutParams(params); ItemTitleDelegate titleDelegate = new ItemTitleDelegate(firstOne.getChannel()); titleDelegate.setClickable(true); titleDelegate.setFilterId(videoItemDelegate.getFilterId()); subAdapter.addDataItem(titleDelegate); subAdapter.addDataList(albumDelegates); subAdapter.notifyDataSetChanged(); } } } }