自定义处理会话列表数据
数据处理机制支持对会话列表实现以下自定义操作:
- 按会话类型过滤会 话,被过滤掉的会话不在会话列表展示。
- 按自定义规则过滤会话,会话列表页面仅展示过滤后的数据。
- 设置某类型会话聚合显示,将特定类型会话合并展示。
数据处理器(抽象类)
数据处理器通过抽象类的形式提供,支持的版本为 5.1.3.x 系列中的稳定版、5.1.5 及之后所有版本。其它版本的数据处理机制请参考数据处理接口部分的说明。
数据处理器说明
名称:BaseDataProcessor
该抽象类提供三个可覆写方法,支持您按业务需求进行选择性重载以实现功能定制。
| 返回值 | 方法 |
|---|---|
| Conversation.ConversationType[] | supportedTypes() |
| List<T> | filtered(List<T> data) |
| boolean | isGathered(Conversation.ConversationType type) |
| boolean | isGathered(ConversationIdentifier identifier) |
方法说明
-
supportedTypes()会话列表页支持的会话类型数组, 默认支持所有类型的会话。
-
filtered(List<T> data)对会话数据进行过 滤,当从数据库批量拉取到会话和在线收到消息产生新会话时会回调此方法。
参数 类型 说明 data List<T> 待过滤的数据 -
isGathered(Conversation.ConversationType type)设置某一会话类型是否聚合显示,如果需要聚合显示,返回 true, 否则返回 false.
返回 true 后,该类型的所有会话在会话列表将显示为一条,点击此聚合会话将跳转到聚合会话列表,此时才展示该类型的所有会话,详情参考按类型聚合会话。
-
isGathered(ConversationIdentifier identifier)参数 类型 说明 identifier ConversationIdentifier (SDK 5.3.0 版本新增默认方法) 包含 Conversation.ConversationType、targetId(String) 。 (DataProcessor 接口的 default 方法)设置某一会话类型是否聚合显示,如果需要聚合显示,返回 true, 否则返回 false.
返回 true 后,该类型的所有会话在会话列表将显示为一条,点击此聚合会话将跳转到聚合会话列表,此时才展示该类型的所有会话,详情参考按类型聚合会话。