Class BaseMessageItemProvider
-
- All Implemented Interfaces:
-
ai.nexconn.chatui.channel.messagelist.provider.IChannelSummaryProvider,ai.nexconn.chatui.channel.messagelist.provider.IMessageProvider,ai.nexconn.chatui.widget.adapter.IViewProvider
public abstract class BaseMessageItemProvider<T extends MessageContent> implements IMessageProvider<T>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classBaseMessageItemProvider.MessageViewHolder
-
Field Summary
Fields Modifier and Type Field Description protected final static StringTAGprotected MessageItemProviderConfigmConfig
-
Constructor Summary
Constructors Constructor Description BaseMessageItemProvider()
-
Method Summary
Modifier and Type Method Description ViewHolderonCreateViewHolder(ViewGroup parent, int viewType)abstract ViewHolderonCreateMessageContentViewHolder(ViewGroup parent, int viewType)Creates the ViewHolder for message content. booleanisItemViewType(UiMessage item)voidbindViewHolder(ViewHolder holder, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)Bind view with data source abstract voidbindMessageContentViewHolder(ViewHolder holder, ViewHolder parentHolder, T t, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)Binds values to the views within the message view. abstract booleanonItemClick(ViewHolder holder, T t, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)booleanonItemLongClick(ViewHolder holder, T t, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)voidsetTextMessageContent(TextView textView, UiMessage uiMessage, SpannableStringBuilder span)voidsetReferenceMessageContent(TextView textView, UiMessage uiMessage, SpannableStringBuilder span)SpannableStringBuilderbuildReferenceMessageContent(Context context, ReferenceMessage content, SpannableStringBuilder span)abstract booleanisMessageViewType(MessageContent messageContent)Determines whether this template should handle the given message content type. booleanisSummaryType(MessageContent messageContent)Whether this template handles the given message content. booleanshowSummaryWithName()Whether to prepend the sender's name in the conversation summary. booleanshowBubble()booleancheckViewsValid(Array<View> views)SpannableStringBuilderbuildModifiedReferenceMessageContent(SpannableStringBuilder span, String editedText, int color)-
-
Method Detail
-
onCreateViewHolder
ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
-
onCreateMessageContentViewHolder
abstract ViewHolder onCreateMessageContentViewHolder(ViewGroup parent, int viewType)
Creates the ViewHolder for message content.
- Parameters:
parent- the parent ViewGroupviewType- the view type- Returns:
ViewHolder
-
isItemViewType
boolean isItemViewType(UiMessage item)
- Parameters:
item- the data item- Returns:
whether this provider handles the item type
-
bindViewHolder
void bindViewHolder(ViewHolder holder, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)
Bind view with data source
- Parameters:
holder- the view holderposition- the position
-
bindMessageContentViewHolder
abstract void bindMessageContentViewHolder(ViewHolder holder, ViewHolder parentHolder, T t, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)
Binds values to the views within the message view.
- Parameters:
holder- ViewHolderparentHolder- the parent layout's ViewHoldert- the message content corresponding to this templateuiMessage- UiMessageposition- the message positionlist- the message listlistener- click event listener for the ViewModel.
-
onItemClick
abstract boolean onItemClick(ViewHolder holder, T t, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)
- Parameters:
holder- ViewHoldert- the custom message contentuiMessage- UiMessageposition- the positionlist- the list datalistener- click event listener for the ViewModel.- Returns:
whether the click event was consumed
-
onItemLongClick
boolean onItemLongClick(ViewHolder holder, T t, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener)
-
setTextMessageContent
void setTextMessageContent(TextView textView, UiMessage uiMessage, SpannableStringBuilder span)
-
setReferenceMessageContent
void setReferenceMessageContent(TextView textView, UiMessage uiMessage, SpannableStringBuilder span)
-
buildReferenceMessageContent
SpannableStringBuilder buildReferenceMessageContent(Context context, ReferenceMessage content, SpannableStringBuilder span)
-
isMessageViewType
abstract boolean isMessageViewType(MessageContent messageContent)
Determines whether this template should handle the given message content type.
- Parameters:
messageContent- the message content- Returns:
whether this template handles the given type
-
isSummaryType
boolean isSummaryType(MessageContent messageContent)
Whether this template handles the given message content.
- Parameters:
messageContent- the message content to check- Returns:
true if this template handles this message; the upper layer will then call getSummarySpannable to obtain the resource. false if this template does not handle this message.
-
showSummaryWithName
boolean showSummaryWithName()
Whether to prepend the sender's name in the conversation summary. This setting only applies to group channels.
- Returns:
whether to show the sender name
-
showBubble
boolean showBubble()
-
checkViewsValid
boolean checkViewsValid(Array<View> views)
-
buildModifiedReferenceMessageContent
SpannableStringBuilder buildModifiedReferenceMessageContent(SpannableStringBuilder span, String editedText, int color)
-
-
-
-