messageEx
This commit is contained in:
@@ -155,6 +155,7 @@ import com.xscm.moduleutil.http.BaseObserver
|
||||
import com.xscm.moduleutil.http.RetrofitClient
|
||||
import com.xscm.moduleutil.http.RetrofitClient.TasksMessageListener
|
||||
import com.xscm.moduleutil.interfaces.OnMusicItemClickListener
|
||||
import com.xscm.moduleutil.listener.MessageExListenerSingleton
|
||||
import com.xscm.moduleutil.listener.MessageListenerSingleton
|
||||
import com.xscm.moduleutil.listener.MessageListenerSingleton.OnMessageReceivedListener
|
||||
import com.xscm.moduleutil.rtc.AgoraManager
|
||||
@@ -1580,11 +1581,16 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
} else if (msgType == EMMessageInfo.QXRoomMessageTypeFlirtatious) { //酒吧房撩ta推送的信息
|
||||
roomFragment?.handleRoomMessage(messageEvent)
|
||||
} else if (msgType == EMMessageInfo.QXRoomMessageTypeFlirtatiousRoom) {//酒吧房约她进入小黑屋
|
||||
if (mRoomInfoResp?.user_info?.user_id == messageEvent.text.user_id.toInt() || mRoomInfoResp?.user_info?.user_id == messageEvent.text.meet_user_id.toInt()) {
|
||||
if (mRoomInfoResp?.user_info?.user_id.toString() == messageEvent.text.user_id
|
||||
|| mRoomInfoResp?.user_info?.user_id.toString() == messageEvent.text.meet_user_id) {
|
||||
if (mRoomInfoResp?.user_info?.pit_number !=0) {
|
||||
MvpPre?.downPit(roomId, mRoomInfoResp?.user_info?.pit_number.toString())
|
||||
}
|
||||
MvpPre?.postRoomInfo(messageEvent.text.room_id)
|
||||
if (publicScreenFragment != null){
|
||||
MessageExListenerSingleton.getInstance().joinGroup(messageEvent.text.room_id)
|
||||
publicScreenFragment?.setupExMessageListener()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2766,7 +2772,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
// 执行退出房间逻辑
|
||||
CommonAppContext.getInstance().isPlaying = false
|
||||
CommonAppContext.getInstance().isShow = false
|
||||
// QXGiftPlayerManager.getInstance(this).destroyEffectSvga()
|
||||
// QXGiftPlayerManager.getInstance(this).destroyEffectSvga()
|
||||
AgoraManager.getInstance().cleanup()
|
||||
|
||||
MyRoomSingleton.getInstance().onExitRoom()
|
||||
@@ -2911,6 +2917,10 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
if (voive) View.VISIBLE else View.GONE
|
||||
mBinding!!.clFirstCharge.visibility =
|
||||
if (voive) View.VISIBLE else View.GONE
|
||||
mBinding!!.rlMessage.visibility =
|
||||
if (voive) View.VISIBLE else View.GONE
|
||||
mBinding!!.rlMai.visibility =
|
||||
if (voive) View.VISIBLE else View.VISIBLE
|
||||
}
|
||||
|
||||
/** 进入小黑屋将所有的底部隐藏 */
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.xscm.modulemain.activity.room.contacts
|
||||
|
||||
import android.app.Activity
|
||||
import android.media.Image
|
||||
import android.widget.ImageView
|
||||
import com.xscm.moduleutil.activity.IPresenter
|
||||
import com.xscm.moduleutil.activity.IView
|
||||
import com.xscm.moduleutil.bean.GiftBean
|
||||
@@ -13,7 +15,7 @@ class PrivateContacts {
|
||||
|
||||
fun wallet(list:List<String>,walletBean: WalletBean?)
|
||||
|
||||
fun sendGiftResult(success:Boolean)
|
||||
fun sendGiftResult(success:Boolean,imageView: ImageView)
|
||||
|
||||
fun getGiftList(list: List<RoonGiftModel>)
|
||||
}
|
||||
@@ -23,7 +25,7 @@ class PrivateContacts {
|
||||
|
||||
fun getGiftList(roomId: String)
|
||||
|
||||
fun sendGift(mRoomId:String,giftId: String,mUserId:String)
|
||||
fun sendGift(mRoomId:String,giftId: String,mUserId:String,imageView: ImageView)
|
||||
|
||||
fun wallet(list:List<String>)
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@ import com.xscm.moduleutil.bean.room.RoomInfoResp;
|
||||
import com.xscm.moduleutil.bean.room.RoomUserBean;
|
||||
import com.xscm.moduleutil.event.RoomJoinMountModel;
|
||||
import com.xscm.moduleutil.event.RoomTaskEvent;
|
||||
import com.xscm.moduleutil.listener.MessageExListenerSingleton;
|
||||
import com.xscm.moduleutil.listener.MessageListenerSingleton;
|
||||
import com.xscm.moduleutil.rtc.MusicPlayBean;
|
||||
import com.xscm.moduleutil.utils.SpUtil;
|
||||
@@ -55,6 +56,8 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* @author qx
|
||||
* @data 2025/6/17
|
||||
@@ -69,6 +72,9 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
|
||||
private EaseChatAdapter easeChatAdapter;
|
||||
private String roomId;
|
||||
private MessageListenerSingleton.PublicScreenMessageListener messageListener;
|
||||
private MessageExListenerSingleton.PublicScreenMessageListener messageExListener;
|
||||
@Setter
|
||||
private boolean isPriRoom = false;
|
||||
|
||||
// 在需要的地方调用 Activity 的方法
|
||||
public void someMethod() {
|
||||
@@ -166,6 +172,25 @@ public class ChatRoomFragment extends BaseMvpFragment<ChatRoomPresenter, RoomFra
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置消息监听器
|
||||
*/
|
||||
public void setupExMessageListener() {
|
||||
// 创建并添加监听器
|
||||
messageExListener = message -> {
|
||||
// 确保在主线程更新 UI
|
||||
if (getActivity() != null) {
|
||||
getActivity().runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
handleRoomMessage(message);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
MessageExListenerSingleton.getInstance().addPublicScreenMessageListener(messageExListener);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查并处理缓存的消息
|
||||
*/
|
||||
|
||||
@@ -22,6 +22,8 @@ import com.xscm.moduleutil.bean.room.RoomCpUserBean
|
||||
import com.xscm.moduleutil.bean.room.RoomInfoResp
|
||||
import com.xscm.moduleutil.bean.room.RoomPitBean
|
||||
import com.xscm.moduleutil.bean.room.RoomUserBean
|
||||
import com.xscm.moduleutil.listener.MessageExListenerSingleton
|
||||
import com.xscm.moduleutil.listener.MessageListenerSingleton
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import java.util.concurrent.TimeUnit
|
||||
@@ -58,11 +60,6 @@ class RoomPrivateFragment(var mRoomInfoResp: RoomInfoResp?) :
|
||||
|
||||
private val cpUserBean: RoomCpUserBean? = mRoomInfoResp?.cp_user
|
||||
|
||||
private var currSendGiftImageView: ImageView? = null
|
||||
|
||||
override fun initData() {
|
||||
MvpPre?.getGiftList(mRoomId)
|
||||
}
|
||||
|
||||
override fun initView() {
|
||||
giftViewList.clear()
|
||||
@@ -75,15 +72,9 @@ class RoomPrivateFragment(var mRoomInfoResp: RoomInfoResp?) :
|
||||
|
||||
giftViewList.forEach { it ->
|
||||
it.setOnClickListener {
|
||||
val sendGiftUserId =
|
||||
if (mUserInfo?.user_id!!.toString() == mBinding.rpwv1.pitBean.user_id) {
|
||||
mBinding.rpwv2.pitBean.user_id
|
||||
} else {
|
||||
mBinding.rpwv1.pitBean.user_id
|
||||
}
|
||||
MvpPre.sendGift(mRoomId, it.tag.toString(), sendGiftUserId)
|
||||
val sendGiftUserId = mBinding.rpwv2.pitBean.user_id
|
||||
MvpPre.sendGift(mRoomId, it.tag.toString(), sendGiftUserId,it as ImageView)
|
||||
it.visibility = View.INVISIBLE
|
||||
currSendGiftImageView = it as? ImageView
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,7 +86,6 @@ class RoomPrivateFragment(var mRoomInfoResp: RoomInfoResp?) :
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 定义两个 RoomPitBean 对象,分别用于显示在 roomMakeWheat1 和 roomMakeWheat2
|
||||
val selfBean = RoomPitBean() // 自己的 bean
|
||||
val otherBean = RoomPitBean() // 另一个用户的 bean
|
||||
@@ -142,8 +132,10 @@ class RoomPrivateFragment(var mRoomInfoResp: RoomInfoResp?) :
|
||||
|
||||
countDownTime(cpUserBean.time_day.toLong())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun initData() {
|
||||
MvpPre?.getGiftList(mRoomId)
|
||||
}
|
||||
|
||||
fun roomInfoUpdate(roomInfoResp: RoomInfoResp) {
|
||||
@@ -171,10 +163,9 @@ class RoomPrivateFragment(var mRoomInfoResp: RoomInfoResp?) :
|
||||
|
||||
}
|
||||
|
||||
override fun sendGiftResult(success: Boolean) {
|
||||
override fun sendGiftResult(success: Boolean,itemImage: ImageView) {
|
||||
// 随机选择一个礼物
|
||||
val showList = giftList.shuffled().take(1)
|
||||
val itemImage = currSendGiftImageView
|
||||
val price = showList[0].gift_price.toInt()
|
||||
// 根据价格设置不同的宽高
|
||||
val (width, height) = when {
|
||||
@@ -186,18 +177,18 @@ class RoomPrivateFragment(var mRoomInfoResp: RoomInfoResp?) :
|
||||
val layoutParams = itemImage?.layoutParams
|
||||
layoutParams?.width = width.dpToPx() // 需要实现dp转px的扩展函数
|
||||
layoutParams?.height = height.dpToPx()
|
||||
itemImage?.layoutParams = layoutParams
|
||||
itemImage.layoutParams = layoutParams
|
||||
|
||||
// 假设 padding 值(单位:dp)
|
||||
val paddingDp = 8
|
||||
val paddingPx = paddingDp.dpToPx() // 转换为 px
|
||||
// 设置 padding(左、上、右、下)
|
||||
itemImage?.setPadding(paddingPx, paddingPx, paddingPx, paddingPx)
|
||||
currSendGiftImageView?.tag = showList[0].gift_id
|
||||
itemImage.setPadding(paddingPx, paddingPx, paddingPx, paddingPx)
|
||||
itemImage.tag = showList[0].gift_id
|
||||
Glide.with(itemImage!!)
|
||||
.load(showList[0].base_image)
|
||||
.into(itemImage)
|
||||
currSendGiftImageView?.visibility = View.VISIBLE
|
||||
itemImage.visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
override fun getGiftList(list: List<RoonGiftModel>) {
|
||||
@@ -205,7 +196,7 @@ class RoomPrivateFragment(var mRoomInfoResp: RoomInfoResp?) :
|
||||
giftList = list.toMutableList()
|
||||
val showList = list.shuffled().take(6)
|
||||
|
||||
for (i in 0 until showList.size) {
|
||||
for (i in showList.indices) {
|
||||
val itemImage = giftViewList[i]
|
||||
val price = showList[i].gift_price.toInt()
|
||||
itemImage.tag = showList[i].gift_id
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.xscm.modulemain.activity.room.presenter
|
||||
|
||||
import android.content.Context
|
||||
import android.widget.ImageView
|
||||
import com.xscm.modulemain.activity.room.contacts.MentorShipContacts
|
||||
import com.xscm.modulemain.activity.room.contacts.PrivateContacts
|
||||
import com.xscm.modulemain.activity.room.contacts.PubContacts
|
||||
@@ -48,7 +49,7 @@ class PrivatePresenter(context: Context, val view: PrivateContacts.View?) :
|
||||
})
|
||||
}
|
||||
|
||||
override fun sendGift(mRoomId:String,giftId: String,mUserId:String) {
|
||||
override fun sendGift(mRoomId:String,giftId: String,mUserId:String,imageView: ImageView) {
|
||||
RetrofitClient.getInstance().roomGift(mRoomId,giftId,"1",mUserId,"1","","","",object : BaseObserver<RoomGiftData>() {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
}
|
||||
@@ -57,7 +58,7 @@ class PrivatePresenter(context: Context, val view: PrivateContacts.View?) :
|
||||
if (MvpRef == null) {
|
||||
MvpRef = WeakReference(view)
|
||||
}
|
||||
MvpRef.get()?.sendGiftResult(true)
|
||||
MvpRef.get()?.sendGiftResult(true,imageView)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user