public class MessagesListAdapter<MESSAGE extends IMessage> extends android.support.v7.widget.RecyclerView.Adapter<ViewHolder>
MessagesList.| Modifier and Type | Class | Description |
|---|---|---|
static class |
MessagesListAdapter.BaseMessageViewHolder<MESSAGE extends IMessage> |
Deprecated.
|
static class |
MessagesListAdapter.DefaultDateHeaderViewHolder |
Deprecated.
|
static interface |
MessagesListAdapter.Formatter<MESSAGE> |
Interface used to format your message model when copying.
|
static class |
MessagesListAdapter.HoldersConfig |
Deprecated.
|
static class |
MessagesListAdapter.IncomingMessageViewHolder<MESSAGE extends IMessage> |
Deprecated.
|
static interface |
MessagesListAdapter.OnLoadMoreListener |
Interface definition for a callback to be invoked when next part of messages need to be loaded.
|
static interface |
MessagesListAdapter.OnMessageClickListener<MESSAGE extends IMessage> |
Interface definition for a callback to be invoked when message item is clicked.
|
static interface |
MessagesListAdapter.OnMessageLongClickListener<MESSAGE extends IMessage> |
Interface definition for a callback to be invoked when message item is long clicked.
|
static interface |
MessagesListAdapter.OnMessageViewClickListener<MESSAGE extends IMessage> |
Interface definition for a callback to be invoked when message view is clicked.
|
static interface |
MessagesListAdapter.OnMessageViewLongClickListener<MESSAGE extends IMessage> |
Interface definition for a callback to be invoked when message view is long clicked.
|
static class |
MessagesListAdapter.OutcomingMessageViewHolder<MESSAGE extends IMessage> |
Deprecated.
|
static interface |
MessagesListAdapter.SelectionListener |
Interface definition for a callback to be invoked when selected messages count is changed.
|
class |
MessagesListAdapter.Wrapper<DATA> |
| Modifier and Type | Field | Description |
|---|---|---|
protected static boolean |
isSelectionModeEnabled |
|
protected java.util.List<MessagesListAdapter.Wrapper> |
items |
| Constructor | Description |
|---|---|
MessagesListAdapter(java.lang.String senderId,
ImageLoader imageLoader) |
For default list item layout and view holder.
|
MessagesListAdapter(java.lang.String senderId,
MessageHolders holders,
ImageLoader imageLoader) |
For default list item layout and view holder.
|
| Modifier and Type | Method | Description |
|---|---|---|
void |
addToEnd(java.util.List<MESSAGE> messages,
boolean reverse) |
Adds messages list in chronological order.
|
void |
addToStart(MESSAGE message,
boolean scroll) |
Adds message to bottom of list and scroll if needed.
|
void |
clear() |
Clears the messages list.
|
void |
clear(boolean notifyDataSetChanged) |
Clears the messages list.
|
java.lang.String |
copySelectedMessagesText(android.content.Context context,
MessagesListAdapter.Formatter<MESSAGE> formatter,
boolean reverse) |
Copies text to device clipboard and returns selected messages text.
|
void |
delete(java.util.List<MESSAGE> messages) |
Deletes messages list.
|
void |
delete(MESSAGE message) |
Deletes message.
|
void |
deleteById(java.lang.String id) |
Deletes message by its identifier.
|
void |
deleteByIds(java.lang.String[] ids) |
Deletes messages by its identifiers.
|
void |
deleteSelectedMessages() |
Deletes all of the selected messages and disables selection mode.
|
void |
disableSelectionMode() |
Disables selection mode and removes
MessagesListAdapter.SelectionListener. |
void |
enableSelectionMode(MessagesListAdapter.SelectionListener selectionListener) |
Enables selection mode.
|
protected void |
generateDateHeaders(java.util.List<MESSAGE> messages) |
|
int |
getItemCount() |
|
int |
getItemViewType(int position) |
|
int |
getMessagesCount() |
|
java.util.ArrayList<MESSAGE> |
getSelectedMessages() |
Returns the list of selected messages.
|
java.lang.String |
getSelectedMessagesText(MessagesListAdapter.Formatter<MESSAGE> formatter,
boolean reverse) |
Returns selected messages text and do
unselectAllItems() for you. |
boolean |
isEmpty() |
Returns
true if, and only if, messages count in adapter is non-zero. |
void |
onBindViewHolder(ViewHolder holder,
int position) |
|
ViewHolder |
onCreateViewHolder(android.view.ViewGroup parent,
int viewType) |
|
void |
onLoadMore(int page,
int total) |
|
void |
registerViewClickListener(int viewId,
MessagesListAdapter.OnMessageViewClickListener<MESSAGE> onMessageViewClickListener) |
Registers click listener for view by id
|
void |
setDateHeadersFormatter(DateFormatter.Formatter dateHeadersFormatter) |
Sets custom
DateFormatter.Formatter for text representation of date headers. |
void |
setLoadMoreListener(MessagesListAdapter.OnLoadMoreListener loadMoreListener) |
Set callback to be invoked when list scrolled to top.
|
void |
setOnMessageClickListener(MessagesListAdapter.OnMessageClickListener<MESSAGE> onMessageClickListener) |
Sets click listener for item.
|
void |
setOnMessageLongClickListener(MessagesListAdapter.OnMessageLongClickListener<MESSAGE> onMessageLongClickListener) |
Sets long click listener for item.
|
void |
setOnMessageViewClickListener(MessagesListAdapter.OnMessageViewClickListener<MESSAGE> onMessageViewClickListener) |
Sets click listener for message view.
|
void |
setOnMessageViewLongClickListener(MessagesListAdapter.OnMessageViewLongClickListener<MESSAGE> onMessageViewLongClickListener) |
Sets long click listener for message view.
|
void |
unselectAllItems() |
Unselect all of the selected messages.
|
boolean |
update(java.lang.String oldId,
MESSAGE newMessage) |
Updates message by old identifier (use this method if id has changed).
|
boolean |
update(MESSAGE message) |
Updates message by its id.
|
void |
updateAndMoveToStart(MESSAGE newMessage) |
Moves the elements position from current to start
|
void |
upsert(MESSAGE message) |
Updates message by its id if it exists, add to start if not
|
void |
upsert(MESSAGE message,
boolean moveToStartIfUpdate) |
Updates and moves to start if message by its id exists and if specified move to start, if not
specified the item stays at current position and updated
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitbindViewHolder, createViewHolder, getItemId, hasObservers, hasStableIds, notifyDataSetChanged, notifyItemChanged, notifyItemChanged, notifyItemInserted, notifyItemMoved, notifyItemRangeChanged, notifyItemRangeChanged, notifyItemRangeInserted, notifyItemRangeRemoved, notifyItemRemoved, onAttachedToRecyclerView, onBindViewHolder, onDetachedFromRecyclerView, onFailedToRecycleView, onViewAttachedToWindow, onViewDetachedFromWindow, onViewRecycled, registerAdapterDataObserver, setHasStableIds, unregisterAdapterDataObserverprotected static boolean isSelectionModeEnabled
protected java.util.List<MessagesListAdapter.Wrapper> items
public MessagesListAdapter(java.lang.String senderId,
ImageLoader imageLoader)
senderId - identifier of sender.imageLoader - image loading method.public MessagesListAdapter(java.lang.String senderId,
MessageHolders holders,
ImageLoader imageLoader)
senderId - identifier of sender.holders - custom layouts and view holders. See MessageHolders documentation for detailsimageLoader - image loading method.public ViewHolder onCreateViewHolder(android.view.ViewGroup parent, int viewType)
onCreateViewHolder in class android.support.v7.widget.RecyclerView.Adapter<ViewHolder>public void onBindViewHolder(ViewHolder holder, int position)
onBindViewHolder in class android.support.v7.widget.RecyclerView.Adapter<ViewHolder>public int getItemCount()
getItemCount in class android.support.v7.widget.RecyclerView.Adapter<ViewHolder>public int getItemViewType(int position)
getItemViewType in class android.support.v7.widget.RecyclerView.Adapter<ViewHolder>public void onLoadMore(int page,
int total)
public int getMessagesCount()
public void addToStart(MESSAGE message, boolean scroll)
message - message to add.scroll - true if need to scroll list to bottom when message added.public void addToEnd(java.util.List<MESSAGE> messages, boolean reverse)
messages - messages from history.reverse - true if need to reverse messages before adding.public boolean update(MESSAGE message)
message - updated message object.public boolean update(java.lang.String oldId,
MESSAGE newMessage)
update(IMessage)oldId - an identifier of message to update.newMessage - new message object.public void updateAndMoveToStart(MESSAGE newMessage)
newMessage - new message object.public void upsert(MESSAGE message)
message - message object to insert or update.public void upsert(MESSAGE message, boolean moveToStartIfUpdate)
message - message object to insert or update.public void delete(MESSAGE message)
message - message to delete.public void delete(java.util.List<MESSAGE> messages)
messages - messages list to delete.public void deleteById(java.lang.String id)
id - identifier of message to delete.public void deleteByIds(java.lang.String[] ids)
ids - array of identifiers of messages to delete.public boolean isEmpty()
true if, and only if, messages count in adapter is non-zero.true if size is 0, otherwise falsepublic void clear()
public void clear(boolean notifyDataSetChanged)
public void enableSelectionMode(MessagesListAdapter.SelectionListener selectionListener)
selectionListener - listener for selected items count. To get selected messages use getSelectedMessages().public void disableSelectionMode()
MessagesListAdapter.SelectionListener.public java.util.ArrayList<MESSAGE> getSelectedMessages()
public java.lang.String getSelectedMessagesText(MessagesListAdapter.Formatter<MESSAGE> formatter, boolean reverse)
unselectAllItems() for you.formatter - The formatter that allows you to format your message model when copying.reverse - Change ordering when copying messages.MessagesListAdapter.Formatter. If it's null - MESSAGE#toString() will be used.public java.lang.String copySelectedMessagesText(android.content.Context context,
MessagesListAdapter.Formatter<MESSAGE> formatter,
boolean reverse)
unselectAllItems() for you.context - The context.formatter - The formatter that allows you to format your message model when copying.reverse - Change ordering when copying messages.MessagesListAdapter.Formatter. If it's null - MESSAGE#toString() will be used.public void unselectAllItems()
MessagesListAdapter.SelectionListener with zero count.public void deleteSelectedMessages()
getSelectedMessages() before calling this method to delete messages from your data source.public void setOnMessageClickListener(MessagesListAdapter.OnMessageClickListener<MESSAGE> onMessageClickListener)
onMessageClickListener - click listener.public void setOnMessageViewClickListener(MessagesListAdapter.OnMessageViewClickListener<MESSAGE> onMessageViewClickListener)
onMessageViewClickListener - click listener.public void registerViewClickListener(int viewId,
MessagesListAdapter.OnMessageViewClickListener<MESSAGE> onMessageViewClickListener)
viewId - viewonMessageViewClickListener - click listener.public void setOnMessageLongClickListener(MessagesListAdapter.OnMessageLongClickListener<MESSAGE> onMessageLongClickListener)
onMessageLongClickListener - long click listener.public void setOnMessageViewLongClickListener(MessagesListAdapter.OnMessageViewLongClickListener<MESSAGE> onMessageViewLongClickListener)
onMessageViewLongClickListener - long click listener.public void setLoadMoreListener(MessagesListAdapter.OnLoadMoreListener loadMoreListener)
loadMoreListener - listener.public void setDateHeadersFormatter(DateFormatter.Formatter dateHeadersFormatter)
DateFormatter.Formatter for text representation of date headers.protected void generateDateHeaders(java.util.List<MESSAGE> messages)