@Override protected void bindHolder(ViewHolder h) { RecentMessageThreadHolder viewHolder = (RecentMessageThreadHolder) h; MessageThread messageThread = (MessageThread) viewHolder.data; if (messageThread.getUnreadCount() == 0) { viewHolder.getTextView().setText(messageThread.getUserWith().getName()); } else { viewHolder .getTextView() .setText( messageThread.getUserWith().getName() + " (" + messageThread.getUnreadCount() + ")"); } viewHolder.getSnippet().setText(messageThread.getSnippet()); if ("available".equals(messageThread.getUserWith().getPresence())) { viewHolder.getUserPresence().setImageResource(R.drawable.circle_green); } else { viewHolder.getUserPresence().setImageResource(R.drawable.circle_red); } long messageThreadTime = messageThread.getTime(); viewHolder.getLastTime().setText(findTime(messageThreadTime)); final ProgressBar spinner = viewHolder.getProgressBar(); imageLoader.displayImage( messageThread.getUserWith().getProfilePictureSquare(75), viewHolder.getImageView(), Utils.DEFAULT_IMAGE_OPTIONS, new SimpleImageLoadingListener() { @Override public void onLoadingStarted(String imageUri, View view) { spinner.setVisibility(View.VISIBLE); } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { spinner.setVisibility(View.GONE); } @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { spinner.setVisibility(View.GONE); } }); }