Przeglądaj źródła

被踢出场景

DoggyZhang 1 tydzień temu
rodzic
commit
25660fa8b8

+ 1 - 0
frame/room/src/main/java/com/adealink/frame/room/data/RoomFlowData.kt

@@ -53,6 +53,7 @@ enum class LeaveRoomReason(val reason: String) {
 
     LIVE_END("live_end"),
     LOGOUT("logout"),
+    KICK_OUT("kick_out"),
 
     UNSUPPORTED_ROOM_TYPE("un_support_room_type")
 }

+ 16 - 3
module/room/src/main/java/com/adealink/weparty/room/sdk/controller/impl/JoinController.kt

@@ -29,6 +29,7 @@ import io.trtc.tuikit.atomicxcore.api.CompletionHandler
 import io.trtc.tuikit.atomicxcore.api.live.LiveEndedReason
 import io.trtc.tuikit.atomicxcore.api.live.LiveInfo
 import io.trtc.tuikit.atomicxcore.api.live.LiveInfoCompletionHandler
+import io.trtc.tuikit.atomicxcore.api.live.LiveKickedOutReason
 import io.trtc.tuikit.atomicxcore.api.live.LiveListListener
 import io.trtc.tuikit.atomicxcore.api.live.LiveListStore
 import io.trtc.tuikit.atomicxcore.api.live.StopLiveCompletionHandler
@@ -52,9 +53,15 @@ open class JoinController(override val ctx: IRoomContext, serialHandler: Handler
     private var liveInfoObserve: Job? = null
 
     private val liveListListener = object : LiveListListener() {
-        override fun onLiveEnded(liveId: String, reason: LiveEndedReason, message: String) {
-            if (liveId != joinedRoomInfo?.liveID) return
-            notifyLiveEnd(liveId, reason)
+        override fun onLiveEnded(liveID: String, reason: LiveEndedReason, message: String) {
+            if (liveID != joinedRoomInfo?.liveID) return
+            notifyLiveEnd(liveID, reason)
+        }
+
+        override fun onKickedOutOfLive(liveID: String, reason: LiveKickedOutReason, message: String) {
+            super.onKickedOutOfLive(liveID, reason, message)
+            if (liveID != joinedRoomInfo?.liveID) return
+            notifyLiveKickedOut(liveID)
         }
     }
 
@@ -319,6 +326,12 @@ open class JoinController(override val ctx: IRoomContext, serialHandler: Handler
         }
     }
 
+    private fun notifyLiveKickedOut(roomId: String) {
+        launch {
+            leaveRoom(LeaveRoomReason.KICK_OUT, true)
+        }
+    }
+
 
     private fun changeRoomState(toState: RoomState, flowStateInfo: FlowStateInfo) {
         Log.i(