Browse Source

优化精简功能部分的代码,主体逻辑由TcpHandleService处理,来电亮屏跳转,事件及语音亮屏跳转,SOS亮屏跳转,更新换设备等事件亮屏重启应用,全局通话由DeviceChannel中的静态变量calling负责

allen 4 years ago
parent
commit
3dde4113e9
32 changed files with 184 additions and 1082 deletions
  1. BIN
      .gradle/4.10.1/fileContent/fileContent.lock
  2. BIN
      .gradle/4.10.1/fileHashes/fileHashes.bin
  3. BIN
      .gradle/4.10.1/fileHashes/fileHashes.lock
  4. BIN
      .gradle/4.10.1/fileHashes/resourceHashesCache.bin
  5. BIN
      .gradle/4.10.1/javaCompile/classAnalysis.bin
  6. BIN
      .gradle/4.10.1/javaCompile/javaCompile.lock
  7. BIN
      .gradle/4.10.1/javaCompile/taskHistory.bin
  8. BIN
      .gradle/4.10.1/taskHistory/taskHistory.bin
  9. BIN
      .gradle/4.10.1/taskHistory/taskHistory.lock
  10. BIN
      .gradle/4.4/fileChanges/last-build.bin
  11. BIN
      .gradle/4.4/fileContent/fileContent.lock
  12. 14 10
      common/src/main/res/layout/custom_loading.xml
  13. 1 1
      home/src/main/AndroidManifest.xml
  14. 29 67
      home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchCallRecordsActivity.kt
  15. 26 72
      home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchEventDetailActivity.kt
  16. 10 252
      home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchHome2Activity.kt
  17. 0 480
      home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchHomeActivity.kt
  18. 3 3
      home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchRegisterActivity.kt
  19. 13 99
      home/src/main/code/com/wdkl/ncs/android/component/home/activity/WebRTCVoipAudioActivity.kt
  20. 2 6
      home/src/main/code/com/wdkl/ncs/android/component/home/broadcast/BatteryBroadcastReceiver.java
  21. 0 2
      home/src/main/code/com/wdkl/ncs/android/component/home/di/HomeComponent.kt
  22. 0 13
      home/src/main/code/com/wdkl/ncs/android/component/home/service/APPService.kt
  23. 54 17
      home/src/main/code/com/wdkl/ncs/android/component/home/service/TcpHandleService.kt
  24. 0 15
      home/src/main/code/com/wdkl/ncs/android/component/home/util/NetHelper.java
  25. 4 2
      home/src/main/code/com/wdkl/ncs/android/component/home/util/Util.kt
  26. 0 13
      home/src/main/java/com/wdkl/ncs/android/component/home/SOSEmergencyCallActivity.kt
  27. 1 0
      home/src/main/res/layout/activity_web_rtc_voip_audio.xml
  28. 5 12
      middleware/src/main/code/com/wdkl/ncs/android/middleware/common/Constants.kt
  29. 3 3
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/home/WatchCallRecordsFragmentContract.kt
  30. 2 2
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/home/WatchCallRecordsFragmentPresenter.kt
  31. 12 10
      middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/channel/DeviceChannel.java
  32. 5 3
      rtc-chat/src/main/java/com/wdkl/skywebrtc/engine/webrtc/WebRTCEngine.java

BIN
.gradle/4.10.1/fileContent/fileContent.lock


BIN
.gradle/4.10.1/fileHashes/fileHashes.bin


BIN
.gradle/4.10.1/fileHashes/fileHashes.lock


BIN
.gradle/4.10.1/fileHashes/resourceHashesCache.bin


BIN
.gradle/4.10.1/javaCompile/classAnalysis.bin


BIN
.gradle/4.10.1/javaCompile/javaCompile.lock


BIN
.gradle/4.10.1/javaCompile/taskHistory.bin


BIN
.gradle/4.10.1/taskHistory/taskHistory.bin


BIN
.gradle/4.10.1/taskHistory/taskHistory.lock


BIN
.gradle/4.4/fileChanges/last-build.bin


BIN
.gradle/4.4/fileContent/fileContent.lock


+ 14 - 10
common/src/main/res/layout/custom_loading.xml

@@ -10,15 +10,19 @@
                     android:id="@+id/background"
                     android:layout_width="fill_parent"
                     android:layout_height="fill_parent">
-        <ImageView android:id="@+id/loadding_image"
-                   android:layout_width="30.0dip"
-                   android:layout_height="30.0dip"
-                   android:src="@drawable/load" />
-        <TextView android:textSize="10.0sp"
-                  android:textColor="#ffcccccc"
-                  android:gravity="center"
-                  android:layout_width="30.0dip"
-                  android:layout_height="30.0dip"
-                  android:text="TT" />
+
+        <ImageView
+            android:id="@+id/loadding_image"
+            android:layout_width="150.0dip"
+            android:layout_height="150.0dip"
+            android:src="@drawable/load" />
+
+        <TextView
+            android:layout_width="150.0dip"
+            android:layout_height="150.0dip"
+            android:gravity="center"
+            android:text="请等待"
+            android:textColor="#ffcccccc"
+            android:textSize="30.0sp" />
     </RelativeLayout>
 </LinearLayout>

+ 1 - 1
home/src/main/AndroidManifest.xml

@@ -14,7 +14,7 @@
         <activity
             android:name=".activity.HomeActivity"
             android:launchMode="singleTask" />
-        <activity android:name=".activity.WatchHomeActivity"
+        <activity android:name=".activity.WatchHome2Activity"
             android:launchMode="singleTask"/>
         <activity android:name=".activity.WatchContactsActivity" />
         <activity android:name=".activity.WatchCallRecordsActivity" />

+ 29 - 67
home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchCallRecordsActivity.kt

@@ -1,7 +1,6 @@
 package com.wdkl.ncs.android.component.home.activity
 
 import android.content.Intent
-import android.graphics.Color
 import android.os.CountDownTimer
 import android.util.Log
 import android.view.View
@@ -9,8 +8,8 @@ import com.alibaba.android.vlayout.DelegateAdapter
 import com.alibaba.android.vlayout.VirtualLayoutManager
 import com.enation.javashop.android.jrouter.external.annotation.Router
 import com.enation.javashop.net.engine.model.NetState
-import com.google.gson.FieldNamingPolicy
-import com.google.gson.GsonBuilder
+import com.enation.javashop.utils.base.tool.CommonTool
+import com.enation.javashop.utils.base.widget.LoadingDialog
 import com.scwang.smartrefresh.layout.footer.ClassicsFooter
 import com.wdkl.ncs.android.component.home.R
 import com.wdkl.ncs.android.component.home.adapter.WatchCallRecordsItemAdapter
@@ -20,13 +19,12 @@ import com.wdkl.ncs.android.component.nursehome.common.Constants
 import com.wdkl.ncs.android.lib.base.BaseActivity
 import com.wdkl.ncs.android.lib.utils.AppTool
 import com.wdkl.ncs.android.lib.utils.showMessage
-import com.wdkl.ncs.android.middleware.logic.contract.home.WatchActivityContract
 import com.wdkl.ncs.android.middleware.logic.contract.home.WatchCallRecordsFragmentContract
-import com.wdkl.ncs.android.middleware.logic.presenter.home.WatchActivityPresenter
 import com.wdkl.ncs.android.middleware.logic.presenter.home.WatchCallRecordsFragmentPresenter
 import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
 import com.wdkl.ncs.android.middleware.model.vo.WatchContactsVO
 import com.wdkl.ncs.android.middleware.tcp.TcpClient
+import com.wdkl.ncs.android.middleware.tcp.channel.DeviceChannel
 import com.wdkl.ncs.android.middleware.tcp.channel.VoiceUtil
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
@@ -40,8 +38,6 @@ import org.greenrobot.eventbus.ThreadMode
 
 @Router(path = "/watch/callrecords")
 class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter, WatchActivityCallRecordsBinding>(), WatchCallRecordsFragmentContract.View {
-
-
     var TAG = WatchCallRecordsActivity::class.java.getSimpleName()
 
     /**
@@ -60,6 +56,8 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
 
     private val watchCallRecordsItemAdapter = WatchCallRecordsItemAdapter(ArrayList())
 
+    private lateinit var loadingDialog: LoadingDialog
+
     private var customerId = ""
     private var ACTION = "ACTION"
     var all = "ALL"
@@ -71,8 +69,6 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
     private var CALL_TIMEOUT = 5 //多久可以再次点击
     //呼叫倒计时
     lateinit var countDownTimer: CountDownTimer
-    private var isClick = true //是否可点击
-
 
     override fun getLayId(): Int {
         return R.layout.watch_activity_call_records
@@ -83,9 +79,6 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
     }
 
     override fun init() {
-//        AppTool.SystemUI.showNavigationBar(this,false)
-//        AppTool.SystemUI.ImmersiveWithBottomBarColor(this, Color.BLACK)
-
         /**初始化LayoutMannager*/
         virtualLayoutManager = VirtualLayoutManager(this.activity)
 
@@ -98,34 +91,30 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
         call_records_recyv.layoutManager = virtualLayoutManager
         call_records_recyv.adapter = delegateAdapter
 
+        loadingDialog = CommonTool.createLoadingDialog(this, R.layout.custom_loading,R.id.loadding_image)
+
         receivedData = intent.getSerializableExtra("data") as WatchContactsVO?
         action = intent.getStringExtra("action")
         customerId = intent.getStringExtra("customer_id")
         if (action == all) {
             if (customerId.equals("")) {
 //            presenter.loadFloor(all, 1,30, Constants.ids.toInt(),0)
-                presenter.loadFloor(all, 1, 30, Constants.ids.toInt(), 0, 0)
+                presenter.loadPage(all, 1, 30, Constants.ids.toInt(), 0, 0)
                 call_relyout.visibility = View.GONE
             }
         } else if (action == unread) {
-            presenter.loadFloor(all, 1, 30, Constants.ids.toInt(), 0, 1)
+            presenter.loadPage(all, 1, 30, Constants.ids.toInt(), 0, 1)
             call_relyout.visibility = View.GONE
 
         } else if (action == initiator) {
             call_relyout.visibility = View.VISIBLE
-            presenter.loadFloor(initiator, 1, 30, Constants.ids.toInt(), customerId.toInt(), -1)
+            presenter.loadPage(initiator, 1, 30, Constants.ids.toInt(), customerId.toInt(), -1)
             call_relyout.setOnClickListener {
-                if (isClick) {
-
-                    Log.i(TAG, "call_relyout click 111")
-                    var tcpModel = VoiceUtil.voiceCall(Integer.parseInt(Constants.ids), receivedData!!.deviceId)
-                    TcpClient.getInstance().sendMsg(tcpModel.toJson())
-
-                    countDownTimer.start()
-                    isClick = false
-                }else{
-                    showMessage("请稍后,请勿频繁点击")
-                }
+                loadingDialog.show()
+                call_relyout.isEnabled = false
+                var tcpModel = VoiceUtil.voiceCall(Integer.parseInt(Constants.ids), receivedData!!.deviceId)
+                TcpClient.getInstance().sendMsg(tcpModel.toJson())
+                countDownTimer.start()
             }
         }
         initCountDownTimer()
@@ -152,21 +141,16 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
             intent.putExtra("tcpModelStr", tcpModel.toJson())
             startActivity(intent)
             finish()
-
         }
-
-
     }
 
     override fun destory() {
         if(countDownTimer != null){
             countDownTimer.cancel()
         }
-
     }
 
-    override fun renderFloor(data: ArrayList<InteractionVO>) {
-        Log.i(TAG, "renderFloor() " + data.size)
+    override fun renderList(data: ArrayList<InteractionVO>) {
         if (action.equals(unread)) {
             EventBus.getDefault().post(MessageEvent(data, Constants.EVENT_UNTREATED_QUANTITY))
         }
@@ -192,7 +176,6 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
             watchCallRecordsItemAdapter.notifyDataSetChanged()
         }
         refresh.finishLoadMore()
-
     }
 
 
