package com.thebluealliance.androidclient.listitems; import com.squareup.picasso.Picasso; import com.thebluealliance.androidclient.R; import com.thebluealliance.androidclient.helpers.AnalyticsHelper; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.RelativeLayout; public class ImageListElement extends ListElement { public final String imageUrl, linkUrl; public final Boolean isVideo; public ImageListElement(String imageUrl, String linkUrl, Boolean isVideo) { this.imageUrl = imageUrl; this.linkUrl = linkUrl; this.isVideo = isVideo; } @Override public boolean equals(Object o) { if (!(o instanceof ImageListElement)) { return false; } ImageListElement element = (ImageListElement) o; return imageUrl.equals(element.imageUrl) && linkUrl.equals(element.linkUrl) && isVideo == element.isVideo; } @Override public View getView(final Context c, LayoutInflater inflater, View convertView) { ViewHolder holder; if (convertView == null || !(convertView.getTag() instanceof ViewHolder)) { convertView = inflater.inflate(R.layout.list_item_image, null); holder = new ViewHolder(); holder.imageItem = (RelativeLayout) convertView.findViewById(R.id.image_item); holder.imageContainer = (FrameLayout) convertView.findViewById(R.id.image_container); holder.image = (ImageView) convertView.findViewById(R.id.image); holder.youtubePlayIcon = (ImageView) convertView.findViewById(R.id.youtube_play_icon); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } Picasso picasso = Picasso.with(c); picasso.load(imageUrl).into(holder.image); if (isVideo) { holder.youtubePlayIcon.setVisibility(View.VISIBLE); } else { holder.youtubePlayIcon.setVisibility(View.GONE); } holder.imageItem.setOnClickListener(v -> { //Track Click AnalyticsHelper.sendSocialUpdate(c, isVideo ? "youtube" : "cd", linkUrl); c.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(linkUrl))); }); return convertView; } private static class ViewHolder { RelativeLayout imageItem; FrameLayout imageContainer; ImageView image; ImageView youtubePlayIcon; } }