Skip to content

Instantly share code, notes, and snippets.

@sessionm-docs
Created February 23, 2016 15:45
Show Gist options
  • Save sessionm-docs/7ae23582826371829481 to your computer and use it in GitHub Desktop.
Save sessionm-docs/7ae23582826371829481 to your computer and use it in GitHub Desktop.
MMC - SessionM UI
List<MessageData> messagesList = SessionM.getInstance().getMessagesList();
@Override
public View getView(int position, View convertView, ViewGroup parent) {
FeedViewHolder feedViewHolder;
if (imageLoader == null)
imageLoader = MessageUtil.getInstance(activity).getImageLoader();
//Create custom item for message
MessageFeedView messageDefaultView = new MessageFeedView(activity);
if (convertView == null) {
convertView = messageDefaultView.layoutBg;
convertView.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.MATCH_PARENT));
feedViewHolder = new FeedViewHolder();
feedViewHolder.headerTextView = messageDefaultView.headerTextView;
feedViewHolder.subHeaderTextView = messageDefaultView.subHeaderTextView;
feedViewHolder.descriptionTextView = messageDefaultView.descriptionTextView;
feedViewHolder.iconImageView = messageDefaultView.iconImageView;
feedViewHolder.messageImageView = messageDefaultView.messageImageView;
convertView.setTag(feedViewHolder);
} else {
feedViewHolder = (FeedViewHolder) convertView.getTag();
}
//Set up message content
final MessageData item = messagesList.get(position);
feedViewHolder.headerTextView.setText(item.getHeader());
feedViewHolder.subHeaderTextView.setText(item.getSubHeader());
if (!TextUtils.isEmpty(item.getDescription())) {
feedViewHolder.descriptionTextView.setText(item.getDescription());
feedViewHolder.descriptionTextView.setVisibility(View.VISIBLE);
} else {
feedViewHolder.descriptionTextView.setVisibility(View.GONE);
}
feedViewHolder.iconImageView.setImageUrl(item.getIconURL(), imageLoader);
if (item.getImageURL() != null && !item.getImageURL().equals("null")) {
feedViewHolder.messageImageView.setImageUrl(item.getImageURL(), imageLoader);
feedViewHolder.messageImageView.setVisibility(View.VISIBLE);
} else {
feedViewHolder.messageImageView.setVisibility(View.GONE);
}
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Handle action by type
if (item.getActionURL() != null && !item.getActionURL().equals("null") && item.getActionType() != null && item.getActionType().equals(MessageData.MessageActionType.FULL_SCREEN)) {
SessionM.getInstance().presentActivity(SessionM.ActivityType.PORTAL, item.getActionURL());
} else if(item.getActionType().equals(MessageData.MessageActionType.EXTERNAL_LINK)) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(android.net.Uri.parse(url));
activity.startActivity(intent);
} else if(item.getActionType().equals(MessageData.MessageActionType.DEEP_LINK)) {
//Do whatever for deep linking
}
item.notifyTapped();
}
});
return convertView;
}
//Your custom view holder
class FeedViewHolder {
private TextView headerTextView;
private TextView subHeaderTextView;
private TextView descriptionTextView;
private NetworkImageView iconImageView;
private MessageImageView messageImageView;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment