package com.meg7.soas.ui.adapter;
import android.content.Context;
import android.content.res.Configuration;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.meg7.soas.R;
import com.meg7.soas.data.Photo;
import com.meg7.soas.ui.view.PhotoView;
import java.util.List;
public class PhotosAdapter extends BaseEndlessAdapter<Photo> {
private final int mOrientation;
private static class ViewHolder {
public PhotoView photo;
public TextView owner;
public TextView uploadDate;
}
public PhotosAdapter(Context context, List<Photo> list, int serverListSize) {
super(context, list, serverListSize);
mOrientation = context.getResources().getConfiguration().orientation;
}
@Override
public View getDataRow(int position, View convertView, ViewGroup parent) {
View view = convertView;
// Reuse views.
if (view == null) {
view = mInflater.inflate(R.layout.list_item_photo, parent, false);
// Configure view holder.
ViewHolder viewHolder = new ViewHolder();
viewHolder.photo = (PhotoView) view.findViewById(R.id.photo);
viewHolder.photo.setDefaultImageResId(R.drawable.default_rounded_photo);
viewHolder.owner = (TextView) view.findViewById(R.id.photoOwner);
viewHolder.uploadDate = (TextView) view.findViewById(R.id.photoUploadDate);
if (mOrientation == Configuration.ORIENTATION_LANDSCAPE) {
viewHolder.photo.hideName();
view.findViewById(R.id.photoDetailsContainer).setVisibility(View.GONE);
}
view.setTag(viewHolder);
}
Photo item = getItem(position);
// Fill data.
ViewHolder holder = (ViewHolder) view.getTag();
holder.photo.resetColors();
holder.photo.setImageUrl(item.photoFileUrl, mImageLoader);
holder.photo.setText(item.ownerName);
if (holder.owner != null) {
holder.owner.setText(Html.fromHtml("<a href=\"" + item.ownerUrl + "\">"
+ item.ownerName + "</a> "));
// Making url clickable.
holder.owner.setMovementMethod(LinkMovementMethod.getInstance());
}
if (holder.uploadDate != null) { holder.uploadDate.setText(item.uploadDate); }
return view;
}
}