Package ai.nexconn.chatui.channel
Class ChannelViewModel
-
- All Implemented Interfaces:
public class ChannelViewModel
-
-
Field Summary
Fields Modifier and Type Field Description public final static intDEFAULT_COUNTpublic final static intDEFAULT_REMOTE_COUNTpublic final static intSHOW_UNREAD_MESSAGE_COUNTpublic static Array<String>writePermission
-
Constructor Summary
Constructors Constructor Description ChannelViewModel(Application application)
-
Method Summary
Modifier and Type Method Description voidbindConversation(ChannelIdentifier conversationIdentifier, Bundle bundle)voidonGetHistoryMessage(List<Message> messages, boolean isHasMoreMsg)Initial local message loading / pull-down history loading. voidonGetHistoryMessage(List<Message> messages)Initial local message loading / pull-down history loading. UiMessagemapUIMessage(Message message)voidprocessHistoryDividerMessage()voidrefreshAllMessage()MessagegetFirstUnreadMessage()voidsetFirstUnreadMessage(Message firstUnreadMessage)intfindPositionByMessageId(int clientId)StringgetCurTargetId()ChannelTypegetCurChannelType()StringgetCurChannelId()ChannelIdentifiergetChannelIdentifier()ChannelIdentifiergetConversationIdentifier()BaseChannelcreateChannel()voidrefreshAllMessage(boolean force)voidonLoadMoreMessage(List<Message> messages)Loads more messages on pull-up. voidonReloadMessage(List<Message> messages)Reloads messages: triggered by clicking the history bar in normal state or the new-message bar in history state. voidgetMessageReadReceiptInfoV5(List<Message> messages)Queries read-receipt V5 info for the given messages, binds results to UiMessages, then refreshes. MediatorLiveData<PageEvent>getPageEventLiveData()voidonWarnClick(UiMessage uiMessage)voidonItemClick(UiMessage uiMessage)voidonUserPortraitClick(Context context, ChannelType conversationType, UserInfo userInfo, String targetId)booleanonUserPortraitLongClick(Context context, ChannelType conversationType, UserInfo userInfo, String targetId)voidreSendMessage(Message message)voidonAudioClick(UiMessage uiMessage)booleanonBackPressed()voidquitEditMode()Exits edit mode. UiMessagefindUIMessage(String messageUId)voidonSendMessage(SendEvent event)voidonSendMediaMessage(SendMediaEvent event)voidonDownloadMessage(DownloadEvent event)voidonDeleteMessage(DeleteEvent event)voidonRefreshEvent(RefreshEvent event)voidonInsertMessage(InsertEvent event)UiMessagefindUIMessage(int clientId)voidremoveUIMessage(int messageId)voidrefreshSingleMessage(UiMessage uiMessage)intfindPositionBySendTime(long sentTime)voidexecutePageEvent(PageEvent pageEvent)voidprocessNewMessageUnread(boolean isMainThread)voidupdateNewMentionMessageUnreadBar()voidhideHistoryBar()intgetRefreshMessageId()longgetRefreshSentTime()longgetLoadMoreSentTime()booleanisRemoteMessageLoadFinish()voidsetRemoteMessageLoadFinish(boolean remoteMessageLoadFinish)booleanisScrollToBottom()voidsetScrollToBottom(boolean scrollToBottom)voidupdateMentionMessage(Message message)voidexecutePostPageEvent(PageEvent pageEvent)Posts the event from a background thread to the main thread. voidonReadReceiptStateClick(UiMessage uiMessage)voidonReEditClick(UiMessage uiMessage)voidonRefresh()voidcleanUnreadNewCount()voidaddUnreadNewMessage(UiMessage message)voidnewMessageBarClick()voidunreadBarClick()voidnewMentionMessageBarClick()voidenterEditState()Enters edit mode. voidforwardMessage(Intent data)List<UiMessage>getSelectedUiMessages()voidonLoadMore()booleanisForegroundActivity()voidonViewClick(int clickType, UiMessage data)booleanonViewLongClick(int clickType, UiMessage data)LiveData<List<UiMessage>>getUiMessageLiveData()MediatorLiveData<Integer>getNewMessageUnreadLiveData()MediatorLiveData<Boolean>IsEditStatusLiveData()List<UiMessage>getNewUnReadMessages()List<Message>getNewUnReadMentionMessages()voidsetNewUnReadMentionMessages(List<Message> newUnReadMentionMessages)voidshowHistoryBar(int unreadMessageCount)LiveData<Integer>getHistoryMessageUnreadLiveData()voidshowNewMentionMessageBar(int unreadMessageCount)voidhideNewMentionMessageBar()LiveData<Integer>getNewMentionMessageUnreadLiveData()voidonScrolled(RecyclerView recyclerView, int dx, int dy, int headerCount, int footerCount)List<UiMessage>getUiMessages()voidonExistUnreadMessage(long sentTime, int unreadMessageCount)voidonResume()voidcleanUnreadStatus()Clears the unread status. booleanisInitUnreadMessageFinish()voidsetInitUnreadMessageFinish(boolean initUnreadMessageFinish)booleanisInitMentionedMessageFinish()voidsetInitMentionedMessageFinish(boolean initMentionedMessageFinish)voidonPause()voidstopPlay()voidonStop()voidonDestroy()booleanfilterMessageToHideNewMessageBar(UiMessage uiMessage)Filters persisted-but-uncounted messages so they do not trigger the new-message bubble UI at the bottom-right of the chat page. booleanisNormalState()booleanisHistoryState()voidonUserUpdate(UserInfo user)voidonGroupUpdate(GroupInfo group)voidonGroupUserInfoUpdate(GroupUserInfo groupUserInfo)voidinitTranslationListener()voidunInitTranslationListener()voidonItemViewVisible(boolean visible, UiMessage data)Called when a message item becomes visible; sends a read receipt. MediatorLiveData<TypingInfo>getTypingStatusInfo()MediatorLiveData<UserOnlineStatus>getOnlineStatus()booleanisOnlineStatus()MediatorLiveData<Boolean>getNotify()voidgetUserOnlineStatus(String targetId)voidgetNotificationStatus(ChannelType channelType, String targetId)-
-
Method Detail
-
bindConversation
void bindConversation(ChannelIdentifier conversationIdentifier, Bundle bundle)
-
onGetHistoryMessage
void onGetHistoryMessage(List<Message> messages, boolean isHasMoreMsg)
Initial local message loading / pull-down history loading.
-
onGetHistoryMessage
void onGetHistoryMessage(List<Message> messages)
Initial local message loading / pull-down history loading.
-
mapUIMessage
UiMessage mapUIMessage(Message message)
-
processHistoryDividerMessage
void processHistoryDividerMessage()
-
refreshAllMessage
void refreshAllMessage()
-
getFirstUnreadMessage
Message getFirstUnreadMessage()
-
setFirstUnreadMessage
void setFirstUnreadMessage(Message firstUnreadMessage)
-
findPositionByMessageId
int findPositionByMessageId(int clientId)
-
getCurTargetId
String getCurTargetId()
-
getCurChannelType
ChannelType getCurChannelType()
-
getCurChannelId
String getCurChannelId()
-
getChannelIdentifier
ChannelIdentifier getChannelIdentifier()
-
getConversationIdentifier
ChannelIdentifier getConversationIdentifier()
-
createChannel
BaseChannel createChannel()
-
refreshAllMessage
void refreshAllMessage(boolean force)
-
onLoadMoreMessage
void onLoadMoreMessage(List<Message> messages)
Loads more messages on pull-up.
-
onReloadMessage
void onReloadMessage(List<Message> messages)
Reloads messages: triggered by clicking the history bar in normal state or the new-message bar in history state.
-
getMessageReadReceiptInfoV5
void getMessageReadReceiptInfoV5(List<Message> messages)
Queries read-receipt V5 info for the given messages, binds results to UiMessages, then refreshes.
- Parameters:
messages- the messages to query
-
getPageEventLiveData
MediatorLiveData<PageEvent> getPageEventLiveData()
-
onWarnClick
void onWarnClick(UiMessage uiMessage)
-
onItemClick
void onItemClick(UiMessage uiMessage)
-
onUserPortraitClick
void onUserPortraitClick(Context context, ChannelType conversationType, UserInfo userInfo, String targetId)
-
onUserPortraitLongClick
boolean onUserPortraitLongClick(Context context, ChannelType conversationType, UserInfo userInfo, String targetId)
-
reSendMessage
void reSendMessage(Message message)
-
onAudioClick
void onAudioClick(UiMessage uiMessage)
-
onBackPressed
boolean onBackPressed()
-
quitEditMode
void quitEditMode()
Exits edit mode.
-
findUIMessage
UiMessage findUIMessage(String messageUId)
-
onSendMessage
void onSendMessage(SendEvent event)
-
onSendMediaMessage
void onSendMediaMessage(SendMediaEvent event)
-
onDownloadMessage
void onDownloadMessage(DownloadEvent event)
-
onDeleteMessage
void onDeleteMessage(DeleteEvent event)
-
onRefreshEvent
void onRefreshEvent(RefreshEvent event)
-
onInsertMessage
void onInsertMessage(InsertEvent event)
-
findUIMessage
UiMessage findUIMessage(int clientId)
-
removeUIMessage
void removeUIMessage(int messageId)
-
refreshSingleMessage
void refreshSingleMessage(UiMessage uiMessage)
-
findPositionBySendTime
int findPositionBySendTime(long sentTime)
-
executePageEvent
void executePageEvent(PageEvent pageEvent)
-
processNewMessageUnread
void processNewMessageUnread(boolean isMainThread)
-
updateNewMentionMessageUnreadBar
void updateNewMentionMessageUnreadBar()
-
hideHistoryBar
void hideHistoryBar()
-
getRefreshMessageId
int getRefreshMessageId()
-
getRefreshSentTime
long getRefreshSentTime()
-
getLoadMoreSentTime
long getLoadMoreSentTime()
-
isRemoteMessageLoadFinish
boolean isRemoteMessageLoadFinish()
-
setRemoteMessageLoadFinish
void setRemoteMessageLoadFinish(boolean remoteMessageLoadFinish)
-
isScrollToBottom
boolean isScrollToBottom()
-
setScrollToBottom
void setScrollToBottom(boolean scrollToBottom)
-
updateMentionMessage
void updateMentionMessage(Message message)
-
executePostPageEvent
void executePostPageEvent(PageEvent pageEvent)
Posts the event from a background thread to the main thread.
- Parameters:
pageEvent- the event to execute
-
onReadReceiptStateClick
void onReadReceiptStateClick(UiMessage uiMessage)
-
onReEditClick
void onReEditClick(UiMessage uiMessage)
-
onRefresh
void onRefresh()
-
cleanUnreadNewCount
void cleanUnreadNewCount()
-
addUnreadNewMessage
void addUnreadNewMessage(UiMessage message)
-
newMessageBarClick
void newMessageBarClick()
-
unreadBarClick
void unreadBarClick()
-
newMentionMessageBarClick
void newMentionMessageBarClick()
-
enterEditState
void enterEditState()
Enters edit mode.
-
forwardMessage
void forwardMessage(Intent data)
-
getSelectedUiMessages
List<UiMessage> getSelectedUiMessages()
-
onLoadMore
void onLoadMore()
-
isForegroundActivity
boolean isForegroundActivity()
-
onViewClick
void onViewClick(int clickType, UiMessage data)
-
onViewLongClick
boolean onViewLongClick(int clickType, UiMessage data)
-
getUiMessageLiveData
LiveData<List<UiMessage>> getUiMessageLiveData()
-
getNewMessageUnreadLiveData
MediatorLiveData<Integer> getNewMessageUnreadLiveData()
-
IsEditStatusLiveData
MediatorLiveData<Boolean> IsEditStatusLiveData()
-
getNewUnReadMessages
List<UiMessage> getNewUnReadMessages()
-
getNewUnReadMentionMessages
List<Message> getNewUnReadMentionMessages()
-
setNewUnReadMentionMessages
void setNewUnReadMentionMessages(List<Message> newUnReadMentionMessages)
-
showHistoryBar
void showHistoryBar(int unreadMessageCount)
-
getHistoryMessageUnreadLiveData
LiveData<Integer> getHistoryMessageUnreadLiveData()
-
showNewMentionMessageBar
void showNewMentionMessageBar(int unreadMessageCount)
-
hideNewMentionMessageBar
void hideNewMentionMessageBar()
-
getNewMentionMessageUnreadLiveData
LiveData<Integer> getNewMentionMessageUnreadLiveData()
-
onScrolled
void onScrolled(RecyclerView recyclerView, int dx, int dy, int headerCount, int footerCount)
-
getUiMessages
List<UiMessage> getUiMessages()
-
onExistUnreadMessage
void onExistUnreadMessage(long sentTime, int unreadMessageCount)
-
onResume
void onResume()
-
cleanUnreadStatus
void cleanUnreadStatus()
Clears the unread status.
-
isInitUnreadMessageFinish
boolean isInitUnreadMessageFinish()
-
setInitUnreadMessageFinish
void setInitUnreadMessageFinish(boolean initUnreadMessageFinish)
-
isInitMentionedMessageFinish
boolean isInitMentionedMessageFinish()
-
setInitMentionedMessageFinish
void setInitMentionedMessageFinish(boolean initMentionedMessageFinish)
-
onPause
void onPause()
-
stopPlay
void stopPlay()
-
onStop
void onStop()
-
onDestroy
void onDestroy()
-
filterMessageToHideNewMessageBar
boolean filterMessageToHideNewMessageBar(UiMessage uiMessage)
Filters persisted-but-uncounted messages so they do not trigger the new-message bubble UI at the bottom-right of the chat page.
- Parameters:
uiMessage- the message to check- Returns:
true if the message should be hidden from the new-message bar
-
isNormalState
boolean isNormalState()
-
isHistoryState
boolean isHistoryState()
-
onUserUpdate
void onUserUpdate(UserInfo user)
-
onGroupUpdate
void onGroupUpdate(GroupInfo group)
-
onGroupUserInfoUpdate
void onGroupUserInfoUpdate(GroupUserInfo groupUserInfo)
-
initTranslationListener
void initTranslationListener()
-
unInitTranslationListener
void unInitTranslationListener()
-
onItemViewVisible
void onItemViewVisible(boolean visible, UiMessage data)
Called when a message item becomes visible; sends a read receipt.
-
getTypingStatusInfo
MediatorLiveData<TypingInfo> getTypingStatusInfo()
-
getOnlineStatus
MediatorLiveData<UserOnlineStatus> getOnlineStatus()
-
isOnlineStatus
boolean isOnlineStatus()
-
getNotify
MediatorLiveData<Boolean> getNotify()
-
getUserOnlineStatus
void getUserOnlineStatus(String targetId)
-
getNotificationStatus
void getNotificationStatus(ChannelType channelType, String targetId)
-
-
-
-