Browse Source

1。移动端新版本完成
2。分机设置时间参数多设备适配

xunchuanzhi 1 năm trước cách đây
mục cha
commit
bceb70d1e6
100 tập tin đã thay đổi với 4554 bổ sung1714 xóa
  1. 3 3
      android_bed/build.gradle
  2. 4 1
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/activity/CallingbedActivity.kt
  3. 8 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/SkyCallFragment.kt
  4. 2 1
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/VoiceMsgFragment.kt
  5. 2 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/HardTools.java
  6. 37 9
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/A133HardTools.java
  7. 8 1
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/WdchHardTools.java
  8. 5 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/YldHardTools.java
  9. 5 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/Z3128HardTools.java
  10. 6 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/ZKEHardTools.java
  11. 5 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/ZXHardTools.java
  12. 1 2
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/helper/SerialPortHelper.java
  13. 16 15
      android_bed/src/main/res/layout-land/adapter_call_records_item.xml
  14. 4 1
      android_bed/src/main/res/layout/callingbed_activation.xml
  15. 1 1
      android_host/build.gradle
  16. 2 2
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/util/LanguageSetDialogHelper.java
  17. 26 0
      android_mobile/src/main/AndroidManifest.xml
  18. 5 3
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/AppUpdateActivity.kt
  19. 7 2
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/ChannelImActivity.kt
  20. 1 1
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/ContactUpdateActivity.kt
  21. 14 8
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/NewEventListActivity.kt
  22. 10 4
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/TakeoverActivity.kt
  23. 4 5
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/VoiceMsgActivity.kt
  24. 97 4
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/WatchCallRecordsActivity.kt
  25. 11 6
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/WatchContactsActivity.kt
  26. 111 79
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/WatchHome2Activity.kt
  27. 46 23
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/WatchUserSettingActivity.java
  28. 231 0
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/adapter/CallRecordsItemAdapter.kt
  29. 4 8
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/adapter/ChannelImItemAdapter.kt
  30. 15 2
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/adapter/NewEventItemAdapter.kt
  31. 131 131
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/adapter/TakeoverItemAdapter.kt
  32. 14 16
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/adapter/TakeoverItemSearchAdapter.kt
  33. 6 4
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/adapter/WatchContactsItemAdapter.kt
  34. 2 1
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/broadcast/BatteryBroadcastReceiver.java
  35. 1 1
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/broadcast/MyMediaButtonReceiver.kt
  36. 83 0
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/dialog/ServicesDialogHelper.java
  37. 106 0
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/dialog/SystemDialogHelper.java
  38. 2 0
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/entity/ContactItemEntity.java
  39. 68 0
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/helper/Util.kt
  40. 101 0
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/helper/Utils.java
  41. 2 2
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/service/FloatingService.java
  42. 1 1
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/service/PhoneStateReceiver.java
  43. 4 5
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/service/WdKeepAliveService.kt
  44. 0 1
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/service/WdklSipService.java
  45. 2 2
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/ui/BaseSipCallFragment.java
  46. 84 2
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/ui/CallSingleActivity.java
  47. 6 5
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/ui/FragmentAudio.java
  48. 5 0
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/ui/FragmentVideo.java
  49. 201 193
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/ui/SingleCallFragment.java
  50. 1 1
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/util/ImPlayDialogHelper.java
  51. 1 1
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/util/MediaPlayHelper.java
  52. 17 0
      android_mobile/src/main/java/com/wdkl/ncs/android/component/home/util/NetHelper.java
  53. 1 2
      android_mobile/src/main/res/drawable/shape_main_age_bg.xml
  54. 10 0
      android_mobile/src/main/res/drawable/shape_main_bottom_bg.xml
  55. 9 0
      android_mobile/src/main/res/drawable/shape_main_setting_bg.xml
  56. 8 0
      android_mobile/src/main/res/drawable/shape_take_item_age_bg.xml
  57. 8 0
      android_mobile/src/main/res/drawable/shape_take_item_age_bg2.xml
  58. 8 0
      android_mobile/src/main/res/drawable/shape_take_item_type_bg.xml
  59. 53 27
      android_mobile/src/main/res/layout/activity_channel_im_list.xml
  60. 44 21
      android_mobile/src/main/res/layout/activity_event_list.xml
  61. 52 64
      android_mobile/src/main/res/layout/activity_takeover.xml
  62. 94 0
      android_mobile/src/main/res/layout/adapter_call_records_item.xml
  63. 65 49
      android_mobile/src/main/res/layout/adapter_channel_im_records_item.xml
  64. 122 53
      android_mobile/src/main/res/layout/adapter_watch_contacts_item.xml
  65. 9 6
      android_mobile/src/main/res/layout/av_p2p_audio_incoming.xml
  66. 10 6
      android_mobile/src/main/res/layout/av_p2p_audio_outgoing.xml
  67. 146 95
      android_mobile/src/main/res/layout/event_list_item.xml
  68. 8 6
      android_mobile/src/main/res/layout/fragment_audio.xml
  69. 7 6
      android_mobile/src/main/res/layout/fragment_video.xml
  70. 1 1
      android_mobile/src/main/res/layout/im_play_dialog_lay.xml
  71. 86 0
      android_mobile/src/main/res/layout/main_password_dialog.xml
  72. 86 0
      android_mobile/src/main/res/layout/main_server_dialog.xml
  73. 2 1
      android_mobile/src/main/res/layout/spinner_item.xml
  74. 119 54
      android_mobile/src/main/res/layout/takeover_item.xml
  75. 886 390
      android_mobile/src/main/res/layout/user_setting_layout.xml
  76. 42 0
      android_mobile/src/main/res/layout/view_title_layout.xml
  77. 112 20
      android_mobile/src/main/res/layout/watch_activity_call_records.xml
  78. 327 6
      android_mobile/src/main/res/layout/watch_activity_home.xml
  79. 407 265
      android_mobile/src/main/res/layout/watch_activity_home2.xml
  80. 256 73
      android_mobile/src/main/res/layout/watch_activity_register.xml
  81. 47 22
      android_mobile/src/main/res/layout/watch_contacts_lay.xml
  82. BIN
      android_mobile/src/main/res/mipmap-hdpi/bo.png
  83. BIN
      android_mobile/src/main/res/mipmap-hdpi/chuanghao_bg.png
  84. BIN
      android_mobile/src/main/res/mipmap-hdpi/hu.png
  85. BIN
      android_mobile/src/main/res/mipmap-hdpi/im_bo.png
  86. BIN
      android_mobile/src/main/res/mipmap-hdpi/im_list_item_bg.png
  87. BIN
      android_mobile/src/main/res/mipmap-hdpi/integ_arrow_icon.png
  88. BIN
      android_mobile/src/main/res/mipmap-mdpi/bo.png
  89. BIN
      android_mobile/src/main/res/mipmap-mdpi/chuanghao_bg.png
  90. BIN
      android_mobile/src/main/res/mipmap-mdpi/hu.png
  91. BIN
      android_mobile/src/main/res/mipmap-mdpi/im_bo.png
  92. BIN
      android_mobile/src/main/res/mipmap-mdpi/im_list_item_bg.png
  93. BIN
      android_mobile/src/main/res/mipmap-mdpi/integ_arrow_icon.png
  94. BIN
      android_mobile/src/main/res/mipmap-mdpi/qh.png
  95. BIN
      android_mobile/src/main/res/mipmap-mdpi/shijianr.png
  96. BIN
      android_mobile/src/main/res/mipmap-xhdpi/bo.png
  97. BIN
      android_mobile/src/main/res/mipmap-xhdpi/chuanghao_bg.png
  98. BIN
      android_mobile/src/main/res/mipmap-xhdpi/hu.png
  99. BIN
      android_mobile/src/main/res/mipmap-xhdpi/im_bo.png
  100. 0 0
      android_mobile/src/main/res/mipmap-xhdpi/im_list_item_bg.png

+ 3 - 3
android_bed/build.gradle

