public class MessageAdapter extends android.support.v7.widget.RecyclerView.Adapter<MessageAdapter.MessageHolder>
Modifier and Type | Class and Description |
---|---|
static interface |
MessageAdapter.ChatMessageClickListener |
static class |
MessageAdapter.MessageHolder
Contains relevant data on how to draw messages on the screen
|
Modifier and Type | Field and Description |
---|---|
private Context |
context |
private java.util.ArrayList<Message> |
mDataset |
private static MessageAdapter.ChatMessageClickListener |
myClickListener |
private static java.lang.String |
TAG |
private com.leocardz.link.preview.library.TextCrawler |
textCrawler |
private java.util.LinkedList<java.lang.Integer> |
urlPositionsQueue |
Constructor and Description |
---|
MessageAdapter(Context c) |
Modifier and Type | Method and Description |
---|---|
void |
addItem(Message msg)
Adds an item to the dataset
|
private void |
checkUrl(Message message,
int position)
Method that creates a link preview based on the given url
|
void |
clear() |
boolean |
contains(Message msg) |
int |
dpToPx(int dp)
Calculates the number of pixels given a number of dp
|
int |
getItemCount() |
int |
getItemViewType(int position)
Returns the view type of the message in a certain position
0 for text message from someone else, 1 for text message from me
2 for photo from someone else, 3 for photo from me
4 for outgoing photo, 5 for outgoing text message
|
Message |
getMessage(int position) |
Message |
getMessage(Message message) |
private boolean |
isOutgoing(Message m)
Checks if the app is still trying to send that message
|
void |
onBindViewHolder(MessageAdapter.MessageHolder holder,
int position)
Draws on the screen the correct layout for the file
|
MessageAdapter.MessageHolder |
onCreateViewHolder(ViewGroup parent,
int viewType)
Inflates the right layout for the kind of message it has to show.
|
void |
removeItem(int position) |
void |
setOnClickListener(MessageAdapter.ChatMessageClickListener clickListener) |
bindViewHolder, createViewHolder, getItemId, hasObservers, hasStableIds, notifyDataSetChanged, notifyItemChanged, notifyItemChanged, notifyItemInserted, notifyItemMoved, notifyItemRangeChanged, notifyItemRangeChanged, notifyItemRangeInserted, notifyItemRangeRemoved, notifyItemRemoved, onAttachedToRecyclerView, onBindViewHolder, onDetachedFromRecyclerView, onFailedToRecycleView, onViewAttachedToWindow, onViewDetachedFromWindow, onViewRecycled, registerAdapterDataObserver, setHasStableIds, unregisterAdapterDataObserver
private static final java.lang.String TAG
private java.util.ArrayList<Message> mDataset
private static MessageAdapter.ChatMessageClickListener myClickListener
private Context context
private com.leocardz.link.preview.library.TextCrawler textCrawler
private java.util.LinkedList<java.lang.Integer> urlPositionsQueue
public int getItemViewType(int position)
getItemViewType
in class android.support.v7.widget.RecyclerView.Adapter<MessageAdapter.MessageHolder>
position
- the position on the view of the messagepublic MessageAdapter.MessageHolder onCreateViewHolder(ViewGroup parent, int viewType)
onCreateViewHolder
in class android.support.v7.widget.RecyclerView.Adapter<MessageAdapter.MessageHolder>
getItemViewType(int)
public void onBindViewHolder(MessageAdapter.MessageHolder holder, int position)
onBindViewHolder
in class android.support.v7.widget.RecyclerView.Adapter<MessageAdapter.MessageHolder>
holder
- the message to showposition
- position of the message on the listpublic int dpToPx(int dp)
dp
- the dp to convertprivate void checkUrl(Message message, int position)
message
- that contains the urlposition
- of the item in the adapterpublic void addItem(Message msg)
msg
- the message to addcheckUrl(Message, int)
public Message getMessage(int position)
public void removeItem(int position)
public void clear()
public boolean contains(Message msg)
public int getItemCount()
getItemCount
in class android.support.v7.widget.RecyclerView.Adapter<MessageAdapter.MessageHolder>
public void setOnClickListener(MessageAdapter.ChatMessageClickListener clickListener)
private boolean isOutgoing(Message m)
m
- the message to check