VIP广播改为使用EventBus
This commit is contained in:
@@ -9,19 +9,21 @@ import android.widget.FrameLayout
|
||||
import androidx.core.animation.doOnEnd
|
||||
import androidx.core.view.isGone
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.lifecycle.Observer
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage
|
||||
import com.yizhuan.erban.databinding.LayoutVipBroadcastViewBinding
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils
|
||||
import com.yizhuan.xchat_android_core.im.custom.bean.VipMessageAttachment
|
||||
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager
|
||||
import com.yizhuan.xchat_android_core.room.anotherroompk.ShowUserInfoDialogEvent
|
||||
import com.yizhuan.xchat_android_core.utils.subAndReplaceDot
|
||||
import com.yizhuan.xchat_android_core.vip.VipBroadcastMsgEvent
|
||||
import com.yizhuan.xchat_android_library.rxbus.RxBus
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class VipBroadcastView @JvmOverloads constructor(
|
||||
@@ -29,7 +31,6 @@ class VipBroadcastView @JvmOverloads constructor(
|
||||
) : FrameLayout(context, attrs, defStyleAttr) {
|
||||
|
||||
private val binding = LayoutVipBroadcastViewBinding.inflate(LayoutInflater.from(context))
|
||||
private val observer = Observer<ChatRoomMessage> { addMessage(it) }
|
||||
private val messages: MutableList<ChatRoomMessage> by lazy { ArrayList() }
|
||||
private var disposable: Disposable? = null
|
||||
|
||||
@@ -38,15 +39,20 @@ class VipBroadcastView @JvmOverloads constructor(
|
||||
binding.llRoot.setOnClickListener {
|
||||
RxBus.get().post(ShowUserInfoDialogEvent(binding.llRoot.tag as String))
|
||||
}
|
||||
AvRoomDataManager.get().vipBroadcastLiveData.observeForever(observer)
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
override fun onDetachedFromWindow() {
|
||||
super.onDetachedFromWindow()
|
||||
AvRoomDataManager.get().vipBroadcastLiveData.removeObserver(observer)
|
||||
EventBus.getDefault().unregister(this)
|
||||
disposable?.dispose()
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onVipBroadcastMsgEvent(event: VipBroadcastMsgEvent) {
|
||||
event.message?.let { addMessage(it) }
|
||||
}
|
||||
|
||||
private fun addMessage(chatRoomMessage: ChatRoomMessage) {
|
||||
messages.add(chatRoomMessage)
|
||||
if (isGone) {
|
||||
|
@@ -156,6 +156,7 @@ import com.yizhuan.xchat_android_core.utils.ExtensionUtils;
|
||||
import com.yizhuan.xchat_android_core.utils.LogUtils;
|
||||
import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils;
|
||||
import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver;
|
||||
import com.yizhuan.xchat_android_core.vip.VipBroadcastMsgEvent;
|
||||
import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack;
|
||||
import com.yizhuan.xchat_android_library.rxbus.RxBus;
|
||||
import com.yizhuan.xchat_android_library.utils.JavaUtil;
|
||||
@@ -1340,7 +1341,7 @@ public final class IMNetEaseManager {
|
||||
second == CUSTOM_MSG_VIP_ROOM_OPEN) {
|
||||
addMessages(msg);
|
||||
}else if (second == CUSTOM_MSG_VIP_ROOM_BROADCAST){
|
||||
AvRoomDataManager.get().vipBroadcastLiveData.postValue(msg);
|
||||
EventBus.getDefault().post(new VipBroadcastMsgEvent(msg));
|
||||
}
|
||||
break;
|
||||
case ANCHOR_ROOM_AUDIENCE_UPMIC:
|
||||
|
@@ -81,9 +81,8 @@ public final class AvRoomDataManager {
|
||||
*/
|
||||
@NonNull
|
||||
public final List<ChatRoomMember> roomSuperAdminList = new ArrayList<>();
|
||||
public final MutableLiveData<RoomPkBean> roomPkLiveData = new MutableLiveData<>();
|
||||
@NonNull
|
||||
public final MutableLiveData<ChatRoomMessage> vipBroadcastLiveData = new MutableLiveData<>();
|
||||
public final MutableLiveData<RoomPkBean> roomPkLiveData = new MutableLiveData<>();
|
||||
@Nullable
|
||||
public RoomInfo mCurrentRoomInfo;
|
||||
public BoxSwitchVo mBoxSwitchVo;
|
||||
|
@@ -0,0 +1,7 @@
|
||||
package com.yizhuan.xchat_android_core.vip
|
||||
|
||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage
|
||||
|
||||
data class VipBroadcastMsgEvent(
|
||||
val message: ChatRoomMessage? = null
|
||||
)
|
Reference in New Issue
Block a user