소스 검색

1。分机设备配置页面修改
2。护士主机按钮点击问题优化
3。护士主机增加广播与预约探视增加根据配置文件显示
4。护士主机增加设备配置模块
5。修改喊话广播无法关闭的问题
6。代码优化 增加根据apk是否是debug选择请求地址与参数

xunchuanzhi 1 년 전
부모
커밋
f88a8a5815
31개의 변경된 파일893개의 추가작업 그리고 715개의 파일을 삭제
  1. 1 1
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/activity/DeviceSystemActivity.kt
  2. 4 4
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/settings/SettingConfig.java
  3. 1 4
      android_host/build.gradle
  4. 5 1
      android_host/src/main/AndroidManifest.xml
  5. 10 9
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/CallingHostActivationActivity.kt
  6. 225 0
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/DeviceSystemActivity.kt
  7. 24 19
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/NurseHomeActivity.kt
  8. 16 4
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/SystemActivity.kt
  9. 4 3
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/di/NurseHomeComponent.kt
  10. 27 4
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/dialog/SystemDialogHelper.java
  11. 2 1
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/hardware/HardTools.java
  12. 2 1
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/hardware/imp/A133HardTools.java
  13. 11 2
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/hardware/imp/Z3128HardTools.java
  14. 12 2
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/hardware/imp/ZKEHardTools.java
  15. 56 0
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/settingconfig/SettingConfig.java
  16. 0 146
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/visit/VisitService.java
  17. 0 80
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/visit/VisitSocketConnect.java
  18. 0 384
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/visit/VisitSocketConnectLine.java
  19. 14 14
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/fragment/visit/VisitCallFragment.kt
  20. 9 7
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/fragment/visit/VisitMainFragment.kt
  21. 6 21
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/fragment/visit/VisitSetFragment.kt
  22. 9 4
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/visit/tcp/VisitTcpClientHandler.java
  23. 435 0
      android_host/src/main/res/layout/activity_device_sys.xml
  24. 6 1
      android_host/src/main/res/layout/activity_new_nurse_home.xml
  25. 4 2
      build.gradle
  26. 2 0
      common/build.gradle
  27. 2 0
      resource/src/main/res/values-es/strings.xml
  28. 2 0
      resource/src/main/res/values-ru/strings.xml
  29. 2 0
      resource/src/main/res/values-zh/strings.xml
  30. 2 0
      resource/src/main/res/values/strings.xml
  31. 0 1
      settings.gradle

+ 1 - 1
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/activity/DeviceSystemActivity.kt

@@ -203,7 +203,7 @@ class DeviceSystemActivity : BaseActivity<BedTextActivityPresenter, CallingbedDe
             //保存设置
             R.id.device_sys_save_settings_tv -> {
                 SettingConfigNew.setLanguageId(activity, selectIndex)
-                SettingConfig.setMIC(activity, selectIndex1)
+                SettingConfig.setScene(activity, selectIndex1)
                 Toast.makeText(activity, "restart now...", Toast.LENGTH_LONG).show()
                 Handler().postDelayed({ AppUpdateHelper.restartApp(activity) }, 3000)
             }

+ 4 - 4
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/settings/SettingConfig.java

@@ -121,19 +121,19 @@ public class SettingConfig {
     }
 
     public static void setAPK(Context context, int mode) {
-        getEditor(context).putInt(KEY_SP_Scene_type, mode).apply();
+        getEditor(context).putInt(KEY_SP_APK_TYPE, mode).apply();
     }
 
     public static int getAPK(Context context) {
-        return getSP(context).getInt(KEY_SP_Scene_type, 0);
+        return getSP(context).getInt(KEY_SP_APK_TYPE, 0);
     }
 
     public static void setwindow(Context context, int mode) {
-        getEditor(context).putInt(KEY_SP_Scene_type, mode).apply();
+        getEditor(context).putInt(KEY_SP_window, mode).apply();
     }
 
     public static int getwindow(Context context) {
-        return getSP(context).getInt(KEY_SP_Scene_type, 0);
+        return getSP(context).getInt(KEY_SP_window, 0);
     }
 
 

+ 1 - 4
android_host/build.gradle

@@ -36,6 +36,7 @@ android {
         buildConfigField 'String', 'is_mom', "\"${project.rootProject.ext.is_mom}\""
         buildConfigField 'String', 'device_type', "\"${project.rootProject.ext.device_type}\""
         buildConfigField 'String', 'is_agora', "\"${project.rootProject.ext.is_agora}\""
+        buildConfigField 'String', 'is_broadcast', "\"${project.rootProject.ext.is_broadcast}\""
     }
 
     productFlavors {
@@ -124,14 +125,10 @@ dependencies {
     //广播喊话组件
     compile project(':gstream')
 
-
-
-
     compile 'com.contrarywind:Android-PickerView:4.1.9'
 
     implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
 
-
     implementation 'io.agora.rtc:full-sdk:4.2.6'
 }
 

+ 5 - 1
android_host/src/main/AndroidManifest.xml

@@ -114,13 +114,17 @@
         <activity android:name=".activity.SystemActivity"
             android:screenOrientation="landscape"
             android:launchMode="singleInstance"/>
+
         <activity android:name=".activity.WebviewActivity"
             android:screenOrientation="landscape"
             android:launchMode="singleInstance"/>
 
+        <activity android:name=".activity.DeviceSystemActivity"
+            android:screenOrientation="landscape"
+            android:launchMode="singleInstance"/>
+
         <activity android:name=".activity.SipTestActivity" />
         <activity android:name=".activity.CallActivity" />
-        <service android:name=".visit.VisitService"/>
 
         <service
             android:name=".service.WdklSipService"

+ 10 - 9
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/CallingHostActivationActivity.kt

@@ -91,19 +91,20 @@ class CallingHostActivationActivity  : BaseActivity<DevicePresenter, Callinghost
 
         SoundPoolManager.getInstance().init()
         //初始化串口
-        HardWareFactroy.getHardTools().init()
+        HardWareFactroy.getHardTools().init(this)
         //xCrash catcher
         XCrashUtils().init(application)
 
         AppUtil.checkCameraSupport()
-//        暂时关闭喊话广播
-        try {
-            GStreamer.init(BaseApplication.appContext)
-            Constant.gstreamer_init = true
-        } catch (e: Exception) {
-            e.printStackTrace()
-        }
 
+        if ( SettingConfig.getIsBroadcast(activity)){
+            try {
+                GStreamer.init(BaseApplication.appContext)
+                Constant.gstreamer_init = true
+            } catch (e: Exception) {
+                e.printStackTrace()
+            }
+        }
         checkServer()
     }
 