@@ -209,52 +192,31 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
     }
 
     fun initCountDownTimer() {
-        countDownTimer = object : CountDownTimer(CALL_TIMEOUT * 1000L, 1000) {
+        countDownTimer = object : CountDownTimer(CALL_TIMEOUT * 3000L, 1000) {
             override fun onTick(millisUntilFinished: Long) {
-
             }
-
             override fun onFinish() {
-                isClick = true
+                call_relyout.isEnabled = true
             }
         }
     }
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
-        if (messageEvent.tag == 1 ) {
+        if (messageEvent.tag == 1 || messageEvent.tag == 2) {
             var tcpModel = messageEvent.getMessage() as TcpModel
-            if( tcpModel.action == TcpAction.VoiceAction.SUCCESS ) {
-
-                //data 是 InteractionVO
-//            var gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
-//            var interactionVO = gson.fromJson(tcpModel.data.toString(), InteractionVO::class.java)
-                //界面呈现
-                AppTool.Time.delay(100) {
-                    var intent = Intent()
-                    //rtc
-//                intent.setClass(this, RTCVoipAudioActivity::class.java)
-//                intent.putExtra("targetId", receivedData?.deviceSipId)
-//                intent.putExtra("TcpModel", tcpModel)
-//                intent.putExtra(RTCVoipAudioActivity.ACTION, RTCVoipAudioActivity.CALL)
-//                startActivity(intent)
-                    //sip
-//                intent.setClass(this,SipVoipAudioActivity::class.java)
-//                intent.putExtra("targetId", receivedData?.deviceSipId)
-//                intent.putExtra("TcpModel",tcpModel)
-//                intent.putExtra(SipVoipAudioActivity().ACTION, SipVoipAudioActivity().CALL)
-//                startActivity(intent)
-
-                    //webRTC
-                    intent.setClass(this, WebRTCVoipAudioActivity::class.java)
-                    intent.putExtra("targetId", receivedData?.deviceSipId)
-                    intent.putExtra("TcpModel", tcpModel)
-                    intent.putExtra(WebRTCVoipAudioActivity().ACTION, WebRTCVoipAudioActivity().CALL)
-                    startActivity(intent)
-
+            Log.i(TAG, tcpModel.toJson())
+            if (tcpModel.type == TcpType.VOICE) {
+                if (tcpModel.action == TcpAction.VoiceAction.SUCCESS) {
+                    loadingDialog.dismiss()
+                    //界面呈现,逻辑在service中
+                } else if (tcpModel.action == TcpAction.VoiceAction.FAILED) {
+                    loadingDialog.dismiss()
+                    call_relyout.isEnabled = true
+                    DeviceChannel.calling = false;
+                    showMessage("对方不在线")
                 }
             }
         }
     }
-
 }

+ 26 - 72
home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchEventDetailActivity.kt

@@ -10,6 +10,7 @@ import com.enation.javashop.android.jrouter.external.annotation.Autowired
 import com.enation.javashop.android.jrouter.external.annotation.Router
 import com.enation.javashop.net.engine.model.NetState
 import com.enation.javashop.utils.base.tool.CommonTool
+import com.enation.javashop.utils.base.widget.LoadingDialog
 import com.google.gson.FieldNamingPolicy
 import com.google.gson.Gson
 import com.google.gson.GsonBuilder
@@ -52,7 +53,6 @@ import org.greenrobot.eventbus.ThreadMode
 @Router(path = "/event/detail")
 class WatchEventDetailActivity : BaseActivity<WatchHomeActivityPresenter, WatchActivityEventDetailBinding>(), WatchHomeActivityContract.View {
 
-
     var TAG = WatchEventDetailActivity::class.java.getSimpleName()
     //参数自动注入
     @Autowired(name = "tcpModelStr", required = true)
@@ -64,7 +64,8 @@ class WatchEventDetailActivity : BaseActivity<WatchHomeActivityPresenter, WatchA
     private var CALL_TIMEOUT = 5 //多久可以再次点击
     //呼叫倒计时
     lateinit var countDownTimer: CountDownTimer
-    private var isClick = true //是否可点击
+
+    private lateinit var loadingDialog: LoadingDialog
 
     override fun getLayId(): Int {
         return R.layout.watch_activity_event_detail
@@ -88,7 +89,6 @@ class WatchEventDetailActivity : BaseActivity<WatchHomeActivityPresenter, WatchA
     override fun networkMonitor(state: NetState) {
     }
 
-
     override fun bindDagger() {
         HomeLaunch.component.inject(this)
     }
@@ -103,37 +103,28 @@ class WatchEventDetailActivity : BaseActivity<WatchHomeActivityPresenter, WatchA
         }
 
         call_relyout.setOnClickListener {
-            if (isClick) {
-                Log.i(TAG, "tcpModel 发送的 " + tcpModel?.toJson())
-                var tcpModel: TcpModel? = null
-                if (interactionVO?.actionDirectionType == 1) {
-                    tcpModel = VoiceUtil.voiceCall(Integer.parseInt(Constants.ids), interactionVO?.fromDeviceId)
-                } else {
-                    tcpModel = VoiceUtil.voiceCall(Integer.parseInt(Constants.ids), interactionVO?.toDeviceId)
-//            Log.e(TAG,"Constants.ids"+Constants.ids)
-//            Log.e(TAG,"interactionVO?.fromDeviceId"+interactionVO?.fromDeviceId)
-//                 Log.e(TAG,"interactionVO?.toDeviceId"+interactionVO?.toDeviceId)
-//
-//            Log.e(TAG,"interactionVO?.fromDeviceFrameId"+interactionVO?.fromDeviceFrameId)
-//            Log.e(TAG,"interactionVO?.toDeviceFrameId"+interactionVO?.toDeviceFrameId)
-                }
-
-                TcpClient.getInstance().sendMsg(tcpModel?.toJson())
-                countDownTimer.start()
-                isClick = false
-            }else{
-                showMessage("请稍后,请勿频繁点击")
+            loadingDialog.show()
+            call_relyout.isEnabled = false
+            Log.i(TAG, "tcpModel 发送的 " + tcpModel?.toJson())
+            var tcpModel: TcpModel? = null
+            if (interactionVO?.actionDirectionType == 1) {
+                tcpModel = VoiceUtil.voiceCall(Integer.parseInt(Constants.ids), interactionVO?.fromDeviceId)
+            } else {
+                tcpModel = VoiceUtil.voiceCall(Integer.parseInt(Constants.ids), interactionVO?.toDeviceId)
             }
+
+            TcpClient.getInstance().sendMsg(tcpModel?.toJson())
+            countDownTimer.start()
         }
 
         event_status_img.setOnClickListener {
             //event_status_img.isEnabled = false
             if (tcpModel?.type == TcpType.EVENT) {
+                loadingDialog.show()
                 var tcpModel = EventUtil.eventResponse(Integer.parseInt(Constants.ids), interactionVO!!.fromDeviceId, interactionVO!!.id)
                 TcpClient.getInstance().sendMsg(tcpModel.toJson())
             } else if (tcpModel?.type == TcpType.IM) {
                 //todo: 语音播放
-
                 if (!Constants.ids.equals("")) {
                     if (interactionVO!!.actionEnd == null) {
                         var imUtilTcpModel = ImUtil.imRead(Constants.ids.toInt(), interactionVO!!.fromDeviceId, interactionVO!!.id)
@@ -145,12 +136,10 @@ class WatchEventDetailActivity : BaseActivity<WatchHomeActivityPresenter, WatchA
                     } else {
                         MediaPlayHelper.getInstance().playUrlMusic(ApiManager.urlManager.device_url + interactionVO!!.data, 1f, false)
                     }
-
 //
                 } else {
                     showMessage("获取不到当给前设备id")
                 }
-
             }
         }
     }
@@ -161,11 +150,8 @@ class WatchEventDetailActivity : BaseActivity<WatchHomeActivityPresenter, WatchA
         }
     }
 
-
     override fun init() {
-//        AppTool.SystemUI.showNavigationBar(this,true)
-//        AppTool.SystemUI.ImmersiveWithBottomBarColor(this, Color.BLACK)
-
+        loadingDialog = CommonTool.createLoadingDialog(this, R.layout.custom_loading,R.id.loadding_image)
         initCountDownTimer()
         Log.i(TAG, "参数 tcpModelStr : " + tcpModelStr)
         tcpModel = TcpModel.getModelByJson(tcpModelStr)
@@ -206,7 +192,6 @@ class WatchEventDetailActivity : BaseActivity<WatchHomeActivityPresenter, WatchA
                         } else if (interactionVO?.actionDirectionType == 2 || interactionVO?.actionDirectionType == 3) {
                             event_text.setText("语音呼出已接")
                         }
-
                     } else {
                         //判断是呼入还是呼出 1 分机到主机 2主机到分机
                         if (interactionVO?.actionDirectionType == 1) {
@@ -214,12 +199,9 @@ class WatchEventDetailActivity : BaseActivity<WatchHomeActivityPresenter, WatchA
                         } else if (interactionVO?.actionDirectionType == 2 || interactionVO?.actionDirectionType == 3) {
                             event_text.setText("语音呼出未接")
                         }
-
                     }
-
 //                    event_text.setText("语音呼叫")
 
-
                 } else if (tcpModel?.type == TcpType.VIDEO) {
 
                     event_text.setText("视频呼叫")
@@ -234,11 +216,11 @@ class WatchEventDetailActivity : BaseActivity<WatchHomeActivityPresenter, WatchA
     fun initCountDownTimer() {
         countDownTimer = object : CountDownTimer(CALL_TIMEOUT * 1000L, 1000) {
             override fun onTick(millisUntilFinished: Long) {
-
             }
 
             override fun onFinish() {
-                isClick = true
+                loadingDialog.dismiss()
+                call_relyout.isEnabled = true
             }
         }
     }
@@ -254,54 +236,26 @@ class WatchEventDetailActivity : BaseActivity<WatchHomeActivityPresenter, WatchA
             var resTcpModel = messageEvent.getMessage() as TcpModel
             if (resTcpModel.type == TcpType.DATA && resTcpModel.action == TcpAction.DataAction.INTERACTION) {
                 if (resTcpModel.data != null) {
-
+                    loadingDialog.dismiss()
                     val responseInteractionVO = Gson().fromJson<InteractionVO>(resTcpModel.getData().toString(), InteractionVO::class.java)
 
                     if (tcpModel?.type == TcpType.IM) {
                         event_status_img.setImageResource(R.drawable.icon_hd_live_item)
-                        Toast.makeText(this, "已播放", Toast.LENGTH_SHORT)
+                        showMessage("已播放")
                     } else if (tcpModel?.type == TcpType.EVENT) {
                         event_status_img.setImageResource(R.drawable.icon_switch_on)
-                        Toast.makeText(this, "已响应", Toast.LENGTH_SHORT)
+                        showMessage("已响应")
+                        AppTool.Time.delay(1500){
+                            finish()
+                        }
                     }
 
                     event_end_text.setText(TimeTransition().stampToDate(responseInteractionVO.actionEnd * 1000))
                 }
             }
         } else if (messageEvent.tag == 1) {
-            var tcpModel = messageEvent.getMessage() as TcpModel
-//            //rtc
-//            var intent = Intent()
-//            intent.setClass(this,RTCVoipAudioActivity::class.java)
-//            intent.putExtra("targetId", interactionVO?.fromSipId)
-//            intent.putExtra("TcpModel",tcpModel)
-//            intent.putExtra(RTCVoipAudioActivity.ACTION, RTCVoipAudioActivity.CALL)
-//            startActivity(intent)
-
-            //sip
-//            var intent = Intent()
-//            intent.setClass(this,SipVoipAudioActivity::class.java)
-//            intent.putExtra("targetId", interactionVO?.fromSipId)
-//            intent.putExtra("TcpModel",tcpModel)
-//            intent.putExtra(SipVoipAudioActivity().ACTION, SipVoipAudioActivity().CALL)
-//            startActivity(intent)
-
-            //sip
-            var intent = Intent()
-            intent.setClass(this, WebRTCVoipAudioActivity::class.java)
-
-//            Log.e(TAG,"interactionVO?.actionDirectionType"+interactionVO?.actionDirectionType)
-//            Log.e(TAG,"interactionVO?.fromSipId"+interactionVO?.fromSipId)
-//            Log.e(TAG,"interactionVO?.toSipId"+interactionVO?.toSipId)
-            if(interactionVO?.actionDirectionType == 1){ //呼入
-                intent.putExtra("targetId", interactionVO?.fromSipId)
-            }else { //呼出
-                intent.putExtra("targetId", interactionVO?.toSipId)
-            }
-            intent.putExtra("TcpModel", tcpModel)
-            intent.putExtra(WebRTCVoipAudioActivity().ACTION, WebRTCVoipAudioActivity().CALL)
-            startActivity(intent)
-
+            loadingDialog.dismiss()
+            //具体逻辑在TcpHandleService中处理
         }
     }
 }

