|
|
@@ -72,9 +72,18 @@ class TUICallKitImpl private constructor(context: Context) : TUICallKit() {
|
|
|
}
|
|
|
Log.i(TAG_CALL_FLOW, "onCallReceived($mediaType), callId:$callId")
|
|
|
|
|
|
- if (!RoomModule.getJoinedRoomId().isNullOrEmpty()) {
|
|
|
+ if (RoomModule.isInRoom()) {
|
|
|
//用户在房,在线忙
|
|
|
- CallStore.shared.reject(null)
|
|
|
+ Log.i(TAG_CALL_FLOW, "onCallReceived($mediaType), user is room, ignore ~")
|
|
|
+ TUICallEngine.createInstance(context).ignore(object : TUICommonDefine.Callback {
|
|
|
+ override fun onSuccess() {
|
|
|
+ Log.i(TAG_CALL_FLOW, "onCallReceived($mediaType), user is room, ignore success")
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onError(errCode: Int, errMsg: String?) {
|
|
|
+ Log.i(TAG_CALL_FLOW, "onCallReceived($mediaType), user is room, ignore fail, $errCode, $errMsg")
|
|
|
+ }
|
|
|
+ })
|
|
|
return
|
|
|
}
|
|
|
|
|
|
@@ -84,6 +93,14 @@ class TUICallKitImpl private constructor(context: Context) : TUICallKit() {
|
|
|
CallManager.instance.selectAudioPlaybackDevice(TUICommonDefine.AudioPlaybackDevice.Speakerphone)
|
|
|
}
|
|
|
|
|
|
+ override fun onUserLineBusy(userId: String?) {
|
|
|
+ super.onUserLineBusy(userId)
|
|
|
+ if (CallUtils.getCallee() == userId) {
|
|
|
+ //呼叫在线忙
|
|
|
+ showToast(R.string.callkit_toast_other_party_busy)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
override fun onCallBegin(
|
|
|
callId: String?,
|
|
|
mediaType: TUICallDefine.MediaType?,
|
|
|
@@ -270,10 +287,12 @@ class TUICallKitImpl private constructor(context: Context) : TUICallKit() {
|
|
|
}
|
|
|
|
|
|
fun queryOfflineCall() {
|
|
|
-// if (FloatWindowManager.sharedInstance().isShowing) {
|
|
|
-// Log.w(TAG_CALL_KIT, "queryOfflineCall, float window is showing")
|
|
|
-// return
|
|
|
-// }
|
|
|
+ if (RoomModule.isInRoom()) {
|
|
|
+ //用户在房,在线忙
|
|
|
+ Log.w(TAG_CALL_KIT, "handleNewCall, return, for in room")
|
|
|
+ CallStore.shared.reject(null)
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
Log.i(TAG_CALL_KIT, "queryOfflineCall start")
|
|
|
val selfUser = CallStore.shared.observerState.selfInfo.value
|
|
|
@@ -358,7 +377,7 @@ class TUICallKitImpl private constructor(context: Context) : TUICallKit() {
|
|
|
CallStore.shared.observerState.selfInfo.collect { selfInfo ->
|
|
|
Log.i(TAG_CALL_KIT, "selfInfo id=${selfInfo.id} status=${selfInfo.status}")
|
|
|
notifyInternalEvent()
|
|
|
- if (selfInfo.status == CallParticipantStatus.None) {
|
|
|
+ if (selfInfo.status == CallParticipantStatus.None || RoomModule.isInRoom()) {
|
|
|
CallManager.instance.reset()
|
|
|
CallManager.instance.dismissCallingFloatWindow()
|
|
|
return@collect
|
|
|
@@ -379,6 +398,13 @@ class TUICallKitImpl private constructor(context: Context) : TUICallKit() {
|
|
|
}
|
|
|
|
|
|
private fun handleNewCall() {
|
|
|
+ if (RoomModule.isInRoom()) {
|
|
|
+ //用户在房,在线忙
|
|
|
+ Log.w(TAG_CALL_KIT, "handleNewCall, return, for in room")
|
|
|
+ CallStore.shared.reject(null)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
val floatPermission =
|
|
|
PermissionRequester.newInstance(PermissionRequester.FLOAT_PERMISSION).has()
|
|
|
val isAppInBackground = !DeviceUtils.isAppRunningForeground(context)
|