From bdc8f378f6d736fda030b3ceceab3acd91505679 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 28 三月 2023 16:10:50 +0800
Subject: [PATCH] Merge branch 'wjc' into dev-cqy(1.5.9)

---
 HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/VideoDoorLockOpen.png          |    0 
 HDL-ON_Android/Assets/Language.ini                                              |    6 
 HDL-ON_iOS/Resources/Phone/MusicIcon/currentPlayList.png                        |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs               |   63 +++
 HDL_ON/UI/UI2/FuntionControlView/Music/View/PlayView.cs                         |    2 
 HDL_ON/Common/ApiUtlis.cs                                                       |    2 
 HDL_ON/UI/UI2/2-Classification/RoomPage.cs                                      |   35 +
 HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/HistoryList.png                |    0 
 HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs                            |   13 
 HDL-ON_Android/HDL-ON_Android.csproj                                            |   37 +
 HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/OneOpenLock.png                |    0 
 HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs                     |   63 +++
 HDL_ON/Common/HDLCommon.cs                                                      |    7 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs                          |   17 
 HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPageBLL.cs                  |   42 ++
 HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs                      |   16 
 HDL_ON/Entity/Enumerative/MyEnum.cs                                             |    4 
 HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/UnLocking.png                 |    0 
 HDL_ON/UI/UI2/FuntionControlView/Music/View/SizeClass.cs                        |   85 ++--
 HDL-ON_Android/Assets/Phone/MusicIcon/currentPlayList.png                       |    0 
 HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs                        |    2 
 HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/VideoDoorlockClose.png        |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/UnLocking.png                  |    0 
 HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs                                   |    1 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/securitydoorezviz.png             |    0 
 HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs                  |  209 ++++++----
 HDL_ON/Common/Constant.cs                                                       |    3 
 HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs                         |    2 
 HDL_ON/Entity/DB_ResidenceData.cs                                               |    4 
 HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs                            |   62 ++
 HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/history.png                   |    0 
 HDL_ON/Entity/Function/Function.cs                                              |   16 
 HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs                           |   12 
 HDL_ON/UI/UI2/2-Classification/FunctionPage.cs                                  |    6 
 HDL_ON/DAL/Server/HttpUtil.cs                                                   |    4 
 HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs                                 |   32 +
 HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs             |   14 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/securitydoorezviz.png              |    0 
 HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs                                         |   70 +-
 HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs                                       |   11 
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs                                            |   22 
 HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/HistoryList.png               |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/Cell.png                       |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs                  |   15 
 HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/Cell.png                      |    0 
 HDL_ON/UI/UI2/UserPage.cs                                                       |    3 
 HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/OneOpenLock.png               |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/UnLocked.png                   |    0 
 HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs                       |   44 +
 HDL-ON_iOS/Resources/Language.ini                                               |    6 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/VideoDoorLockClose.png         |    0 
 HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs                            |    2 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/FunctionBg/VideoDoorLockFunctionBg.png  |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/VideoDoorLockClose.png        |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/RTV.png                        |    0 
 HDL_ON/DAL/DriverLayer/Control.cs                                               |  114 +++--
 HDL_APP_Project.sln                                                             |   14 
 HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/RTV.png                       |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/UnLocked.png                  |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/VideoDoorLockOpen.png         |    0 
 HDL_ON/Entity/FunctionList.cs                                                   |    9 
 HDL-ON_Android/Assets/Phone/FunctionIcon/FunctionBg/VideoDoorLockFunctionBg.png |    0 
 HDL-ON_Android/Resources/drawable/dialog_background2.xml                        |    2 
 HDL_ON/Common/R.cs                                                              |    4 
 DLL/EZvizMonitor/ys.dll                                                         |    0 
 HDL-ON_Android/Resources/drawable/btn_disagree.xml                              |    2 
 HDL-ON_Android/Other/JPush/JPushReceiver.cs                                     |    3 
 67 files changed, 759 insertions(+), 321 deletions(-)

diff --git a/DLL/EZvizMonitor/ys.dll b/DLL/EZvizMonitor/ys.dll
index 7c6eb30..8cfec92 100644
--- a/DLL/EZvizMonitor/ys.dll
+++ b/DLL/EZvizMonitor/ys.dll
Binary files differ
diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index b5023d4..710afb0 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -1110,7 +1110,7 @@
 7155=Distress/Normal
 7156=Distress
 7157=whether to unlock
-7158=is
+7158=Is
 7159=Fall in the alarm
 7160=Someone called the police
 7161=Warning tone
@@ -1118,8 +1118,8 @@
 7163=Video call
 7164=Manipulator
 7165=Area intrusion alarm
-7166=camera
-7167=main switch
+7166=Camera
+7167=Main switch
 7168=PM10
 
 8501=Video door lock
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/Cell.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/Cell.png
new file mode 100644
index 0000000..5ae517b
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/Cell.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/HistoryList.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/HistoryList.png
new file mode 100644
index 0000000..0ad1a69
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/HistoryList.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/OneOpenLock.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/OneOpenLock.png
new file mode 100644
index 0000000..779d661
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/OneOpenLock.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/RTV.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/RTV.png
new file mode 100644
index 0000000..002d330
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/RTV.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/UnLocked.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/UnLocked.png
new file mode 100644
index 0000000..058119f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/UnLocked.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/UnLocking.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/UnLocking.png
new file mode 100644
index 0000000..6c15f4f
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/UnLocking.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/VideoDoorLockClose.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/VideoDoorLockClose.png
new file mode 100644
index 0000000..e4d40fb
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/VideoDoorLockClose.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/VideoDoorLockOpen.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/VideoDoorLockOpen.png
new file mode 100644
index 0000000..5d35a45
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/VideoDoorLockOpen.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/VideoDoorlockClose.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/VideoDoorlockClose.png
new file mode 100644
index 0000000..e4d40fb
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/VideoDoorlockClose.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/history.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/history.png
new file mode 100644
index 0000000..7609540
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/DoorLock/history.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/FunctionBg/VideoDoorLockFunctionBg.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/FunctionBg/VideoDoorLockFunctionBg.png
new file mode 100644
index 0000000..eeba7ab
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/FunctionBg/VideoDoorLockFunctionBg.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/securitydoorezviz.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/securitydoorezviz.png
new file mode 100644
index 0000000..e4d40fb
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/securitydoorezviz.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/MusicIcon/currentPlayList.png b/HDL-ON_Android/Assets/Phone/MusicIcon/currentPlayList.png
new file mode 100644
index 0000000..1cb04da
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/MusicIcon/currentPlayList.png
Binary files differ
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index cfd34e6..3c1c875 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -163,15 +163,6 @@
     <Reference Include="videophone">
       <HintPath>..\DLL\FL\Android\videophone.dll</HintPath>
     </Reference>
-    <Reference Include="Square.OkHttp3">
-      <HintPath>..\DLL\EZvizMonitor\Square.OkHttp3.dll</HintPath>
-    </Reference>
-    <Reference Include="Square.OkIO">
-      <HintPath>..\DLL\EZvizMonitor\Square.OkIO.dll</HintPath>
-    </Reference>
-    <Reference Include="ys">
-      <HintPath>..\DLL\EZvizMonitor\ys.dll</HintPath>
-    </Reference>
     <Reference Include="UMSdkDroid">
       <HintPath>..\DLL\UMeng\UMSdkDroid.dll</HintPath>
     </Reference>
@@ -419,6 +410,17 @@
     <AndroidAsset Include="Assets\h5\static\img\equal-plant-ic.7ef6befa.png" />
     <AndroidAsset Include="Assets\h5\static\img\coal-save-ic.6c5fd125.png" />
     <AndroidAsset Include="Assets\h5\static\font\SourceHanSansCN-Normal.otf" />
+    <AndroidAsset Include="Assets\Phone\MusicIcon\currentPlayList.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\OneOpenLock.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\RTV.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\UnLocked.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\UnLocking.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\VideoDoorlockClose.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\VideoDoorLockOpen.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\History.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\Cell.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\FunctionBg\VideoDoorLockFunctionBg.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\securitydoorezviz.png" />
   </ItemGroup>
   <ItemGroup>
     <AndroidResource Include="Resources\values\colors.xml" />
@@ -767,14 +769,17 @@
     <PackageReference Include="Xamarin.Android.Support.Constraint.Layout.Solver">
       <Version>1.1.0</Version>
     </PackageReference>
-    <PackageReference Include="Microsoft.AppCenter">
-      <Version>4.2.0</Version>
-    </PackageReference>
     <PackageReference Include="Microsoft.AppCenter.Crashes">
       <Version>4.2.0</Version>
     </PackageReference>
     <PackageReference Include="Microsoft.AppCenter.Analytics">
       <Version>4.2.0</Version>
+    </PackageReference>
+    <PackageReference Include="Microsoft.AppCenter">
+      <Version>4.2.0</Version>
+    </PackageReference>
+    <PackageReference Include="Square.OkHttp3">
+      <Version>3.14.4</Version>
     </PackageReference>
   </ItemGroup>
   <ItemGroup>
@@ -1616,7 +1621,7 @@
     <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\NormallyOpenIcon3.png" />
   </ItemGroup>
   <ItemGroup>
-    <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\History.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\HistoryList.png" />
   </ItemGroup>
   <ItemGroup>
     <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\DoorLock.png" />
@@ -1630,6 +1635,12 @@
     <Folder Include="Assets\Phone\FunctionIcon\Inverter\" />
     <Folder Include="Assets\Phone\FunctionIcon\Electrical\MechanicalArm\" />
   </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\ys\ys.csproj">
+      <Project>{DF065E3F-C3A1-4908-9582-000974B7C290}</Project>
+      <Name>ys</Name>
+    </ProjectReference>
+  </ItemGroup>
   <Import Project="..\HDL_ON\HDL_ON.projitems" Label="Shared" Condition="Exists('..\HDL_ON\HDL_ON.projitems')" />
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
diff --git a/HDL-ON_Android/Other/JPush/JPushReceiver.cs b/HDL-ON_Android/Other/JPush/JPushReceiver.cs
index 07f2fcb..e7cfbd3 100644
--- a/HDL-ON_Android/Other/JPush/JPushReceiver.cs
+++ b/HDL-ON_Android/Other/JPush/JPushReceiver.cs
@@ -36,7 +36,6 @@
         {
             //2020-12-23 瑙e喅鐐瑰嚮閫氱煡鏍忔墦寮�涓嶄簡APP闂
             //base.OnNotifyMessageOpened(context, notificationMessage);
-
             OpenNotification(context, notificationMessage);
         }
 
