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.adapter.KlyphAdapter;
import com.abewy.android.apps.klyph.adapter.holder.PhotoListHolder;
import com.abewy.android.apps.klyph.core.KlyphDevice;
import com.abewy.android.apps.klyph.core.fql.Photo;
import com.abewy.android.apps.klyph.core.fql.Photo.Image;
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 PhotoListAdapter extends KlyphAdapter
{
private int placeHolder = -1;
public PhotoListAdapter()
{
super();
}
@Override
protected int getLayout()
{
return R.layout.item_photo_list;
}
@Override
protected void attachHolder(View view)
{
view.setTag(new PhotoListHolder((ImageView) view.findViewById(R.id.photo), (TextView) view.findViewById(R.id.photo_name)));
}
@Override
protected void mergeViewWithData(View view, GraphObject data)
{
super.mergeViewWithData(view, data);
PhotoListHolder holder = (PhotoListHolder) view.getTag();
//holder.getPhoto().setImageDrawable(null);
Photo photo = (Photo) data;
Collections.sort(photo.getImages(), new Comparator<Image>() {
@Override
public int compare(Image lhs, Image rhs)
{
if (lhs.getWidth() > rhs.getWidth())
return 1;
else if (lhs.getWidth() < rhs.getWidth())
return -1;
return 0;
}
});
int columnWidth = (int) KlyphDevice.getDeviceWidth() / view.getContext().getResources().getInteger(R.integer.klyph_grid_album_photos_num_column);
Image selectedImage = photo.getImages().get(0);
for (Image image : photo.getImages())
{
if (image.getWidth() > columnWidth)
{
selectedImage = image;
break;
}
}
if (placeHolder == -1)
placeHolder = AttrUtil.getResourceId(getContext(holder.getName()), R.attr.squarePlaceHolderIcon);
loadImage(holder.getPhoto(), selectedImage.getSource(), placeHolder, data);
if (photo.getCaption().length() == 0)
{
holder.getName().setVisibility(View.GONE);
}
else
{
holder.getName().setText(photo.getCaption());
holder.getName().setVisibility(View.VISIBLE);
}
}
@Override
public void setLayoutParams(View view)
{
int width = (int) KlyphDevice.getDeviceWidth() / view.getContext().getResources().getInteger(R.integer.klyph_grid_album_photos_num_column);
LayoutParams lp = view.getLayoutParams();
lp.height = lp.width = width;
view.setLayoutParams(lp);
}
}