فهرست منبع

fix: 用户当前已在房,无需跳转到另一个房间,直接在当前房间拉起玩法面板

XiaodongLin 9 ماه پیش
والد
کامیت
9b7f0eced4

+ 10 - 0
app/src/main/java/com/adealink/weparty/module/room/RoomAction.kt

@@ -0,0 +1,10 @@
+package com.adealink.weparty.module.room
+
+import com.adealink.frame.mvvm.livedata.ExtMutableLiveData
+
+/**
+ * Created by XiaoDongLin.
+ * Date: 2025/7/11
+ */
+
+val openGamePlayPanel = ExtMutableLiveData<Unit>()

+ 5 - 0
app/src/main/java/com/adealink/weparty/module/task/CommonActivityRewardDialog.kt

@@ -40,6 +40,7 @@ import com.adealink.weparty.module.operation.Operation
 import com.adealink.weparty.module.operation.data.RewardDetailData
 import com.adealink.weparty.module.room.Room
 import com.adealink.weparty.module.room.RoomModule
+import com.adealink.weparty.module.room.openGamePlayPanel
 import com.adealink.weparty.stat.constant.Page
 import com.adealink.weparty.stat.reportEnterPage
 import com.adealink.weparty.util.goLocalLinkPage
@@ -148,6 +149,10 @@ class CommonActivityRewardDialog : BaseDialogFragment(R.layout.layout_activity_r
 
             AnchorMsgBtnAction.GO_ROOM_AND_OPEN_GAME -> {
                 lifecycleScope.launch {
+                    if (RoomModule.getJoinedRoomId() != null) {
+                        openGamePlayPanel.postValue(Unit)
+                        return@launch
+                    }
                     val recentRoomList = RoomModule.loadRecentRoomIdList()
                     if (recentRoomList.isNotEmpty()) {
                         val roomId = recentRoomList.first()

+ 4 - 0
module/room/src/main/java/com/adealink/weparty/room/operate/RoomBottomOperateFragment.kt

@@ -43,6 +43,7 @@ import com.adealink.weparty.module.room.data.RoomMicMode
 import com.adealink.weparty.module.room.data.SendEmotionScene
 import com.adealink.weparty.module.room.data.UpMicRequestType
 import com.adealink.weparty.module.room.listener.IRoomOperateItemListener
+import com.adealink.weparty.module.room.openGamePlayPanel
 import com.adealink.weparty.module.room.sdk.data.RoomType
 import com.adealink.weparty.permission.PermissionUtils
 import com.adealink.weparty.room.R
@@ -223,6 +224,9 @@ open class RoomBottomOperateFragment : BaseFragment(R.layout.fragment_room_botto
         applyOnMicListGuide.register(this)
         applyOnMicWaitingGuide.register(this)
 
+        openGamePlayPanel.observeWithoutCache(viewLifecycleOwner) {
+            onItemClick(playCenterOperateItem)
+        }
         activity?.intent?.let {
             val action = it.getStringExtra(Room.Room.EXTRA_ENTER_ROOM_WITH_ACTION)
             if (action == "playCenterOperate") {