Explorar o código

防止出现两个通话界面问题

weizhengliang %!s(int64=3) %!d(string=hai) anos
pai
achega
153d7b5b05

+ 12 - 0
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/NurseHomeActivity.kt

@@ -610,6 +610,13 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
     }
 
     fun addCallFragment(fragment: Fragment) {
+        if (skyCallFragment != null) {
+            supportFragmentManager.beginTransaction()
+                .remove(skyCallFragment)
+                .commit()
+            skyCallFragment = null
+        }
+
         skyCallFragment = fragment
         supportFragmentManager.beginTransaction()
             .setCustomAnimations(R.anim.slide_down_in, R.anim.slide_up_out)
@@ -981,6 +988,11 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
 
                     } else if (tcpModel.getAction() == TcpAction.VoiceAction.ACCEPT) {//对方接受语音
                         Log.e(TAG, "对方接受语音" + tcpModel.toJson())
+                        //同一时间只能有一个通话,如果当前正处于通话中或连接中,直接返回
+                        if (DeviceChannel.calling == true && Constants.CALL_STATE == Constants.CALL_CALLING) {
+                            return
+                        }
+
                         Constants.interactionId = interactionVO.id
                         Constants.fromId = tcpModel.fromId
                         targetId = interactionVO.toSipId