+ 10 - 252
home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchHome2Activity.kt

@@ -20,7 +20,6 @@ import android.text.TextUtils
 import android.util.Log
 import android.view.KeyEvent
 import android.view.View
-import com.enation.javashop.android.jrouter.external.annotation.Router
 import com.enation.javashop.net.engine.model.NetState
 import com.enation.javashop.net.engine.plugin.permission.RxPermissions
 import com.google.gson.Gson
@@ -32,7 +31,6 @@ import com.wdkl.ncs.android.component.home.R
 import com.wdkl.ncs.android.component.home.SOSEmergencyCallActivity
 import com.wdkl.ncs.android.component.home.broadcast.BatteryBroadcastReceiver
 import com.wdkl.ncs.android.component.home.databinding.WatchActivityHome2Binding
-import com.wdkl.ncs.android.component.home.databinding.WatchActivityHomeBinding
 import com.wdkl.ncs.android.component.home.launch.HomeLaunch
 import com.wdkl.ncs.android.component.home.service.APPService
 import com.wdkl.ncs.android.component.home.service.TcpHandleService
@@ -50,7 +48,6 @@ import com.wdkl.ncs.android.lib.utils.showMessage
 import com.wdkl.ncs.android.middleware.logic.contract.home.WatchHomeActivityContract
 import com.wdkl.ncs.android.middleware.logic.presenter.home.WatchHomeActivityPresenter
 import com.wdkl.ncs.android.middleware.model.dos.AppVersionDO
-import com.wdkl.ncs.android.middleware.model.dos.DeviceDO
 import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
 import com.wdkl.ncs.android.middleware.model.dto.TcpSeverDTO
 import com.wdkl.ncs.android.middleware.model.vo.DeviceVO
@@ -111,20 +108,16 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
     }
 
     override fun init() {
-//        AppTool.SystemUI.showNavigationBar(this,false)
-//        AppTool.SystemUI.ImmersiveWithBottomBarColor(this, Color.BLACK)
-
         val permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
 
         if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
             ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_PHONE_STATE), WRITE_EXTERNAL_STORAGE_REQUEST_CODE)
         } else {
-            //TODO
-        }
 
+        }
 
-        Constants.imei = Util().getIMEI(this)
-        Log.i(TAG, "IMEI " + Util().getIMEI(this))
+        Constants.imei = Util.getIMEI(this)
+        Log.i(TAG, "IMEI " + Util.getIMEI(this))
 
 //        Constants.mac = NetHelper.getInstance().macAddress
         //Constants.mac = "4C:C0:0A:8E:D6:BB"
@@ -143,10 +136,7 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
                 } catch (e: Exception) {
                 }
             }
-
         }).start()
-
-
     }
 
     private fun requestPermissions() {
@@ -158,23 +148,12 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
                 Manifest.permission.RECORD_AUDIO,
                 Manifest.permission.READ_PHONE_STATE)).subscribe {
             if (it) {
-//                Constants.imei = Util().getIMEI(this)
-//                Log.e(TAG, "IMEI " + Util().getIMEI(this))
-//
-//                Constants.mac = NetHelper.getInstance().macAddress
-//                //Constants.mac = "4C:C0:0A:8E:D6:BB"
-//                Log.e(TAG, "mac " + Constants.mac)
-//                tv_mac_addr.text = "MAC地址: " + Constants.mac + "\n" + "IMEI号:" + Constants.imei
-
-//                presenter.loadData(Constants.mac)//传Mac
                 presenter.loadData(Constants.imei)// 传imei
             } else {
                 showMessage("请重新授权,进入App")
                 requestPermissions()
             }
         }.joinManager(disposableManager)
-
-
     }
 
     private fun regReceiver() {
@@ -190,8 +169,6 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
             sip_state_tv.setBackgroundColor(Color.parseColor("#00FFFF"))
         })
 
-
-
         // webRTC呼叫测试
 //        var room = UUID.randomUUID().toString() + System.currentTimeMillis()
 //        var gEngineKit:SkyEngineKit? = null
@@ -213,12 +190,10 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         runOnUiThread(Runnable {
             sip_state_tv.setBackgroundColor(Color.parseColor("#FF0000"))
         })
-        Log.i(TAG, "webrtc 注册失败")
-        Log.i(TAG, "webrtc 注册失败,,,, "+(System.currentTimeMillis()-time))
+        Log.i(TAG, "webrtc 注册失败   "+(System.currentTimeMillis()-time))
         if(System.currentTimeMillis()-time >800){
             time = System.currentTimeMillis()
             Log.i(TAG, "webrtc 注册失败//// "+(System.currentTimeMillis()-time))
-
 //
 //     Log.i(TAG, "webrtc 注册失败... "+(System.currentTimeMillis()-time))
 //            var intent = Intent(this,WatchRegisterActivity::class.java)
@@ -231,9 +206,7 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
                 SocketManager.getInstance().connect(Urls.WS, Constants.sip_id, 0)
             },700)
             Looper.loop()
-
         }
-
     }
 
     private fun unRegReceiver() {
@@ -256,9 +229,6 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
     override fun destory() {
         unRegReceiver()
         SpeechUtil.getInstance().release()
-//        SipHelperUtil.getInstance(this).unRegisterSip()
-//        SipHelper.getInstance().unRegisterSip()
-
         //注销webRTC
         SocketManager.getInstance().unConnect()
 
@@ -309,10 +279,7 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         Constants.user_name = data.memberName
         Constants.user_role_name = data.roleName
 
-        if (TextUtils.isEmpty(Constants.ids) || TextUtils.isEmpty(Constants.sip_id)
-//                || TextUtils.isEmpty(Constants.user_name)
-//                || TextUtils.isEmpty(Constants.user_role_name)
-        ) {
+        if (TextUtils.isEmpty(Constants.ids) || TextUtils.isEmpty(Constants.sip_id)) {
             showMessage("初始化数据时服务器返回数据不全,请联系管理员")
             tv_feedback_device_info.text = "初始化数据时服务器返回数据不全,请联系管理员"
             return
@@ -321,12 +288,6 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
             tv_feedback_device_info.text = "初始化tcp连接数据为null"
             return
         }
-
-//        //这里的是视频通话有关的
-//        AEvent.setHandler(Handler())
-//        //这里的是视频通话有关的
-//
-////        initSDK("000100")
         initSDK(data.sipId)
         presenter.getDeviceSettingData(""+Constants.part_id)
         initInterfaceData()
@@ -344,39 +305,25 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
             Constants.heart_beat = tcpSeverDTO.readerIdleTime
 
             startConnectTcpServer()
-            showMessage("开始连接TCP服务器...")
+//            showMessage("开始连接TCP服务器...")
             requestPermissions()
         }
-
-
     }
 
     private fun startConnectTcpServer() {
         Thread(Runnable {
             run {
-                //TcpClient.getInstance().init("192.168.1.138", 5080, 9)
-                //TcpClient.getInstance().init("47.106.200.55", 5080, 9)
-
                 TcpClient.getInstance().init(Constants.tcp_server, Constants.tcp_port, Constants.heart_beat)
             }
         }).start()
     }
 
     private fun initSDK(DeviceSipId: String) {
-//        val intent = Intent(this, KeepLiveService::class.java)
-//        intent.putExtra("DeviceSipId", DeviceSipId)
-//        startService(intent)
-//
         val intent2 = Intent(this, TcpHandleService::class.java)
         startService(intent2)
 
-
         val intent3 = Intent(this, APPService::class.java)
         startService(intent3)
-
-
-//        val intent2 = Intent(this, RTCKeepLiveService::class.java)
-//        startService(intent2)
     }
 
     /**
@@ -393,10 +340,6 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
             }
         }
 
-        //开始ping网络,30秒ping一次
-//        NetHelper.startNetCheck()
-//        //SIP准备工作
-//        initSip()
         //WEBRTC 语音初始化
         // 添加登录回调
         SocketManager.getInstance().addUserStateCallback(this)
@@ -409,7 +352,7 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         teleManager = (applicationContext.getSystemService(Context.TELEPHONY_SERVICE)) as TelephonyManager
 
         netType = NetHelper.getInstance().getNetworkState(applicationContext)
-        Log.i(TAG, "wzlll 网络类型:" + netType)
+        Log.i(TAG, "网络类型:" + netType)
         if (netType == NetHelper.NETWORK_2G || netType == NetHelper.NETWORK_3G || netType == NetHelper.NETWORK_4G) {
             if (teleManager != null) {
                 teleManager.listen(object : PhoneStateListener() {
@@ -420,7 +363,6 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
                         if (lastSignal > 0) {
                             var mobileNetworkSignal = lastSignal
                         }
-                        Log.i(TAG, "wifi信号强度:" + lastSignal)
                     }
                 }, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
             }
@@ -436,10 +378,6 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         //TTS初始化
         SpeechUtil.getInstance().init(BaseApplication.appContext)
         SpeechUtil.getInstance().startSpeechThread()
-
-        //检查版本
-//        checkAppVersion()
-
     }
 
     /**
@@ -469,58 +407,6 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
     override fun networkMonitor(state: NetState) {
     }
 
-    private fun initSip() {
-
-
-//        //=============================================Sip启动服务===================================//
-//        SipHelperUtil.getInstance(this).sipStartService(Constants.sip_ip, Constants.sip_id, Constants.sip_password)
-//        //=============================================SIP状态回调===================================//
-//        SipHelperUtil.getInstance(this).setSipCallBack(this)
-//        //=============================================SIP服务监听===================================//
-//        SipHelperUtil.getInstance(this).obtainSipInfo()
-
-//        SipHelper.getInstance().sipStartService()
-//        SipHelper.getInstance().initSip(this, Constants.sip_ip,Constants.sip_id,Constants.sip_password)
-//        SipHelper.getInstance().setSipCallBack(this)
-//        SipHelper.getInstance().setSipListner(this)
-    }
-
-
-//    /**
-//     * sip开始通话    ------------------sip回调操作----------------------
-//     */
-//    override fun startCall(sipAddress: String?) {
-//        SipHelperUtil.getInstance(this).startCall(sipAddress)
-//    }
-//
-//    /**
-//     * sip自动接听
-//     */
-//    override fun autoTalking() {
-//        SipHelperUtil.getInstance(this).autoTalking()
-//    }
-//
-//    /**
-//     * sip结束通话
-//     */
-//    override fun endCall() {
-//        SipHelperUtil.getInstance(this).endCall()
-//    }
-//
-//    override fun onNewVvsipCallEvent(call: VvsipCall?) {
-//        SipHelperUtil.getInstance(this).addCallObject(call)
-//    }
-//
-//    override fun onRemoveVvsipCallEvent(call: VvsipCall?) {
-//        SipHelperUtil.getInstance(this).removeCallObject(call)
-//    }
-//
-//    override fun onStatusVvsipCallEvent(call: VvsipCall?) {
-//    }
-//
-//    override fun onRegistrationEvent(rid: Int, remote_uri: String?, code: Int, reason: String?) {
-//    }
-
     /**
      * 监听
      */
@@ -528,10 +414,8 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         when (p0.id) {
             R.id.customer_list_linlyout -> {
                 push("/watch/contacts")
-
             }
             R.id.call_records_linlyout -> {
-//                push("/watch/callrecords")
                 var intent = Intent(this, WatchCallRecordsActivity::class.java)
                 intent.putExtra("action", "ALL")
                 intent.putExtra("customer_id", "")
@@ -547,12 +431,9 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
                     intent.putExtra("customer_id", "")
                     startActivity(intent)
                 }
-
             }
             R.id.state_linlyout -> {
-
             }
-
             R.id.other_linyout -> {
                 val intent = Intent(this, WatchUserSettingActivity::class.java)
                 startActivity(intent)
@@ -574,55 +455,24 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
     }
     override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
         return if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_UP) {
-
             //不执行父类点击事件
             true
         } else super.onKeyUp(keyCode, event)
         //继续执行父类其他点击事件
     }
 
