Skip to content

Instantly share code, notes, and snippets.

@ExcaCambo
Forked from nathanjones/MessageAdapter.java
Created December 1, 2017 04:50
Show Gist options
  • Select an option

  • Save ExcaCambo/a892329e7d342ed892acc4b7f84ec1d0 to your computer and use it in GitHub Desktop.

Select an option

Save ExcaCambo/a892329e7d342ed892acc4b7f84ec1d0 to your computer and use it in GitHub Desktop.

Revisions

  1. @nathanjones nathanjones revised this gist Apr 26, 2016. 1 changed file with 6 additions and 0 deletions.
    6 changes: 6 additions & 0 deletions MessageAdapter.java
    Original file line number Diff line number Diff line change
    @@ -82,6 +82,8 @@ public TextMessageViewHolder(View itemView) {

    @Override
    void bind(int position) {
    super.bind(position);

    Message msg = messages.get(position);
    messageText.setText(msg.text);
    }
    @@ -98,6 +100,8 @@ public ImageMessageViewHolder(View itemView) {

    @Override
    void bind(int position) {
    super.bind(position);

    Message msg = messages.get(position);
    messageImage.setImageDrawable(msg.image);
    }
    @@ -111,6 +115,8 @@ public LocationMessageViewHolder(View itemView) {

    @Override
    void bind(int position) {
    super.bind(position);

    Message msg = messages.get(position);
    Location location = msg.location;
    // TODO: Load location into MapView
  2. @nathanjones nathanjones revised this gist Apr 26, 2016. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions MessageAdapter.java
    Original file line number Diff line number Diff line change
    @@ -70,7 +70,7 @@ void bind(int position) {
    }
    }

    public class TextMessageViewHolder extends MessageViewHolder {
    private class TextMessageViewHolder extends MessageViewHolder {

    final TextView messageText;

    @@ -87,7 +87,7 @@ void bind(int position) {
    }
    }

    public class ImageMessageViewHolder extends MessageViewHolder {
    private class ImageMessageViewHolder extends MessageViewHolder {

    final ImageView messageImage;

    @@ -103,7 +103,7 @@ void bind(int position) {
    }
    }

    public class LocationMessageViewHolder extends MessageViewHolder {
    private class LocationMessageViewHolder extends MessageViewHolder {

    public LocationMessageViewHolder(View itemView) {
    super(itemView);
  3. @nathanjones nathanjones revised this gist Apr 26, 2016. 1 changed file with 8 additions and 3 deletions.
    11 changes: 8 additions & 3 deletions MessageAdapter.java
    Original file line number Diff line number Diff line change
    @@ -58,16 +58,21 @@ public int getItemViewType(int position) {

    abstract class MessageViewHolder extends RecyclerView.ViewHolder {

    final TextView timestamp;

    public MessageViewHolder(View itemView) {
    super(itemView);
    }

    abstract void bind(int position);
    void bind(int position) {
    Message msg = messages.get(position);
    timestamp.setText(formatTimestamp(msg.timestamp);
    }
    }

    public class TextMessageViewHolder extends MessageViewHolder {

    TextView messageText;
    final TextView messageText;

    public TextMessageViewHolder(View itemView) {
    super(itemView);
    @@ -84,7 +89,7 @@ void bind(int position) {

    public class ImageMessageViewHolder extends MessageViewHolder {

    ImageView messageImage;
    final ImageView messageImage;

    public ImageMessageViewHolder(View itemView) {
    super(itemView);
  4. @nathanjones nathanjones revised this gist Apr 26, 2016. 1 changed file with 0 additions and 11 deletions.
    11 changes: 0 additions & 11 deletions MessageAdapter.java
    Original file line number Diff line number Diff line change
    @@ -23,7 +23,6 @@ public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MessageV
    public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    MessageType type = MessageType.values()[viewType];

    LayoutInflater inflater = LayoutInflater.from(parent.getContext());

    View itemView;
    @@ -64,7 +63,6 @@ public MessageViewHolder(View itemView) {
    }

    abstract void bind(int position);

    }

    public class TextMessageViewHolder extends MessageViewHolder {
    @@ -79,9 +77,7 @@ public TextMessageViewHolder(View itemView) {

    @Override
    void bind(int position) {

    Message msg = messages.get(position);

    messageText.setText(msg.text);
    }
    }
    @@ -92,15 +88,12 @@ public class ImageMessageViewHolder extends MessageViewHolder {

    public ImageMessageViewHolder(View itemView) {
    super(itemView);

    messageImage = (ImageView) itemView.findViewById(R.id.message_image);
    }

    @Override
    void bind(int position) {

    Message msg = messages.get(position);

    messageImage.setImageDrawable(msg.image);
    }
    }
    @@ -113,13 +106,9 @@ public LocationMessageViewHolder(View itemView) {

    @Override
    void bind(int position) {

    Message msg = messages.get(position);

    Location location = msg.location;

    // TODO: Load location into MapView
    }
    }

    }
  5. @nathanjones nathanjones created this gist Apr 26, 2016.
    125 changes: 125 additions & 0 deletions MessageAdapter.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,125 @@
    package com.nathanrjones.messenger;

    import android.location.Location;
    import android.support.v7.widget.RecyclerView;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import android.widget.TextView;

    import com.nathanrjones.messenger.Message.MessageType;

    import java.util.List;

    /**
    * An adapter to display a list of Messages.
    */
    public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MessageViewHolder> {

    private List<Message> messages;

    @Override
    public MessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    MessageType type = MessageType.values()[viewType];

    LayoutInflater inflater = LayoutInflater.from(parent.getContext());

    View itemView;

    switch (type) {
    case Text:
    default:
    itemView = inflater.inflate(R.layout.item_message_text, parent, false);
    return new TextMessageViewHolder(itemView);
    case Image:
    itemView = inflater.inflate(R.layout.item_message_image, parent, false);
    return new ImageMessageViewHolder(itemView);
    case Location:
    itemView = inflater.inflate(R.layout.item_message_location, parent, false);
    return new LocationMessageViewHolder(itemView);
    }
    }

    @Override
    public void onBindViewHolder(MessageViewHolder holder, int position) {
    holder.bind(position);
    }

    @Override
    public int getItemCount() {
    return messages.size();
    }

    @Override
    public int getItemViewType(int position) {
    return messages.get(position).type.ordinal();
    }

    abstract class MessageViewHolder extends RecyclerView.ViewHolder {

    public MessageViewHolder(View itemView) {
    super(itemView);
    }

    abstract void bind(int position);

    }

    public class TextMessageViewHolder extends MessageViewHolder {

    TextView messageText;

    public TextMessageViewHolder(View itemView) {
    super(itemView);

    messageText = (TextView) itemView.findViewById(R.id.message_text);
    }

    @Override
    void bind(int position) {

    Message msg = messages.get(position);

    messageText.setText(msg.text);
    }
    }

    public class ImageMessageViewHolder extends MessageViewHolder {

    ImageView messageImage;

    public ImageMessageViewHolder(View itemView) {
    super(itemView);

    messageImage = (ImageView) itemView.findViewById(R.id.message_image);
    }

    @Override
    void bind(int position) {

    Message msg = messages.get(position);

    messageImage.setImageDrawable(msg.image);
    }
    }

    public class LocationMessageViewHolder extends MessageViewHolder {

    public LocationMessageViewHolder(View itemView) {
    super(itemView);
    }

    @Override
    void bind(int position) {

    Message msg = messages.get(position);

    Location location = msg.location;

    // TODO: Load location into MapView
    }
    }

    }