@@ -48,7 +47,7 @@
         public override void OnNotifyMessageArrived(Context context, NotificationMessage notificationMessage)
         {
             base.OnNotifyMessageArrived(context, notificationMessage);
-
+         
             var pushMes = new JPushMessageInfo()
             {
                 Title = notificationMessage.NotificationTitle,
diff --git a/HDL-ON_Android/Resources/drawable/btn_disagree.xml b/HDL-ON_Android/Resources/drawable/btn_disagree.xml
index c129eee..b6d14b6 100644
--- a/HDL-ON_Android/Resources/drawable/btn_disagree.xml
+++ b/HDL-ON_Android/Resources/drawable/btn_disagree.xml
@@ -8,7 +8,7 @@
 
     <!-- 濉厖棰滆壊 -->
     <solid
-        android:color="@color/white"        />
+        android:color="#FFFFFF"/>
 
     <!--    杈规棰滆壊-->
     <stroke
diff --git a/HDL-ON_Android/Resources/drawable/dialog_background2.xml b/HDL-ON_Android/Resources/drawable/dialog_background2.xml
index 47caf57..197bb29 100644
--- a/HDL-ON_Android/Resources/drawable/dialog_background2.xml
+++ b/HDL-ON_Android/Resources/drawable/dialog_background2.xml
@@ -8,6 +8,6 @@
 
     <!-- 濉厖棰滆壊 -->
     <solid
-        android:color="@color/white"        />
+        android:color="#FFFFFF"/>
 
 </shape>
\ No newline at end of file
diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini
index ed95171..49881a2 100644
--- a/HDL-ON_iOS/Resources/Language.ini
+++ b/HDL-ON_iOS/Resources/Language.ini
@@ -1110,7 +1110,7 @@
 7155=Distress/Normal
 7156=Distress
 7157=whether to unlock
-7158=is
+7158=Is
 7159=Fall in the alarm
 7160=Someone called the police
 7161=Warning tone
@@ -1118,8 +1118,8 @@
 7163=Video call
 7164=Manipulator
 7165=Area intrusion alarm
-7166=camera
-7167=main switch
+7166=Camera
+7167=Main switch
 7168=PM10
 
 8501=Video door lock
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/Cell.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/Cell.png
new file mode 100644
index 0000000..5ae517b
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/Cell.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/HistoryList.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/HistoryList.png
new file mode 100644
index 0000000..0ad1a69
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/HistoryList.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/OneOpenLock.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/OneOpenLock.png
new file mode 100644
index 0000000..779d661
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/OneOpenLock.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/RTV.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/RTV.png
new file mode 100644
index 0000000..002d330
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/RTV.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/UnLocked.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/UnLocked.png
new file mode 100644
index 0000000..058119f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/UnLocked.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/UnLocking.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/UnLocking.png
new file mode 100644
index 0000000..6c15f4f
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/UnLocking.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/VideoDoorLockClose.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/VideoDoorLockClose.png
new file mode 100644
index 0000000..e4d40fb
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/VideoDoorLockClose.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/VideoDoorLockOpen.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/VideoDoorLockOpen.png
new file mode 100644
index 0000000..5d35a45
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/DoorLock/VideoDoorLockOpen.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/FunctionBg/VideoDoorLockFunctionBg.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/FunctionBg/VideoDoorLockFunctionBg.png
new file mode 100644
index 0000000..eeba7ab
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/FunctionBg/VideoDoorLockFunctionBg.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/securitydoorezviz.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/securitydoorezviz.png
new file mode 100644
index 0000000..e4d40fb
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/securitydoorezviz.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/MusicIcon/currentPlayList.png b/HDL-ON_iOS/Resources/Phone/MusicIcon/currentPlayList.png
new file mode 100644
index 0000000..1cb04da
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/MusicIcon/currentPlayList.png
Binary files differ
diff --git a/HDL_APP_Project.sln b/HDL_APP_Project.sln
index 84800828..3865cd5 100644
--- a/HDL_APP_Project.sln
+++ b/HDL_APP_Project.sln
@@ -18,6 +18,8 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UMSdk", "UMSdk\UMSdk.csproj", "{5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ys", "..\ys\ys.csproj", "{DF065E3F-C3A1-4908-9582-000974B7C290}"
+EndProject
 Global
 	GlobalSection(SharedMSBuildProjectFiles) = preSolution
 		HDL_ON\HDL_ON.projitems*{09712674-2a38-407b-b1e2-560b2c352f9a}*SharedItemsImports = 4
@@ -119,6 +121,18 @@
 		{5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Release|iPhone.Build.0 = Release|Any CPU
 		{5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
 		{5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+		{DF065E3F-C3A1-4908-9582-000974B7C290}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{DF065E3F-C3A1-4908-9582-000974B7C290}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{DF065E3F-C3A1-4908-9582-000974B7C290}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+		{DF065E3F-C3A1-4908-9582-000974B7C290}.Debug|iPhone.Build.0 = Debug|Any CPU
+		{DF065E3F-C3A1-4908-9582-000974B7C290}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+		{DF065E3F-C3A1-4908-9582-000974B7C290}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+		{DF065E3F-C3A1-4908-9582-000974B7C290}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{DF065E3F-C3A1-4908-9582-000974B7C290}.Release|Any CPU.Build.0 = Release|Any CPU
+		{DF065E3F-C3A1-4908-9582-000974B7C290}.Release|iPhone.ActiveCfg = Release|Any CPU
+		{DF065E3F-C3A1-4908-9582-000974B7C290}.Release|iPhone.Build.0 = Release|Any CPU
+		{DF065E3F-C3A1-4908-9582-000974B7C290}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+		{DF065E3F-C3A1-4908-9582-000974B7C290}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs
index faa53af..21dc2b4 100644
--- a/HDL_ON/Common/ApiUtlis.cs
+++ b/HDL_ON/Common/ApiUtlis.cs
@@ -229,7 +229,7 @@
                                 foreach (var newFunction in deviceList.list)
                                 {
                                     newFunction.AssembleStatus();
-                                    newFunction.SaveFunctionFile();
+                                    newFunction.SaveFunctionFile(); 
                                     FunctionList.List.IniFunctionList(newFunction.savePath,true);
                                     MainPage.Log($"============璁惧============{iiii++}");
                                 }
diff --git a/HDL_ON/Common/Constant.cs b/HDL_ON/Common/Constant.cs
index 36d7dbc..92b1527 100644
--- a/HDL_ON/Common/Constant.cs
+++ b/HDL_ON/Common/Constant.cs
@@ -309,6 +309,9 @@
         /// HDL鍙瀵硅
         /// </summary>
         HDL_INTERPHONE,
+        /// <summary>
+        /// 闂ㄩ搩鎺ㄩ��(钀ょ煶瑙嗛闂ㄩ攣)
+        /// </summary>
         DOOR_BELL,
     }
 
diff --git a/HDL_ON/Common/HDLCommon.cs b/HDL_ON/Common/HDLCommon.cs
index df2cec0..0f918ef 100644
--- a/HDL_ON/Common/HDLCommon.cs
+++ b/HDL_ON/Common/HDLCommon.cs
@@ -304,8 +304,9 @@
                     }
                     else if (jpushMessageInfo.messageType.Contains(PushMessageType.HDL_INTERPHONE.ToString()))
                     {
+
                         if (string.IsNullOrEmpty(jpushMessageInfo.expantContent)) return;
-                        
+
                         //瀛楁鍏煎闂锛屽彧鑳界洿鎺ュ彇鍊间簡
                         var json = Newtonsoft.Json.Linq.JObject.Parse(jpushMessageInfo.expantContent);
                         try
@@ -397,7 +398,7 @@
                                 return;
                             }
                             ///瑙嗛闂ㄩ攣
-                            HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.SkipRTVActivity(expantContent.devSerial, expantContent.deviceId,expantContent.spk);
+                            HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.SkipRTVActivity(expantContent.devSerial, expantContent.deviceId,expantContent.spk,true);
                         }
                         catch { }
                     }
@@ -574,7 +575,7 @@
 
 
             //闃叉澶氭寮圭獥澶勭悊
-            if (alarmPushConfirmDialog == null)
+            if (alarmPushConfirmDialog == null) 
             {
                 alarmPushConfirmDialog = new ConfirmDialog(isAlarm);
                 alarmPushConfirmDialog.ShowDialog(Language.StringByID(StringId.Tip), jpushMessageInfo.Content, goAction, cancelAction, StringId.Cancel, StringId.LookOver);
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index feddcc3..68e1690 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -2002,11 +2002,11 @@
         /// <summary>
         /// 寰簭寰幆
         /// </summary>
-        public const int orderMode =5048;
+        public const int orderMode = 5048;
         /// <summary>
         /// 鍗曟洸鎾斁
         /// </summary>
-        public const int single =5049;
+        public const int single = 5049;
 
 
 
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index 652bc0d..bd951d5 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -83,8 +83,10 @@
         /// <summary>
         /// 鍒ゆ柇鏄惁鏈湴鍔犲瘑骞朵笖鍔犲瘑key涓嶄负绌�
         /// </summary>
-        public bool IsLocalEncryptAndGetAesKey {
-            get {
+        public bool IsLocalEncryptAndGetAesKey
+        {
+            get
+            {
                 return IsLocalEncrypt && (!string.IsNullOrEmpty(DB_ResidenceData.Instance.CurrentRegion.localSecret));
             }
         }
@@ -139,7 +141,7 @@
                 if (_GatewayOnline_Cloud != value)
                 {
                     _GatewayOnline_Cloud = value;
-                    if(GatewayOnline_Local)
+                    if (GatewayOnline_Local)
                     {
                         return;
                     }
@@ -249,7 +251,7 @@
         public void SearchLoaclGateway()
         {
             //2021-01-15 : 浣忓畢娌℃湁缁戝畾缃戝叧鐨勬椂鍊欎笉鐢ㄦ悳绱紝骞朵笖涓嶈兘閾炬帴mqtt
-            if(DB_ResidenceData.Instance.HomeGateway == null || string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.gatewayId))
+            if (DB_ResidenceData.Instance.HomeGateway == null || string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.gatewayId))
             {
                 return;
             }
@@ -308,9 +310,10 @@
         /// </summary>
         public void LoginGateway()
         {
-            if(loginGatewayThread== null)
+            if (loginGatewayThread == null)
             {
-                loginGatewayThread = new System.Threading.Thread(() => {
+                loginGatewayThread = new System.Threading.Thread(() =>
+                {
                     while (!Ins.myTcpClient.isConnected)
                     {
                         if (Ins.GatewayOnline_Local && myTcpClient.isConnected)
@@ -337,7 +340,8 @@
                 try
                 {
                     loginGatewayThread?.Abort();
-                }catch (Exception ex)
+                }
+                catch (Exception ex)
                 {
                     MainPage.Log($"閲嶅惎鐧诲綍缃戝叧绾跨▼寮傚父:{ex.Message}");
                 }
@@ -347,7 +351,7 @@
                     LoginGateway();
                 }
             }
-            
+
         }
 
 
@@ -357,9 +361,9 @@
         public void ControlScene(Scene scene)
         {
             //浣撻獙妯″紡
-            if(MainPage.NoLoginMode)
+            if (MainPage.NoLoginMode)
             {
-                foreach(var sceneFunction in scene.functions)
+                foreach (var sceneFunction in scene.functions)
                 {
                     var revString = "";
                     var upDataObj = new AlinkFunctionStatusObj();
@@ -406,7 +410,7 @@
         /// <param name="function"></param>
         /// <param name="useRemote">鏄惁鐩存帴浣跨敤杩滅▼鍙戦��</param>
         /// <returns></returns>
-        public bool SendWriteCommand(Function function, Dictionary<string, string> commandDictionary, bool useRemote = false,int resend = 3)
+        public bool SendWriteCommand(Function function, Dictionary<string, string> commandDictionary, bool useRemote = false, int resend = 3)
         {
             function.controlCounter++;
             function.refreshTime = DateTime.Now;
@@ -504,7 +508,7 @@
                         var functionControlDataObj = function.GetGatewayAlinkControlData(commandDictionary);
                         var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(functionControlDataObj);
                         var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlFunctionTopic, functionControlDataJson);
-                        new Control_Udp().SendLocalHdlLinkData(sendBytes, functionControlDataObj.id,resend);
+                        new Control_Udp().SendLocalHdlLinkData(sendBytes, functionControlDataObj.id, resend);
                         MainPage.Log($"鏈湴閫氳 鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}");
                     }
                 }
@@ -522,7 +526,7 @@
                                 commandDictionary.Add(FunctionAttributeKey.OnOff, commandDictionary[FunctionAttributeKey.Brightness] == "0" ? "off" : "on");
                             }
                         }
-                        if(function.spk == SPK.LightCCT)
+                        if (function.spk == SPK.LightCCT)
                         {
                             if (!commandDictionary.ContainsKey(FunctionAttributeKey.CCT))
                             {
@@ -546,10 +550,10 @@
         /// <summary>
         /// 鍏ㄥ紑鍏ㄥ叧鍔熻兘
         /// </summary>
-        public void SwtichFunctions(bool open,List<Function> functions)
+        public void SwtichFunctions(bool open, List<Function> functions)
         {
             //dome妯″紡鎺у埗
-            if(MainPage.NoLoginMode)
+            if (MainPage.NoLoginMode)
             {
                 new System.Threading.Thread(() =>
                 {
@@ -557,7 +561,7 @@
                     {
                         Dictionary<string, string> d1 = new Dictionary<string, string>();
                         d1.Add(FunctionAttributeKey.OnOff, open ? "on" : "off");
-                         if (function.spk == SPK.PanelSocket)
+                        if (function.spk == SPK.PanelSocket)
                         {
                             if (function.attributes.Find((obj) => obj.key == "on_off_usb") != null)
                             {
@@ -623,16 +627,16 @@
         {
             var pm = new DAL.Server.HttpServerRequest();
             var pack = pm.GetDeviceInfoList(functionIds);
-            if(pack!= null&& pack.Data!=null)
+            if (pack != null && pack.Data != null)
             {
                 //寰呮祴璇�2021-03-04
                 var ddd = Newtonsoft.Json.JsonConvert.DeserializeObject<List<AlinkStatusData>>(pack.Data.ToString());
-                if(ddd!= null)
+                if (ddd != null)
                 {
-                    foreach(var function in ddd)
+                    foreach (var function in ddd)
                     {
                         var temp = FunctionList.List.GetDeviceFunctionList().Find((obj) => obj.deviceId == function.deviceId);
-                        if(temp!= null)
+                        if (temp != null)
                         {
                             if (SPK.Get3tySpk(SPK.BrandType.Tuya).Contains(temp.spk))
                             {
@@ -648,7 +652,7 @@
         /// 鍙戦�佽鍙栧懡浠�
         /// 鑷姩鍒ゆ柇鏄惁涓篈鍗忚璁惧
         /// </summary>
-        public void SendReadCommand(Function function ,bool forceRemote = false)
+        public void SendReadCommand(Function function, bool forceRemote = false)
         {
             function.refreshTime = DateTime.Now;
             if (forceRemote)
@@ -732,7 +736,7 @@
                             {
                                 busClient.ReadBusData(function);
                             }
-                            
+
                         }
                         catch (Exception ex)
                         {
@@ -776,7 +780,7 @@
         /// <summary>
         /// 瀹夐槻鎺у埗
         /// </summary>
-        public void ControlSecurity(SecurityAlarm securityAlarm,string state)
+        public void ControlSecurity(SecurityAlarm securityAlarm, string state)
         {
             if (!Ins.GatewayOnline_Local)//缃戝叧鏈湴涓嶅湪绾�
             {
@@ -834,7 +838,7 @@
                 };
                 var aLinkJson = Newtonsoft.Json.JsonConvert.SerializeObject(aLinkData);
                 var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlScene, aLinkJson);
-                new Control_Udp().SendLocalHdlLinkData(sendBytes, aLinkData.id,0);
+                new Control_Udp().SendLocalHdlLinkData(sendBytes, aLinkData.id, 0);
             }
         }
 
@@ -928,10 +932,10 @@
         /// 杞崲鎺ユ敹鍒扮殑鏁版嵁
         /// </summary>
         /// <returns></returns>
-        public void ConvertReceiveData(byte[] receiveBytes,string ip)
+        public void ConvertReceiveData(byte[] receiveBytes, string ip)
         {
             var reString = Encoding.UTF8.GetString(receiveBytes);
-            AnalysisReceiveData(reString, receiveBytes,ip);
+            AnalysisReceiveData(reString, receiveBytes, ip);
         }
         /// <summary>
         /// 杞崲鎺ユ敹鍒扮殑鏁版嵁
@@ -939,7 +943,7 @@
         /// <param name="receiveString">杞琒tring鍚庣殑鏁版嵁</param>
         /// <param name="originalReceiveBytes"鍘熷Bytes鏁版嵁</param>
         /// <returns></returns>
-        public LocalCommunicationData AnalysisReceiveData(string receiveString, byte[] originalReceiveBytes , string sIp = null)
+        public LocalCommunicationData AnalysisReceiveData(string receiveString, byte[] originalReceiveBytes, string sIp = null)
         {
             LocalCommunicationData receiveObj = new LocalCommunicationData();
 
@@ -1118,7 +1122,8 @@
                         MainPage.Log($"瀹夐槻灞�鍩熺綉寮傚父锛歿ex.Message}");
                     }
                 }
-                else if (receiveObj.Topic == $"/user/{GatewayId}/custom/gateway/login_reply") {
+                else if (receiveObj.Topic == $"/user/{GatewayId}/custom/gateway/login_reply")
+                {
                     var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(receiveObj.BodyDataString);
                     if (temp.GetValue("objects").ToString().Contains("success"))
                     {
@@ -1161,7 +1166,7 @@
             }
             else
             {
-                if(processedDataList.Count> 50)
+                if (processedDataList.Count > 50)
                 {
                     processedDataList.RemoveAt(0);
                 }
@@ -1175,7 +1180,7 @@
         /// A鍗忚鏁版嵁
         /// </summary>
         /// <param name="updateBytes"></param>
-        public void UpdataFunctionStatus(string revString, byte[] usefulBytes,bool isCloudData = false)
+        public void UpdataFunctionStatus(string revString, byte[] usefulBytes, bool isCloudData = false)
         {
             ////test 浜戠杩炴帴鎴愬姛鏃讹紝涓嶉�傜敤鏈湴鏁版嵁鏇存柊
             //if (Ins.GatewayOnline_Cloud && !isCloudData)
@@ -1218,7 +1223,7 @@
 
                         if (Ins.GatewayOnline_Local && isCloudData)//鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞�
                         {
-                            if (!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(localFunction.spk) && !SPK.MusicSpkList().Contains( localFunction.spk))
+                            if (!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(localFunction.spk) && !SPK.MusicSpkList().Contains(localFunction.spk))
                             {
                                 //MainPage.Log($"A鍗忚鏇存柊鐘舵��:鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞�........");
 
@@ -1226,21 +1231,21 @@
                             }
                         }
 
-                        //if (SPK.MusicSpkList().Contains(localFunction.spk))
-                        //{
-                        //    if (updateTemp.status.Count < 3)
-                        //    {
-                        //        ///鏄煶涔愬姛鑳界殑
-                        //        ///涓婃姤灞炴�у皯3鏉′笉鍋氬鐞�
-                        //        return;
-                        //    }
-                        //}
-                        MainPage.Log($"闊充箰鏀跺埌鏁版嵁:{revString}");
+                        if (SPK.MusicSpkList().Contains(localFunction.spk))
+                        {
+                            MainPage.Log($"闊充箰鏀跺埌鏁版嵁:{revString}");
+
+                        }
                         foreach (var attr in updateTemp.status)
                         {
                             localFunction.time_stamp = temp.time_stamp;
                             localFunction.SetAttrState(attr.key, attr.value);
-                            Console.WriteLine("闊充箰鎾斁鍣ㄦ坊鍔犵紦瀛樻暟鎹�=======" + revString);
+                            if (SPK.MusicSpkList().Contains(localFunction.spk))
+                            {
+                                Console.WriteLine("闊充箰鎾斁鍣ㄦ坊鍔犵紦瀛樻暟鎹�=======" + revString);
+
+                            }
+
 
                         }
 
@@ -1256,7 +1261,7 @@
                                 break;
                             case SPK.AirSwitch:
                                 AirSwitchPage.UpdataState(localFunction);
-                                if(localFunction.GetAttribute(FunctionAttributeKey.Power)!=null)//濡傛灉鏄甫鐢甸噺鐨勭┖寮�涔熻鏇存柊鑳芥簮鐣岄潰
+                                if (localFunction.GetAttribute(FunctionAttributeKey.Power) != null)//濡傛灉鏄甫鐢甸噺鐨勭┖寮�涔熻鏇存柊鑳芥簮鐣岄潰
                                 {
                                     EnergyMainPage.UpdataStatus(localFunction);
                                 }
@@ -1295,7 +1300,7 @@
                                 CurtainModulePage.UpdataState(localFunction);
                                 break;
                             case SPK.CurtainDream:
-                                if(localFunction.GetAttrState(FunctionAttributeKey.Percent) == "0")
+                                if (localFunction.GetAttrState(FunctionAttributeKey.Percent) == "0")
                                 {
                                     localFunction.SetAttrState(FunctionAttributeKey.OnOff, "off");
                                 }
@@ -1388,7 +1393,7 @@
                             case SPK.SensorTemperature:
                             case SPK.SensorHumidity:
                             case SPK.SensorHcho:
-                                if(localFunction.spk == SPK.SensorTemperature)
+                                if (localFunction.spk == SPK.SensorTemperature)
                                 {
                                     HomePage.LoadEvent_RefreshEnvirIndoorTemp();
                                 }
@@ -1490,7 +1495,7 @@
                             case SPK.AvMusic:
                             case SPK.MusicStandard:
                                 //UI.Music.MusicMain.mMusicMain.RefreshView(updateTemp);
-                                Console.WriteLine("闊充箰鎾斁鍣ㄦ樉绀虹姸鎬�======="+ revString);
+                                Console.WriteLine("闊充箰鎾斁鍣ㄦ樉绀虹姸鎬�=======" + revString);
                                 //wjc
                                 break;
                             case SPK.Inverter:
@@ -1524,12 +1529,12 @@
         /// <summary>
         /// //涓�閿紙杩滅▼锛夊紑閿�
         /// </summary>
-        public void OneKeyUnlocking(Function doorlock,string extStr)
+        public void OneKeyUnlocking(Function doorlock, string extStr)
         {
             if (Ins.GatewayOnline_Local)
             {
                 Dictionary<string, string> dic = new Dictionary<string, string>();
-                var functionControlDataObj = doorlock.GetGatewayAlinkDoorlockData(UserInfo.Current.ID,extStr);
+                var functionControlDataObj = doorlock.GetGatewayAlinkDoorlockData(UserInfo.Current.ID, extStr);
                 var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(functionControlDataObj);
                 var sendBytes = Ins.ConvertSendBodyData($"/base/{Control.Ins.GatewayId}/thing/service/doorRemoteOpen/down", functionControlDataJson);
                 new Control_Udp().SendLocalHdlLinkData(sendBytes, functionControlDataObj.id, 0);
@@ -1544,7 +1549,7 @@
         /// </summary>
         /// <param name="functionId"></param>
         /// <param name="pwd"></param>
-        public void ConfirmUnlocking(string functionId,string pwd)
+        public void ConfirmUnlocking(string functionId, string pwd)
         {
             Loading loading = new Loading();
             MainPage.BaseView.AddChidren(loading);
@@ -1580,8 +1585,10 @@
                         //{
                         //    return false;
                         //}
-                        if (pack.Code != StateCode.SUCCESS) {
-                            Application.RunOnMainThread(() => {
+                        if (pack.Code != StateCode.SUCCESS)
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
                                 new PublicAssmebly().TipMsg(Language.StringByID(StringId.Tip), pack.message);
                                 UserInfo.Current.doorPasswordString = "";//
                                 UserInfo.Current.LastTimeOpenDoor = DateTime.MinValue;
@@ -1590,8 +1597,9 @@
                     }
                     if (pack.Code != StateCode.SUCCESS)
                     {
-                        Application.RunOnMainThread(() => {
-                            if(string.IsNullOrEmpty(pack.message))
+                        Application.RunOnMainThread(() =>
+                        {
+                            if (string.IsNullOrEmpty(pack.message))
                             {
                                 new PublicAssmebly().TipMsg(Language.StringByID(StringId.Tip),
                                     Language.StringByID(StringId.OperationFailed));
diff --git a/HDL_ON/DAL/Server/HttpUtil.cs b/HDL_ON/DAL/Server/HttpUtil.cs
index bf39c96..511a91e 100644
--- a/HDL_ON/DAL/Server/HttpUtil.cs
+++ b/HDL_ON/DAL/Server/HttpUtil.cs
@@ -17,8 +17,8 @@
         /// 鍥哄畾鍩熷悕,姝e紡鐜
         /// 鍏叡鍩熷悕灏辫繎瑙f瀽
         /// </summary>
-        //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
-        public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm
+        public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
+        //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm
         /// <summary>
         /// RegionMark
         /// </summary>
diff --git a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
index 896b8fe..bb298c4 100644
--- a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
+++ b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
@@ -15,7 +15,7 @@
 #else
 using Foundation;
 using UIKit;
-using Shared.IOS.HDLLinphoneSDK;
+//using Shared.IOS.HDLLinphoneSDK;
 #endif
 
 namespace Shared
@@ -766,35 +766,35 @@
         {
             [Weak] HDLLinphone hdlLinphone;
 
-            public OnHDLLinphoneCallDelegate(HDLLinphone mHDLLinphone)
-            {
-                this.hdlLinphone = mHDLLinphone;
-            }
+        //    public OnHDLLinphoneCallDelegate(HDLLinphone mHDLLinphone)
+        //    {
+        //        this.hdlLinphone = mHDLLinphone;
+        //    }
 
-            /// <summary>
-            /// 鎺ュ惉
-            /// </summary>
-            public override void OnAnswerAction()
-            {
-                hdlLinphone.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.HDL);
-            }
+        //    /// <summary>
+        //    /// 鎺ュ惉
+        //    /// </summary>
+        //    public override void OnAnswerAction()
+        //    {
+        //        hdlLinphone.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.HDL);
+        //    }
 
-            /// <summary>
-            /// 鎸傛柇
-            /// </summary>
-            /// <param name="callDuration"></param>
-            public override void OnHangUpAction(int callDuration)
-            {
-                hdlLinphone.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.HDL, callDuration);
-            }
+        //    /// <summary>
+        //    /// 鎸傛柇
+        //    /// </summary>
+        //    /// <param name="callDuration"></param>
+        //    public override void OnHangUpAction(int callDuration)
+        //    {
+        //        hdlLinphone.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.HDL, callDuration);
+        //    }
 
-            /// <summary>
-            /// 鎷掓帴
-            /// </summary>
-            public override void OnRejectCallAction()
-            {
-                hdlLinphone.HDLUpdateCallStatus(CallStatusType.REJECT, InterphoneType.HDL);
-            }
+        //    /// <summary>
+        //    /// 鎷掓帴
+        //    /// </summary>
+        //    public override void OnRejectCallAction()
+        //    {
+        //        hdlLinphone.HDLUpdateCallStatus(CallStatusType.REJECT, InterphoneType.HDL);
+        //    }
 
             /// <summary>
             /// 鎴浘鎴愬姛
@@ -810,13 +810,13 @@
             ////hdlLinphone.ScreenshotSuccessfulAction(dataBytes);
             //}
 
-            /// <summary>
-            /// 寮�閿佹垚鍔�
-            /// </summary>
-            public override void OnUnlockAction()
-            {
-                hdlLinphone.HDLUnlockAction();
-            }
+        //    /// <summary>
+        //    /// 寮�閿佹垚鍔�
+        //    /// </summary>
+        //    public override void OnUnlockAction()
+        //    {
+        //        hdlLinphone.HDLUnlockAction();
+        //    }
 
             /// <summary>
             /// 鏉ョ數涓�...
@@ -828,7 +828,7 @@
 
 
 
-        }
+        //}
 
         #endregion
 #endif
diff --git a/HDL_ON/Entity/DB_ResidenceData.cs b/HDL_ON/Entity/DB_ResidenceData.cs
index 3a0e4ee..207a7dc 100644
--- a/HDL_ON/Entity/DB_ResidenceData.cs
+++ b/HDL_ON/Entity/DB_ResidenceData.cs
@@ -76,7 +76,9 @@
                                     ShowFunction.Sensor,ShowFunction.VideoIntercom,
                                     ShowFunction.SecurityCenter,ShowFunction.Acst,
                                     ShowFunction.MechanicalArm ,
-                                    ShowFunction.SecurityMonitoring,};
+                                    ShowFunction.SecurityMonitoring,
+                                    ShowFunction.VideoDoorLock,
+                    };
                 }
                 return dddd;
             }
diff --git a/HDL_ON/Entity/Enumerative/MyEnum.cs b/HDL_ON/Entity/Enumerative/MyEnum.cs
index a02276c..2fb5ccc 100644
--- a/HDL_ON/Entity/Enumerative/MyEnum.cs
+++ b/HDL_ON/Entity/Enumerative/MyEnum.cs
@@ -185,6 +185,10 @@
         /// ip鎽勫儚澶�
         /// </summary>
         IpCam = 0x25,
+        /// <summary>
+        /// 钀ょ煶瑙嗛闂ㄩ攣
+        /// </summary>
+        VideoDoorLock = 0x26,
 
 
     }
diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 4b0511a..123f757 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -1388,8 +1388,20 @@
             list.Add(DoorLock);
             return list;
         }
-
-
+        /// <summary>
+        /// 钀ょ煶瑙嗛闂ㄩ攣
+        /// </summary>
+        public const string VideoDoorLock="security.door.ezviz";
+        /// <summary>
+        /// 钀ょ煶瑙嗛闂ㄩ攣spk鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> GetVideoDoorLockSPKList()
+        {
+            var list = new List<string>();
+            list.Add(VideoDoorLock);
+            return list;
+        }
 
         #region 鐏厜
         /// <summary>
diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index 4d66217..a50ecf8 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -159,6 +159,15 @@
             var spkList = SPK.GetDoorLockSPKList();
             return Functions.FindAll((obj) => spkList.Contains(obj.spk));
         }
+        /// <summary>
+        /// 鑾峰彇钀ょ煶瑙嗛闂ㄩ攣
+        /// </summary>
+        /// <returns></returns>
+        public List<Function> GetVideoDoorLockList()
+        {
+            var spkList = SPK.GetVideoDoorLockSPKList();
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+        }
 
         /// <summary>
         /// 鏂伴鍒楄〃
diff --git a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
index 971203f..0fe6cc6 100644
--- a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
+++ b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
@@ -3,6 +3,7 @@
 using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
 using Shared;
+using static HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod;
 
 namespace HDL_ON.UI
 {
@@ -12,7 +13,7 @@
         /// <summary>
         /// 鍔熻兘鎺у埗鐣岄潰璺宠浆浜嬩欢
         /// </summary>
-        public EventHandler<MouseEventArgs> LoadEvent_SkipFunctionControlPage(Function function, Button btnCollectionIcon, Button btnName, Button btnFromFloor
+        public EventHandler<MouseEventArgs> LoadEvent_SkipFunctionControlPage(Function function, Button btnCollectionIcon, Button btnName, Button btnFromFloor, Comerom comerom,Action action
             )
         {
             EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
@@ -321,6 +322,14 @@
                         }
 #endif
                         break;
+                    case SPK.VideoDoorLock: {
+                            //钀ょ煶瑙嗛闂ㄩ攣
+                            var form = new VideoDoorLockPage(function, btnName, btnFromFloor,comerom,action);
+                            MainPage.BasePageView.AddChidren(form);
+                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                            form.Show();
+                        }
+                        break;
                 }
             };
             return eventHandler;
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs
index b416038..16f00c6 100644
--- a/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs
@@ -379,6 +379,8 @@
             }
         }
 
+
+      
         /// <summary>
         /// 鎶凷DK鐨勶紝鎴戜篃涓嶇煡閬撹繖涓槸浠�涔�
         /// </summary>
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index 788f78b..70a5fc2 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -725,6 +725,7 @@
             {
                 int index = 0;
                 var list = FunctionList.List.GetDeviceFunctionList();
+
                 foreach (var function in list)
                 {
                     //闊充箰妯″潡鏈変富浠庡叧绯伙紝闇�瑕佺壒娈婂鐞�
@@ -1202,7 +1203,11 @@
                     btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                     btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                 }
-
+                else if (function.spk == SPK.VideoDoorLock)
+                {
+                    btnIcon.UnSelectedImagePath =UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.GetVideoDoorLockIcon(UI2.FuntionControlView.VideoDoorLock.CommonMethod.Comerom.collect);
+                    //btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
+                }
                 else
                 {
                     Button btnSwitch;
@@ -1238,7 +1243,9 @@
                 };
 
 
-                var skipControlPageEvent = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollection, btnName, btnZone);
+                var skipControlPageEvent = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollection, btnName, btnZone, UI2.FuntionControlView.VideoDoorLock.CommonMethod.Comerom.collect,()=> {
+                    this.LoadDeviceFunctionControlZone();//鍒犻櫎璁惧鍚庨噸鏂板埛鏂癠I
+                });
                 view.MouseUpEventHandler = skipControlPageEvent;
                 btnName.MouseUpEventHandler = skipControlPageEvent;
                 btnIcon.MouseUpEventHandler = skipControlPageEvent;
@@ -1452,11 +1459,14 @@
 
                 LoadEvent_ControlScene(btnCoverd, btnName, btnZone, btnShowDelay, scene);
 
-                btnSettingIcon.MouseUpEventHandler = (sender, e) => {
-                    Action backAction = () => {
+                btnSettingIcon.MouseUpEventHandler = (sender, e) =>
+                {
+                    Action backAction = () =>
+                    {
                         //LoadSceneFunctionControlZone();
                     };
-                    Action refreshAction = () => {
+                    Action refreshAction = () =>
+                    {
                         btnName.Text = scene.name;
                         btnZone.Text = scene.GetRoomListName();
                         //view.BackgroundImagePath = (scene as Scene).ImagePath;
@@ -1465,7 +1475,7 @@
                     };
                     var aep = new SceneEditPage(scene, backAction);
                     MainPage.BasePageView.AddChidren(aep);
-                    aep.LoadPage( refreshAction);
+                    aep.LoadPage(refreshAction);
                     MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                 };
                 //鍦烘櫙姝e湪鍊掕鏃舵墽琛屼腑
diff --git a/HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs b/HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs
index b2635af..30afa04 100644
--- a/HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs
@@ -832,6 +832,7 @@
             {
                 if (bodyView != null)
                 {
+
                     //Utlis.WriteLine("GetPushMessageAction M鏀跺埌鎺ㄩ��");
                     GetPushMessageList(showMesType);
                 }
diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
index 04ca7f2..3a04c19 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
@@ -5,6 +5,7 @@
 using HDL_ON.Entity;
 using HDL_ON.UI;
 using HDL_ON.UI.CSS;
+using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using Shared;
@@ -605,21 +606,35 @@
             };
         }
 
-
         /// <summary>
         /// 鍔犺浇鍔熻兘鍒楄〃鐣岄潰
         /// </summary>
-        void LoadFunctionPageView()
+        void LoadFunctionPageView ()
         {
-            #region
             functionsPageView = new VerticalScrolViewLayout()
             {
                 BackgroundColor = CSS_Color.BackgroundColor,
                 Height = Application.GetRealHeight(667 - 64 - 49 + 20),
             };
             contentPageView.AddChidren(functionsPageView);
+            this.RefreshFunctionView();
 
-            FrameLayout functionContentView;
+        }
+        FrameLayout functionContentView;
+        /// <summary>
+        /// 鏄剧ず鍔熻兘鍒楄〃鐣岄潰
+        /// </summary>
+        void RefreshFunctionView()
+        {
+            #region
+            //functionsPageView = new VerticalScrolViewLayout()
+            //{
+            //    BackgroundColor = CSS_Color.BackgroundColor,
+            //    Height = Application.GetRealHeight(667 - 64 - 49 + 20),
+            //};
+            //contentPageView.AddChidren(functionsPageView);
+
+            //FrameLayout functionContentView;
             functionContentView = new FrameLayout()
             {
                 Y = Application.GetRealHeight(16),
@@ -745,6 +760,14 @@
                         functionCount = FunctionList.List.GetAcstParentList().Count;
                         functionOnCount = FunctionList.List.GetAcstParentList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                         break;
+                    case ShowFunction.VideoDoorLock:
+                        functionCount = FunctionList.List.GetVideoDoorLockList().Count;
+#if DEBUG
+                        //functionCount = 1;
+#endif
+                        functionOnCount = 1;
+                        break;
+
 
 
                 }
@@ -798,7 +821,7 @@
                     TextAlignment = TextAlignment.CenterLeft,
                     IsMoreLines = true,
                 };
-                functionView.AddChidren(btnName);
+                functionView.AddChidren(btnName); 
 
                 if (item != ShowFunction.Environmental && item != ShowFunction.Sensor && item != ShowFunction.VideoIntercom
                     && item != ShowFunction.SecurityMonitoring && item != ShowFunction.FreshAir && item != ShowFunction.Music
@@ -1143,16 +1166,35 @@
                             MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                         };
                         break;
-
+                    case ShowFunction.VideoDoorLock:
+                        //钀ょ煶瑙嗛闂ㄩ攣
+                        btnName.TextID = StringId.yingshishipinmensuo;
+                        btnFunctionViewBg.MouseUpEventHandler = (sender, e) =>
+                        {
+                            var list =CommonMethod.Current.GetVideoDoorLockList();
+                            var form = new VideoDoorLockListPage(()=> {
+                                functionContentView?.RemoveFromParent();
+                                this.RefreshFunctionView();
+                            });
+                            form.AddForm(list);
+                        };
+                        break;
 
                 }
-                //鐣岄潰璺宠浆--闊充箰璺宠浆鑷繁鐨勭晫闈�--鐜璺宠浆鑷繁鐨勭晫闈�
-                if (item != ShowFunction.Music && item != ShowFunction.Environmental && item != ShowFunction.SecurityMonitoring && item != ShowFunction.DoorLock
-                    && ShowFunction.EnergyMonitoring != item && ShowFunction.VideoIntercom != item && ShowFunction.SecurityCenter != item
+                //鐣岄潰璺宠浆--闊充箰璺宠浆鑷繁鐨勭晫闈�--鐜璺宠浆鑷繁鐨勭晫闈�--(钀ょ煶瑙嗛闂ㄩ攣)璺宠浆鑷繁鐨勭晫闈�
+                if (item != ShowFunction.VideoDoorLock
+                    && item != ShowFunction.Music
+                    && item != ShowFunction.Environmental
+                    && item != ShowFunction.SecurityMonitoring
+                    && item != ShowFunction.DoorLock
+                    && ShowFunction.EnergyMonitoring != item
+                    && ShowFunction.VideoIntercom != item &&
+                    ShowFunction.SecurityCenter != item
                     && ShowFunction.Acst != item)
                 {
                     btnFunctionViewBg.MouseUpEventHandler = (sender, e) =>
                     {
+
                         var skipView = new FunctionPage();
                         MainPage.BasePageView.AddChidren(skipView);
                         skipView.LoadPage(functionPageTitleId);
@@ -1444,6 +1486,8 @@
             #endregion
         }
 
+       
+
         void refreshInverterInfo(Button btnPowerTenerationToday, Button btnWorkingMode, Button btnCurrentPowerGeneration)
         {
             new System.Threading.Thread(() =>
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
index 08772f9..397a9fa 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -38,12 +38,18 @@
         /// 鏄惁鍦ㄨ皟鍏�
         /// </summary>
         bool onDimmerBar;
+        /// <summary>
+        /// 鍒犻櫎璁惧鍚庡洖璋冪粰鐣岄潰鍒锋柊
+        /// </summary>
+        Action action;
+
         #endregion
-        public FunctionControlZone(Function func)
+        public FunctionControlZone(Function func,Action action)
         {
             bodyDiv = this;
             bodyDiv.Tag = func.sid;
             function = func;
+            this.action = action;
         }
 
         public override void RemoveFromParent()
@@ -186,6 +192,10 @@
             {
                 btnIcon.UnSelectedImagePath = "FunctionIcon/DoorLock/DoorLock.png";
             }
+            else if (function.spk == SPK.VideoDoorLock)
+            {
+                btnIcon.UnSelectedImagePath = UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.GetVideoDoorLockIcon(UI2.FuntionControlView.VideoDoorLock.CommonMethod.Comerom.function);
+            }
             else if (function.spk == SPK.HvacCac)
             {
                 var btnHumidityIcon = new Button()
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
index f2a4587..1fb2267 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
@@ -405,7 +405,7 @@
         /// </summary>
         void LoadEvent_DivSkipEvent()
         {
-            var eventHandler = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollectionIcon, btnName, btnFromFloor);
+            var eventHandler = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollectionIcon, btnName, btnFromFloor, UI2.FuntionControlView.VideoDoorLock.CommonMethod.Comerom.room,this.action);
             this.MouseUpEventHandler = eventHandler;
             btnName.MouseUpEventHandler = eventHandler;
             btnFromFloor.MouseUpEventHandler = eventHandler;
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs b/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs
index 5ba2bed..3e55089 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs
@@ -255,7 +255,7 @@
                             }
                             if (function.spk == SPK.LightRGBW || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
                             {
-                                var functionDiv = new FunctionControlZone(function)
+                                var functionDiv = new FunctionControlZone(function,null)
                                 {
                                     Gravity = Gravity.CenterHorizontal,
                                     Width = Application.GetRealWidth(343),
@@ -271,7 +271,7 @@
                             }
                             else if (function.spk == SPK.IpCam_Imou)
                             {
-                                var functionDiv = new FunctionControlZone(function)
+                                var functionDiv = new FunctionControlZone(function,null)
                                 {
                                     Gravity = Gravity.CenterHorizontal,
                                     Width = Application.GetRealWidth(343),
@@ -288,7 +288,7 @@
                             }
                             else
                             {
-                                var functionDiv = new FunctionControlZone(function)
+                                var functionDiv = new FunctionControlZone(function,null)
                                 {
                                     Gravity = Gravity.CenterHorizontal,
                                     Width = Application.GetRealWidth(343),
diff --git a/HDL_ON/UI/UI2/2-Classification/RoomPage.cs b/HDL_ON/UI/UI2/2-Classification/RoomPage.cs
index ab78fd4..3c04eec 100644
--- a/HDL_ON/UI/UI2/2-Classification/RoomPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/RoomPage.cs
@@ -53,6 +53,7 @@
             deleteAction = delAction;
             this.modifyImageAction = modifyImageAction;
         }
+
         /// <summary>
         /// 閲嶈浇鐣岄潰
         /// </summary>
@@ -65,22 +66,25 @@
             }
         }
 
+
         public void LoadPage()
         {
             bodyView.BackgroundColor = CSS_Color.BackgroundColor;
 
-            new TopViewDiv(bodyView,room.roomName).LoadTopView_RoomTop(ReloadRoomName, skipEditPageAction);
+            new TopViewDiv(bodyView, room.roomName).LoadTopView_RoomTop(ReloadRoomName, skipEditPageAction);
 
             functionListView = new VerticalScrolViewLayout()
             {
                 Y = Application.GetRealHeight(64),
-                Height = Application.GetRealHeight(603-12),
+                Height = Application.GetRealHeight(603 - 12),
             };
             bodyView.AddChidren(functionListView);
 
-            foreach (var function in room.GetRoomFunctions(false))
+            var list = room.GetRoomFunctions(false);
+
+            foreach (var function in list)
             {
-                if (MainPage.RoomNotSupportFunctionList.Contains( function.spk))
+                if (MainPage.RoomNotSupportFunctionList.Contains(function.spk))
                 {
                     continue;
                 }
@@ -89,7 +93,7 @@
 
                 if (function.spk == SPK.LightRGB || function.spk == SPK.LightDimming)
                 {
-                    var functionDiv = new FunctionControlZone(function)
+                    var functionDiv = new FunctionControlZone(function, null)
                     {
                         Gravity = Gravity.CenterHorizontal,
                         Width = Application.GetRealWidth(343),
@@ -105,7 +109,10 @@
                 }
                 else
                 {
-                    var functionDiv = new FunctionControlZone(function)
+                    var functionDiv = new FunctionControlZone(function, () =>
+                    {
+                        this.ReLoadPage();
+                    })
                     {
                         Gravity = Gravity.CenterHorizontal,
                         Width = Application.GetRealWidth(343),
@@ -132,7 +139,7 @@
                     BorderColor = 0x00FFFFFF,
                     BorderWidth = 1,
                     BackgroundColor = CSS_Color.MainBackgroundColor,
-                    Tag = "Scene-" +  scene.sid
+                    Tag = "Scene-" + scene.sid
                 };
                 functionListView.AddChidren(sceneRow);
                 LoadSceneRow(sceneRow, scene);
@@ -147,7 +154,7 @@
         /// </summary>
         public void LoadSceneRow(FrameLayout bodyDiv, Scene scene)
         {
-          var  btnIcon = new Button()
+            var btnIcon = new Button()
             {
                 X = Application.GetRealWidth(10),
                 Y = Application.GetRealHeight(15),
@@ -214,15 +221,15 @@
                 btnName.X = Application.GetRealWidth(52 + 16);
             }
             //鍔犺浇鍦烘櫙鎺у埗浜嬩欢
-            LoadEvent_ControlScene(btnName,btnFromFloor,bodyDiv,scene );
+            LoadEvent_ControlScene(btnName, btnFromFloor, bodyDiv, scene);
 
-            LoadEvent_FunctionCollection(btnCollectionIcon,scene);
+            LoadEvent_FunctionCollection(btnCollectionIcon, scene);
         }
 
         /// <summary>
         /// 鍔犺浇鍔熻兘鏀惰棌鎸夐挳浜嬩欢
         /// </summary>
-        void LoadEvent_FunctionCollection(Button btnCollectionIcon,Scene scene)
+        void LoadEvent_FunctionCollection(Button btnCollectionIcon, Scene scene)
         {
             btnCollectionIcon.MouseUpEventHandler += (sender, e) =>
             {
@@ -233,9 +240,10 @@
         /// <summary>
         /// 鍔犺浇鍦烘櫙鎺у埗浜嬩欢
         /// </summary>
-        void LoadEvent_ControlScene(Button btnName,Button btnFromFloor,FrameLayout bodyDiv, Scene scene)
+        void LoadEvent_ControlScene(Button btnName, Button btnFromFloor, FrameLayout bodyDiv, Scene scene)
         {
-            EventHandler<MouseEventArgs> upEvent = (sender, e) => {
+            EventHandler<MouseEventArgs> upEvent = (sender, e) =>
+            {
                 DriverLayer.Control.Ins.ControlScene(scene);
                 string msg = scene.name + Language.StringByID(StringId.AlreadyOpened);
                 new PublicAssmebly().TipMsgAutoClose(msg, false);
@@ -245,5 +253,6 @@
             bodyDiv.MouseUpEventHandler = upEvent;
         }
 
+
     }
 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
index 2183231..335597a 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -628,7 +628,7 @@
                         view1.btnClick.MouseUpEventHandler += (sender, e) =>
                         {
                             this.identifier = "open_door";//寮�閿佷簨浠�
-                            //this.VideoDoorLockAction(this, device, view1.btnState);
+                            this.VideoDoorLockAction(this, device, view1.btnState);
                         };
                         if (edit)
                         {
@@ -1068,7 +1068,7 @@
             {
                 try
                 {
-                   var faceIDList = Send.Current.GetListHomeFace(device.deviceId,true);
+                    var faceIDList = Send.Current.GetListHomeFace(device.deviceId, true);
                     List<string> faceNameList = new List<string>();
                     for (int i = 0; i < faceIDList.Count; i++)
                     {
@@ -1093,6 +1093,65 @@
                     });
                 }
                 catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        loading.Hide();
+                    });
+                }
+
+            });
+
+        }
+
+        /// <summary>
+        /// 钀ょ煶瑙嗛闂ㄩ攣涓撶敤
+        /// </summary>
+        /// <param name="frame">褰撳墠鐣岄潰</param>
+        /// <param name="device">褰撳墠璁惧</param>
+        /// <param name="btnState">鏃х姸鎬�</param>
+        public void VideoDoorLockAction(FrameLayout frame, Entity.Function device, Button btnState)
+        {
+            selectedState = device.spk + "_";
+            Loading loading = new Loading();
+            frame.AddChidren(loading);
+            loading.Start();
+            System.Threading.Tasks.Task.Run(() =>
+            {
+                try
+                {
+                    var userList =FuntionControlView.VideoDoorLock.VideDoorLockSend.Current.GetVideoDoorLockUserListInfo(device);
+                    List<string> userNameList = new List<string>();
+                    for (int i = 0; i < userList.Count; i++)
+                    {
+                        var user = userList[i];
+                        userNameList.Add(user.extUserName);
+                    }
+                    Application.RunOnMainThread(() =>
+                    {
+                        loading.Hide();
+                        PublicInterface publicInterface = new PublicInterface();//鐢ㄦ埛鐣岄潰
+                        publicInterface.FrameOrVv(this, userNameList, new List<string> { btnState.Text }, device.name, (index) =>
+                        {
+                            var userId = userNameList[index];
+                            //鐣岄潰鏄剧ず閫変腑鍊�
+                            btnState.Text = userId;
+                            //鏁版嵁灏佽
+                            AddDictionary("open_user", userId, "string");
+
+                        }, false);
+
+                    });
+                }
+                catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        loading.Hide();
+                    });
+                }
 
             });
 
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
index 22e489a..c389912 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -406,6 +406,12 @@
                                         }
                                     }
                                     break;
+                                case SPK.VideoDoorLock:
+                                    {
+                                        string value = this.GetValue(dicList);
+                                        inputView.btnState.Text = value;
+                                    }
+                                    break;
                                 case SPK.doorgate:
                                     {
                                         if (inputCondition.identifier == "door_call_cloud_event")
@@ -2128,6 +2134,15 @@
                         }
                     }
                     break;
+                case SPK.VideoDoorLock:
+                    {
+                        foreach (var dic in dicList)
+                        {
+                            string value = dic["value"];
+                            button1.Text = value;
+                        }
+                    }
+                    break;
                 case SPK.MusicStandard:
                 case SPK.AvMusic:
                     {
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
index f99a2a0..d8690c5 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -187,7 +187,7 @@
             var list2 = this.GetVideoDeviceList();
             list.AddRange(list1);
             list.AddRange(list2);
-            //GetTestDevice(ref list, true);
+            GetTestDevice(ref list, true);
             return list;
         }
         /// <summary>
@@ -360,7 +360,8 @@
             {
                 return "LogicIcon/sensor.png";
             }
-            else if (SPK.DoorLock == device.spk)
+            else if (SPK.DoorLock == device.spk
+                || SPK.VideoDoorLock == device.spk)
             {
                 return "FunctionIcon/DoorLock/DoorLock.png";
             }
@@ -576,7 +577,8 @@
                 deviceStrTypeList.Add(Language.StringByID(StringId.Electric));
             }
             ///闂ㄩ攣绫�
-            var doorlock = deviceList.Find((device) => device.spk == SPK.DoorLock);
+            var doorlock = deviceList.Find((device) => device.spk == SPK.DoorLock
+            || device.spk == SPK.VideoDoorLock);
             if (doorlock != null)
             {
                 deviceStrTypeList.Add(Language.StringByID(StringId.DoorLock));
@@ -696,6 +698,7 @@
             else if (deviceType == Language.StringByID(StringId.DoorLock))
             {
                 functionTypeList.Add(SPK.DoorLock);
+                functionTypeList.Add(SPK.VideoDoorLock);
             }
             ///闊充箰绫�
             else if (deviceType == Language.StringByID(StringId.Music))
@@ -773,6 +776,7 @@
                 functionTypeList.Add(SPK.MechanicalArm);
                 functionTypeList.Add(SPK.IpCam_Imou);
                 functionTypeList.Add(SPK.SensorPm10);
+                functionTypeList.Add(SPK.VideoDoorLock);
 
             }
 
@@ -832,6 +836,7 @@
                         deviceTypeList.Add(SPK.doorgate);
                         deviceTypeList.Add(SPK.IpCam_Imou);
                         deviceTypeList.Add(SPK.SensorPm10);
+                        deviceTypeList.Add(SPK.VideoDoorLock);
 
                     }
                     break;
@@ -1173,9 +1178,9 @@
                  //new Entity.Function { sid = "1234567890", name = "瓒呭0娉紶鎰熷櫒", spk = Entity.SPK.SensorUtrasonic },
                  // new Entity.Function { sid = "1234567891", name = "娓╁害浼犳劅鍣�", spk = Entity.SPK.SensorTemperature },
                  //  new Entity.Function { sid = "1234567892", name = "婀垮害浼犳劅鍣�", spk = Entity.SPK.SensorHumidity },
-                    new Entity.Function { sid = "12345678933456", name = "璋冨厜鐏�", spk = Entity.SPK.LightDimming },
-                      new Entity.Function { sid = "1234567895444", name = "闈㈡澘", spk = Entity.SPK.PanelSocket },
-                      new Entity.Function { sid = "12345678968888", name = "pm10", spk = Entity.SPK.SensorPm10 },
+                    new Entity.Function { sid = "12345678933456", name = "闂ㄩ攣", spk = Entity.SPK.DoorLock },
+                      new Entity.Function { sid = "1234567895444", name = "瑙嗛闂ㄩ攣", spk = Entity.SPK.VideoDoorLock },
+                      //new Entity.Function { sid = "12345678968888", name = "pm10", spk = Entity.SPK.SensorPm10 },
                       //  new Entity.Function { sid = "1234567897", name = "姣背娉紶鎰熷櫒1", spk = Entity.SPK.SenesorMegahealth2 },
                       // new Entity.Function { sid = "1234567899", name = "闂ㄧ浼犳劅鍣�", spk = Entity.SPK.SensorDoorWindow },
                       //  new Entity.Function { sid = "12345678991234", name = "HDL鏈烘鎵�", spk = Entity.SPK.MechanicalArm },
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
index d6835e6..fbf8818 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -462,6 +462,38 @@
 
         }
 
+        /// <summary> 
+        /// 鑾峰彇浣忓畢宸插綍鍏ヤ汉鑴镐俊鎭�
+        /// </summary>
+        /// <param name="deviceId">鍙瀵硅璁惧id</param>
+        /// <returns></returns>
+        public List<Face> GetHomeFaceList(string deviceId, bool isTip) 
+        {
+            var jObject = new JObject();
+            jObject.Add("homeId", LogicMethod.Current.HomeId);
+            jObject.Add("deviceId", deviceId);
+            var responsePackNew = RequestServerhomeId(jObject, NewAPI.Api_Post_GetListHomeFace, "鑾峰彇浣忓畢宸插綍鍏ヤ汉鑴镐俊鎭�");
+            //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken
+            if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
+            {
+                RefreshToken();
+                GetListHomeFace(deviceId, isTip);
+            }
+            if (Check(responsePackNew, isTip) == false)
+            {
+                return new List<Face>();
+            }
+            var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Face>>(responsePackNew.Data.ToString());
+            if (list == null)
+            {
+                list = new List<Face>();
+            }
+            faceList.Clear();
+            faceList.AddRange(list);
+            return list;
+
+        }
+
         /// <summary>
         ///璇锋眰鏈嶅姟鍣紙涓庝綇瀹呮湁鍏�:渚嬪锛沨omeId锛� 
         /// </summary>
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
index f485677..e503084 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -226,6 +226,7 @@
                             dialog.Close();
                             LoadEvent_ChangeCurHome(home);
                             LoadContentView();
+                            HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.ChangeCurrHome(home);
                         };
                     }
                     dialog.Show();
@@ -415,6 +416,7 @@
                     dialog.Close();
                     LoadEvent_ChangeCurHome(home);
                     LoadContentView();
+                    HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.ChangeCurrHome(home);
                 };
             }
 
diff --git a/HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs b/HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs
index d58fb4b..05d3470 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs
@@ -29,6 +29,18 @@
         /// 浣嶇疆淇℃伅璺宠浆缂栬緫鎸夐挳
         /// </summary>
         Button btnLocationInfoRight;
+        /// <summary>
+        /// 鍒犻櫎璁惧
+        /// </summary>
+        Button delTextBtn;
+        /// <summary>
+        /// 涓嬩竴绾у浘鏍�
+        /// </summary>
+        Button delRightBtn;
+        /// <summary>
+        /// 鍒犻櫎璁惧琛孎rameLayout
+        /// </summary>
+        FrameLayout delView;
 
         #endregion
 
@@ -38,6 +50,11 @@
         /// 鍚庨��鏃讹紝鍒锋柊涔嬪墠鐣岄潰鐨勬樉绀轰俊鎭�
         /// </summary>
         Action actionRefresh;
+
+        /// <summary>
+        /// 瑙g粦璁惧鍥炶皟
+        /// </summary>
+        public Action actionDel;
         #endregion
 
         public FunctionBaseInfoSetPage(Function func, Action action)
@@ -180,13 +197,13 @@
                 #endregion
             }
             #region 鍏变韩
+           
             //var sharedView = new FrameLayout()
             //{
             //    Height = Application.GetRealHeight(55),
             //    BackgroundColor = CSS_Color.MainBackgroundColor,
             //};
             //contentView.AddChidren(sharedView);
-
             //var btnSharedText = new Button()
             //{
             //    X = Application.GetRealWidth(16),
@@ -219,6 +236,50 @@
             //    });
             #endregion
 
+            #region 鍒犻櫎璁惧琛�
+
+            delView = new FrameLayout() 
+            {
+                Height = Application.GetRealHeight(55),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+            };
+            if (this.function.spk == SPK.VideoDoorLock)
+            {
+                contentView.AddChidren(delView);
+            }
+            var lineBtn = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                BackgroundColor = CSS_Color.DividingLineColor,
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealHeight(1)
+            };
+            delView.AddChidren(lineBtn);
+             delTextBtn = new Button() 
+            {
+                X = Application.GetRealWidth(16),
+                Width = Application.GetRealWidth(160),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+                TextID = StringId.DeleteDevice,
+            };
+            delView.AddChidren(delTextBtn);
+
+            delRightBtn= new Button()
+            {
+                X = Application.GetRealWidth(339),
+                Gravity = Gravity.CenterVertical,
+                Width = Application.GetMinRealAverage(16),
+                Height = Application.GetMinRealAverage(16),
+                UnSelectedImagePath = "Public/RightIcon.png",
+            };
+            delView.AddChidren(delRightBtn);
+
+           
+
+           
+            #endregion
 #if stage2
             #region 娣诲姞鍒版闈�
             var addToDesktopView = new FrameLayout()
diff --git a/HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPageBLL.cs b/HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPageBLL.cs
index 006e71d..ff4c689 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPageBLL.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPageBLL.cs
@@ -12,6 +12,8 @@
         {
             LoadEvent_ChangeFunctionName ();
             SkipChooseRoomPage();
+            DelDeviceEvent();
+
         }
 
         /// <summary>
@@ -77,5 +79,45 @@
             }
                 
         }
+        /// <summary>
+        /// 瑙g粦璁惧鐨勪簨浠�
+        /// </summary>
+        void DelDeviceEvent()
+        {
+
+            EventHandler<MouseEventArgs> ClickEvent = (sener, e) =>
+            {
+                new HDL_ON.UI.Music.View.TipView().TipBox(-1, StringId.AreYouSureToDeleteThisDevice, () =>
+                {
+                    UI2.FuntionControlView.VideoDoorLock.VideDoorLockSend.Current.DelDevice(this.function, (isBool) =>
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            if (!isBool)
+                            {
+                                new Tip()
+                                {
+                                    CloseTime = 1,
+                                    Text = Language.StringByID(StringId.delFail),
+                                    Direction = AMPopTipDirection.None,
+                                }.Show(bodyView);
+                                return;
+                            }
+                            //鍒犻櫎鏈湴鏂囦欢                                  
+                            UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DeleteFunction(this.function);
+                            this.RemoveFromParent();
+                            this.actionDel?.Invoke();
+                        });
+
+                    });
+
+                });
+            };
+            this.delView.MouseUpEventHandler += ClickEvent;
+            this.delTextBtn.MouseUpEventHandler += ClickEvent;
+            this.delRightBtn.MouseUpEventHandler += ClickEvent;
+        }
+
+
     }
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs
index 8674b0d..168d4b0 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs
@@ -182,9 +182,12 @@
                 UI2.FuntionControlView.Music.View.MyListView myListView = new UI2.FuntionControlView.Music.View.MyListView();
                 myListView.frameLayout(this, A31MusicModel.Current);
                 myListView.dialogFra.AddChidren(loading);//dialogFra鍒锋柊鍥炬爣鐖舵帶浠�
+                loading.Start();
                 ///涓嬫媺鍒锋柊
                 myListView.verticalScrolViewLayout.BeginHeaderRefreshingAction += () =>
                 {
+                    myListView.verticalScrolViewLayout.EndHeaderRefreshing(); //缁撴潫鍒锋柊
+                    loading.Start();
                     System.Threading.Tasks.Task.Run((() =>
                     {
                         try
@@ -197,7 +200,6 @@
 
                                     Application.RunOnMainThread(() =>
                                     {
-                                        //myListView.verticalScrolViewLayout.EndHeaderRefreshing();
                                         myListView.verticalScrolViewLayout.RemoveAll();
                                         var listName = A31MusicModel.Current.functionMusic.GetAttrState(KeyProperty.playlist_name);
                                         var source = A31MusicModel.Current.functionMusic.GetAttrState(KeyProperty.source);
@@ -215,7 +217,8 @@
                         {
                             Application.RunOnMainThread(() =>
                             {
-                                myListView.verticalScrolViewLayout.EndHeaderRefreshing();
+                                loading.Hide();
+                                //myListView.verticalScrolViewLayout.EndHeaderRefreshing();
                                 //myListView.verticalScrolViewLayout.RemoveAll();
                                 //var listName = A31MusicModel.Current.functionMusic.GetAttrState(KeyProperty.playlist_name);
                                 //var source = A31MusicModel.Current.functionMusic.GetAttrState(KeyProperty.source);
@@ -225,7 +228,6 @@
                             });
                         }
                     }));
-                    //缁撴潫鍒锋柊
 
                 };
                 ///绉婚櫎鐣岄潰
@@ -234,7 +236,7 @@
                      myListView.popFra.RemoveFromParent();
                  };
                 myListView.backIextBtn.MouseUpEventHandler += removeFromParentView;
-                myListView.popFra.MouseUpEventHandler += removeFromParentView;
+                //myListView.popFra.MouseUpEventHandler += removeFromParentView;
                 #endregion
                 //var listName = A31MusicModel.Current.functionMusic.GetAttribute("playlist_name").ToString();
                 //var musicList = A31MusicModel.Current.GetSongList(listName);
@@ -658,7 +660,11 @@
             }
             else
             {
-                A31SongPlay.SongListView(verticalScrolViewLayout, musicList, listName, source, frameLayout);
+                Application.RunOnMainThread(() =>
+                {
+                    loading.Hide();
+                    A31SongPlay.SongListView(verticalScrolViewLayout, musicList, listName, source, frameLayout);
+                });
             }
         }
         /// <summary>
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
index d631763..7aed7ce 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
@@ -86,7 +86,7 @@
                 d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
                 d.Add("deviceIds", functionIds);
                 var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_RefreshDeviceStatus, "鍒锋柊璁惧鐘舵��");
-                if (!this.dataChecking(responsePackNew))
+                if (!this.DataChecking(responsePackNew))
                 {
                     return;
                 }
@@ -123,7 +123,7 @@
                 d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
                 d.Add("deviceIds", new List<string> { music.deviceId });
                 var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_PlayerList, "鑾峰彇闊充箰鍒楄〃");
-                if (!this.dataChecking(responsePackNew))
+                if (!this.DataChecking(responsePackNew))
                 {
                     return;
                 }
@@ -173,7 +173,7 @@
                 }
                 d.Add("deviceInfos", new List<Dictionary<string, object>> { deviceIds });
                 var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_GroupList, "鑾峰彇鍒楄〃鍚嶅垪琛�");
-                if (!this.dataChecking(responsePackNew))
+                if (!this.DataChecking(responsePackNew))
                 {
                     return new List<GroupList>();
                 }
@@ -238,7 +238,7 @@
                 d.Add("sidGroups", new List<Dictionary<string, object>> { d1 });
 
                 var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_GroupPlayerList, "閫氳繃鍒楄〃鍚嶈幏鍙栨瓕鏇插垪琛�");
-                if (!this.dataChecking(responsePackNew))
+                if (!this.DataChecking(responsePackNew))
                 {
                     return new List<PalyerSongListInfo>();
                 }
@@ -282,10 +282,11 @@
         /// </summary>
         /// <param name="responsePackNew">鍥炲鏁版嵁瀵硅薄</param>
         /// <returns></returns>
-        private bool dataChecking(ResponsePackNew responsePackNew)
+        private bool DataChecking(ResponsePackNew responsePackNew)
         {
-            if (responsePackNew.Code != "0" || responsePackNew.Data == null || responsePackNew.Data.ToString() == "")
+            if (responsePackNew.Data == null||responsePackNew.Code != "0"  || responsePackNew.Data.ToString() == "")
             {
+                
                 return false;
             }
             return true;
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/View/PlayView.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/View/PlayView.cs
index 5335d37..c045e40 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/View/PlayView.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/View/PlayView.cs
@@ -184,7 +184,7 @@
             Y = Application.GetRealHeight(355),
             Width = Application.GetRealWidth(28),
             Height = Application.GetRealWidth(28),
-            UnSelectedImagePath = "MusicIcon/playList.png",
+            UnSelectedImagePath = "MusicIcon/currentPlayList.png",
         };
         /// <summary>
         /// 闊抽噺鍥炬爣
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/View/SizeClass.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/View/SizeClass.cs
index e2d5c9d..f0eeb8a 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/View/SizeClass.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/View/SizeClass.cs
@@ -1,93 +1,94 @@
 锘縰sing System;
 namespace HDL_ON.UI.Music
 {
-    public static class TextSize
+    public class TextSize
     {
-        public static int TopLine = 1;
-        public static int MiddleLine =1;
-        public static int DownLine = 1;
+        public const int TopLine = 1;
+        public const int MiddleLine = 1;
+        public const int DownLine = 1;
 
 
 
-        public static int Text24 = 24;
-        public static int Text20 = 20;
-        public static int Text18 = 18;
-        public static int Text16 = 16;
-        public static int Text14 = 14;
-        public static int Text12 = 12;
-        public static int Text10 = 10;
+        public const int Text24 = 24;
+        public const int Text20 = 20;
+        public const int Text18 = 18;
+        public const int Text16 = 16;
+        public const int Text14 = 14;
+        public const int Text12 = 12;
+        public const int Text10 = 10;
 
     }
-    public static class MusicColor
+    public class MusicColor
     {
         /// <summary>
         /// 椤堕儴鑳屾櫙棰滆壊
         /// </summary>
-        public static uint TopViewColor = 0xFFF7F7F7;
+        public const uint TopViewColor = 0xFFF7F7F7;
         /// <summary>
         /// 鐣岄潰鑳屾櫙棰滆壊
         /// </summary>
-        public static uint ViewColor = 0xFFF2F3F7;
+        public const uint ViewColor = 0xFFF2F3F7;
         /// <summary>
         /// 鐧借壊鑳屾櫙棰滆壊
         /// </summary>
-        public static uint WhiteColor = 0xFFFFFFFF;
+        public const uint WhiteColor = 0xFFFFFFFF;
         /// <summary>
         /// 绾㈣壊鑳屾櫙棰滆壊
         /// </summary>
-        public static uint RedColor = 0xFFFF4747;
-        
-        /// <summary>
-        /// 绾挎潯棰滆壊
-        /// </summary>
-        public static uint LineColor =0xFFECEDEE;
-        /// <summary>
-        /// 寮圭獥鑳屾櫙棰滆壊
-        /// </summary>
-        public static uint PopupBackgroundColor = 0x90000000;
+        public const uint RedColor = 0xFFFF4747;
 
         /// <summary>
         /// 绾挎潯棰滆壊
         /// </summary>
-        public static uint MusicEditColor = 0xFFFC9C04;
+        public const uint LineColor = 0xFFECEDEE;
         /// <summary>
         /// 寮圭獥鑳屾櫙棰滆壊
         /// </summary>
-        public static uint MusicDelColor = 0xFFFF7474;
+        public const uint PopupBackgroundColor = 0x90000000;
 
-        public static uint Text18Color = 0xFF1B2D4D;
-        public static uint MusicTxet14SelectedColor = 0xFF4484F4;
-        public static uint MusicTxet14Color = 0xFF1B2D4D;
-        public static uint MusicTxet12SelectedColor = 0xFF4484F4;
-       
-        public static uint MusicNoTxetColor = 0xFFC0C7D4;
-        public static uint TextColor = 0xFF1B2D4D;
-        public static uint SelectedColor = 0xFF4484F4;
+        /// <summary>
+        /// 绾挎潯棰滆壊
+        /// </summary>
+        public const uint MusicEditColor = 0xFFFC9C04;
+        /// <summary>
+        /// 寮圭獥鑳屾櫙棰滆壊
+        /// </summary>
+        public const uint MusicDelColor = 0xFFFF7474;
 
-        public static uint TextTimeColor = 0xFF798394;
+        public const uint Text18Color = 0xFF1B2D4D;
+        public const uint MusicTxet14SelectedColor = 0xFF4484F4;
+        public const uint MusicTxet14Color = 0xFF1B2D4D;
+        public const uint MusicTxet12SelectedColor = 0xFF4484F4;
 
-        public static uint TextCancelColor = 0xFF798394; 
+        public const uint MusicNoTxetColor = 0xFFC0C7D4;
+        public const uint TextColor = 0xFF1B2D4D;
+        public const uint SelectedColor = 0xFF4484F4;
+
+        public const uint TextTimeColor = 0xFF798394;
+
+        public const uint TextCancelColor = 0xFF798394;
 
     }
 
-    public static class H_W {
+    public class H_W
+    {
         /// <summary>
         /// app楂樺害
         /// </summary>
-        public static int H = 667;
+        public const int H = 667;
         /// <summary>
         /// app瀹藉害
         /// </summary>
-        public static int W = 375;
+        public const int W = 375;
         /// <summary>
         /// 椤堕儴楂樺害
         /// </summary>
-        public static int T_Height = 64;
+        public const int T_Height = 64;
 
         /// <summary>
         /// 绾块珮搴�
         /// </summary>
-        public static int Line = 1;
+        public const int Line = 1;
     }
 
 
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs
index d5a2001..65e7438 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs
@@ -5,19 +5,44 @@
 {
     public class ShowDialog
     {
+
+        private static ShowDialog showDialog;
+
+        public static ShowDialog Currnet
+        {
+            get
+            {
+                if (showDialog == null)
+                {
+
+                    showDialog = new ShowDialog();
+                }
+
+                return showDialog;
+
+            }
+        }
+
+
+       public  Dialog dialog;
+
         /// <summary>
         /// 
         /// </summary>
         /// <param name="title">鏍囬</param>
-        /// <param name="action1">鍥炶皟鍑芥暟</param>
-        /// <param name="action2">鍥炶皟鍑芥暟</param>
-        public void ClickBox(string title, Action<Dialog> action1, Action<Dialog> action2)
+        /// <param name="jieTingAction">鍥炶皟鍑芥暟</param>
+        /// <param name="guanBiAction">鍥炶皟鍑芥暟</param>
+        public void ClickBox(string title, Action<Dialog> jieTingAction, Action<Dialog> guanBiAction)
         {
-            Dialog dialog = new Dialog()
+            if (dialog != null)
+            {
+                //闃叉浜岄噸鐣岄潰
+                dialog.Close();
+            }
+            dialog = new Dialog()
             {
                 BackgroundColor = MusicColor.PopupBackgroundColor,
             };
-
             FrameLayout whiteView = new FrameLayout()
             {
                 X = Application.GetRealWidth(56),
@@ -50,11 +75,11 @@
                 TextColor = MusicColor.TextColor,
                 TextSize = TextSize.Text16,
                 TextAlignment = TextAlignment.CenterLeft,
-                Text = "鏉ヨ嚜鈥滃洿澧欐満鈥濆懠鍙�",
+                Text = title,
 
             };
             whiteView.AddChidren(btnTitle);
-
+           
             Button guaduanIconBtn = new Button
             {
                 X = Application.GetRealWidth(75),
@@ -77,12 +102,11 @@
 
             guaduanIconBtn.MouseUpEventHandler += (sender, e) =>
             {
-                action1(dialog);
+                guanBiAction(dialog);
             };
             jietingIconBtn.MouseUpEventHandler += (sender, e) =>
             {
-
-                action2(dialog);
+                jieTingAction(dialog);
             };
 
         }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs
index 1964df9..1f24af2 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs
@@ -2,6 +2,10 @@
 using HDL_ON.Entity;
 using System.Collections.Generic;
 using Shared;
+#if __IOS__
+#else
+using Com.Videogo.Hdl;
+#endif
 
 namespace HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock
 {
@@ -40,24 +44,23 @@
         /// 璇诲彇浜戠鐨勪笂璁惧鍒楄〃(android婧愮敓娣诲姞璁惧鍒颁簯绔垚鍔熷悗)
         /// <paramref name="devSerial"/>璁惧搴忓垪鍙�</param>
         /// </summary>
-        public void SkipAddDeviceActivity(string devSerial)
+        public void SkipAddDeviceActivity(string spk)
         {
-#if __IOS__
-            this.InitializationAndroidData((isBools) =>
-            {
-                EZSDK.IOS.EZSDK.SharedInstance().AddEzvizMonitorWithDeviceType(devSerial);
 
-            });
-#else
             this.InitializationAndroidData((isBools) =>
             {
-                if (!isBools) {
-                    this.MainThread(()=> {
+                if (!isBools)
+                {
+                    this.MainThread(() =>
+                    {
                         this.ShowTip("鍏堣幏鍙栬悿鐭充簯瀛愯处鍙穞oken澶辫触銆�");
 
                     });
                 }
-                HDLEzvizSdk.Instance.JumpToEZScanActivity(Application.Activity);
+#if __IOS__
+
+#else
+                HDLEzvizSdk.Instance.JumpToEZScanActivity(Application.Activity,spk);
                 HDLEzvizSdk.SetAddCallback(new AndroidIHdlInterface((isBool, adnroidActionDevSerial) =>
                 {
                     if (isBool)
@@ -77,76 +80,24 @@
                     }
 
                 }));
+#endif
             });
 
 
 
-#endif
 
-            }
+
+        }
         /// <summary>
         /// 鎵撳紑瀹炴椂瑙嗛鐢婚潰
         /// </summary>
         /// <param name="deviceSerial">璁惧搴忓垪鍙�</param>
         /// <param name="deviceId">璁惧id(浜戠涓奷eviceId)</param>
         /// <param name="spk">璁惧spk(浜戦泙涓婂畾涔夊ソ鐨�)</param>
-        public void SkipRTVActivity(string deviceSerial, string deviceId, string spk)
+        /// <param name="isDialog">鏄惁闇�瑕佸脊妗�</param>
+        public void SkipRTVActivity(string deviceSerial, string deviceId, string spk, bool isDialog)
         {
-#if __IOS__
-            this.InitializationAndroidData((isBools) =>
-            {
-                EZSDK.IOS.EZSDK.SharedInstance().PlayWithDeviceSerial(deviceSerial, deviceId, spk);
-            });
 
-
-#else
-            this.InitializationAndroidData((isBools) =>
-            {
-                if (!isBools)
-                {
-                    this.MainThread(() => {
-                        this.ShowTip("鍏堣幏鍙栬悿鐭充簯瀛愯处鍙穞oken澶辫触銆�");
-
-                    });
-                }
-                Video.View.ShowDialog.Currnet.ClickBox(Language.StringByID(StringId.laizimenlinghujiao), (dialog) =>
-                {
-                    dialog.Close();
-                    HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk);
-                }, (dialog) =>
-                {
-                    dialog.Close();
-                });
-               
-            });
-          
-
-#endif
-            }
-        /// <summary>
-        /// 娴忚鍘嗗彶璁板綍
-        /// </summary>
-        public void SkipRecordActivity(string deviceId)
-        {
-            this.InitializationAndroidData((s)=> {
-
-
-                //HDLEzvizSdk.Instance.JumpLockHistoryActivity(Application.Activity, deviceId);
-
-            });
-            //鏈疄鐜�
-            //this.InitializationAndroidData();
-            //
-        }
-        /// <summary>
-        /// 涓存椂瀵嗙爜寮�闂�
-        /// <paramref name="deviceId"/>
-        /// </summary>
-        public void SkipPSWActivity(string deviceId)
-        {
-#if __IOS__
-
-#else
             this.InitializationAndroidData((isBools) =>
             {
                 if (!isBools)
@@ -157,10 +108,74 @@
 
                     });
                 }
-                HDLEzvizSdk.Instance.JumpTempPasswordActivity(Application.Activity, deviceId);
+
+                if (isDialog)
+                {
+                    Video.View.ShowDialog.Currnet.ClickBox(Language.StringByID(StringId.laizimenlinghujiao), (dialog) =>
+                    {
+                        dialog.Close();
+#if __IOS__
+
+#else
+                    HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk);
+#endif
+                    }, (dialog) =>
+                    {
+                        dialog.Close();
+                    });
+                }
+                else
+                {
+#if __IOS__
+#else
+                    HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk);
+#endif
+                }
+
 
             });
+
+
+
+        }
+        /// <summary>
+        /// 娴忚鍘嗗彶璁板綍
+        /// </summary>
+        public void SkipRecordActivity(string deviceId)
+        {
+            this.InitializationAndroidData((s) =>
+            {
+
+#if __IOS__
+#else
+                HDLEzvizSdk.Instance.JumpLockHistoryActivity(Application.Activity, deviceId);
 #endif
+
+            });
+            
+        }
+        /// <summary>
+        /// 涓存椂瀵嗙爜寮�闂�
+        /// <paramref name="deviceId"/>
+        /// </summary>
+        public void SkipPSWActivity(string deviceId)
+        {
+            this.InitializationAndroidData((isBools) =>
+            {
+                if (!isBools)
+                {
+                    this.MainThread(() =>
+                    {
+                        this.ShowTip("鍏堣幏鍙栬悿鐭充簯瀛愯处鍙穞oken澶辫触銆�");
+
+                    });
+                }
+#if __IOS__
+#else
+                HDLEzvizSdk.Instance.JumpTempPasswordActivity(Application.Activity, deviceId);
+#endif
+
+            });
         }
 
         /// <summary>
@@ -168,8 +183,8 @@
         /// </summary>
         public void InitializationAndroidData(Action<bool> action)
         {
-           
-   
+
+
             bool isBool = true;
             this.SunThread(() =>
             {
@@ -196,7 +211,11 @@
                             EZSDK.IOS.EZSDK.SharedInstance().SetRequestHttpsHostAndPlatform(OnAppConfig.Instance.RequestHttpsHost, 1, DB_ResidenceData.Instance.CurrentRegion.id);
                             //2.璁剧疆钀ょ煶瀛愯处鍙风殑AccessToken鍒癝DK
                             EZSDK.IOS.EZSDK.SharedInstance().SetEZAccessToken(ezChildAccessToken);
-
+                            //////3.鎵撳紑鎽勫儚澶磋澶囧垪琛ㄩ〉闈�
+                            //EZSDK.IOS.EZSDK.SharedInstance().Go2EZvizMonitor();
+                            //EZSDK.IOS.EZDeviceInfo info = new EZSDK.IOS.EZDeviceInfo();
+                            //info.de
+                            //EZSDK.IOS.EZSDK.Play(info);
 #else
                             HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, "1aa98a90489b4838b966b57018b4b04b", 1, DB_ResidenceData.Instance.CurrentRegion.id);
 
@@ -228,7 +247,7 @@
             if (DB_ResidenceData.Instance.CurrentRegion.id == home.id || string.IsNullOrEmpty(home.id)) return;
 
         }
-#endregion
+        #endregion
 
         /// <summary>
         /// 钀ょ煶瑙嗛闂ㄩ攣鐨勫浘鏍�
@@ -246,7 +265,7 @@
             }
 
         }
-#region  --------- 鍔熻兘鏂囦欢淇濆瓨锛屽垹闄� --------
+        #region  --------- 鍔熻兘鏂囦欢淇濆瓨锛屽垹闄� --------
         /// <summary>
         /// 淇濆瓨鏈湴鏂囦欢
         /// </summary>
@@ -270,7 +289,7 @@
             FunctionList.List.DeleteFunction(function);
             MainPage.Log($"鏂囦欢鍒犻櫎->{function.name}-->{function.spk}");
         }
-#endregion
+        #endregion
         /// <summary>
         /// 鑾峰彇Loading瀵硅薄
         /// </summary>
@@ -310,14 +329,14 @@
         /// <returns></returns>
         public List<Function> GetVideoDoorLockList()
         {
-            //var list = FunctionList.List.GetVideoDoorLockList();
+            var list = FunctionList.List.GetVideoDoorLockList();
 #if DEBUG
             //list.Add(new Function { name = "瑙嗛闂ㄩ攣涓�", sid = "23456789", spk = SPK.VideoDoorLock });
             //list.Add(new Function { name = "瑙嗛闂ㄩ攣浜�", sid = "2345678922", spk = SPK.VideoDoorLock });
 #endif
-            return new List<Function>();
+            return list;
         }
-#region  ---------鑷畾涔夌嚎绋�(瀛愮嚎绋嬶紝涓荤嚎绋�)--------
+        #region  ---------鑷畾涔夌嚎绋�(瀛愮嚎绋嬶紝涓荤嚎绋�)--------
         /// <summary>
         /// 瀛愮嚎绋�
         /// </summary>
@@ -359,8 +378,8 @@
             });
 
         }
-#endregion
-#region  --------- 鎻愮ず妗嗭紝纭妗� --------
+        #endregion
+        #region  --------- 鎻愮ず妗嗭紝纭妗� --------
         /// <summary>
         /// 瀵硅瘽妗�(鍙绋嬪簭鎶ラ敊鐨勬椂鍊欐墠鐢ㄥ埌)
         /// </summary>
@@ -400,7 +419,7 @@
                 new PublicAssmebly().TipMsgAutoClose(msg, false, time * 1000);
             });
         }