@@ -22,8 +22,8 @@ android {
         targetSdkVersion target_sdk_version
         versionCode app_version_code
         versionName app_version
-        multiDexEnabled true
         flavorDimensions "app"
+        multiDexEnabled true
         buildFeatures {
             dataBinding = true
         }
@@ -95,8 +95,8 @@ android {
 //获取编译日期
 String getDate() {
     Date date = new Date();
-    String dates = "\""+date.format("yyyy/MM/dd", TimeZone.getTimeZone("UTC"))+"\"";
-    return dates;
+    String dates = "\""+date.format("yyyy/MM/dd", TimeZone.getTimeZone("UTC"))+"\""
+    return dates
 }
 
 dependencies {

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

@@ -39,6 +39,7 @@ import com.wdkl.app.ncs.callingbed.databinding.CallingbedMainNewBinding
 import com.wdkl.app.ncs.callingbed.dialog.CallTypeDialogHelper
 import com.wdkl.app.ncs.callingbed.dialog.ReinforcementsDialogHelper
 import com.wdkl.app.ncs.callingbed.fragment.*
+import com.wdkl.app.ncs.callingbed.hardware.HardWareFactory
 import com.wdkl.app.ncs.callingbed.helper.*
 import com.wdkl.app.ncs.callingbed.launch.CallingbedLaunch
 import com.wdkl.app.ncs.callingbed.service.WdklSipService
@@ -1679,7 +1680,9 @@ class CallingbedActivity :BaseActivity<BedCallingbedActivityPresenter, Callingbe
                             }
 
                             try {
-//                                AppUtil.setSystemTime(BaseApplication.appContext, time, timeZone)
+
+                                HardWareFactory.getHardTools().setTime(this, time, timeZone)
+
                                 val intent = Intent("android.intent.action.SET_TIME")
                                 intent.putExtra("time", time)
                                 sendBroadcast(intent)

+ 8 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/SkyCallFragment.kt

@@ -621,6 +621,14 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
     override fun didRoomCreated() {
     }
 
+    override fun didIceConnectFail() {
+
+    }
+
+    override fun didSlowLink() {
+        TODO("Not yet implemented")
+    }
+
     //处理本地视频画面
     override fun didCreateLocalVideoTrack() {
         Log.e(TAG, "didCreateLocalVideoTrack")

+ 2 - 1
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/VoiceMsgFragment.kt

@@ -2,6 +2,7 @@ package com.wdkl.app.ncs.callingbed.fragment
 
 import android.os.SystemClock
 import android.view.MotionEvent
+import com.enation.javashop.android.jrouter.external.annotation.Autowired
 import com.enation.javashop.net.engine.model.NetState
 import com.wdkl.app.ncs.callingbed.R
 import com.wdkl.app.ncs.callingbed.databinding.VoiceMsgLayBinding
@@ -124,7 +125,7 @@ class VoiceMsgFragment @Inject constructor() : BaseFragment<VoiceFragmentPresent
     }
 
     override fun uploadResponse(result: String) {
-        val tcpModel = ImUtil.imMsg(Constant.DEVICE_ID, result)
+        val tcpModel = ImUtil.imMsg(Constant.DEVICE_ID,result,"NURSE")
         TcpClient.getInstance().sendMsg(tcpModel.toJson())
         showMessage("留言发送成功!")
         EventBus.getDefault().post(MessageEvent("Exit", Constant.EVENT_MOM_return))

+ 2 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/HardTools.java

@@ -42,6 +42,8 @@ public  class HardTools {
 
     public void CallConfigg(int mic,int yl){}
 
+    public void setTime(Context context , long timeMills, String timeZone){}
+
 
     //提供卡号
     public  void offerCardData(String data){}

+ 37 - 9
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/A133HardTools.java

@@ -6,6 +6,7 @@ import android.content.Context;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.os.Build;
+import android.os.RemoteException;
 import android.util.Log;
 
 import com.wdkl.app.ncs.callingbed.activity.CallingbedActivity;
@@ -18,6 +19,8 @@ import com.wdkl.ncs.android.lib.utils.AppTool;
 import com.wdkl.ncs.android.middleware.common.Constant;
 import com.wdkl.ncs.android.middleware.utils.AppUtil;
 
+import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
 
 import kotlin.Unit;
@@ -82,17 +85,40 @@ public class A133HardTools extends HardTools {
 
     @Override
     public void setSerial(CallingbedActivity callingbedActivity) {
-//        try {
-//            Thread.sleep(1500); // 延时1500毫秒 (1.5秒)
-//            // 串口监听
-//            callingbedActivity.setSerialListener();
-//            // 打开MICsetSerialListener
+        try {
+            Thread.sleep(1500); // 延时1500毫秒 (1.5秒)
+            // 串口监听
+            callingbedActivity.setSerialListener();
+            // 打开MICsetSerialListener
 //            SerialPortHelper.setMIC(false);
 //            SerialPortHelper.setHandsFree(true);
-//            SerialPortHelper.setSosLight("0");
-//        } catch (InterruptedException e) {
-//            e.printStackTrace();
-//        }
+            SerialPortHelper.setSosLight("0");
+            SerialPortHelper.setCallStatus("0");
+            //默认门灯白色
+            SerialPortHelper.setDoorLight(1, "111");
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public void setTime(Context context, long timeMills, String timeZone) {
+
+        try {
+            ZhylManager.getInstance(BaseApplication.appContext).sys_setTimeZone(timeZone);
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(new Date(timeMills));
+            int year = calendar.get(Calendar.YEAR);
+            int month = calendar.get(Calendar.MONTH) + 1;
+            int day = calendar.get(Calendar.DAY_OF_MONTH);
+            int hour = calendar.get(Calendar.HOUR_OF_DAY);
+            int minute = calendar.get(Calendar.MINUTE);
+            ZhylManager.getInstance(BaseApplication.appContext).sys_setTime(BaseApplication.appContext, year, month, day, hour, minute);
+
+        } catch (RemoteException e) {
+            e.printStackTrace();
+        }
+        super.setTime(context, timeMills, timeZone);
     }
 
     @Override
@@ -181,4 +207,6 @@ public class A133HardTools extends HardTools {
             e.printStackTrace();
         }
     }
+
+
 }

+ 8 - 1
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/WdchHardTools.java

@@ -2,6 +2,7 @@ package com.wdkl.app.ncs.callingbed.hardware.imp;
 
 import android.app.Application;
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.util.Log;
@@ -44,7 +45,13 @@ public class WdchHardTools extends HardTools {
           SerialPortUtil.getInstance().openSerialPortDCH();
 
     }
-
+    @Override
+    public void setTime(Context context, long timeMills, String timeZone) {
+        Intent intent = new Intent("android.intent.action.SET_TIME");
+        intent.putExtra("time", timeMills);
+        context.sendBroadcast(intent);
+        super.setTime(context, timeMills, timeZone);
+    }
     @Override
     public void unInit() {
         SerialPortUtil.getInstance().closeHeart();

+ 5 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/YldHardTools.java

@@ -62,6 +62,11 @@ public class YldHardTools extends HardTools {
         Constant.LOCAL_MAC = NetHelper.getInstance().getIMEI();
         Constant.DEVICE_REGISTER_ID = Constant.LOCAL_MAC;
     }
+    @Override
+    public void setTime(Context context, long timeMills, String timeZone) {
+        AppUtil.setSystemTime(context, timeMills, timeZone);
+        super.setTime(context, timeMills, timeZone);
+    }
 
     @Override
     public void setSerial(CallingbedActivity callingbedActivity) {

+ 5 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/Z3128HardTools.java

@@ -49,7 +49,12 @@ public class Z3128HardTools extends HardTools {
         SerialPortUtil.getInstance().openSerialPort();
         //开启串口心跳 //区分大朝华和
         SerialPortUtil.getInstance().startHeartBeat();
+    }
 
+    @Override
+    public void setTime(Context context, long timeMills, String timeZone) {
+        AppUtil.setSystemTime(context, timeMills, timeZone);
+        super.setTime(context, timeMills, timeZone);
     }
 
     @Override

+ 6 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/ZKEHardTools.java

@@ -47,6 +47,12 @@ public class ZKEHardTools extends HardTools {
     public void unInit() {
 
     }
+
+    @Override
+    public void setTime(Context context, long timeMills, String timeZone) {
+        AppUtil.setSystemTime(context, timeMills, timeZone);
+        super.setTime(context, timeMills, timeZone);
+    }
 //    @Override
 //    public void toggleStatusBar(Context context,boolean is) {
 //        if (Build.BOARD.equals("k37mv1_64_bsp") || Build.MODEL.equals("KT10-3F") || "m3520b_bnkj_zx".equals(Build.MODEL)) {

+ 5 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/ZXHardTools.java

@@ -41,6 +41,11 @@ public class ZXHardTools extends HardTools {
 
     }
     @Override
+    public void setTime(Context context, long timeMills, String timeZone) {
+        AppUtil.setSystemTime(context, timeMills, timeZone);
+        super.setTime(context, timeMills, timeZone);
+    }
+    @Override
     public void resetDevicex(Application application) {
         AppUpdateHelper.reboot(application);
     }

+ 1 - 2
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/helper/SerialPortHelper.java

@@ -24,9 +24,8 @@ public class SerialPortHelper {
      * data: 0 -- 正常,  1 -- 呼叫中, 2 -- 通话中
      */
     public static void setCallStatus(String data) {
-        if (Build.MODEL.equals("rk3128")) {
             SerialPortUtil.getInstance().sendCommand(SerialPortUtil.CALL_STATUS, data, "F");
-        }
+
     }
 
     /**

+ 16 - 15
android_bed/src/main/res/layout-land/adapter_call_records_item.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    <RelativeLayout
         android:layout_width="300dp"
         android:layout_height="70dp"
         android:background="#ffffff"
@@ -51,20 +51,21 @@
             android:layout_alignParentRight="true"
             android:layout_marginRight="@dimen/d10"
             />
+
         <TextView
-        android:id="@+id/call_records_item_call"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="已响应"
-        android:layout_below="@+id/call_records_item_type"
-        android:textColor="@color/white"
-        android:textSize="@dimen/font_size_9"
-        android:padding="@dimen/d5"
-        android:clickable="true"
-        android:layout_marginTop="@dimen/d4"
-        android:layout_alignParentRight="true"
-        android:layout_marginRight="@dimen/d10"
-        />
+            android:id="@+id/call_records_item_call"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_below="@+id/call_records_item_type"
+            android:layout_marginRight="10dp"
+            android:layout_marginTop="2dp"
+            android:clickable="true"
+            android:padding="@dimen/d5"
+            android:text="已响应"
+            android:textColor="@color/white"
+            android:textSize="@dimen/font_size_9" />
+
         <ImageView
             android:id="@+id/btn_call_accept"
             android:layout_width="48dp"

+ 4 - 1
android_bed/src/main/res/layout/callingbed_activation.xml

@@ -29,7 +29,7 @@
             android:id="@+id/activation_title_msg"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="设置右侧参数后激活"
+            android:text="设置参数后激活"
             android:textSize="@dimen/font_size_16"
             android:textColor="@color/white"
             android:layout_below="@+id/activation_title"
@@ -238,6 +238,9 @@
                 android:gravity="center_vertical"
                 android:orientation="horizontal">
 
+
+
+
                 <Button
                     android:id="@+id/activation_settings_button"
                     android:layout_width="0dp"

+ 1 - 1
android_host/build.gradle

@@ -15,6 +15,7 @@ kapt {
 }
 
 android {
+
     compileSdkVersion target_sdk_version
     buildToolsVersion build_tools_version
 
@@ -31,7 +32,6 @@ android {
         buildConfigField "String", "BUILD_TIME", getDate()
         buildConfigField 'String', 'VERSION_NAME', "\"${project.rootProject.ext.app_version}\""
         buildConfigField 'String', 'VERSION_CODE', "\"${project.rootProject.ext.app_version_code}\""
-        buildConfigField "String", "BUILD_TIME", getDate()
     }
 
     productFlavors {

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

@@ -128,8 +128,8 @@ public class LanguageSetDialogHelper {
         try {
             Window window = dialog.getWindow();
             WindowManager.LayoutParams lp = window.getAttributes();
-            lp.width = 360;
-            lp.height = 320;
+            lp.width = 400;
+            lp.height = 480;
             lp.gravity = Gravity.CENTER;
             window.setAttributes(lp);
         } catch (Exception e) {

+ 26 - 0
android_mobile/src/main/AndroidManifest.xml

@@ -91,6 +91,32 @@
             </intent-filter>
         </activity>
 
+        <activity android:name=".activity.WatchHome2Activity"
+            android:showOnLockScreen="true"
+            android:showWhenLocked="true"
+            android:launchMode="singleInstance"
+            android:screenOrientation="portrait"
+            android:configChanges="keyboardHidden|orientation|screenSize|navigation|keyboard">
+        </activity>
+
+        <receiver
+            android:name=".service.WdBootReceiver"
+            android:enabled="true"
+            android:exported="true">
+            <intent-filter android:priority="1000">
+                <action android:name="android.intent.action.BOOT_COMPLETED"/>
+            </intent-filter>
+        </receiver>
+
+        <!--sip call-->
+        <activity android:name=".activity.CallActivity"
+            android:turnScreenOn="true"
+            android:screenOrientation="nosensor"
+            android:launchMode="singleTask"/>
+        <service
+            android:name=".service.WdklSipService"
+            android:label="@string/wdkl_app_name" />
+
         <service android:name=".service.FloatingService"/>
 
         <service android:name="com.wdkl.ncs.android.component.home.service.WdKeepAliveService">

+ 5 - 3
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/AppUpdateActivity.kt

@@ -6,7 +6,6 @@ import android.view.View
 import android.view.WindowManager
 import com.enation.javashop.android.jrouter.external.annotation.Router
 import com.enation.javashop.net.engine.model.NetState
-import com.wdkl.ncs.android.component.home.BuildConfig
 import com.wdkl.ncs.android.component.home.R
 import com.wdkl.ncs.android.component.home.databinding.ActivityAppUpdateBinding
 import com.wdkl.ncs.android.component.home.helper.AppUpdateHelper
@@ -15,11 +14,10 @@ import com.wdkl.ncs.android.component.home.launch.HomeLaunch
 import com.wdkl.ncs.android.component.home.service.WdKeepAliveService
 import com.wdkl.ncs.android.lib.utils.AppTool
 import com.wdkl.ncs.android.lib.utils.showMessage
-import com.wdkl.ncs.android.lib.vo.MessageEvent
 import com.wdkl.ncs.android.lib.vo.filter
 import com.wdkl.ncs.android.middleware.api.ApiManager
-import com.wdkl.ncs.android.middleware.api.UrlManager
 import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
 import com.wdkl.ncs.android.middleware.logic.contract.home.AppUpdateContract
 import com.wdkl.ncs.android.middleware.logic.presenter.home.PHoneAppUpdatePresenter
 import com.wdkl.ncs.android.middleware.model.dos.AppVersionDO
@@ -83,6 +81,10 @@ class AppUpdateActivity : BaseActivity<PHoneAppUpdatePresenter, ActivityAppUpdat
         }
     }
 
+    override fun onNoneNet() {
+        TODO("Not yet implemented")
+    }
+
     fun checkAppVersion() {
         if (Constant.PART_ID != -1) {
             presenter.getAppVersion(Constant.PART_ID, 7)

+ 7 - 2
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/ChannelImActivity.kt

@@ -15,9 +15,9 @@ import com.wdkl.ncs.android.component.home.databinding.ActivityChannelImListBind
 import com.wdkl.ncs.android.component.home.launch.HomeLaunch
 import com.wdkl.ncs.android.component.home.util.*
 import com.wdkl.ncs.android.lib.utils.showMessage
-import com.wdkl.ncs.android.lib.vo.MessageEvent
 import com.wdkl.ncs.android.middleware.common.Constant
 import com.wdkl.ncs.android.middleware.common.Constant.*
+import com.wdkl.ncs.android.middleware.common.MessageEvent
 import com.wdkl.ncs.android.middleware.logic.contract.home.ChannelImContract
 import com.wdkl.ncs.android.middleware.logic.presenter.home.ChannelImPresenter
 import com.wdkl.ncs.android.middleware.model.dos.ChannelImDO
@@ -27,6 +27,7 @@ import com.wdkl.ncs.android.middleware.tcp.TcpClientHandler
 import com.wdkl.ncs.android.middleware.tcp.channel.ChannelImUtil
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpCallback
 import kotlinx.android.synthetic.main.activity_channel_im_list.*
+import kotlinx.android.synthetic.main.view_title_layout.*
 import okhttp3.MediaType
 import okhttp3.MultipartBody
 import okhttp3.RequestBody
@@ -64,6 +65,7 @@ class ChannelImActivity : BaseActivity<ChannelImPresenter, ActivityChannelImList
 
     @SuppressLint("InvalidWakeLockTag")
     override fun init() {
+        view_title_layout_tx.text = "群留言"
         // 获取WakeLock对象
         val powerManager= getSystemService(Context.POWER_SERVICE) as PowerManager
         wakeLock = powerManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP or PowerManager.SCREEN_DIM_WAKE_LOCK, "voice_msg_on")
@@ -102,6 +104,9 @@ class ChannelImActivity : BaseActivity<ChannelImPresenter, ActivityChannelImList
             presenter.getChannelIm(page, page_size, MEMBER_ID!!, channelId)
         }
 
+        view_title_layout_img.setOnClickListener() {
+            finish()
+        }
 
         //长按群留言
         btn_channel_msg.setOnTouchListener { v, event ->
@@ -294,7 +299,7 @@ class ChannelImActivity : BaseActivity<ChannelImPresenter, ActivityChannelImList
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
-        if (messageEvent.tag == 3 || messageEvent.tag == Constant.EVENT_CHANNEL_IM_UPDATE) {
+        if (messageEvent.type == 3 || messageEvent.type == Constant.EVENT_CHANNEL_IM_UPDATE) {
             //刷新列表
             page = 1
             presenter.getChannelIm(page, page_size, MEMBER_ID!!, channelId)

+ 1 - 1
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/ContactUpdateActivity.kt

@@ -9,8 +9,8 @@ import com.wdkl.ncs.android.component.home.adapter.ContactUpdateAdapter
 import com.wdkl.ncs.android.component.home.databinding.ActivityContactUpdateBinding
 import com.wdkl.ncs.android.component.home.launch.HomeLaunch
 import com.wdkl.ncs.android.lib.utils.showMessage
-import com.wdkl.ncs.android.lib.vo.MessageEvent
 import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
 import com.wdkl.ncs.android.middleware.logic.contract.home.WatchHomeActivityContract
 import com.wdkl.ncs.android.middleware.logic.presenter.home.WatchHomeActivityPresenter
 import com.wdkl.ncs.android.middleware.model.ServerInfo

+ 14 - 8
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/NewEventListActivity.kt

@@ -16,12 +16,10 @@ import com.wdkl.ncs.android.component.home.service.WdKeepAliveService
 import com.wdkl.ncs.android.component.home.util.ImPlayDialogHelper
 import com.wdkl.ncs.android.component.home.util.MediaPlayHelper
 import com.wdkl.ncs.android.component.home.util.RingPlayHelper
-import com.wdkl.ncs.android.component.home.util.SpeechUtil
-import com.wdkl.ncs.android.lib.base.LIFE_CYCLE_RESUME
 import com.wdkl.ncs.android.lib.utils.AppTool
 import com.wdkl.ncs.android.lib.utils.showMessage
-import com.wdkl.ncs.android.lib.vo.MessageEvent
 import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
 import com.wdkl.ncs.android.middleware.logic.contract.home.NewEventListContract
 import com.wdkl.ncs.android.middleware.logic.presenter.home.NewEventListPresenter
 import com.wdkl.ncs.android.middleware.model.dos.ClerkDO
@@ -30,6 +28,7 @@ import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
 import kotlinx.android.synthetic.main.activity_event_list.*
+import kotlinx.android.synthetic.main.view_title_layout.*
 import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
 
@@ -63,6 +62,7 @@ class NewEventListActivity : BaseActivity<NewEventListPresenter, ActivityEventLi
     }
 
     override fun init() {
+        view_title_layout_tx.text = "详情"
         //震动
         mVibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
 
@@ -85,7 +85,13 @@ class NewEventListActivity : BaseActivity<NewEventListPresenter, ActivityEventLi
     }
 
     override fun bindEvent() {
-
+        view_title_layout_img.setOnClickListener() {
+            if (!Constant.oldEvent) {
+                showMessage(R.string.str_event_handle_warning)
+            } else {
+                finish()
+            }
+        }
     }
 
     override fun onResume() {
@@ -166,20 +172,20 @@ class NewEventListActivity : BaseActivity<NewEventListPresenter, ActivityEventLi
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
-        if (messageEvent.tag == 0) {
+        if (messageEvent.type == 0) {
             if (mVibrator!=null) mVibrator.cancel()
             val resTcpModel = messageEvent.getMessage() as TcpModel
             if (resTcpModel.type === TcpType.CALLBACK && resTcpModel.action === TcpAction.VoiceAction.FAILED) {
                 showMessage(R.string.call_failed)
                 dismissDialog()
             }
-        } else if (messageEvent.tag == 2) {
+        } else if (messageEvent.type == 2) {
             if (mVibrator!=null) mVibrator.cancel()
             val resTcpModel = messageEvent.getMessage() as TcpModel
             if (resTcpModel.action == TcpAction.VoiceAction.CALLING) {
                 showMessage(R.string.call_busy)
             }
-        } else if (messageEvent.tag == 4) {
+        } else if (messageEvent.type == 4) {
             val resTcpModel = messageEvent.getMessage() as TcpModel
             if (resTcpModel.type == TcpType.DATA && resTcpModel.action == TcpAction.DataAction.INTERACTION) {
                 if (resTcpModel.data != null) {
@@ -232,7 +238,7 @@ class NewEventListActivity : BaseActivity<NewEventListPresenter, ActivityEventLi
                     }
                 }
             }
-        } else if (messageEvent.tag == Constant.EVENT_UPDATE_EVENT) { //新事件到来
+        } else if (messageEvent.type == Constant.EVENT_UPDATE_EVENT) { //新事件到来
             renderData(Constant.eventList as ArrayList<InteractionVO>)
         }
     }

+ 10 - 4
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/TakeoverActivity.kt

@@ -3,7 +3,6 @@ package com.wdkl.ncs.android.component.home.activity
 import android.util.Log
 import android.view.View
 import androidx.appcompat.widget.SearchView
-import com.alibaba.android.vlayout.DelegateAdapter
 import com.alibaba.android.vlayout.VirtualLayoutManager
 import com.enation.javashop.net.engine.model.NetState
 import com.google.gson.JsonArray
@@ -19,9 +18,11 @@ import com.wdkl.ncs.android.middleware.logic.contract.home.TakeoverContract
 import com.wdkl.ncs.android.middleware.logic.presenter.home.TakeoverPresenter
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
-import com.wdkl.ncs.android.lib.vo.MessageEvent
 import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
 import kotlinx.android.synthetic.main.activity_takeover.*
+import kotlinx.android.synthetic.main.activity_takeover.search_view
+import kotlinx.android.synthetic.main.view_title_layout.*
 import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
 import java.util.*
@@ -65,6 +66,7 @@ class TakeoverActivity: BaseActivity<TakeoverPresenter, ActivityTakeoverBinding>
     }
 
     override fun init(){
+        view_title_layout_tx.text = "同事列表"
         /**初始化LayoutMannager*/
         virtualLayoutManager = VirtualLayoutManager(this.activity)
 
@@ -143,6 +145,10 @@ class TakeoverActivity: BaseActivity<TakeoverPresenter, ActivityTakeoverBinding>
             presenter.loadList(partId)
         }
 
+        view_title_layout_img.setOnClickListener() {
+            finish()
+        }
+
         search_view.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
             override fun onQueryTextSubmit(query: String): Boolean {
                 return false
@@ -157,14 +163,14 @@ class TakeoverActivity: BaseActivity<TakeoverPresenter, ActivityTakeoverBinding>
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
-        if (messageEvent.tag == 2) {
+        if (messageEvent.type == 2) {
             val resTcpModel = messageEvent.getMessage() as TcpModel
             if (resTcpModel.action  == TcpAction.VoiceAction.FAILED){
                 showMessage(R.string.call_failed)
             } else if (resTcpModel.action == TcpAction.VoiceAction.CALLING){
                 showMessage(R.string.call_busy)
             }
-        } else if (messageEvent.tag == 4) {
+        } else if (messageEvent.type == 4) {
             presenter.loadList(partId)
         }
     }

+ 4 - 5
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/VoiceMsgActivity.kt

@@ -13,9 +13,9 @@ import com.wdkl.ncs.android.component.home.databinding.ActivityVoiceMsgBinding
 import com.wdkl.ncs.android.component.home.launch.HomeLaunch
 import com.wdkl.ncs.android.component.home.util.*
 import com.wdkl.ncs.android.lib.utils.showMessage
-import com.wdkl.ncs.android.lib.vo.MessageEvent
 import com.wdkl.ncs.android.lib.vo.filter
 import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
 
 import com.wdkl.ncs.android.middleware.logic.contract.home.VoiceMsgContract
 import com.wdkl.ncs.android.middleware.logic.presenter.home.VoiceMsgPresenter
@@ -29,7 +29,6 @@ import kotlinx.android.synthetic.main.activity_voice_msg.*
 import okhttp3.MediaType
 import okhttp3.MultipartBody
 import okhttp3.RequestBody
-import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
 import java.io.File
@@ -224,7 +223,7 @@ class VoiceMsgActivity:BaseActivity<VoiceMsgPresenter,ActivityVoiceMsgBinding>()
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent){
-        if (messageEvent.tag == 1) {
+        if (messageEvent.type == 1) {
             val tcpModel = messageEvent.getMessage() as TcpModel
             if (tcpModel.type == TcpType.VOICE) {
                 if (tcpModel.action == TcpAction.VoiceAction.CALL) {
@@ -232,7 +231,7 @@ class VoiceMsgActivity:BaseActivity<VoiceMsgPresenter,ActivityVoiceMsgBinding>()
                     cancelRecord()
                 }
             }
-        } else if (messageEvent.tag == 3) {
+        } else if (messageEvent.type == 3) {
             //收到新事件
             val tcpModel = messageEvent.getMessage() as TcpModel
             if (tcpModel.type == TcpType.EVENT) {
@@ -246,7 +245,7 @@ class VoiceMsgActivity:BaseActivity<VoiceMsgPresenter,ActivityVoiceMsgBinding>()
                     cancelRecord()
                 }*/
             }
-        } else if (messageEvent.tag == 999) {
+        } else if (messageEvent.type == 999) {
             //紧急呼叫
             cancelRecord()
         }

+ 97 - 4
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/WatchCallRecordsActivity.kt

@@ -13,7 +13,7 @@ import com.enation.javashop.net.engine.model.NetState
 import com.enation.javashop.utils.base.widget.LoadingDialog
 import com.scwang.smartrefresh.layout.footer.ClassicsFooter
 import com.wdkl.ncs.android.component.home.R
-import com.wdkl.ncs.android.component.home.adapter.WatchCallRecordsItemAdapter
+import com.wdkl.ncs.android.component.home.adapter.CallRecordsItemAdapter
 import com.wdkl.ncs.android.component.home.databinding.WatchActivityCallRecordsBinding
 import com.wdkl.ncs.android.component.home.launch.HomeLaunch
 import com.wdkl.ncs.android.component.home.settingconfig.SettingConfig
@@ -30,12 +30,13 @@ import com.wdkl.ncs.android.middleware.tcp.channel.VoiceUtil
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
-import com.wdkl.ncs.android.lib.vo.MessageEvent
 import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
 import com.wdkl.ncs.android.middleware.tcp.TcpClient
 import com.wdkl.ncs.android.middleware.tcp.channel.PhoneUtil
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpCallback
 import com.wdkl.ncs.android.middleware.tcp.enums.CommunicationEnum
+import kotlinx.android.synthetic.main.view_title_layout.*
 import kotlinx.android.synthetic.main.watch_activity_call_records.*
 import kotlinx.android.synthetic.main.watch_activity_call_records.refresh
 import org.greenrobot.eventbus.EventBus
@@ -62,7 +63,9 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
      */
     private lateinit var delegateAdapter: DelegateAdapter
 
-    private val watchCallRecordsItemAdapter = WatchCallRecordsItemAdapter(ArrayList())
+//    private val watchCallRecordsItemAdapter = WatchCallRecordsItemAdapter(ArrayList())
+    private val watchCallRecordsItemAdapter = CallRecordsItemAdapter(ArrayList())
+
 
     private lateinit var loadingDialog: LoadingDialog
 
@@ -92,6 +95,7 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
     }
 
     override fun init() {
+        view_title_layout_tx.text = "通话列表"
         /**初始化LayoutMannager*/
         virtualLayoutManager = VirtualLayoutManager(this.activity)
 
@@ -112,6 +116,7 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
 
         when(action){
             all->{
+                setui(1)
                 call_relyout.visibility = View.GONE
                 presenter.loadPage(all, 1, 30, Constant.DEVICE_ID, 0, 0)
 
@@ -125,6 +130,7 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
                 }
             }
             unread->{
+                setui(3)
                 call_relyout.visibility = View.GONE
                 presenter.loadPage(all, 1, 30, Constant.DEVICE_ID, 0, 1)
 
@@ -232,6 +238,93 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
             startActivity(intent)
         }
+        view_title_layout_img.setOnClickListener() {
+            finish()
+
+        }
+
+        watch_contacts_list_all.setOnClickListener() {
+            setui(1)
+            call_relyout.visibility = View.GONE
+            page = 1
+            presenter.loadPage(all, 1, 30, Constant.DEVICE_ID, 0, 0)
+            refresh.setOnLoadMoreListener {
+                page += 1
+                presenter.loadPage(all, page, 30,Constant.DEVICE_ID, 0, 0)
+            }
+            refresh.setOnRefreshListener {
+                page = 1
+                presenter.loadPage(all, 1, 30, Constant.DEVICE_ID, 0, 0)
+            }
+        }
+        watch_contacts_list_call.setOnClickListener() {
+            setui(2)
+            call_relyout.visibility = View.GONE
+            page = 1
+            presenter.loadPage(all, 1, 30, Constant.DEVICE_ID, 0, 2)
+            refresh.setOnLoadMoreListener {
+                page += 1
+                presenter.loadPage(all, page, 30,Constant.DEVICE_ID, 0, 2)
+            }
+            refresh.setOnRefreshListener {
+                page = 1
+                presenter.loadPage(all, 1, 30, Constant.DEVICE_ID, 0, 2)
+            }
+        }
+        watch_contacts_list_no_call.setOnClickListener() {
+            setui(3)
+            call_relyout.visibility = View.GONE
+            page = 1
+            presenter.loadPage(all, 1, 30, Constant.DEVICE_ID, 0, 1)
+            refresh.setOnLoadMoreListener {
+                page += 1
+                presenter.loadPage(all, page, 30, Constant.DEVICE_ID, 0, 1)
+            }
+            refresh.setOnRefreshListener {
+                page = 1
+                presenter.loadPage(all, 1, 30, Constant.DEVICE_ID, 0, 1)
+            }
+        }
+        watch_contacts_list_other.setOnClickListener() {
+            setui(4)
+            call_relyout.visibility = View.GONE
+            page = 1
+            presenter.loadPage(all, 1, 30, Constant.DEVICE_ID, 0, 3)
+
+            refresh.setOnLoadMoreListener {
+                page += 1
+                presenter.loadPage(all, page, 30, Constant.DEVICE_ID, 0, 3)
+            }
+            refresh.setOnRefreshListener {
+                page = 1
+                presenter.loadPage(all, 1, 30, Constant.DEVICE_ID, 0, 3)
+            }
+        }
+
+    }
+    private fun setui(type: Int){
+        watch_contacts_list_all.setBackgroundResource(0)
+        watch_contacts_list_all.setTextColor(getResources().getColor(R.color.nursing_default_color))
+        watch_contacts_list_call.setBackgroundResource(0)
+        watch_contacts_list_call.setTextColor(getResources().getColor(R.color.nursing_default_color))
+        watch_contacts_list_no_call.setBackgroundResource(0)
+        watch_contacts_list_no_call.setTextColor(getResources().getColor(R.color.nursing_default_color))
+        watch_contacts_list_other.setBackgroundResource(0)
+        watch_contacts_list_other.setTextColor(getResources().getColor(R.color.nursing_default_color))
+        if (type== 1){
+            watch_contacts_list_all.setBackgroundResource(R.drawable.shape_time_bu_bg)
+            watch_contacts_list_all.setTextColor(getResources().getColor(R.color.txt_number2))
+        }else if (type== 2){
+            watch_contacts_list_call.setBackgroundResource(R.drawable.shape_time_bu_bg)
+            watch_contacts_list_call.setTextColor(getResources().getColor(R.color.txt_number2))
+        }else if (type== 3){
+            watch_contacts_list_no_call.setBackgroundResource(R.drawable.shape_time_bu_bg)
+            watch_contacts_list_no_call.setTextColor(getResources().getColor(R.color.txt_number2))
+        }else if (type== 4){
+            watch_contacts_list_other.setBackgroundResource(R.drawable.shape_time_bu_bg)
+            watch_contacts_list_other.setTextColor(getResources().getColor(R.color.txt_number2))
+        }
+
     }
 
     override fun destory() {
@@ -309,7 +402,7 @@ class WatchCallRecordsActivity : BaseActivity<WatchCallRecordsFragmentPresenter,
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
-        if (messageEvent.tag == 1 || messageEvent.tag == 2) {
+        if (messageEvent.type == 1 || messageEvent.type == 2) {
             val tcpModel = messageEvent.getMessage() as TcpModel
             Log.i(TAG, tcpModel.toJson())
             if (tcpModel.type == TcpType.VOICE) {

+ 11 - 6
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/WatchContactsActivity.kt

@@ -13,8 +13,8 @@ import com.wdkl.ncs.android.component.home.adapter.WatchContactsItemAdapter
 import com.wdkl.ncs.android.component.home.databinding.WatchContactsLayBinding
 import com.wdkl.ncs.android.component.home.launch.HomeLaunch
 import com.wdkl.ncs.android.lib.utils.showMessage
-import com.wdkl.ncs.android.lib.vo.MessageEvent
 import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
 
 import com.wdkl.ncs.android.middleware.logic.contract.home.WatchActivityContract
 import com.wdkl.ncs.android.middleware.logic.presenter.home.WatchActivityPresenter
@@ -22,13 +22,15 @@ import com.wdkl.ncs.android.middleware.model.vo.DeviceVO
 import com.wdkl.ncs.android.middleware.model.vo.WatchContactsVO
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
+import kotlinx.android.synthetic.main.view_title_layout.*
 import kotlinx.android.synthetic.main.watch_contacts_lay.*
 import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
-import java.text.Collator
 import java.util.*
 import kotlin.collections.ArrayList
-
+/*
+* 顾客列表
+* */
 @Router(path = "/watch/contacts")
 class WatchContactsActivity : BaseActivity<WatchActivityPresenter, WatchContactsLayBinding>(), WatchActivityContract.View {
     var TAG = WatchContactsActivity::class.java.getSimpleName()
@@ -76,7 +78,7 @@ class WatchContactsActivity : BaseActivity<WatchActivityPresenter, WatchContacts
     }
 
     override fun init() {
-
+        view_title_layout_tx.text = "顾客列表"
         /**初始化LayoutMannager*/
         virtualLayoutManager = VirtualLayoutManager(this.activity)
 
@@ -95,6 +97,9 @@ class WatchContactsActivity : BaseActivity<WatchActivityPresenter, WatchContacts
     }
 
     override fun bindEvent() {
+        view_title_layout_img.setOnClickListener() {
+            finish()
+        }
         refresh.setOnLoadMoreListener {
             page += 1
             presenter.loadData(page,  Constant.DEVICE_ID)
@@ -151,14 +156,14 @@ class WatchContactsActivity : BaseActivity<WatchActivityPresenter, WatchContacts
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
-        if (messageEvent.tag == 2) {
+        if (messageEvent.type == 2) {
             val resTcpModel = messageEvent.getMessage() as TcpModel
             if (resTcpModel.action  == TcpAction.VoiceAction.FAILED){
                 showMessage(R.string.call_failed)
             } else if (resTcpModel.action == TcpAction.VoiceAction.CALLING){
                 showMessage(R.string.call_busy)
             }
-        } else if (messageEvent.tag == 4) {
+        } else if (messageEvent.type == 4) {
             presenter.loadData(page,  Constant.DEVICE_ID)
         }
     }

+ 111 - 79
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/WatchHome2Activity.kt

@@ -14,15 +14,19 @@ import android.telephony.TelephonyManager
 import android.text.TextUtils
 import android.util.Log
 import android.view.View
+import com.enation.javashop.android.jrouter.external.annotation.Router
 import com.enation.javashop.net.engine.model.NetState
 import com.enation.javashop.net.engine.plugin.permission.RxPermissions
 import com.enation.javashop.utils.base.tool.CommonTool
 import com.enation.javashop.utils.base.widget.LoadingDialog
 import com.google.common.base.Strings
+import com.wdkl.ncs.android.component.home.BuildConfig
 import com.wdkl.ncs.android.component.home.R
 import com.wdkl.ncs.android.component.home.broadcast.BatteryBroadcastReceiver
 import com.wdkl.ncs.android.component.home.broadcast.MyMediaButtonReceiver
 import com.wdkl.ncs.android.component.home.databinding.WatchActivityHome2Binding
+import com.wdkl.ncs.android.component.home.dialog.ServicesDialogHelper
+import com.wdkl.ncs.android.component.home.dialog.SystemDialogHelper
 import com.wdkl.ncs.android.component.home.launch.HomeLaunch
 import com.wdkl.ncs.android.component.home.service.WdKeepAliveService
 import com.wdkl.ncs.android.component.home.service.WdklSipService
@@ -30,8 +34,8 @@ import com.wdkl.ncs.android.component.home.settingconfig.SettingConfig
 import com.wdkl.ncs.android.component.home.util.*
 import com.wdkl.ncs.android.lib.base.BaseApplication
 import com.wdkl.ncs.android.lib.utils.*
-import com.wdkl.ncs.android.lib.vo.MessageEvent
 import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
 import com.wdkl.ncs.android.middleware.logic.contract.home.WatchHomeActivityContract
 import com.wdkl.ncs.android.middleware.logic.presenter.home.WatchHomeActivityPresenter
 import com.wdkl.ncs.android.middleware.model.ServerInfo
@@ -60,9 +64,10 @@ import org.linphone.core.AccountCreator
 import org.linphone.core.TransportType
 import java.util.*
 import kotlin.collections.ArrayList
+//import com.wdkl.ncs.android.lib.base.BaseActivity
 
 
-//@Router(path = "/watch/home")
+@Router(path = "/home/watch")
 class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivityHome2Binding>(), WatchHomeActivityContract.View, View.OnClickListener {
 
     var TAG = WatchHome2Activity::class.java.getSimpleName()
@@ -97,7 +102,6 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         }
         loadingDialog = CommonTool.createLoadingDialog(this, R.layout.custom_loading, R.id.loadding_image)
         netOffLoadingDialog = CommonTool.createLoadingDialog(this, R.layout.netoff_loading, R.id.netoff_loading_image)
-
         super.onCreate(savedInstanceState)
     }
 
@@ -120,8 +124,6 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         //注册广播
         regReceiver()
 
-        tv_register_version.text = "v" + CommonUtils.getAppVersionName(activity)
-
         initCountDownTimer()
 
         if (SettingConfig.getSipEnabled(BaseApplication.appContext)) {
@@ -139,21 +141,20 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         teleManager = (applicationContext.getSystemService(Context.TELEPHONY_SERVICE)) as TelephonyManager
         netType = NetHelper.getInstance().getNetworkState(applicationContext)
         Log.i(TAG, "网络类型:" + netType)
-        /*
--50 to -79 dBm, then it's generally considered great signal (4 to 5 bars).
--80 to -89 dBm, then it's generally considered good signal (3 to 4 bars).
--90 to -99 dBm, then it's generally considered average signal (2 to 3 bars).
--100 to -109 dBm, then it's generally considered poor signal (1 to 2 bars).
--110 to -120 dBm, then it's generally considered very poor signal (0 to 1 bar)
-         */
         //if (netType == NetHelper.NETWORK_4G) {
             if (teleManager != null) {
                 teleManager.listen(object : PhoneStateListener() {
                     override fun onSignalStrengthsChanged(signalStrength: SignalStrength) {
                         if (NetHelper.getInstance().getNetworkState(applicationContext) == NetHelper.NETWORK_NONE) {
-                            tv_signal_strength.setText(R.string.network_disconnect)
-                        } else {
-                            tv_signal_strength.setText(R.string.network_connect)
+                            watch_activity_home_btoom_network.setText(R.string.network_disconnect)
+                        } else if (NetHelper.getInstance().getNetworkState(applicationContext) == NetHelper.NETWORK_2G) {
+                            watch_activity_home_btoom_network.setText("WBDL-2G")
+                        }else if (NetHelper.getInstance().getNetworkState(applicationContext) == NetHelper.NETWORK_3G) {
+                            watch_activity_home_btoom_network.setText("WBDL-3G")
+                        }else if (NetHelper.getInstance().getNetworkState(applicationContext) == NetHelper.NETWORK_4G) {
+                            watch_activity_home_btoom_network.setText("WBDL-4G")
+                        }else{
+                            watch_activity_home_btoom_network.setText(R.string.network_connect)
                         }
 
                         super.onSignalStrengthsChanged(signalStrength)
@@ -175,7 +176,7 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
             } else {
                 Constant.imei = Util.getIMEI(this)
             }
-
+            Constant.DEVICE_REGISTER_ID =  Constant.imei
             runOnUiThread {
                 if (!TextUtils.isEmpty(Constant.imei)) {
                     permissionGranted()
@@ -193,8 +194,14 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
 
         Log.i(TAG, "IMEI " + Constant.imei)
         Log.i(TAG, "mac " + Constant.LOCAL_MAC)
-        tv_feedback_device_info.text = Constant.imei
-
+        activation_zcm.text = Constant.imei
+        activation_v.text =  BuildConfig.VERSION_NAME + "_" + BuildConfig.VERSION_CODE + "_" + Build.MODEL
+        activation_ip.text =NetHelper.getInstance().getLocalIP()
+        val netInfo = NetHelper.getNetInfo(activity)
+        if (netInfo != null) {
+            activation_wg.text = netInfo.gateway
+            activation_ym.text = netInfo.netMask
+        }
         //申请悬浮窗权限
         if (Build.VERSION.SDK_INT >= 23) {
             if (!Settings.canDrawOverlays(this)) {
@@ -221,7 +228,7 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
             Constant.phoneType = CommunicationEnum.MOBILE_PHONE.value()
         }
 
-        tv_server_ip.text = CommonUtils.getUrl(BaseApplication.appContext)
+        activation_fuq.text = CommonUtils.getUrl(BaseApplication.appContext)
 
         /*if (DaemonEnv.app == null && !WdKeepAliveService.instanceCreated) {
             DaemonEnv.init(this)
@@ -276,7 +283,7 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         registerReceiver(netWorkChangeReceiver, intentFilter)
 
         //电池
-        batteryBroadcastReceiver = BatteryBroadcastReceiver(electric_quantity_tv)
+        batteryBroadcastReceiver = BatteryBroadcastReceiver(watch_activity_home_btoom_Power)
         val intentFilter2 = IntentFilter()
         intentFilter2.addAction(Intent.ACTION_BATTERY_CHANGED)
         registerReceiver(batteryBroadcastReceiver, intentFilter2)
@@ -307,7 +314,7 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
             Constant.tcpServer = serverIpInfo.tcpPublicIp
             Constant.TCP_PORT = serverIpInfo.tcpPort
             Constant.TCP_HEART_BEAT = serverIpInfo.tcpIdleSeconds
-            tv_server_ip.text = serverIpInfo.tcpPublicIp
+            activation_fuq.text = serverIpInfo.tcpPublicIp
 
             JanusConstant.JANUS_URL = "ws://" + serverIpInfo.rtcPublicIp + ":" + serverIpInfo.rtcPort
             JanusConstant.STUN_SERVER = arrayOf<String>(serverIpInfo.stunServer)
@@ -517,11 +524,11 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
 
         if (Constant.DEVICE_ID <= 0 || TextUtils.isEmpty(Constant.SIP_ID)) {
             showMessage(R.string.init_data_error)
-            tv_feedback_device_info.setText(R.string.init_data_error)
+            tv_register_status.setText(R.string.init_data_error)
             return
         } else if (TextUtils.isEmpty(Constant.tcpServer)) {
             showMessage(R.string.init_server_data_error)
-            tv_feedback_device_info.setText(R.string.init_server_data_error)
+            tv_register_status.setText(R.string.init_server_data_error)
             return
         }
 
@@ -534,27 +541,25 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         //onTcpConnectSuccess()
 
         if (Strings.isNullOrEmpty(Constant.userName)) {
-            watch_name_tv.setText(R.string.str_reload)
-            watch_name_tv.setTextColor(Color.BLACK)
-            watch_name_tv.textSize = 13f
-            watch_name_tv.setBackgroundResource(R.drawable.javashop_btn_balck_line_bg)
-            watch_name_tv.setOnClickListener {
+            watch_activity_home_name.setText(R.string.str_reload)
+//            watch_activity_home_name.setBackgroundResource(R.drawable.javashop_btn_balck_line_bg)
+            watch_activity_home_name.setOnClickListener {
                 loadingDialog.show()
                 presenter.getDeviceVO(Constant.imei)
                 return@setOnClickListener
             }
 
-            watch_role_name_tv.setText(R.string.device_user_empty)
-            watch_role_name_tv.textSize = 12f
+            watch_activity_home_job.setText(R.string.device_user_empty)
         } else {
-            watch_name_tv.text = Constant.userName
+            watch_activity_home_name.text = Constant.userName
             if (Constant.userName != null) {
-                watch_role_name_tv.text = Constant.roleName
-                watch_user_phone_tv.text = data.phoneNumber
+                watch_activity_home_job.text = Constant.roleName
+                //电话号码
+//                watch_user_phone_tv.text = data.phoneNumber
             }
 
             if (Locale.CHINESE.getLanguage().equals(language)) {
-                watch_role_name_tv.visibility = View.VISIBLE
+                watch_activity_home_job.visibility = View.VISIBLE
             }
         }
         Constant.phoneNumber = data.phoneNumber
@@ -563,8 +568,8 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         if (data.memberId != null) {
             presenter.getDeviceVoiceChannel(data.memberId)
         }
-
-        ll_clerk_list.setOnClickListener {
+        //同事
+        watch_activity_home_colleagues_ll.setOnClickListener {
             var intent = Intent(this, TakeoverActivity().javaClass)
             startActivity(intent)
         }
@@ -691,10 +696,8 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
 
         runOnUiThread(Runnable {
             Log.i(TAG, "连接成功设置UI")
-            tv_net_reconnect_text.visibility = View.GONE
-            tv_signal_strength.setText(R.string.tcp_connect_success)
+            watch_activity_home_btoom_tcp.setText(R.string.tcp_connect_success)
             netOffLoadingDialog.dismiss()
-            sip_state_tv.setBackgroundColor(Color.parseColor("#00FFFF"))
         })
     }
     fun onTcpConnect() {
@@ -710,10 +713,8 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         Log.w(TAG, "网络断开")
 
         runOnUiThread(Runnable {
-            tv_signal_strength.setText(R.string.tcp_connect_failed)
-            tv_net_reconnect_text.visibility = View.VISIBLE
+            watch_activity_home_btoom_tcp.setText(R.string.tcp_connect_failed)
             netOffLoadingDialog.show()
-            sip_state_tv.setBackgroundColor(Color.parseColor("#FF0000"))
         })
 
         //等30秒
@@ -731,12 +732,17 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
     }
 
     override fun bindEvent() {
-        customer_list_linlyout.setOnClickListener(this)
-        call_records_linlyout.setOnClickListener(this)
-        user_name_linlyout.setOnClickListener(this)
-        state_linlyout.setOnClickListener(this)
-        other_linyout.setOnClickListener(this)
-        channel_im_layout.setOnClickListener(this)
+        //同事列表
+        watch_activity_home_people_list_ll.setOnClickListener(this)
+        //房间列表
+        watch_activity_home_room_ll.setOnClickListener(this)
+        //通话列表
+        watch_activity_home_call_list_ll.setOnClickListener(this)
+        //点击头像
+        watch_activity_home_tx_img.setOnClickListener(this)
+//        state_linlyout.setOnClickListener(this)
+        watch_activity_home_setting.setOnClickListener(this)
+        watch_activity_home_msg_ll.setOnClickListener(this)
         tv_register_ok.setOnClickListener {
             Log.d(TAG, "注册完成")
             initTcp()
@@ -750,14 +756,22 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         }
 
         tv_config_server.setOnClickListener {
-            ServerConfigDialogHelper.showPasswordDialog(activity)
+            ServicesDialogHelper.showDialog(activity, object : ServicesDialogHelper.ClickListener {
+                override fun onClick(bedVO: String?) {
+                    setfuq()
+                }
+            })
         }
 
-        tv_language_settings.setOnClickListener {
-            LanguageSetDialogHelper.showDialog(activity)
+        activation_system_button.setOnClickListener {
+            SystemDialogHelper.showDialog(activity,"系统设置")
+//            LanguageSetDialogHelper.showDialog(activity)
         }
     }
-
+    fun setfuq(){
+        activation_fuq.text=CommonUtils.getUrl(this)
+        showMessage("请重启设备,重新激活设备")
+    }
     override fun enableHeadsetVoiceMsg(): Boolean {
         return false
     }
@@ -825,7 +839,14 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
         updatePower()
 
         Constant.allowVoiceMsg = true
-        tv_im_count.text = "" + WdKeepAliveService.channelImList.size
+        if(WdKeepAliveService.channelImList.size>0){
+            watch_activity_home_msg_tx.visibility = View.VISIBLE
+            watch_activity_home_msg_tx.text = "" + WdKeepAliveService.channelImList.size
+        }else{
+            watch_activity_home_msg_tx.visibility = View.GONE
+        }
+
+
 
         EventBus.getDefault().post(MessageEvent("im_done", Constant.EVENT_IM_PLAY_DONE))
 
@@ -870,16 +891,19 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
      */
     override fun onClick(p0: View) {
         when (p0.id) {
-            R.id.customer_list_linlyout -> {
+            R.id.watch_activity_home_people_list_ll -> {
                 push("/watch/contacts")
             }
-            R.id.call_records_linlyout -> {
+            R.id.watch_activity_home_room_ll -> {
+                push("/watch/contacts")
+            }
+            R.id.watch_activity_home_call_list_ll -> {
                 var intent = Intent(this, WatchCallRecordsActivity::class.java)
                 intent.putExtra("action", "ALL")
                 intent.putExtra("customer_id", "")
                 startActivity(intent)
             }
-            R.id.user_name_linlyout -> {
+            R.id.watch_activity_home_tx_img -> {
                 if (Constant.userName == null) {
                     var intent = Intent(this, TakeoverActivity().javaClass)
                     startActivity(intent)
@@ -890,7 +914,7 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
                     startActivity(intent)
                 }
             }
-            R.id.channel_im_layout -> {
+            R.id.watch_activity_home_msg_ll -> {
                 //群留言
                 if (Constant.channelId == -1) {
                     showMessage(R.string.str_im_no_channel)
@@ -901,13 +925,13 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
                     startActivity(intent)
                 }
             }
-            R.id.state_linlyout -> {
+//            R.id.state_linlyout -> {
 //                Log.d(TAG,"点击了状态,测试崩溃")
 //                netOffLoadingDialog.show()
 //                Thread.sleep(10000)
 //                netOffLoadingDialog.dismiss()
-            }
-            R.id.other_linyout -> {
+//            }
+            R.id.watch_activity_home_setting -> {
                 if (System.currentTimeMillis() - clickTime > 2000) {
                     showMessage(R.string.click_twice_start_settings)
                 } else {
@@ -936,18 +960,19 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
     private fun updatePower() {
         val power = getPower()
         if (10 < power && power < 20) {
-            electric_quantity_tv.text = "" + power
-            battery_warning_tv.setTextColor(Color.parseColor("#FF3030"))
-            battery_warning_tv.visibility = View.VISIBLE
-            battery_warning_tv.setText(R.string.low_power)
+            watch_activity_home_btoom_Power.text = "" + power+"%"
+            watch_activity_home_btoom_Power.setTextColor(Color.parseColor("#FF3030"))
+//            battery_warning_tv.visibility = View.VISIBLE
+//            battery_warning_tv.setText(R.string.low_power)
         } else if (10 > power) {
-            electric_quantity_tv.text = "" + power
-            battery_warning_tv.setTextColor(Color.parseColor("#8B2323"))
-            battery_warning_tv.visibility = View.VISIBLE
-            battery_warning_tv.setText(R.string.low_power)
+            watch_activity_home_btoom_Power.text = "" + power+"%"
+            watch_activity_home_btoom_Power.setTextColor(Color.parseColor("#8B2323"))
+//            battery_warning_tv.visibility = View.VISIBLE
+//            battery_warning_tv.setText(R.string.low_power)
         } else {
-            battery_warning_tv.visibility = View.GONE
-            electric_quantity_tv.text = "" + power
+//            battery_warning_tv.visibility = View.GONE
+            watch_activity_home_btoom_Power.setTextColor(Color.parseColor("#ffffff"))
+            watch_activity_home_btoom_Power.text = "" + power+"%"
         }
     }
 
@@ -963,10 +988,10 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
-        if (messageEvent.tag == Constant.EVENT_UNTREATED_QUANTITY) {   //未读
+        if (messageEvent.type == Constant.EVENT_UNTREATED_QUANTITY) {   //未读
             var message = messageEvent.getMessage() as ArrayList<InteractionVO>
-            list_item_img_icon_num.text = "" + message.size
-        } else if (messageEvent.tag == Constant.EVENT_BATTERY_PERCENT) {
+//            list_item_img_icon_num.text = "" + message.size
+        } else if (messageEvent.type == Constant.EVENT_BATTERY_PERCENT) {
             var message = messageEvent.getMessage() as Int
             updatePower()
 
@@ -984,17 +1009,24 @@ class WatchHome2Activity : BaseActivity<WatchHomeActivityPresenter, WatchActivit
                 battery_warning_tv.visibility = View.GONE
                 electric_quantity_tv.text = "" + message
             }*/
-        } else if (messageEvent.tag == Constant.EVENT_RTC_STATE) {
+        } else if (messageEvent.type == Constant.EVENT_RTC_STATE) {
             runOnUiThread(Runnable {
-                sip_state_tv.setBackgroundColor(Color.parseColor("#00FFFF"))
+//                sip_state_tv.setBackgroundColor(Color.parseColor("#00FFFF"))
                 netOffLoadingDialog.dismiss()
                 //tv_signal_strength.text = "网络恢复"
-                tv_net_reconnect_text.visibility = View.GONE
+//                tv_net_reconnect_text.visibility = View.GONE
             })
-        } else if (messageEvent.tag == Constant.EVENT_TCP_STATE) {
+        } else if (messageEvent.type == Constant.EVENT_TCP_STATE) {
             onTcpConnect()
-        }  else if (messageEvent.tag == Constant.EVENT_IM_PLAY_DONE || messageEvent.tag == Constant.EVENT_CLEAR_IM || messageEvent.tag == 3) {
-            tv_im_count.text = "" + WdKeepAliveService.channelImList.size
+        }  else if (messageEvent.type == Constant.EVENT_IM_PLAY_DONE || messageEvent.type == Constant.EVENT_CLEAR_IM || messageEvent.type == 3) {
+           if( WdKeepAliveService.channelImList.size>0){
+               watch_activity_home_msg_tx.visibility=View.VISIBLE
+               watch_activity_home_msg_tx.text = "" + WdKeepAliveService.channelImList.size
+           }else{
+               watch_activity_home_msg_tx.visibility=View.GONE
+           }
+
+
         }
     }
 }

+ 46 - 23
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/activity/WatchUserSettingActivity.java

@@ -9,6 +9,7 @@ import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
 import android.widget.Button;
+import android.widget.LinearLayout;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
 import android.widget.Spinner;
@@ -21,6 +22,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.google.common.base.Strings;
 import com.wdkl.ncs.android.component.home.BuildConfig;
 import com.wdkl.ncs.android.component.home.R;
+import com.wdkl.ncs.android.component.home.dialog.SystemDialogHelper;
 import com.wdkl.ncs.android.component.home.service.WdKeepAliveService;
 import com.wdkl.ncs.android.component.home.settingconfig.SettingConfig;
 import com.wdkl.ncs.android.component.home.util.AppUtils;
@@ -42,9 +44,10 @@ import com.wdkl.ncs.android.middleware.utils.CommonUtils;
 public class WatchUserSettingActivity extends Activity {
     private static final String TAG = WatchUserSettingActivity.class.getSimpleName();
 
-    private TextView tvAppVersion,tvDeviceId,tvDeviceImei,tvDeviceIp,tvServerIp,tvTtsStatus,tvPhoneType;
+    private TextView tvAppVersion,tvDeviceId,tvDeviceImei,tvDeviceIp,tvServerIp,tvTtsStatus,tvPhoneType,tvCallID,
+            tvServerCall,tvAppVersionTime,view_title_layout_tx;
 
-    private Button btnChange,btnAppRestart,btnCheckUpdate,btnSystemSetting;
+    private LinearLayout btnChange,btnAppRestart,btnCheckUpdate,btnSystemSetting,view_title_layout_img;
 
     private RadioGroup callGroup;
     private RadioButton callYes, callNo;
@@ -61,19 +64,24 @@ public class WatchUserSettingActivity extends Activity {
 
         super.onCreate(savedInstanceState);
         setContentView(R.layout.user_setting_layout);
-
-        tvAppVersion = findViewById(R.id.tv_app_version);
-        tvDeviceId = findViewById(R.id.tv_device_id);
-        tvDeviceImei = findViewById(R.id.tv_device_imei);
-        tvDeviceIp = findViewById(R.id.tv_device_ip);
-        tvServerIp = findViewById(R.id.tv_server_ip);
-        tvTtsStatus = findViewById(R.id.tv_tts_status);
-        tvPhoneType = findViewById(R.id.tv_phone_type);
-
-        btnChange = findViewById(R.id.btn_user_change);
-        btnAppRestart = findViewById(R.id.btn_app_restart);
-        btnCheckUpdate = findViewById(R.id.btn_check_update);
-        btnSystemSetting = findViewById(R.id.btn_system_setting);
+        view_title_layout_tx = findViewById(R.id.view_title_layout_tx);
+        view_title_layout_img  = findViewById(R.id.view_title_layout_img);
+        view_title_layout_tx.setText("设置");
+        tvAppVersion = findViewById(R.id.settings_main_14_tx);
+        tvDeviceId = findViewById(R.id.settings_main_6_tx);
+        tvDeviceImei = findViewById(R.id.settings_main_16_tx);
+        tvDeviceIp = findViewById(R.id.settings_main_7_tx);
+        tvServerIp = findViewById(R.id.settings_main_10_tx);
+        tvTtsStatus = findViewById(R.id.settings_main_8_tx);
+        tvPhoneType = findViewById(R.id.settings_main_9_tx);
+        tvCallID = findViewById(R.id.settings_main_11_tx);
+        tvServerCall = findViewById(R.id.settings_main_13_tx);
+        tvAppVersionTime = findViewById(R.id.settings_main_15_tx);
+
+        btnChange = findViewById(R.id.settings_main_top_3_ll);
+        btnAppRestart = findViewById(R.id.settings_main_5_ll);
+        btnCheckUpdate = findViewById(R.id.settings_main_4_ll);
+        btnSystemSetting = findViewById(R.id.settings_main_3_ll);
 
         callGroup = findViewById(R.id.group_call);
         callYes = findViewById(R.id.rb_call_yes);
@@ -87,17 +95,24 @@ public class WatchUserSettingActivity extends Activity {
         transferOn = findViewById(R.id.rb_call_transfer_on);
         transferOff = findViewById(R.id.rb_call_transfer_off);
 
-        TextView partNameView = findViewById(R.id.part_name);
-        partNameView.setText(Constant.part_name);
+        //科室名称
+//        TextView partNameView = findViewById(R.id.part_name);
+//        partNameView.setText(Constant.part_name);
 
-        tvAppVersion.setText(CommonUtils.getAppVersionName(BaseApplication.appContext) + "_" + BuildConfig.BUILD_TIME);
+        tvAppVersion.setText(CommonUtils.getAppVersionName(BaseApplication.appContext) );
         tvDeviceId.setText("" + Constant.DEVICE_ID);
         tvDeviceImei.setText(Constant.imei);
         tvDeviceIp.setText(NetHelper.getInstance().getLocalIP());
         tvServerIp.setText(Constant.tcpServer);
+
+        tvCallID.setText(Constant.SIP_ID);
+         String ServerCall = Constant.SIP_ID + "@" + Constant.sip_ip + ":" + Constant.sip_port;
+        tvServerCall.setText( ServerCall );
+        tvAppVersionTime.setText( BuildConfig.BUILD_TIME) ;
+
         String type = getString(R.string.phone_type, Constant.phoneType, Constant.bedPhoneType, Constant.nursePhoneType);
         tvPhoneType.setText(type);
-        TextView tvVoiceMode = findViewById(R.id.tv_voice_type);
+        TextView tvVoiceMode = findViewById(R.id.settings_main_12_tx);
         tvVoiceMode.setText(Constant.voice_type);
 
         if (SettingConfig.getVoiceCallType(BaseApplication.appContext) == SettingConfig.PHONE_CALL) {
@@ -118,6 +133,13 @@ public class WatchUserSettingActivity extends Activity {
             transferOff.setChecked(true);
         }
 
+        view_title_layout_img.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                finish();
+            }
+        });
+
         int mode = SettingConfig.getLanguageMode(BaseApplication.appContext);
         RadioGroup languageMode = findViewById(R.id.group_language_mode);
         RadioButton languageYes = findViewById(R.id.rb_language_yes);
@@ -158,7 +180,7 @@ public class WatchUserSettingActivity extends Activity {
             }
         });
 
-        findViewById(R.id.tv_tts_title).setOnClickListener(new View.OnClickListener() {
+        findViewById(R.id.settings_main_8_ll).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 //tts test
@@ -262,7 +284,7 @@ public class WatchUserSettingActivity extends Activity {
         });
 
 
-        Button update = findViewById(R.id.btn_update_contact);
+        LinearLayout update = findViewById(R.id.settings_main_1_ll);
         update.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -275,14 +297,15 @@ public class WatchUserSettingActivity extends Activity {
             }
         });
 
-        Button phoneNum = findViewById(R.id.btn_phone_number);
+        LinearLayout phoneNum = findViewById(R.id.settings_main_2_ll);
         phoneNum.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 PasswordDialogHelper.showPasswordDialog(_this, new PasswordDialogHelper.ClickListener() {
                     @Override
                     public void onConfirm() {
-                        PhoneNumberDialogHelper.showDialog(_this);
+                        SystemDialogHelper.showDialog(_this,"本机号码");
+//                        PhoneNumberDialogHelper.showDialog(_this);
                     }
                 });
             }

+ 231 - 0
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/adapter/CallRecordsItemAdapter.kt

@@ -0,0 +1,231 @@
+package com.wdkl.ncs.android.component.home.adapter
+
+import android.content.Context
+import android.graphics.Color
+import android.util.TypedValue
+import android.view.View
+import android.view.ViewGroup
+import com.alibaba.android.vlayout.LayoutHelper
+import com.alibaba.android.vlayout.layout.LinearLayoutHelper
+import com.wdkl.ncs.android.component.home.R
+import com.wdkl.ncs.android.component.home.databinding.AdapterCallRecordsItemBinding
+import com.wdkl.ncs.android.lib.adapter.BaseDelegateAdapter
+import com.wdkl.ncs.android.lib.utils.BaseRecyclerViewHolder
+import com.wdkl.ncs.android.lib.utils.TimeHandle
+import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
+import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
+
+
+/**
+ * 呼叫记录适配器
+ */
+class CallRecordsItemAdapter(var data: ArrayList<InteractionVO>) : BaseDelegateAdapter<BaseRecyclerViewHolder<AdapterCallRecordsItemBinding>, InteractionVO>() {
+    var TAG = CallRecordsItemAdapter::class.java.getSimpleName()
+    private lateinit var onItemClickListener:OnItemClickListener
+     var context: Context? = null
+    var  type  = 0
+    /**
+     * 数据提供者
+     */
+    override fun dataProvider(): Any {
+        return data
+    }
+
+    /**
+     * Item坐标
+     */
+    override fun itemFilter(position: Int): Boolean {
+        return true
+    }
+
+    /**
+     * 获取Item总数
+     */
+    override fun getItemCount(): Int {
+        return data.size
+    }
+
+    //刷新数据
+    fun updateCallRecords(data: ArrayList<InteractionVO>) {
+        this.data = data
+        notifyDataSetChanged()
+    }
+
+    interface OnItemClickListener {
+        fun oncallItemClick(view: View, keyId: Int, actionType : String ,toDeviceId: Int, actionAccept:Int)
+    }
+
+    fun setOnItemClickListener(listener: OnItemClickListener) {
+        this.onItemClickListener = listener
+    }
+    /**
+     * 创建LayoutHelper
+     */
+    override fun onCreateLayoutHelper(): LayoutHelper {
+        return LinearLayoutHelper(0, data.size)
+    }
+
+    /**
+     * 创建ViewHolder
+     */
+    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseRecyclerViewHolder<AdapterCallRecordsItemBinding> {
+        return BaseRecyclerViewHolder.build(parent, R.layout.adapter_call_records_item)
+    }
+
+    /**
+     * 绑定数据
+     */
+    override fun onBindViewHolder(holder: BaseRecyclerViewHolder<AdapterCallRecordsItemBinding>, position: Int) {
+        holder.bind { binding ->
+            val itemData = getItem(position)
+            //未接
+
+            //交互类型(1:语音通话,2:视频通话,3:卫生间紧急呼叫,4:语音留言,5:文本消息,6:按键事件)
+             if (TcpType.VOICE.name == itemData.actionType || TcpType.VIDEO.name == itemData.actionType){
+                 //呼出
+                 if (itemData.fromDeviceId == Constant.DEVICE_ID){
+                     binding.tabImagev.setImageResource(R.mipmap.huchu)
+                     binding.callRecordsItemTitle.text = "呼出-"+itemData.toDeviceName
+                     if (itemData.actionEnd != null && itemData.actionAccept != null) {
+                         binding.callRecordsItemType.text = "已接通"
+                         binding.callRecordsItemType.setTextColor(Color.parseColor("#2EA22A"));
+                         binding.callRecordsItemCall.visibility = View.VISIBLE
+                         binding.callRecordsItemPlay.visibility = View.GONE
+                         binding.callRecordsItemCall.setTextColor(Color.parseColor("#2EA22A"));
+                         binding.callRecordsItemCall.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12f)
+                         binding.callRecordsItemCall.background= null
+                         binding.callRecordsItemCall.text = TimeHandle.getDateTime(itemData.actionEnd * 1000, "HH:mm")
+                     }else{
+                         binding.callRecordsItemType.text = "未接听"
+                         binding.callRecordsItemType.setTextColor(Color.parseColor("#E82222"));
+                         binding.callRecordsItemCall.visibility = View.VISIBLE
+                         binding.callRecordsItemPlay.visibility = View.GONE
+                         binding.callRecordsItemCall.text = ""
+                         binding.callRecordsItemCall.background= null
+                         binding.callRecordsItemCall.setTextColor(Color.parseColor("#FFFFFF"));
+                         binding.callRecordsItemCall.setTextSize(TypedValue.COMPLEX_UNIT_SP, 9f)
+                         //binding.callRecordsItemCall.setBackgroundResource(R.drawable.shape_main_call_r_wj_bg)
+                     }
+                 }else{
+                     //呼入
+                     binding.tabImagev.setImageResource(R.mipmap.huru)
+                     binding.callRecordsItemTitle.text = "呼入-"+itemData.toDeviceName
+                     if (itemData.actionEnd != null && itemData.actionAccept != null) {
+                         binding.callRecordsItemType.text = "已接通"
+                         binding.callRecordsItemType.setTextColor(Color.parseColor("#2EA22A"));
+                         binding.callRecordsItemCall.visibility = View.VISIBLE
+                         binding.callRecordsItemPlay.visibility = View.GONE
+                         binding.callRecordsItemCall.setTextColor(Color.parseColor("#2EA22A"));
+                         binding.callRecordsItemCall.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12f)
+                         binding.callRecordsItemCall.background= null
+                         binding.callRecordsItemCall.text = TimeHandle.getDateTime(itemData.actionEnd * 1000, "HH:mm")
+                     }else{
+                         binding.callRecordsItemType.text = "未接听"
+                         binding.callRecordsItemType.setTextColor(Color.parseColor("#E82222"));
+                         binding.callRecordsItemCall.visibility = View.VISIBLE
+                         binding.callRecordsItemPlay.visibility = View.GONE
+                         binding.callRecordsItemCall.text = ""
+                         binding.callRecordsItemCall.background= null
+                         binding.callRecordsItemCall.setTextColor(Color.parseColor("#FFFFFF"));
+                         binding.callRecordsItemCall.setTextSize(TypedValue.COMPLEX_UNIT_SP, 9f)
+                         //binding.callRecordsItemCall.setBackgroundResource(R.drawable.shape_main_call_r_wj_bg)
+                     }
+                 }
+
+             }else if (TcpType.SOS.name == itemData.actionType){
+                 binding.tabImagev.setImageResource(R.mipmap.sos)
+                 binding.callRecordsItemTitle.text = "SOS呼叫"
+                 if (itemData.actionEnd != null) {
+                     binding.callRecordsItemType.text = "已响应"
+                     binding.callRecordsItemType.setTextColor(Color.parseColor("#2EA22A"));
+                     binding.callRecordsItemCall.visibility = View.GONE
+                     binding.callRecordsItemPlay.visibility = View.GONE
+                 }else{
+                     binding.callRecordsItemType.text = "未响应"
+                     binding.callRecordsItemType.setTextColor(Color.parseColor("#E82222"));
+                     binding.callRecordsItemCall.visibility = View.VISIBLE
+                     binding.callRecordsItemPlay.visibility = View.GONE
+                     binding.callRecordsItemCall.text = ""
+                     binding.callRecordsItemCall.background= null
+                     binding.callRecordsItemCall.setTextColor(Color.parseColor("#FFFFFF"));
+                     binding.callRecordsItemCall.setTextSize(TypedValue.COMPLEX_UNIT_SP, 9f)
+                     //binding.callRecordsItemCall.setBackgroundResource(R.drawable.shape_main_call_r_wj_bg)
+                 }
+             }else if (TcpType.REINFORCE.name == itemData.actionType){
+                 binding.tabImagev.setImageResource(R.mipmap.sos)
+                 binding.callRecordsItemTitle.text = "增援请求"
+                 if (itemData.actionEnd != null) {
+                     binding.callRecordsItemType.text = "已响应"
+                     binding.callRecordsItemType.setTextColor(Color.parseColor("#2EA22A"));
+                     binding.callRecordsItemCall.visibility = View.GONE
+                     binding.callRecordsItemPlay.visibility = View.GONE
+                 }else{
+                     binding.callRecordsItemType.text = "未响应"
+                     binding.callRecordsItemType.setTextColor(Color.parseColor("#E82222"));
+                     binding.callRecordsItemPlay.visibility = View.GONE
+                     binding.callRecordsItemCall.visibility = View.VISIBLE
+                     binding.callRecordsItemCall.text = ""
+                     binding.callRecordsItemCall.background= null
+                     binding.callRecordsItemCall.setTextSize(TypedValue.COMPLEX_UNIT_SP, 9f)
+                     binding.callRecordsItemCall.setTextColor(Color.parseColor("#FFFFFF"));
+                     //binding.callRecordsItemCall.setBackgroundResource(R.drawable.shape_main_call_r_wj_bg)
+                 }
+             }else if (TcpType.EVENT.name == itemData.actionType){
+                 binding.tabImagev.setImageResource(R.mipmap.shijianr)
+                 binding.callRecordsItemTitle.text = itemData.data+"-事件呼叫"
+                 if (itemData.actionEnd != null) {
+                     binding.callRecordsItemType.text = "已响应"
+                     binding.callRecordsItemType.setTextColor(Color.parseColor("#2EA22A"));
+                     binding.callRecordsItemPlay.visibility = View.GONE
+                     binding.callRecordsItemCall.visibility = View.VISIBLE
+                     binding.callRecordsItemCall.text = "确认完成"
+                     binding.callRecordsItemCall.setTextSize(TypedValue.COMPLEX_UNIT_SP, 9f)
+                     binding.callRecordsItemCall.setTextColor(Color.parseColor("#FFFFFF"));
+                     binding.callRecordsItemCall.setBackgroundResource(R.drawable.shape_reinforcements_dialog_bt_bg)
+                 }else{
+                     binding.callRecordsItemType.text = "未响应"
+                     binding.callRecordsItemType.setTextColor(Color.parseColor("#E82222"));
+                     binding.callRecordsItemPlay.visibility = View.GONE
+                     binding.callRecordsItemCall.visibility = View.VISIBLE
+                     binding.callRecordsItemCall.text = ""
+                     binding.callRecordsItemCall.background= null
+                     binding.callRecordsItemCall.setTextSize(TypedValue.COMPLEX_UNIT_SP, 9f)
+                     binding.callRecordsItemCall.setTextColor(Color.parseColor("#FFFFFF"));
+                     //binding.callRecordsItemCall.setBackgroundResource(R.drawable.shape_main_call_r_wj_bg)
+                 }
+             }else if (TcpType.IM.name == itemData.actionType){
+                 binding.tabImagev.setImageResource(R.mipmap.yyly_type)
+                 binding.callRecordsItemTitle.text = "语音留言"
+                 if (itemData.actionEnd != null) {
+                     binding.callRecordsItemType.text = "已播放"
+                     binding.callRecordsItemType.setTextColor(Color.parseColor("#2EA22A"));
+                     binding.callRecordsItemCall.visibility = View.GONE
+                     binding.callRecordsItemPlay.visibility = View.VISIBLE
+                 }else{
+                     binding.callRecordsItemType.text = "未播放"
+                     binding.callRecordsItemType.setTextColor(Color.parseColor("#E82222"));
+                     binding.callRecordsItemCall.visibility = View.GONE
+                     binding.callRecordsItemPlay.visibility = View.VISIBLE
+
+                     //binding.callRecordsItemCall.setBackgroundResource(R.drawable.shape_main_call_r_wj_bg)
+                 }
+             }
+            if (itemData.createDate != null) {
+                binding.callRecordsItemTime.text = TimeHandle.getDateTime(itemData.createDate * 1000, "MM-dd HH:mm")
+            }
+             //回拨
+            /*binding.callRecordsItemCall.setOnClickListener {
+
+                if (itemData.actionAccept!=null){
+                    type=0
+                }
+                onItemClickListener?.oncallItemClick(holder.itemView, position,itemData.actionType ,itemData.toDeviceId ,type)
+            }*/
+
+
+
+        }
+    }
+
+}

+ 4 - 8
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/adapter/ChannelImItemAdapter.kt

@@ -1,12 +1,9 @@
 package com.wdkl.ncs.android.component.home.adapter
 
 import android.app.Activity
-import android.util.Log
-import android.view.View
 import android.view.ViewGroup
 import com.alibaba.android.vlayout.LayoutHelper
 import com.alibaba.android.vlayout.layout.LinearLayoutHelper
-import com.alibaba.fastjson.JSONObject
 import com.wdkl.ncs.android.component.home.R
 import com.wdkl.ncs.android.component.home.databinding.AdapterChannelImRecordsItemBinding
 import com.wdkl.ncs.android.component.home.util.ImPlayDialogHelper
@@ -15,14 +12,13 @@ import com.wdkl.ncs.android.component.home.util.TimeTransition
 import com.wdkl.ncs.android.lib.adapter.BaseDelegateAdapter
 import com.wdkl.ncs.android.lib.utils.BaseRecyclerViewHolder
 import com.wdkl.ncs.android.lib.utils.showMessage
-import com.wdkl.ncs.android.lib.vo.MessageEvent
 import com.wdkl.ncs.android.middleware.api.ApiManager
 import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
 import com.wdkl.ncs.android.middleware.model.dos.ChannelImDO
 import com.wdkl.ncs.android.middleware.model.vo.ChannelIMVO
 import com.wdkl.ncs.android.middleware.tcp.TcpClient
 import com.wdkl.ncs.android.middleware.tcp.channel.ChannelImUtil
-import com.wdkl.ncs.android.middleware.tcp.dto.TcpCallback
 import org.greenrobot.eventbus.EventBus
 
 
@@ -76,8 +72,8 @@ class ChannelImItemAdapter(val data: ArrayList<ChannelIMVO>, val imActivity: Act
             val pos = holder.adapterPosition
             val itemData = getItem(pos)
 
-            binding.imCallTimeTv.text = TimeTransition().stampToTime(itemData.sendTime*1000)
-            binding.imSickbedTv.text = itemData.senderMemberName
+            binding.imSickbedItemTime.text = TimeTransition().stampToTime(itemData.sendTime*1000)+"发送"
+            binding.imSickbedItemName.text = itemData.senderMemberName
             /*if (itemData.is_self) {
                 binding.imTreatmentStateImagev.visibility = View.GONE
             } else {
@@ -91,7 +87,7 @@ class ChannelImItemAdapter(val data: ArrayList<ChannelIMVO>, val imActivity: Act
             }*/
 
 
-            binding.imPlayTv.setOnClickListener {
+            binding.imSickbedItemPlay.setOnClickListener {
                 showMessage("play:" + itemData.audioPath)
                 EventBus.getDefault().post(MessageEvent(false, Constant.EVENT_CLEAR_IM))
                 MediaPlayHelper.getInstance().stopMusic(false)

+ 15 - 2
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/adapter/NewEventItemAdapter.kt

@@ -4,7 +4,6 @@ import android.app.Activity
 import android.content.Intent
 import android.graphics.Color
 import android.text.TextUtils
-import android.util.Log
 import android.view.View
 import android.view.ViewGroup
 import com.alibaba.android.vlayout.LayoutHelper
@@ -28,9 +27,9 @@ import com.wdkl.ncs.android.lib.base.BaseApplication
 import com.wdkl.ncs.android.lib.utils.BaseRecyclerViewHolder
 import com.wdkl.ncs.android.lib.utils.showMessage
 import com.wdkl.ncs.android.middleware.api.ApiManager
+import com.wdkl.ncs.android.middleware.common.MessageEvent
 import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType
-import com.wdkl.ncs.android.lib.vo.MessageEvent
 import com.wdkl.ncs.android.middleware.tcp.TcpClient
 import com.wdkl.ncs.android.middleware.tcp.channel.*
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpCallback
@@ -100,6 +99,7 @@ class NewEventItemAdapter(var data:ArrayList<InteractionVO>, val activity: Activ
 
             when (itemData.actionType){
                 TcpType.EVENT.name->{
+                    binding.eliEventImg.setImageResource(R.mipmap.shijianr)
                     binding.eliImRead.visibility = View.GONE
                     binding.eliEventResponse.visibility = View.VISIBLE
                     binding.eliEventName.text = itemData.data
@@ -150,6 +150,7 @@ class NewEventItemAdapter(var data:ArrayList<InteractionVO>, val activity: Activ
                     }
                 }
                 TcpType.IM.name->{
+                    binding.eliEventImg.setImageResource(R.mipmap.yyly_type)
                     binding.eliEventName.setText(R.string.event_voice_msg)
                     binding.eliEventResponse.visibility = View.GONE
                     if (itemData.actionEnd!=null){
@@ -212,6 +213,7 @@ class NewEventItemAdapter(var data:ArrayList<InteractionVO>, val activity: Activ
                     }
                 }
                 TcpType.SOS.name->{
+                    binding.eliEventImg.setImageResource(R.mipmap.sos)
                     binding.eliVoiceRecorder.visibility = View.GONE
                     binding.eliEventName.setTextColor(activity.resources.getColor(R.color.warn_orange))
                     binding.eliImRead.visibility = View.GONE
@@ -272,10 +274,21 @@ class NewEventItemAdapter(var data:ArrayList<InteractionVO>, val activity: Activ
                     }
                 }
                 TcpType.VOICE.name->{
+
+                    if (itemData.fromDeviceId == Constant.DEVICE_ID){
+                        binding.eliEventImg.setImageResource(R.mipmap.huchu)
+                    }else{
+                        binding.eliEventImg.setImageResource(R.mipmap.huru)
+                    }
                     binding.eliEventName.setText(R.string.event_voice_call)
                     binding.eliEventResponse.visibility = View.GONE
                 }
                 TcpType.PHONE.name->{
+                    if (itemData.fromDeviceId == Constant.DEVICE_ID){
+                        binding.eliEventImg.setImageResource(R.mipmap.huchu)
+                    }else{
+                        binding.eliEventImg.setImageResource(R.mipmap.huru)
+                    }
                     binding.eliEventName.setText(R.string.event_voice_call)
                     binding.eliEventResponse.visibility = View.GONE
                 }

+ 131 - 131
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/adapter/TakeoverItemAdapter.kt

@@ -62,136 +62,136 @@ class TakeoverItemAdapter(var data:ArrayList<JsonObject>, val activity: Activity
     }
 
     override fun onBindViewHolder(holder: BaseRecyclerViewHolder<TakeoverItemBinding>, position: Int) {
-        holder.bind {
-            binding ->
-            val itemData = getItem(position)
-            binding.clerkName.setText(R.string.str_null)
-            binding.tvPhoneNumber.setText(R.string.str_empty)
-            try {
-                binding.clerkName.text = itemData.get("clerk_name").asString
-                binding.tvPhoneNumber.text = itemData.get("phone_number").asString
-            } catch (e: Exception) {
-                //
-            }
-
-            if (Strings.isNullOrEmpty(Constant.userName)){
-                binding.btnCallOut.visibility = View.GONE
-                binding.btnUserChange.setOnClickListener {
-                    CommonTool.createVerifyDialog(
-                        StringUtil.getResString(R.string.device_change_check),
-                        StringUtil.getResString(R.string.str_cancel),
-                        StringUtil.getResString(R.string.str_confirm),
-                        activity, object : CommonTool.DialogInterface{
-                            override fun yes() {
-                                showMessage(R.string.device_change_tips)
-                                val tcpModel = DeviceUtil.deviceChange(Constant.DEVICE_ID, itemData.get("id").asInt)
-                                val transaction: TcpCallback = object : TcpCallback(tcpModel.tid) {
-                                    override fun onSuccess(jsonObject: JSONObject) {
-                                        if (activity != null) {
-                                            activity.runOnUiThread {
-                                                showMessage("操作成功")
-                                                loadingDialog.dismiss()
-                                            }
-                                        }
-                                    }
-
-                                    override fun onFailed(jsonObject: JSONObject) {
-                                        // 这里写发送失败的方法
-                                        val callbackString = jsonObject.getString(CALLBACK)
-                                        if (activity != null) {
-                                            activity.runOnUiThread {
-                                                showMessage("Failed: $callbackString")
-                                                loadingDialog.dismiss()
-                                            }
-                                        }
-                                    }
-                                }
-                                TcpClient.getInstance().sendTcp(tcpModel, false, transaction)
-
-                                /*NettyClient.instance.sendMsg(tcpModel.toJson()).subscribe {
-                                    if (it) {
-                                        Log.d(TAG, "TCP.发送消息完成")
-                                    } else {
-                                        Log.e(TAG, "TCP.发送消息失败")
-                                        HandleTcpConnect.instance.tcpReConnectWithMsgShow()
-                                    }
-                                }*/
-                            }
-                            override fun no() {
-                            }
-                        }).show()
-                }
-            } else {
-                binding.btnUserChange.visibility = View.GONE
-                binding.btnCallOut.setOnClickListener {
-                    //DeviceChannel.calling = true
-
-                    if (Constant.phoneType == CommunicationEnum.MOBILE_PHONE.value()) {
-                        try {
-                            val number = itemData.get("phone_number")
-                            val intent = Intent(Intent.ACTION_CALL, Uri.parse("tel:" + number.asString))
-                            activity.startActivity(intent)
-                            //Constants.phoneState = Constants.PHONE_OUTGOING
-
-                            if (!Constant.uploadCalllog) {
-                                //发送tcp
-                                val tcpModel = PhoneUtil.phoneCall(Constant.DEVICE_ID, itemData.get("id").asInt)
-                                val transaction: TcpCallback = object : TcpCallback(tcpModel.tid) {
-                                    override fun onSuccess(jsonObject: JSONObject) {
-                                        //
-                                    }
-
-                                    override fun onFailed(jsonObject: JSONObject) {
-                                        // 这里写发送失败的方法
-                                    }
-                                }
-                                TcpClient.getInstance().sendTcp(tcpModel, true, transaction)
-
-                                /*NettyClient.instance.sendMsg(tcpModel.toJson())
-                                    .subscribe { res: Boolean ->
-                                        if (res) {
-                                            Log.d(TAG, "TCP.发送消息完成")
-                                        } else {
-                                            Log.e(TAG, "TCP.发送消息失败")
-                                            HandleTcpConnect.instance.tcpReConnectWithMsgShow()
-                                        }
-                                    }*/
-                            }
-                        } catch (e: Exception) {
-                            showMessage(R.string.call_phone_failed)
-                        }
-
-                        //直接呼叫
-                        //val intent = Intent(Intent.ACTION_CALL, Uri.parse("tel:10010"))
-                        //先启动dialer然后手动呼叫
-                        //val intent = Intent(Intent.ACTION_DIAL, Uri.parse("tel:10010"))
-                        //context.startActivity(intent)
-                    } else {
-                        //网络电话
-                        val tcpModel = VoiceUtil.voiceCall(Constant.DEVICE_ID, itemData.get("id").asInt)
-                        var intent: Intent
-                        if (SettingConfig.getSipEnabled(BaseApplication.appContext)) {
-                            intent = Intent(activity, SipCallActivity::class.java)
-                        } else {
-                            intent = Intent(activity, CallSingleActivity::class.java)
-                        }
-                        intent.putExtra(CallSingleActivity.EXTRA_ROOM_ID, Constant.SIP_ID)
-                        intent.putExtra(CallSingleActivity.EXTRA_MO, true)
-                        intent.putExtra(CallSingleActivity.EXTRA_AUDIO_ONLY, true)
-                        intent.putExtra(CallSingleActivity.EXTRA_TCPMODEL, tcpModel);
-                        intent.putExtra(CallSingleActivity.EXTRA_SHOWNAME, itemData.get("clerk_name").asString)
-                        //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                        activity.startActivity(intent)
-                    }
-                }
-
-                binding.tiVoiceRecorder.visibility = View.VISIBLE
-                binding.tiVoiceRecorder.setOnClickListener {
-                    val intent = Intent(activity, VoiceMsgActivity::class.java)
-                    intent.putExtra(VoiceMsgActivity.TO_DEVICE_ID,itemData.get("id").asInt)
-                    activity.startActivity(intent)
-                }
-            }
-        }
+//        holder.bind {
+//            binding ->
+//            val itemData = getItem(position)
+//            binding.clerkName.setText(R.string.str_null)
+//            binding.tvPhoneNumber.setText(R.string.str_empty)
+//            try {
+//                binding.clerkName.text = itemData.get("clerk_name").asString
+//                binding.tvPhoneNumber.text = itemData.get("phone_number").asString
+//            } catch (e: Exception) {
+//                //
+//            }
+//
+//            if (Strings.isNullOrEmpty(Constant.userName)){
+//                binding.btnCallOut.visibility = View.GONE
+//                binding.btnUserChange.setOnClickListener {
+//                    CommonTool.createVerifyDialog(
+//                        StringUtil.getResString(R.string.device_change_check),
+//                        StringUtil.getResString(R.string.str_cancel),
+//                        StringUtil.getResString(R.string.str_confirm),
+//                        activity, object : CommonTool.DialogInterface{
+//                            override fun yes() {
+//                                showMessage(R.string.device_change_tips)
+//                                val tcpModel = DeviceUtil.deviceChange(Constant.DEVICE_ID, itemData.get("id").asInt)
+//                                val transaction: TcpCallback = object : TcpCallback(tcpModel.tid) {
+//                                    override fun onSuccess(jsonObject: JSONObject) {
+//                                        if (activity != null) {
+//                                            activity.runOnUiThread {
+//                                                showMessage("操作成功")
+//                                                loadingDialog.dismiss()
+//                                            }
+//                                        }
+//                                    }
+//
+//                                    override fun onFailed(jsonObject: JSONObject) {
+//                                        // 这里写发送失败的方法
+//                                        val callbackString = jsonObject.getString(CALLBACK)
+//                                        if (activity != null) {
+//                                            activity.runOnUiThread {
+//                                                showMessage("Failed: $callbackString")
+//                                                loadingDialog.dismiss()
+//                                            }
+//                                        }
+//                                    }
+//                                }
+//                                TcpClient.getInstance().sendTcp(tcpModel, false, transaction)
+//
+//                                /*NettyClient.instance.sendMsg(tcpModel.toJson()).subscribe {
+//                                    if (it) {
+//                                        Log.d(TAG, "TCP.发送消息完成")
+//                                    } else {
+//                                        Log.e(TAG, "TCP.发送消息失败")
+//                                        HandleTcpConnect.instance.tcpReConnectWithMsgShow()
+//                                    }
+//                                }*/
+//                            }
+//                            override fun no() {
+//                            }
+//                        }).show()
+//                }
+//            } else {
+//                binding.btnUserChange.visibility = View.GONE
+//                binding.btnCallOut.setOnClickListener {
+//                    //DeviceChannel.calling = true
+//
+//                    if (Constant.phoneType == CommunicationEnum.MOBILE_PHONE.value()) {
+//                        try {
+//                            val number = itemData.get("phone_number")
+//                            val intent = Intent(Intent.ACTION_CALL, Uri.parse("tel:" + number.asString))
+//                            activity.startActivity(intent)
+//                            //Constants.phoneState = Constants.PHONE_OUTGOING
+//
+//                            if (!Constant.uploadCalllog) {
+//                                //发送tcp
+//                                val tcpModel = PhoneUtil.phoneCall(Constant.DEVICE_ID, itemData.get("id").asInt)
+//                                val transaction: TcpCallback = object : TcpCallback(tcpModel.tid) {
+//                                    override fun onSuccess(jsonObject: JSONObject) {
+//                                        //
+//                                    }
+//
+//                                    override fun onFailed(jsonObject: JSONObject) {
+//                                        // 这里写发送失败的方法
+//                                    }
+//                                }
+//                                TcpClient.getInstance().sendTcp(tcpModel, true, transaction)
+//
+//                                /*NettyClient.instance.sendMsg(tcpModel.toJson())
+//                                    .subscribe { res: Boolean ->
+//                                        if (res) {
+//                                            Log.d(TAG, "TCP.发送消息完成")
+//                                        } else {
+//                                            Log.e(TAG, "TCP.发送消息失败")
+//                                            HandleTcpConnect.instance.tcpReConnectWithMsgShow()
+//                                        }
+//                                    }*/
+//                            }
+//                        } catch (e: Exception) {
+//                            showMessage(R.string.call_phone_failed)
+//                        }
+//
+//                        //直接呼叫
+//                        //val intent = Intent(Intent.ACTION_CALL, Uri.parse("tel:10010"))
+//                        //先启动dialer然后手动呼叫
+//                        //val intent = Intent(Intent.ACTION_DIAL, Uri.parse("tel:10010"))
+//                        //context.startActivity(intent)
+//                    } else {
+//                        //网络电话
+//                        val tcpModel = VoiceUtil.voiceCall(Constant.DEVICE_ID, itemData.get("id").asInt)
+//                        var intent: Intent
+//                        if (SettingConfig.getSipEnabled(BaseApplication.appContext)) {
+//                            intent = Intent(activity, SipCallActivity::class.java)
+//                        } else {
+//                            intent = Intent(activity, CallSingleActivity::class.java)
+//                        }
+//                        intent.putExtra(CallSingleActivity.EXTRA_ROOM_ID, Constant.SIP_ID)
+//                        intent.putExtra(CallSingleActivity.EXTRA_MO, true)
+//                        intent.putExtra(CallSingleActivity.EXTRA_AUDIO_ONLY, true)
+//                        intent.putExtra(CallSingleActivity.EXTRA_TCPMODEL, tcpModel);
+//                        intent.putExtra(CallSingleActivity.EXTRA_SHOWNAME, itemData.get("clerk_name").asString)
+//                        //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+//                        activity.startActivity(intent)
+//                    }
+//                }
+//
+//                binding.tiVoiceRecorder.visibility = View.VISIBLE
+//                binding.tiVoiceRecorder.setOnClickListener {
+//                    val intent = Intent(activity, VoiceMsgActivity::class.java)
+//                    intent.putExtra(VoiceMsgActivity.TO_DEVICE_ID,itemData.get("id").asInt)
+//                    activity.startActivity(intent)
+//                }
+//            }
+//        }
     }
 }

+ 14 - 16
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/adapter/TakeoverItemSearchAdapter.kt

@@ -60,10 +60,15 @@ class TakeoverItemSearchAdapter : FuzzySearchBaseAdapter<ContactItemEntity, Take
     override fun onBindViewHolder(p0: ItemHolder, p1: Int) {
         val itemData = mDataList[p1]
         p0.clerkName.setText(R.string.str_null)
-        p0.phoneNumber.setText(R.string.str_empty)
+//        p0.clerkjob.setText(R.string.str_null)
+//        p0.clerkAge.setText(R.string.str_null)
+
+
         try {
             p0.clerkName.text = itemData.value
-            p0.phoneNumber.text = itemData.number
+//            p0.clerkjob.text = itemData.value
+//            p0.clerkAge.text = itemData.value
+//            p0.clerkimg.setText(R.string.str_null)
         } catch (e: Exception) {
             //
         }
@@ -101,15 +106,6 @@ class TakeoverItemSearchAdapter : FuzzySearchBaseAdapter<ContactItemEntity, Take
                                 }
                             }
                             TcpClient.getInstance().sendTcp(tcpModel, false, transaction)
-
-                            /*NettyClient.instance.sendMsg(tcpModel.toJson()).subscribe {
-                                if (it) {
-                                    Log.d(TAG, "TCP.发送消息完成")
-                                } else {
-                                    Log.e(TAG, "TCP.发送消息失败")
-                                    HandleTcpConnect.instance.tcpReConnectWithMsgShow()
-                                }
-                            }*/
                         }
                         override fun no() {
                         }
@@ -190,10 +186,12 @@ class TakeoverItemSearchAdapter : FuzzySearchBaseAdapter<ContactItemEntity, Take
 
 
     class ItemHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
-        var clerkName: TextView = itemView.findViewById(R.id.clerk_name)
-        var phoneNumber: TextView = itemView.findViewById(R.id.tv_phone_number)
-        var btnUserChange: Button = itemView.findViewById(R.id.btn_user_change)
-        var btnCallOut: Button = itemView.findViewById(R.id.btn_call_out)
-        var tiVoiceRecorder: ImageView = itemView.findViewById(R.id.ti_voice_recorder)
+        var clerkName: TextView = itemView.findViewById(R.id.take_over_item_name)
+        var clerkjob: TextView = itemView.findViewById(R.id.take_over_item_job)
+        var clerkAge: TextView = itemView.findViewById(R.id.take_over_item_age)
+        var clerkimg: ImageView = itemView.findViewById(R.id.take_over_item_tx_img)
+        var btnUserChange: TextView = itemView.findViewById(R.id.take_over_item_qh)
+        var btnCallOut: TextView = itemView.findViewById(R.id.take_over_item_call)
+        var tiVoiceRecorder: TextView = itemView.findViewById(R.id.take_over_item_ly)
     }
 }

+ 6 - 4
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/adapter/WatchContactsItemAdapter.kt

@@ -29,6 +29,7 @@ import com.wdkl.ncs.android.middleware.tcp.channel.PhoneUtil
 import com.wdkl.ncs.android.middleware.tcp.channel.VoiceUtil
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpCallback
 import com.wdkl.ncs.android.middleware.tcp.enums.CommunicationEnum
+import com.wdkl.ncs.android.middleware.utils.CommonUtils
 
 class WatchContactsItemAdapter(val data:ArrayList<WatchContactsVO>, val context: Context) : BaseDelegateAdapter<BaseRecyclerViewHolder<AdapterWatchContactsItemBinding>, WatchContactsVO>(){
 
@@ -70,16 +71,17 @@ class WatchContactsItemAdapter(val data:ArrayList<WatchContactsVO>, val context:
         holder.bind {
             binding ->
             val itemData = getItem(position)
-            binding.roomNumberTv.text = itemData.frameFullName
-            binding.nameTv.text = itemData.customerNamed
+            binding.adapterContactsItemRoom.text = CommonUtils.subStringAfter3(itemData.frameFullName, "-")+"房"
+            binding.adapterContactsItemBed.text = CommonUtils.subStringAfter(itemData.frameFullName, "-")
+            binding.adapterContactsItemName.text = itemData.customerNamed
 
-            binding.awciVoiceRecorder.setOnClickListener{
+            binding.adapterContactsItemLy.setOnClickListener{
                 var intent = Intent(context, VoiceMsgActivity::class.java)
                 intent.putExtra(VoiceMsgActivity.TO_DEVICE_ID,itemData.deviceId)
                 context.startActivity(intent)
             }
 
-            binding.awciBtnCallOut.setOnClickListener{
+            binding.adapterContactsItemCall.setOnClickListener{
                 if (Constant.bedPhoneType == CommunicationEnum.MOBILE_PHONE.value()) {
                     try {
                         if (itemData.phoneNumber != null) {

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

@@ -11,7 +11,8 @@ import com.wdkl.ncs.android.component.home.util.LocaleMangerUtils;
 import com.wdkl.ncs.android.component.home.util.RingPlayHelper;
 import com.wdkl.ncs.android.component.home.util.SpeechUtil;
 import com.wdkl.ncs.android.middleware.common.Constant;
-import com.wdkl.ncs.android.lib.vo.MessageEvent;
+import com.wdkl.ncs.android.middleware.common.MessageEvent;
+
 
 import org.greenrobot.eventbus.EventBus;
 

+ 1 - 1
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/broadcast/MyMediaButtonReceiver.kt

@@ -6,7 +6,7 @@ import android.content.Intent
 import android.util.Log
 import android.view.KeyEvent
 import com.wdkl.ncs.android.middleware.common.Constant
-import com.wdkl.ncs.android.lib.vo.MessageEvent
+import com.wdkl.ncs.android.middleware.common.MessageEvent
 import org.greenrobot.eventbus.EventBus
 
 class MyMediaButtonReceiver: BroadcastReceiver() {

+ 83 - 0
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/dialog/ServicesDialogHelper.java

@@ -0,0 +1,83 @@
+package com.wdkl.ncs.android.component.home.dialog;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+
+
+import com.wdkl.ncs.android.component.home.R;
+import com.wdkl.ncs.android.component.home.helper.Utils;
+import com.wdkl.ncs.android.lib.base.BaseApplication;
+import com.wdkl.ncs.android.middleware.utils.CommonUtils;
+
+import static com.wdkl.ncs.android.lib.utils.ExtendMethodsKt.showMessage;
+
+public class ServicesDialogHelper {
+
+    private static AlertDialog alertDialog;
+
+    public static void showDialog(final Activity activity, ClickListener clickListener) {
+
+        View contentView = LayoutInflater.from(activity).inflate(R.layout.main_server_dialog, null);
+        AlertDialog.Builder builder = new AlertDialog.Builder(activity, R.style.Theme_AppCompat_Dialog);
+        builder.setView(contentView);
+
+        Button server_determine_button = contentView.findViewById(R.id.server_determine_button);
+        Button server_cancel_button = contentView.findViewById(R.id.server_cancel_button);
+        LinearLayout layout = contentView.findViewById(R.id.ll_server_config_view);
+        EditText server_ed = contentView.findViewById(R.id.server_ed);
+        server_determine_button.setOnClickListener(v -> {
+            if (alertDialog != null && alertDialog.isShowing()) {
+                if(server_ed.getText().toString().equals("")){
+                    showMessage("服务器地址不能为空");
+                    return;
+                }
+
+                CommonUtils.setUrl(BaseApplication.appContext, server_ed.getText().toString());
+                if (clickListener != null) {
+                    String IP = server_ed.getText().toString();
+                    clickListener.onClick(IP);
+                }
+                alertDialog.dismiss();
+            }
+        });
+        server_cancel_button.setOnClickListener(v -> {
+            if (alertDialog != null && alertDialog.isShowing()) {
+                server_ed.setText("");
+            }
+        });
+
+        layout.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                try {
+                    Utils.hideInputKeyboard(alertDialog.getWindow().getDecorView().getWindowToken());
+                } catch (Exception e) {
+                    //
+                }
+            }
+        });
+
+        alertDialog = builder.create();
+        alertDialog.setCanceledOnTouchOutside(true);
+        alertDialog.setCancelable(true);
+        alertDialog.show();
+        Window window = alertDialog.getWindow();
+        WindowManager.LayoutParams lp = window.getAttributes();
+        lp.width = 800;
+        lp.height = 750;
+        lp.gravity = Gravity.CENTER;
+        window.setAttributes(lp);
+    }
+
+    public interface ClickListener{
+        void onClick(String bedVO);
+    }
+}

+ 106 - 0
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/dialog/SystemDialogHelper.java

@@ -0,0 +1,106 @@
+package com.wdkl.ncs.android.component.home.dialog;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.Intent;
+import android.content.res.Configuration;
+import android.util.DisplayMetrics;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+
+import com.wdkl.ncs.android.component.home.R;
+import com.wdkl.ncs.android.component.home.activity.WatchUserSettingActivity;
+
+import com.wdkl.ncs.android.component.home.helper.Utils;
+import com.wdkl.ncs.android.component.home.util.PhoneNumberDialogHelper;
+
+
+public class SystemDialogHelper {
+
+    private static AlertDialog alertDialog;
+
+
+    public static void showDialog(Activity activity,String type) {
+
+        View contentView = LayoutInflater.from(activity).inflate(R.layout.main_password_dialog, null);
+        AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+        builder.setView(contentView);
+
+        LinearLayout layout = contentView.findViewById(R.id.ll_password_view);
+        Button password_cancel_button = contentView.findViewById(R.id.password_cancel_button);
+        Button password_determine_button = contentView.findViewById(R.id.password_determine_button);
+        EditText password_ed = contentView.findViewById(R.id.password_ed);
+
+        layout.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                try {
+                    Utils.hideInputKeyboard(alertDialog.getWindow().getDecorView().getWindowToken());
+                } catch (Exception e) {
+                    //
+                }
+            }
+        });
+
+        password_cancel_button.setOnClickListener(v -> {
+            if (alertDialog != null && alertDialog.isShowing()) {
+                alertDialog.dismiss();
+            }
+        });
+        password_determine_button.setOnClickListener(v -> {
+            if (alertDialog != null && alertDialog.isShowing()) {
+                if (type.equals("系统设置")){
+                    String passwprd =password_ed.getText().toString();
+                    if (passwprd.equals("888")){
+                        Intent intent = new Intent();
+                        intent.setClass(activity, WatchUserSettingActivity.class);
+                        activity.startActivity(intent);
+                    }
+                }else {
+                    PhoneNumberDialogHelper.showDialog(activity);
+                }
+
+
+                alertDialog.dismiss();
+            }
+        });
+        alertDialog = builder.create();
+        alertDialog.setCanceledOnTouchOutside(true);
+        alertDialog.setCancelable(true);
+        alertDialog.show();
+
+        DisplayMetrics metrics = new DisplayMetrics();
+        activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
+        int screenWidth = metrics.widthPixels;
+        int orientation = activity.getResources().getConfiguration().orientation;
+        if (orientation == Configuration.ORIENTATION_PORTRAIT && screenWidth>600) {
+            try {
+                Window window = alertDialog.getWindow();
+                WindowManager.LayoutParams lp = window.getAttributes();
+                lp.width = 800;
+                lp.height = 650;
+                lp.gravity = Gravity.CENTER;
+                window.setAttributes(lp);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+//        //设置dialog宽高及位置
+//        try {
+//            Window window = alertDialog.getWindow();
+//            WindowManager.LayoutParams lp = window.getAttributes();
+//            lp.width = 680;
+//            lp.height = 440;
+//            lp.gravity = Gravity.CENTER;
+//            window.setAttributes(lp);
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+    }
+}

+ 2 - 0
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/entity/ContactItemEntity.java

@@ -11,6 +11,8 @@ public class ContactItemEntity implements IAZItem, IFuzzySearchItem {
     private String       mNumber;
     private int          mId;
     private String       mSortLetters;
+    private String       mAge;
+    private String       mUrl;
     private List<String> mFuzzySearchKey;
 
     public ContactItemEntity(String value, String number, int id, String sortLetters, List<String> fuzzySearchKey) {

+ 68 - 0
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/helper/Util.kt

@@ -0,0 +1,68 @@
+package com.wdkl.ncs.android.component.home.helper
+
+import android.annotation.SuppressLint
+import android.app.KeyguardManager
+import android.content.Context
+import android.content.Context.KEYGUARD_SERVICE
+import android.os.PowerManager
+import android.util.DisplayMetrics
+import android.view.WindowManager
+import com.wdkl.ncs.android.lib.base.BaseApplication
+
+
+object Util {
+
+    /**
+     * 亮屏并解锁
+     */
+    @SuppressLint("InvalidWakeLockTag")
+    fun wakeUpAndUnlock(): PowerManager.WakeLock? {
+        val pm = BaseApplication.appContext.getSystemService(Context.POWER_SERVICE) as PowerManager
+        var wakeLock: PowerManager.WakeLock? = null
+
+        val screenOn = pm.isInteractive
+        if (!screenOn) { //如果是熄灭状态
+            wakeLock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP or PowerManager.SCREEN_DIM_WAKE_LOCK, "TAG")
+            wakeLock.acquire(10000)//亮屏
+        }
+
+        // 屏幕解锁
+        val keyguardManager = BaseApplication.appContext.getSystemService(KEYGUARD_SERVICE) as KeyguardManager
+        val keyguardLock = keyguardManager.newKeyguardLock("unLock")
+        // 屏幕锁定
+        keyguardLock.reenableKeyguard()
+        keyguardLock.disableKeyguard() // 解锁
+        return wakeLock
+    }
+
+    @SuppressLint("InvalidWakeLockTag")
+    fun getCpuWakeLock(context: Context): PowerManager.WakeLock? {
+        val pm = context.getSystemService(Context.POWER_SERVICE) as PowerManager
+        val cpuWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
+                context.javaClass.canonicalName)
+        return cpuWakeLock
+    }
+
+    fun appendSpace(para: String): String? {
+        val length = para.length
+        val value = CharArray(length shl 1)
+        var i = 0
+        var j = 0
+        while (i < length) {
+            value[j] = para[i]
+            value[1 + j] = ' '
+            ++i
+            j = i shl 1
+        }
+        return String(value)
+    }
+
+
+
+    fun getPixelsFromDp(context: Context, size: Int): Int {
+        val metrics = DisplayMetrics()
+        val wm = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
+        wm.getDefaultDisplay().getMetrics(metrics)
+        return size * metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT
+    }
+}

+ 101 - 0
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/helper/Utils.java

@@ -0,0 +1,101 @@
+package com.wdkl.ncs.android.component.home.helper;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.hardware.Camera;
+import android.os.IBinder;
+import android.util.Log;
+import android.view.inputmethod.InputMethodManager;
+
+import com.wdkl.ncs.android.component.home.BuildConfig;
+import com.wdkl.ncs.android.lib.base.BaseApplication;
+import com.wdkl.ncs.android.middleware.common.Constant;
+
+import java.lang.reflect.Method;
+
+public class Utils {
+
+    public static final int STATUS_BAR_DISABLE_HOME = 0x00200000;
+    public static final int STATUS_BAR_DISABLE_BACK = 0x00400000;
+    public static final int STATUS_BAR_DISABLE_RECENT = 0x01000000;
+    public static final int STATUS_BAR_DISABLE_EXPAND = 0x00010000;//4.2以上的整形标识
+    public static final int STATUS_BAR_DISABLE_NONE = 0x00000000;//取消StatusBar所有disable属性,即还原到最最原始状态
+
+    public static void checkCameraSupport() {
+        int num = Camera.getNumberOfCameras();
+        if (num > 0) {
+            Constant.supportCamera = true;
+        } else {
+            Constant.supportCamera = false;
+        }
+    }
+
+    public static void setStatusBarDisable(Context context, int disable_status) {//调用statusBar的disable方法
+        Object service = context.getSystemService("statusbar");
+        try {
+            Class<?> statusBarManager = Class.forName
+                    ("android.app.StatusBarManager");
+            Method expand = statusBarManager.getMethod("disable", int.class);
+            expand.invoke(service, disable_status);
+        } catch (Exception e) {
+            unBanStatusBar(context);
+            e.printStackTrace();
+        }
+    }
+
+    public static void unBanStatusBar(Context context) {//利用反射解除状态栏禁止下拉
+        Object service = context.getSystemService("statusbar");
+        try {
+            Class<?> statusBarManager = Class.forName
+                    ("android.app.StatusBarManager");
+            Method expand = statusBarManager.getMethod("disable", int.class);
+            expand.invoke(service, STATUS_BAR_DISABLE_NONE);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    public static void hideStatusBar(Context context, boolean hide) {
+        if(BuildConfig.flag.equals(Constant.DEV_W_DCH)) {
+            hideStatusBarDch(context, hide);
+        } else if (BuildConfig.flag.equals(Constant.DEV_W_YLD)) {
+            hideStatusBarYld(context, hide);
+        }
+    }
+
+    //是否隐藏系统栏
+    public static void hideStatusBarDch(Context context, boolean hide) {
+        Log.d("StatusBar", "toggleStatusBar: hide ===== " + hide);
+        Intent intent = new Intent();
+        intent.setAction("control.nav.hide");//虚拟按键
+        if (hide) {
+            intent.putExtra("hide", "1");//关闭
+        } else {
+            intent.putExtra("hide", "0");//开启
+        }
+        context.sendBroadcast(intent);
+    }
+
+    //是否隐藏系统栏
+    public static void hideStatusBarYld(Context context, boolean hide) {
+        Intent intent = new Intent();
+        if (hide) {
+            intent.setAction("com.elclcd.hidebar");
+        } else {
+            intent.setAction("com.elclcd.unhidebar");
+        }
+        context.sendBroadcast(intent);
+    }
+
+    //隐藏软键盘
+    public static void hideInputKeyboard(IBinder token) {
+        try {
+            Log.d("keyboard", "hide input keyboard ===== ");
+            InputMethodManager mInputKeyBoard = (InputMethodManager) BaseApplication.appContext.getSystemService(Context.INPUT_METHOD_SERVICE);
+            mInputKeyBoard.hideSoftInputFromWindow(token, 0);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}

+ 2 - 2
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/service/FloatingService.java

@@ -29,7 +29,7 @@ import com.wdkl.ncs.android.component.home.util.RingPlayHelper;
 import com.wdkl.ncs.android.component.home.util.SpeechUtil;
 import com.wdkl.ncs.android.lib.base.BaseApplication;
 import com.wdkl.ncs.android.middleware.common.Constant;
-import com.wdkl.ncs.android.lib.vo.MessageEvent;
+import com.wdkl.ncs.android.middleware.common.MessageEvent;
 import com.wdkl.ncs.android.middleware.model.vo.InteractionVO;
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel;
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction;
@@ -221,7 +221,7 @@ public class FloatingService extends Service {
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     public void onEvent(MessageEvent messageEvent) {
-        int tag = messageEvent.getTag();
+        int tag = messageEvent.getType();
         if (tag == 2) {
             TcpModel tcpModel = (TcpModel) messageEvent.getMessage();
             Log.i(TAG, "received tcpModel: " + tcpModel.toJson());

+ 1 - 1
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/service/PhoneStateReceiver.java

@@ -17,8 +17,8 @@ import com.wdkl.ncs.android.component.home.util.PhoneCallUtil;
 import com.wdkl.ncs.android.component.home.util.RecordHelper;
 import com.wdkl.ncs.android.component.home.util.SpeechUtil;
 import com.wdkl.ncs.android.component.home.util.Util;
-import com.wdkl.ncs.android.lib.vo.MessageEvent;
 import com.wdkl.ncs.android.middleware.common.Constant;
+import com.wdkl.ncs.android.middleware.common.MessageEvent;
 import com.wdkl.ncs.android.middleware.model.vo.WatchContactVO;
 import com.wdkl.ncs.android.middleware.tcp.TcpClient;
 import com.wdkl.ncs.android.middleware.tcp.channel.DeviceChannel;

+ 4 - 5
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/service/WdKeepAliveService.kt

@@ -13,7 +13,6 @@ import android.util.Log
 import android.view.KeyEvent
 import com.alibaba.fastjson.JSON
 import com.alibaba.fastjson.JSONObject
-import com.google.common.base.Strings
 import com.google.gson.FieldNamingPolicy
 import com.google.gson.Gson
 import com.google.gson.GsonBuilder
@@ -30,9 +29,9 @@ import com.wdkl.ncs.android.lib.base.BaseApplication
 import com.wdkl.ncs.android.lib.utils.AppTool
 import com.wdkl.ncs.android.lib.utils.getJsonString
 import com.wdkl.ncs.android.lib.utils.showMessage
-import com.wdkl.ncs.android.lib.vo.MessageEvent
 import com.wdkl.ncs.android.middleware.api.ApiManager
 import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
 import com.wdkl.ncs.android.middleware.model.dos.ChannelImDO
 import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
 import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
@@ -96,7 +95,6 @@ class WdKeepAliveService : AbsWorkService() {
         if (!EventBus.getDefault().isRegistered(this)) {
             EventBus.getDefault().register(this)
         }
-
         //全局调用一次
         Thread {
             Log.d(TAG, "Constants.tcpServer: " + Constant.tcpServer)
@@ -252,7 +250,8 @@ class WdKeepAliveService : AbsWorkService() {
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
-        when (messageEvent.tag) {
+        Log.i(TAG, "messageEvent:"+messageEvent.type)
+        when (messageEvent.type) {
             //拨出成功 || 有来电
             1 -> {
                 Util.wakeUpAndUnlock()
@@ -353,7 +352,7 @@ class WdKeepAliveService : AbsWorkService() {
                 }
             }
 
-            Constant.EVENT_NEW_TCP -> {
+            Constant.EVENT_TCP_MSG -> {
                 //先点亮屏幕,然后再通知到界面
                 Util.wakeUpAndUnlock()
 

+ 0 - 1
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/service/WdklSipService.java

@@ -69,7 +69,6 @@ public class WdklSipService extends Service {
     }
 
     public static Core getCore() {
-
         return sInstance.mCore;
     }
 

+ 2 - 2
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/ui/BaseSipCallFragment.java

@@ -35,8 +35,8 @@ import com.wdkl.ncs.android.component.home.util.SpeechUtil;
 import com.wdkl.ncs.android.component.home.util.VoiceManagerUtil;
 import com.wdkl.ncs.android.lib.base.BaseApplication;
 import com.wdkl.ncs.android.lib.utils.ExtendMethodsKt;
-import com.wdkl.ncs.android.lib.vo.MessageEvent;
 import com.wdkl.ncs.android.middleware.common.Constant;
+import com.wdkl.ncs.android.middleware.common.MessageEvent;
 import com.wdkl.ncs.android.middleware.model.vo.InteractionVO;
 import com.wdkl.ncs.android.middleware.tcp.TcpClient;
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpCallback;
@@ -333,7 +333,7 @@ public abstract class BaseSipCallFragment extends Fragment {
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     public void onEvent(MessageEvent messageEvent) {
-        int code = messageEvent.getTag();
+        int code = messageEvent.getType();
         //TCP处理
         if (code == 2) {
             TcpModel tcpModel = (TcpModel) messageEvent.getMessage();

+ 84 - 2
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/ui/CallSingleActivity.java

@@ -41,6 +41,7 @@ import com.wdkl.ncs.android.component.home.util.RecordHelper;
 import com.wdkl.ncs.android.component.home.util.RingPlayHelper;
 import com.wdkl.ncs.android.component.home.util.SpeechUtil;
 import com.wdkl.ncs.android.middleware.common.Constant;
+import com.wdkl.ncs.android.middleware.common.MessageEvent;
 import com.wdkl.ncs.android.middleware.model.vo.InteractionVO;
 import com.wdkl.ncs.android.middleware.tcp.TcpClient;
 import com.wdkl.ncs.android.middleware.tcp.channel.DeviceChannel;
@@ -50,6 +51,7 @@ import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel;
 import com.wdkl.ncs.android.middleware.tcp.enums.DeviceTypeEnum;
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction;
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType;
+import com.wdkl.ncs.janus.client.CallSessionCallback;
 import com.wdkl.ncs.janus.client.JanusClient;
 import com.wdkl.ncs.janus.client.VideoRoomCallback;
 import com.wdkl.ncs.janus.entity.Room;
@@ -59,6 +61,10 @@ import com.wdkl.ncs.janus.util.ILogUpload;
 import com.wdkl.ncs.janus.util.JanusConstant;
 
 
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
+
 import java.math.BigInteger;
 
 import pub.devrel.easypermissions.EasyPermissions;
@@ -66,7 +72,7 @@ import pub.devrel.easypermissions.EasyPermissions;
 /**
  * 单人通话界面
  */
-public class CallSingleActivity extends BaseCallActivity {
+public class CallSingleActivity extends BaseCallActivity implements CallSessionCallback {
 
     private static final String TAG = "CallSingleActivity";
 
@@ -106,7 +112,9 @@ public class CallSingleActivity extends BaseCallActivity {
         //切换语言
         int languageId = SettingConfig.getLanguageId(this);
         LocaleMangerUtils.setApplicationLanguageByIndex(this, languageId);
-
+        if (!EventBus.getDefault().isRegistered(this)) {
+            EventBus.getDefault().register(this);
+        }
         super.onCreate(savedInstanceState);
         setStatusBarOrScreenStatus(this);
         setContentView(R.layout.activity_single_call);
@@ -244,6 +252,7 @@ public class CallSingleActivity extends BaseCallActivity {
 
         //================ 信令
         videoRoomCallback = new VideoRoomCallback(janusClient,room, localUserId);
+        videoRoomCallback.setCallSessionCallback(this);
         janusClient.setJanusCallback(videoRoomCallback);
         // 1,连接,监听 onOpen, createSession,createSession 成功时设置janusClient sessionId,回调videoRoomCallback.onCreateSession
         // 2,在 videoRoomCallback.onCreateSession 中使用 janusClient.attachPlugin("janus.plugin.videoroom") 获得插件 handleId,回调 videoRoomCallback.onAttached
@@ -426,6 +435,9 @@ public class CallSingleActivity extends BaseCallActivity {
     @Override
     protected void onDestroy() {
         Log.d(TAG, "call activity destroyed");
+        if (EventBus.getDefault().isRegistered(this)) {
+            EventBus.getDefault().unregister(this);
+        }
         MediaPlayHelper.getInstance().stopMusic(true);
         RingPlayHelper.stopRingTone();
         SpeechUtil.getInstance().stopSpeak();
@@ -450,4 +462,74 @@ public class CallSingleActivity extends BaseCallActivity {
     public boolean isOutgoing() {
         return isOutgoing;
     }
+
+
+
+    @Override
+    public void didCallEndWithReason(EnumType.CallEndReason var1) {
+
+    }
+
+    @Override
+    public void didChangeState(EnumType.CallState var1) {
+        if (janusClient!=null){
+            janusClient.setCallState(EnumType.CallState.Connected);
+        }
+        EventBus.getDefault().post(new MessageEvent(0,JanusClient.CALLBACK_CONNECTED));
+    }
+
+    @Override
+    public void didChangeMode(boolean isAudioOnly) {
+
+    }
+
+    @Override
+    public void didCreateLocalVideoTrack() {
+        EventBus.getDefault().post(new MessageEvent(0,JanusClient.CALLBACK_ADD_LOCALSTREAM));
+    }
+
+    @Override
+    public void didReceiveRemoteVideoTrack(BigInteger userId) {
+        EventBus.getDefault().post(new MessageEvent(userId, JanusClient.CALLBACK_ADD_REMOTESTREAM));
+    }
+
+    @Override
+    public void didUserLeave(BigInteger userId) {
+        //EventBus.getDefault().post(new MessageEvent(leavingUserId,CALLBACK_LEAVING));
+    }
+
+    @Override
+    public void didError(String error) {
+//        EventBus.getDefault().post(new MessageEvent(0,JanusClient.CALLBACK_ROOM_ERROR));
+    }
+
+    @Override
+    public void didDisconnected(String userId) {
+
+    }
+
+    @Override
+    public void didHangUp(BigInteger handlerId) {
+        EventBus.getDefault().post(new MessageEvent(handlerId,JanusClient.CALLBACK_HANDUP));
+    }
+
+    @Override
+    public void didRoomCreated() {
+
+    }
+
+    @Override
+    public void didIceConnectFail() {
+        EventBus.getDefault().post(new MessageEvent(0,JanusClient.CALLBACK_CONNECTED_TIMEOUT));
+    }
+
+    @Override
+    public void didSlowLink() {
+        EventBus.getDefault().post(new MessageEvent("0",JanusClient.CALLBACK_SLOW_LINK));
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onEvent(MessageEvent messageEvent) {
+
+    }
 }

+ 6 - 5
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/ui/FragmentAudio.java

@@ -154,10 +154,10 @@ public class FragmentAudio extends SingleCallFragment implements View.OnClickLis
             if (interactionVO.getFromDeviceId().equals(Constant.DEVICE_ID)) {
                 if (interactionVO.getToClerkId() == null) {
                     showName = interactionVO.getToFrameFullName() + " " + interactionVO.getToMemberName();
-                    portraitImageView.setImageResource(R.drawable.face_customer);
+//                    portraitImageView.setImageResource(R.drawable.face_customer);
                 } else {
                     showName = interactionVO.getToMemberName();
-                    portraitImageView.setImageResource(R.drawable.face_clerk);
+//                    portraitImageView.setImageResource(R.drawable.face_clerk);
                 }
             }
             //是他人呼入
@@ -165,7 +165,7 @@ public class FragmentAudio extends SingleCallFragment implements View.OnClickLis
                 //是客户
                 if (interactionVO.getFromClerkId() == null) {
                     showName = interactionVO.getFromFrameFullName() /*+ " " + interactionVO.getFromMemberName()*/;
-                    portraitImageView.setImageResource(R.drawable.face_customer);
+//                    portraitImageView.setImageResource(R.drawable.face_customer);
 
                     if (!isOutgoing) {
                         if (SettingConfig.getCallTransfer(BaseApplication.appContext)) {
@@ -182,7 +182,7 @@ public class FragmentAudio extends SingleCallFragment implements View.OnClickLis
                 //是同事
                 else {
                     showName = interactionVO.getFromMemberName();
-                    portraitImageView.setImageResource(R.drawable.face_clerk);
+//                    portraitImageView.setImageResource(R.drawable.face_clerk);
 
                     if (!isOutgoing) {
                         hangupLinearLayout.setVisibility(View.VISIBLE);
@@ -219,7 +219,6 @@ public class FragmentAudio extends SingleCallFragment implements View.OnClickLis
         }
     }
 
-    @Override
     public void didChangeState(EnumType.CallState state) {
         Log.d(TAG, "didChangeState, state = " + state);
         //callSingleActivity.janusClient.setCallState(state);
@@ -229,6 +228,8 @@ public class FragmentAudio extends SingleCallFragment implements View.OnClickLis
         }
     }
 
+
+
     private void showCallConnected() {
         if (callSingleActivity.callConnected) {
             return;

+ 5 - 0
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/ui/FragmentVideo.java

@@ -133,6 +133,7 @@ public class FragmentVideo extends SingleCallFragment implements View.OnClickLis
         }
     }
 
+
     public void didChangeState(EnumType.CallState state) {
         Log.d(TAG, "didChangeState, state = " + state);
         //callSingleActivity.janusClient.setCallState(state);
@@ -153,6 +154,8 @@ public class FragmentVideo extends SingleCallFragment implements View.OnClickLis
         });
     }
 
+
+
     public void didChangeMode(Boolean isAudio) {
         runOnUiThread(() -> callSingleActivity.switchAudio());
     }
@@ -220,6 +223,8 @@ public class FragmentVideo extends SingleCallFragment implements View.OnClickLis
     }
 
 
+
+
     @Override
     public void onClick(View v) {
         int id = v.getId();

+ 201 - 193
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/ui/SingleCallFragment.java

@@ -33,13 +33,15 @@ import com.wdkl.ncs.android.component.home.util.SpeechUtil;
 import com.wdkl.ncs.android.lib.utils.ExtendMethodsKt;
 import com.wdkl.ncs.android.middleware.common.Constant;
 import com.wdkl.ncs.android.lib.base.BaseApplication;
-import com.wdkl.ncs.android.lib.vo.MessageEvent;
+
+import com.wdkl.ncs.android.middleware.common.MessageEvent;
 import com.wdkl.ncs.android.middleware.model.vo.InteractionVO;
 import com.wdkl.ncs.android.middleware.tcp.TcpClient;
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpCallback;
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel;
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction;
 import com.wdkl.ncs.android.component.home.R;
+import com.wdkl.ncs.janus.client.CallSessionCallback;
 import com.wdkl.ncs.janus.client.JanusClient;
 import com.wdkl.ncs.janus.rtc.WebRTCEngine;
 import com.wdkl.ncs.janus.util.EnumType;
@@ -98,7 +100,9 @@ public abstract class SingleCallFragment extends Fragment {
         setRetainInstance(true);
 
         handler = new CallHandler();
-        EventBus.getDefault().register(this);
+        if (!EventBus.getDefault().isRegistered(this)) {
+            EventBus.getDefault().register(this);
+        }
     }
 
     @Nullable
@@ -134,7 +138,9 @@ public abstract class SingleCallFragment extends Fragment {
     @Override
     public void onDestroy() {
         super.onDestroy();
-        EventBus.getDefault().unregister(this);
+        if (EventBus.getDefault().isRegistered(this)) {
+            EventBus.getDefault().unregister(this);
+        }
     }
 
     abstract int getLayout();
@@ -238,7 +244,6 @@ public abstract class SingleCallFragment extends Fragment {
             }
         });
     }
-
     public void didChangeState(EnumType.CallState state) {
 
     }
@@ -249,6 +254,7 @@ public abstract class SingleCallFragment extends Fragment {
     public void didReceiveRemoteVideoTrack(BigInteger userId) {
     }
 
+
     public void startRefreshTime() {
         if (durationTextView != null) {
             leftTime = 0;
@@ -337,193 +343,195 @@ public abstract class SingleCallFragment extends Fragment {
 
     private int reJoinCount = 0;
 
-//    @Subscribe(threadMode = ThreadMode.MAIN)
-//    public void onEvent(MessageEvent messageEvent) {
-//        int code = messageEvent.getTag();
-//        if (code == JanusClient.CALLBACK_ADD_LOCALSTREAM) {
-//            runOnUiThread(new Runnable() {
-//                @Override
-//                public void run() {
-//                    callSingleActivity.getCurrentFragment().didCreateLocalVideoTrack();
-//                }
-//            });
-//        } else if (code == JanusClient.CALLBACK_ADD_REMOTESTREAM) {
-//            BigInteger remoteUserId = (BigInteger) messageEvent.getMessage();
-//            runOnUiThread(new Runnable() {
-//                @Override
-//                public void run() {
-//                    callSingleActivity.getCurrentFragment().didReceiveRemoteVideoTrack(remoteUserId);
-//                }
-//            });
-//        } else if (code == JanusClient.CALLBACK_HANDUP) {
-//            if (isHandoff) {
-//                return;
-//            }
-//            BigInteger handleId = (BigInteger)messageEvent.getMessage();
-//            if (!handleId.equals(callSingleActivity.janusClient.getCurrentHandleId())){
-//                runOnUiThread(new Runnable() {
-//                    @Override
-//                    public void run() {
-//                        Toast.makeText(SingleCallFragment.this.getContext(),R.string.call_end,Toast.LENGTH_SHORT).show();
-//                    }
-//                });
-//            }
-//
-//            handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
-//        } else if (code == JanusClient.CALLBACK_ROOM_ERROR) {
-//            runOnUiThread(new Runnable() {
-//                @Override
-//                public void run() {
-//                    Toast.makeText(SingleCallFragment.this.getContext(), "Room error", Toast.LENGTH_SHORT).show();
-//                }
-//            });
-//
-//            handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
-//        } else if (code == JanusClient.CALLBACK_CONNECTED) {
-//            //通话连接建立,停止铃声
-//            MediaPlayHelper.getInstance().stopMusic(true);
-//            RingPlayHelper.stopRingTone();
-//            SpeechUtil.getInstance().stopSpeak();
-//            didChangeState(EnumType.CallState.Connected);
-//        } else if (code == JanusClient.CALLBACK_CONNECTED_TIMEOUT) {
-//            runOnUiThread(new Runnable() {
-//                @Override
-//                public void run() {
-//                    Toast.makeText(SingleCallFragment.this.getContext(), "Connect timeout", Toast.LENGTH_SHORT).show();
-//                }
-//            });
-//
-//            handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
-//        } else if (code == JanusClient.CALLBACK_LEAVING) {
-//            if (isHandoff) {
-//                return;
-//            }
-//            if (isOutgoing){
-//                handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
-//            } else {
-//                if (reJoinCount>=3){
-//                    runOnUiThread(new Runnable() {
-//                        @Override
-//                        public void run() {
-//                            Toast.makeText(SingleCallFragment.this.getContext(), "Connect timeout", Toast.LENGTH_SHORT).show();
-//                        }
-//                    });
-//
-//                    handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
-//                } else {
-//                    //未收到挂断或主动挂断 重新进入
-//                    callSingleActivity.janusClient.connect();
-//                    reJoinCount++;
-//                }
-//            }
-//            //BigInteger remoteUserId = (BigInteger)messageEvent.getMessage();
-//
-//        } else if (code == JanusClient.CALLBACK_REMOTE_QUIT) {
-//            if (isHandoff) {
-//                return;
-//            }
-//            //BigInteger remoteUserId = (BigInteger)messageEvent.getMessage();
-//            runOnUiThread(new Runnable() {
-//                @Override
-//                public void run() {
-//                    Toast.makeText(SingleCallFragment.this.getContext(), R.string.call_end, Toast.LENGTH_SHORT).show();
-//                }
-//            });
-//
-//            handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
-//        }
-//        else if (code == JanusClient.CALLBACK_SLOW_LINK){
-//            runOnUiThread(new Runnable() {
-//                @Override
-//                public void run() {
-//                    Toast.makeText(SingleCallFragment.this.getContext(), R.string.net_error, Toast.LENGTH_SHORT).show();
-//                }
-//            });
-//        }
-//        //TCP处理
-//        else if (code == 2) {
-//
-//            TcpModel tcpModel = (TcpModel) messageEvent.getMessage();
-//            Log.i(TAG, "收到数据222: " + tcpModel.toJson());
-//            int curInteractionId = -1;
-//            if (tcpModel.getData() != null) {
-//                InteractionVO interactionVO = new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
-//                curInteractionId = interactionVO.getId();
-//            }
-//
-//            if (tcpModel.getAction() == TcpAction.VoiceAction.ACCEPT) {
-//                if (curInteractionId == Constant.interactionId) {
-//                    MediaPlayHelper.getInstance().stopMusic(true);
-//                    RingPlayHelper.stopRingTone();
-//                    SpeechUtil.getInstance().stopSpeak();
-//                    callSingleActivity.recTcpModel = tcpModel;
-//                    Log.d(TAG, "voice#success =>" + callSingleActivity.recTcpModel.toJson());
-//                    Log.i(TAG, "对方接听电话啦");
-//                }
-//            } else if (tcpModel.getAction() == TcpAction.VoiceAction.HANDOFF) { //对方挂断
-//                if (curInteractionId == Constant.interactionId) {
-//                    isHandoff = true;
-//                    callSingleActivity.janusClient.disConnect();
-//                    runOnUiThread(new Runnable() {
-//                        @Override
-//                        public void run() {
-//                            Toast.makeText(SingleCallFragment.this.getContext(), R.string.call_end, Toast.LENGTH_SHORT).show();
-//                        }
-//                    });
-//
-//                    handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
-//                }
-//            } else if (tcpModel.getAction() == TcpAction.VoiceAction.REJECT) {
-//                if (curInteractionId == Constant.interactionId) {
-//                    handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
-//
-//                    runOnUiThread(new Runnable() {
-//                        @Override
-//                        public void run() {
-//                            Toast.makeText(SingleCallFragment.this.getContext(), R.string.call_reject, Toast.LENGTH_SHORT).show();
-//                        }
-//                    });
-//                }
-//            } else if (tcpModel.getAction() == TcpAction.VoiceAction.CALLING) {
-//                if (curInteractionId == Constant.interactionId) {
-//                    handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
-//                    runOnUiThread(new Runnable() {
-//                        @Override
-//                        public void run() {
-//                            Toast.makeText(SingleCallFragment.this.getContext(), R.string.call_busy, Toast.LENGTH_SHORT).show();
-//                        }
-//                    });
-//                }
-//            } else if (tcpModel.getAction() == TcpAction.VoiceAction.FAILED) {
-//                //if (curInteractionId == interactionId) {
-//                    handler.sendEmptyMessageDelayed(FINISH_CURRENT, 1000);
-//                    runOnUiThread(new Runnable() {
-//                        @Override
-//                        public void run() {
-//                            Toast.makeText(SingleCallFragment.this.getContext(), R.string.call_failed, Toast.LENGTH_SHORT).show();
-//                        }
-//                    });
-//                //}
-//            } else if (tcpModel.getAction() == TcpAction.VoiceAction.CANCEL || tcpModel.getAction() == TcpAction.VoiceAction.VOICE_OFF) {
-//                if (curInteractionId == Constant.interactionId) {
-//                    handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
-//                    runOnUiThread(new Runnable() {
-//                        @Override
-//                        public void run() {
-//                            Toast.makeText(SingleCallFragment.this.getContext(), R.string.str_cancel, Toast.LENGTH_SHORT).show();
-//                        }
-//                    });
-//                }
-//            }
-//        } else if (code == 1) {
-//            TcpModel tcpModel = (TcpModel) messageEvent.getMessage();
-//            Log.i(TAG, "收到数据111: " + tcpModel.toJson());
-//            if (isOutgoing && tcpModel.getAction() == TcpAction.VoiceAction.SUCCESS){ //服务器返回成功
-//                callOutSuccess(tcpModel);
-//            }
-//        } else if (code == Constant.EVENT_HEADSET_HOOK) {
-//            //收到耳机按键
-//            handleHeadsetHook();
-//        }
-//    }
+
+
+    //webrtc逻辑需要全部整理过
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void onEvent(MessageEvent messageEvent) {
+        int code = messageEvent.getType();
+        if (code == JanusClient.CALLBACK_ADD_LOCALSTREAM) {
+            runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    callSingleActivity.getCurrentFragment().didCreateLocalVideoTrack();
+                }
+            });
+        } else if (code == JanusClient.CALLBACK_ADD_REMOTESTREAM) {
+            BigInteger remoteUserId = (BigInteger) messageEvent.getMessage();
+            runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    callSingleActivity.getCurrentFragment().didReceiveRemoteVideoTrack(remoteUserId);
+                }
+            });
+        } else if (code == JanusClient.CALLBACK_HANDUP) {
+            if (isHandoff) {
+                return;
+            }
+            BigInteger handleId = (BigInteger)messageEvent.getMessage();
+            if (!handleId.equals(callSingleActivity.janusClient.getCurrentHandleId())){
+                runOnUiThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        Toast.makeText(SingleCallFragment.this.getContext(),R.string.call_end,Toast.LENGTH_SHORT).show();
+                    }
+                });
+            }
+
+            handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
+        } else if (code == JanusClient.CALLBACK_ROOM_ERROR) {
+            runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    Toast.makeText(SingleCallFragment.this.getContext(), "Room error", Toast.LENGTH_SHORT).show();
+                }
+            });
+
+            handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
+        } else if (code == JanusClient.CALLBACK_CONNECTED) {
+            //通话连接建立,停止铃声
+            MediaPlayHelper.getInstance().stopMusic(true);
+            RingPlayHelper.stopRingTone();
+            SpeechUtil.getInstance().stopSpeak();
+            didChangeState(EnumType.CallState.Connected);
+        } else if (code == JanusClient.CALLBACK_CONNECTED_TIMEOUT) {
+            runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    Toast.makeText(SingleCallFragment.this.getContext(), "Connect timeout", Toast.LENGTH_SHORT).show();
+                }
+            });
+
+            handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
+        } else if (code == JanusClient.CALLBACK_LEAVING) {
+            if (isHandoff) {
+                return;
+            }
+            if (isOutgoing){
+                handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
+            } else {
+                if (reJoinCount>=3){
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            Toast.makeText(SingleCallFragment.this.getContext(), "Connect timeout", Toast.LENGTH_SHORT).show();
+                        }
+                    });
+
+                    handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
+                } else {
+                    //未收到挂断或主动挂断 重新进入
+                    callSingleActivity.janusClient.connect(-1,false);
+                    reJoinCount++;
+                }
+            }
+            //BigInteger remoteUserId = (BigInteger)messageEvent.getMessage();
+
+        } else if (code == JanusClient.CALLBACK_REMOTE_QUIT) {
+            if (isHandoff) {
+                return;
+            }
+            //BigInteger remoteUserId = (BigInteger)messageEvent.getMessage();
+            runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    Toast.makeText(SingleCallFragment.this.getContext(), R.string.call_end, Toast.LENGTH_SHORT).show();
+                }
+            });
+
+            handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
+        }
+        else if (code == JanusClient.CALLBACK_SLOW_LINK){
+            runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    Toast.makeText(SingleCallFragment.this.getContext(), R.string.net_error, Toast.LENGTH_SHORT).show();
+                }
+            });
+        }
+        //TCP处理
+       if (code == 2) {
+            TcpModel tcpModel = (TcpModel) messageEvent.getMessage();
+            Log.i(TAG, "收到数据222: " + tcpModel.toJson());
+            int curInteractionId = -1;
+            if (tcpModel.getData() != null) {
+                InteractionVO interactionVO = new Gson().fromJson(tcpModel.getData().toString(), InteractionVO.class);
+                curInteractionId = interactionVO.getId();
+            }
+
+            if (tcpModel.getAction() == TcpAction.VoiceAction.ACCEPT) {
+                if (curInteractionId == Constant.interactionId) {
+                    MediaPlayHelper.getInstance().stopMusic(true);
+                    RingPlayHelper.stopRingTone();
+                    SpeechUtil.getInstance().stopSpeak();
+                    callSingleActivity.recTcpModel = tcpModel;
+                    Log.d(TAG, "voice#success =>" + callSingleActivity.recTcpModel.toJson());
+                    Log.i(TAG, "对方接听电话啦");
+                }
+            } else if (tcpModel.getAction() == TcpAction.VoiceAction.HANDOFF) { //对方挂断
+                if (curInteractionId == Constant.interactionId) {
+                    isHandoff = true;
+                    callSingleActivity.janusClient.disConnect();
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            Toast.makeText(SingleCallFragment.this.getContext(), R.string.call_end, Toast.LENGTH_SHORT).show();
+                        }
+                    });
+
+                    handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
+                }
+            } else if (tcpModel.getAction() == TcpAction.VoiceAction.REJECT) {
+                if (curInteractionId == Constant.interactionId) {
+                    handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
+
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            Toast.makeText(SingleCallFragment.this.getContext(), R.string.call_reject, Toast.LENGTH_SHORT).show();
+                        }
+                    });
+                }
+            } else if (tcpModel.getAction() == TcpAction.VoiceAction.CALLING) {
+                if (curInteractionId == Constant.interactionId) {
+                    handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            Toast.makeText(SingleCallFragment.this.getContext(), R.string.call_busy, Toast.LENGTH_SHORT).show();
+                        }
+                    });
+                }
+            } else if (tcpModel.getAction() == TcpAction.VoiceAction.FAILED) {
+                //if (curInteractionId == interactionId) {
+                    handler.sendEmptyMessageDelayed(FINISH_CURRENT, 1000);
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            Toast.makeText(SingleCallFragment.this.getContext(), R.string.call_failed, Toast.LENGTH_SHORT).show();
+                        }
+                    });
+                //}
+            } else if (tcpModel.getAction() == TcpAction.VoiceAction.CANCEL || tcpModel.getAction() == TcpAction.VoiceAction.VOICE_OFF) {
+                if (curInteractionId == Constant.interactionId) {
+                    handler.sendEmptyMessageDelayed(FINISH_CURRENT, 100);
+                    runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                            Toast.makeText(SingleCallFragment.this.getContext(), R.string.str_cancel, Toast.LENGTH_SHORT).show();
+                        }
+                    });
+                }
+            }
+        } else if (code == 1) {
+            TcpModel tcpModel = (TcpModel) messageEvent.getMessage();
+            Log.i(TAG, "收到数据111: " + tcpModel.toJson());
+            if (isOutgoing && tcpModel.getAction() == TcpAction.VoiceAction.SUCCESS){ //服务器返回成功
+                callOutSuccess(tcpModel);
+            }
+        } else if (code == Constant.EVENT_HEADSET_HOOK) {
+            //收到耳机按键
+            handleHeadsetHook();
+        }
+    }
 }

+ 1 - 1
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/util/ImPlayDialogHelper.java

@@ -61,7 +61,7 @@ public class ImPlayDialogHelper {
             window.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
             imPlayDialog.show();
             WindowManager.LayoutParams lp = window.getAttributes();
-            lp.width = WindowManager.LayoutParams.MATCH_PARENT;
+            lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
             lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
             lp.gravity = Gravity.CENTER;
             //lp.alpha = 0.8f;//设置透明度

+ 1 - 1
android_mobile/src/main/java/com/wdkl/ncs/android/component/home/util/MediaPlayHelper.java

@@ -13,7 +13,7 @@ import android.view.KeyEvent;
 
 import com.wdkl.ncs.android.middleware.common.Constant;
 import com.wdkl.ncs.android.lib.base.BaseApplication;
-import com.wdkl.ncs.android.lib.vo.MessageEvent;
+import com.wdkl.ncs.android.middleware.common.MessageEvent;
 import com.wdkl.ncs.janus.rtc.AudioFocusManager;
 
 

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

@@ -11,6 +11,8 @@ import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 
 import com.wdkl.ncs.android.lib.base.BaseApplication;
+import com.wdkl.ncs.android.lib.utils.EthernetUtils;
+import com.wdkl.ncs.android.lib.utils.NetParam;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -141,7 +143,22 @@ public class NetHelper {
             return "192.168.101.1";
         }
     }
+    public static NetParam getNetInfo(Context context) {
+        try {
+            int type = EthernetUtils.getEthUseDhcpOrStaticIp(context);
+            if ( type == 1) {
+                //静态ip
+                return EthernetUtils.getEthInfoFromStaticIp(context);
+            } else if (type == 2){
+                //动态IP
+                return EthernetUtils.getEthInfoFromDhcp(context);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
 
+        return null;
+    }
 
     /**
      * 有线网络下的DHCP模式连接

+ 1 - 2
android_mobile/src/main/res/drawable/shape_main_age_bg.xml

@@ -2,8 +2,7 @@
 <shape xmlns:android="http://schemas.android.com/apk/res/android">
 
        <solid
-           android:color="#4D86EE"
+           android:color="#1AFFFFFF"
            />
-       <stroke android:width="2dp" android:color="#F2F2F2" />
        <corners android:radius="@dimen/d18" />
 </shape>

+ 10 - 0
android_mobile/src/main/res/drawable/shape_main_bottom_bg.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+       <solid
+           android:color="#FBFBFB"
+           />
+       <corners android:topLeftRadius="@dimen/d50"
+           android:topRightRadius="@dimen/d50"
+           />
+</shape>

+ 9 - 0
android_mobile/src/main/res/drawable/shape_main_setting_bg.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+       <solid
+           android:color="#FFFFFF"
+           />
+       <stroke android:width="2dp" android:color="#F2F2F2" />
+       <corners android:radius="@dimen/d18" />
+</shape>

+ 8 - 0
android_mobile/src/main/res/drawable/shape_take_item_age_bg.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+       <solid
+           android:color="#8BB4FF"
+           />
+       <corners android:radius="@dimen/d18" />
+</shape>

+ 8 - 0
android_mobile/src/main/res/drawable/shape_take_item_age_bg2.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+       <solid
+           android:color="#F7A29F"
+           />
+       <corners android:radius="@dimen/d18" />
+</shape>

+ 8 - 0
android_mobile/src/main/res/drawable/shape_take_item_type_bg.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+       <solid
+           android:color="#3BB44B"
+           />
+       <corners android:radius="@dimen/d18" />
+</shape>

+ 53 - 27
android_mobile/src/main/res/layout/activity_channel_im_list.xml

@@ -3,17 +3,56 @@
     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:background="#FFBDC3">
-        <TextView
-            android:id="@+id/tv_empty_channel_im"
-            android:textAlignment="center"
-            android:layout_marginTop="50dp"
-            android:textSize="20sp"
-            android:visibility="gone"
-            android:textColor="@color/warn_orange"
-            android:text="@string/data_empty"
+        android:background="#3978EC">
+
+        <include
+            android:id="@+id/take_over_title_layout"
+            layout="@layout/view_title_layout"
+            />
+
+        <LinearLayout
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"/>
+            android:layout_height="match_parent"
+            android:layout_below="@+id/take_over_title_layout"
+            android:orientation="vertical"
+            android:layout_marginTop="@dimen/d40"
+            android:layout_above="@+id/ll_channel_msg"
+            android:background="@drawable/shape_main_bottom_bg"
+            >
+            <TextView
+                android:id="@+id/tv_empty_channel_im"
+                android:textAlignment="center"
+                android:layout_marginTop="50dp"
+                android:layout_below="@id/search_view"
+                android:textSize="20sp"
+                android:visibility="gone"
+                android:textColor="@color/warn_orange"
+                android:text="@string/data_empty"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+
+            <com.scwang.smartrefresh.layout.SmartRefreshLayout
+                android:id="@+id/srl_channel_im_list"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:layout_marginTop="@dimen/d30"
+                android:layout_marginLeft="@dimen/d20"
+                android:layout_marginRight="@dimen/d20"
+                android:layout_marginBottom="@dimen/d20"
+                bind:srlEnableLoadMore="false"
+                bind:srlEnableRefresh="true">
+
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/rv_channel_im_list"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    />
+
+            </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+
+        </LinearLayout>
+
+
 
         <LinearLayout
             android:id="@+id/ll_channel_msg"
@@ -23,7 +62,9 @@
             android:gravity="center_horizontal"
             android:paddingTop="8dp"
             android:background="@color/color_white"
-            android:orientation="vertical">
+            android:orientation="vertical"
+
+            >
 
             <Button
                 android:id="@+id/btn_channel_msg"
@@ -43,22 +84,7 @@
         </LinearLayout>
 
 
-        <com.scwang.smartrefresh.layout.SmartRefreshLayout
-            android:id="@+id/srl_channel_im_list"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_above="@id/ll_channel_msg"
-            android:layout_marginBottom="10dp"
-            android:layout_marginLeft="4dp"
-            android:layout_marginRight="4dp"
-            bind:srlEnableLoadMore="true"
-            bind:srlEnableRefresh="true">
-            <androidx.recyclerview.widget.RecyclerView
-                android:id="@+id/rv_channel_im_list"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:background="#FFBDC3"/>
-        </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+
 
     </RelativeLayout>
 </layout>

+ 44 - 21
android_mobile/src/main/res/layout/activity_event_list.xml

@@ -4,31 +4,54 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:fitsSystemWindows="true"
-        android:background="#FFBDC3">
-        <TextView
-            android:id="@+id/tv_empty_event"
-            android:textAlignment="center"
-            android:layout_marginTop="50dp"
-            android:textSize="20sp"
-            android:textColor="@color/warn_orange"
-            android:text="@string/data_empty"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"/>
+        android:background="#3978EC">
+
+        <include
+            android:id="@+id/activity_event_title_layout"
+            layout="@layout/view_title_layout"
+            />
 
-        <com.scwang.smartrefresh.layout.SmartRefreshLayout
-            android:id="@+id/srl_event_list"
+        <LinearLayout
+            android:id="@+id/watch_call_records_type_ll"
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_marginLeft="3sp"
-            android:layout_marginRight="3sp"
-            bind:srlEnableLoadMore="false"
-            bind:srlEnableRefresh="false">
-            <androidx.recyclerview.widget.RecyclerView
-                android:id="@+id/rv_event_list"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/d10"
+            android:orientation="vertical"
+            android:layout_below="@+id/activity_event_title_layout"
+            >
+
+            <TextView
+                android:id="@+id/tv_empty_event"
+                android:textAlignment="center"
+                android:layout_marginTop="50dp"
+                android:textSize="20sp"
+                android:textColor="@color/warn_orange"
+                android:text="@string/data_empty"
+                android:layout_width="match_parent"
+                android:visibility="gone"
+                android:layout_height="wrap_content"/>
+
+            <com.scwang.smartrefresh.layout.SmartRefreshLayout
+                android:id="@+id/srl_event_list"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
-                android:background="#FFBDC3"/>
-        </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+                android:layout_margin="@dimen/d20"
+                bind:srlEnableLoadMore="false"
+                bind:srlEnableRefresh="false">
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/rv_event_list"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    />
+            </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+
+        </LinearLayout>
+
+
+
+
+
+
 
     </RelativeLayout>
 </layout>

+ 52 - 64
android_mobile/src/main/res/layout/activity_takeover.xml

@@ -4,81 +4,69 @@
         xmlns:app="http://schemas.android.com/apk/res-auto"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:background="#FFBDC3">
+        android:background="#3978EC">
 
-        <androidx.appcompat.widget.SearchView
-            android:id="@+id/search_view"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            app:iconifiedByDefault="false"
-            app:queryHint="@string/str_search" />
-
-        <TextView
-            android:id="@+id/tv_empty_takeover"
-            android:textAlignment="center"
-            android:layout_marginTop="50dp"
-            android:layout_below="@id/search_view"
-            android:textSize="20sp"
-            android:visibility="gone"
-            android:textColor="@color/warn_orange"
-            android:text="@string/data_empty"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"/>
+        <include
+            android:id="@+id/take_over_title_layout"
+            layout="@layout/view_title_layout"
+            />
 
         <LinearLayout
-            android:id="@+id/ll_group_msg"
             android:layout_width="match_parent"
-            android:layout_height="88dp"
-            android:layout_alignParentBottom="true"
-            android:paddingTop="6dp"
-            android:paddingBottom="6dp"
-            android:background="@color/color_white"
-            android:visibility="gone">
+            android:layout_height="match_parent"
+            android:layout_below="@+id/take_over_title_layout"
+            android:orientation="vertical"
+            android:layout_marginTop="@dimen/d40"
+            android:background="@drawable/shape_main_bottom_bg"
+            >
             <TextView
-                android:id="@+id/tv_group_msg"
-                android:layout_width="0dp"
+                android:id="@+id/tv_empty_takeover"
+                android:textAlignment="center"
+                android:layout_marginTop="50dp"
+                android:layout_below="@id/search_view"
+                android:textSize="20sp"
+                android:visibility="gone"
+                android:textColor="@color/warn_orange"
+                android:text="@string/data_empty"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+
+            <com.scwang.smartrefresh.layout.SmartRefreshLayout
+                android:id="@+id/take_over_refresh"
+                android:layout_width="match_parent"
                 android:layout_height="match_parent"
-                android:layout_weight="1"
-                android:gravity="center"
-                android:text="群组留言"
-                android:textSize="16sp"
-                android:textColor="@color/color_gray2"/>
+                android:layout_marginTop="@dimen/d30"
+                android:layout_marginLeft="@dimen/d20"
+                android:layout_marginRight="@dimen/d20"
+                android:layout_marginBottom="@dimen/d20"
+                bind:srlEnableLoadMore="false"
+                bind:srlEnableRefresh="true">
 
-            <Button
-                android:id="@+id/btn_group_msg"
-                android:layout_width="68dp"
-                android:layout_height="68dp"
-                android:layout_marginBottom="6dp"
-                android:background="@drawable/selector_record_btn"/>
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/takeover_list"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                   />
+
+            </com.scwang.smartrefresh.layout.SmartRefreshLayout>
 
-            <TextView
-                android:id="@+id/tv_group_msg_history"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="1"
-                android:gravity="center"
-                android:text="历史留言"
-                android:textSize="16sp"
-                android:textColor="@color/color_gray2"/>
         </LinearLayout>
 
-        <com.scwang.smartrefresh.layout.SmartRefreshLayout
-            android:id="@+id/take_over_refresh"
+
+
+
+
+        <androidx.appcompat.widget.SearchView
+            android:id="@+id/search_view"
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:layout_below="@id/search_view"
-            android:layout_above="@id/ll_group_msg"
-            android:layout_marginBottom="10dp"
-            android:layout_marginLeft="4dp"
-            android:layout_marginRight="4dp"
-            bind:srlEnableLoadMore="false"
-            bind:srlEnableRefresh="true">
+            android:layout_height="wrap_content"
+            app:iconifiedByDefault="false"
+            app:queryHint="@string/str_search"
+            android:visibility="gone"
+            />
+
 
-            <androidx.recyclerview.widget.RecyclerView
-                android:id="@+id/takeover_list"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:background="#FFBDC3"/>
-        </com.scwang.smartrefresh.layout.SmartRefreshLayout>
     </RelativeLayout>
+
+
 </layout>

+ 94 - 0
android_mobile/src/main/res/layout/adapter_call_records_item.xml

@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout>
+
+    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="150dp"
+        android:background="@color/white"
+        android:layout_marginTop="10dp">
+<!--        android:background="#FFF8F9"-->
+
+        <ImageView
+            android:id="@+id/tab_imagev"
+            android:layout_width="@dimen/d80"
+            android:layout_height="@dimen/d80"
+            android:layout_marginLeft="@dimen/d11"
+            android:layout_centerVertical="true"
+            android:src="@mipmap/huchu"  />
+        <TextView
+            android:id="@+id/call_records_item_title"
+            android:layout_width="wrap_content"
+            android:layout_toRightOf="@+id/tab_imagev"
+            android:layout_alignTop="@+id/tab_imagev"
+            android:layout_height="wrap_content"
+            android:text="输液-事件呼叫"
+            android:textStyle="bold"
+            android:textColor="@color/black"
+            android:textSize="@dimen/font_size_24"
+            android:layout_marginLeft="@dimen/d20"
+            />
+
+        <TextView
+            android:id="@+id/call_records_item_time"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_toRightOf="@+id/tab_imagev"
+            android:layout_alignBottom="@+id/tab_imagev"
+
+            android:text="2023/05/04 14:04"
+            android:textColor="@color/about_text_color"
+            android:textSize="@dimen/font_size_18"
+            android:layout_marginLeft="@dimen/d20"
+            />
+
+        <TextView
+            android:id="@+id/call_records_item_type"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="已响应"
+            android:layout_alignTop="@+id/tab_imagev"
+            android:textColor="@color/about_text_color"
+            android:textSize="@dimen/font_size_20"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="@dimen/d10"
+            />
+
+        <TextView
+        android:id="@+id/call_records_item_call"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="已响应"
+        android:layout_below="@+id/call_records_item_type"
+        android:textColor="@color/white"
+        android:textSize="@dimen/font_size_9"
+        android:padding="@dimen/d5"
+        android:clickable="true"
+        android:layout_marginTop="@dimen/d4"
+        android:layout_alignParentRight="true"
+        android:layout_marginRight="@dimen/d10"
+        />
+
+        <TextView
+            android:id="@+id/call_records_item_play"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/call_records_item_type"
+            android:layout_alignBottom="@+id/tab_imagev"
+            android:layout_marginTop="@dimen/d10"
+            android:layout_marginRight="@dimen/d10"
+            android:paddingTop="@dimen/d10"
+            android:paddingBottom="@dimen/d10"
+            android:paddingLeft="@dimen/d20"
+            android:paddingRight="@dimen/d20"
+            android:textSize="@dimen/font_size_18"
+            android:textColor="@color/white"
+            android:text="播放"
+            android:drawableLeft="@mipmap/im_bo"
+            android:drawablePadding="@dimen/d5"
+            android:clickable="true"
+            android:visibility="gone"
+            android:layout_alignParentRight="true"
+            android:background="@drawable/shape_main_hos_txt_bg"
+            />
+    </RelativeLayout>
+</layout>

+ 65 - 49
android_mobile/src/main/res/layout/adapter_channel_im_records_item.xml

@@ -1,65 +1,81 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android">
-
-    <LinearLayout
+    <RelativeLayout
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="5dp"
-        android:background="@color/color_white"
-        android:gravity="center_vertical"
-        android:orientation="vertical"
-        android:paddingBottom="5dp">
+        android:layout_height="200dp"
+        android:layout_marginBottom="@dimen/d30"
+        android:background="@drawable/shape_bed_bg"
+        android:orientation="horizontal">
+
+
+        <ImageView
+            android:id="@+id/im_sickbed_item_tx_img"
+            android:layout_width="@dimen/d100"
+            android:layout_height="@dimen/d100"
+            android:src="@mipmap/mian_ts"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="@dimen/d10"
+            />
 
         <LinearLayout
-            android:layout_width="match_parent"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:orientation="horizontal">
-
+            android:layout_toRightOf="@+id/im_sickbed_item_tx_img"
+            android:layout_marginLeft="@dimen/d30"
+            android:layout_centerVertical="true"
+            android:orientation="vertical"
+            >
             <TextView
-                android:id="@+id/im_sickbed_tv"
+                android:id="@+id/im_sickbed_item_name"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginStart="10dp"
-                android:layout_marginTop="5dp"
-                android:text=""
-                android:textSize="18sp" />
+                android:textSize="@dimen/font_size_35"
+                android:textColor="@color/black"
+                android:textStyle="bold"
+                android:text="张晓芬"
+                />
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/d10"
+                >
+                <TextView
+                    android:id="@+id/im_sickbed_item_time"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingTop="@dimen/d5"
+                    android:paddingBottom="@dimen/d5"
+                    android:paddingLeft="@dimen/d10"
+                    android:paddingRight="@dimen/d10"
+                    android:textSize="@dimen/font_size_18"
+                    android:textColor="@color/text_black"
+                    android:text="2023/06/03 17:32 发送"
+                    />
+
+            </LinearLayout>
 
         </LinearLayout>
 
-        <LinearLayout
-            android:layout_width="match_parent"
+        <TextView
+            android:id="@+id/im_sickbed_item_play"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginTop="6dp"
-            android:layout_marginEnd="5dp"
-            android:gravity="right"
-            android:orientation="horizontal">
-
-            <TextView
-                android:id="@+id/im_call_time_tv"
-                android:layout_width="0dp"
-                android:layout_height="match_parent"
-                android:layout_weight="1"
-                android:layout_gravity="center_vertical"
-                android:layout_marginStart="10dp"
-                android:text=""
-                android:textSize="14sp" />
+            android:layout_marginRight="@dimen/d10"
+            android:paddingTop="@dimen/d10"
+            android:paddingBottom="@dimen/d10"
+            android:paddingLeft="@dimen/d20"
+            android:paddingRight="@dimen/d20"
+            android:textSize="@dimen/font_size_18"
+            android:textColor="@color/white"
+            android:text="播放"
+            android:drawableLeft="@mipmap/im_bo"
+            android:drawablePadding="@dimen/d5"
+            android:clickable="true"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:background="@drawable/shape_main_hos_txt_bg"
+            />
 
-            <ImageView
-                android:id="@+id/im_treatment_state_imagev"
-                android:layout_width="30dp"
-                android:layout_height="30dp"
-                android:src="@drawable/checked_100"
-                android:visibility="gone"/>
-
-            <ImageView
-                android:id="@+id/im_play_tv"
-                android:layout_width="30dp"
-                android:layout_height="30dp"
-                android:layout_marginStart="15dp"
-                android:layout_marginEnd="10dp"
-                android:src="@drawable/wei_bo_fang" />
-
-        </LinearLayout>
-    </LinearLayout>
+    </RelativeLayout>
 
 </layout>

+ 122 - 53
android_mobile/src/main/res/layout/adapter_watch_contacts_item.xml

@@ -1,70 +1,139 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout>
-
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
     <RelativeLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
-        android:layout_height="60dp"
-        android:layout_marginTop="4dp"
-        android:background="#FFFFFF">
-
-        <RelativeLayout
-            android:id="@+id/item_relayout"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="@drawable/item_selector">
+        android:layout_height="200dp"
+        android:layout_marginBottom="@dimen/d30"
+        android:background="@drawable/shape_bed_bg"
+        android:orientation="horizontal">
 
+        <LinearLayout
+            android:id="@+id/adapter_contacts_item_tx_img"
+            android:layout_width="@dimen/d180"
+            android:layout_height="@dimen/d180"
+            android:orientation="vertical"
+            android:gravity="center"
+            android:layout_centerVertical="true"
+            android:background="@mipmap/chuanghao_bg"
+            >
             <TextView
-                android:id="@+id/room_number_tv"
+                android:id="@+id/adapter_contacts_item_room"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_centerVertical="true"
-                android:layout_marginLeft="5dp"
-                android:text="--"
-                android:textColor="@color/header"
-                android:textSize="12dp" />
-
+                android:textSize="@dimen/font_size_35"
+                android:textColor="@color/white"
+                android:textStyle="bold"
+                android:text="066房"
+                />
             <TextView
-                android:id="@+id/name_tv"
+                android:id="@+id/adapter_contacts_item_bed"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_centerVertical="true"
-                android:layout_marginLeft="5dp"
-                android:layout_toRightOf="@+id/room_number_tv"
-                android:text="--"
-                android:textColor="#F78B8F"
-                android:textSize="16dp" />
+                android:textSize="@dimen/font_size_35"
+                android:textColor="@color/white"
+                android:textStyle="bold"
+                android:text="066床"
+                />
 
-            <ImageView
-                android:id="@+id/awci_voice_recorder"
-                android:src="@drawable/voice_recorder"
-                android:layout_toLeftOf="@+id/awci_btn_call_out"
-                android:layout_marginEnd="10dp"
-                android:layout_centerVertical="true"
-                android:layout_width="32dp"
-                android:layout_height="22dp"/>
-            <Button
-                android:id="@+id/awci_btn_call_out"
-                android:layout_marginRight="10dp"
-                android:layout_toLeftOf="@+id/right_arrow"
-                android:textSize="12sp"
-                android:layout_centerVertical="true"
-                android:textColor="@color/grgray"
-                android:layout_width="50dp"
-                android:layout_height="22dp"
-                android:background="@drawable/javashop_btn_balck_line_bg"
-                android:text="@string/str_call"
-                android:singleLine="true"/>
+        </LinearLayout>
 
-            <ImageView
-                android:id="@+id/right_arrow"
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_toRightOf="@+id/adapter_contacts_item_tx_img"
+            android:layout_marginLeft="@dimen/d30"
+            android:layout_centerVertical="true"
+            android:orientation="vertical"
+            >
+            <TextView
+                android:id="@+id/adapter_contacts_item_name"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="@dimen/font_size_35"
+                android:textColor="@color/black"
+                android:textStyle="bold"
+                android:text="张晓芬"
+                />
+            <LinearLayout
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_alignParentRight="true"
-                android:layout_centerVertical="true"
-                android:layout_marginRight="6dp"
-                android:src="@drawable/zhe_die" />
+                android:layout_marginTop="@dimen/d10"
+                >
+                <TextView
+                    android:id="@+id/adapter_contacts_item_job"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingTop="@dimen/d5"
+                    android:paddingBottom="@dimen/d5"
+                    android:paddingLeft="@dimen/d10"
+                    android:paddingRight="@dimen/d10"
+                    android:background="@drawable/shape_take_item_type_bg"
+                    android:textSize="@dimen/font_size_18"
+                    android:textColor="@color/white"
+                    android:visibility="gone"
+                    android:text="护士"
+                    />
+                <TextView
+                    android:id="@+id/adapter_contacts_item_age"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingTop="@dimen/d5"
+                    android:paddingBottom="@dimen/d5"
+                    android:paddingLeft="@dimen/d10"
+                    android:paddingRight="@dimen/d10"
+                    android:background="@drawable/shape_take_item_age_bg"
+                    android:textSize="@dimen/font_size_18"
+                    android:textColor="@color/white"
+                    android:text="男"
+                    android:visibility="gone"
+                    android:layout_marginLeft="@dimen/d18"
+                    />
+
+            </LinearLayout>
+
+        </LinearLayout>
+
+        <TextView
+            android:id="@+id/adapter_contacts_item_ly"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_toLeftOf="@+id/adapter_contacts_item_call"
+            android:paddingTop="@dimen/d10"
+            android:paddingBottom="@dimen/d10"
+            android:paddingLeft="@dimen/d20"
+            android:paddingRight="@dimen/d20"
+            android:layout_marginRight="@dimen/d10"
+            android:textSize="@dimen/font_size_18"
+            android:textColor="@color/white"
+            android:text="留言"
+            android:drawableLeft="@mipmap/ly"
+            android:drawablePadding="@dimen/d5"
+            android:layout_centerVertical="true"
+            android:gravity="center"
+            android:clickable="true"
+            android:background="@drawable/shape_main_hos_txt_bg"
+            />
+
+        <TextView
+            android:id="@+id/adapter_contacts_item_call"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginRight="@dimen/d10"
+            android:paddingTop="@dimen/d10"
+            android:paddingBottom="@dimen/d10"
+            android:paddingLeft="@dimen/d20"
+            android:paddingRight="@dimen/d20"
+            android:textSize="@dimen/font_size_18"
+            android:textColor="@color/white"
+            android:text="呼叫"
+            android:drawableLeft="@mipmap/hu"
+            android:drawablePadding="@dimen/d5"
+            android:clickable="true"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:background="@drawable/shape_main_hos_txt_bg"
+            />
 
-        </RelativeLayout>
     </RelativeLayout>
+
 </layout>

+ 9 - 6
android_mobile/src/main/res/layout/av_p2p_audio_incoming.xml

@@ -25,8 +25,8 @@
 
             <ImageView
                 android:id="@+id/incomingTransImageView"
-                android:layout_width="80dp"
-                android:layout_height="80dp"
+                android:layout_width="120dp"
+                android:layout_height="120dp"
                 android:src="@drawable/call_trans" />
 
             <TextView
@@ -34,6 +34,7 @@
                 android:layout_height="wrap_content"
                 android:layout_marginTop="10dp"
                 android:text=""
+                android:textSize="@dimen/font_size_24"
                 android:textColor="@android:color/white" />
 
         </LinearLayout>
@@ -49,8 +50,8 @@
 
             <ImageView
                 android:id="@+id/incomingHangupImageView"
-                android:layout_width="80dp"
-                android:layout_height="80dp"
+                android:layout_width="120dp"
+                android:layout_height="120dp"
                 android:src="@drawable/av_hangup_selector" />
 
             <TextView
@@ -58,6 +59,7 @@
                 android:layout_height="wrap_content"
                 android:layout_marginTop="10dp"
                 android:text=""
+                android:textSize="@dimen/font_size_24"
                 android:textColor="@android:color/white" />
 
         </LinearLayout>
@@ -72,8 +74,8 @@
 
             <ImageView
                 android:id="@+id/acceptImageView"
-                android:layout_width="80dp"
-                android:layout_height="80dp"
+                android:layout_width="120dp"
+                android:layout_height="120dp"
                 android:src="@drawable/av_audio_answer_selector" />
 
             <TextView
@@ -81,6 +83,7 @@
                 android:layout_height="wrap_content"
                 android:layout_marginTop="10dp"
                 android:text=""
+                android:textSize="@dimen/font_size_24"
                 android:textColor="@android:color/white" />
 
         </LinearLayout>

+ 10 - 6
android_mobile/src/main/res/layout/av_p2p_audio_outgoing.xml

@@ -12,6 +12,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:textColor="@android:color/white"
+        android:textSize="@dimen/font_size_35"
         tools:visibility="visible" />
 
     <LinearLayout
@@ -31,8 +32,8 @@
 
             <ImageView
                 android:id="@+id/muteImageView"
-                android:layout_width="80dp"
-                android:layout_height="80dp"
+                android:layout_width="120dp"
+                android:layout_height="120dp"
                 android:src="@drawable/av_mute_selector" />
 
             <TextView
@@ -40,6 +41,7 @@
                 android:layout_height="wrap_content"
                 android:layout_marginTop="10dp"
                 android:text="@string/str_call_mute"
+                android:textSize="@dimen/font_size_24"
                 android:textColor="@android:color/white" />
 
         </LinearLayout>
@@ -53,8 +55,8 @@
 
             <ImageView
                 android:id="@+id/outgoingHangupImageView"
-                android:layout_width="80dp"
-                android:layout_height="80dp"
+                android:layout_width="120dp"
+                android:layout_height="120dp"
                 android:src="@drawable/av_hangup_selector" />
 
             <TextView
@@ -62,6 +64,7 @@
                 android:layout_height="wrap_content"
                 android:layout_marginTop="10dp"
                 android:text="@string/str_call_handoff"
+                android:textSize="@dimen/font_size_24"
                 android:textColor="@android:color/white" />
 
         </LinearLayout>
@@ -77,8 +80,8 @@
 
             <ImageView
                 android:id="@+id/speakerImageView"
-                android:layout_width="80dp"
-                android:layout_height="80dp"
+                android:layout_width="120dp"
+                android:layout_height="120dp"
                 android:src="@drawable/av_speaker_selector" />
 
             <TextView
@@ -86,6 +89,7 @@
                 android:layout_height="wrap_content"
                 android:layout_marginTop="10dp"
                 android:text="@string/str_call_speaker"
+                android:textSize="@dimen/font_size_24"
                 android:textColor="@android:color/white" />
 
         </LinearLayout>

+ 146 - 95
android_mobile/src/main/res/layout/event_list_item.xml

@@ -6,118 +6,169 @@
         android:layout_marginTop="5dp"
         android:paddingBottom="5dp"
         android:orientation="vertical"
-        android:background="@color/color_white"
-        android:gravity="center_vertical">
+        android:background="@drawable/shape_bed_bg"
+        android:gravity="center_horizontal">
 
+        <ImageView
+            android:id="@+id/eli_event_img"
+            android:layout_width="@dimen/d80"
+            android:layout_height="@dimen/d80"
+            android:layout_marginTop="@dimen/d20"
+            android:src="@mipmap/huchu"/>
+
+        <TextView
+            android:id="@+id/eli_event_name"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/black"
+            android:layout_marginTop="@dimen/d10"
+            android:text="换药水"
+            android:textStyle="bold"
+            android:textSize="@dimen/font_size_24"/>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:layout_marginTop="@dimen/d10"
+        android:orientation="horizontal">
+
+        <TextView
+            android:id="@+id/eli_room_name"
+            android:layout_marginStart="3dp"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="03房05床"
+            android:textColor="@color/black"
+            android:textStyle="bold"
+            android:textSize="@dimen/font_size_24"/>
+        <TextView
+            android:id="@+id/eli_member_name"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="@dimen/d10"
+            android:text="张晓丽呼叫"
+            android:textColor="@color/black"
+            android:textStyle="bold"
+            android:textSize="@dimen/font_size_24"/>
+
+    </LinearLayout>
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:gravity="center"
+            android:layout_marginTop="@dimen/d20"
+            android:layout_marginBottom="@dimen/d20"
             android:orientation="horizontal">
 
 
-            <LinearLayout
+            <TextView
+                android:id="@+id/eli_voice_recorder"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingTop="@dimen/d10"
+                android:paddingBottom="@dimen/d10"
+                android:paddingLeft="@dimen/d40"
+                android:paddingRight="@dimen/d40"
+                android:layout_marginRight="@dimen/d10"
+                android:textSize="@dimen/font_size_22"
+                android:textColor="@color/white"
+                android:text="留言"
+                android:drawableLeft="@mipmap/ly"
+                android:drawablePadding="@dimen/d5"
+                android:layout_centerVertical="true"
+                android:gravity="center"
+                android:clickable="true"
+                android:visibility="gone"
+                android:background="@drawable/shape_main_hos_txt_bg"
+                />
+
+            <TextView
+                android:id="@+id/eli_callout"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginRight="@dimen/d10"
+                android:paddingTop="@dimen/d10"
+                android:paddingBottom="@dimen/d10"
+                android:paddingLeft="@dimen/d30"
+                android:paddingRight="@dimen/d30"
+                android:textSize="@dimen/font_size_22"
+                android:textColor="@color/white"
+                android:text="呼叫"
+                android:drawableLeft="@mipmap/hu"
+                android:drawablePadding="@dimen/d10"
+                android:clickable="true"
+                android:visibility="gone"
+                android:background="@drawable/shape_main_hos_txt_bg"
+                />
+
+
+            <TextView
+                android:id="@+id/eli_event_response"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="3dp"
-                android:layout_marginStart="10dp"
-                android:orientation="vertical">
-                <LinearLayout
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:orientation="horizontal">
-                    <ImageView
-                        android:src="@drawable/home_100"
-                        android:layout_gravity="center_vertical"
-                        android:layout_width="15dp"
-                        android:layout_height="15dp"/>
-                    <TextView
-                        android:id="@+id/eli_room_name"
-                        android:layout_marginStart="3dp"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text=""
-                        android:textSize="14sp"/>
-
-                </LinearLayout>
-
-                <TextView
-                    android:id="@+id/eli_member_name"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginTop="5dp"
-                    android:text=""
-                    android:textSize="12sp"/>
-                <TextView
-                    android:id="@+id/eli_event_time"
-                    android:layout_marginTop="5dp"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text=""
-                    android:textSize="12sp"/>
-            </LinearLayout>
-
-            <LinearLayout
+                android:layout_marginRight="@dimen/d10"
+                android:paddingTop="@dimen/d10"
+                android:paddingBottom="@dimen/d10"
+                android:paddingLeft="@dimen/d30"
+                android:paddingRight="@dimen/d30"
+                android:textSize="@dimen/font_size_22"
+                android:textColor="@color/white"
+                android:text="立即响应"
+                android:clickable="true"
+                android:visibility="gone"
+                android:background="@drawable/shape_main_hos_txt_bg"
+                />
+
+
+            <TextView
+                android:id="@+id/eli_im_read"
                 android:layout_width="wrap_content"
-                android:layout_height="match_parent"
-                android:orientation="horizontal"
-                android:layout_marginEnd="10dp"
-                android:gravity="right"
-                android:layout_weight="1">
-
-                <TextView
-                    android:layout_gravity="center_vertical"
-                    android:id="@+id/eli_event_name"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="5dp"
-                    android:textColor="@color/warn_orange"
-                    android:textSize="20sp"/>
-
-            </LinearLayout>
+                android:layout_height="wrap_content"
+                android:layout_marginRight="@dimen/d10"
+                android:paddingTop="@dimen/d10"
+                android:paddingBottom="@dimen/d10"
+                android:paddingLeft="@dimen/d40"
+                android:paddingRight="@dimen/d40"
+                android:textSize="@dimen/font_size_22"
+                android:textColor="@color/white"
+                android:text="播放"
+                android:visibility="gone"
+                android:drawableLeft="@mipmap/im_bo"
+                android:drawablePadding="@dimen/d10"
+                android:clickable="true"
+                android:layout_alignParentRight="true"
+                android:layout_centerVertical="true"
+
+                android:background="@drawable/shape_main_hos_txt_bg"
+                />
+
 
         </LinearLayout>
 
         <LinearLayout
-            android:layout_width="match_parent"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:orientation="horizontal">
-            <LinearLayout
+            android:layout_marginTop="@dimen/d30"
+            android:layout_marginStart="10dp"
+            android:layout_gravity="right"
+            android:visibility="gone"
+            android:orientation="vertical"
+
+            >
+
+            <TextView
+                android:id="@+id/eli_event_time"
+                android:layout_marginTop="5dp"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:orientation="horizontal"
-                android:layout_marginEnd="5dp"
-                android:gravity="right"
-                android:layout_weight="1">
-
-                <ImageView
-                    android:visibility="gone"
-                    android:id="@+id/eli_voice_recorder"
-                    android:src="@drawable/voice_recorder"
-                    android:layout_marginEnd="15dp"
-                    android:layout_width="35dp"
-                    android:layout_height="35dp"/>
-                <ImageView
-                    android:id="@+id/eli_callout"
-                    android:src="@drawable/yu_yin_jie_ting"
-                    android:layout_width="35dp"
-                    android:layout_height="35dp"
-                    android:visibility="gone"/>
-                <ImageView
-                    android:id="@+id/eli_event_response"
-                    android:src="@drawable/icon_switch_off"
-                    android:layout_width="wrap_content"
-                    android:layout_height="35dp"
-                    android:visibility="gone"/>
-
-                <ImageView
-                    android:visibility="gone"
-                    android:id="@+id/eli_im_read"
-                    android:layout_marginStart="15dp"
-                    android:src="@drawable/wei_bo_fang"
-                    android:layout_width="35dp"
-                    android:layout_height="35dp"/>
-
-            </LinearLayout>
+                android:text="2023/05/04 14:04"
+                android:textSize="12sp"/>
         </LinearLayout>
+
+
+
+
+
     </LinearLayout>
 </layout>

+ 8 - 6
android_mobile/src/main/res/layout/fragment_audio.xml

@@ -3,7 +3,7 @@
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@android:color/background_dark">
+    android:background="#3978EC">
 
     <ImageView
         android:id="@+id/minimizeImageView"
@@ -23,10 +23,10 @@
 
         <ImageView
             android:id="@+id/portraitImageView"
-            android:layout_width="120dp"
-            android:layout_height="120dp"
+            android:layout_width="250dp"
+            android:layout_height="250dp"
             android:layout_marginTop="80dp"
-            android:src="@drawable/av_default_header" />
+            android:src="@mipmap/call_haed" />
 
         <TextView
             android:id="@+id/nameTextView"
@@ -34,6 +34,7 @@
             android:layout_height="wrap_content"
             android:layout_marginTop="20dp"
             android:text=""
+            android:textSize="@dimen/font_size_35"
             android:textColor="@android:color/white" />
 
         <TextView
@@ -43,6 +44,7 @@
             android:gravity="center"
             android:layout_marginTop="5dp"
             android:text=""
+            android:textSize="@dimen/font_size_35"
             android:textColor="@android:color/white" />
     </LinearLayout>
 
@@ -66,12 +68,12 @@
 
     <TextView
         android:id="@+id/tvStatus"
-        android:layout_width="wrap_content"
+        android:layout_width="24dp"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:layout_centerHorizontal="true"
         android:layout_marginBottom="130dp"
         android:textColor="#FFFFFF"
-        android:textSize="16sp" />
+        android:textSize="@dimen/font_size_24" />
 
 </RelativeLayout>

+ 7 - 6
android_mobile/src/main/res/layout/fragment_video.xml

@@ -3,8 +3,8 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@android:color/black"
-    tools:ignore="MergeRootFrame">
+    tools:ignore="MergeRootFrame"
+    android:background="#3978EC">
 
     <FrameLayout
         android:id="@+id/fullscreen_video_view"
@@ -14,8 +14,8 @@
 
     <FrameLayout
         android:id="@+id/pip_video_view"
-        android:layout_width="100dp"
-        android:layout_height="140dp"
+        android:layout_width="200dp"
+        android:layout_height="240dp"
         android:layout_gravity="top|end"
         android:layout_marginHorizontal="10dp"
         android:layout_marginTop="10dp" />
@@ -40,8 +40,8 @@
 
             <ImageView
                 android:id="@+id/portraitImageView"
-                android:layout_width="60dp"
-                android:layout_height="60dp"
+                android:layout_width="80dp"
+                android:layout_height="80dp"
                 android:adjustViewBounds="true"
                 android:scaleType="centerCrop"
                 android:src="@drawable/av_default_header" />
@@ -58,6 +58,7 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:text=""
+                    android:textSize="@dimen/font_size_24"
                     android:textColor="@android:color/white" />
 
                 <TextView

+ 1 - 1
android_mobile/src/main/res/layout/im_play_dialog_lay.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
+    android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:orientation="vertical"
     android:gravity="center">

+ 86 - 0
android_mobile/src/main/res/layout/main_password_dialog.xml

@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center"
+    android:background="@android:color/transparent">
+
+    <LinearLayout
+        android:id="@+id/ll_password_view"
+        android:layout_width="481dp"
+        android:layout_height="441dp"
+        android:background="@color/white"
+        android:gravity="center"
+        android:orientation="vertical">
+
+        <ImageView
+            android:layout_width="@dimen/d88"
+            android:layout_height="@dimen/d88"
+            android:layout_marginTop="@dimen/d32"
+            android:src="@mipmap/hedimg" />
+
+        <TextView
+            android:id="@+id/positioning_tip_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
+            android:gravity="center"
+            android:text="请输入管理员密码"
+            android:textColor="@color/black"
+            android:textSize="@dimen/font_size_18"
+            android:textStyle="bold" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/d7"
+            android:gravity="center"
+            android:text="查看设备信息需管理权限"
+            android:textColor="#7D7D7D"
+            android:textSize="@dimen/font_size_18" />
+
+        <EditText
+            android:id="@+id/password_ed"
+            android:layout_width="@dimen/d383"
+            android:layout_height="@dimen/d52"
+            android:layout_below="@+id/nurse_msg_tx_1"
+            android:layout_marginTop="@dimen/d16"
+            android:background="@drawable/shape_n_login_ed_bg2"
+            android:gravity="center_vertical"
+            android:hint="请输入管理密码"
+            android:paddingLeft="@dimen/d26"
+            android:textSize="@dimen/font_size_18"
+            android:textStyle="bold" />
+
+        <LinearLayout
+            android:layout_width="@dimen/d383"
+            android:layout_height="@dimen/d52"
+            android:layout_marginTop="@dimen/d24"
+            android:layout_marginBottom="@dimen/d32"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <Button
+                android:id="@+id/password_cancel_button"
+                android:layout_width="@dimen/d176"
+                android:layout_height="@dimen/d48"
+                android:background="@drawable/shape_password_bt_bg"
+                android:gravity="center"
+                android:text="关闭"
+                android:textColor="@drawable/selector_bottom_btn_text_color"
+                android:textSize="16sp" />
+
+            <Button
+                android:id="@+id/password_determine_button"
+                android:layout_width="@dimen/d176"
+                android:layout_height="@dimen/d48"
+                android:layout_marginLeft="@dimen/d31"
+                android:background="@drawable/shape_main_hos_txt_bg"
+                android:gravity="center"
+                android:text="确定"
+                android:textColor="@drawable/selector_bottom_btn_text_color"
+                android:textSize="16sp" />
+        </LinearLayout>
+
+    </LinearLayout>
+</LinearLayout>

+ 86 - 0
android_mobile/src/main/res/layout/main_server_dialog.xml

@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center"
+    android:background="@android:color/transparent">
+
+    <LinearLayout
+        android:id="@+id/ll_server_config_view"
+        android:layout_width="481dp"
+        android:layout_height="441dp"
+        android:background="@color/white"
+        android:gravity="center"
+        android:orientation="vertical">
+
+        <ImageView
+            android:layout_width="@dimen/d88"
+            android:layout_height="@dimen/d88"
+            android:layout_marginTop="@dimen/d42"
+            android:src="@mipmap/hedimg" />
+
+        <TextView
+            android:id="@+id/positioning_tip_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="20dp"
+            android:gravity="center"
+            android:text="请设置服务器地址"
+            android:textColor="@color/black"
+            android:textSize="@dimen/font_size_18"
+            android:textStyle="bold" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/d6"
+            android:gravity="center"
+            android:text="只可输入数字和小数点"
+            android:textColor="#7D7D7D"
+            android:textSize="@dimen/font_size_18" />
+
+        <EditText
+            android:id="@+id/server_ed"
+            android:layout_width="@dimen/d375"
+            android:layout_height="@dimen/d52"
+            android:layout_marginTop="@dimen/d22"
+            android:background="@drawable/shape_n_login_ed_bg2"
+            android:digits="1234567890."
+            android:gravity="center_vertical"
+            android:hint="请输入服务器地址"
+            android:paddingLeft="@dimen/d26"
+            android:textSize="@dimen/font_size_18"
+            android:textStyle="bold" />
+
+        <LinearLayout
+            android:layout_width="@dimen/d383"
+            android:layout_height="@dimen/d52"
+            android:layout_marginTop="@dimen/d30"
+            android:layout_marginBottom="@dimen/d88"
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <Button
+                android:id="@+id/server_determine_button"
+                android:layout_width="@dimen/d176"
+                android:layout_height="@dimen/d48"
+                android:background="@drawable/shape_main_hos_txt_bg"
+                android:gravity="center"
+                android:text="确定"
+                android:textColor="@drawable/selector_bottom_btn_text_color"
+                android:textSize="16sp" />
+
+            <Button
+                android:id="@+id/server_cancel_button"
+                android:layout_width="@dimen/d176"
+                android:layout_height="@dimen/d48"
+                android:layout_marginLeft="@dimen/d31"
+                android:background="@drawable/shape_main_hos_txt_bg"
+                android:gravity="center"
+                android:text="重置"
+                android:textColor="@drawable/selector_bottom_btn_text_color"
+                android:textSize="16sp" />
+        </LinearLayout>
+
+    </LinearLayout>
+</LinearLayout>

+ 2 - 1
android_mobile/src/main/res/layout/spinner_item.xml

@@ -6,4 +6,5 @@
     android:gravity="center"
     android:ellipsize="marquee"
     android:textAlignment="inherit"
-    android:textSize="16sp"/>
+    android:textColor="#000000"
+    android:textSize="20sp"/>

+ 119 - 54
android_mobile/src/main/res/layout/takeover_item.xml

@@ -1,74 +1,139 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android">
-    <LinearLayout
+    <RelativeLayout
         android:layout_width="match_parent"
-        android:layout_height="54dp"
-        android:layout_marginTop="5dp"
-        android:background="@drawable/item_selector"
+        android:layout_height="200dp"
+        android:layout_marginBottom="@dimen/d30"
+        android:background="@drawable/shape_bed_bg"
         android:orientation="horizontal">
 
+
+        <ImageView
+            android:id="@+id/take_over_item_tx_img"
+            android:layout_width="@dimen/d100"
+            android:layout_height="@dimen/d100"
+            android:src="@mipmap/mian_ts"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="@dimen/d10"
+            />
+
         <LinearLayout
             android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:gravity="center_vertical"
-            android:orientation="vertical">
-
+            android:layout_height="wrap_content"
+            android:layout_toRightOf="@+id/take_over_item_tx_img"
+            android:layout_marginLeft="@dimen/d30"
+            android:layout_centerVertical="true"
+            android:orientation="vertical"
+            >
             <TextView
-                android:id="@+id/clerk_name"
+                android:id="@+id/take_over_item_name"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_centerVertical="true"
-                android:layout_marginLeft="10dp"
-                android:textColor="#F78B8F"
-                android:textSize="16sp" />
-
-            <TextView
-                android:id="@+id/tv_phone_number"
+                android:textSize="@dimen/font_size_35"
+                android:textColor="@color/black"
+                android:textStyle="bold"
+                android:text="张晓芬"
+                />
+            <LinearLayout
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginLeft="10dp"
-                android:text="@string/str_empty"
-                android:textSize="12sp" />
-        </LinearLayout>
+                android:layout_marginTop="@dimen/d10"
+                >
+                <TextView
+                    android:id="@+id/take_over_item_job"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingTop="@dimen/d5"
+                    android:paddingBottom="@dimen/d5"
+                    android:paddingLeft="@dimen/d10"
+                    android:paddingRight="@dimen/d10"
+                    android:background="@drawable/shape_take_item_type_bg"
+                    android:textSize="@dimen/font_size_18"
+                    android:textColor="@color/white"
+                    android:text="护士"
+                    />
+                <TextView
+                    android:id="@+id/take_over_item_age"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingTop="@dimen/d5"
+                    android:paddingBottom="@dimen/d5"
+                    android:paddingLeft="@dimen/d10"
+                    android:paddingRight="@dimen/d10"
+                    android:background="@drawable/shape_take_item_age_bg"
+                    android:textSize="@dimen/font_size_18"
+                    android:textColor="@color/white"
+                    android:text="男"
+                    android:layout_marginLeft="@dimen/d18"
+                    />
 
-        <LinearLayout
-            android:layout_width="0dp"
-            android:layout_height="match_parent"
-            android:layout_marginRight="10dp"
-            android:layout_weight="1"
-            android:gravity="right|center_vertical">
+            </LinearLayout>
 
-            <ImageView
-                android:id="@+id/ti_voice_recorder"
-                android:layout_width="35dp"
-                android:layout_height="22dp"
-                android:layout_marginEnd="15dp"
-                android:src="@drawable/voice_recorder"
-                android:visibility="gone" />
+        </LinearLayout>
 
-            <Button
-                android:id="@id/btn_user_change"
-                android:layout_width="54dp"
-                android:layout_height="22dp"
-                android:background="@drawable/javashop_btn_balck_line_bg"
-                android:text="@string/str_replace"
-                android:textColor="@color/grgray"
-                android:textSize="12sp"
-                android:singleLine="true"/>
+        <TextView
+            android:id="@+id/take_over_item_ly"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_toLeftOf="@+id/take_over_item_call"
+            android:paddingTop="@dimen/d10"
+            android:paddingBottom="@dimen/d10"
+            android:paddingLeft="@dimen/d20"
+            android:paddingRight="@dimen/d20"
+            android:layout_marginRight="@dimen/d10"
+            android:textSize="@dimen/font_size_18"
+            android:textColor="@color/white"
+            android:text="留言"
+            android:drawableLeft="@mipmap/ly"
+            android:drawablePadding="@dimen/d5"
+            android:layout_centerVertical="true"
+            android:gravity="center"
+            android:clickable="true"
+            android:background="@drawable/shape_main_hos_txt_bg"
+            />
 
-            <Button
-                android:id="@+id/btn_call_out"
-                android:layout_width="54dp"
-                android:layout_height="22dp"
-                android:layout_marginLeft="5dp"
-                android:background="@drawable/javashop_btn_balck_line_bg"
-                android:text="@string/str_call"
-                android:textColor="@color/grgray"
-                android:textSize="12sp"
-                android:singleLine="true"/>
+        <TextView
+            android:id="@+id/take_over_item_qh"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_toLeftOf="@+id/take_over_item_call"
+            android:paddingTop="@dimen/d10"
+            android:paddingBottom="@dimen/d10"
+            android:paddingLeft="@dimen/d20"
+            android:paddingRight="@dimen/d20"
+            android:layout_marginRight="@dimen/d10"
+            android:textSize="@dimen/font_size_18"
+            android:textColor="@color/white"
+            android:text="换班"
+            android:drawableLeft="@mipmap/qh"
+            android:drawablePadding="@dimen/d5"
+            android:layout_centerVertical="true"
+            android:gravity="center"
+            android:clickable="true"
+            android:visibility="gone"
+            android:background="@drawable/shape_main_hos_txt_bg"
+            />
 
-        </LinearLayout>
+        <TextView
+            android:id="@+id/take_over_item_call"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginRight="@dimen/d10"
+            android:paddingTop="@dimen/d10"
+            android:paddingBottom="@dimen/d10"
+            android:paddingLeft="@dimen/d20"
+            android:paddingRight="@dimen/d20"
+            android:textSize="@dimen/font_size_18"
+            android:textColor="@color/white"
+            android:text="呼叫"
+            android:drawableLeft="@mipmap/hu"
+            android:drawablePadding="@dimen/d5"
+            android:clickable="true"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:background="@drawable/shape_main_hos_txt_bg"
+            />
 
-    </LinearLayout>
+    </RelativeLayout>
 
 </layout>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 886 - 390
android_mobile/src/main/res/layout/user_setting_layout.xml


+ 42 - 0
android_mobile/src/main/res/layout/view_title_layout.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="@dimen/d60"
+    android:layout_marginTop="@dimen/d20"
+    android:background="@color/txt_number"
+   >
+
+    <LinearLayout
+        android:id="@+id/view_title_layout_img"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:gravity="center"
+        android:clickable="true"
+        >
+
+        <ImageView
+            android:layout_width="@dimen/d15"
+            android:layout_height="@dimen/d25"
+            android:layout_marginLeft="@dimen/d30"
+            android:background="@mipmap/integ_arrow_icon"
+            android:layout_centerVertical="true"
+            />
+    </LinearLayout>
+
+
+    <TextView
+        android:id="@+id/view_title_layout_tx"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_centerHorizontal="true"
+        android:layout_centerVertical="true"
+        android:text="首页"
+        android:textSize="@dimen/font_size_24"
+        android:textStyle="bold"
+        android:clickable="true"
+        android:textColor="@color/white"
+
+        />
+
+
+</RelativeLayout>

+ 112 - 20
android_mobile/src/main/res/layout/watch_activity_call_records.xml

@@ -4,23 +4,122 @@
     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:background="#FFBDC3">
+        android:background="#3978EC">
+        <include
+            android:id="@+id/watch_call_records_title_layout"
+            layout="@layout/view_title_layout"
+            />
+        <LinearLayout
+            android:id="@+id/watch_call_records_type_ll"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/d10"
+            android:layout_marginLeft="@dimen/d40"
+            android:layout_below="@+id/watch_call_records_title_layout"
+            >
+
+            <TextView
+                android:id="@+id/watch_contacts_list_all"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingTop="@dimen/d5"
+                android:paddingBottom="@dimen/d5"
+                android:paddingRight="@dimen/d20"
+                android:paddingLeft="@dimen/d20"
+                android:text="@string/str_all_call"
+                android:textStyle="bold"
+                android:textColor="@color/txt_number2"
+                android:background="@drawable/shape_time_bu_bg"
+                android:textSize="@dimen/font_size_24"
+                />
+            <TextView
+                android:id="@+id/watch_contacts_list_call"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingTop="@dimen/d5"
+                android:paddingBottom="@dimen/d5"
+                android:paddingRight="@dimen/d20"
+                android:paddingLeft="@dimen/d20"
+                android:text="@string/call_window_title"
+                android:layout_marginLeft="@dimen/d10"
+                android:textStyle="bold"
+                android:textColor="@color/nursing_default_color"
+                android:textSize="@dimen/font_size_24"
+                />
+            <TextView
+                android:id="@+id/watch_contacts_list_no_call"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingTop="@dimen/d5"
+                android:paddingBottom="@dimen/d5"
+                android:paddingRight="@dimen/d20"
+                android:paddingLeft="@dimen/d20"
+                android:text="@string/str_missed_call"
+                android:textStyle="bold"
+                android:layout_marginLeft="@dimen/d10"
+                android:textColor="@color/nursing_default_color"
+                android:textSize="@dimen/font_size_24"
+                />
+            <TextView
+                android:id="@+id/watch_contacts_list_other"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingTop="@dimen/d5"
+                android:paddingBottom="@dimen/d5"
+                android:paddingRight="@dimen/d20"
+                android:paddingLeft="@dimen/d20"
+                android:text="@string/str_other_call"
+                android:layout_marginLeft="@dimen/d10"
+                android:textStyle="bold"
+                android:textColor="@color/nursing_default_color"
+                android:textSize="@dimen/font_size_24"
+                />
 
-        <com.scwang.smartrefresh.layout.SmartRefreshLayout
-            android:id="@+id/refresh"
+
+        </LinearLayout>
+
+
+        <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:layout_marginLeft="6px"
-            android:layout_marginRight="6px"
-            bind:srlEnableLoadMore="true"
-            bind:srlEnableRefresh="true">
+            android:layout_below="@+id/watch_call_records_type_ll"
+            android:orientation="vertical"
+            android:layout_marginTop="@dimen/d20"
+            android:background="@drawable/shape_main_bottom_bg"
+            >
+            <TextView
+                android:id="@+id/tv_empty_records"
+                android:textAlignment="center"
+                android:layout_marginTop="50dp"
+                android:layout_below="@id/search_view"
+                android:textSize="20sp"
+                android:visibility="gone"
+                android:textColor="@color/warn_orange"
+                android:text="@string/data_empty"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
+
 
-            <androidx.recyclerview.widget.RecyclerView
-                android:id="@+id/call_records_recyv"
+            <com.scwang.smartrefresh.layout.SmartRefreshLayout
+                android:id="@+id/refresh"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
-                android:background="#FFBDC3"/>
-        </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+                android:layout_marginTop="@dimen/d30"
+                android:layout_marginLeft="@dimen/d20"
+                android:layout_marginRight="@dimen/d20"
+                android:layout_marginBottom="@dimen/d20"
+                bind:srlEnableLoadMore="true"
+                bind:srlEnableRefresh="true">
+
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/call_records_recyv"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    />
+            </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+
+        </LinearLayout>
+
 
         <RelativeLayout
             android:id="@+id/call_relyout"
@@ -36,16 +135,9 @@
                 android:layout_height="wrap_content"
                 android:layout_centerInParent="true"
                 android:background="@drawable/yu_yin_jie_ting" />
+
         </RelativeLayout>
 
-        <TextView
-            android:id="@+id/tv_empty_records"
-            android:textAlignment="center"
-            android:layout_marginTop="50dp"
-            android:textSize="20sp"
-            android:textColor="@color/warn_orange"
-            android:text="@string/data_empty"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"/>
+
     </RelativeLayout>
 </layout>

+ 327 - 6
android_mobile/src/main/res/layout/watch_activity_home.xml

@@ -1,17 +1,16 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:fitsSystemWindows="true"
         android:background="#3978EC"
         >
 
         <RelativeLayout
             android:id="@+id/watch_activity_home_top_view"
             android:layout_width="match_parent"
-            android:layout_height="@dimen/d400">
+            android:layout_height="@dimen/d300">
 
             <ImageView
                 android:id="@+id/watch_activity_home_tx_img"
@@ -59,6 +58,11 @@
                         android:id="@+id/watch_activity_home_age"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
+                        android:paddingTop="@dimen/d5"
+                        android:paddingBottom="@dimen/d5"
+                        android:paddingLeft="@dimen/d10"
+                        android:paddingRight="@dimen/d10"
+                        android:background="@drawable/shape_main_age_bg"
                         android:textSize="@dimen/font_size_18"
                         android:textColor="@color/white"
                         android:text="23岁"
@@ -67,11 +71,16 @@
                         android:id="@+id/watch_activity_home_job"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
+                        android:paddingTop="@dimen/d5"
+                        android:paddingBottom="@dimen/d5"
+                        android:paddingLeft="@dimen/d10"
+                        android:paddingRight="@dimen/d10"
+                        android:background="@drawable/shape_main_age_bg"
                         android:textSize="@dimen/font_size_18"
                         android:textColor="@color/white"
                         android:text="骨科护士"
                         android:layout_marginLeft="@dimen/d18"
-                        android:background="@drawable/shape_main_age_bg"
+
                         />
 
                 </LinearLayout>
@@ -93,7 +102,7 @@
                 android:layout_alignParentRight="true"
                 android:layout_centerVertical="true"
                 android:layout_marginLeft="@dimen/d18"
-                android:background="@drawable/shape_main_age_bg"
+                android:background="@drawable/shape_main_setting_bg"
                 />
 
         </RelativeLayout>
@@ -101,12 +110,324 @@
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="match_parent"
+            android:layout_below="@+id/watch_activity_home_top_view"
             android:orientation="vertical"
+            android:background="@drawable/shape_main_bottom_bg"
+            >
+
+            <LinearLayout
+                android:id="@+id/watch_activity_home_call_list_ll"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_margin="@dimen/d30"
+                android:clickable="true"
+                android:orientation="horizontal">
+
+                <LinearLayout
+                    android:layout_width="@dimen/d230"
+                    android:layout_height="@dimen/d200"
+                    android:background="@mipmap/tong"
+                    android:gravity="center_horizontal"
+                    android:orientation="vertical"
+                    >
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="通话列表"
+                        android:textStyle="bold"
+                        android:textColor="@color/white"
+                        android:textSize="@dimen/font_size_24"
+                        android:layout_marginTop="@dimen/d20"
+                        />
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="来电/未接/呼出"
+                        android:textColor="@color/white"
+                        android:textSize="@dimen/font_size_12"
+                        android:layout_marginTop="@dimen/d10"
+                        />
+
+                </LinearLayout>
+
+                <LinearLayout
+                    android:id="@+id/watch_activity_home_people_list_ll"
+                    android:layout_width="@dimen/d230"
+                    android:layout_height="@dimen/d200"
+                    android:background="@mipmap/gu"
+                    android:orientation="vertical"
+                    android:gravity="center_horizontal"
+                    android:layout_marginLeft="@dimen/d20"
+                    >
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="通话列表"
+                        android:textStyle="bold"
+                        android:textColor="@color/white"
+                        android:textSize="@dimen/font_size_24"
+                        android:layout_marginTop="@dimen/d20"
+                        />
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="来电/未接/呼出"
+                        android:textColor="@color/white"
+                        android:textSize="@dimen/font_size_12"
+                        android:layout_marginTop="@dimen/d10"
+                        />
+                </LinearLayout>
+
+
+            </LinearLayout>
+
+            <RelativeLayout
+                android:id="@+id/watch_activity_home_msg_ll"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:background="@drawable/shape_bed_bg"
+                android:padding="@dimen/d30"
+                android:layout_margin="@dimen/d20"
+                android:gravity="center_vertical"
+                >
+
+                <ImageView
+                    android:id="@+id/watch_activity_home_msg_img"
+                    android:layout_width="@dimen/d40"
+                    android:layout_height="@dimen/d40"
+                    android:background="@mipmap/qun"
+                    />
+
+                <TextView
+                    android:id="@+id/watch_activity_home_msg_title"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_toRightOf="@+id/watch_activity_home_msg_img"
+                    android:text="群留言列表"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/font_size_24"
+                    android:layout_marginLeft="@dimen/d30"
+                    />
+                <TextView
+                    android:id="@+id/watch_activity_home_msg_tx"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingRight="@dimen/d10"
+                    android:paddingLeft="@dimen/d10"
+                    android:paddingTop="@dimen/d1"
+                    android:paddingBottom="@dimen/d1"
+                    android:layout_marginRight="@dimen/d30"
+                    android:layout_toLeftOf="@+id/watch_activity_home_msg_img2"
+                    android:text="1"
+                    android:textColor="@color/white"
+                    android:textSize="@dimen/font_size_24"
+                    android:textStyle="bold"
+                    android:visibility="gone"
+                    android:background="@drawable/shape_untreated_quantity"
+
+                    />
+                <ImageView
+                    android:id="@+id/watch_activity_home_msg_img2"
+                    android:layout_width="@dimen/d10"
+                    android:layout_height="@dimen/d20"
+                    android:background="@mipmap/jian"
+                    android:layout_alignParentRight="true"
+                    android:layout_centerVertical="true"
+                    />
+            </RelativeLayout>
+
+            <RelativeLayout
+                android:id="@+id/watch_activity_home_room_ll"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:background="@drawable/shape_bed_bg"
+                android:padding="@dimen/d30"
+                android:layout_margin="@dimen/d20"
+                android:gravity="center_vertical"
+                >
+
+                <ImageView
+                    android:id="@+id/watch_activity_home_room_img"
+                    android:layout_width="@dimen/d40"
+                    android:layout_height="@dimen/d40"
+                    android:background="@mipmap/fang"
+                    />
+
+                <TextView
+                    android:id="@+id/watch_activity_home_room_title"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_toRightOf="@+id/watch_activity_home_room_img"
+                    android:text="房间列表"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/font_size_24"
+                    android:layout_marginLeft="@dimen/d30"
+                    />
+                <TextView
+                    android:id="@+id/watch_activity_home_room_tx"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingRight="@dimen/d10"
+                    android:paddingLeft="@dimen/d10"
+                    android:paddingTop="@dimen/d1"
+                    android:paddingBottom="@dimen/d1"
+                    android:layout_marginRight="@dimen/d30"
+                    android:layout_toLeftOf="@+id/watch_activity_home_room_img2"
+                    android:text="1"
+                    android:textColor="@color/white"
+                    android:textSize="@dimen/font_size_24"
+                    android:textStyle="bold"
+                    android:visibility="gone"
+                    android:background="@drawable/shape_untreated_quantity"
+
+                    />
+                <ImageView
+                    android:id="@+id/watch_activity_home_room_img2"
+                    android:layout_width="@dimen/d10"
+                    android:layout_height="@dimen/d20"
+                    android:background="@mipmap/jian"
+                    android:layout_alignParentRight="true"
+                    android:layout_centerVertical="true"
+                    />
+            </RelativeLayout>
+
+            <RelativeLayout
+                android:id="@+id/watch_activity_home_colleagues_ll"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
+                android:background="@drawable/shape_bed_bg"
+                android:padding="@dimen/d30"
+                android:layout_margin="@dimen/d20"
+                android:gravity="center_vertical"
+                >
+
+                <ImageView
+                    android:id="@+id/watch_activity_home_colleagues_img"
+                    android:layout_width="@dimen/d40"
+                    android:layout_height="@dimen/d40"
+                    android:background="@mipmap/ts"
+                    />
+
+                <TextView
+                    android:id="@+id/watch_activity_home_colleagues_title"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_toRightOf="@+id/watch_activity_home_colleagues_img"
+                    android:text="同事列表"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/font_size_24"
+                    android:layout_marginLeft="@dimen/d30"
+                    />
+                <TextView
+                    android:id="@+id/watch_activity_home_colleagues_tx"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingRight="@dimen/d10"
+                    android:paddingLeft="@dimen/d10"
+                    android:paddingTop="@dimen/d1"
+                    android:paddingBottom="@dimen/d1"
+                    android:layout_marginRight="@dimen/d30"
+                    android:layout_toLeftOf="@+id/watch_activity_home_colleagues_img2"
+                    android:text="1"
+                    android:textColor="@color/white"
+                    android:textSize="@dimen/font_size_24"
+                    android:textStyle="bold"
+                    android:visibility="gone"
+                    android:background="@drawable/shape_untreated_quantity"
+
+                    />
+                <ImageView
+                    android:id="@+id/watch_activity_home_colleagues_img2"
+                    android:layout_width="@dimen/d10"
+                    android:layout_height="@dimen/d20"
+                    android:background="@mipmap/jian"
+                    android:layout_alignParentRight="true"
+                    android:layout_centerVertical="true"
+                    />
+            </RelativeLayout>
+
+        </LinearLayout>
 
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_alignParentBottom="true"
+            android:layout_marginRight="@dimen/d20"
+            android:layout_marginLeft="@dimen/d20"
+            android:layout_marginBottom="@dimen/d40"
+            android:paddingTop="@dimen/d20"
+            android:paddingBottom="@dimen/d20"
+            android:paddingLeft="@dimen/d30"
+            android:paddingRight="@dimen/d30"
+            android:background="@drawable/shape_main_hos_txt_bg"
             >
 
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                >
+                <ImageView
+                    android:layout_width="@dimen/d30"
+                    android:layout_height="@dimen/d20"
+                    android:background="@mipmap/wifi"
+                    />
+                <TextView
+                    android:id="@+id/watch_activity_home_btoom_network"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                   android:text="WBDL-5G"
+                    android:textColor="@color/white"
+                    android:textSize="@dimen/font_size_16"
+                    android:layout_marginLeft="@dimen/d10"
+                    />
 
+            </LinearLayout>
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_weight="1"
+                >
+                <ImageView
+                    android:layout_width="@dimen/d30"
+                    android:layout_height="@dimen/d20"
+                    android:background="@mipmap/tuo"
+                    />
+                <TextView
+                    android:id="@+id/watch_activity_home_btoom_type"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="未托管"
+                    android:textColor="@color/white"
+                    android:textSize="@dimen/font_size_16"
+                    android:layout_marginLeft="@dimen/d10"
+                    />
+            </LinearLayout>
 
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_weight="1">
+                <ImageView
+                    android:layout_width="@dimen/d30"
+                    android:layout_height="@dimen/d20"
+                    android:background="@mipmap/dian"
+                    />
+                <TextView
+                    android:id="@+id/watch_activity_home_btoom_Power"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="90%"
+                    android:textColor="@color/white"
+                    android:textSize="@dimen/font_size_16"
+                    android:layout_marginLeft="@dimen/d10"
+                    />
+            </LinearLayout>
 
         </LinearLayout>
 

+ 407 - 265
android_mobile/src/main/res/layout/watch_activity_home2.xml

@@ -4,336 +4,478 @@
     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:fitsSystemWindows="true"
-        android:background="#3978EC"
         >
 
         <include
             android:id="@+id/watch_activity_register_layout"
             layout="@layout/watch_activity_register"
-            android:visibility="gone"
             />
 
-        <LinearLayout
+        <RelativeLayout
             android:id="@+id/watch_activity_home_linyout"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:orientation="vertical"
-            android:visibility="gone"
-           >
+            android:background="#3978EC"
+            android:layout_below="@+id/watch_activity_register_layout"
 
-            <LinearLayout
+            >
+            <RelativeLayout
+                android:id="@+id/watch_activity_home_top_view"
                 android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_weight="1">
+                android:layout_height="@dimen/d300">
+
+                <ImageView
+                    android:id="@+id/watch_activity_home_tx_img"
+                    android:layout_width="@dimen/d108"
+                    android:layout_height="@dimen/d108"
+                    android:src="@mipmap/mian_ts"
+                    android:layout_centerVertical="true"
+                    android:layout_marginLeft="@dimen/d20"
+                    />
+                <ImageView
+                    android:id="@+id/watch_activity_home_tx_sex"
+                    android:layout_width="20dp"
+                    android:layout_height="20dp"
+                    android:layout_alignBottom="@+id/watch_activity_home_tx_img"
+                    android:layout_alignRight="@+id/watch_activity_home_tx_img"
+                    android:layout_marginBottom="@dimen/d10"
+                    android:layout_marginRight="@dimen/d10"
+                    android:src="@mipmap/nv"/>
 
                 <LinearLayout
-                    android:id="@+id/customer_list_linlyout"
-                    android:layout_width="0dp"
-                    android:layout_height="match_parent"
-                    android:layout_weight="1"
-                    android:background="#00B5DC"
-                    android:gravity="center"
-                    android:orientation="vertical">
-
-                    <ImageView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:src="@drawable/gu_ke_lie_biao" />
-
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_toRightOf="@+id/watch_activity_home_tx_img"
+                    android:layout_marginLeft="@dimen/d30"
+                    android:layout_centerVertical="true"
+                    android:orientation="vertical"
+                    >
                     <TextView
+                        android:id="@+id/watch_activity_home_name"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:layout_marginTop="10dp"
-                        android:text="@string/custom_title"
-                        android:textColor="#ffffff"
-                        android:textSize="16dp" />
+                        android:textSize="@dimen/font_size_28"
+                        android:textColor="@color/white"
+                        android:textStyle="bold"
+                        android:text="张晓芬"
 
-                </LinearLayout>
+                        />
 
-                <LinearLayout
-                    android:id="@+id/call_records_linlyout"
-                    android:layout_width="0dp"
-                    android:layout_height="match_parent"
-                    android:layout_weight="1"
-                    android:background="#E56D37"
-                    android:gravity="center"
-                    android:orientation="vertical">
-
-                    <ImageView
+                    <LinearLayout
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:src="@drawable/tong_hu_ji_lu" />
+                        android:layout_marginTop="@dimen/d20"
+                        >
 
-                    <TextView
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_marginTop="10dp"
-                        android:text="@string/call_list"
-                        android:textColor="#ffffff"
-                        android:textSize="16dp" />
+                        <TextView
+                            android:id="@+id/watch_activity_home_age"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:paddingTop="@dimen/d5"
+                            android:paddingBottom="@dimen/d5"
+                            android:paddingLeft="@dimen/d10"
+                            android:paddingRight="@dimen/d10"
+                            android:background="@drawable/shape_main_age_bg"
+                            android:textSize="@dimen/font_size_18"
+                            android:textColor="@color/white"
+                            android:text="23岁"
+                            />
+                        <TextView
+                            android:id="@+id/watch_activity_home_job"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:paddingTop="@dimen/d5"
+                            android:paddingBottom="@dimen/d5"
+                            android:paddingLeft="@dimen/d10"
+                            android:paddingRight="@dimen/d10"
+                            android:background="@drawable/shape_main_age_bg"
+                            android:textSize="@dimen/font_size_18"
+                            android:textColor="@color/white"
+                            android:text="骨科护士"
+                            android:layout_marginLeft="@dimen/d18"
+
+                            />
+
+                    </LinearLayout>
 
                 </LinearLayout>
 
-            </LinearLayout>
+                <TextView
+                    android:id="@+id/watch_activity_home_setting"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginRight="@dimen/d60"
+                    android:paddingTop="@dimen/d10"
+                    android:paddingBottom="@dimen/d10"
+                    android:paddingLeft="@dimen/d20"
+                    android:paddingRight="@dimen/d20"
+                    android:textSize="@dimen/font_size_18"
+                    android:textColor="@color/txt_number"
+                    android:text="系统设置"
+                    android:layout_alignParentRight="true"
+                    android:layout_centerVertical="true"
+                    android:layout_marginLeft="@dimen/d18"
+                    android:background="@drawable/shape_main_setting_bg"
+                    />
+
+            </RelativeLayout>
 
             <LinearLayout
                 android:layout_width="match_parent"
-                android:layout_height="0dp"
-                android:layout_weight="1"
-                android:orientation="horizontal">
-
-                <RelativeLayout
-                    android:layout_width="0dp"
-                    android:layout_height="match_parent"
-                    android:layout_weight="1">
-
-                    <TextView
-                        android:id="@+id/list_item_img_icon_num"
-                        android:layout_width="10dp"
-                        android:layout_height="10dp"
-                        android:layout_alignParentRight="true"
-                        android:background="@drawable/shape_untreated_quantity"
-                        android:gravity="center"
-                        android:textColor="#FF3030"
-                        android:textSize="12sp" />
+                android:layout_height="match_parent"
+                android:layout_below="@+id/watch_activity_home_top_view"
+                android:orientation="vertical"
+                android:background="@drawable/shape_main_bottom_bg"
+                >
 
-                    <View
-                        android:id="@+id/view_center"
-                        android:layout_width="match_parent"
-                        android:layout_height="0dp"
-                        android:layout_centerInParent="true"/>
+                <LinearLayout
+                    android:id="@+id/watch_activity_home_call_list_ll"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_margin="@dimen/d20"
+                    android:clickable="true"
+                    android:orientation="horizontal"
+                    android:gravity="center"
+                    >
 
                     <LinearLayout
-                        android:id="@+id/channel_im_layout"
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:gravity="center"
-                        android:layout_alignParentBottom="true"
-                        android:layout_below="@id/view_center"
-                        android:background="#F78B8F"
-                        android:orientation="vertical">
+                        android:layout_width="@dimen/d250"
+                        android:layout_height="@dimen/d220"
+                        android:background="@mipmap/tong"
+                        android:gravity="center_horizontal"
+                        android:orientation="vertical"
+                        >
 
                         <TextView
-                            android:layout_width="match_parent"
+                            android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:gravity="center"
-                            android:textColor="#ffffff"
-                            android:textSize="16sp"
-                            android:text="@string/group_message"/>
-
+                            android:text="通话列表"
+                            android:textStyle="bold"
+                            android:textColor="@color/white"
+                            android:textSize="@dimen/font_size_24"
+                            android:layout_marginTop="@dimen/d20"
+                            />
                         <TextView
-                            android:id="@+id/tv_im_count"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:textColor="#ffffff"
-                            android:textSize="12sp"
-                            android:text="0"/>
+                            android:text="来电/未接/呼出"
+                            android:textColor="@color/white"
+                            android:textSize="@dimen/font_size_12"
+                            android:layout_marginTop="@dimen/d10"
+                            />
 
                     </LinearLayout>
 
                     <LinearLayout
-                        android:id="@+id/user_name_linlyout"
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:layout_above="@id/channel_im_layout"
-                        android:gravity="center"
+                        android:id="@+id/watch_activity_home_people_list_ll"
+                        android:layout_width="@dimen/d250"
+                        android:layout_height="@dimen/d220"
+                        android:background="@mipmap/gu"
                         android:orientation="vertical"
-                        android:background="#5CB615">
-
-                        <ImageView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginTop="10dp"
-                            android:src="@drawable/hu_shi_to_xiang" />
-
-                        <com.wdkl.ncs.android.lib.widget.MarqueeTextView
-                            android:id="@+id/watch_name_tv"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginTop="2dp"
-                            android:paddingStart="5dp"
-                            android:paddingEnd="5dp"
-                            android:textColor="#ffffff"
-                            android:textSize="16sp"
-                            android:singleLine="true"
-                            android:ellipsize="marquee"
-                            android:focusable="true"
-                            android:focusableInTouchMode="true"/>
+                        android:gravity="center_horizontal"
+                        android:layout_marginLeft="@dimen/d30"
+                        >
 
                         <TextView
-                            android:id="@+id/watch_role_name_tv"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:layout_marginTop="2dp"
-                            android:textColor="#ffffff"
-                            android:textSize="16sp"
-                            android:visibility="gone"/>
-
+                            android:text="@string/custom_title"
+                            android:textStyle="bold"
+                            android:textColor="@color/white"
+                            android:textSize="@dimen/font_size_24"
+                            android:layout_marginTop="@dimen/d20"
+                            />
                         <TextView
-                            android:id="@+id/watch_user_phone_tv"
                             android:layout_width="wrap_content"
                             android:layout_height="wrap_content"
-                            android:layout_marginTop="2dp"
-                            android:textColor="#ffffff"
-                            android:textSize="14sp" />
+                            android:text="负责的病人"
+                            android:textColor="@color/white"
+                            android:textSize="@dimen/font_size_12"
+                            android:layout_marginTop="@dimen/d10"
+                            />
                     </LinearLayout>
+
+
+                </LinearLayout>
+
+                <RelativeLayout
+                    android:id="@+id/watch_activity_home_msg_ll"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:background="@drawable/shape_bed_bg"
+                    android:padding="@dimen/d30"
+                    android:layout_margin="@dimen/d20"
+                    android:gravity="center_vertical"
+                    >
+
+                    <ImageView
+                        android:id="@+id/watch_activity_home_msg_img"
+                        android:layout_width="@dimen/d40"
+                        android:layout_height="@dimen/d40"
+                        android:background="@mipmap/qun"
+                        />
+
+                    <TextView
+                        android:id="@+id/watch_activity_home_msg_title"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_toRightOf="@+id/watch_activity_home_msg_img"
+                        android:text="群留言列表"
+                        android:textColor="@color/black"
+                        android:textSize="@dimen/font_size_24"
+                        android:layout_marginLeft="@dimen/d30"
+                        />
+                    <TextView
+                        android:id="@+id/watch_activity_home_msg_tx"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:paddingRight="@dimen/d10"
+                        android:paddingLeft="@dimen/d10"
+                        android:paddingTop="@dimen/d1"
+                        android:paddingBottom="@dimen/d1"
+                        android:layout_marginRight="@dimen/d30"
+                        android:layout_toLeftOf="@+id/watch_activity_home_msg_img2"
+                        android:text="1"
+                        android:textColor="@color/white"
+                        android:textSize="@dimen/font_size_24"
+                        android:textStyle="bold"
+                        android:visibility="gone"
+                        android:background="@drawable/shape_untreated_quantity"
+
+                        />
+                    <ImageView
+                        android:id="@+id/watch_activity_home_msg_img2"
+                        android:layout_width="@dimen/d10"
+                        android:layout_height="@dimen/d20"
+                        android:background="@mipmap/jian"
+                        android:layout_alignParentRight="true"
+                        android:layout_centerVertical="true"
+                        />
                 </RelativeLayout>
 
+                <RelativeLayout
+                    android:id="@+id/watch_activity_home_room_ll"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:background="@drawable/shape_bed_bg"
+                    android:padding="@dimen/d30"
+                    android:layout_margin="@dimen/d20"
+                    android:gravity="center_vertical"
+                    >
+
+                    <ImageView
+                        android:id="@+id/watch_activity_home_room_img"
+                        android:layout_width="@dimen/d40"
+                        android:layout_height="@dimen/d40"
+                        android:background="@mipmap/fang"
+                        />
+
+                    <TextView
+                        android:id="@+id/watch_activity_home_room_title"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_toRightOf="@+id/watch_activity_home_room_img"
+                        android:text="房间列表"
+                        android:textColor="@color/black"
+                        android:textSize="@dimen/font_size_24"
+                        android:layout_marginLeft="@dimen/d30"
+                        />
+                    <TextView
+                        android:id="@+id/watch_activity_home_room_tx"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:paddingRight="@dimen/d10"
+                        android:paddingLeft="@dimen/d10"
+                        android:paddingTop="@dimen/d1"
+                        android:paddingBottom="@dimen/d1"
+                        android:layout_marginRight="@dimen/d30"
+                        android:layout_toLeftOf="@+id/watch_activity_home_room_img2"
+                        android:text="1"
+                        android:textColor="@color/white"
+                        android:textSize="@dimen/font_size_24"
+                        android:textStyle="bold"
+                        android:visibility="gone"
+                        android:background="@drawable/shape_untreated_quantity"
+
+                        />
+                    <ImageView
+                        android:id="@+id/watch_activity_home_room_img2"
+                        android:layout_width="@dimen/d10"
+                        android:layout_height="@dimen/d20"
+                        android:background="@mipmap/jian"
+                        android:layout_alignParentRight="true"
+                        android:layout_centerVertical="true"
+                        />
+                </RelativeLayout>
+
+                <RelativeLayout
+                    android:id="@+id/watch_activity_home_colleagues_ll"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:background="@drawable/shape_bed_bg"
+                    android:padding="@dimen/d30"
+                    android:layout_margin="@dimen/d20"
+                    android:gravity="center_vertical"
+                    >
+
+                    <ImageView
+                        android:id="@+id/watch_activity_home_colleagues_img"
+                        android:layout_width="@dimen/d40"
+                        android:layout_height="@dimen/d40"
+                        android:background="@mipmap/ts"
+                        />
+
+                    <TextView
+                        android:id="@+id/watch_activity_home_colleagues_title"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_toRightOf="@+id/watch_activity_home_colleagues_img"
+                        android:text="同事列表"
+                        android:textColor="@color/black"
+                        android:textSize="@dimen/font_size_24"
+                        android:layout_marginLeft="@dimen/d30"
+                        />
+                    <TextView
+                        android:id="@+id/watch_activity_home_colleagues_tx"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:paddingRight="@dimen/d10"
+                        android:paddingLeft="@dimen/d10"
+                        android:paddingTop="@dimen/d1"
+                        android:paddingBottom="@dimen/d1"
+                        android:layout_marginRight="@dimen/d30"
+                        android:layout_toLeftOf="@+id/watch_activity_home_colleagues_img2"
+                        android:text="1"
+                        android:textColor="@color/white"
+                        android:textSize="@dimen/font_size_24"
+                        android:textStyle="bold"
+                        android:visibility="gone"
+                        android:background="@drawable/shape_untreated_quantity"
+
+                        />
+                    <ImageView
+                        android:id="@+id/watch_activity_home_colleagues_img2"
+                        android:layout_width="@dimen/d10"
+                        android:layout_height="@dimen/d20"
+                        android:background="@mipmap/jian"
+                        android:layout_alignParentRight="true"
+                        android:layout_centerVertical="true"
+                        />
+                </RelativeLayout>
+
+            </LinearLayout>
+
+            <LinearLayout
+
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_alignParentBottom="true"
+                android:layout_marginRight="@dimen/d20"
+                android:layout_marginLeft="@dimen/d20"
+                android:layout_marginBottom="@dimen/d40"
+                android:paddingTop="@dimen/d20"
+                android:paddingBottom="@dimen/d20"
+                android:paddingLeft="@dimen/d30"
+                android:paddingRight="@dimen/d30"
+                android:background="@drawable/shape_main_hos_txt_bg"
+                >
+
                 <LinearLayout
-                    android:id="@+id/state_linlyout"
-                    android:layout_width="0dp"
-                    android:layout_height="match_parent"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
                     android:layout_weight="1"
                     android:gravity="center"
-                    android:orientation="vertical">
-
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="0dp"
-                        android:layout_weight="1"
-                        android:orientation="horizontal">
-
-                        <LinearLayout
-                            android:layout_width="0dp"
-                            android:layout_height="match_parent"
-                            android:layout_weight="1"
-                            android:background="#EA89C0"
-                            android:gravity="center"
-                            android:orientation="vertical">
-
-                            <ImageView
-                                android:src="@drawable/icons8_signal_90"
-                                android:layout_width="18dp"
-                                android:layout_height="18dp"/>
-
-                            <TextView
-                                android:id="@+id/tv_signal_strength"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:textColor="#ffffff"
-                                android:textSize="12sp" />
-                        </LinearLayout>
-
-
-                        <LinearLayout
-                            android:id="@+id/ll_clerk_list"
-                            android:layout_width="0dp"
-                            android:layout_height="match_parent"
-                            android:layout_weight="1"
-                            android:background="#5C34A9"
-                            android:orientation="vertical"
-                            android:gravity="center">
-
-                            <ImageView
-                                android:layout_width="18dp"
-                                android:layout_height="18dp"
-                                android:src="@drawable/icons8_users_90" />
-
-                            <TextView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:text="@string/colleague"
-                                android:textColor="#ffffff"
-                                android:textSize="12sp" />
-
-                        </LinearLayout>
-
+                    >
+                    <ImageView
+                        android:layout_width="@dimen/d30"
+                        android:layout_height="@dimen/d20"
+                        android:background="@mipmap/wifi"
+                        />
+                    <TextView
+                        android:id="@+id/watch_activity_home_btoom_network"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="WBDL-5G"
+                        android:textColor="@color/white"
+                        android:textSize="@dimen/font_size_16"
+                        android:layout_marginLeft="@dimen/d10"
+                        />
 
-                    </LinearLayout>
+                </LinearLayout>
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    >
+                    <ImageView
+                        android:layout_width="@dimen/d25"
+                        android:layout_height="@dimen/d20"
+                        android:background="@mipmap/tuo"
+                        />
+                    <TextView
+                        android:id="@+id/watch_activity_home_btoom_type"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="未托管"
+                        android:textColor="@color/white"
+                        android:textSize="@dimen/font_size_16"
+                        android:layout_marginLeft="@dimen/d10"
+                        />
+                </LinearLayout>
 
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="0dp"
-                        android:layout_weight="1"
-                        android:orientation="horizontal">
-
-                        <LinearLayout
-                            android:layout_width="0dp"
-                            android:layout_height="match_parent"
-                            android:layout_weight="1"
-                            android:background="#48CFB0"
-                            android:gravity="center"
-                            android:orientation="vertical">
-
-                            <ImageView
-                                android:id="@+id/electric_quantity_imagev"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:src="@drawable/dian_liang" />
-
-                            <TextView
-                                android:id="@+id/electric_quantity_tv"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:text="-"
-                                android:textColor="#ffffff"
-                                android:textSize="16sp" />
-
-                            <TextView
-                                android:id="@+id/battery_warning_tv"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:text=""
-                                android:textColor="#ffffff"
-                                android:textSize="16sp"
-                                android:visibility="gone" />
-                        </LinearLayout>
-
-
-                        <LinearLayout
-                            android:id="@+id/other_linyout"
-                            android:layout_width="0dp"
-                            android:layout_height="match_parent"
-                            android:layout_weight="1"
-                            android:background="#FFDE00"
-                            android:gravity="center"
-                            android:orientation="vertical">
-
-                            <TextView
-                                android:id="@+id/sip_state_tv"
-                                android:layout_width="8dp"
-                                android:layout_height="8dp"
-                                android:background="#FF0000"
-                                 />
-
-                            <ImageView
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_marginTop="2dp"
-                                android:src="@drawable/geng_duo" />
-
-                            <TextView
-                                android:id="@+id/tv_net_reconnect_text"
-                                android:visibility="gone"
-                                android:text="@string/reconnect"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:textColor="@color/warn_orange"
-                                />
-
-                        </LinearLayout>
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    >
+                    <ImageView
+                        android:layout_width="@dimen/d15"
+                        android:layout_height="@dimen/d20"
+                        android:background="@mipmap/dian"
+                        />
 
-                    </LinearLayout>
+                    <TextView
+                        android:id="@+id/watch_activity_home_btoom_Power"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="@dimen/d10"
+                        android:text="90%"
+                        android:textColor="@color/white"
+                        android:textSize="@dimen/font_size_16" />
+                </LinearLayout>
 
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:gravity="center"
+                    >
+                    <ImageView
+                        android:layout_width="@dimen/d25"
+                        android:layout_height="@dimen/d20"
+                        android:background="@mipmap/ic_tcp_fail"
+                        />
+                    <TextView
+                        android:id="@+id/watch_activity_home_btoom_tcp"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/tcp_connect_success"
+                        android:textColor="@color/white"
+                        android:textSize="@dimen/font_size_16"
+                        android:layout_marginLeft="@dimen/d10"
+                        />
                 </LinearLayout>
 
             </LinearLayout>
 
 
-        </LinearLayout>
+        </RelativeLayout>
 
-        <TextView
-            android:id="@+id/tv_register_version"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:textSize="12sp"
-            android:text="version"
-            android:textColor="@color/color_white"
-            android:layout_marginTop="5dp"
-            android:layout_marginEnd="5dp"
-            android:gravity="center"
-            android:layout_alignParentEnd="true"/>
 
     </RelativeLayout>
 </layout>

+ 256 - 73
android_mobile/src/main/res/layout/watch_activity_register.xml

@@ -1,115 +1,298 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android">
-<LinearLayout
+<RelativeLayout
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="#FFBDC3"
+    android:background="@mipmap/activation_p_bg"
     android:padding="10dp"
-    android:orientation="vertical">
+   >
 
-    <ScrollView
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
 
+    <TextView
+        android:id="@+id/activation_title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="请先激活设备"
+        android:textStyle="bold"
+        android:textSize="@dimen/font_size_45"
+        android:textColor="@color/white"
+        android:layout_marginTop="@dimen/d156"
+        android:layout_centerHorizontal="true"
+
+        />
+    <TextView
+        android:id="@+id/activation_title_msg"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="设置参数后激活"
+        android:textSize="@dimen/font_size_28"
+        android:textColor="@color/white"
+        android:layout_below="@+id/activation_title"
+        android:textStyle="bold"
+        android:layout_marginTop="@dimen/d10"
+        android:layout_centerHorizontal="true"
+        />
+    <LinearLayout
+        android:layout_width="@dimen/d450"
+        android:layout_height="@dimen/d520"
+        android:orientation="vertical"
+        android:background="@drawable/shape_bed_bg"
+        android:layout_below="@+id/activation_title_msg"
+        android:layout_marginTop="@dimen/d20"
+        android:layout_marginRight="@dimen/d24"
+        android:layout_centerHorizontal="true"
+        android:layout_marginBottom="@dimen/d10">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="智能健康 关爱互联系统"
+            android:textSize="@dimen/font_size_35"
+            android:textColor="@color/black"
+            android:textStyle="bold"
+            android:layout_gravity="center"
+            android:layout_marginTop="@dimen/d45" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="扫描二维码进行激活"
+            android:textSize="@dimen/font_size_10"
+            android:textColor="@color/black"
+            android:visibility="gone"
+            android:layout_marginTop="@dimen/d10" />
+
+        <ImageView
+            android:id="@+id/activation_qr_code"
+            android:layout_width="@dimen/d112"
+            android:layout_height="@dimen/d112"
+            android:visibility="gone"
+            android:layout_marginTop="@dimen/d10" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:layout_marginTop="@dimen/d30"
+            android:layout_marginLeft="@dimen/d90">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="当前版本号:"
+                android:textSize="@dimen/font_size_24"
+                android:textColor="@color/black"
+                android:textStyle="bold" />
+
+            <TextView
+                android:id="@+id/activation_v"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="V1.0.1.0"
+                android:layout_marginLeft="@dimen/d10"
+                android:textSize="@dimen/font_size_20"
+                android:textColor="@color/txt_setting" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:layout_marginLeft="@dimen/d140"
+            android:layout_marginTop="@dimen/d15">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="本机IP:"
+                android:textSize="@dimen/font_size_24"
+                android:textColor="@color/black"
+                android:textStyle="bold" />
+
+            <TextView
+                android:id="@+id/activation_ip"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="192.168.0.0"
+                android:layout_marginLeft="@dimen/d10"
+                android:textSize="@dimen/font_size_20"
+                android:textColor="@color/txt_setting" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:layout_marginLeft="@dimen/d162"
+            android:layout_marginTop="@dimen/d15">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="网关:"
+                android:textSize="@dimen/font_size_24"
+                android:textColor="@color/black"
+                android:textStyle="bold" />
+
+            <TextView
+                android:id="@+id/activation_wg"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="192.168.0.0"
+                android:layout_marginLeft="@dimen/d10"
+                android:textSize="@dimen/font_size_20"
+                android:textColor="@color/txt_setting" />
+
+        </LinearLayout>
 
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:orientation="vertical">
+            android:orientation="horizontal"
+            android:layout_marginLeft="@dimen/d162"
+            android:layout_marginTop="@dimen/d15">
 
             <TextView
-                android:layout_width="match_parent"
+                android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="10dp"
-                android:text="@string/register_server_ip"
-                android:textColor="@color/grgray"
-                android:textSize="15sp" />
+                android:text="掩码:"
+                android:textSize="@dimen/font_size_24"
+                android:textColor="@color/black"
+                android:textStyle="bold" />
 
             <TextView
-                android:id="@+id/tv_server_ip"
-                android:layout_width="match_parent"
+                android:id="@+id/activation_ym"
+                android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="5dp"
-                android:text=""
-                android:textSize="20sp" />
+                android:text="192.168.0.0"
+                android:layout_marginLeft="@dimen/d10"
+                android:textSize="@dimen/font_size_20"
+                android:textColor="@color/txt_setting" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:layout_marginLeft="@dimen/d140"
+            android:layout_marginTop="@dimen/d15">
 
             <TextView
-                android:id="@+id/tv_mac_addr"
-                android:layout_width="match_parent"
+                android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="10dp"
-                android:text="@string/register_device_identifier"
-                android:textColor="@color/grgray"
-                android:textSize="15sp" />
+                android:text="注册码:"
+                android:textSize="@dimen/font_size_24"
+                android:textColor="@color/black"
+                android:textStyle="bold" />
 
             <TextView
-                android:id="@+id/tv_feedback_device_info"
-                android:layout_width="match_parent"
+                android:id="@+id/activation_zcm"
+                android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="5dp"
-                android:text=""
-                android:textSize="20sp" />
+                android:text="192.168.0.0"
+                android:layout_marginLeft="@dimen/d10"
+                android:textSize="@dimen/font_size_20"
+                android:textColor="@color/txt_setting" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:layout_marginLeft="@dimen/d116"
+            android:layout_marginTop="@dimen/d15">
 
             <TextView
-                android:id="@+id/tv_register_status"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="10dp"
-                android:textColor="#F07928"
-                android:textSize="15sp" />
+                android:text="服务器IP:"
+                android:textSize="@dimen/font_size_24"
+                android:textColor="@color/black"
+                android:textStyle="bold" />
 
             <TextView
+                android:id="@+id/activation_fuq"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="192.168.0.0"
+                android:layout_marginLeft="@dimen/d10"
+                android:textSize="@dimen/font_size_20"
+                android:textColor="@color/txt_setting" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/d48"
+            android:layout_marginLeft="@dimen/d19"
+            android:layout_marginRight="@dimen/d19"
+            android:layout_marginTop="@dimen/d30"
+
+            android:gravity="center_vertical"
+            android:orientation="horizontal">
+
+            <Button
                 android:id="@+id/tv_register_ok"
-                android:layout_width="match_parent"
-                android:layout_height="40dp"
-                android:layout_marginBottom="20dp"
-                android:layout_marginLeft="30dp"
-                android:layout_marginRight="30dp"
-                android:layout_marginTop="20dp"
-                android:background="#ffffff"
+                android:layout_width="0dp"
+                android:layout_height="@dimen/d48"
+                android:background="@drawable/shape_main_hos_txt_bg"
                 android:gravity="center"
                 android:text="@string/register_done"
-                android:textSize="18sp" />
+                android:layout_weight="1"
+                android:textColor="@color/white"
+                android:textSize="16sp" />
 
-            <TextView
+            <Button
                 android:id="@+id/tv_restart_app"
-                android:layout_width="match_parent"
-                android:layout_height="40dp"
-                android:layout_marginBottom="20dp"
-                android:layout_marginLeft="30dp"
-                android:layout_marginRight="30dp"
-                android:layout_marginTop="20dp"
-                android:background="#ffffff"
+                android:layout_width="0dp"
+                android:layout_height="@dimen/d48"
+                android:layout_marginLeft="@dimen/d14"
+                android:background="@drawable/shape_main_hos_txt_bg"
                 android:gravity="center"
                 android:text="@string/register_restart"
-                android:textSize="18sp" />
+                android:layout_weight="1"
+                android:textColor="@color/white"
+                android:textSize="16sp" />
 
-            <TextView
-                android:id="@+id/tv_config_server"
-                android:layout_width="match_parent"
-                android:layout_height="40dp"
-                android:layout_marginBottom="20dp"
-                android:layout_marginLeft="30dp"
-                android:layout_marginRight="30dp"
-                android:layout_marginTop="20dp"
-                android:background="#ffffff"
+            <Button
+                android:id="@+id/activation_system_button"
+                android:layout_width="0dp"
+                android:layout_height="@dimen/d48"
+                android:layout_marginLeft="@dimen/d14"
+                android:layout_marginRight="@dimen/d14"
+                android:layout_weight="1"
+                android:background="@drawable/shape_main_hos_txt_bg"
                 android:gravity="center"
-                android:text="@string/register_config_server"
-                android:textSize="18sp" />
+                android:text="系统设置"
+                android:textColor="@color/white"
+                android:textSize="16sp" />
 
-            <TextView
-                android:id="@+id/tv_language_settings"
-                android:layout_width="match_parent"
-                android:layout_height="40dp"
-                android:layout_marginBottom="20dp"
-                android:layout_marginLeft="30dp"
-                android:layout_marginRight="30dp"
-                android:layout_marginTop="20dp"
-                android:background="#ffffff"
+            <Button
+                android:id="@+id/tv_config_server"
+                android:layout_width="0dp"
+                android:layout_height="@dimen/d48"
+                android:layout_weight="1"
+                android:background="@drawable/shape_main_hos_txt_bg"
                 android:gravity="center"
-                android:text="@string/str_language_settings"
-                android:textSize="18sp" />
+                android:text="@string/register_config_server"
+                android:textColor="@color/white"
+                android:textSize="16sp" />
         </LinearLayout>
-    </ScrollView>
-</LinearLayout>
+
+        <TextView
+            android:id="@+id/tv_register_status"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/d10"
+            android:gravity="center"
+            android:textSize="@dimen/font_size_18"
+            android:textColor="@color/orange"
+            android:textStyle="bold" />
+    </LinearLayout>
+
+</RelativeLayout>
 </layout>

+ 47 - 22
android_mobile/src/main/res/layout/watch_contacts_lay.xml

@@ -5,33 +5,58 @@
         xmlns:bind="http://schemas.android.com/apk/res-auto"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:background="#FFBDC3">
-
-        <TextView
-            android:id="@+id/tv_empty_contacts"
-            android:textAlignment="center"
-            android:layout_marginTop="50dp"
-            android:textSize="20sp"
-            android:visibility="gone"
-            android:textColor="@color/warn_orange"
-            android:text="@string/data_empty"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"/>
+        android:background="#3978EC">
+
+        <include
+            android:id="@+id/watch_contacts_title_layout"
+            layout="@layout/view_title_layout"
+            />
+
 
-        <com.scwang.smartrefresh.layout.SmartRefreshLayout
-            android:id="@+id/refresh"
+
+
+        <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:layout_marginLeft="6dp"
-            android:layout_marginRight="6dp"
-            bind:srlEnableLoadMore="true"
-            bind:srlEnableRefresh="true">
+            android:layout_below="@+id/watch_contacts_title_layout"
+            android:orientation="vertical"
+            android:layout_marginTop="@dimen/d20"
+            android:background="@drawable/shape_main_bottom_bg"
+            >
+            <TextView
+                android:id="@+id/tv_empty_contacts"
+                android:textAlignment="center"
+                android:layout_marginTop="50dp"
+                android:layout_below="@id/search_view"
+                android:textSize="20sp"
+                android:visibility="gone"
+                android:textColor="@color/warn_orange"
+                android:text="@string/data_empty"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
 
-            <androidx.recyclerview.widget.RecyclerView
-                android:id="@+id/watch_contacts_list"
+            <com.scwang.smartrefresh.layout.SmartRefreshLayout
+                android:id="@+id/refresh"
                 android:layout_width="match_parent"
-                android:layout_height="match_parent"/>
-        </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+                android:layout_height="match_parent"
+                android:layout_marginTop="@dimen/d30"
+                android:layout_marginLeft="@dimen/d20"
+                android:layout_marginRight="@dimen/d20"
+                android:layout_marginBottom="@dimen/d20"
+                bind:srlEnableLoadMore="false"
+                bind:srlEnableRefresh="true">
+
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/watch_contacts_list"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    />
+
+            </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+
+        </LinearLayout>
+
+
 
     </RelativeLayout>
 </layout>

BIN
android_mobile/src/main/res/mipmap-hdpi/bo.png


BIN
android_mobile/src/main/res/mipmap-hdpi/chuanghao_bg.png


BIN
android_mobile/src/main/res/mipmap-hdpi/hu.png


BIN
android_mobile/src/main/res/mipmap-hdpi/im_bo.png


BIN
android_mobile/src/main/res/mipmap-hdpi/im_list_item_bg.png


BIN
android_mobile/src/main/res/mipmap-hdpi/integ_arrow_icon.png


BIN
android_mobile/src/main/res/mipmap-mdpi/bo.png


BIN
android_mobile/src/main/res/mipmap-mdpi/chuanghao_bg.png


BIN
android_mobile/src/main/res/mipmap-mdpi/hu.png


BIN
android_mobile/src/main/res/mipmap-mdpi/im_bo.png


BIN
android_mobile/src/main/res/mipmap-mdpi/im_list_item_bg.png


BIN
android_mobile/src/main/res/mipmap-mdpi/integ_arrow_icon.png


BIN
android_mobile/src/main/res/mipmap-mdpi/qh.png


BIN
android_mobile/src/main/res/mipmap-mdpi/shijianr.png


BIN
android_mobile/src/main/res/mipmap-xhdpi/bo.png


BIN
android_mobile/src/main/res/mipmap-xhdpi/chuanghao_bg.png


BIN
android_mobile/src/main/res/mipmap-xhdpi/hu.png


BIN
android_mobile/src/main/res/mipmap-xhdpi/im_bo.png


+ 0 - 0
android_mobile/src/main/res/mipmap-xhdpi/im_list_item_bg.png


Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác