瀏覽代碼

无服务器sip呼叫设备增加自动接听功能,修改包名和其他优化

weizhengliang 8 月之前
父節點
當前提交
4e6d8bc680
共有 20 個文件被更改,包括 279 次插入91 次删除
  1. 1 1
      android_host/src/main/common/res/raw/linphonerc_default
  2. 56 6
      android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/activity/RegisterActivity.kt
  3. 5 20
      android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/activity/SipHomeActivity.kt
  4. 14 1
      android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/fragment/DeviceManageFragment.kt
  5. 27 16
      android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/fragment/HomeCallFragment.kt
  6. 27 9
      android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/fragment/SipComingCallFragment.kt
  7. 6 6
      android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/fragment/SystemSettingsFragment.kt
  8. 2 2
      android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/receiver/WdBootReceiver.java
  9. 2 3
      android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/util/AppUpdateHelper.java
  10. 1 1
      android_host/src/main/h10_wke_1h/res/drawable/seek_bar_bg.xml
  11. 2 2
      android_host/src/main/h10_wke_1h/res/drawable/seek_bar_thumb.xml
  12. 20 0
      android_host/src/main/h10_wke_1h/res/layout-land/activity_register.xml
  13. 41 0
      android_host/src/main/h10_wke_1h/res/layout-land/fragment_device_manage.xml
  14. 20 0
      android_host/src/main/h10_wke_1h/res/layout/activity_register.xml
  15. 41 0
      android_host/src/main/h10_wke_1h/res/layout/fragment_device_manage.xml
  16. 1 1
      app/build.gradle
  17. 1 1
      common/src/main/code/com/wdkl/ncs/android/lib/base/BaseActivity.kt
  18. 1 1
      common/src/main/code/com/wdkl/ncs/android/lib/base/BaseFragment.kt
  19. 1 21
      common/src/main/code/com/wdkl/ncs/android/lib/utils/ExtendMethods.kt
  20. 10 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/utils/CommonUtils.java

+ 1 - 1
android_host/src/main/common/res/raw/linphonerc_default

@@ -1,5 +1,5 @@
 [sip]
-contact="Linphone Android" <sip:allen@8.129.220.143>
+#contact="Linphone Android" <sip:linphone.android@unknown-host>
 use_info=0
 use_ipv6=1
 keepalive_period=30000

+ 56 - 6
android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/activity/RegisterActivity.kt

@@ -1,8 +1,11 @@
 package com.wdkl.ncs.android.component.nursehome.activity
 
 import android.Manifest
+import android.content.Intent
 import android.graphics.Color
+import android.net.Uri
 import android.os.Build
+import android.provider.Settings
 import android.text.TextUtils
 import android.util.Log
 import com.enation.javashop.net.engine.model.NetState
@@ -13,10 +16,14 @@ import com.wdkl.ncs.android.component.nursehome.launch.NurseHomeLaunch
 import com.wdkl.ncs.android.lib.base.BaseActivity
 import io.reactivex.Observable
 import com.wdkl.ncs.android.component.nursehome.BuildConfig
+import com.wdkl.ncs.android.component.nursehome.settingconfig.SettingConfig
+import com.wdkl.ncs.android.component.nursehome.util.AppUpdateHelper
 import com.wdkl.ncs.android.middleware.common.Constants
 import com.wdkl.ncs.android.component.nursehome.util.NetHelper
+import com.wdkl.ncs.android.component.nursehome.util.StatusBarHelper
 import com.wdkl.ncs.android.lib.base.BaseApplication
 import com.wdkl.ncs.android.lib.utils.*
+import com.wdkl.ncs.android.middleware.helper.PassCheckDialogHelper
 import com.wdkl.ncs.android.middleware.helper.SipDialogHelper
 import com.wdkl.ncs.android.middleware.logic.contract.nursehome.DeviceContract
 import com.wdkl.ncs.android.middleware.logic.presenter.nursehome.DevicePresenter
