Quellcode durchsuchen

feat: 加入密码房

tongmengxiao vor 11 Monaten
Ursprung
Commit
b5c2c582ab

+ 4 - 3
baseswago/src/main/java/com/swago/baseswago/dialog/EnterPasswordDialog.kt

@@ -3,11 +3,9 @@ package com.swago.baseswago.dialog
 import android.os.Bundle
 import android.view.Gravity
 import android.view.View
-import android.view.View.OnClickListener
 import com.swago.baseswago.R
+import com.swago.baseswago.baseroom.SwagoRoomManager
 import com.swago.baseswago.databinding.DialogEnterPasswordBinding
-import com.swago.baseswago.databinding.DialogInviteBindingBinding
-import com.swago.baseswago.dialog.BaseXDFragment
 
 class EnterPasswordDialog : BaseXDFragment<DialogEnterPasswordBinding>() {
     var type = 0
@@ -50,6 +48,9 @@ class EnterPasswordDialog : BaseXDFragment<DialogEnterPasswordBinding>() {
         }
 
         binding.ivClose.setOnClickListener {
+            if (type == 2){
+                SwagoRoomManager.closeRoom()
+            }
             dismissAllowingStateLoss()
         }
 

+ 1 - 1
baseswago/src/main/java/com/swago/baseswago/inter/RoomApi.kt

@@ -42,7 +42,7 @@ interface RoomApi {
      * broadcast_type 直播间类型(1视频2语音)
      */
     @FormUrlEncoded
-    @POST("/v3/rtc/start/broadcast")
+    @POST("/v4/rtc/start/broadcast")
     suspend fun startLive(@Field("broadcast_type")broadcast_type:Int,@Field("broadcast_bg_url")broadcast_bg_url:String,@Field("broadcast_password_status")broadcast_password_status:Int,@Field("broadcast_password")broadcast_password:String): RoomModel
 
 

+ 4 - 1
room/src/main/java/com/swago/room/user/UserRoomFragment.kt

@@ -213,7 +213,10 @@ class UserRoomFragment : BaseComFragment<FragmentBaseComBinding>() {
 
         roomVm.passwordStatus.observe(this){
             EnterPasswordDialog.newInstance(2).apply {
-                roomVm.doUserRoomChange(it.roleType , it.iRoomInfo , it.callback)
+                this.settingPassword = {password ->
+                    roomVm.doUserRoomChange(it.roleType , it.iRoomInfo , it.callback , password)
+                }
+
             }.show(parentFragmentManager , "EnterPasswordDialog")
         }
     }

+ 8 - 3
room/src/main/java/com/swago/room/vm/RoomVm.kt

@@ -58,19 +58,24 @@ class RoomVm(application: Application) : AbsRoomVm(application) {
     private fun enterUserRoom( roleType: Int,
                                iRoomInfo: IRoomInfo,
                                callback: (canJoinRoom: Boolean) -> Unit){
+            if (iRoomInfo.getPassStatus() == 1){
+                passwordStatus.value = EnterPasswordModel(roleType , iRoomInfo , callback)
+            } else {
+                doUserRoomChange(roleType, iRoomInfo, callback)
+            }
 
-            passwordStatus.value = EnterPasswordModel(roleType , iRoomInfo , callback)
 
     }
 
     fun doUserRoomChange(
         roleType: Int,
         iRoomInfo: IRoomInfo,
-        callback: (canJoinRoom: Boolean) -> Unit
+        callback: (canJoinRoom: Boolean) -> Unit,
+        password:String?=""
     ) {
         requestData2 {
             requestData {
-                val roomModel = ApiManager.roomApi.joinRoom(iRoomInfo.getRoomId())
+                val roomModel = ApiManager.roomApi.joinRoom(iRoomInfo.getRoomId(),password)
                 val roomInfo = iRoomInfo as UserRoomModel
                 roomInfo.roomModel = roomModel
                 roomModel.join_im_data?.let {