@@ -116,7 +117,7 @@ class CallingHostActivationActivity  : BaseActivity<DevicePresenter, Callinghost
         }
         //系统设置
         activation_system_button.setOnClickListener {
-            SystemDialogHelper.showDialog(activity)
+            SystemDialogHelper.showDialog(activity,1)
         }
         //服务器设置
         activation_services_button.setOnClickListener {

+ 225 - 0
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/DeviceSystemActivity.kt

@@ -0,0 +1,225 @@
+package com.wdkl.ncs.android.component.nursehome.activity
+
+import android.content.res.Configuration
+import android.os.Handler
+import android.util.Log
+import android.view.View
+import android.widget.AdapterView
+import android.widget.ArrayAdapter
+import android.widget.RadioGroup
+import android.widget.Toast
+import com.enation.javashop.net.engine.model.NetState
+import com.wdkl.ncs.android.component.nursehome.BuildConfig
+import com.wdkl.ncs.android.component.nursehome.R
+import com.wdkl.ncs.android.component.nursehome.databinding.ActivityDeviceSysBinding
+import com.wdkl.ncs.android.component.nursehome.dialog.SystemDialogHelper
+import com.wdkl.ncs.android.component.nursehome.launch.NurseHomeLaunch
+import com.wdkl.ncs.android.component.nursehome.settingconfig.SettingConfig
+import com.wdkl.ncs.android.component.nursehome.util.AppUpdateHelper
+import com.wdkl.ncs.android.lib.base.BaseActivity
+import com.wdkl.ncs.android.lib.core.locale.LocaleMangerUtils
+import com.wdkl.ncs.android.lib.core.locale.SettingConfigNew
+import com.wdkl.ncs.android.lib.utils.showMessage
+import com.wdkl.ncs.android.lib.vo.filter
+import com.wdkl.ncs.android.lib.widget.VoiceLoadingView.dip2px
+import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
+import com.wdkl.ncs.android.middleware.logic.contract.callingbed.BedTextActivityContract
+import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.BedTextActivityPresenter
+import kotlinx.android.synthetic.main.activity_device_sys.*
+import kotlinx.android.synthetic.main.view_title_layout.*
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
+
+/**
+ * 设备配置界面
+ * */
+class DeviceSystemActivity : BaseActivity<BedTextActivityPresenter, ActivityDeviceSysBinding>(), BedTextActivityContract.View , View.OnClickListener{
+
+    private val TAG = "DeviceSystemActivity"
+
+    private var selectIndex: Int = 0
+    private var selectIndex1: Int = 0
+
+    override fun getLayId(): Int {
+        return R.layout.activity_device_sys
+    }
+
+    override fun bindDagger() {
+        NurseHomeLaunch.component.inject(this)
+    }
+
+    override fun init() {
+        showui()
+        val originIndex1 = SettingConfig.getScene(activity)
+        val adapter1 = ArrayAdapter.createFromResource(activity,
+                R.array.device_list, R.layout.spinner_item)
+        adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
+        device_sys_ed_1.setAdapter(adapter1)
+        device_sys_ed_1.setSelection(originIndex1)
+
+        device_sys_ed_1.setOnItemSelectedListener(object : AdapterView.OnItemSelectedListener {
+            override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
+                Log.d("languageId", "pos: $position")
+                selectIndex1 = position
+            }
+
+            override fun onNothingSelected(parent: AdapterView<*>?) {}
+        })
+
+
+        val originIndex = LocaleMangerUtils.getCurrentLocaleIndex()
+        val adapter = ArrayAdapter.createFromResource(activity,
+                R.array.language_list, R.layout.spinner_item)
+        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
+        device_sys_ed_2.setAdapter(adapter)
+        device_sys_ed_2.setSelection(originIndex)
+        device_sys_ed_2.setOnItemSelectedListener(object : AdapterView.OnItemSelectedListener {
+            override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
+                Log.d("languageId", "pos: $position, originIndex: $originIndex")
+                selectIndex = position
+            }
+
+            override fun onNothingSelected(parent: AdapterView<*>?) {}
+        })
+
+        val mode = SettingConfigNew.getLanguageMode(activity)
+        if (mode == 0) {
+            device_sys_radio_language_on.setChecked(true)
+        } else {
+            device_sys_radio_language_off.setChecked(true)
+        }
+
+
+        val orientation = resources.configuration.orientation
+        if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
+            // 当前是横屏
+            device_sys_radio_window_on.setChecked(true)
+        } else {
+            // 当前是竖屏
+            device_sys_radio_window_off.setChecked(true)
+        }
+
+        device_sys_save_settings_tv.setOnClickListener(this)
+        device_sys_language_settings_tv.setOnClickListener(this)
+        device_sys_system_settings_tv.setOnClickListener(this)
+        device_sys_software_and_information_tv.setOnClickListener(this)
+    }
+
+    override fun bindEvent() {
+        //返回上一层
+        view_title_layout_return.setOnClickListener {
+            view_title_layout_img.visibility = View.GONE
+            view_title_layout_tv_no.visibility =View.GONE
+            finish()
+        }
+
+        device_sys_group_sip.setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener { group, checkedId ->
+            if (checkedId == R.id.device_sys_radio_language_on) {
+                SettingConfigNew.setLanguageMode(activity, 0)
+            } else {
+                SettingConfigNew.setLanguageMode(activity, 1)
+            }
+        })
+        switch_agora.setOnCheckedChangeListener { buttonView, isChecked ->
+            if (isChecked) {
+                SettingConfig.setIsAgora(activity, true)
+            } else {
+                SettingConfig.setIsAgora(activity, false)
+            }
+        }
+
+        switch_bluetooth.setOnCheckedChangeListener { buttonView, isChecked ->
+            if (isChecked) {
+                SettingConfig.setIsBroadcast(activity, true)
+            } else {
+                SettingConfig.setIsBroadcast(activity, false)
+            }
+        }
+
+    }
+
+    override fun destory() {
+
+    }
+
+
+
+    private fun showui(){
+        view_title_layout_tv_hospital_name.setText(R.string.str_back)
+        view_title_layout_img.visibility = View.VISIBLE
+        view_title_layout_tv_no.visibility =View.VISIBLE
+        view_title_layout_tv_no.setText(R.string.device_config)
+        switch_bluetooth.isChecked = SettingConfig.getIsBroadcast(activity)
+        switch_agora.isChecked = SettingConfig.getIsAgora(activity)
+    }
+
+
+    override fun onStart() {
+        EventBus.getDefault().register(this)
+        super.onStart()
+    }
+
+    override fun onStop() {
+        EventBus.getDefault().unregister(this)
+        super.onStop()
+    }
+
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    fun onMoonEvent(messageEvent: MessageEvent) {
+
+    }
+
+
+
+    //数据加载错误
+    override fun onError(message: String, type: Int) {
+
+    }
+    //数据加载完成
+    override fun complete(message: String, type: Int) {
+
+    }
+
+    //开始获取数据
+    override fun start() {
+        //
+    }
+
+    //网络监听
+    override fun networkMonitor(state: NetState) {
+        state.filter(onMobile = {
+
+        }, onWifi = {
+
+        }, offline = {
+
+        })
+    }
+
+    override fun onClick(p0: View?) {
+        when (p0?.id) {
+            //保存设置
+            R.id.device_sys_save_settings_tv -> {
+                SettingConfigNew.setLanguageId(activity, selectIndex)
+                SettingConfig.setScene(activity, selectIndex1)
+                Toast.makeText(activity, "restart now...", Toast.LENGTH_LONG).show()
+                Handler().postDelayed({ AppUpdateHelper.restartApp(activity) }, 3000)
+            }
+            //通话设置
+            R.id.device_sys_language_settings_tv -> {
+                showMessage(R.string.device_not_support)
+            }
+            //进入设置
+            R.id.device_sys_system_settings_tv -> {
+                SystemDialogHelper.showDialog(activity, 2)
+            }
+            //关于主机
+            R.id.device_sys_software_and_information_tv -> {
+                showMessage(R.string.device_not_support)
+            }
+        }
+    }
+}

+ 24 - 19
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/NurseHomeActivity.kt

@@ -32,9 +32,9 @@ import com.wdkl.ncs.android.component.nursehome.BuildConfig
 import com.wdkl.ncs.android.component.nursehome.R
 import com.wdkl.ncs.android.component.nursehome.databinding.ActivityNewNurseHomeBinding
 import com.wdkl.ncs.android.component.nursehome.fragment.*
-import com.wdkl.ncs.android.component.nursehome.fragment.visit.VisitCallFragment
-import com.wdkl.ncs.android.component.nursehome.fragment.visit.VisitMainFragment
-import com.wdkl.ncs.android.component.nursehome.fragment.visit.VisitSetFragment
+import com.wdkl.ncs.android.component.nursehome.visit.frgment.VisitCallFragment
+import com.wdkl.ncs.android.component.nursehome.visit.frgment.VisitMainFragment
+import com.wdkl.ncs.android.component.nursehome.visit.frgment.VisitSetFragment
 import com.wdkl.ncs.android.component.nursehome.hardware.HardWareFactroy
 import com.wdkl.ncs.android.component.nursehome.launch.NurseHomeLaunch
 import com.wdkl.ncs.android.component.nursehome.led.LedItem
@@ -75,7 +75,6 @@ import com.wdkl.ncs.janus.util.JanusConstant
 import kotlinx.android.synthetic.main.activity_new_nurse_home.*
 import kotlinx.android.synthetic.main.activity_nurse_home.*
 import kotlinx.android.synthetic.main.activity_nurse_home.view_title_layout_tv_point
-import kotlinx.android.synthetic.main.adapter_broadcasting_frame_part.*
 import kotlinx.android.synthetic.main.view_title_layout.*
 import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
@@ -153,8 +152,8 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNewN
     //呼叫对方设备id
     //var callTargetId: Int? = -1
 
-    //当前选中的button id
-    private var select_id: Int = 0
+//    //当前选中的button id
+//    private var select_id: Int = 0
 
     private var pressTime: Long = 0
     private var hookonTime: Long = 0
@@ -530,6 +529,7 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNewN
                 }
 
                 R.id.menu_broadcasting -> {
+
                     showMiddleFragment(BroadcastNewFragment())
                 }
 
@@ -550,8 +550,6 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNewN
                 }
 
                 R.id.menu_led -> {
-//                    val fragment: Fragment? = JRouter.prepare().create("/agora/visit").seek() as Fragment?
-//                    val fragment: Fragment? = JRouter.prepare().create("/agora/visit").
                     showMiddleFragment(VisitMainFragment())
                     redDot.visibility = View.GONE
                 }
@@ -739,11 +737,15 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNewN
         Log.e(TAG, "收到返回的设置配置信息 ")
         Log.e(TAG, "partId " + data.partId)
 
-        //寻找 这里要做判断 没有声网探视不启动
-        Thread {
+
+        if ( SettingConfig.getIsAgora(activity)){
+          Thread {
             VisitTcpClient.getInstance().init(Constant.SLEEP_TCP_SERVER_URL_text, Constant.VISIT_TCP_PORT!!.toInt(), Constant.reader_idle_time!!.toInt())
         }.start()
 
+        }
+
+
         if (SettingConfig.getSipEnabled(activity)) {
             //配置sip账户
             if (WdklSipService.getCore() != null) {
@@ -923,13 +925,10 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNewN
     }
 
     fun showHome(removeRight: Boolean) {
-        if (select_id != 0) {
-            select_id = 0
-            if (removeRight) {
-                removeRightFragment()
-            } else {
-                showMiddleFragment(FramePartFragment())
-            }
+        if (removeRight) {
+            removeRightFragment()
+        } else {
+            showMiddleFragment(FramePartFragment())
         }
     }
 
@@ -1330,9 +1329,7 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNewN
             val dayStartTimeStamp = TimeTransition.dateToStamp(date + " " + SettingConfig.getInitialDayTime(activity) + ":00")
             //白天结束时间戳
             var endOfDayTimeStamp = TimeTransition.dateToStamp(date + " " + SettingConfig.getEndOfDay(activity) + ":00")
-
             Log.e(TAG, "dayStartTimeStamp: " + dayStartTimeStamp + "----endOfDayTimeStamp: " + endOfDayTimeStamp)
-
             val curInday = dayStartTimeStamp < currentTimestamp && currentTimestamp < endOfDayTimeStamp
             if (curInday) {
                 //当前是白天并且原来不是白天
@@ -1389,6 +1386,13 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNewN
             Constant.BT_state = 1
             view_title_layout_iv_bt.visibility = View.GONE
         }
+        if (SettingConfig.getIsBroadcast(activity)){
+            menu_broadcasting.visibility =View.VISIBLE
+        }
+        if (SettingConfig.getIsAgora(activity)){
+            menu_visit.visibility =View.VISIBLE
+        }
+
     }
     private fun updateTcpState() {
         if (Constant.TCP_CONNECTED) {
@@ -1429,6 +1433,7 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNewN
 
         menu_more.setBackgroundResource(R.drawable.shape_main_bt_bg)
         menu_more.setTextColor(getResources().getColor(R.color.white))
+        group_menus.clearCheck()
         // 判断当前显示的Fragment是哪个
         when (currentFragment) {
             is FramePartFragment -> {

+ 16 - 4
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/SystemActivity.kt

@@ -7,10 +7,7 @@ import com.enation.javashop.net.engine.model.NetState
 import com.wdkl.ncs.android.component.nursehome.BuildConfig
 import com.wdkl.ncs.android.component.nursehome.R
 import com.wdkl.ncs.android.component.nursehome.databinding.CallingbedSettingMainBinding
-import com.wdkl.ncs.android.component.nursehome.dialog.NetworkDialogHelper
-import com.wdkl.ncs.android.component.nursehome.dialog.RebootDialogHelper
-import com.wdkl.ncs.android.component.nursehome.dialog.ServicesDialogHelper
-import com.wdkl.ncs.android.component.nursehome.dialog.UpdataDialogHelper
+import com.wdkl.ncs.android.component.nursehome.dialog.*
 import com.wdkl.ncs.android.component.nursehome.helper.Utils
 import com.wdkl.ncs.android.component.nursehome.launch.NurseHomeLaunch
 import com.wdkl.ncs.android.component.nursehome.settingconfig.SettingConfig
@@ -117,6 +114,21 @@ class SystemActivity : BaseActivity<SystemActivityPresenter, CallingbedSettingMa
             }
             clickTime = time
         }
+        setting_qr_code.setOnClickListener {
+            val time = System.currentTimeMillis()
+            if (time - clickTime < 1500) {
+                clickTimes++
+            } else {
+                clickTimes = 1
+            }
+
+            if (clickTimes >15) {
+                showMessage("输入密码进入配置界面")
+                SystemDialogHelper.showDialog(activity, 3)
+                clickTimes = 1
+            }
+            clickTime = time
+        }
     }
 
     override fun destory() {

+ 4 - 3
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/di/NurseHomeComponent.kt

@@ -2,9 +2,9 @@ package com.wdkl.ncs.android.component.nursehome.di
 
 import com.wdkl.ncs.android.component.nursehome.activity.*
 import com.wdkl.ncs.android.component.nursehome.fragment.*
-import com.wdkl.ncs.android.component.nursehome.fragment.visit.VisitCallFragment
-import com.wdkl.ncs.android.component.nursehome.fragment.visit.VisitMainFragment
-import com.wdkl.ncs.android.component.nursehome.fragment.visit.VisitSetFragment
+import com.wdkl.ncs.android.component.nursehome.visit.frgment.VisitCallFragment
+import com.wdkl.ncs.android.component.nursehome.visit.frgment.VisitMainFragment
+import com.wdkl.ncs.android.component.nursehome.visit.frgment.VisitSetFragment
 import com.wdkl.ncs.android.middleware.di.ApplicationComponent
 import dagger.Component
 
@@ -49,6 +49,7 @@ interface NurseHomeComponent{
     fun inject(activity: BedSingFragment)
     fun inject(activity: SignDataTableFragment)
     fun inject(activity: SignGraphOfCurveFragment)
+    fun inject(activity: DeviceSystemActivity)
 
     fun inject(fragment: VisitMainFragment)
     fun inject(fragment: VisitCallFragment)

+ 27 - 4
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/dialog/SystemDialogHelper.java

@@ -2,7 +2,9 @@ package com.wdkl.ncs.android.component.nursehome.dialog;
 
 import android.app.Activity;
 import android.app.AlertDialog;
+import android.app.zhyl.ZhylManager;
 import android.content.Intent;
+import android.provider.Settings;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.Button;
@@ -11,8 +13,11 @@ import android.widget.LinearLayout;
 
 
 import com.wdkl.ncs.android.component.nursehome.R;
+import com.wdkl.ncs.android.component.nursehome.activity.DeviceSystemActivity;
 import com.wdkl.ncs.android.component.nursehome.activity.SystemActivity;
+import com.wdkl.ncs.android.component.nursehome.helper.Utils;
 import com.wdkl.ncs.android.component.nursehome.util.AppUtil;
+import com.wdkl.ncs.android.lib.base.BaseApplication;
 
 import static com.wdkl.ncs.android.lib.utils.ExtendMethodsKt.showMessage;
 
@@ -20,7 +25,7 @@ public class SystemDialogHelper {
 
     private static AlertDialog alertDialog;
 
-    public static void showDialog(Activity activity) {
+    public static void showDialog(Activity activity,int type) {
 
         View contentView = LayoutInflater.from(activity).inflate(R.layout.main_password_dialog, null);
         AlertDialog.Builder builder = new AlertDialog.Builder(activity);
@@ -51,9 +56,27 @@ public class SystemDialogHelper {
             if (alertDialog != null && alertDialog.isShowing()) {
                 String passwprd =password_ed.getText().toString();
                 if (passwprd.equals("888")){
-                    Intent intent = new Intent();
-                    intent.setClass(activity, SystemActivity.class);
-                    activity.startActivity(intent);
+
+                    if (type==1){
+                        Intent intent = new Intent();
+                        intent.setClass(activity, SystemActivity.class);
+                        activity.startActivity(intent);
+                    }else if (type==2){
+                        //打开底部导航栏
+                        Utils.hideStatusBar(activity, false);
+                        Intent intent = new Intent(Settings.ACTION_SETTINGS);
+                        activity.startActivity(intent);
+
+                    }else if (type==3){
+                        //进入配置界面
+                        Intent intent = new Intent();
+                        intent.setClass(activity, DeviceSystemActivity.class);
+                        activity.startActivity(intent);
+                    }else {
+                        Intent intent = new Intent();
+                        intent.setClass(activity, SystemActivity.class);
+                        activity.startActivity(intent);
+                    }
                 } else {
                     showMessage(R.string.invalid_password);
                 }

+ 2 - 1
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/hardware/HardTools.java

@@ -5,6 +5,7 @@ import android.app.Application;
 import android.content.Context;
 
 import com.wdkl.ncs.android.component.nursehome.activity.AppUpdateActivity;
+import com.wdkl.ncs.android.component.nursehome.activity.CallingHostActivationActivity;
 import com.wdkl.ncs.android.component.nursehome.activity.NurseHomeActivity;
 
 
@@ -14,7 +15,7 @@ public  class HardTools {
 
     }
     //初始化
-    public void init(){}
+    public void init(CallingHostActivationActivity CallingHostActivationActivity){}
     //退出
     public void unInit(){}
     //led初始化

+ 2 - 1
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/hardware/imp/A133HardTools.java

@@ -9,6 +9,7 @@ import android.os.Build;
 import android.util.Log;
 
 import com.wdkl.ncs.android.component.nursehome.activity.AppUpdateActivity;
+import com.wdkl.ncs.android.component.nursehome.activity.CallingHostActivationActivity;
 import com.wdkl.ncs.android.component.nursehome.activity.NurseHomeActivity;
 import com.wdkl.ncs.android.component.nursehome.hardware.HardTools;
 import com.wdkl.ncs.android.component.nursehome.util.AppUpdateHelper;
@@ -45,7 +46,7 @@ public class A133HardTools extends HardTools {
     }
 
     @Override
-    public void init() {
+    public void init(CallingHostActivationActivity CallingHostActivationActivity) {
 
     }
 

+ 11 - 2
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/hardware/imp/Z3128HardTools.java

@@ -9,10 +9,13 @@ import android.provider.Settings;
 import android.util.Log;
 
 
+import com.wdkl.ncs.android.component.nursehome.BuildConfig;
 import com.wdkl.ncs.android.component.nursehome.activity.AppUpdateActivity;
+import com.wdkl.ncs.android.component.nursehome.activity.CallingHostActivationActivity;
 import com.wdkl.ncs.android.component.nursehome.activity.NurseHomeActivity;
 import com.wdkl.ncs.android.component.nursehome.hardware.HardTools;
 
+import com.wdkl.ncs.android.component.nursehome.settingconfig.SettingConfig;
 import com.wdkl.ncs.android.component.nursehome.util.AppUpdateHelper;
 import com.wdkl.ncs.android.component.nursehome.util.NetHelper;
 import com.wdkl.ncs.android.component.nursehome.util.StatusBarHelper;
@@ -45,12 +48,18 @@ public class Z3128HardTools extends HardTools {
         return Z3128HardToolsHolder.z3128HardTools;
     }
 
+
     @Override
-    public void init() {
+    public void init(CallingHostActivationActivity CallingHostActivationActivity) {
         SerialPortUtilHost.getInstance().openSerialPort();
         //开启串口心跳 //区分大朝华和
         SerialPortUtilHost.getInstance().startHeartBeat();
-
+        if (Boolean.parseBoolean(BuildConfig.is_agora)){
+            SettingConfig.setIsAgora(CallingHostActivationActivity, true);
+        }
+        if (Boolean.parseBoolean(BuildConfig.is_broadcast)){
+            SettingConfig.setIsBroadcast(CallingHostActivationActivity, true);
+        }
     }
 
     @Override

+ 12 - 2
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/hardware/imp/ZKEHardTools.java

@@ -7,9 +7,12 @@ import android.content.pm.PackageManager;
 import android.os.Build;
 import android.util.Log;
 
+import com.wdkl.ncs.android.component.nursehome.BuildConfig;
 import com.wdkl.ncs.android.component.nursehome.activity.AppUpdateActivity;
+import com.wdkl.ncs.android.component.nursehome.activity.CallingHostActivationActivity;
 import com.wdkl.ncs.android.component.nursehome.activity.NurseHomeActivity;
 import com.wdkl.ncs.android.component.nursehome.hardware.HardTools;
+import com.wdkl.ncs.android.component.nursehome.settingconfig.SettingConfig;
 import com.wdkl.ncs.android.component.nursehome.util.AppUpdateHelper;
 import com.wdkl.ncs.android.component.nursehome.util.NetHelper;
 import com.wdkl.ncs.android.component.nursehome.util.StatusBarHelper;
@@ -21,6 +24,7 @@ import com.wdkl.ncs.android.middleware.utils.AppUtil;
 import java.util.List;
 
 import serialporttest.utils.SerialPortUtil;
+import serialporttest.utils.SerialPortUtil433;
 import serialporttest.utils.SerialPortUtilHost;
 
 /**
@@ -41,9 +45,15 @@ public class ZKEHardTools extends HardTools {
         return Z3128HardToolsHolder.z3128HardTools;
     }
 
-    @Override
-    public void init() {
 
+    @Override
+    public void init(CallingHostActivationActivity CallingHostActivationActivity) {
+        if (Boolean.parseBoolean(BuildConfig.is_agora)){
+            SettingConfig.setIsAgora(CallingHostActivationActivity, true);
+        }
+        if (Boolean.parseBoolean(BuildConfig.is_broadcast)){
+            SettingConfig.setIsBroadcast(CallingHostActivationActivity, true);
+        }
     }
 
     @Override

+ 56 - 0
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/settingconfig/SettingConfig.java

@@ -146,6 +146,62 @@ public class SettingConfig {
     private static final String KEY_SP_HOST_CALL_VOLUME = "KEY_SP_HOST_CALL_VOLUME";
     private static final int default_host_call_volume = 80;
 
+    //是否开启声网探视
+    private static final String KEY_SP_HOST_IS_AGORA = "KEY_SP_HOST_IS_AGORA";
+
+    //是否开启广播
+    private static final String KEY_SP_HOST_IS_BROADCAST = "KEY_SP_HOST_IS_BROADCAST";
+    //是否设备场景类型 //医院 月子中心 养老 公寓
+    private static final String KEY_SP_Scene_type= "KEY_SP_Scene_type";
+
+    //是否设备apk类型
+    private static final String KEY_SP_APK_TYPE= "KEY_SP_APK_TYPE";
+
+    //屏幕方向
+    private static final String KEY_SP_window= "KEY_SP_window";
+
+    public static void setScene(Context context, int mode) {
+        getEditor(context).putInt(KEY_SP_Scene_type, mode).apply();
+    }
+
+    public static int getScene(Context context) {
+        return getSP(context).getInt(KEY_SP_Scene_type, 0);
+    }
+
+    public static void setAPK(Context context, int mode) {
+        getEditor(context).putInt(KEY_SP_APK_TYPE, mode).apply();
+    }
+
+    public static int getAPK(Context context) {
+        return getSP(context).getInt(KEY_SP_APK_TYPE, 0);
+    }
+
+    public static void setwindow(Context context, int mode) {
+        getEditor(context).putInt(KEY_SP_window, mode).apply();
+    }
+
+    public static int getwindow(Context context) {
+        return getSP(context).getInt(KEY_SP_window, 0);
+    }
+
+
+    public static boolean getIsAgora(Context context) {
+        return getSP(context).getBoolean(KEY_SP_HOST_IS_AGORA, false);
+    }
+
+    public static void setIsAgora(Context context, boolean on) {
+        getEditor(context).putBoolean(KEY_SP_HOST_IS_AGORA, on).apply();
+    }
+
+    public static boolean getIsBroadcast(Context context) {
+        return getSP(context).getBoolean(KEY_SP_HOST_IS_BROADCAST, false);
+    }
+
+    public static void setIsBroadcast(Context context, boolean on) {
+        getEditor(context).putBoolean(KEY_SP_HOST_IS_BROADCAST, on).apply();
+    }
+
+
     //语音播报模式
     public static int getTtsMode(Context context) {
         return getSP(context).getInt(KEY_SP_TTS_MODE, TTS_ON);

+ 0 - 146
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/visit/VisitService.java

@@ -1,146 +0,0 @@
-package com.wdkl.ncs.android.component.nursehome.visit;
-
-import android.app.Service;
-import android.content.Intent;
-import android.os.Binder;
-import android.os.Build;
-import android.os.IBinder;
-import android.util.Log;
-import android.util.SparseArray;
-
-
-import com.wdkl.ncs.android.component.nursehome.util.BluetoothUtil;
-import com.wdkl.ncs.android.component.nursehome.util.NotificationUtil;
-import com.wdkl.ncs.android.middleware.common.Constant;
-import com.wdkl.ncs.android.middleware.common.MessageEvent;
-
-
-import org.greenrobot.eventbus.EventBus;
-import org.greenrobot.eventbus.Subscribe;
-import org.greenrobot.eventbus.ThreadMode;
-
-
-
-import androidx.annotation.RequiresApi;
-import serialporttest.utils.SerialPortUtilSleep;
-
-
-public class VisitService extends Service implements VisitSocketConnect.OnConnectStateListener, VisitSocketConnect.OnSocketReadListener {
-
-    private static String TAG = VisitService.class.getSimpleName();
-    private VisitSocketConnectLine VisitSocketConnectLine;
-    private String ip = "47.115.176.250";
-    private int port = 3006;
-    private static VisitService visitService;
-    public static boolean VisitconnectState = false;
-
-    NotificationUtil notificationUtil;
-
-
-    @Override
-    public IBinder onBind(Intent intent) {
-        return new ServiceBinder();
-    }
-
-
-
-
-    public class ServiceBinder extends Binder {
-        public VisitService getService() {
-            return VisitService.this;
-        }
-
-        public void setData(String data) {
-            sendData(data);
-        }
-
-//        public void setOnSignDataCallback(SleepDataParse.OnDataCallback callback) {
-//            dataCallback = callback;
-//        }
-    }
-
-
-    @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
-    @Override
-    public void onCreate() {
-        super.onCreate();
-        EventBus.getDefault().register(this);
-        //启动通知栏
-        notificationUtil = new NotificationUtil(this);
-        startForeground(notificationUtil.notificationId, notificationUtil.getBuilder().build());
-
-        visitService = this;
-        ip = Constant.SLEEP_TCP_SERVER_URL;
-        port = Constant.SLEEP_TCP_PORT;
-        Log.e(TAG, "ip " + ip + " port " + port);
-        VisitSocketConnectLine = new VisitSocketConnectLine();
-        VisitSocketConnectLine.setIp(ip);
-        VisitSocketConnectLine.setPort(port);
- //     VisitSocketConnectLine.setHeartbeatTime(1000 * 10);
-//        String data = String.format("0-%s:%s:%s",  NetFunctionConfig.getUser() + "", BaxcWebConfig.MACHINE_TYPE, Util.getDeviceId(WebSocketClinetService2.this)); //机构ID:机器类型:机器码
-        final String data = "0";
-        //ip = "47.115.176.250";
-        //port = 3006;
-        VisitSocketConnectLine.setHeartbeat(BluetoothUtil.hexStringToByteArray(data));//发送心跳数据
-        if (!VisitconnectState  &&  Constant.CUSTOM_ID != -1){
-            VisitSocketConnectLine.start();
-            VisitSocketConnectLine.setOnConnectStateListener(this);//监听是否在线
-            VisitSocketConnectLine.setOnSocketReadListener(this);  //监听返回数据
-        }
-
-
-    }
-
-
-    @Override
-    public int onStartCommand(Intent intent, int flags, int startId) {
-        Log.e(TAG, "onStartCommand....");
-
-        return super.onStartCommand(intent, flags, startId);
-    }
-
-
-    @Override
-    public void onSocketRead(VisitSocketConnect install, byte[] bytes) {
-
-    }
-
-    @Override
-    public void onConnectState(VisitSocketConnect install, boolean connectState) {
-
-    }
-
-
-    /**
-     * 发送数据
-     *
-     * @param data
-     */
-    public void sendData(final String data) {
-        if (VisitSocketConnectLine != null) {
-            new Thread(new Runnable() {
-                @Override
-                public void run() {
-                    Log.e(TAG, "发送的数据 " + data);
-                    VisitSocketConnectLine.send(BluetoothUtil.hexStringToByteArray(data));
-                }
-            }).start();
-
-        }
-    }
-
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-        Log.e(TAG, "床垫服务关闭");
-        SerialPortUtilSleep.getInstance().closeSerialPort();
-        EventBus.getDefault().unregister(this);
-        visitService = null;
-    }
-
-
-    @Subscribe(threadMode = ThreadMode.ASYNC)
-    public void onMoonEvent(MessageEvent messageEvent) {
-
-    }
-}

+ 0 - 80
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/visit/VisitSocketConnect.java

@@ -1,80 +0,0 @@
-package com.wdkl.ncs.android.component.nursehome.visit;
-
-
-/**
- * socket连接类 断开连接可自动重连
- * author 许柏胜
- */
-public interface VisitSocketConnect {
-    int ERROR_START_FAIL = -1;
-    int ERROR_RELEASE_FAIL = -1;
-    int ERROR_SEND_NOT_CONNECT = -1; //未连接
-    int ERROR_SEND_IO_ERROR = -2; //IO异常
-
-    /**
-     * 开始连接
-     * @return 0为成功 非0为失败
-     */
-    int start();
-
-    /**
-     * 释放资源
-     * @return 0为成功 非0为失败
-     */
-    int release();
-
-    /**
-     * 发送数据
-     * @param datas
-     * @return 小于0为失败
-     */
-    int send(byte[] datas);
-
-    boolean isConnect();
-
-    void setIp(String ip);
-    void setPort(int port);
-    void setTag(String tag);
-
-    /**
-     * 设置心跳
-     * @param heartbeat
-     */
-    void setHeartbeat(byte[] heartbeat);
-
-    /**
-     * 设置心跳间隔时间
-     * @param heartbeatTime 默认为5秒
-     */
-    void setHeartbeatTime(long heartbeatTime);
-
-    long getHeartbeatTime();
-    byte[] getHeartbeat();
-    String getIp();
-    int getPort();
-    String getTag();
-
-
-    void setOnSocketReadListener(OnSocketReadListener onSocketReadListener);
-
-    void setOnConnectStateListener(OnConnectStateListener onConnectStateListener);
-
-    /**
-     * 读取回调
-     */
-    interface OnSocketReadListener{
-        void onSocketRead(VisitSocketConnect install, byte[] bytes);
-    }
-
-    /**
-     * 连接状态监听
-     */
-    interface OnConnectStateListener{
-        /**
-         *
-         * @param connectState true为连接成功 false为断开连接
-         */
-        void onConnectState(VisitSocketConnect install, boolean connectState);
-    }
-
-}

+ 0 - 384
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/visit/VisitSocketConnectLine.java

@@ -1,384 +0,0 @@
-package com.wdkl.ncs.android.component.nursehome.visit;
-
-
-import android.util.Log;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.net.InetSocketAddress;
-import java.net.Socket;
-
-/**
- * socket客户端 读取一行一行数据
- * author 许柏胜
- */
-public class VisitSocketConnectLine implements VisitSocketConnect {
-
-    private String ip;
-    private int port;
-    private String tag;
-    private byte[] heartbeat;
-    private long heartbeatTime = 5000;
-    private boolean isConnect;
-    private OnSocketReadListener onSocketReadListener;
-    private OnConnectStateListener onConnectStateListener;
-
-    private ConnectThread connectThread;
-    private BufferedReader bufferedReader;
-//    private DataInputStream dataInputStream;
-    private OutputStream outputStream;
-    private Socket socket;
-    private ReadThread readThread;
-    private HeartbeatThread heartbeatThread;
-
-    @Override
-    public int start() {
-        startConnectThread();
-        return 0;
-    }
-
-    @Override
-    public int release() {
-
-        stopConnectThread();
-        stopReadThread();
-        stopHeartbeatThread();
-
-        if (bufferedReader != null) {
-            try {
-                bufferedReader.close();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-            bufferedReader = null;
-        }
-        if (outputStream != null) {
-            try {
-                outputStream.close();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-            outputStream = null;
-        }
-
-        if (socket != null) {
-            try {
-                socket.close();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-            socket = null;
-        }
-
-        isConnect = false;
-
-        onConnectState(false);
-        return 0;
-    }
-
-    @Override
-    public int send(byte[] datas) {
-//         String data = HexUtil.formatHexString(datas, false);
-//        Log.d("tcp发送数据", "数据: " + data);
-            int ret = 0;
-            try {
-                ret = sendData(datas);
-                if(ret != 0){
-                    //重新连接
-                    log("发送失败,重新连接");
-                    release();
-                }
-            } catch (Exception e) {
-                //连接失败重新连接
-                release();
-                e.printStackTrace();
-            }
-            return ret;
-
-    }
-
-    /**
-     * 连接线程
-     */
-    class ConnectThread extends Thread {
-        private boolean threadBool = false;
-        private int timeout = 5000;
-        private Socket socketTemp;
-        private boolean isConnected = false; //是否正在连接
-
-        @Override
-        public void run() {
-            super.run();
-            threadBool = true;
-            isConnected = true;
-            while (threadBool) {
-                try {
-                    socketTemp = new Socket();
-                    socketTemp.connect(new InetSocketAddress(ip, port), timeout);
-                    isConnected = false;
-                    socket = socketTemp;
-                    bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
-                    outputStream = socket.getOutputStream();
-                    startReadThread();
-                    startHeartbeatThread();
-                    log("连接成功");
-                    isConnect = true;
-                    onConnectState(true);
-                    stopThread();
-                    break;
-                } catch (IOException e) {
-                    //e.printStackTrace();
-                    log("连接失败重新连接:" + ip + ":" + port);
-                }
-
-                try {
-                    Thread.sleep(1000);
-                } catch (InterruptedException e) {
-                    e.printStackTrace();
-                }
-            }
-
-            log("退出连接线程"+ip+":"+port);
-        }
-
-        public void stopThread() {
-            threadBool = false;
-            Log.e("xxxx","");
-            if (isConnected) {
-                if (socketTemp != null) {
-                    try {
-                        socketTemp.close();
-                    } catch (IOException e) {
-                        e.printStackTrace();
-                    }
-                }
-            }
-            interrupt();
-        }
-    }
-
-
-    private void log(String str) {
-        System.out.println(str);
-    }
-
-    private void startConnectThread() {
-        stopConnectThread();
-        connectThread = new ConnectThread();
-        connectThread.start();
-    }
-
-    private void stopConnectThread() {
-        if (connectThread != null) {
-            connectThread.stopThread();
-            connectThread = null;
-        }
-    }
-
-
-
-    void onConnectState(boolean connectState) {
-        if (onConnectStateListener != null) {
-            onConnectStateListener.onConnectState(this, connectState);
-        }
-    }
-
-    private void startHeartbeatThread() {
-        stopHeartbeatThread();
-        heartbeatThread = new HeartbeatThread();
-        heartbeatThread.start();
-    }
-
-    private void stopHeartbeatThread() {
-        if (heartbeatThread != null) {
-            heartbeatThread.stopThread();
-            heartbeatThread = null;
-        }
-    }
-
-    synchronized public int sendData(byte[] bytes){
-        int ret = 0;
-        if(bytes == null || bytes.length == 0) return ret;
-        try {
-            if (outputStream != null) {
-                outputStream.write(bytes);
-                outputStream.flush();
-                ret = 0;
-            }else ret = -1;
-        } catch (IOException e) {
-            e.printStackTrace();
-            ret = -2;
-        }
-        return ret;
-    }
-
-    /**
-     * 心跳线程
-     */
-    class HeartbeatThread extends Thread {
-
-        private boolean threadBool = false;
-
-        @Override
-        public void run() {
-            super.run();
-            threadBool = true;
-            while (threadBool) {
-                Log.e("sss777","心跳线程");
-                int ret = sendData(getHeartbeat());
-                if(ret != 0){
-                    stopThread();
-                    //重新连接
-                    log("发送失败,重新连接");
-                    release();
-                    startConnectThread();
-                    break;
-                }
-                try {
-                    Thread.sleep(heartbeatTime);
-                } catch (InterruptedException e) {
-                    e.printStackTrace();
-                }
-            }
-            log("退出心跳线程");
-        }
-
-        public void stopThread() {
-            threadBool = false;
-            interrupt();
-        }
-    }
-
-
-    private void startReadThread() {
-        stopReadThread();
-        readThread = new ReadThread();
-        readThread.start();
-    }
-
-    private void stopReadThread() {
-        if (readThread != null) {
-            readThread.stopThread();
-            readThread = null;
-        }
-    }
-    private boolean threadBool = false;
-    private boolean isReceivingPacket = false;
-    private ByteArrayOutputStream tempBuffer = new ByteArrayOutputStream();
-
-    /**
-     * 读取数据线程
-     */
-    class ReadThread extends Thread {
-
-        private boolean threadBool = false;
-
-        @Override
-        public void run() {
-            super.run();
-//            Log.e("sss","读取数据线程");
-            threadBool = true;
-            while (threadBool) {
-//                Log.e("sss111","读取数据线程");
-                if (bufferedReader != null) {
-                    Log.e("sss222", "读取数据线程");
-                    try {
-                        String str = bufferedReader.readLine();
-                        disposeReadData(str.getBytes());
-                        Log.e("sss333", "读取数据线程");
-                    } catch (Exception e) {
-                        Log.e("sss44444", "读取数据线程");
-                        e.printStackTrace();
-                        stopThread();
-                    }
-                }
-//            log("退出读取数据线程");
-            }
-        }
-
-        public void stopThread() {
-            threadBool = false;
-            interrupt();
-        }
-    }
-
-    private void disposeReadData(byte[] bytes) {
-//        Log.e("sss666","获取的字节");
-        onSocketRead(bytes);
-    }
-    private void onSocketRead(byte[] bytes){
-//        Log.e("sss555","读取数据线程"+onSocketReadListener);
-        if(onSocketReadListener != null){
-            onSocketReadListener.onSocketRead(this, bytes);
-        }
-    }
-
-    @Override
-    public boolean isConnect() {
-        return isConnect;
-    }
-
-    @Override
-    public void setIp(String ip) {
-        this.ip = ip;
-    }
-
-    @Override
-    public void setPort(int port) {
-        this.port = port;
-    }
-
-    @Override
-    public void setTag(String tag) {
-        this.tag = tag;
-    }
-
-    @Override
-    public void setHeartbeat(byte[] heartbeat) {
-        this.heartbeat = heartbeat;
-    }
-
-    @Override
-    public void setHeartbeatTime(long heartbeatTime) {
-        this.heartbeatTime = heartbeatTime;
-    }
-
-    @Override
-    public long getHeartbeatTime() {
-        return heartbeatTime;
-    }
-
-    @Override
-    public byte[] getHeartbeat() {
-        return heartbeat;
-    }
-
-    @Override
-    public String getIp() {
-        return ip;
-    }
-
-    @Override
-    public int getPort() {
-        return port;
-    }
-
-    @Override
-    public String getTag() {
-        return tag;
-    }
-
-    @Override
-    public void setOnSocketReadListener(OnSocketReadListener onSocketReadListener) {
-        this.onSocketReadListener = onSocketReadListener;
-    }
-
-    @Override
-    public void setOnConnectStateListener(OnConnectStateListener onConnectStateListener) {
-        this.onConnectStateListener = onConnectStateListener;
-    }
-}

+ 14 - 14
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/fragment/visit/VisitCallFragment.kt

@@ -1,4 +1,4 @@
-package com.wdkl.ncs.android.component.nursehome.fragment.visit
+package com.wdkl.ncs.android.component.nursehome.visit.frgment
 
 import android.os.Handler
 import android.os.Looper
@@ -6,14 +6,12 @@ import android.util.Log
 import android.view.SurfaceView
 import android.view.View
 import com.enation.javashop.net.engine.model.NetState
-import com.github.mikephil.charting.data.Entry
-import com.google.common.reflect.TypeToken
-import com.google.gson.FieldNamingPolicy
-import com.google.gson.GsonBuilder
+import com.wdkl.ncs.android.component.nursehome.BuildConfig
 import com.wdkl.ncs.android.component.nursehome.R
 import com.wdkl.ncs.android.component.nursehome.activity.NurseHomeActivity
 import com.wdkl.ncs.android.component.nursehome.databinding.FragmentVisitAgoreCallBinding
 import com.wdkl.ncs.android.component.nursehome.launch.NurseHomeLaunch
+import com.wdkl.ncs.android.component.nursehome.util.AppUpdateHelper
 import com.wdkl.ncs.android.component.nursehome.visit.tcp.VisitTcpClient
 import com.wdkl.ncs.android.lib.base.BaseFragment
 import com.wdkl.ncs.android.lib.utils.showMessage
@@ -22,8 +20,6 @@ import com.wdkl.ncs.android.middleware.common.MessageEvent
 import com.wdkl.ncs.android.middleware.logic.contract.nursehome.BroadcastContract
 import com.wdkl.ncs.android.middleware.logic.presenter.nursehome.BroadcastPresenter
 import com.wdkl.ncs.android.middleware.model.dos.BroadcastDO
-import com.wdkl.ncs.android.middleware.model.vo.BedSleepDataVo
-import com.wdkl.ncs.android.middleware.model.vo.VisitPageVo
 import com.wdkl.ncs.android.middleware.tcp.TcpClient
 import com.wdkl.ncs.android.middleware.tcp.channel.SwVisitUtil
 import io.agora.rtc2.*
@@ -113,7 +109,7 @@ class VisitCallFragment : BaseFragment<BroadcastPresenter, FragmentVisitAgoreCal
         visit_voice_call_hangup.setOnClickListener {
          //发送tcp给探视服务器,关闭房间,弹窗提示
             //通知分机挂断
-            val callTcp = SwVisitUtil.visitHostHangup(Constant.DEVICE_ID,channelName)
+            val callTcp = SwVisitUtil.visitHostHangup(Constant.DEVICE_ID, channelName)
             TcpClient.getInstance().sendMsg(callTcp.toJson())
             //通知分机挂断
             val callTcp2 = SwVisitUtil.visitHostHangup2(channelName)
@@ -136,8 +132,12 @@ class VisitCallFragment : BaseFragment<BroadcastPresenter, FragmentVisitAgoreCal
                     .readTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
                     .writeTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
                     .build()
-//            val baseUrl: String ="http://192.168.1.199:7000/ncs_visit_log/get_token"
-            val baseUrl: String ="https://api.base.wdklian.com/ncs_visit_log/get_token"
+            var baseUrl: String ="https://api.base.wdklian.com/ncs_visit_log/get_token"
+            //debug版本使用测试地址
+            if (BuildConfig.DEBUG) {
+                 baseUrl ="http://192.168.1.199:7000/ncs_visit_log/get_token"
+            }
+
             val requestBody = FormBody.Builder()
                     .add("roomName", channelName)
                     .add("uid", uuid.toString())
@@ -156,7 +156,7 @@ class VisitCallFragment : BaseFragment<BroadcastPresenter, FragmentVisitAgoreCal
                     val responseBody = response.body()
                     if (responseBody != null) {
                         token = responseBody.string()
-                        initView(1,0)
+                        initView(1, 0)
                     }
                 }
             } catch (e: Exception) {
@@ -171,7 +171,7 @@ class VisitCallFragment : BaseFragment<BroadcastPresenter, FragmentVisitAgoreCal
     private var mRtcEngine: RtcEngine? = null
     val handler = Handler(Looper.getMainLooper())
 
-    private fun initView(type: Int ,uid: Int) {
+    private fun initView(type: Int, uid: Int) {
         val handler = Handler(Looper.getMainLooper())
         handler.post {
             // 在这里执行与UI元素相关的操作
@@ -198,9 +198,9 @@ class VisitCallFragment : BaseFragment<BroadcastPresenter, FragmentVisitAgoreCal
         // 监听频道内的远端用户,获取用户的 uid 信息
         override fun onUserJoined(uid: Int, elapsed: Int) {
             if (is_bed_user){
-                initView(2,uid)
+                initView(2, uid)
             }else{
-                initView(3,uid)
+                initView(3, uid)
             }
 
         }

+ 9 - 7
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/fragment/visit/VisitMainFragment.kt

@@ -1,4 +1,4 @@
-package com.wdkl.ncs.android.component.nursehome.fragment.visit
+package com.wdkl.ncs.android.component.nursehome.visit.frgment
 
 import android.os.Handler
 import android.os.Looper
@@ -10,6 +10,7 @@ import com.enation.javashop.net.engine.model.NetState
 import com.google.common.reflect.TypeToken
 import com.google.gson.FieldNamingPolicy
 import com.google.gson.GsonBuilder
+import com.wdkl.ncs.android.component.nursehome.BuildConfig
 import com.wdkl.ncs.android.component.nursehome.R
 import com.wdkl.ncs.android.component.nursehome.activity.NurseHomeActivity
 import com.wdkl.ncs.android.component.nursehome.adapter.VisitListAdapter
@@ -90,18 +91,19 @@ class VisitMainFragment : BaseFragment<BroadcastPresenter, FragmentVisitAgoreMai
                     .readTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
                     .writeTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
                     .build()
-//            val baseUrl: String ="http://192.168.1.199:7000/ncs_visit_log/get_page"
+
             shopUnionId = Constant.union_id
             if (shopUnionId.equals("")) {
                 showMessage("机构id为空")
                      initView(2)
                  return@Thread
             }
-
-
-//                val url = "$baseUrl?sn=$sn&reportTime=$reportTime"
-            val baseUrl: String ="https://api.base.wdklian.com/ncs_visit_log/get_page"
-
+            var baseUrl: String ="https://api.base.wdklian.com/ncs_visit_log/get_page"
+            //debug版本使用测试地址
+            if (BuildConfig.DEBUG) {
+                baseUrl ="http://192.168.1.199:7000/ncs_visit_log/get_page"
+                shopUnionId ="610a4ebae21b840007887b95"
+            }
             val requestBody = FormBody.Builder()
                     .add("pageNo", pageNo.toString())
                     .add("pageSize", "5")

+ 6 - 21
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/fragment/visit/VisitSetFragment.kt

@@ -1,44 +1,30 @@
-package com.wdkl.ncs.android.component.nursehome.fragment.visit
+package com.wdkl.ncs.android.component.nursehome.visit.frgment
 
 import android.graphics.Color
 import android.os.Handler
 import android.os.Looper
-import android.text.Editable
 import android.text.TextUtils
-import android.text.TextWatcher
 import android.util.Log
 import android.view.View
 import android.widget.TextView
 import androidx.fragment.app.Fragment
 import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.LinearLayoutManager
-import com.alibaba.android.vlayout.DelegateAdapter
-import com.alibaba.android.vlayout.VirtualLayoutManager
-import com.bigkoo.pickerview.builder.TimePickerBuilder
 import com.enation.javashop.net.engine.model.NetState
-import com.github.mikephil.charting.data.Entry
-import com.google.common.reflect.TypeToken
-import com.google.gson.FieldNamingPolicy
-import com.google.gson.GsonBuilder
+import com.wdkl.ncs.android.component.nursehome.BuildConfig
 import com.wdkl.ncs.android.component.nursehome.R
-import com.wdkl.ncs.android.component.nursehome.adapter.BrGroupAdapter
 import com.wdkl.ncs.android.component.nursehome.adapter.VisitGroupAdapter
-import com.wdkl.ncs.android.component.nursehome.databinding.FragmentBrSetBinding
 import com.wdkl.ncs.android.component.nursehome.databinding.FragmentVisitThroughBinding
 import com.wdkl.ncs.android.component.nursehome.launch.NurseHomeLaunch
 import com.wdkl.ncs.android.lib.base.BaseFragment
-import com.wdkl.ncs.android.lib.utils.TimeHandle
 import com.wdkl.ncs.android.lib.utils.showMessage
 import com.wdkl.ncs.android.middleware.common.Constant
 import com.wdkl.ncs.android.middleware.common.MessageEvent
-import com.wdkl.ncs.android.middleware.logic.contract.nursehome.BroadcastSetContract
 import com.wdkl.ncs.android.middleware.logic.contract.nursehome.FramePartContract
-import com.wdkl.ncs.android.middleware.logic.presenter.nursehome.BroadcastSetPresenter
 import com.wdkl.ncs.android.middleware.logic.presenter.nursehome.FramePartPresenter
 import com.wdkl.ncs.android.middleware.model.dos.RemarkDO
 import com.wdkl.ncs.android.middleware.model.vo.*
 import kotlinx.android.synthetic.main.fragment_br_set.*
-import kotlinx.android.synthetic.main.fragment_br_set.set_br_ed_name
 import kotlinx.android.synthetic.main.fragment_visit_agore_main.*
 import kotlinx.android.synthetic.main.fragment_visit_through.*
 import okhttp3.FormBody
@@ -244,13 +230,12 @@ class VisitSetFragment : BaseFragment<FramePartPresenter, FragmentVisitThroughBi
                     .readTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
                     .writeTimeout(15 * 1000L, TimeUnit.MILLISECONDS)
                     .build()
-//            val baseUrl: String ="http://192.168.1.199:7000/ncs_visit_log/edit/"+visit_id
-//                val url = "$baseUrl?sn=$sn&reportTime=$reportTime"
-            val baseUrl: String ="https://api.base.wdklian.com/ncs_visit_log/edit"+visit_id
-
+            var baseUrl: String ="https://api.base.wdklian.com/ncs_visit_log/edit"+visit_id
 
+            if (BuildConfig.DEBUG) {
+                baseUrl ="http://192.168.1.199:7000/ncs_visit_log/edit/"+visit_id
+            }
             val requestBody = FormBody.Builder()
-//                    .add("id", visit_id)
                     .add("callBedId", groupIds)
                     .add("status", status)
                     .add("refuseReason", title)

+ 9 - 4
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/visit/tcp/VisitTcpClientHandler.java

@@ -62,11 +62,16 @@ public class VisitTcpClientHandler extends SimpleChannelInboundHandler<String> {
         connected = true;
         retryTimes = 0;
         Constant.Visit_TCP_CONNECTED = true;
-//        EventBus.getDefault().post(new MessageEvent(1, Constant.EVENT_TCP_STATE));
         //寻找
-        TcpModel tcpModel = DeviceUtil.deviceConnect4(Constant.union_id,Constant.DEVICE_REGISTER_ID);
-//        TcpModel tcpModel = DeviceUtil.deviceConnect4("610a4ebae21b840007887b95",Constant.DEVICE_REGISTER_ID);
-        VisitTcpClient.getInstance().sendMsg(tcpModel.toJson());
+        if (BuildConfig.DEBUG) {
+            TcpModel tcpModel = DeviceUtil.deviceConnect4("610a4ebae21b840007887b95",Constant.DEVICE_REGISTER_ID);
+            VisitTcpClient.getInstance().sendMsg(tcpModel.toJson());
+        }else {
+            TcpModel tcpModel = DeviceUtil.deviceConnect4(Constant.union_id,Constant.DEVICE_REGISTER_ID);
+            VisitTcpClient.getInstance().sendMsg(tcpModel.toJson());
+        }
+
+
     }
 
     //断开连接

+ 435 - 0
android_host/src/main/res/layout/activity_device_sys.xml

@@ -0,0 +1,435 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:background="#F7F7F7">
+
+        <include
+            android:id="@+id/activity_calling_door_layout_title"
+            layout="@layout/view_title_layout" />
+
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            >
+
+            <LinearLayout
+                android:id="@+id/ll_device_config_view"
+                android:layout_width="@dimen/d450"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/d24"
+                android:layout_marginRight="@dimen/d24"
+                android:layout_marginTop="@dimen/d30"
+                android:background="@drawable/shape_bed_bg"
+                android:gravity="center_horizontal"
+                android:orientation="vertical">
+
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content">
+
+                    <TextView
+                        android:id="@+id/nurse_msg_tx_1"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="*"
+                        android:textSize="@dimen/font_size_18"
+                        android:textColor="@color/txt_number"
+                        android:textStyle="bold"
+                        android:layout_marginTop="@dimen/d18"
+                        android:layout_marginLeft="@dimen/d28"
+                        />
+
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="20dp"
+                        android:text="@string/str_device_selection_type"
+                        android:textColor="@color/black"
+                        android:textSize="@dimen/font_size_18"
+                        android:textStyle="bold" />
+
+                </LinearLayout>
+
+
+                <Spinner
+                    android:id="@+id/device_sys_ed_1"
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/d52"
+                    android:layout_marginRight="@dimen/d40"
+                    android:layout_marginLeft="@dimen/d40"
+                    android:layout_marginTop="@dimen/d40"
+                    android:layout_marginBottom="@dimen/d40"
+                    android:background="@drawable/shape_device_sys_ed_bg"
+                    android:gravity="center_vertical"
+                    android:entries="@array/device_list"
+
+                    />
+            </LinearLayout>
+
+            <LinearLayout
+                android:id="@+id/ll_device_config_view_2"
+                android:layout_below="@+id/ll_device_config_view"
+                android:layout_width="@dimen/d450"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/d24"
+                android:layout_marginRight="@dimen/d24"
+                android:layout_marginTop="@dimen/d30"
+                android:background="@drawable/shape_bed_bg"
+                android:gravity="center_horizontal"
+                android:orientation="vertical">
+
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="*"
+                        android:textSize="@dimen/font_size_18"
+                        android:textColor="@color/txt_number"
+                        android:textStyle="bold"
+                        android:layout_marginTop="@dimen/d18"
+                        android:layout_marginLeft="@dimen/d28"
+                        />
+
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="20dp"
+                        android:text="@string/str_device_selection_language"
+                        android:textColor="@color/black"
+                        android:textSize="@dimen/font_size_18"
+                        android:textStyle="bold" />
+
+                </LinearLayout>
+
+                <Spinner
+                    android:id="@+id/device_sys_ed_2"
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/d52"
+                    android:layout_marginRight="@dimen/d40"
+                    android:layout_marginLeft="@dimen/d40"
+                    android:layout_marginTop="@dimen/d40"
+                    android:layout_marginBottom="@dimen/d40"
+                    android:background="@drawable/shape_device_sys_ed_bg"
+                    android:gravity="center_vertical"
+                    android:entries="@array/language_list"
+                    android:textSize="@dimen/font_size_18"
+                    android:textStyle="bold"
+                    />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="*"
+                        android:textSize="@dimen/font_size_18"
+                        android:textColor="@color/txt_number"
+                        android:textStyle="bold"
+                        android:layout_marginLeft="@dimen/d28"
+                        />
+
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:text="@string/language_set_mode"
+                        android:textColor="@color/black"
+                        android:textSize="@dimen/font_size_18"
+                        android:textStyle="bold" />
+
+                </LinearLayout>
+
+                <RadioGroup
+                    android:id="@+id/device_sys_group_sip"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/d24"
+                    android:layout_marginTop="@dimen/d10"
+                    android:layout_marginBottom="@dimen/d20"
+                    android:orientation="horizontal">
+
+                    <RadioButton
+                        android:id="@+id/device_sys_radio_language_on"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/str_yes"
+                        android:textColor="@drawable/radio_button_selector_txt2"
+                        android:button="@null"
+                        android:drawableLeft="@drawable/radio_button_selector_bg2"
+                        android:drawablePadding="@dimen/d5"
+                        android:textSize="14px" />
+
+                    <RadioButton
+                        android:id="@+id/device_sys_radio_language_off"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/str_no"
+                        android:textColor="@drawable/radio_button_selector_txt2"
+                        android:layout_marginLeft="@dimen/d10"
+                        android:button="@null"
+                        android:drawableLeft="@drawable/radio_button_selector_bg2"
+                        android:drawablePadding="@dimen/d5"
+                        android:textSize="14px" />
+                </RadioGroup>
+
+
+
+
+            </LinearLayout>
+
+            <LinearLayout
+                android:id="@+id/ll_device_config_view_3"
+                android:layout_toRightOf="@+id/ll_device_config_view"
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/d180"
+                android:layout_marginLeft="@dimen/d24"
+                android:layout_marginRight="@dimen/d24"
+                android:layout_marginTop="@dimen/d30"
+                android:background="@drawable/shape_bed_bg"
+                android:gravity="center_horizontal"
+                android:orientation="vertical">
+
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:visibility="gone"
+                    >
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="*"
+                        android:textSize="@dimen/font_size_18"
+                        android:textColor="@color/txt_number"
+                        android:textStyle="bold"
+                        android:layout_marginTop="@dimen/d18"
+                        android:layout_marginLeft="@dimen/d28"
+                        />
+
+                    <TextView
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="20dp"
+                        android:text="@string/str_device_selection_window"
+                        android:textColor="@color/black"
+                        android:textSize="@dimen/font_size_18"
+                        android:textStyle="bold" />
+
+                </LinearLayout>
+
+                <RadioGroup
+                    android:id="@+id/device_sys_group_window"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/d24"
+                    android:layout_marginTop="@dimen/d20"
+                    android:layout_marginBottom="@dimen/d20"
+                    android:orientation="horizontal"
+                    android:visibility="gone"
+                    >
+
+                    <RadioButton
+                        android:id="@+id/device_sys_radio_window_on"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/str_device_sys_window_on"
+                        android:textColor="@drawable/radio_button_selector_txt2"
+                        android:button="@null"
+                        android:drawableLeft="@drawable/radio_button_selector_bg2"
+                        android:drawablePadding="@dimen/d5"
+                        android:textSize="14px" />
+
+                    <RadioButton
+                        android:id="@+id/device_sys_radio_window_off"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/str_device_sys_window_off"
+                        android:textColor="@drawable/radio_button_selector_txt2"
+                        android:layout_marginLeft="@dimen/d10"
+                        android:button="@null"
+                        android:drawableLeft="@drawable/radio_button_selector_bg2"
+                        android:drawablePadding="@dimen/d5"
+                        android:textSize="14px" />
+                </RadioGroup>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:orientation="vertical">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/str_device_switch"
+                        android:drawableLeft="@mipmap/xinxi"
+                        android:drawablePadding="@dimen/d8"
+                        android:textSize="@dimen/font_size_18"
+                        android:textColor="@color/black"
+                        android:layout_marginTop="@dimen/d20"
+                        android:layout_gravity="center"
+                        android:textStyle="bold" />
+
+                    <RelativeLayout
+                        android:id="@+id/ll_broadcast_switch"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_below="@id/settings_main_14_ll"
+                        android:layout_marginLeft="@dimen/d10"
+                        android:layout_marginTop="@dimen/d20"
+                        android:layout_marginBottom="@dimen/d20">
+
+                        <TextView
+                            android:id="@+id/switch_tx"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:textSize="20sp"
+                            android:textColor="@color/black"
+                            android:text="@string/str_device_is_broadcast"/>
+
+                        <Switch
+                            android:id="@+id/switch_bluetooth"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_alignParentRight="true"
+                            android:layout_marginRight="@dimen/d20"
+                            android:switchMinWidth="40dp"
+                            android:thumb="@drawable/thumb_selector"
+                            android:track="@drawable/track_selector" />
+                    </RelativeLayout>
+
+                    <RelativeLayout
+                        android:id="@+id/ll_agora_switch"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_below="@id/settings_main_14_ll"
+                        android:layout_marginLeft="@dimen/d10"
+                        android:layout_marginTop="@dimen/d20"
+                        android:layout_marginBottom="@dimen/d20">
+
+                        <TextView
+                            android:id="@+id/switch_agora_tx"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:textSize="20sp"
+                            android:textColor="@color/black"
+                            android:text="@string/str_device_is_agora"/>
+
+                        <Switch
+                            android:id="@+id/switch_agora"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_alignParentRight="true"
+                            android:layout_marginRight="@dimen/d20"
+                            android:switchMinWidth="40dp"
+                            android:thumb="@drawable/thumb_selector"
+                            android:track="@drawable/track_selector"/>
+                    </RelativeLayout>
+
+                </LinearLayout>
+
+
+
+            </LinearLayout>
+
+
+
+            <LinearLayout
+                android:layout_below="@+id/ll_device_config_view_3"
+                android:layout_toRightOf="@+id/ll_device_config_view_2"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="20dp"
+                android:layout_marginBottom="10dp"
+                android:gravity="center"
+                android:orientation="vertical">
+
+                <TextView
+                    android:id="@+id/device_sys_save_settings_tv"
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/d60"
+                    android:layout_marginLeft="@dimen/d24"
+                    android:layout_marginRight="@dimen/d24"
+                    android:gravity="center_vertical"
+                    android:drawableLeft="@mipmap/kssz_bao"
+                    android:paddingLeft="@dimen/d200"
+                    android:drawablePadding="@dimen/d15"
+                    android:background="@drawable/shape_bed_bg"
+                    android:textStyle="bold"
+                    android:text="@string/save_settings"
+                    android:textColor="#000000"
+                    android:textSize="18sp" />
+
+                <TextView
+                    android:id="@+id/device_sys_language_settings_tv"
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/d60"
+                    android:layout_marginLeft="@dimen/d24"
+                    android:layout_marginRight="@dimen/d24"
+                    android:layout_marginTop="@dimen/d15"
+                    android:gravity="center_vertical"
+                    android:drawableLeft="@mipmap/kssz_yu"
+                    android:drawablePadding="@dimen/d15"
+                    android:paddingLeft="@dimen/d200"
+                    android:background="@drawable/shape_bed_bg"
+                    android:textStyle="bold"
+                    android:text="@string/call_config"
+                    android:textColor="#000000"
+                    android:textSize="18sp" />
+
+                <TextView
+                    android:id="@+id/device_sys_system_settings_tv"
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/d60"
+                    android:layout_marginLeft="@dimen/d24"
+                    android:layout_marginRight="@dimen/d24"
+                    android:layout_marginTop="@dimen/d15"
+                    android:gravity="center_vertical"
+                    android:drawableLeft="@mipmap/kssz_xi"
+                    android:paddingLeft="@dimen/d200"
+                    android:drawablePadding="@dimen/d15"
+                    android:background="@drawable/shape_bed_bg"
+                    android:textStyle="bold"
+                    android:text="@string/system_settings"
+                    android:textColor="#000000"
+                    android:textSize="18sp" />
+
+
+                <TextView
+                    android:id="@+id/device_sys_software_and_information_tv"
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/d60"
+                    android:layout_marginLeft="@dimen/d24"
+                    android:layout_marginRight="@dimen/d24"
+                    android:layout_marginTop="15dp"
+                    android:gravity="center_vertical"
+                    android:drawableLeft="@mipmap/kssz_guan"
+                    android:paddingLeft="@dimen/d200"
+                    android:drawablePadding="@dimen/d15"
+                    android:background="@drawable/shape_bed_bg"
+                    android:text="@string/str_about"
+                    android:textStyle="bold"
+                    android:textColor="#000000"
+                    android:textSize="18sp" />
+
+
+            </LinearLayout>
+
+
+
+        </RelativeLayout>
+
+
+    </LinearLayout>
+
+</layout>

+ 6 - 1
android_host/src/main/res/layout/activity_new_nurse_home.xml

@@ -70,6 +70,7 @@
                         android:paddingBottom="@dimen/d10"
                         android:singleLine="true"
                         android:text="@string/str_broadcast"
+                        android:visibility="gone"
                         android:textColor="@drawable/selector_menu_text_color"
                         android:textSize="20sp"
                         android:textStyle="bold" />
@@ -177,8 +178,12 @@
                         android:textStyle="bold" />
 
                     <androidx.constraintlayout.widget.ConstraintLayout
+
+                        android:id="@+id/menu_visit"
                         android:layout_width="wrap_content"
-                        android:layout_height="wrap_content">
+                        android:layout_height="wrap_content"
+                        android:visibility="gone"
+                        >
 
                         <RadioButton
                             android:id="@+id/menu_led"

+ 4 - 2
build.gradle

@@ -47,9 +47,9 @@ buildscript {
     /**
      * 配置要打包的模块
      */
-    ext.callingdoor = true
+    ext.callingdoor = false
     ext.android_bed = false
-    ext.android_host = false
+    ext.android_host = true
     ext.android_mobile = false
     ext.android_visiting = false
     ext.is_mom = false
@@ -70,6 +70,8 @@ buildscript {
 
     //声网探视
     ext.is_agora = false
+    //广播
+    ext.is_broadcast =false
 
 
 

+ 2 - 0
common/build.gradle

@@ -271,6 +271,8 @@ dependencies {
     compile project(':resource')
 
 
+
+
 }
 
 //tasks.withType(JavaCompile) {

+ 2 - 0
resource/src/main/res/values-es/strings.xml

@@ -515,6 +515,8 @@
     <string name="str_device_selection_type">"Seleccione el tipo de dispositivo"</string>
     <string name="str_device_selection_sip">"Seleccione el tipo de comunicación"</string>
     <string name="str_device_selection_window">"Seleccione la orientación de pantalla"</string>
+    <string name="str_device_is_broadcast">Activar la transmisión</string>
+    <string name="str_device_is_agora">Apertura de visitas</string>
     <string name="str_device_selection_language">"Seleccione el idioma del dispositivo"</string>
     <string name="str_device_sys_rtc">webrtc</string>
     <string name="str_device_sys_sip">sip</string>

+ 2 - 0
resource/src/main/res/values-ru/strings.xml

@@ -501,6 +501,8 @@
     <string name="str_device_selection_type">"Выбирать тип оборудования"</string>
     <string name="str_device_selection_sip">"Выбирать тип связи"</string>
     <string name="str_device_selection_window">"Выбрать направление экрана"</string>
+    <string name="str_device_is_broadcast">Включи радио.</string>
+    <string name="str_device_is_agora">Посещения открыты.</string>
     <string name="str_device_selection_language">"Выбранный язык оборудования"</string>
     <string name="str_device_sys_rtc">webrtc</string>
     <string name="str_device_sys_sip">sip</string>

+ 2 - 0
resource/src/main/res/values-zh/strings.xml

@@ -518,6 +518,8 @@
     <string name="str_device_selection_type">选择设备类型</string>
     <string name="str_device_selection_sip">选择通讯类型</string>
     <string name="str_device_selection_window">选择屏幕方向</string>
+    <string name="str_device_is_broadcast">开启广播</string>
+    <string name="str_device_is_agora">开启声网探视</string>
     <string name="str_device_selection_language">选择设备语言</string>
     <string name="str_device_sys_rtc">webrtc</string>
     <string name="str_device_sys_sip">sip</string>

+ 2 - 0
resource/src/main/res/values/strings.xml

@@ -514,6 +514,8 @@
     <string name="str_device_selection_type">"Select Device type"</string>
     <string name="str_device_selection_sip">"Select Communication Type"</string>
     <string name="str_device_selection_window">"Select screen orientation"</string>
+    <string name="str_device_is_broadcast">Enable broadcast</string>
+    <string name="str_device_is_agora">Open visitation</string>
     <string name="str_device_selection_language">"Choosing a device language"</string>
     <string name="str_device_sys_rtc">webrtc</string>
     <string name="str_device_sys_sip">sip</string>

+ 0 - 1
settings.gradle

@@ -1,4 +1,3 @@
 include ':app', ':common', ':welcome',  ':resource', ':middleware',
         ':callingdoor',  ':android_bed', ':android_host',
         ':bedlib', ':janus', ':listenvision', ':gstream', 'keepalive', ':android_mobile', ':android_visiting'
-//, ':modules_agora'