-#endregion
+        #endregion
         /// <summary>
         /// 寮规绫诲瀷
         /// </summary>
@@ -420,12 +439,34 @@
             room,//鎴块棿
             push,//鎺ㄩ��
         }
+
 #if __IOS__
+        ///// <summary>
+        ///// 涓撻棬瀹氫箟缁橧os鍥炶皟鐢ㄧ潃,娌℃湁鐗规畩鍚箟
+        ///// </summary>
+        //public class IosIHdlInterface : Shared.IOS.HDLLinphoneSDK.HDLLinphoneCallDelegate
+        //{
 
+        //    Action<bool, string> mAction;
+        //    public IosIHdlInterface(Action<bool, string> action)
+        //    {
+        //        mAction = action;
+        //    }
+        //    /// <summary>
+        //    /// 
+        //    /// </summary>
+        //    /// <param name="p0">true鏄叆缃戞垚鍔�(婧愮敓鍥炶皟杩斿洖)</param>
+        //    /// <param name="p1">璁惧鐨勫簭鍒楀寲(婧愮敓鍥炶皟杩斿洖)</param>
+        //    public void AddCallback(bool p0, string p1)
+        //    {
+        //        mAction?.Invoke(p0, p1);
+        //    }
+
+           
+        //}
 #else
-
         /// <summary>
