Class ConversationListViewModel
-
- All Implemented Interfaces:
-
io.rong.imkit.userinfo.RongUserInfoManager.UserDataObserver
public class ConversationListViewModel extends AndroidViewModel implements RongUserInfoManager.UserDataObserver
-
-
Field Summary
Fields Modifier and Type Field Description protected Array<Conversation.ConversationType>mSupportedTypesprotected intmSizePerPageprotected intmPageLimitprotected booleanmTopPriorityprotected ApplicationmApplicationprotected CopyOnWriteArrayList<BaseUiConversation>mUiConversationListprotected MediatorLiveData<List<BaseUiConversation>>mConversationListLiveDataprotected DataProcessor<Conversation>mDataFilterprotected final HandlerThreadworkThreadprotected final HandlermHandler
-
Constructor Summary
Constructors Constructor Description ConversationListViewModel(Application application)
-
Method Summary
Modifier and Type Method Description voidgetConversationList(boolean loadMore, boolean isEventManual, long delayTime)从本地数据库获取会话列表。 此处借鉴前端的函数节流思想,在 REFRESH_INTERVAL 时间内,丢弃掉其它触发,只做一次执行。 以便提高接受大量消息时的刷新性能。 voidsendRefreshEvent(boolean isEventManual, boolean loadMore)发送刷新事件 BaseUiConversationfindConversationFromList(Conversation.ConversationType conversationType, String targetId, boolean isGathered)voidsort()voidupdateByConversation(Conversation conversation)booleanisSupported(Conversation.ConversationType type)booleanisTopPriority()是否优先显示置顶会话(查询结果的排序方式,是否置顶优先,true 表示置顶会话优先返回,false 结果只以会话时间排序) voidonResume()voidonCleared()MediatorLiveData<List<BaseUiConversation>>getConversationListLiveData()LiveData<NoticeContent>getNoticeContentLiveData()获取连接状态通知内容 LiveData<Event.RefreshEvent>getRefreshEventLiveData()获取刷新事件 LiveData voidclearAllNotification()voidrefreshConversationList()voidonUserUpdate(UserInfo info)用户信息发生变更时的回调方法。 voidonGroupUpdate(Group group)群组信息发生变更时的回调方法。 voidonGroupUserInfoUpdate(GroupUserInfo groupUserInfo)群昵称信息发生变更时的回调方法。 List<String>getOnlineStatusUserIds()-
-
Method Detail
-
getConversationList
void getConversationList(boolean loadMore, boolean isEventManual, long delayTime)
从本地数据库获取会话列表。 此处借鉴前端的函数节流思想,在 REFRESH_INTERVAL 时间内,丢弃掉其它触发,只做一次执行。 以便提高接受大量消息时的刷新性能。
- Parameters:
loadMore- 是否根据上次同步的时间戳拉取更多会话。 false: 从数据库拉取最新 N 条会话。true: 根据 UI 上最后一条会话的时间戳,继续拉取之前的 N 条会话。isEventManual- 是否是用还手动触发的刷新获取,手动触发的需要主动关闭下
-
sendRefreshEvent
void sendRefreshEvent(boolean isEventManual, boolean loadMore)
发送刷新事件
- Parameters:
isEventManual- 是否是手动触发的刷新loadMore- 是否是加载更多
-
findConversationFromList
BaseUiConversation findConversationFromList(Conversation.ConversationType conversationType, String targetId, boolean isGathered)
-
sort
void sort()
-
updateByConversation
void updateByConversation(Conversation conversation)
-
isSupported
boolean isSupported(Conversation.ConversationType type)
-
isTopPriority
boolean isTopPriority()
是否优先显示置顶会话(查询结果的排序方式,是否置顶优先,true 表示置顶会话优先返回,false 结果只以会话时间排序)
-
onResume
void onResume()
-
onCleared
void onCleared()
-
getConversationListLiveData
MediatorLiveData<List<BaseUiConversation>> getConversationListLiveData()
-
getNoticeContentLiveData
LiveData<NoticeContent> getNoticeContentLiveData()
获取连接状态通知内容
-
getRefreshEventLiveData
LiveData<Event.RefreshEvent> getRefreshEventLiveData()
获取刷新事件 LiveData
- Returns:
刷新事件
-
clearAllNotification
void clearAllNotification()
-
refreshConversationList
void refreshConversationList()
-
onUserUpdate
void onUserUpdate(UserInfo info)
用户信息发生变更时的回调方法。
- Parameters:
info- 变更后的用户信息。
-
onGroupUpdate
void onGroupUpdate(Group group)
群组信息发生变更时的回调方法。
- Parameters:
group- 变更后的群信息。
-
onGroupUserInfoUpdate
void onGroupUserInfoUpdate(GroupUserInfo groupUserInfo)
群昵称信息发生变更时的回调方法。
- Parameters:
groupUserInfo- 变更后的群昵称信息。
-
getOnlineStatusUserIds
List<String> getOnlineStatusUserIds()
-
-
-
-