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.AlbumHolder;
import com.abewy.android.apps.klyph.core.KlyphDevice;
import com.abewy.android.apps.klyph.core.fql.Album;
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 AlbumAdapter extends KlyphAdapter
{
public AlbumAdapter()
{
super();
}
@Override
protected int getLayout()
{
return R.layout.item_album;
}
@Override
protected void attachHolder(View view)
{
ImageView albumCover = (ImageView) view.findViewById(R.id.album_cover);
TextView albumName = (TextView) view.findViewById(R.id.album_name);
TextView numPhoto = (TextView) view.findViewById(R.id.album_num_photo);
TextView numVideo = (TextView) view.findViewById(R.id.album_num_video);
ImageView photoIcon = (ImageView) view.findViewById(R.id.album_photo_icon);
ImageView videoIcon = (ImageView) view.findViewById(R.id.album_video_icon);
view.setTag(new AlbumHolder(albumCover, albumName, numPhoto, numVideo, photoIcon, videoIcon));
}
@Override
protected void mergeViewWithData(View view, GraphObject data)
{
super.mergeViewWithData(view, data);
AlbumHolder holder = (AlbumHolder) view.getTag();
Album album = (Album) data;
if (album.getIs_video_album() == true)
album.setName(getContext(holder.getAlbumName()).getString(R.string.video_album_name));
holder.getAlbumName().setText(album.getName());
holder.getNumPhoto().setVisibility(album.getPhoto_count() > 0 ? View.VISIBLE : View.GONE);
holder.getPhotoIcon().setVisibility(album.getPhoto_count() > 0 ? View.VISIBLE : View.GONE);
holder.getNumVideo().setVisibility(album.getVideo_count() > 0 ? View.VISIBLE : View.GONE);
holder.getVideoIcon().setVisibility(album.getVideo_count() > 0 ? View.VISIBLE : View.GONE);
holder.getNumPhoto().setText(album.getPhoto_count() + "");
holder.getNumVideo().setText(album.getVideo_count() + "");
/*
* String url = "https://graph.facebook.com/" +
* album.getCover_object_id() + "/picture?type=normal&access_token=" +
* Session.getActiveSession().getAccessToken();
* loadImage(holder.getAlbumCover(), url);
*/
Collections.sort(album.getCover_images(), 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 cellWidth = getCellWidth(view);
if (album.getCover_images().size() > 0)
{
Image selectedImage = null;
for (Image image : album.getCover_images())
{
selectedImage = image;
if (image.getWidth() > cellWidth)
{
break;
}
}
int placeHolder = AttrUtil.getResourceId(holder.getAlbumCover().getContext(), R.attr.squarePlaceHolderIcon);
loadImage(holder.getAlbumCover(), selectedImage.getSource(), placeHolder, data);
}
}
@Override
public void setLayoutParams(View view)
{
int cellWidth = getCellWidth(view);
LayoutParams lp = view.getLayoutParams();
lp.height = (int) cellWidth / 2;
view.setLayoutParams(lp);
// int padding = (int) getContext(view).getResources().getDimension(R.dimen.ckoobafe_list_padding) / 2;
// view.setPadding(view.getPaddingLeft(), padding, view.getPaddingRight(), padding);
}
private int getCellWidth(View view)
{
int w = (int) (KlyphDevice.getDeviceWidth() - view.getContext().getResources().getDimension(R.dimen.klyph_grid_padding_left_right)
* view.getContext().getResources().getInteger(R.integer.klyph_grid_album_num_column));
w /= view.getContext().getResources().getInteger(R.integer.klyph_grid_album_num_column);
return w;
}
}