Android开发融云消息列表去掉不想显示的会话

Android开发融云消息列表去掉不想显示的会话

我用的融云版本是

versionName "5.3.5.1"

去掉你不要的,得自己写去掉逻辑,首先继承BaseDataProcessor()

直接看下我的类:

class MyDataProcessor() : BaseDataProcessor<Conversation>() {

    var removeTargetIds :MutableSet<String> = mutableSetOf()

    private val supportedTypes = arrayOf(
        Conversation.ConversationType.PRIVATE,
        Conversation.ConversationType.SYSTEM
    )

    override fun supportedTypes(): Array<Conversation.ConversationType> {
        return supportedTypes
    }

    override fun filtered(p0: MutableList<Conversation>): MutableList<Conversation> {
        // 筛选时不不需要显示的去掉,发消息前和收到消息前添加到SP即可
        removeTargetIds.clear()
        if (Utils.isNotNull(SPNoCleanUtil.getSecretSendSet())) {
            removeTargetIds.addAll(SPNoCleanUtil.getSecretSendSet())
        }

        
        for (index in p0.count()-1 downTo 0){
                for (removeTargetId in removeTargetIds){
                    if (p0[index].targetId == removeTargetId){
                        p0.removeAt(index)
                        break
                    }
                }
            
        }

        return p0
    }

    override fun isGathered(p0: Conversation.ConversationType?): Boolean {
        return false
    }
}

SPNoCleanUtil.getSecretSendSet()就是你要去掉的会话集合

那它怎么用呢

		myDataProcessor = new MyDataProcessor();
        RongConfigCenter.conversationListConfig().setDataProcessor(myDataProcessor);
        //先判断Fragment是否Attach到Activity
        if (isAdded()) {
            mTransaction = getChildFragmentManager().beginTransaction();
            mTransaction.replace(R.id.ll_content, initConversationList());
            mTransaction.commitAllowingStateLoss();
           
        }
    public Fragment initConversationList() {
        if (mListFragment == null) {
            mListFragment = new ConversationListFragmentEx();
        }
        return mListFragment;
    }

这个是关键:

RongConfigCenter.conversationListConfig().setDataProcessor(myDataProcessor);

好了,有问题的欢迎评论或者私信

你可能感兴趣的:(Android开发案例分享,android,Android开发,Android教程,Android融云,Android融云消息列表筛选,Android融云列表去会话,融云消息列表去掉不要显示的会话)