Переглянути джерело

feat: 补充直播间中时,IM 通话的屏蔽处理

陈文艺 1 тиждень тому
батько
коміт
b2f3add25c
2 змінених файлів з 58 додано та 0 видалено
  1. 46 0
      Lanu/Localizable.xcstrings
  2. 12 0
      Lanu/Manager/IM/LNIMManager.swift

+ 46 - 0
Lanu/Localizable.xcstrings

@@ -8833,6 +8833,52 @@
         }
       }
     },
+    "A00387" : {
+      "extractionState" : "manual",
+      "localizations" : {
+        "en" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "Please leave the room before making a call."
+          }
+        },
+        "id" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "Silakan keluar dari ruangan sebelum melakukan panggilan."
+          }
+        },
+        "zh-Hans" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "请退出房间后再发起通话"
+          }
+        }
+      }
+    },
+    "A00388" : {
+      "extractionState" : "manual",
+      "localizations" : {
+        "en" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "You are currently in a room and cannot answer the call. Please try again later."
+          }
+        },
+        "id" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "Anda saat ini berada di ruangan dan tidak dapat menjawab panggilan. Silakan coba lagi nanti"
+          }
+        },
+        "zh-Hans" : {
+          "stringUnit" : {
+            "state" : "translated",
+            "value" : "您当前在房间内,无法接听通话,请稍后再试"
+          }
+        }
+      }
+    },
     "B00001" : {
       "extractionState" : "manual",
       "localizations" : {

+ 12 - 0
Lanu/Manager/IM/LNIMManager.swift

@@ -287,6 +287,11 @@ extension LNIMManager {
             return
         }
         
+        guard LNRoomManager.shared.curRoom == nil else {
+            showToast(.init(key: "A00387"))
+            return
+        }
+        
         LNPermissionHelper.requestMicrophoneAccess { [weak self] granted in
             guard let self else { return }
             guard granted else {
@@ -433,6 +438,13 @@ extension LNIMManager: TUICallObserver {
         guard curCallInfo == nil else {
             return
         }
+        guard LNRoomManager.shared.curRoom == nil else {
+            // 在麦上,直接拒绝
+            showToast(.init(key: "A00388"))
+            rejectVoiceCall()
+            return
+        }
+        
         curCallInfo = .init(uid: callerId)
         curCallInfo?.isInCome = true