-    // ====================================== 处理tcp
-    var calling: Boolean = false
-
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
-        Log.e(TAG,""+messageEvent.tag)
-//        var tcpModels = messageEvent.getMessage() as TcpModel
-//        Log.e(TAG,""+tcpModels.getAction())
-        if (messageEvent.tag == 14) {
-            //唤醒屏幕并解锁屏幕
-            Util().wakeUpAndUnlock(this)
-
-        } else if (messageEvent.tag == Constants.EVENT_TCP_APP_UPDATE) {
-            //更新APP
-            checkAppVersion()
-        } else if (messageEvent.tag == Constants.EVENT_SIP_REGISTER_STATUS) {
-            var message = messageEvent.getMessage() as String
-            Log.i(TAG, "收到sip註冊消息 " + message)
-            runOnUiThread {
-//                if (message.equals(SipHelperUtil.REGISTERING)) {
-//                    sip_state_tv.setBackgroundColor(Color.parseColor("#FFFF00"))
-//                } else if (message.equals(SipHelperUtil.REGISTERFAIL)) {
-//                    sip_state_tv.setBackgroundColor(Color.parseColor("#FF0000"))
-//                } else if (message.equals(SipHelperUtil.REGISTERCOM)) {
-//                    sip_state_tv.setBackgroundColor(Color.parseColor("#00FFFF"))
-//                }
-            }
-        } else if (messageEvent.tag == Constants.EVENT_INTERNETPING) {
-//            SipHelperUtil.getInstance(this).obtainSipInfo()
-
-        } else if (messageEvent.tag == Constants.EVENT_UNTREATED_QUANTITY) {
+        if (messageEvent.tag == Constants.EVENT_UNTREATED_QUANTITY) {   //电量显示,由广播获取
             var message = messageEvent.getMessage() as ArrayList<InteractionVO>
             list_item_img_icon_num.text = "" + message.size
-
-        } else if (messageEvent.tag == Constants.EVENT_WIFI_RSSI) {
+        } else if (messageEvent.tag == Constants.EVENT_BATTERY_PERCENT) {
             var message = messageEvent.getMessage() as Int
             if (10 < message && message < 20) {
                 electric_quantity_tv.text = "" + message
                 battery_warning_tv.setTextColor(Color.parseColor("#FF3030"))
                 battery_warning_tv.visibility = View.VISIBLE
                 battery_warning_tv.text = "低电量,请注意充电"
-
             } else if (10 > message) {
                 electric_quantity_tv.text = "" + message
                 battery_warning_tv.setTextColor(Color.parseColor("#8B2323"))
@@ -632,95 +482,9 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
                 battery_warning_tv.visibility = View.GONE
                 electric_quantity_tv.text = "" + message
             }
-
-
-        } else if (messageEvent.tag == 0) {
-            //唤醒屏幕并解锁屏幕
-            Util().wakeUpAndUnlock(this)
-
-            var tcpModel = messageEvent.getMessage() as TcpModel
-            var responseTcpModel: TcpModel
-            Log.i(TAG, "" + tcpModel.getType() + " " + tcpModel.getAction())
-            when (tcpModel.getType()) {
-                TcpType.CALLBACK -> if (tcpModel.getAction() === TcpAction.CallbackAction.SUCCESS) {
-                    //todo: 刷新呼叫记录列表
-
-                } else if (tcpModel.getAction() === TcpAction.CallbackAction.FAILED) {
-                    //呼叫失败
-                }
-                TcpType.VOICE -> if (tcpModel.getAction() === TcpAction.VoiceAction.CALL) { //语音呼入
-                    val interactionVO = Gson().fromJson<InteractionVO>(tcpModel.getData().toString(), InteractionVO::class.java)
-                    //判断当前是否通话
-                    // 通话中
-                    if (calling) {
-                        responseTcpModel = VoiceUtil.voiceCalling(tcpModel.getToId(), tcpModel.getFromId(), interactionVO.getId())
-                        //给服务器发送正在通话中 tcp
-                        TcpClient.getInstance().sendMsg(responseTcpModel.toJson())
-                    } else {
-                        Log.i(TAG, "启动接听界面")
-                        responseTcpModel = VoiceUtil.voiceSuccess(tcpModel.getToId(), tcpModel.getFromId(), interactionVO.getId())
-                        TcpClient.getInstance().sendMsg(responseTcpModel.toJson())
-
-                        //界面呈现
-                        AppTool.Time.delay(300) {
-                            //rtc
-//                            var intent = Intent()
-//                            intent.setClass(this, RTCVoipAudioRingingActivity::class.java)
-//                            intent.putExtra("targetId", interactionVO.fromSipId)
-//                            intent.putExtra("TcpModel", tcpModel)
-//                            startActivity(intent)
-
-                            //sip
-//                            var intent = Intent()
-//                            intent.setClass(this, SipVoipAudioRingingActivity::class.java)
-//                            intent.putExtra("targetId", interactionVO.fromSipId)
-//                            intent.putExtra("TcpModel", tcpModel)
-//                            startActivity(intent)
-
-
-                            //webRTC
-                            var intent = Intent()
-                            intent.setClass(this, WebRTCVoipAudioRingingActivity::class.java)
-                            intent.putExtra("targetId", interactionVO.fromSipId)
-                            intent.putExtra("TcpModel", tcpModel)
-                            startActivity(intent)
-
-                        }
-                    }
-                } else if (tcpModel.getAction() === TcpAction.VoiceAction.HANDOFF) { //对方挂断,不论我方呼出或呼入
-                    //todo: 清掉呼出的TcpModel,通话中界面更新 --- 显示对方已挂断并停留3秒,结束至正常界面;更新左侧
-
-                } else if (tcpModel.getAction() === TcpAction.VoiceAction.SUCCESS) {
-                    //todo 更新呼出的TcpModel,data放置vo
-                }
-                TcpType.VIDEO -> {
-                }
-                TcpType.IM -> if (tcpModel.getAction() === TcpAction.IMAction.MSG) {
-                    //todo: 使用通话中界面,显示有语音留言,停留3秒,结束至正常界面
-
-                }
-                TcpType.EVENT -> if (tcpModel.getAction() === TcpAction.EventAction.KEY_CLICK) { //有新事件过来
-                    //todo: 服务端通过data给出具体的事件名称放置data。使用通话中界面,显示事件名称,停留3秒,结束至正常界面
-                    Log.i(TAG, "收到事件tcp")
-                }
-                TcpType.SOS -> if (tcpModel.getAction() === TcpAction.SOSAction.CALL) {
-                    Log.i(TAG, "" + tcpModel.getType() + " " + tcpModel.getAction())
-
-                    var intent = Intent()
-                    intent.setClass(this, SOSEmergencyCallActivity::class.java)
-                    intent.putExtra("TcpModel", tcpModel)
-                    startActivity(intent)
-                }
-                TcpType.DEVICE -> if (tcpModel.getAction() === TcpAction.DeviceAction.APP_UPDATE) {//更新APP
-                    checkAppVersion()
-                } else if (tcpModel.getAction() === TcpAction.DeviceAction.RESTART) { //刷新数据
-
-                }
-            }
         }
     }
 
-
     //WiFi监听
     inner class WifiReceiver : BroadcastReceiver() {
         override fun onReceive(context: Context, intent: Intent) {
@@ -728,21 +492,15 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
                 if (wifiManager != null && netType == NetHelper.NETWORK_WIFI) {
                     val wifiInfo = wifiManager.getConnectionInfo()
                     val wifi = wifiInfo.getRssi();//获取wifi信号强度
-//                    Log.e(TAG,"wifi 信号强度"+wifi)
-
                     if (wifi > -50 && wifi < 0) {//最强
-//                        Log.e(TAG, "wzlll 最强")
                         wifi_rssi_tv.text = "较强"
                     } else if (wifi > -70 && wifi < -50) {//较强
-//                        Log.e(TAG, "wzlll 较强")
                         wifi_rssi_tv.text = "一般"
                     } else if (wifi > -80 && wifi < -70) {//较弱
-//                        Log.e(TAG, "wzlll 较弱")
                         wifi_rssi_tv.text = "微弱"
                     } else if (wifi > -100 && wifi < -80) {//微弱
-//                        Log.e(TAG, "wzlll 微弱")
                         wifi_rssi_tv.setTextColor(Color.parseColor("#FF3030"))
-                        wifi_rssi_tv.text = "wifi信号较弱,请注意"
+                        wifi_rssi_tv.text = "信号较弱,请注意"
                     }
                 }
             }

+ 0 - 480
home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchHomeActivity.kt

@@ -1,480 +0,0 @@
-package com.wdkl.ncs.android.component.home.activity
-
-import android.content.BroadcastReceiver
-import android.content.Context
-import android.content.Intent
-import android.content.IntentFilter
-import android.graphics.Color
-import android.net.wifi.WifiManager
-import android.telephony.PhoneStateListener
-import android.telephony.SignalStrength
-import android.telephony.TelephonyManager
-import android.util.Log
-import android.view.KeyEvent
-import android.view.View
-import com.enation.javashop.android.jrouter.external.annotation.Router
-import com.enation.javashop.net.engine.model.NetState
-import com.google.gson.Gson
-import com.wdkl.core.consts.Urls
-import com.wdkl.core.socket.IUserState
-import com.wdkl.core.socket.SocketManager
-import com.wdkl.ncs.android.component.home.BuildConfig
-import com.wdkl.ncs.android.component.home.R
-import com.wdkl.ncs.android.component.home.SOSEmergencyCallActivity
-import com.wdkl.ncs.android.component.home.broadcast.BatteryBroadcastReceiver
-import com.wdkl.ncs.android.component.home.databinding.WatchActivityHomeBinding
-import com.wdkl.ncs.android.component.home.launch.HomeLaunch
-import com.wdkl.ncs.android.component.home.settingconfig.SettingConfig
-import com.wdkl.ncs.android.component.home.util.NetHelper
-import com.wdkl.ncs.android.component.home.util.SpeechUtil
-import com.wdkl.ncs.android.component.home.util.Util
-import com.wdkl.ncs.android.component.nursehome.common.Constants
-import com.wdkl.ncs.android.lib.base.BaseActivity
-import com.wdkl.ncs.android.lib.base.BaseApplication
-import com.wdkl.ncs.android.lib.utils.AppTool
-import com.wdkl.ncs.android.lib.utils.push
-import com.wdkl.ncs.android.lib.utils.showMessage
-import com.wdkl.ncs.android.middleware.logic.contract.home.WatchHomeActivityContract
-import com.wdkl.ncs.android.middleware.logic.presenter.home.WatchHomeActivityPresenter
-import com.wdkl.ncs.android.middleware.model.dos.AppVersionDO
-import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
-import com.wdkl.ncs.android.middleware.model.dto.TcpSeverDTO
-import com.wdkl.ncs.android.middleware.model.vo.DeviceVO
-import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
-import com.wdkl.ncs.android.middleware.tcp.TcpClient
-import com.wdkl.ncs.android.middleware.tcp.channel.VoiceUtil
-import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
-import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
-import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
-import com.wdkl.ncs.android.middleware.utils.MessageEvent
-import kotlinx.android.synthetic.main.watch_activity_home.*
-import org.greenrobot.eventbus.Subscribe
-import org.greenrobot.eventbus.ThreadMode
-
-@Router(path = "/watch/home")
-class WatchHomeActivity : BaseActivity<WatchHomeActivityPresenter, WatchActivityHomeBinding>(), WatchHomeActivityContract.View, View.OnClickListener, View.OnLongClickListener,IUserState {
-
-
-
-    var TAG = WatchHomeActivity::class.java.getSimpleName()
-
-    //监听网络变化
-    lateinit var wifiManager: WifiManager
-    lateinit var teleManager: TelephonyManager
-    lateinit var wifiReceiver: WifiReceiver
-    private var netType: Int = -1
-
-    lateinit var batteryBroadcastReceiver:BatteryBroadcastReceiver
-
-
-
-    override fun getLayId(): Int {
-        return R.layout.watch_activity_home
-    }
-
-    override fun bindDagger() {
-        HomeLaunch.component.inject(this)
-    }
-
-    override fun init() {
-//        AppTool.SystemUI.showNavigationBar(this,false)
-//        AppTool.SystemUI.ImmersiveWithBottomBarColor(this, Color.BLACK)
-
-
-        watch_name_tv.text = Constants.user_name
-
-        if (Constants.user_name!=null){
-            if (Constants.user_role_name!!.contains("腕表")) {
-                watch_role_name_tv.text = Constants.user_role_name!!.substring(0, (Constants.user_role_name)!!.indexOf("腕表"))
-            } else {
-                watch_role_name_tv.text = Constants.user_role_name
-            }
-        }
-
-         //开始ping网络,30秒ping一次
-//        NetHelper.startNetCheck()
-//        //SIP准备工作
-//        initSip()
-        //WEBRTC 语音初始化
-        // 添加登录回调
-        SocketManager.getInstance().addUserStateCallback(this)
-        // 连接socket:登录
-        SocketManager.getInstance().connect(Urls.WS, Constants.sip_id, 0)
-
-        Log.i(TAG,"Urls.WS "+Urls.WS+" sip_id "+Constants.sip_id)
-
-        wifiManager = (applicationContext.getSystemService(Context.WIFI_SERVICE)) as WifiManager
-        teleManager = (applicationContext.getSystemService(Context.TELEPHONY_SERVICE)) as TelephonyManager
-
-        netType = NetHelper.getInstance().getNetworkState(applicationContext)
-        Log.i(TAG, "wzlll 网络类型:" + netType)
-        if (netType == NetHelper.NETWORK_2G || netType == NetHelper.NETWORK_3G || netType == NetHelper.NETWORK_4G) {
-            if (teleManager != null) {
-                teleManager.listen(object : PhoneStateListener() {
-                    override fun onSignalStrengthsChanged(signalStrength: SignalStrength) {
-                        super.onSignalStrengthsChanged(signalStrength)
-                        val asu = signalStrength.gsmSignalStrength
-                        val lastSignal = -113 + 2 * asu;
-                        if (lastSignal > 0) {
-                            var mobileNetworkSignal = lastSignal
-                        }
-                        Log.i(TAG, "wzlll 数据连接信号强度:" + lastSignal)
-                    }
-                }, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
-            }
-        }
-        regReceiver()
-
-        batteryBroadcastReceiver = BatteryBroadcastReceiver(electric_quantity_tv)
-
-        val intentFilter = IntentFilter()
-        intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED)
-        registerReceiver(batteryBroadcastReceiver, intentFilter)
-
-        //TTS初始化
-        SpeechUtil.getInstance().init(BaseApplication.appContext)
-        SpeechUtil.getInstance().startSpeechThread()
-
-        //检查版本
-//        checkAppVersion()
-    }
-
-    private fun regReceiver() {
-        wifiReceiver = WifiReceiver()
-        val intentFilter = IntentFilter()
-        intentFilter.addAction(WifiManager.RSSI_CHANGED_ACTION)
-        registerReceiver(wifiReceiver, intentFilter)
-    }
-
-    override fun userLogin() {
-        Log.i(TAG,"webrtc 注册完成")
-        sip_state_tv.setBackgroundColor(Color.parseColor("#00FFFF"))
-          // webRTC呼叫测试
-//        var room = UUID.randomUUID().toString() + System.currentTimeMillis()
-//        var gEngineKit:SkyEngineKit? = null
-//        try {
-//            SkyEngineKit.init(VoipEvent()) //重新初始化
-//          gEngineKit = SkyEngineKit.Instance()
-//        } catch (e: NotInitializedException) {
-//            SkyEngineKit.init(VoipEvent()) //重新初始化
-//            try {
-//                gEngineKit = SkyEngineKit.Instance()
-//            } catch (ex: NotInitializedException) {
-//            }
-//        }
-//        val b = gEngineKit?.startOutCall(applicationContext, room, "4000000210", true)
-
-    }
-
-    override fun userLogout() {
-        sip_state_tv.setBackgroundColor(Color.parseColor("#FF0000"))
-        Log.i(TAG,"webrtc 注册失败")
-        var intent = Intent(this,WatchRegisterActivity::class.java)
-        startActivity(intent)
-        finish()
-    }
-
-    private fun unRegReceiver() {
-        unregisterReceiver(wifiReceiver)
-    }
-
-    override fun bindEvent() {
-        customer_list_linlyout.setOnClickListener(this)
-        call_records_linlyout.setOnClickListener(this)
-        user_name_linlyout.setOnClickListener(this)
-        user_name_linlyout.setOnLongClickListener(this)
-        state_linlyout.setOnClickListener(this)
-        other_linyout.setOnClickListener(this)
-    }
-
-    override fun destory() {
-        unRegReceiver()
-        SpeechUtil.getInstance().release()
-//        SipHelperUtil.getInstance(this).unRegisterSip()
-//        SipHelper.getInstance().unRegisterSip()
-
-         //注销webRTC
-        SocketManager.getInstance().unConnect()
-
-        if(batteryBroadcastReceiver != null){
-            unregisterReceiver(batteryBroadcastReceiver)
-        }
-    }
-
-    override fun render(appInfo: AppVersionDO) {
-        Log.d("AppUpdate", "loadAppVersion111 =====>>  version_code: " + appInfo.versionCode + ", path: " + appInfo.appPath)
-        val newAppVersion = appInfo.versionCode.substring(1)
-        Log.d("AppUpdate", "loadAppVersion222 =====>>  newAppVersion: " + newAppVersion + ", curAppVersion: " + BuildConfig.VERSION_NAME)
-        showMessage("获取版本成功,当前版本: " + BuildConfig.VERSION_NAME + ", 服务器版本: " + newAppVersion)
-
-        //服务器版本和当前版本不一致才做升级操作
-        if (!BuildConfig.VERSION_NAME.equals(newAppVersion)) {
-            Constants.APP_PATH = appInfo.appPath
-            AppTool.Time.delay(200) {
-                push("/callingbed/update")
-            }
-        }
-    }
-
-    /**
-     * 设置设备数据
-     */
-    override fun setDeviceSettingData(partSettingDO: PartSettingDO) {
-        Log.i(TAG,"收到设置设备数据 transferDuration"+partSettingDO.transferDuration)
-        Log.i(TAG,"收到设置设备数据 transferDurationLeader"+partSettingDO.transferDurationLeader)
-        if(partSettingDO != null){
-            if (!Constants.user_role_name!!.contains("护士组长")&& Constants.user_role_name!!.contains("护士")) {
-                SettingConfig.setCountdownTime(application, partSettingDO.transferDuration)
-            }else if(Constants.user_role_name!!.contains("护士组长")){
-                SettingConfig.setCountdownTime(application, partSettingDO.transferDurationLeader)
-            }
-        }
-    }
-
-    override fun showData(data: DeviceVO) {
-    }
-
-    override fun setTcpServerHost(tcpSeverDTO: TcpSeverDTO) {
-    }
-
-    fun checkAppVersion() {
-        Constants.APP_PATH = ""
-        //获取APP版本信息,7寸分机type=204
-        if (Constants.part_id != null) {
-            presenter.getAppVersion(Constants.part_id, 7)
-        }
-        Log.d("AppUpdate", "checkAppVersion =====>>  Constant.PART_ID: " + Constants.part_id)
-    }
-
-
-    override fun onError(message: String, type: Int) {
-    }
-
-    override fun complete(message: String, type: Int) {
-    }
-
-    override fun start() {
-    }
-
-    override fun networkMonitor(state: NetState) {
-    }
-    /**
-     * 监听
-     */
-    override fun onClick(p0: View) {
-        when(p0.id){
-            R.id.customer_list_linlyout ->{
-                push("/watch/contacts")
-
-            }
-            R.id.call_records_linlyout ->{
-//                push("/watch/callrecords")
-                var intent = Intent(this, WatchCallRecordsActivity::class.java)
-                intent.putExtra("action", "ALL")
-                intent.putExtra("customer_id", "")
-                startActivity(intent)
-            }
-            R.id.user_name_linlyout ->{
-                if (Constants.user_name==null){
-                    var intent = Intent(this, TakeoverActivity().javaClass)
-                    startActivity(intent)
-                } else {
-                    var intent = Intent(this, WatchCallRecordsActivity::class.java)
-                    intent.putExtra("action", "UNREAD")
-                    intent.putExtra("customer_id", "")
-                    startActivity(intent)
-                }
-            }
-            R.id.state_linlyout ->{
-
-            }
-
-            R.id.other_linyout ->{
-                val intent = Intent(this, WatchUserSettingActivity::class.java)
-                startActivity(intent)
-            }
-        }
-    }
-
-    /**
-     * 长按进入
-     */
-    override fun onLongClick(p0: View): Boolean {
-        when (p0.id) {
-            R.id.user_name_linlyout ->{
-                var intent = Intent(this, TakeoverActivity().javaClass)
-                startActivity(intent)
-            }
-        }
-        return true
-    }
-    override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
-        return if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_UP) {
-
-            //不执行父类点击事件
-            true
-        } else super.onKeyUp(keyCode, event)
-        //继续执行父类其他点击事件
-    }
-
-    // ====================================== 处理tcp
-    var calling :Boolean=false
-
-    @Subscribe(threadMode = ThreadMode.MAIN)
-    fun onMoonEvent(messageEvent: MessageEvent) {
-        Log.i(TAG,""+messageEvent.tag)
-//        var tcpModels = messageEvent.getMessage() as TcpModel
-//        Log.e(TAG,""+tcpModels.getAction())
-        if(messageEvent.tag == 14){
-            //唤醒屏幕并解锁屏幕
-            Util().wakeUpAndUnlock(this)
-
-        }else if(messageEvent.tag == 13){
-            //更新APP
-            checkAppVersion()
-        }else if(messageEvent.tag == Constants.EVENT_SIP_REGISTER_STATUS){
-            var message = messageEvent.getMessage() as String
-            Log.i(TAG,"收到sip註冊消息 "+ message)
-
-        }else if(messageEvent.tag == Constants.EVENT_INTERNETPING){
-
-
-        }else  if(messageEvent.tag == Constants.EVENT_UNTREATED_QUANTITY){
-            var message = messageEvent.getMessage() as ArrayList<InteractionVO>
-            list_item_img_icon_num.text = ""+message.size
-
-        }else if(messageEvent.tag == Constants.EVENT_WIFI_RSSI){
-            var message = messageEvent.getMessage() as Int
-            if(10< message && message < 20){
-                electric_quantity_tv.text = ""+message
-                battery_warning_tv.setTextColor(Color.parseColor("#FF3030"))
-                battery_warning_tv.visibility = View.VISIBLE
-                battery_warning_tv.text = "低电量,请注意充电"
-
-            }else if(10 > message){
-                electric_quantity_tv.text = ""+message
-                battery_warning_tv.setTextColor(Color.parseColor("#8B2323"))
-                battery_warning_tv.visibility = View.VISIBLE
-                battery_warning_tv.text = "电量过低,请充电"
-            }else{
-                battery_warning_tv.visibility = View.GONE
-                electric_quantity_tv.text = ""+message
-            }
-
-
-        }else if (messageEvent.tag == 0) {
-            //唤醒屏幕并解锁屏幕
-            Util().wakeUpAndUnlock(this)
-
-            var tcpModel = messageEvent.getMessage() as TcpModel
-            var responseTcpModel: TcpModel
-            Log.i(TAG,""+tcpModel.getType()+" "+tcpModel.getAction())
-            when (tcpModel.getType()) {
-                TcpType.CALLBACK -> if (tcpModel.getAction() === TcpAction.CallbackAction.SUCCESS) {
-                    //todo: 刷新呼叫记录列表
-
-                } else if (tcpModel.getAction() === TcpAction.CallbackAction.FAILED) {
-                    //呼叫失败
-                }
-                TcpType.VOICE -> if (tcpModel.getAction() === TcpAction.VoiceAction.CALL) { //语音呼入
-                    val interactionVO = Gson().fromJson<InteractionVO>(tcpModel.getData().toString(), InteractionVO::class.java)
-                    //判断当前是否通话
-                    // 通话中
-                    if (calling) {
-                        responseTcpModel = VoiceUtil.voiceCalling(tcpModel.getToId(), tcpModel.getFromId(), interactionVO.getId())
-                        //给服务器发送正在通话中 tcp
-                        TcpClient.getInstance().sendMsg(responseTcpModel.toJson())
-                    } else {
-                        Log.i(TAG,"启动接听界面")
-                        responseTcpModel = VoiceUtil.voiceSuccess(tcpModel.getToId(), tcpModel.getFromId(), interactionVO.getId())
-                        TcpClient.getInstance().sendMsg(responseTcpModel.toJson())
-
-                        //界面呈现
-                        AppTool.Time.delay(300) {
-                            //rtc
-//                            var intent = Intent()
-//                            intent.setClass(this, RTCVoipAudioRingingActivity::class.java)
-//                            intent.putExtra("targetId", interactionVO.fromSipId)
-//                            intent.putExtra("TcpModel", tcpModel)
-//                            startActivity(intent)
-
-                             //sip
-//                            var intent = Intent()
-//                            intent.setClass(this, SipVoipAudioRingingActivity::class.java)
-//                            intent.putExtra("targetId", interactionVO.fromSipId)
-//                            intent.putExtra("TcpModel", tcpModel)
-//                            startActivity(intent)
-
-
-
-                            //webRTC
-                            var intent = Intent()
-                            intent.setClass(this, WebRTCVoipAudioRingingActivity::class.java)
-                            intent.putExtra("targetId", interactionVO.fromSipId)
-                            intent.putExtra("TcpModel", tcpModel)
-                            startActivity(intent)
-
-                        }
-                    }
-                } else if (tcpModel.getAction() === TcpAction.VoiceAction.HANDOFF) { //对方挂断,不论我方呼出或呼入
-                    //todo: 清掉呼出的TcpModel,通话中界面更新 --- 显示对方已挂断并停留3秒,结束至正常界面;更新左侧
-
-                } else if (tcpModel.getAction() === TcpAction.VoiceAction.SUCCESS) {
-                    //todo 更新呼出的TcpModel,data放置vo
-                }
-                TcpType.VIDEO -> {
-                }
-                TcpType.IM -> if (tcpModel.getAction() === TcpAction.IMAction.MSG) {
-                    //todo: 使用通话中界面,显示有语音留言,停留3秒,结束至正常界面
-
-                }
-                TcpType.EVENT -> if (tcpModel.getAction() === TcpAction.EventAction.KEY_CLICK) { //有新事件过来
-                    //todo: 服务端通过data给出具体的事件名称放置data。使用通话中界面,显示事件名称,停留3秒,结束至正常界面
-                    Log.i(TAG, "收到事件tcp")
-                }
-                TcpType.SOS -> if (tcpModel.getAction() === TcpAction.SOSAction.CALL) {
-                    Log.i(TAG,""+tcpModel.getType()+" "+tcpModel.getAction())
-
-                    var intent = Intent()
-                    intent.setClass(this, SOSEmergencyCallActivity::class.java)
-                    intent.putExtra("TcpModel", tcpModel)
-                    startActivity(intent)
-                }
-                TcpType.DEVICE -> if (tcpModel.getAction() === TcpAction.DeviceAction.APP_UPDATE) {//更新APP
-                    checkAppVersion()
-                }else if(tcpModel.getAction() === TcpAction.DeviceAction.RESTART){ //刷新数据
-
-                }
-            }
-        }
-    }
-
-
-    //WiFi监听
-    inner class WifiReceiver: BroadcastReceiver() {
-        override fun onReceive(context: Context, intent: Intent) {
-            if (intent.action == WifiManager.RSSI_CHANGED_ACTION) {
-                if (wifiManager != null && netType == NetHelper.NETWORK_WIFI) {
-                    val wifiInfo = wifiManager.getConnectionInfo()
-                    val wifi = wifiInfo.getRssi ();//获取wifi信号强度
-//                    Log.e(TAG,"wifi 信号强度"+wifi)
-
-                    if (wifi > -50 && wifi < 0) {//最强
-//                        Log.e(TAG, "wzlll 最强")
-                        wifi_rssi_tv.text = "较强"
-                    } else if (wifi > -70 && wifi < -50) {//较强
-//                        Log.e(TAG, "wzlll 较强")
-                        wifi_rssi_tv.text = "一般"
-                    } else if (wifi > -80 && wifi < -70) {//较弱
-//                        Log.e(TAG, "wzlll 较弱")
-                        wifi_rssi_tv.text = "微弱"
-                    } else if (wifi > -100 && wifi < -80) {//微弱
-//                        Log.e(TAG, "wzlll 微弱")
-                        wifi_rssi_tv.setTextColor(Color.parseColor("#FF3030"))
-                        wifi_rssi_tv.text = "wifi信号较弱,请注意"
-                    }
-                }
-            }
-        }
-    }
-}