@@ -54,6 +61,24 @@ class RegisterActivity : BaseActivity<DevicePresenter, ActivityRegisterBinding>(
     override fun init() {
         AppTool.SystemUI.showNavigationBar(this,false)
         AppTool.SystemUI.ImmersiveWithBottomBarColor(this, Color.BLACK)
+
+        if (!Settings.canDrawOverlays(this)) {
+            val intent = Intent(
+                Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
+                Uri.parse("package:$packageName")
+            )
+            startActivityForResult(intent, 10)
+        }
+
+
+        if (!Settings.System.canWrite(this)) {
+            val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS)
+            intent.data = Uri.parse("package:" + this.packageName)
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+            startActivityForResult(intent, 11)
+        }
+
+
         requestPermissions()
 
         Constants.mac = NetHelper.getInstance().macAddress
@@ -68,6 +93,8 @@ class RegisterActivity : BaseActivity<DevicePresenter, ActivityRegisterBinding>(
             Constants.device_serial_id = Constants.mac
         }
 
+        SettingConfig.setSipEnable(activity, true)
+
         val macAddr = NetHelper.getInstance().macAddress
         val ipAddr = NetHelper.getInstance().localIP
         Constants.sip_id = CommonUtils.getSipAccount(activity)
@@ -79,7 +106,9 @@ class RegisterActivity : BaseActivity<DevicePresenter, ActivityRegisterBinding>(
     }
 
     private fun requestPermissions(){
-        Observable.just("").compose(RxPermissions(this).ensure(Manifest.permission.CAMERA,
+        Observable.just("")
+            .compose(RxPermissions(this).ensure(
+                Manifest.permission.CAMERA,
                 Manifest.permission.READ_EXTERNAL_STORAGE,
                 Manifest.permission.WRITE_EXTERNAL_STORAGE,
                 Manifest.permission.ACCESS_WIFI_STATE,
@@ -89,13 +118,14 @@ class RegisterActivity : BaseActivity<DevicePresenter, ActivityRegisterBinding>(
             if (it){
                 Log.e(TAG,"拿到APP所有权限")
                 permissionGrant = true
-                if (!TextUtils.isEmpty(CommonUtils.getSipAccount(activity))) {
+                if (!TextUtils.isEmpty(CommonUtils.getSipAccount(activity))
+                    && !TextUtils.isEmpty(NetHelper.getInstance().localIP)) {
                     AppTool.Time.delay(1000) {
                         push("/siphome/main")
                         finish()
                     }
                 } else {
-                    showMessage("没有sip账号!")
+                    showMessage("网络异常或没有sip账号,请检查!")
                 }
             }else{
                 showMessage("请授权...")
@@ -120,17 +150,37 @@ class RegisterActivity : BaseActivity<DevicePresenter, ActivityRegisterBinding>(
             SipDialogHelper.showDialog(activity, ip) {
                 showMessage("设置成功")
                 CommonUtils.setSipAccount(BaseApplication.appContext, it)
+                Constants.sip_id = CommonUtils.getSipAccount(activity)
+
+                tv_sip_account.text = "本机SIP: " + Constants.sip_id
 
                 if (permissionGrant) {
-                    AppTool.Time.delay(1000) {
-                        push("/siphome/main")
-                        finish()
+                    if (!TextUtils.isEmpty(NetHelper.getInstance().localIP)) {
+                        AppTool.Time.delay(1000) {
+                            push("/siphome/main")
+                            finish()
+                        }
                     }
                 } else {
                     showMessage("请授权...")
                 }
             }
         }
+
+        btn_settings.setOnClickListener {
+            PassCheckDialogHelper.showDialog(activity) {
+                val intent = Intent(Settings.ACTION_SETTINGS)
+                startActivity(intent)
+
+                if (Build.BOARD.equals("k37tv1_64_bsp") || Build.BOARD.equals("k37mv1_64_bsp") || Build.MODEL.equals("KT10-3F") || "m3520b_bnkj_zx".equals(Build.MODEL)) {
+                    StatusBarHelper.toggleStatusBar(activity, true)
+                }
+            }
+        }
+
+        btn_restart_app.setOnClickListener {
+            AppUpdateHelper.restartApp(BaseApplication.appContext)
+        }
     }
     /**
      *页面销毁回调

+ 5 - 20
android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/activity/SipHomeActivity.kt

@@ -62,7 +62,7 @@ import java.util.concurrent.TimeUnit
  * 首页Activity
  */
 @Router(path = "/siphome/main")
-class SipHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurseHomeBinding>(), NurseHomeActivityContract.View,
+class SipHomeActivity: BaseActivity<NurseHomeActivityPresenter, ActivityNurseHomeBinding>(), NurseHomeActivityContract.View,
         View.OnClickListener {
     var TAG = SipHomeActivity::class.java.getSimpleName()
 
@@ -154,24 +154,6 @@ class SipHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurseH
             }
         }
 
-        if (Build.VERSION.SDK_INT >= 23) {
-            if (!Settings.canDrawOverlays(this)) {
-                val intent = Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
-                    Uri.parse("package:$packageName"))
-                startActivityForResult(intent, 10)
-            }
-        }
-
-        if (Build.VERSION.SDK_INT >= 23) {
-            if (!Settings.System.canWrite(this)) {
-                val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS)
-                intent.data = Uri.parse("package:" + this.packageName)
-                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
-                startActivityForResult(intent, 11)
-            }
-        }
-
-        //检查服务器地址接口是否可用,可用则进入下一步获取设备信息,不可用则稍后再次尝试
         gotoMainHome()
     }
 
@@ -544,6 +526,8 @@ class SipHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurseH
                 Log.e(TAG,"手柄放下 ")
                 Constants.hookOn = true
                 VoiceManagerUtil.switchAudioMode(activity, true)
+                //EventBus.getDefault().post(MessageEvent(false, Constants.EVENT_TOGGLE_SPEAKER))
+
                 if (System.currentTimeMillis() - hookonTime > 2000) {
                     //VoiceManagerUtil.setCallVoice(activity, SettingConfig.getHostCallVolume(activity))
 
@@ -555,7 +539,8 @@ class SipHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurseH
                 Log.e(TAG,"手柄拿起 ")
                 Constants.hookOn = false
                 VoiceManagerUtil.switchAudioMode(activity, false)
-                EventBus.getDefault().post(MessageEvent(false, Constants.EVENT_TOGGLE_SPEAKER))
+                //EventBus.getDefault().post(MessageEvent(false, Constants.EVENT_TOGGLE_SPEAKER))
+
                 if (System.currentTimeMillis() - hookoffTime > 2000) {
                     //VoiceManagerUtil.setCallVoice(activity, SettingConfig.getHostCallVolume(activity))
 

+ 14 - 1
android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/fragment/DeviceManageFragment.kt

@@ -57,7 +57,6 @@ class DeviceManageFragment : BaseFragment<OtherHostPresenter, FragmentDeviceMana
      *初始化操作
      */
     override fun init() {
-
         rb_host_device.isChecked = true
         tv_host_sip.setText("本机SIP: " + Constants.sip_id + "@" + NetHelper.getInstance().localIP)
 
@@ -83,6 +82,12 @@ class DeviceManageFragment : BaseFragment<OtherHostPresenter, FragmentDeviceMana
 
         tv_device_ip_address.setText(NetHelper.getInstance().localIP)
         tv_device_sip_name.setText("sip: " + Constants.sip_id)
+
+        if (CommonUtils.getAutoAnswer(BaseApplication.appContext)) {
+            radio_auto_answer_on.isChecked = true
+        } else {
+            radio_auto_answer_off.isChecked = true
+        }
     }
 
     /**
@@ -101,6 +106,14 @@ class DeviceManageFragment : BaseFragment<OtherHostPresenter, FragmentDeviceMana
             }
         }
 
+        group_auto_answer_setting.setOnCheckedChangeListener { group, checkedId ->
+            if (checkedId == R.id.radio_auto_answer_on) {
+                CommonUtils.setAutoAnswer(BaseApplication.appContext, true)
+            } else {
+                CommonUtils.setAutoAnswer(BaseApplication.appContext, false)
+            }
+        }
+
 
         btn_host_ip_config.setOnClickListener(this)
         btn_config_device.setOnClickListener(this)

+ 27 - 16
android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/fragment/HomeCallFragment.kt

@@ -5,6 +5,7 @@ import com.enation.javashop.net.engine.model.NetState
 import com.wdkl.ncs.android.component.nursehome.R
 import com.wdkl.ncs.android.component.nursehome.databinding.FragmentHomeCallBinding
 import com.wdkl.ncs.android.component.nursehome.launch.NurseHomeLaunch
+import com.wdkl.ncs.android.component.nursehome.util.NetHelper
 import com.wdkl.ncs.android.lib.base.BaseApplication
 import com.wdkl.ncs.android.lib.base.BaseFragment
 import com.wdkl.ncs.android.lib.db.DeviceBean
@@ -44,18 +45,23 @@ class HomeCallFragment: BaseFragment<FramePartPresenter, FragmentHomeCallBinding
             if (System.currentTimeMillis() - clickTime < 3000) {
                 showMessage(R.string.call_wait)
             } else {
+                clickTime = System.currentTimeMillis()
+
                 val sipId = CommonUtils.getTargetSipId(BaseApplication.appContext)
                 val sipIp = CommonUtils.getTargetSipIP(BaseApplication.appContext)
-                if (!TextUtils.isEmpty(sipId) && !TextUtils.isEmpty(sipIp)) {
-                    val targetDevice = DeviceBean()
-                    targetDevice.sipId = sipId
-                    targetDevice.sipIp = sipIp
-                    EventBus.getDefault().post(MessageEvent(targetDevice, Constants.SIP_OUTGOING_VOICE_CALL))
-                } else {
-                    showMessage("呼叫设备数据异常!")
+
+                if (TextUtils.isEmpty(NetHelper.getInstance().localIP)) {
+                    showMessage("网络异常!")
+                    return@setOnClickListener
+                } else if (TextUtils.isEmpty(sipId) || TextUtils.isEmpty(sipIp)) {
+                    showMessage("找不到目标设备ID!")
+                    return@setOnClickListener
                 }
 
-                clickTime = System.currentTimeMillis()
+                val targetDevice = DeviceBean()
+                targetDevice.sipId = sipId
+                targetDevice.sipIp = sipIp
+                EventBus.getDefault().post(MessageEvent(targetDevice, Constants.SIP_OUTGOING_VOICE_CALL))
             }
         }
 
@@ -63,18 +69,23 @@ class HomeCallFragment: BaseFragment<FramePartPresenter, FragmentHomeCallBinding
             if (System.currentTimeMillis() - clickTime < 3000) {
                 showMessage(R.string.call_wait)
             } else {
+                clickTime = System.currentTimeMillis()
+
                 val sipId = CommonUtils.getTargetSipId(BaseApplication.appContext)
                 val sipIp = CommonUtils.getTargetSipIP(BaseApplication.appContext)
-                if (!TextUtils.isEmpty(sipId) && !TextUtils.isEmpty(sipIp)) {
-                    val targetDevice = DeviceBean()
-                    targetDevice.sipId = sipId
-                    targetDevice.sipIp = sipIp
-                    EventBus.getDefault().post(MessageEvent(targetDevice, Constants.SIP_OUTGOING_VIDEO_CALL))
-                } else {
-                    showMessage("呼叫设备数据异常!")
+
+                if (TextUtils.isEmpty(NetHelper.getInstance().localIP)) {
+                    showMessage("网络异常!")
+                    return@setOnClickListener
+                } else if (TextUtils.isEmpty(sipId) || TextUtils.isEmpty(sipIp)) {
+                    showMessage("找不到目标设备ID!")
+                    return@setOnClickListener
                 }
 
-                clickTime = System.currentTimeMillis()
+                val targetDevice = DeviceBean()
+                targetDevice.sipId = sipId
+                targetDevice.sipIp = sipIp
+                EventBus.getDefault().post(MessageEvent(targetDevice, Constants.SIP_OUTGOING_VIDEO_CALL))
             }
         }
 

+ 27 - 9
android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/fragment/SipComingCallFragment.kt

@@ -8,14 +8,17 @@ import com.wdkl.ncs.android.component.nursehome.R
 import com.wdkl.ncs.android.component.nursehome.settingconfig.SettingConfig
 import com.wdkl.ncs.android.component.nursehome.util.*
 import com.wdkl.ncs.android.lib.base.BaseApplication
+import com.wdkl.ncs.android.lib.utils.AppTool
 import com.wdkl.ncs.android.lib.utils.showMessage
 import com.wdkl.ncs.android.middleware.common.Constants
+import com.wdkl.ncs.android.middleware.utils.CommonUtils
 import com.wdkl.ncs.android.middleware.utils.MessageEvent
 import com.wdkl.ncs.host.service.WdklSipService
 import kotlinx.android.synthetic.main.sip_call_layout.*
 //import com.wdkl.ncs.host.util.AudioRouteUtils
 import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
+import org.linphone.core.Call
 import org.linphone.core.Core
 
 class SipComingCallFragment: BaseCallFragment() {
@@ -30,12 +33,16 @@ class SipComingCallFragment: BaseCallFragment() {
 
     private var sipCore: Core? = null
     private var volume = 60
+    private var autoAnswer = false
 
     override fun getLayId(): Int {
         return R.layout.sip_call_layout
     }
 
     override fun init() {
+        //是否自动接听
+        autoAnswer = CommonUtils.getAutoAnswer(BaseApplication.appContext)
+
         initCountDownTimer()
 
         sipCore = WdklSipService.getCore()
@@ -65,6 +72,14 @@ class SipComingCallFragment: BaseCallFragment() {
                 //来电
                 outGoing = false
                 showCallView(false)
+
+                //自动接听
+                if (autoAnswer) {
+                    AppTool.Time.delay(1500) {
+                        SpeechUtil.getInstance().stopSpeak(true)
+                        acceptSipCall()
+                    }
+                }
             }
         }
 
@@ -184,16 +199,19 @@ class SipComingCallFragment: BaseCallFragment() {
             if (call == null) {
                 call = sipCore!!.calls[0]
             }
-            val params = sipCore?.createCallParams(call)
-            if (onlyAudio) {
-                params?.enableVideo(false)
-            } else {
-                params?.enableVideo(true)
-            }
 
-            //录音文件路径
-            //params?.recordFile = Environment.getExternalStorageDirectory().path + "/" + Environment.DIRECTORY_DOWNLOADS + "/" + AppUtil.getTimeFilename() + ".wav"
-            call?.acceptWithParams(params)
+            if (call != null && call.state != Call.State.Connected && call.state != Call.State.StreamsRunning) {
+                val params = sipCore?.createCallParams(call)
+                if (onlyAudio) {
+                    params?.enableVideo(false)
+                } else {
+                    params?.enableVideo(true)
+                }
+
+                //录音文件路径
+                //params?.recordFile = Environment.getExternalStorageDirectory().path + "/" + Environment.DIRECTORY_DOWNLOADS + "/" + AppUtil.getTimeFilename() + ".wav"
+                call.acceptWithParams(params)
+            }
         }
     }
 

+ 6 - 6
android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/fragment/SystemSettingsFragment.kt

@@ -265,7 +265,7 @@ class SystemSettingsFragment:BaseFragment<SystemSettingsPresenter,FragmentSystem
 
             if (clickTimes > 9) {
                 if (Build.BOARD.equals("k37tv1_64_bsp") || Build.BOARD.equals("k37mv1_64_bsp") || Build.MODEL.equals("KT10-3F")) {
-                    openNetwrokDebug()
+                    openNetworkDebug()
                 } else {
                     showMessage("do not support debug")
                 }
@@ -288,7 +288,7 @@ class SystemSettingsFragment:BaseFragment<SystemSettingsPresenter,FragmentSystem
     }
 
     //开启网络调试
-    private fun openNetwrokDebug() {
+    private fun openNetworkDebug() {
         val commands = arrayListOf(
             "/system/bin/sh",
             "setprop service.adb.tcp.port 5555",
@@ -296,14 +296,14 @@ class SystemSettingsFragment:BaseFragment<SystemSettingsPresenter,FragmentSystem
             "start adbd"
         )
         try {
-            RunAsRoot(commands)
+            runAsRoot(commands)
             showMessage("start Debug")
         } catch (e: IOException) {
             e.printStackTrace()
         }
     }
 
-    private fun RunAsRoot(cmds: ArrayList<String>) {
+    private fun runAsRoot(cmds: ArrayList<String>) {
         val p = Runtime.getRuntime().exec("su")
         val os = DataOutputStream(p.outputStream)
         for (tmpCmd in cmds) {
@@ -395,7 +395,7 @@ class SystemSettingsFragment:BaseFragment<SystemSettingsPresenter,FragmentSystem
             }
         }
 
-        group_sip.setOnCheckedChangeListener { group, checkedId ->
+        /*group_sip.setOnCheckedChangeListener { group, checkedId ->
             PasswordDialogHelper.showPasswordDialog(activity) {
                 if (checkedId == R.id.radio_sip_on) {
                     SettingConfig.setSipEnable(activity, true)
@@ -405,7 +405,7 @@ class SystemSettingsFragment:BaseFragment<SystemSettingsPresenter,FragmentSystem
 
                 WarningDialogHelper.showDialog(activity, true)
             }
-        }
+        }*/
 
         group_call_voice_numeric.setOnCheckedChangeListener { group, checkedId ->
             if (checkedId == R.id.radio_voice_numeric_on) {

+ 2 - 2
android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/receiver/WdBootReceiver.java

@@ -5,7 +5,7 @@ import android.content.Context;
 import android.content.Intent;
 import android.util.Log;
 
-import com.wdkl.ncs.android.component.nursehome.activity.SipHomeActivity;
+import com.wdkl.ncs.android.component.nursehome.activity.RegisterActivity;
 
 public class WdBootReceiver extends BroadcastReceiver {
 
@@ -14,7 +14,7 @@ public class WdBootReceiver extends BroadcastReceiver {
         if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
             Log.d("wdBoot", "收到开机广播,启动app");
 
-            Intent startIntent= new Intent(context, SipHomeActivity.class);
+            Intent startIntent= new Intent(context, RegisterActivity.class);
             startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             context.startActivity(startIntent);
         }

+ 2 - 3
android_host/src/main/h10_wke_1h/java/com/wdkl/ncs/android/component/nursehome/util/AppUpdateHelper.java

@@ -13,8 +13,7 @@ import android.os.Environment;
 import android.support.v4.content.FileProvider;
 import android.util.Log;
 
-import com.wdkl.ncs.android.component.nursehome.activity.NurseHomeActivity;
-import com.wdkl.ncs.android.component.nursehome.activity.SipHomeActivity;
+import com.wdkl.ncs.android.component.nursehome.activity.RegisterActivity;
 import com.wdkl.ncs.android.component.nursehome.settingconfig.SettingConfig;
 import com.wdkl.ncs.host.service.WdklSipService;
 
@@ -318,7 +317,7 @@ public class AppUpdateHelper {
         }
 
         //重新启动app
-        Intent mStartActivity = new Intent(context.getApplicationContext(), SipHomeActivity.class);
+        Intent mStartActivity = new Intent(context.getApplicationContext(), RegisterActivity.class);
         mStartActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
         int mPendingIntentId = 123456;
         PendingIntent mPendingIntent = PendingIntent.getActivity(context.getApplicationContext(), mPendingIntentId, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);

+ 1 - 1
android_host/src/main/h10_wke_1h/res/drawable/seek_bar_bg.xml

@@ -18,7 +18,7 @@
         <clip>
             <shape>
                 <corners android:radius="4dp" />
-                <solid android:color="#FF8C00" />
+                <solid android:color="#a1eafb" />
             </shape>
         </clip>
     </item>

+ 2 - 2
android_host/src/main/h10_wke_1h/res/drawable/seek_bar_thumb.xml

@@ -2,11 +2,11 @@
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
     android:shape="oval">
     <!-- solid表示远的填充色 -->
-    <solid android:color="#FF8C00" />
+    <solid android:color="#ffcef3" />
     <!-- stroke则代表远的边框线 -->
     <stroke
         android:width="1dp"
-        android:color="#FF8C00" />
+        android:color="#a1eafb" />
     <!-- size控制高宽 -->
     <size
         android:width="24dp"

+ 20 - 0
android_host/src/main/h10_wke_1h/res/layout-land/activity_register.xml

@@ -62,5 +62,25 @@
             android:background="@drawable/selector_button_bg_color2"
             android:text="SIP配置"
             android:textSize="24sp"/>
+
+        <Button
+            android:id="@+id/btn_settings"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
+            android:padding="10dp"
+            android:background="@drawable/selector_button_bg_color2"
+            android:text="系统设置"
+            android:textSize="24sp"/>
+
+        <Button
+            android:id="@+id/btn_restart_app"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
+            android:padding="10dp"
+            android:background="@drawable/selector_button_bg_color2"
+            android:text="重启APP"
+            android:textSize="24sp"/>
     </LinearLayout>
 </layout>

+ 41 - 0
android_host/src/main/h10_wke_1h/res/layout-land/fragment_device_manage.xml

@@ -143,6 +143,47 @@
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:layout_marginLeft="10dp"
+            android:layout_marginTop="10dp"
+            android:layout_marginBottom="10dp"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:text="自动接听:"
+                android:textColor="#000000"
+                android:textSize="24sp" />
+
+            <RadioGroup
+                android:id="@+id/group_auto_answer_setting"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="10dp"
+                android:orientation="horizontal">
+
+                <RadioButton
+                    android:id="@+id/radio_auto_answer_on"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/str_yes"
+                    android:textSize="24sp" />
+
+                <RadioButton
+                    android:id="@+id/radio_auto_answer_off"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="10dp"
+                    android:text="@string/str_no"
+                    android:textSize="24sp" />
+            </RadioGroup>
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
             android:layout_marginTop="10dp"
             android:layout_marginBottom="10dp"
             android:gravity="center"

+ 20 - 0
android_host/src/main/h10_wke_1h/res/layout/activity_register.xml

@@ -62,5 +62,25 @@
             android:background="@drawable/selector_button_bg_color2"
             android:text="SIP配置"
             android:textSize="24sp"/>
+
+        <Button
+            android:id="@+id/btn_settings"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
+            android:padding="10dp"
+            android:background="@drawable/selector_button_bg_color2"
+            android:text="系统设置"
+            android:textSize="24sp"/>
+
+        <Button
+            android:id="@+id/btn_restart_app"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
+            android:padding="10dp"
+            android:background="@drawable/selector_button_bg_color2"
+            android:text="重启APP"
+            android:textSize="24sp"/>
     </LinearLayout>
 </layout>

+ 41 - 0
android_host/src/main/h10_wke_1h/res/layout/fragment_device_manage.xml

@@ -143,6 +143,47 @@
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:layout_marginLeft="10dp"
+            android:layout_marginTop="10dp"
+            android:layout_marginBottom="10dp"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:text="自动接听:"
+                android:textColor="#000000"
+                android:textSize="24sp" />
+
+            <RadioGroup
+                android:id="@+id/group_auto_answer_setting"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="10dp"
+                android:orientation="horizontal">
+
+                <RadioButton
+                    android:id="@+id/radio_auto_answer_on"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/str_yes"
+                    android:textSize="24sp" />
+
+                <RadioButton
+                    android:id="@+id/radio_auto_answer_off"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="10dp"
+                    android:text="@string/str_no"
+                    android:textSize="24sp" />
+            </RadioGroup>
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
             android:layout_marginTop="10dp"
             android:layout_marginBottom="10dp"
             android:gravity="center"

+ 1 - 1
app/build.gradle

@@ -32,7 +32,7 @@ android {
     aaptOptions.noCompress("mp3","wav")
 
     defaultConfig {
-        applicationId "com.wdkl.app.ncs.nursehost"
+        applicationId "com.wdkl.app.ncs.sip.device"
         minSdkVersion min_sdk_version
         targetSdkVersion target_sdk_version
         versionCode app_version_code

+ 1 - 1
common/src/main/code/com/wdkl/ncs/android/lib/base/BaseActivity.kt

@@ -168,7 +168,7 @@ abstract class BaseActivity<PresenterType : BaseContract.BasePresenter, DataBind
         removeAllCallBack()
         /**处理android4.4.2 底层内存泄漏*/
         fixInputMethodManagerLeak(activity)
-        errorLog("PageDestory","页面销毁======>$localClassName")
+        //errorLog("PageDestory","页面销毁======>$localClassName")
     }
 
     /**

+ 1 - 1
common/src/main/code/com/wdkl/ncs/android/lib/base/BaseFragment.kt

@@ -174,7 +174,7 @@ import javax.inject.Inject
         /**清除生命周期监听引用*/
         removeAllCallBack()
 
-        errorLog("FragmentDestory","页面销毁======>${javaClass.name}")
+        //errorLog("FragmentDestory","页面销毁======>${javaClass.name}")
 
     }
 

+ 1 - 21
common/src/main/code/com/wdkl/ncs/android/lib/utils/ExtendMethods.kt

@@ -89,27 +89,7 @@ fun showMessage(message: String) {
         return
     }
 
-    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
-        Toaster.showShort(message)
-    } else {
-        val messageCallback = {
-            //Toast.makeText(BaseApplication.appContext, message, Toast.LENGTH_SHORT).show()
-
-            if (toast == null) {
-                toast = Toast.makeText(BaseApplication.appContext, message, Toast.LENGTH_SHORT)
-            } else {
-                toast!!.setText(message)
-            }
-            hookToast(toast)
-            toast!!.show()
-        }
-        try {
-            messageCallback.invoke()
-        } catch (runtime: RuntimeException) {
-            Looper.prepare()
-            messageCallback.invoke()
-        }
-    }
+    Toaster.showShort(message)
 }
 
 fun showMessage(resId: Int) {

+ 10 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/utils/CommonUtils.java

@@ -21,6 +21,8 @@ public class CommonUtils {
     private static final String KEY_SP_TARGET_SIP_ID = "KEY_SP_TARGET_SIP_ID";
     private static final String KEY_SP_TARGET_SIP_IP = "KEY_SP_TARGET_SIP_IP";
 
+    private static final String KEY_SP_AUTO_ANSWER = "KEY_SP_AUTO_ANSWER";
+
     //默认ip端口
     //private static final String DEFAULT_URL = "8.129.220.143";
     private static final String DEFAULT_URL = "172.28.100.100";
@@ -110,6 +112,14 @@ public class CommonUtils {
         getEditor(context).putString(KEY_SP_TARGET_SIP_IP, value).apply();
     }
 
+    public static boolean getAutoAnswer(Context context) {
+        return getSP(context).getBoolean(KEY_SP_AUTO_ANSWER, false);
+    }
+
+    public static void setAutoAnswer(Context context, boolean autoAnswer) {
+        getEditor(context).putBoolean(KEY_SP_AUTO_ANSWER, autoAnswer).apply();
+    }
+
 
 
     private static SharedPreferences getSP(Context context) {