-        /// 
+        /// 涓撻棬瀹氫箟缁欏畨鍗撳洖璋冪敤鐫�,娌℃湁鐗规畩鍚箟
         /// </summary>
         public class AndroidIHdlInterface : Java.Lang.Object, IHdlInterface
         {
@@ -447,10 +488,10 @@
 
            
         }
-
 #endif
-    }
 
 
+    }
+
 
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs
index 49bbbf1..b636f81 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs
@@ -296,13 +296,13 @@
                          this.CalculatedPosition();//閲嶆柊璁$畻瀹藉害
 
                      });
-                    //infoView.actionDel += () =>
-                    //  {
-                    //      //瑙g粦璁惧鍚�
-                    //      this.RemoveFromParent();
-                    //      this.action?.Invoke();
+                    infoView.actionDel += () =>
+                      {
+                          //瑙g粦璁惧鍚�
+                          this.RemoveFromParent();
+                          this.action?.Invoke();
 
-                    //  };
+                      };
                     MainPage.BasePageView.AddChidren(infoView);
                     infoView.LoadPage();
                     MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
@@ -317,7 +317,7 @@
             //瀹炴椂瑙嗛
             this.rtvFL.SetClickListener((fl, btnStateImage, btnStateText) =>
             {
-                CommonMethod.Current.SkipRTVActivity(this.device.sid, this.device.deviceId, this.device.spk);
+                CommonMethod.Current.SkipRTVActivity(this.device.sid, this.device.deviceId, this.device.spk,false);
             });
             //涓存椂瀵嗙爜
             this.pswFL.SetClickListener((fl, btnStateImage, btnStateText) =>
diff --git a/HDL_ON/UI/UI2/UserPage.cs b/HDL_ON/UI/UI2/UserPage.cs
index 6a3074f..b2fd6b5 100644
--- a/HDL_ON/UI/UI2/UserPage.cs
+++ b/HDL_ON/UI/UI2/UserPage.cs
@@ -485,9 +485,10 @@
                 {
                     btnNavigationSelectionIcon.SetRotation(0f);
                     ContextView.RemoveAll();
-                    var classificaitionView = new ClassificationPage();
+                    var classificaitionView = new ClassificationPage(); 
                     ContextView.AddChidren(classificaitionView);
                     classificaitionView.LoadPage();
+                    
                 });
             })
             { IsBackground = true, Priority = System.Threading.ThreadPriority.Lowest }.Start();

--
Gitblit v1.8.0