+ 3 - 3
home/src/main/code/com/wdkl/ncs/android/component/home/activity/WatchRegisterActivity.kt

@@ -61,8 +61,8 @@ class WatchRegisterActivity : BaseActivity<WatchDevicePresenter, WatchActivityRe
             //TODO
         }
 
-        Constants.imei = Util().getIMEI(this)
-        Log.i(TAG, "IMEI " + Util().getIMEI(this))
+        Constants.imei = Util.getIMEI(this)
+        Log.i(TAG, "IMEI " + Util.getIMEI(this))
 
         Constants.mac = NetHelper.getInstance().macAddress
         //Constants.mac = "4C:C0:0A:8E:D6:BB"
@@ -176,7 +176,7 @@ class WatchRegisterActivity : BaseActivity<WatchDevicePresenter, WatchActivityRe
 //            finish()
 //        }
 
-        var intent = Intent(this,WatchHomeActivity::class.java)
+        var intent = Intent(this,WatchHome2Activity::class.java)
         startActivity(intent)
         finish()
 

+ 13 - 99
home/src/main/code/com/wdkl/ncs/android/component/home/activity/WebRTCVoipAudioActivity.kt

@@ -45,7 +45,6 @@ import java.util.*
 class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
     var TAG = WebRTCVoipAudioActivity::class.java.simpleName
 
-
     var ACTION = "ACTION"
     var RING = "RING"
     var CALLING = "CALLING"
@@ -74,7 +73,7 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
         initCountDownTimer()
         countDownTimer.start()
 
-        //todo 设置为通话状态 有其他用户输入时 DeviceChannel设置返回通话中
+        //设置为通话状态 有其他用户输入时 DeviceChannel设置返回通话中
         DeviceChannel.calling = true
         init()
 
@@ -87,57 +86,14 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
             } catch (ex: NotInitializedException) {
                 finish()
             }
-
         }
 
-//        if (t) {
-//            // 创建会话
-//            room = UUID.randomUUID().toString() + System.currentTimeMillis()
-//            val b = gEngineKit?.startOutCall(applicationContext, room, targetId, audioOnly)
-//            if (b!!) {
-//                finish()
-//                return
-//            }
-//            val session = gEngineKit?.getCurrentSession()
-//            if (session == null) {
-//                finish()
-//            } else {
-//                session.setSessionCallback(this)
-//                session.toggleSpeaker(true)
-//            }
-//        } else {
-//            val session = gEngineKit?.getCurrentSession()
-//            if (session == null) {
-//                finish()
-//            } else {
-//                /*if (session.isAudioOnly() && !audioOnly) { //这种情况是,对方切换成音频的时候,activity还没启动,这里启动后需要切换一下
-//                    isAudioOnly = session.isAudioOnly();
-//                    fragment.didChangeMode(true);
-//                }*/
-//                Log.d(TAG, "session = " + session + "; session.getState() = " + session.state)
-//                session.setSessionCallback(this)
-//                session.toggleSpeaker(true)
-//
-//                //之前已经通过tcp接受了,此时sip通话建立,直接接通
-//                if (session.state == EnumType.CallState.Incoming) {
-//                    session.joinHome(session.roomId)
-//                } else {
-//                    session.sendRefuse()
-//                }
-//            }
-//        }
-
-
         targetId = intent.getStringExtra("targetId")
         Log.i(TAG, "SIP账号$targetId")
         tcpModel = intent.getSerializableExtra("TcpModel") as TcpModel
-//        interactionVO = (InteractionVO) getIntent().getSerializableExtra("interactionVO");
         action = intent.getStringExtra(ACTION)
 
         Log.i(TAG, "tcpModel" + tcpModel.action)
-        //测试
-//        SipHelperUtil.getInstance(this).getmSipCallBack().startCall(targetId)
-//        SipHelperUtil.getInstance(this).getmSipCallBack().startCall("3288")
 
         MediaPlayHelper.getInstance().playResMusic(R.raw.outgoing_call, 0.6f, true)
         if (tcpModel.type == TcpType.VOICE) {
@@ -150,35 +106,16 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
                 room_number_tv.text = interactionVO.toFrameFullName
                 bao_mother_name_tv.setText(interactionVO.toMemberName)
             }
-//            else if(tcpModel.action === TcpAction.VoiceAction.CALLING){
-//                showMessage("对方正在通话")
-//                val interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
-//                room_number_tv.text =  interactionVO.toFrameFullName
-//                bao_mother_name_tv.setText(interactionVO.toMemberName)
-//                MediaPlayHelper.getInstance().stopMusic()
-//                Log.e(TAG, "对方正在通话")
-//                finish()
-//
-//            }
         }
 
         if (action == CALLING) {
             Log.i(TAG, "自己同意 拨打过去。。。")
-            //主动拨打电话
-//            SipHelperUtil.getInstance(this).getmSipCallBack().startCall(targetId)
-
-
             //webRTC
             var room = UUID.randomUUID().toString() + System.currentTimeMillis()
             Log.i(TAG, "生成的房间号room " + room + "sipid targetId" + targetId)
             val b = gEngineKit?.startOutCall(applicationContext, room, targetId, true)
-            if (b!!) {
-//                finish()
-//                return
-            }
             val session = gEngineKit?.getCurrentSession()
-            if (session == null) {
-            } else {
+            if (session != null) {
                 Handler().postDelayed({
                     //防止建立连接的时候 不能成功切换外音
                     session.toggleSpeaker(true)
@@ -195,8 +132,6 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
 
         } else if (action == RING) {
             Log.i(TAG, "接电话。。。")
-            //接听电话
-//            SipHelperUtil.getInstance(this).getmSipCallBack().autoTalking()
         }
 
 
@@ -204,16 +139,11 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
 
     override fun onStart() {
         super.onStart()
-//        if(!EventBus.getDefault().isRegistered(this)) {
-//            EventBus.getDefault().register(this)
-//        }
     }
 
-
     fun init() {
         hang_up_imagev.setOnClickListener(this)
         hands_free_image.setOnClickListener(this)
-
     }
 
     override fun onClick(p0: View?) {
@@ -234,7 +164,7 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
                     EventBus.getDefault().post(MessageEvent(tcpModel, Constants.EVENT_TCP_BREAK))
                 }
 
-                //todo 给服务器发送挂断 tcp
+                //给服务器发送挂断 tcp
                 if (interactionVO != null) {
                     if (tcpModel.type == TcpType.VOICE) {
                         if (tcpModel.action === TcpAction.VoiceAction.SUCCESS) {
@@ -244,20 +174,15 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
                             val voiceUtilTcpModel = VoiceUtil.voiceHandoff(Integer.parseInt(Constants.ids), tcpModel.fromId, interactionVO.id)
                             TcpClient.getInstance().sendMsg(voiceUtilTcpModel.toJson())
                         }
-//                      SipHelperUtil.getInstance(this).getmSipCallBack().endCall()
 
                         //webrtc
                         val session = gEngineKit?.getCurrentSession()
                         if (session != null) {
-                            SkyEngineKit.Instance().endCall()
+                            session.leave()
                         }
-
                         finish()
-
                     }
-
                 }
-
             }
             R.id.hands_free_image -> {
                 Log.i(TAG,"handsFree "+handsFree)
@@ -278,19 +203,14 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
                     }
                     handsFree = false
                 }
-
             }
-
-
         }
 
     }
     fun initCountDownTimer() {
         countDownTimer = object : CountDownTimer(CALL_TIMEOUT * 1000L, 1000) {
             override fun onTick(millisUntilFinished: Long) {
-
             }
-
             override fun onFinish() {
                 isClick = true
             }
@@ -306,9 +226,6 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
             if (tcpModel.action === TcpAction.VoiceAction.ACCEPT) {
                 MediaPlayHelper.getInstance().stopMusic()
                 Log.i(TAG, "对方接听电话啦")
-                //data 是 InteractionVO
-                //   Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create();
-                //  InteractionVO interactionVO = gson.fromJson(tcpModel.getData().toString(), InteractionVO.class);
                 MediaPlayHelper.getInstance().stopMusic()
                 call_duration_tv.visibility = View.VISIBLE
 
@@ -318,44 +235,43 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
                     call_duration_tv.start()
 
                 }, 2900)
-//                SipHelperUtil.getInstance(this).getmSipCallBack().startCall(targetId)
 
                 var room = UUID.randomUUID().toString() + System.currentTimeMillis()
                 Log.i(TAG, "生成的房间号room " + room + "sipid targetId" + targetId)
 
                 val b = gEngineKit?.startOutCall(applicationContext, room, targetId, true)
-                if (b!!) {
-//                finish()
-//                return
-                }
                 val session = gEngineKit?.getCurrentSession()
-                if (session == null) {
-                } else {
+                if (session != null) {
                     Handler().postDelayed({
                         session.toggleSpeaker(true)
                     }, 3500)
-
                 }
-
             } else if (tcpModel.action == TcpAction.VoiceAction.HANDOFF) { //对方挂断
                 call_duration_tv.stop()
+                val session = gEngineKit?.getCurrentSession()
+                if (session != null) {
+                    session.leave()
+                }
+                DeviceChannel.calling = false;
                 finish()
             } else if (tcpModel.action === TcpAction.VoiceAction.REJECT) {
                 //voiceStatus.setText("对方拒绝接听");
                 showMessage("对方拒绝接听")
                 MediaPlayHelper.getInstance().stopMusic()
+                DeviceChannel.calling = false;
                 finish()
             } else if (tcpModel.action === TcpAction.VoiceAction.CALLING) {
                 //voiceStatus.setText("对方正在通话");
                 showMessage("对方正在通话")
+                DeviceChannel.calling = false;
                 AppTool.Time.delay(3000) {
                     MediaPlayHelper.getInstance().stopMusic()
                     finish()
                 }
-
             } else if (tcpModel.action === TcpAction.VoiceAction.FAILED) {
                 //voiceStatus.setText("对方拒绝");
                 showMessage("呼叫失败,对方可能不在线")
+                DeviceChannel.calling = false;
                 MediaPlayHelper.getInstance().stopMusic()
                 finish()
             }
@@ -421,7 +337,5 @@ class WebRTCVoipAudioActivity : Activity(), View.OnClickListener {
         }
         MediaPlayHelper.getInstance().stopMusic()
         EventBus.getDefault().unregister(this)
-
     }
-
 }

+ 2 - 6
home/src/main/code/com/wdkl/ncs/android/component/home/broadcast/BatteryBroadcastReceiver.java

@@ -4,7 +4,6 @@ import android.annotation.SuppressLint;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
-import android.util.Log;
 import android.widget.TextView;
 
 import com.wdkl.ncs.android.component.nursehome.common.Constants;
@@ -14,7 +13,7 @@ import org.greenrobot.eventbus.EventBus;
 
 
 public class BatteryBroadcastReceiver extends BroadcastReceiver {
-private String TAG = BatteryBroadcastReceiver.class.getSimpleName();
+    private String TAG = BatteryBroadcastReceiver.class.getSimpleName();
 
     private TextView mBatteryView;
 
@@ -29,10 +28,7 @@ private String TAG = BatteryBroadcastReceiver.class.getSimpleName();
             int level = intent.getIntExtra("level", 0);
             int scale = intent.getIntExtra("scale", 100);
             int power = level * 100 / scale;
-           Log.e(TAG, "电池电量::" + power);
-//            mBatteryView.setText(power);
-
-            EventBus.getDefault().post(new MessageEvent(power, Constants.Companion.getEVENT_WIFI_RSSI()));
+            EventBus.getDefault().post(new MessageEvent(power, Constants.EVENT_BATTERY_PERCENT));
         }
     }
 }

+ 0 - 2
home/src/main/code/com/wdkl/ncs/android/component/home/di/HomeComponent.kt

@@ -24,8 +24,6 @@ interface HomeComponent {
     //手表
     fun inject(activity: WatchRegisterActivity)
 
-    fun inject(activity: WatchHomeActivity)
-
     fun inject(activity: WatchHome2Activity)
 
     fun inject(activity: AppUpdateActivity)

+ 0 - 13
home/src/main/code/com/wdkl/ncs/android/component/home/service/APPService.kt

@@ -70,7 +70,6 @@ class APPService : Service() {
                 try {
                 } catch (e: Exception) {
                 }
-
             }
         }
         timer!!.schedule(timerTask, 0, 30000)
@@ -97,10 +96,8 @@ class APPService : Service() {
             }
         }
         timer2!!.schedule(timerTask2, 8000, 5000)
-
     }
 
-
     var timer3: Timer? = null
     var timerTask3: TimerTask? = null
 
@@ -122,7 +119,6 @@ class APPService : Service() {
 //                Log.e(TAG, "tcpModel" + interactionVO!!.id!!)
 //                Log.e(TAG, "tcpModel" + tcpModel?.toJson())
 
-
                         //todo 给服务器发送挂断 tcp
                         if (interactionVO != null) {
                             if (tcpModel?.type == TcpType.VOICE) {
@@ -141,11 +137,8 @@ class APPService : Service() {
             }
         }
         timer3!!.schedule(timerTask3, 2000, 1000)
-
     }
 
-
-
     override fun onDestroy() {
         super.onDestroy()
         if (countDownTimer != null) {
@@ -157,7 +150,6 @@ class APPService : Service() {
 
     inner class ServiceBinder : Binder() {
         fun doThings() {
-
         }
     }
 
@@ -205,10 +197,6 @@ class APPService : Service() {
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
-
-
-        Log.e(TAG, "messageEvent.tag" + messageEvent.tag)
-
         if (messageEvent.tag == Constants.EVENT_TCP_BREAK) {
             tcpModel = messageEvent.getMessage() as TcpModel
 //            countDownTimer.start()
@@ -280,6 +268,5 @@ class APPService : Service() {
 //        }
 
         }
-
     }
 }

+ 54 - 17
home/src/main/code/com/wdkl/ncs/android/component/home/service/TcpHandleService.kt

@@ -4,15 +4,16 @@ import android.app.Service
 import android.content.Intent
 import android.os.IBinder
 import android.util.Log
-import com.google.gson.FieldNamingPolicy
 import com.google.gson.Gson
-import com.google.gson.GsonBuilder
+import com.wdkl.ncs.android.component.home.SOSEmergencyCallActivity
 import com.wdkl.ncs.android.component.home.activity.WatchEventDetailActivity
+import com.wdkl.ncs.android.component.home.activity.WebRTCVoipAudioActivity
 import com.wdkl.ncs.android.component.home.util.AppUtils
 import com.wdkl.ncs.android.component.home.util.SpeechUtil
+import com.wdkl.ncs.android.component.home.util.Util
 import com.wdkl.ncs.android.component.nursehome.common.Constants
-import com.wdkl.ncs.android.lib.utils.push
 import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
+import com.wdkl.ncs.android.middleware.tcp.channel.DeviceChannel
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
@@ -43,19 +44,38 @@ class TcpHandleService : Service(){
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
-        Log.i("TcpHandleService", "MessageEvent : " + messageEvent.tag)
-        if (messageEvent.tag==2){
-            var tcpModel = messageEvent.getMessage() as TcpModel
-           Log.i("tag",tcpModel.toJson())
-        }
+        if (messageEvent.tag==1){   //拨出成功 || 有来电
+            Util.wakeUpAndUnlock(this)
 
-        if (messageEvent.tag==3){
             var tcpModel = messageEvent.getMessage() as TcpModel
-            Log.i("TcpHandleService", "TcpModel : " + tcpModel.fromId)
+            if (tcpModel.type == TcpType.VOICE){
+//                var gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
+                var interactionVO = Gson().fromJson(tcpModel.data.toString(), InteractionVO::class.java)
+                var intent = Intent()
+                intent.setClass(this, WebRTCVoipAudioActivity::class.java)
+
+                if (tcpModel.action == TcpAction.VoiceAction.SUCCESS){  //拨出成功
+                    DeviceChannel.calling = true;
+                    intent.putExtra("targetId", interactionVO?.toSipId)
+                    intent.putExtra("TcpModel", tcpModel)
+                    intent.putExtra(WebRTCVoipAudioActivity().ACTION, WebRTCVoipAudioActivity().CALL)
+                    startActivity(intent)
+                } else if (tcpModel.action == TcpAction.VoiceAction.CALL){  //有来电
+                    DeviceChannel.calling = true;
+                    intent.putExtra("targetId", interactionVO?.fromSipId)
+                    intent.putExtra("TcpModel", tcpModel)
+                    intent.putExtra(WebRTCVoipAudioActivity().ACTION, WebRTCVoipAudioActivity().CALL)
+                    startActivity(intent)
+                }
+            }
+        } else if (messageEvent.tag==3){   //事件与语音留言通道
+            while (DeviceChannel.calling) {    //通话中不处理,一直等待至结束
+                Thread.sleep(3000)
+            }
 
-            //data 是 InteractionVO
-            //var gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
-            //var interactionVO = gson.fromJson(tcpModel.data.toString(), InteractionVO::class.java)
+            Util.wakeUpAndUnlock(this)
+
+            var tcpModel = messageEvent.getMessage() as TcpModel
             if (tcpModel.type == TcpType.IM) {
                 SpeechUtil.getInstance().newSpeech("您有新的语音留言待处理", false)
             } else if (tcpModel.type == TcpType.EVENT) {
@@ -70,13 +90,30 @@ class TcpHandleService : Service(){
             var intent = Intent()
             intent.setClass(this, WatchEventDetailActivity::class.java)
             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
-            //todo: 不优雅的传输,应该直接传递对象
-            intent.putExtra("tcpModelStr",tcpModel.toJson())
+            intent.putExtra("tcpModelStr", tcpModel.toJson())
             startActivity(intent)
+        } else if (messageEvent.tag == 999){    //SOS通道
+            while (DeviceChannel.calling) {    //通话中不处理,一直等待至结束
+                Thread.sleep(3000)
+            }
+
+            Util.wakeUpAndUnlock(this)
+
+            var tcpModel = messageEvent.getMessage() as TcpModel
+            if (tcpModel.type == TcpType.SOS && tcpModel.action === TcpAction.SOSAction.CALL) {
+                var intent = Intent()
+                intent.setClass(this, SOSEmergencyCallActivity::class.java)
+                intent.putExtra("TcpModel", tcpModel)
+                startActivity(intent)
+            }
         } else if (messageEvent.tag == Constants.EVENT_TCP_APP_UPDATE) {
-            //重新刷新数据
+            while (DeviceChannel.calling) {    //通话中不处理,一直等待至结束
+                Thread.sleep(3000)
+            }
+
+            Util.wakeUpAndUnlock(this)
             var tcpModel = messageEvent.getMessage() as TcpModel
-            if (tcpModel.action==TcpAction.DeviceAction.RESTART) {
+            if (tcpModel.action == TcpAction.DeviceAction.RESTART) {
                 AppUtils.restartApp()
             }
         }

+ 0 - 15
home/src/main/code/com/wdkl/ncs/android/component/home/util/NetHelper.java

@@ -70,21 +70,6 @@ public class NetHelper {
         connManager = (ConnectivityManager) BaseApplication.appContext.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
     }
 
-    public static void startNetCheck() {
-        if (timerNetStatus != null) {
-            timerNetStatus.purge();
-        }
-        timerNetStatus = new Timer();
-        timerNetStatus.schedule(new TimerTask() {
-            @Override
-            public void run() {
-                NetConn = ping(getLocalElement(3), 2, null);
-
-                EventBus.getDefault().post(new MessageEvent(ETHERNETSTATUS, Constants.Companion.getEVENT_INTERNETPING()));//循环检测SIP,以太网ping状态
-            }
-        }, 10, SCHEDULE_TIME);
-    }
-
     /**
      * ping 网络
      *

+ 4 - 2
home/src/main/code/com/wdkl/ncs/android/component/home/util/Util.kt

@@ -11,7 +11,7 @@ import android.telephony.TelephonyManager
 import com.umeng.socialize.utils.DeviceConfig
 
 
-class Util {
+object Util {
 
     var IMEI = ""
 
@@ -29,7 +29,9 @@ class Util {
         return IMEI
     }
 
-
+    /**
+     * 亮屏并解锁
+     */
     fun wakeUpAndUnlock(context: Context){
         val pm = context.getSystemService(Context.POWER_SERVICE) as PowerManager
         val screenOn = pm.isScreenOn

+ 0 - 13
home/src/main/java/com/wdkl/ncs/android/component/home/SOSEmergencyCallActivity.kt

@@ -35,11 +35,8 @@ class SOSEmergencyCallActivity : Activity(), View.OnClickListener {
         interactionVO = Gson().fromJson(tcpModel!!.getData().toString(), InteractionVO::class.java)
         init()
         MediaPlayHelper.getInstance().playResMusic(R.raw.sos2, 1.0f, true)
-
-
     }
 
-
     override fun onStart() {
         super.onStart()
         EventBus.getDefault().register(this)
@@ -59,11 +56,8 @@ class SOSEmergencyCallActivity : Activity(), View.OnClickListener {
                 var otherUtilTcpModel = OtherUtil.SOSCancel(Constants.ids.toInt(), tcpModel?.fromId, interactionVO?.id)
                 TcpClient.getInstance().sendMsg(otherUtilTcpModel.toJson())
                 finish()
-
             }
         }
-
-
     }
 
 
@@ -84,22 +78,15 @@ class SOSEmergencyCallActivity : Activity(), View.OnClickListener {
                 TcpType.SOS -> if (tcpModel.getAction() === TcpAction.SOSAction.CANCEL) {
                     finish()
                 }
-
             }
         }
-
-
     }
 
-
     override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
         return if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() === KeyEvent.ACTION_UP) {
-
             //不执行父类点击事件
             true
         } else super.onKeyUp(keyCode, event)
         //继续执行父类其他点击事件
     }
-
-
 }

+ 1 - 0
home/src/main/res/layout/activity_web_rtc_voip_audio.xml

@@ -2,6 +2,7 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:keepScreenOn="true"
     android:background="#FFE6E8">
 
     <LinearLayout

+ 5 - 12
middleware/src/main/code/com/wdkl/ncs/android/middleware/common/Constants.kt

@@ -18,23 +18,16 @@ class Constants {
         var heart_beat: Int = 9    //tcp心跳
         var tts_state: Int = 0
 
+        const val EVENT_BATTERY_PERCENT = 0x07 //WiFi信号强度
 
-        val EVENT_SIP_REGISTER_STATUS = 0x08 //sip 注册状态
+        const val EVENT_UNTREATED_QUANTITY = 0x10 //未处理数量
 
-        val EVENT_INTERNETPING = 0x09 //以太网ping状态
+        const val EVENT_TCP_BREAK = 0x15 //tcp掉线
 
-        val EVENT_WIFI_RSSI = 0x07 //WiFi信号强度
+        const val EVENT_TCP_RETRANSMISSION  = 0x16 //tcp掉线
 
-        val EVENT_UNTREATED_QUANTITY = 0x10 //未处理数量
-
-        val EVENT_TCP_BREAK = 0x15 //tcp掉线
-
-        val EVENT_TCP_RETRANSMISSION  = 0x16 //tcp掉线
-
-        val EVENT_TCP_APP_UPDATE  = 0x13 //app更新
+        const val EVENT_TCP_APP_UPDATE  = 0x13 //app更新
 
         var APP_PATH = "" //app版本
     }
-
-
 }

+ 3 - 3
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/home/WatchCallRecordsFragmentContract.kt

@@ -26,7 +26,7 @@ interface WatchCallRecordsFragmentContract {
          * @From   HomeFragmentContract.View
          * @Note   展示七巧板数据
          */
-        fun renderFloor(data : ArrayList<InteractionVO>)
+        fun renderList(data : ArrayList<InteractionVO>)
 
         /**
          *  显示呼叫人的呼叫数据
@@ -49,8 +49,8 @@ interface WatchCallRecordsFragmentContract {
          * @Date   2018/1/19 下午5:53
          * @Note   加载七巧板数据
          */
-        fun loadFloor(ACTION:String, page_no:Int, page_size:Int, device_id:Int,
-                      customer_id:Int,choice:Int)
+        fun loadPage(ACTION:String, page_no:Int, page_size:Int, device_id:Int,
+                     customer_id:Int, choice:Int)
 
 //        /**
 //         * 获取呼叫人的呼叫记录

+ 2 - 2
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/home/WatchCallRecordsFragmentPresenter.kt

@@ -51,7 +51,7 @@ class WatchCallRecordsFragmentPresenter @Inject constructor() :RxPresenter<Watch
         override fun onNextWithConnection(result: Any, connectionQuality: ConnectionQuality) {
             providerView().complete()
 //            Log.e("WatchCallRecordsFragmentPresenter","result "+result)
-            providerView().renderFloor(result as ArrayList<InteractionVO>)
+            providerView().renderList(result as ArrayList<InteractionVO>)
 //            providerView().showInitiatorData(result as ArrayList<InteractionVO>)
         }
 
@@ -82,7 +82,7 @@ class WatchCallRecordsFragmentPresenter @Inject constructor() :RxPresenter<Watch
      * @Note   加载七巧板数据
      */
     @SuppressLint("LongLogTag")
-    override fun loadFloor(ACTION:String,page_no:Int,page_size:Int,device_id:Int,customer_id: Int,choice:Int) {
+    override fun loadPage(ACTION:String, page_no:Int, page_size:Int, device_id:Int, customer_id: Int, choice:Int) {
         //page_no页码  page_size每页显示的数量  device_id设备ID
         Log.e("WatchCallRecordsFragmentPresenter","qqqqqqq")
         //获取全部通话记录数据

+ 12 - 10
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/channel/DeviceChannel.java

@@ -28,17 +28,19 @@ public class DeviceChannel {
 
     public static TcpModel handleTcpReceived(TcpModel tcpModel){
         TcpModel responseTcpModel = null;
-
-        Log.e(TAG,"收到tcp消息 DeviceChannel "+tcpModel.getType());
         Log.e(TAG,"收到tcp消息 DeviceChannel "+tcpModel.toJson());
 
         if (tcpModel.getType()== TcpType.VOICE && tcpModel.getAction()==TcpAction.VoiceAction.SUCCESS){
             EventBus.getDefault().post(new MessageEvent(tcpModel, 1));
-        } else if(tcpModel.getType()== TcpType.VOICE && tcpModel.getAction() == TcpAction.VoiceAction.CALL &&calling){
-            InteractionVO interactionVO = new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
-            responseTcpModel = VoiceUtil.voiceCalling(Integer.parseInt(Constants.Companion.getIds()), tcpModel.getFromId(),interactionVO.getId());
-            //todo 给服务器发送正在通话中 tcp
-            return responseTcpModel;
+        } else if(tcpModel.getType()== TcpType.VOICE && tcpModel.getAction() == TcpAction.VoiceAction.CALL){
+            if (calling) {
+                InteractionVO interactionVO = new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
+                responseTcpModel = VoiceUtil.voiceCalling(Integer.parseInt(Constants.Companion.getIds()), tcpModel.getFromId(), interactionVO.getId());
+                //给服务器发送正在通话中 tcp
+                return responseTcpModel;
+            } else { //得到通话
+                EventBus.getDefault().post(new MessageEvent(tcpModel, 1));
+            }
         }else if ((tcpModel.getType()== TcpType.VOICE && tcpModel.getAction() == TcpAction.VoiceAction.ACCEPT)  //我方呼出,对方接受
             //todo:调用通话中界面;建立数据通话
             || (tcpModel.getType()== TcpType.VOICE && tcpModel.getAction() == TcpAction.VoiceAction.REJECT) //我方呼出,对方拒绝
@@ -72,12 +74,12 @@ public class DeviceChannel {
             EventBus.getDefault().post(new MessageEvent(tcpModel, 4));
         } else if(tcpModel.getType() == TcpType.SOS && tcpModel.getAction() == TcpAction.SOSAction.CALL||
                 tcpModel.getType() == TcpType.SOS && tcpModel.getAction() == TcpAction.SOSAction.CANCEL){
-               //todo 紧急呼叫
-            EventBus.getDefault().post(new MessageEvent(tcpModel, 0));
+               //紧急呼叫
+            EventBus.getDefault().post(new MessageEvent(tcpModel, 999));
         }else if(tcpModel.getType() == TcpType.DEVICE &&tcpModel.getAction() == TcpAction.DeviceAction.RESTART||
                 tcpModel.getType() == TcpType.DEVICE && tcpModel.getAction() == TcpAction.DeviceAction.DEVICE_REFRESH||
                 tcpModel.getType() == TcpType.DEVICE && tcpModel.getAction() == TcpAction.DeviceAction.APP_UPDATE){
-            EventBus.getDefault().post(new MessageEvent(tcpModel, Constants.Companion.getEVENT_TCP_APP_UPDATE()));
+            EventBus.getDefault().post(new MessageEvent(tcpModel, Constants.EVENT_TCP_APP_UPDATE));
         }else {
             EventBus.getDefault().post(new MessageEvent(tcpModel, 0));
         }

+ 5 - 3
rtc-chat/src/main/java/com/wdkl/skywebrtc/engine/webrtc/WebRTCEngine.java

@@ -66,8 +66,8 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
 
     // 服务器实例列表
     private String serverIP = "120.76.246.253";
-    private String turnUser = "wdkl";
-    private String turnUserPwd = "Wdkl2021";
+    private String turnUser = "wdklrtc";
+    private String turnUserPwd = "Wdkl2021Rtc";
 
 
     private static final String VIDEO_TRACK_ID = "ARDAMSv0";
@@ -508,6 +508,8 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
 
         PeerConnection.IceServer var11 = PeerConnection.IceServer
                 .builder("stun:"+serverIP+":3478?transport=udp")
+                .setUsername(turnUser)
+                .setPassword(turnUserPwd)
                 .setTlsCertPolicy(PeerConnection.TlsCertPolicy.TLS_CERT_POLICY_INSECURE_NO_CHECK)
                 .createIceServer();
         PeerConnection.IceServer var12 = PeerConnection.IceServer
@@ -522,7 +524,7 @@ public class WebRTCEngine implements IEngine, Peer.IPeerEvent {
 //                .setPassword(turnUserPwd)
 //                .setTlsCertPolicy(PeerConnection.TlsCertPolicy.TLS_CERT_POLICY_INSECURE_NO_CHECK)
 //                .createIceServer();
-//        iceServers.add(var11);
+        iceServers.add(var11);
         iceServers.add(var12);
 //        iceServers.add(var13);
     }