package com.abewy.android.apps.klyph.adapter.fql; import java.util.Collections; import java.util.Comparator; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; import android.widget.TextView; import com.abewy.android.apps.klyph.Klyph; import com.abewy.android.apps.klyph.adapter.KlyphAdapter; import com.abewy.android.apps.klyph.adapter.holder.VideoHolder; import com.abewy.android.apps.klyph.core.fql.Video; import com.abewy.android.apps.klyph.core.fql.Video.Format; import com.abewy.android.apps.klyph.core.graph.GraphObject; import com.abewy.android.apps.klyph.core.util.AttrUtil; import com.abewy.android.apps.klyph.R; public class VideoAdapter extends KlyphAdapter { private int columnWidth; private int placeHolder = -1; public VideoAdapter() { super(); columnWidth = Klyph.getGridColumnWidth(); } @Override protected int getLayout() { return R.layout.item_video; } @Override protected void attachHolder(View view) { view.setTag(new VideoHolder((ImageView) view.findViewById(R.id.video_picture), (TextView) view .findViewById(R.id.video_name))); } @Override protected void mergeViewWithData(View view, GraphObject data) { VideoHolder holder = (VideoHolder) view.getTag(); //holder.getPhoto().setImageDrawable(null); Video video = (Video) data; Collections.sort(video.getFormat(), new Comparator<Format>() { @Override public int compare(Format lhs, Format rhs) { if (lhs.getWidth() > rhs.getWidth()) return 1; else if (lhs.getWidth() < rhs.getWidth()) return -1; return 0; } }); Format selectedFormat = video.getFormat().get(0); for (Format format : video.getFormat()) { if (format.getWidth() > columnWidth) { selectedFormat = format; break; } } if (placeHolder == -1) placeHolder = AttrUtil.getResourceId(getContext(holder.getName()), R.attr.squarePlaceHolderIcon); loadImage(holder.getPhoto(), selectedFormat.getPicture(), placeHolder, data); if (video.getTitle().length() == 0) { holder.getName().setVisibility(View.GONE); } else { holder.getName().setText(video.getTitle()); holder.getName().setVisibility(View.VISIBLE); } } @Override public void setLayoutParams(View view) { LayoutParams lp = view.getLayoutParams(); lp.height = columnWidth; view.setLayoutParams(lp); } }