From 70d2b7cd0c8fe5dfb29bb2baf96997575ade2bac Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 08 七月 2021 18:34:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/newBranch1' into WJC

---
 HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/SpeedIconOn.png                                 |    0 
 HDL-ON_Android/Assets/Language.ini                                                            |   47 
 HDL-ON_iOS/HDL-ON_iOS.csproj                                                                  |   26 
 HDL_ON/Common/ApiUtlis.cs                                                                     |   52 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PowerIconOn.png                                 |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs                                  |    9 
 HDL_ON/HDL_ON.projitems                                                                       |  585 +-
 HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PowerIconOn.png                                |    0 
 HDL-ON_Android/libs/armeabi-v7a/libSoftAPConfig.so                                            |    0 
 HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs                                                       |   69 
 HDL-ON_Android/Resources/values/strings.xml                                                   |    2 
 HDL_ON/DAL/Server/NewApiRes.cs                                                                |    8 
 HDL_ON/UI/UI2/3-Intelligence/Scene/NewSceneMenuListPage.cs                                    |   73 
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs                                        |   16 
 HDL-ON_Android/Resources/Resource.designer.cs                                                 | 2253 +++++++-------
 HDL_ON/Common/OnAppConfig.cs                                                                  |    7 
 HDL-ON_Android/libs/armeabi-v7a/libjninetsdk.so                                               |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PowerIcon.png                                   |    0 
 HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs                                      |  241 +
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePage.cs                        |    6 
 HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs                                       |  382 -
 HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs                                                 |    4 
 HDL_ON/Entity/Function/Scene.cs                                                               |   24 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irfan_white.png                         |    0 
 HDL_ON/Common/Constant.cs                                                                     |    4 
 HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs                                           |   60 
 HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs                                          |   59 
 HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs                                           |    1 
 HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs                                       |    1 
 DLL/LC/IOS/Shared.IOS.LCVideoOnSDK.dll                                                        |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PowerIcon.png                                  |    0 
 HDL_ON/DAL/DriverLayer/Control_Udp.cs                                                         |   41 
 HDL-ON_Android/Resources/values-zh/strings.xml                                                |    2 
 HDL_ON/UI/UI0-Public/TopViewDiv.cs                                                            |    4 
 HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs                                        |  240 +
 HDL_ON/UI/UI0-Stan/Logic/HdlCheckLogic.cs                                                     |   12 
 HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs                                       |  317 ++
 HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs                                          |   14 
 HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs                                |  129 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irfan_blue.png                         |    0 
 HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs                                                         |  363 ++
 HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs                                        |   11 
 HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/HeadSwingingIcon.png                           |    0 
 HDL-ON_iOS/ViewController.cs                                                                  |    1 
 HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs                                            |   44 
 HDL_ON/UI/UI2/UserPage.cs                                                                     |    2 
 HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs                                             |    5 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PatternIconOn.png                               |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMethod.cs                                         |    1 
 HDL-ON_iOS/AppDelegate.cs                                                                     |    9 
 HDL-ON_Android/LeChengVideoActivity.cs                                                        |  304 +
 HDL-ON_iOS/Resources/Language.ini                                                             |   46 
 HDL-ON_Android/libs/armeabi-v7a/libSmartConfig.so                                             |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/SpeedIcon.png                                  |    0 
 HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs                                    |    8 
 HDL_ON/DAL/DriverLayer/Packet.cs                                                              |   42 
 HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs                                         |   38 
 HDL_ON/DAL/DriverLayer/Control.cs                                                             |   73 
 DLL/LC/Android/LC_SDK.dll                                                                     |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PatternIconOn.png                              |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/HeadSwingingIconOn.png                         |    0 
 HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/SpeedIconOn.png                                |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/RoomEditFunctionPage.cs                         |    4 
 HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout50.cs                                  |    6 
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationConfirmPage.cs           |  185 
 HDL-ON_Android/libs/armeabi-v7a/libnetsdk.so                                                  |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/OnePortAutomation.cs                                  |   12 
 HDL_ON/UI/UI2/UserPageBLL.cs                                                                  |    1 
 HDL_ON/DAL/Server/HttpServerRequest.cs                                                        |   25 
 HDL-ON_Android/Properties/AndroidManifest.xml                                                 |    2 
 HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PatternIcon.png                                |    0 
 HDL-ON_Android/libs/armeabi-v7a/libGMCrypto.so                                                |    0 
 HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs                             |    6 
 HDL_ON/DAL/Mqtt/MqttClient.cs                                                                 |   55 
 HDL-ON_Android/FengLinVideo/Form/MonitorFragment.cs                                           |    2 
 HDL_ON/UI/UI2/3-Intelligence/Automation 2.zip                                                 |    0 
 HDL-ON_Android/HDL-ON_Android.csproj                                                          |   35 
 HDL_ON/UI/UI2/3-Intelligence/Automation.zip                                                   |    0 
 HDL-ON_iOS/Info.plist                                                                         |    8 
 HDL_ON/Common/HDLCommon.cs                                                                    |   59 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irfan_blue.png                          |    0 
 HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs                                      |    2 
 HDL_ON/UI/UI1-Login/LoginPage.cs                                                              |  148 
 HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs                                       |  115 
 HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs                                              |   81 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/TimingIcon.png                                  |    0 
 HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs                                          |  577 ++-
 HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/TimingIconOn.png                               |    0 
 HDL-ON_iOS/Resources/Phone/Classification/Room/AllCloseIcon2.png                              |    0 
 HDL-ON_Android/LeChengVideo/Form/MonitorFragment.cs                                           |  148 
 HDL_ON/Entity/Function/Function.cs                                                            |   81 
 HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs                                         |    5 
 HDL_ON/DAL/Server/HttpUtil.cs                                                                 |   14 
 HDL_ON/Common/UserInfo.cs                                                                     |   66 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PatternIcon.png                                 |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationResultPage.cs            |  105 
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePageBLL.cs                     |   10 
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationMemberConfirmPage.cs     |  210 +
 HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs                                                     |    4 
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs                                                          |   67 
 HDL_ON/Entity/Function/Light.cs                                                               |   34 
 HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs                                |    8 
 HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs                    |   96 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irfan.png                                       |    0 
 HDL-ON_Android/libs/armeabi-v7a/libconfigsdk.so                                               |    0 
 HDL_ON/UI/UI2/FuntionControlView/Electrical/TVPage.cs                                         |    1 
 HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs                              |    7 
 HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irfan_white.png                        |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/FloorsManagementPageBLL.cs                      |    7 
 HDL_ON/UI/UI0-Public/Widget/ConfirmDialog.cs                                                  |   17 
 HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs                                     |    8 
 HDL-ON_Android/libs/armeabi-v7a/libLCOpenApiClient.so                                         |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/SpeedIcon.png                                   |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/HeadSwingingIcon.png                            |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/HeadSwingingIconOn.png                          |    0 
 HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs                                       |   18 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/TimingIconOn.png                                |    0 
 HDL_ON/UI/MainPage.cs                                                                         |   35 
 HDL-ON_Android/Application.cs                                                                 |    6 
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationMemberListPage.cs        |  180 +
 HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs                             |   10 
 HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/TimingIcon.png                                 |    0 
 HDL-ON_Android/Assets/Phone/Classification/Room/AllCloseIcon2.png                             |    0 
 HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferUserConfirmPage.cs             |   19 
 HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs                          |    8 
 HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs                                |   13 
 HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/FanIcon.png                                    |    0 
 HDL-ON_Android/libs/armeabi-v7a/libgnustl_shared.so                                           |    0 
 HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs                                         |   92 
 HDL-ON_Android/libs/armeabi-v7a/libLechangeSDK.so                                             |    0 
 HDL_ON/Entity/FunctionList.cs                                                                 |   57 
 /dev/null                                                                                     |  150 
 HDL_ON/DAL/Server/NewAPI.cs                                                                   |   36 
 HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/MiniRemoteControl/AddThirdPartyDeviceMenuListPage.cs |    2 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irfan.png                                        |    0 
 HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/FanIcon.png                                     |    0 
 HDL_ON/Common/R.cs                                                                            |  757 ++--
 HDL-ON_Android/Resources/layout/activity_video_phone.xml                                      |    5 
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs                                           |    7 
 HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout60.cs                                  |   11 
 HDL-ON_Android/Other/JPush/JPushReceiver.cs                                                   |    6 
 141 files changed, 5,993 insertions(+), 3,265 deletions(-)

diff --git a/DLL/LC/Android/LC_SDK.dll b/DLL/LC/Android/LC_SDK.dll
new file mode 100644
index 0000000..5a649ed
--- /dev/null
+++ b/DLL/LC/Android/LC_SDK.dll
Binary files differ
diff --git a/DLL/LC/IOS/Shared.IOS.LCVideoOnSDK.dll b/DLL/LC/IOS/Shared.IOS.LCVideoOnSDK.dll
new file mode 100644
index 0000000..7974ad9
--- /dev/null
+++ b/DLL/LC/IOS/Shared.IOS.LCVideoOnSDK.dll
Binary files differ
diff --git a/HDL-ON_Android/Application.cs b/HDL-ON_Android/Application.cs
index d9d098f..3d29968 100644
--- a/HDL-ON_Android/Application.cs
+++ b/HDL-ON_Android/Application.cs
@@ -228,9 +228,9 @@
         {
             //鎵嬫満鍚嶇О Android.OS.Build.Manufacturer;
             //OnAppConfig.Instance.PhoneName = Android.OS.Build.Manufacturer;
-#if DEBUG
-            CN.Jpush.Android.Api.JPushInterface.SetDebugMode(true);
-#endif
+//#if DEBUG
+            //CN.Jpush.Android.Api.JPushInterface.SetDebugMode(true);
+//#endif
             CN.Jpush.Android.Api.JPushInterface.Init(this);
 
         }
diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index 6470f74..3ed920d 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -328,7 +328,7 @@
 324=Scene delay
 325=Delay setting
 326=Delay
-327=Capture the scene
+327=Catch Scene
 328=Film scene
 329=General
 330=Automatic mode
@@ -337,7 +337,7 @@
 333=Floor cooling power 
 334=Adjust the percentage
 335=No delay
-336=No scene
+336=No scene available. Add one! 
 337=Edit the scene
 338=The name of the scene can not be blank.
 339=The name of the scene has existed, please revise.
@@ -463,6 +463,11 @@
 474=Swing up and down
 475=Swing left and right
 476=Add residence
+477=Swing
+478=Pattern
+479=Speed
+
+
  
 1000=Room Humidity
 1001=V-chip
@@ -622,17 +627,21 @@
 1154=Transferring to User, Please Wait鈥�
 1155={0} has become a residential administrator
 1156=The residence data will be deleted from your account
-1157=Fail to transfer
+1157=Fail to migrate
 1158=Please try again
-
- 
- 
- 
- 
+1159=Admin authority migration
+1160=Your admin authority is being migrated to other members
+1161=1.Your data (cloud data) of the residence will be{0}migratedto the new administrator{0}2.Your data will be exchanged with the target member{0}and your permission will be changed to the target{0}member
+1162=Confirm
+1163=No members to choose 
+1164=Confirm admin authority migration from {0} to {1} 
+1165=Migrate successfully
+1166=Fail to migrate
+1167=Migrate successfully, And your permissions will become normal members
  
 4000=Video intercom
 4001=Call record
-4002=*Cloud photos are only kept for 30 days
+4002=*Cloud records are only kept for 30 days
 4003=Door phone call
 4004=Answered
 4005=Unlocked
@@ -1396,7 +1405,7 @@
 324=鍦烘櫙寤舵椂
 325=寤舵椂璁剧疆
 326=寤舵椂
-327=鎹曟崏鍦烘櫙
+327=鎹曡幏鍦烘櫙
 328=鐢靛奖鍦烘櫙
 329=鏅��
 330=鑷姩妯″紡
@@ -1529,6 +1538,9 @@
 474=涓婁笅鎵
 475=宸﹀彸鎵
 476=娣诲姞浣忓畢
+477=鎽嗗姩
+478=妯″紡
+479=椋庨��
  
  
 1000=瀹ゅ唴婀垮害
@@ -1693,16 +1705,23 @@
 1152=涓嶈兘鑷繁杩囨埛缁欒嚜宸�
 1153=缁堟
 1154=姝e湪杩囨埛缁欑敤鎴�,璇风◢鍚�...
-1155=鐢ㄦ埛{0}宸茬粡鎴愪负浣忓畢琛岀鐞嗗憳
+1155=鐢ㄦ埛{0}宸茬粡鎴愪负浣忓畢鏂扮鐞嗗憳
 1156=璇ヤ綇瀹呯殑淇℃伅灏嗗湪鎮ㄧ殑璐﹀彿涓垹闄�
 1157=杩囨埛澶辫触
 1158=璇烽噸鏂板皾璇�
-
- 
+1159=绠$悊鍛樻潈闄愯浆绉�
+1160=鎮ㄥ皢杞Щ鎮ㄧ殑绠$悊鍛樻潈闄愮粰鍏朵粬鎴愬憳
+1161=1.璇ヤ綇瀹呮偍鐨勭鐞嗗憳鏁版嵁锛堜簯绔暟鎹級灏嗗叏閮ㄨ浆绉荤粰鏂扮殑{0}绠$悊鍛榹0}2.鎮ㄧ殑鏁版嵁灏嗕細涓庣洰鏍囨垚鍛樹簰鎹紝鎮ㄧ殑鏉冮檺灏嗗彉鏇翠负鐩爣{0}鎴愬憳鐨勬潈闄�
+1162=纭杞Щ
+1163=妫�娴嬩笉鍒板彲渚涢�夋嫨鐨勬垚鍛�
+1164=纭杞Щ{0}鐨勭鐞嗗憳鏉冮檺缁欒处鍙穥1}
+1165=杩佺Щ鎴愬姛
+1166=杩佺Щ澶辫触
+1167=杩佺Щ鎴愬姛锛屾偍鐨勬潈闄愬皢鍙樹负鏅�氭垚鍛�
  
 4000=鍙瀵硅
 4001=閫氳瘽璁板綍
-4002=*浜戠鐓х墖鍙繚鐣�30澶�
+4002=*浜戠璁板綍鍙繚鐣�30澶�
 4003=闂ㄥ彛鏈哄懠鍙�
 4004=宸叉帴鍚�
 4005=宸插紑閿�
diff --git a/HDL-ON_Android/Assets/Phone/Classification/Room/AllCloseIcon2.png b/HDL-ON_Android/Assets/Phone/Classification/Room/AllCloseIcon2.png
new file mode 100644
index 0000000..bf7df5a
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/Classification/Room/AllCloseIcon2.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irfan_blue.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irfan_blue.png
new file mode 100644
index 0000000..c59a2e5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irfan_blue.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irfan_white.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irfan_white.png
new file mode 100644
index 0000000..8c5ead5
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/irfan_white.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irfan.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irfan.png
new file mode 100644
index 0000000..0447c4d
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/irfan.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/FanIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/FanIcon.png
new file mode 100644
index 0000000..5ed6525
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/FanIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/HeadSwingingIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/HeadSwingingIcon.png
new file mode 100644
index 0000000..6839cb1
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/HeadSwingingIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/HeadSwingingIconOn.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/HeadSwingingIconOn.png
new file mode 100644
index 0000000..2fbe4e2
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/HeadSwingingIconOn.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PatternIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PatternIcon.png
new file mode 100644
index 0000000..dbb0830
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PatternIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PatternIconOn.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PatternIconOn.png
new file mode 100644
index 0000000..b663d9b
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PatternIconOn.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PowerIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PowerIcon.png
new file mode 100644
index 0000000..6cfa157
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PowerIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PowerIconOn.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PowerIconOn.png
new file mode 100644
index 0000000..34bfbf2
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/PowerIconOn.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/SpeedIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/SpeedIcon.png
new file mode 100644
index 0000000..2a0fa78
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/SpeedIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/SpeedIconOn.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/SpeedIconOn.png
new file mode 100644
index 0000000..e57e298
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/SpeedIconOn.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/TimingIcon.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/TimingIcon.png
new file mode 100644
index 0000000..177b58c
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/TimingIcon.png
Binary files differ
diff --git a/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/TimingIconOn.png b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/TimingIconOn.png
new file mode 100644
index 0000000..2ce5688
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/FunctionIcon/IrFan/TimingIconOn.png
Binary files differ
diff --git a/HDL-ON_Android/FengLinVideo/Form/MonitorFragment.cs b/HDL-ON_Android/FengLinVideo/Form/MonitorFragment.cs
index e67d8e5..d93069d 100644
--- a/HDL-ON_Android/FengLinVideo/Form/MonitorFragment.cs
+++ b/HDL-ON_Android/FengLinVideo/Form/MonitorFragment.cs
@@ -80,7 +80,7 @@
                     unlockImag.Selected = true;
                     JSONObject ht = new JSONObject();
                     ht.Put("command", "open");//鍥哄畾鍙傛暟
-                    ht.Put("room_id", 123);
+                    ht.Put("room_id", VideoActivity.Roomno);
                     ht.Put("devType", 7);
                     mPhone.SendCustomData(ht.ToString());
                 }
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index 6f480ba..6511e92 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -37,7 +37,6 @@
     <MandroidI18n>cjk</MandroidI18n>
     <AndroidDexTool>d8</AndroidDexTool>
     <AndroidEnableSGenConcurrent>false</AndroidEnableSGenConcurrent>
-    <AndroidLinkMode>None</AndroidLinkMode>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugSymbols>True</DebugSymbols>
@@ -52,7 +51,6 @@
     <MandroidI18n>cjk</MandroidI18n>
     <AndroidEnableSGenConcurrent>false</AndroidEnableSGenConcurrent>
     <AndroidUseSharedRuntime>false</AndroidUseSharedRuntime>
-    <AndroidSupportedAbis>armeabi-v7a;arm64-v8a</AndroidSupportedAbis>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="System" />
@@ -156,6 +154,9 @@
     <Reference Include="ys">
       <HintPath>..\DLL\EZvizMonitor\ys.dll</HintPath>
     </Reference>
+    <Reference Include="LC_SDK">
+      <HintPath>..\DLL\LC\Android\LC_SDK.dll</HintPath>
+    </Reference>
   </ItemGroup>
   <ItemGroup>
     <Compile Include="MainActivity.cs" />
@@ -173,6 +174,9 @@
     <Compile Include="FengLinVideo\Form\MonitorFragment.cs" />
     <Compile Include="FengLinVideo\Form\ReverseCallFragment.cs" />
     <Compile Include="FengLinVideo\widget\TipDiaglog.cs" />
+    <Compile Include="LeChengVideo\Form\MonitorFragment.cs" />
+    <Compile Include="LeChengVideo\Form\ReverseCallFragment.cs" />
+    <Compile Include="LeChengVideoActivity.cs" />
   </ItemGroup>
   <ItemGroup>
     <None Include="Resources\AboutResources.txt" />
@@ -408,6 +412,21 @@
     <AndroidAsset Include="Assets\Phone\FunctionIcon\AC\SweepIconUD.png" />
     <AndroidAsset Include="Assets\Phone\FunctionIcon\AC\SweepIconUDOn.png" />
     <AndroidAsset Include="Assets\Phone\Public\ScanGrey.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\IrFan\FanIcon.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\IrFan\HeadSwingingIcon.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\IrFan\HeadSwingingIconOn.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\IrFan\PatternIcon.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\IrFan\PatternIconOn.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\IrFan\PowerIcon.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\IrFan\PowerIconOn.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\IrFan\TimingIcon.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\IrFan\TimingIconOn.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\IrFan\SpeedIcon.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\IrFan\SpeedIconOn.png" />
+    <AndroidAsset Include="Assets\Phone\Classification\Room\AllCloseIcon2.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irfan_blue.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\irfan_white.png" />
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\irfan.png" />
   </ItemGroup>
   <ItemGroup>
     <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\BindScene.png" />
@@ -1219,6 +1238,15 @@
   <ItemGroup>
     <AndroidNativeLibrary Include="libs\armeabi-v7a\libelianjni.so" />
     <AndroidNativeLibrary Include="libs\armeabi-v7a\libjcore127.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libconfigsdk.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libGMCrypto.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libgnustl_shared.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libjninetsdk.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libLCOpenApiClient.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libLechangeSDK.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libnetsdk.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libSmartConfig.so" />
+    <AndroidNativeLibrary Include="libs\armeabi-v7a\libSoftAPConfig.so" />
   </ItemGroup>
   <ItemGroup>
     <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\Connect.png" />
@@ -1295,6 +1323,9 @@
   <ItemGroup>
     <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\DoorLock.png" />
   </ItemGroup>
+  <ItemGroup>
+    <Folder Include="Assets\Phone\FunctionIcon\IrFan\" />
+  </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/LeChengVideo/Form/MonitorFragment.cs b/HDL-ON_Android/LeChengVideo/Form/MonitorFragment.cs
new file mode 100644
index 0000000..23cefec
--- /dev/null
+++ b/HDL-ON_Android/LeChengVideo/Form/MonitorFragment.cs
@@ -0,0 +1,148 @@
+锘�
+using System.Threading;
+using Android.App;
+using Android.Icu.Text;
+using Android.OS;
+using Android.Views;
+using Android.Widget;
+using Java.Util;
+
+namespace HDL_ON_Android.LeChengView.Form
+{
+    public class MonitorFragment : Fragment, View.IOnClickListener
+    {
+
+        private View mView;
+
+        // 鎴浘
+        private LinearLayout screenshotLayout;
+        private ImageView screenImage;
+        private TextView ScreenText;
+
+        //寮�閿�
+        private LinearLayout unlockLayout;
+        private ImageView unlockImag;
+        private TextView unlockText;
+
+        // 鏇存柊绾跨▼
+        private Thread thread = null;
+
+        private LeChengVideoActivity CurtActivity;
+
+        public override void OnCreate(Bundle savedInstanceState)
+        {
+            base.OnCreate(savedInstanceState);
+
+            CurtActivity = (LeChengVideoActivity)this.Activity;
+        }
+
+        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
+        {
+            mView = inflater.Inflate(Resource.Layout.fragment_monitor, container, false);
+
+            IniView();
+
+            CurtActivity.Play();
+            CurtActivity.OpenAudio();
+
+            return mView;
+        }
+
+        private void IniView()
+        {
+            screenshotLayout = (LinearLayout)mView.FindViewById(Resource.Id.icon_sceenshotLayout);
+            screenImage = (ImageView)mView.FindViewById(Resource.Id.icon_sceenshotImg);
+            ScreenText = (TextView)mView.FindViewById(Resource.Id.icon_sceenshotText);
+
+            unlockLayout = (LinearLayout)mView.FindViewById(Resource.Id.icon_unlockLayout);
+            unlockImag = (ImageView)mView.FindViewById(Resource.Id.icon_unlockImg);
+            unlockText = (TextView)mView.FindViewById(Resource.Id.icon_unlockText);
+
+            unlockLayout.SetOnClickListener(this);
+            screenshotLayout.SetOnClickListener(this);
+        }
+
+       
+
+        /// <summary>
+        /// 寮�閿�
+        /// </summary>
+        private void Unlock()
+        {
+            //
+        }
+
+        /// <summary>
+        /// 鏇存柊寮�閿佹寜閽姸鎬�
+        /// </summary>
+        private void UpdataUnlockState()
+        {
+            try
+            {
+                //寮�閿佹垚鍔燂紝15绉掑唴涓嶇粰鍐嶇偣鍑绘寜閽�
+                unlockLayout.Enabled = false;
+                if (thread != null)
+                {
+                    try
+                    {
+                        thread.Interrupt();
+                    }
+                    catch { }
+                    thread = null;
+                }
+
+                thread = new Thread(() =>
+                {
+                    try
+                    {
+                        Thread.Sleep(15 * 1000);
+
+                        Activity.RunOnUiThread(() =>
+                        {
+                            if (unlockLayout != null)
+                                unlockLayout.Enabled = true;
+                        });
+                    }
+                    catch { }
+                });
+
+                thread.Start();
+            }
+            catch { }
+        }
+
+        public void OnClick(View v)
+        {
+            //
+            if (v.Equals(unlockLayout))
+            {
+                //寮�閿�
+            }
+            else if (v.Equals(screenshotLayout))
+            {
+                //鏈夎棰戣繃鏉ュ彲璋冪敤姝ゆ帴鍙h繘琛屾媿鐓�
+                // 鍐呴儴鍌ㄥ瓨/DCIM/Camera/.....jpg
+                screenImage.Selected = true;
+                SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
+                string time = format.Format(new Date(SystemClock.CurrentThreadTimeMillis()));
+                string ss = Android.OS.Environment.ExternalStorageDirectory.Path + "/DCIM/Camera";
+                string path = ss + "/" + time + ".jpg";
+            }
+        }
+
+        public override void OnDestroy()
+        {
+            base.OnDestroy();
+
+            if (thread != null)
+            {
+                try
+                {
+                    thread.Interrupt();
+                }
+                catch { }
+                thread = null;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs b/HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs
new file mode 100644
index 0000000..84d67cf
--- /dev/null
+++ b/HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs
@@ -0,0 +1,317 @@
+锘�
+using System;
+using System.Collections.Generic;
+using System.Threading;
+using Android.App;
+using Android.Icu.Text;
+using Android.OS;
+using Android.Runtime;
+using Android.Util;
+using Android.Views;
+using Android.Widget;
+using HDL_ON.Common;
+using HDL_ON.DAL.Server;
+using Java.Util;
+
+namespace HDL_ON_Android.LeChengView.Form
+{
+    public class ReverseCallFragment : Fragment, View.IOnClickListener
+    {
+
+        private View mView;
+
+        private ImageView screenshotImg;// 鎴浘
+        private ImageView unlockImg;// 寮�閿�
+        private LinearLayout answerLayout; // 鎺ュ惉
+        private ImageView hangupImg;// 鎸傛柇
+        private ImageView answerImg;// 鎺ュ惉
+        private TextView hangupText;
+
+        private TextView tvTip;
+
+        private System.Threading.Timer timer = null;
+        private int Time = 0;
+
+        private static LeChengVideoActivity CurtActivity;
+
+        public override void OnCreate(Bundle savedInstanceState)
+        {
+            base.OnCreate(savedInstanceState);
+
+            CurtActivity = (LeChengVideoActivity)this.Activity;
+        }
+
+        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
+        {
+            mView = inflater.Inflate(Resource.Layout.fragment_call, container, false);
+
+            IniView();
+
+            CurtActivity.Play();
+
+            CurtActivity.CloseAudio();
+            
+            return mView;
+        }
+
+        private void IniView()
+        {
+            screenshotImg = (ImageView)mView.FindViewById(Resource.Id.callScreenshotImg);//
+            unlockImg = (ImageView)mView.FindViewById(Resource.Id.callUnlockImg);//
+            tvTip = (TextView)mView.FindViewById(Resource.Id.callTipText);
+            answerLayout = (LinearLayout)mView.FindViewById(Resource.Id.callAnswerLayout);
+            hangupImg = (ImageView)mView.FindViewById(Resource.Id.callHangupImg);
+            answerImg = (ImageView)mView.FindViewById(Resource.Id.callAnswerImg);
+            hangupText = (TextView)mView.FindViewById(Resource.Id.callHangupText);
+
+            screenshotImg.SetOnClickListener(this);
+            unlockImg.SetOnClickListener(this);
+            hangupImg.SetOnClickListener(this);
+            answerImg.SetOnClickListener(this);
+
+            hangupText.SetText(GetString(Resource.String.video_not_answer), null);
+            tvTip.SetText(GetString(Resource.String.calling), null);
+        }
+
+
+        /// <summary>
+        /// 寮�閿�
+        /// </summary>
+        private void PostUnlock()
+        {
+            //寮�閿侊紝褰撴敹鍒版潵鐢典俊鎭椂鍙繘琛屽紑閿佹搷浣�
+            new Thread(() =>
+            {
+                try
+                {
+                    Dictionary<string, object> d = new Dictionary<string, object>();
+                    d.Add("deviceId", CurtActivity.DeviceId);//璁惧id
+                    string jsonString = HttpUtil.GetSignRequestJson(d);
+
+                    string url = "/home-wisdom/platform/imou/openDoorbell";
+                    ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+                    Log.Info("LcVideo", "Post Unlock Response code=" + response.Code);
+                }
+                catch { }
+
+            }).Start();
+        }
+
+        /// <summary>
+        /// 鏇存柊寮�閿佹寜閽姸鎬�,寮�閿佹垚鍔燂紝15绉掑唴涓嶇粰鍐嶇偣鍑绘寜閽�
+        /// </summary>
+        private void UpdataUnlockState()
+        {
+            try
+            {
+                if (unlockImg == null) return;
+
+                unlockImg.Enabled = false;
+
+                new Thread(() =>
+                {
+                    Thread.Sleep(15 * 1000);
+                    Activity.RunOnUiThread(() =>
+                    {
+                        if (unlockImg != null)
+                            unlockImg.Enabled = true;
+                    });
+                }).Start();
+            }
+            catch { }
+        }
+
+        private string GetTime(int time)
+        {
+
+            int m = time / 60;
+            int s = time % 60;
+
+            return UnitFormat(m) + ":" + UnitFormat(s);
+
+        }
+
+        private static string UnitFormat(int i)
+        {
+            string retStr = null;
+            if (i >= 0 && i < 10)
+                retStr = "0" + i;
+            else
+                retStr = "" + i;
+            return retStr;
+        }
+
+        /// <summary>
+        /// 閫氳瘽璁板綍璁℃椂鍣紝浠庢媺娴佹垚鍔熷紑濮嬭绠楁椂闂�
+        /// </summary>
+        public void TimeStarts()
+        {
+            try
+            {
+                if (timer != null)
+                    timer.Dispose();
+
+                TimerCallback timerCallback = new TimerCallback(Tick);
+                timer = new System.Threading.Timer(timerCallback, null, 0, 1000);
+
+            }
+            catch (Exception) { }
+        }
+
+        public void TimeEnd()
+        {
+            Time = 0;
+
+            if (timer != null)
+            {
+                timer.Dispose();
+                timer = null;
+            }
+        }
+
+        public void Tick(object state)
+        {
+            try
+            {
+                Activity.RunOnUiThread(() =>
+                {
+                    try
+                    {
+                        Time++;
+                        if (tvTip != null)
+                            tvTip.SetText(GetTime(Time), null);
+                    }
+                    catch { }
+                });
+            }
+            catch { }
+        }
+
+        public void OnClick(View v)
+        {
+            if (v.Equals(answerImg))
+            {
+                //鎺ユ敹鏉ョ數
+                CurtActivity.StartTalk();
+                answerLayout.Visibility = ViewStates.Gone;
+                PostAnswer();
+            }
+            else if (v.Equals(hangupImg))
+            {
+                CurtActivity.StopTalk();
+                PostHangup();
+                TimeEnd();
+                Activity.Finish();
+            }
+            else if (v.Equals(screenshotImg))
+            {
+                //鏈夎棰戣繃鏉ュ彲璋冪敤姝ゆ帴鍙h繘琛屾媿鐓�
+            }
+            else if (v.Equals(unlockImg))
+            {
+                PostUnlock();
+            }
+        }
+
+        /// <summary>
+        /// post 鎴浘
+        /// </summary>
+        /// <param name="path">鎴浘淇濈暀鐨勮矾寰�</param>
+        private void PostScreenshot(string path)
+        {
+            new Thread(() =>
+            {
+                try
+                {
+                    string[] str = path.Split("/");
+                    string img_name = str.GetValue(str.Length - 1).ToString().Replace(".jpg", "");
+                    byte[] images = FileUtlis.Files.ReadFileForPath(path);
+                    Dictionary<string, object> d = new Dictionary<string, object>();
+                    d.Add("callId", VideoActivity.CallId);
+                    d.Add("images", images);
+                    d.Add("imagesName", img_name);
+                    string jsonString = HttpUtil.GetSignRequestJson(d);
+
+                    string url = "/home-wisdom/app/fl/vi/screenshot";
+                    ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+                    Log.Info("LcVideo", "Post Screenshot Response code=" + response.Code);
+                }
+                catch { }
+
+            }).Start();
+        }
+
+        /// <summary>
+        /// post 鎺ュ惉鐢佃瘽璁板綍
+        /// </summary>
+        public void PostAnswer()
+        {
+            new Thread(() =>
+            {
+                try
+                {
+                    Dictionary<string, object> d = new Dictionary<string, object>();
+                    d.Add("callId", CurtActivity.CallId);//鍛煎彨id
+                    d.Add("callStatus", "RECEIVED");//鍙敤鍊�:MISSED,RECEIVED,REJECT
+                    // d.Add("callDuration", Time);//閫氳瘽鏃堕暱锛堢锛�
+                    d.Add("interphoneTypeEnum", "IMOUVISIAL");//鍙敤鍊�:FLVI,IMOUVISIAL
+                    string jsonString = HttpUtil.GetSignRequestJson(d);
+
+                    string url = "/home-wisdom/platform/imou/updateCallStatus";
+                    ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+                    Log.Info("LcVideo", "Post Answer Response code=" + response.Code);
+                }
+                catch { }
+
+            }).Start();
+        }
+
+        /// <summary>
+        /// post 鎸傛柇鐢佃瘽璁板綍
+        /// </summary>
+        public void PostHangup()
+        {
+            new Thread(() =>
+            {
+                try
+                {
+                    Dictionary<string, object> d = new Dictionary<string, object>();
+                    d.Add("callId", CurtActivity.CallId);//鍛煎彨id
+                    //d.Add("callStatus", "REJECT");//鍙敤鍊�:MISSED,RECEIVED,REJECT
+                    d.Add("callDuration", Time);//閫氳瘽鏃堕暱锛堢锛�
+                    d.Add("interphoneTypeEnum", "IMOUVISIAL");//鍙敤鍊�:FLVI,IMOUVISIAL
+                    string jsonString = HttpUtil.GetSignRequestJson(d);
+
+                    string url = "/home-wisdom/platform/imou/updateCallStatus";
+                    ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+                    Log.Info("LcVideo", "Post Hangup Response code=" + response.Code);
+                }
+                catch { }
+
+            }).Start();
+        }
+
+        /// <summary>
+        /// post 鎷掓帴璁板綍,浠呭彧鏈夊湪姝e父鎸傛柇鐘舵�佷笅鎵嶆彁浜ら�氳瘽鏃堕棿
+        /// </summary>
+        public void PostReject()
+        {
+            new Thread(() =>
+            {
+                try
+                {
+                    Dictionary<string, object> d = new Dictionary<string, object>();
+                    d.Add("callId", CurtActivity.CallId);//鍛煎彨id
+                    d.Add("callStatus", "REJECT");//鍙敤鍊�:MISSED,RECEIVED,REJECT
+                    string jsonString = HttpUtil.GetSignRequestJson(d);
+
+                    string url = "/home-wisdom/platform/imou/updateCallStatus";
+                    ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
+                    Log.Info("LcVideo", "Post Reject Response code=" + response.Code);
+                }
+                catch { }
+
+            }).Start();
+        }
+    }
+}
diff --git a/HDL-ON_Android/LeChengVideoActivity.cs b/HDL-ON_Android/LeChengVideoActivity.cs
new file mode 100644
index 0000000..9020958
--- /dev/null
+++ b/HDL-ON_Android/LeChengVideoActivity.cs
@@ -0,0 +1,304 @@
+锘�
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Android;
+using Android.App;
+using Android.Content;
+using Android.Content.PM;
+using Android.Graphics;
+using Android.OS;
+using Android.Runtime;
+using Android.Support.V4.App;
+using Android.Support.V4.Content;
+using Android.Util;
+using Android.Views;
+using Android.Widget;
+using Com.Lechange.Opensdk.Api;
+using Com.Lechange.Opensdk.Device;
+using Com.Lechange.Opensdk.Listener;
+using Com.Lechange.Opensdk.Media;
+using HDL_ON.DAL.Server;
+using HDL_ON_Android.LeChengView.Form;
+using Java.Lang;
+
+namespace HDL_ON_Android
+{
+    [Activity(Label = "LeChengVideoActivity", WindowSoftInputMode = SoftInput.AdjustResize, LaunchMode = LaunchMode.SingleInstance, ConfigurationChanges = (ConfigChanges.Keyboard | ConfigChanges.KeyboardHidden | ConfigChanges.LayoutDirection | ConfigChanges.Locale | ConfigChanges.Orientation | ConfigChanges.ScreenSize), Theme = "@style/MyTheme1", ScreenOrientation = ScreenOrientation.Portrait)]
+    public class LeChengVideoActivity : Activity, View.IOnClickListener
+    {
+        private static LeChengVideoActivity CurtActivity;
+        //
+        private string URL = "openapi.easy4ip.com:443";
+        public string AccessToken = "";
+        public string DeviceId = "";
+        public string Psk = "";
+        public string PlayToken = "";//鎾斁playToken
+        public string CallId = "";//鍛煎彨Id
+        private int Type = 0;//0鐩戞帶锛�1瀵硅
+        /// <summary>
+        /// 0:鍥藉唴锛�1娴峰
+        /// </summary>
+        private int Location = 0;
+
+        private FrameLayout flWindow;
+        private FrameLayout flWindowContent;
+        private ImageView ivBack;
+        private TextView tvName;
+        private MonitorFragment monitorFragment = null;
+        private ReverseCallFragment reverseCallFragment = null;
+
+        public LCOpenSDK_PlayWindow mPlayWindow;
+
+        protected override void OnCreate(Bundle savedInstanceState)
+        {
+            base.OnCreate(savedInstanceState);
+
+            SetContentView(Resource.Layout.activity_video_phone);
+
+            CurtActivity = this;
+            AccessToken = Intent.GetStringExtra("AccessToken");//"St_0000d307a13c965c4db285469484490e"
+            DeviceId = Intent.GetStringExtra("DeviceId");//6K056CFAAJ8FFA1
+            Psk = Intent.GetStringExtra("Psk");//6K056CFAAJ8FFA1
+            PlayToken = Intent.GetStringExtra("PlayToken"); // 鎾斁playToken//"8a5e041afa674a2ba3e84d90a54ea962"
+            Type = Intent.GetIntExtra("Type", 0);//0鐩戞帶锛�1瀵硅//1
+            Location = Intent.GetIntExtra("Location", 0);//1
+            CallId = Intent.GetStringExtra("callId");//1384766990812426242
+
+            InitLCSDK();
+
+            IniView();
+
+            IniData();
+
+            Permissions();
+
+            if (Type == 0)
+            {
+                monitorFragment = new MonitorFragment();
+                FragmentManager.BeginTransaction().Replace(Resource.Id.content, monitorFragment).Commit();
+            }
+            else
+            {
+                reverseCallFragment = new ReverseCallFragment();
+                FragmentManager.BeginTransaction().Replace(Resource.Id.content, reverseCallFragment).Commit();
+            }
+        }
+
+        private void IniView()
+        {
+            //
+            flWindowContent = (FrameLayout)FindViewById(Resource.Id.remoteFrame);
+            flWindow = (FrameLayout)FindViewById(Resource.Id.live_window);
+
+            ivBack = (ImageView)FindViewById(Resource.Id.videoBackImg);
+            tvName = (TextView)FindViewById(Resource.Id.nameText);
+
+            tvName.SetText("DeviceName", null);
+            ivBack.SetOnClickListener(this);
+
+        }
+
+        private void IniData()
+        {
+            //
+            //SetStatusBarColor();// 杩欓噷璁捐鐨凾opBarColor鏄櫧鑹诧紝涓庣郴缁熷鑸爮瀛椾綋棰滆壊涓�鐩达紝鏆傛椂灞忚斀涓嶇敤
+
+            mPlayWindow = new LCOpenSDK_PlayWindow();
+            mPlayWindow.InitPlayWindow(this, flWindowContent, 0, true);
+
+            if (Location == 1)
+                URL = "openapi.easy4ip.com:443";
+        }
+
+        /// <summary>
+        ///  鍒濆鍖栦箰姗欏簱
+        /// </summary>
+        private void InitLCSDK()
+        {
+            InitParams initParams = new InitParams(this, URL, AccessToken);
+            LCOpenSDK_Api.InitOpenApi(initParams);
+        }
+
+        /// <summary>
+        /// 寮�濮嬫挱鏀撅紙棰勮锛�
+        /// </summary>
+        public void Play()
+        {
+            try
+            {
+                LCOpenSDK_ParamReal paramReal = new LCOpenSDK_ParamReal(AccessToken, DeviceId, 0, Psk, PlayToken, 1, false, true);
+                mPlayWindow.PlayRtspReal(paramReal);
+            }
+            catch (System.Exception e)
+            {
+                string sss = e.Message;
+            }
+        }
+
+        /// <summary>
+        /// 鍋滄棰勮锛堝仠姝㈡挱鏀剧敾闈級
+        /// </summary>
+        public void Stop()
+        {
+            mPlayWindow.StopRtspReal(true);//鍏抽棴瑙嗛
+        }
+
+        /// <summary>
+        /// 鎵撳紑瀵硅
+        /// </summary>
+        public void StartTalk()
+        {
+            CloseAudio();// 鍏抽棴Audio
+            LCOpenSDK_Talk.Listener = new AudioTalkerListener();//璁剧疆瀵硅鐩戝惉
+            // 瀵硅鍙傛暟
+            LCOpenSDK_ParamTalk paramTalk = new LCOpenSDK_ParamTalk(AccessToken, DeviceId, -1, Psk, PlayToken, true);
+            LCOpenSDK_Talk.PlayTalk(paramTalk);
+        }
+
+        /// <summary>
+        /// 鍏抽棴瀵硅
+        /// </summary>
+        public void StopTalk()
+        {
+            LCOpenSDK_Talk.StopTalk();
+            LCOpenSDK_Talk.Listener = null;
+        }
+
+        /// <summary>
+        /// 鎵撳紑澹伴煶锛堥瑙堢殑鏃跺�欏彲浠ュ惉鍒伴棬鍙f満浼犳潵鐨勫0闊筹級
+        /// </summary>
+        /// <returns></returns>
+        public bool OpenAudio()
+        {
+            return mPlayWindow.PlayAudio() == 0;
+        }
+
+        /// <summary>
+        /// 鍏抽棴澹伴煶锛堥瑙堢殑鏃跺�欏叧闂棬鍙f尋浼犳潵鐨勫0闊筹紝娉ㄦ剰锛氭墦寮�瀵硅鏃堕渶瑕佸厛璋冪敤姝ゆ柟娉曞叧闂0闊筹級
+        /// </summary>
+        /// <returns></returns>
+        public bool CloseAudio()
+        {
+            return mPlayWindow.StopAudio() == 0;
+        }
+
+        /// <summary>
+        /// 璁剧疆椤堕儴鐘舵�佹爮鑳屾櫙閫忔槑
+        /// </summary>
+        private void SetStatusBarColor()
+        {
+            Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds);
+            Window.SetStatusBarColor(Color.Transparent);
+        }
+
+        /// <summary>
+        /// 蹇呰鐨勪竴浜涙潈闄�
+        /// </summary>
+        private void Permissions()
+        {
+            string[] mPermissionList = new string[]
+            {
+                Manifest.Permission.WriteExternalStorage,
+                Manifest.Permission.ReadExternalStorage,
+                Manifest.Permission.Camera,
+                Manifest.Permission.RecordAudio
+            };
+
+            foreach (string permissions in mPermissionList)
+            {
+                if (ContextCompat.CheckSelfPermission(this, permissions) != 0)
+                {
+                    ActivityCompat.RequestPermissions(this, new string[] { permissions }, 1);
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鐐瑰嚮浜嬩欢
+        /// </summary>
+        /// <param name="v"></param>
+        public void OnClick(View v)
+        {
+            if (v.Equals(ivBack))
+            {
+                this.Finish();
+            }
+        }
+
+        protected override void OnDestroy()
+        {
+            base.OnDestroy();
+
+            Stop();
+            mPlayWindow.UninitPlayWindow();//閿�姣佸簳灞傝祫婧�
+        }
+
+        /// <summary>
+        /// 瀵硅鐩戝惉
+        /// </summary>
+        class AudioTalkerListener : LCOpenSDK_TalkerListener
+        {
+            /// <summary>
+            /// 瀵硅缁撴灉鍥炶皟
+            /// </summary>
+            /// <param name="error"></param>
+            /// <param name="type"></param>
+            public override void OnTalkResult(string error, int type)
+            {
+                base.OnTalkResult(error, type);
+
+                try
+                {
+                    bool talkResult = false;
+                    if (type == 99 || error.Equals("-1000") || error.Equals("0") || error.Equals("1") || error.Equals("3"))
+                    {
+                        talkResult = false;
+                    }
+                    else if (error.Equals("4"))
+                    {
+                        talkResult = true;
+                    }
+
+                    if (!talkResult)
+                    {
+                        // 鎻愮ず瀵硅鎵撳紑澶辫触
+                        CurtActivity.StopTalk();
+                        CurtActivity.RunOnUiThread(() =>
+                        {
+                            Toast.MakeText(CurtActivity, Resource.String.talk_open_failed, ToastLength.Short).Show();
+                        });
+                    }
+                    else
+                    {
+                        CurtActivity.reverseCallFragment.PostAnswer();// post鎺ュ惉鐢佃瘽锛岀粰浜戠鍋氳褰�
+                        CurtActivity.reverseCallFragment.TimeStarts();//鎺ラ�氭垚鍔熸墦寮�璁℃椂鍣�
+                    }
+                }
+                catch { }
+            }
+
+            public override void OnTalkPlayReady()
+            {
+                base.OnTalkPlayReady();
+            }
+
+            public override void OnAudioReceive(byte[] bytes, int p1, int p2, int p3, int p4)
+            {
+                base.OnAudioReceive(bytes, p1, p2, p3, p4);
+            }
+
+            public override void OnAudioRecord(byte[] bytes, int p1, int p2, int p3, int p4)
+            {
+                base.OnAudioRecord(bytes, p1, p2, p3, p4);
+            }
+
+            public override void OnDataLength(int i)
+            {
+                base.OnDataLength(i);
+            }
+        }
+
+    }
+}
diff --git a/HDL-ON_Android/Other/JPush/JPushReceiver.cs b/HDL-ON_Android/Other/JPush/JPushReceiver.cs
index ccc38c0..2116ed2 100644
--- a/HDL-ON_Android/Other/JPush/JPushReceiver.cs
+++ b/HDL-ON_Android/Other/JPush/JPushReceiver.cs
@@ -58,12 +58,14 @@
             {
                 pushMes.messageType = jpushExpandData.messageType;
                 pushMes.expantContent = jpushExpandData.expantContent;
+                pushMes.HomeId = jpushExpandData.homeId;
                 Utlis.WriteLine("PushMes messageType : " + pushMes.messageType);
             }
 
             Utlis.WriteLine("PushMes title : " + pushMes.Title);
             Utlis.WriteLine("PushMes message : " + pushMes.Content);
             Utlis.WriteLine("PushMes extras : " + pushMes.Extras);
+            Utlis.WriteLine("PushMes HomeId : " + pushMes.HomeId);
             Shared.Application.RunOnMainThread(() =>
             {
                 HDLCommon.Current.AdjustPushMessage(pushMes);
@@ -160,13 +162,15 @@
                 if (jpushExpandData != null && jpushExpandData.messageType != null)
                 {
                     pushMes.messageType = jpushExpandData.messageType;
-                    pushMes.expantContent = jpushExpandData.expantContent;
+                    pushMes.expantContent = jpushExpandData.expantContent; ;
+                    pushMes.HomeId = jpushExpandData.homeId;
                     Utlis.WriteLine("PushMes messageType : " + pushMes.messageType);
                 }
 
                 Utlis.WriteLine("PushMes title : " + pushMes.Title);
                 Utlis.WriteLine("PushMes message : " + pushMes.Content);
                 Utlis.WriteLine("PushMes extras : " + pushMes.Extras);
+                Utlis.WriteLine("PushMes HomeId : " + pushMes.HomeId);
                 Shared.Application.RunOnMainThread(() =>
                 {
                     Intent i = new Intent(context, typeof(BaseActivity));//Intent intent=new Intent( 璧峰缁勪欢瀵硅薄 , 鐩爣 Service.class);
diff --git a/HDL-ON_Android/Properties/AndroidManifest.xml b/HDL-ON_Android/Properties/AndroidManifest.xml
index 9e7480a..98c7a12 100644
--- a/HDL-ON_Android/Properties/AndroidManifest.xml
+++ b/HDL-ON_Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202106171" android:versionName="1.2.202106171" package="com.hdl.onpro">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202107081" android:versionName="1.2.202107081" package="com.hdl.onpro">
 	<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="29" />
 	<!--  鍙瀵硅鏉冮檺-->
 	<uses-permission android:name="android.permission.CAMERA" />
diff --git a/HDL-ON_Android/Resources/Resource.designer.cs b/HDL-ON_Android/Resources/Resource.designer.cs
index c504701..2bc20e9 100644
--- a/HDL-ON_Android/Resources/Resource.designer.cs
+++ b/HDL-ON_Android/Resources/Resource.designer.cs
@@ -7970,1384 +7970,1387 @@
 			public const int list_item = 2131296671;
 			
 			// aapt resource value: 0x7F0901A2
-			public const int llyCloundService = 2131296674;
+			public const int live_window = 2131296674;
 			
 			// aapt resource value: 0x7F0901A3
-			public const int llyStatus1 = 2131296675;
+			public const int llyCloundService = 2131296675;
 			
 			// aapt resource value: 0x7F0901A4
-			public const int llyStatus2 = 2131296676;
+			public const int llyStatus1 = 2131296676;
 			
 			// aapt resource value: 0x7F0901A5
-			public const int llyStatus3 = 2131296677;
+			public const int llyStatus2 = 2131296677;
 			
 			// aapt resource value: 0x7F0901A6
-			public const int loadingTextView = 2131296678;
+			public const int llyStatus3 = 2131296678;
 			
 			// aapt resource value: 0x7F0901A7
-			public const int loading_pb_ly = 2131296679;
+			public const int loadingTextView = 2131296679;
 			
 			// aapt resource value: 0x7F0901A8
-			public const int loading_play_btn = 2131296680;
+			public const int loading_pb_ly = 2131296680;
 			
 			// aapt resource value: 0x7F0901A9
-			public const int loading_text = 2131296681;
+			public const int loading_play_btn = 2131296681;
 			
 			// aapt resource value: 0x7F0901AA
-			public const int loading_view = 2131296682;
-			
-			// aapt resource value: 0x7F0901AC
-			public const int localDoorUnlock = 2131296684;
-			
-			// aapt resource value: 0x7F0901AD
-			public const int localVideo = 2131296685;
-			
-			// aapt resource value: 0x7F0901AE
-			public const int local_alarm1 = 2131296686;
-			
-			// aapt resource value: 0x7F0901AF
-			public const int local_alarm2 = 2131296687;
-			
-			// aapt resource value: 0x7F0901B0
-			public const int local_alarm3 = 2131296688;
-			
-			// aapt resource value: 0x7F0901B1
-			public const int local_l1 = 2131296689;
-			
-			// aapt resource value: 0x7F0901B2
-			public const int local_l2 = 2131296690;
-			
-			// aapt resource value: 0x7F0901B3
-			public const int local_l3 = 2131296691;
-			
-			// aapt resource value: 0x7F0901B4
-			public const int local_realplay_btn = 2131296692;
-			
-			// aapt resource value: 0x7F0901B5
-			public const int local_time_part1 = 2131296693;
-			
-			// aapt resource value: 0x7F0901B6
-			public const int local_time_part2 = 2131296694;
-			
-			// aapt resource value: 0x7F0901B7
-			public const int local_time_part3 = 2131296695;
+			public const int loading_text = 2131296682;
 			
 			// aapt resource value: 0x7F0901AB
-			public const int locaVideo = 2131296683;
+			public const int loading_view = 2131296683;
+			
+			// aapt resource value: 0x7F0901AD
+			public const int localDoorUnlock = 2131296685;
+			
+			// aapt resource value: 0x7F0901AE
+			public const int localVideo = 2131296686;
+			
+			// aapt resource value: 0x7F0901AF
+			public const int local_alarm1 = 2131296687;
+			
+			// aapt resource value: 0x7F0901B0
+			public const int local_alarm2 = 2131296688;
+			
+			// aapt resource value: 0x7F0901B1
+			public const int local_alarm3 = 2131296689;
+			
+			// aapt resource value: 0x7F0901B2
+			public const int local_l1 = 2131296690;
+			
+			// aapt resource value: 0x7F0901B3
+			public const int local_l2 = 2131296691;
+			
+			// aapt resource value: 0x7F0901B4
+			public const int local_l3 = 2131296692;
+			
+			// aapt resource value: 0x7F0901B5
+			public const int local_realplay_btn = 2131296693;
+			
+			// aapt resource value: 0x7F0901B6
+			public const int local_time_part1 = 2131296694;
+			
+			// aapt resource value: 0x7F0901B7
+			public const int local_time_part2 = 2131296695;
 			
 			// aapt resource value: 0x7F0901B8
-			public const int login_name = 2131296696;
+			public const int local_time_part3 = 2131296696;
+			
+			// aapt resource value: 0x7F0901AC
+			public const int locaVideo = 2131296684;
 			
 			// aapt resource value: 0x7F0901B9
-			public const int login_pwd = 2131296697;
+			public const int login_name = 2131296697;
 			
 			// aapt resource value: 0x7F0901BA
-			public const int longitude = 2131296698;
+			public const int login_pwd = 2131296698;
 			
 			// aapt resource value: 0x7F0901BB
-			public const int main_layout = 2131296699;
+			public const int longitude = 2131296699;
 			
 			// aapt resource value: 0x7F0901BC
-			public const int masked = 2131296700;
+			public const int main_layout = 2131296700;
+			
+			// aapt resource value: 0x7F0901BD
+			public const int masked = 2131296701;
 			
 			// aapt resource value: 0x7F090009
 			public const int MatchLayout = 2131296265;
 			
-			// aapt resource value: 0x7F0901BD
-			public const int matte_image = 2131296701;
-			
 			// aapt resource value: 0x7F0901BE
-			public const int media_actions = 2131296702;
+			public const int matte_image = 2131296702;
 			
 			// aapt resource value: 0x7F0901BF
-			public const int menu_layout = 2131296703;
+			public const int media_actions = 2131296703;
 			
 			// aapt resource value: 0x7F0901C0
-			public const int menu_play = 2131296704;
+			public const int menu_layout = 2131296704;
 			
 			// aapt resource value: 0x7F0901C1
-			public const int message = 2131296705;
+			public const int menu_play = 2131296705;
 			
 			// aapt resource value: 0x7F0901C2
-			public const int message1 = 2131296706;
+			public const int message = 2131296706;
 			
 			// aapt resource value: 0x7F0901C3
-			public const int message2 = 2131296707;
+			public const int message1 = 2131296707;
 			
 			// aapt resource value: 0x7F0901C4
-			public const int message_check = 2131296708;
+			public const int message2 = 2131296708;
 			
 			// aapt resource value: 0x7F0901C5
-			public const int message_content = 2131296709;
+			public const int message_check = 2131296709;
 			
 			// aapt resource value: 0x7F0901C6
-			public const int message_from = 2131296710;
+			public const int message_content = 2131296710;
 			
 			// aapt resource value: 0x7F0901C7
-			public const int message_from_tip = 2131296711;
+			public const int message_from = 2131296711;
 			
 			// aapt resource value: 0x7F0901C8
-			public const int message_image = 2131296712;
+			public const int message_from_tip = 2131296712;
 			
 			// aapt resource value: 0x7F0901C9
-			public const int message_image_layout = 2131296713;
+			public const int message_image = 2131296713;
 			
 			// aapt resource value: 0x7F0901CA
-			public const int message_image_progress = 2131296714;
+			public const int message_image_layout = 2131296714;
 			
 			// aapt resource value: 0x7F0901CB
-			public const int message_layout = 2131296715;
+			public const int message_image_progress = 2131296715;
 			
 			// aapt resource value: 0x7F0901CC
-			public const int message_list = 2131296716;
+			public const int message_layout = 2131296716;
 			
 			// aapt resource value: 0x7F0901CD
-			public const int message_num_tv = 2131296717;
+			public const int message_list = 2131296717;
 			
 			// aapt resource value: 0x7F0901CE
-			public const int message_play_layout = 2131296718;
+			public const int message_num_tv = 2131296718;
 			
 			// aapt resource value: 0x7F0901CF
-			public const int message_time = 2131296719;
+			public const int message_play_layout = 2131296719;
 			
 			// aapt resource value: 0x7F0901D0
-			public const int message_type = 2131296720;
+			public const int message_time = 2131296720;
 			
 			// aapt resource value: 0x7F0901D1
-			public const int message_unread = 2131296721;
+			public const int message_type = 2131296721;
 			
 			// aapt resource value: 0x7F0901D2
-			public const int message_video_layout = 2131296722;
+			public const int message_unread = 2131296722;
+			
+			// aapt resource value: 0x7F0901D3
+			public const int message_video_layout = 2131296723;
 			
 			// aapt resource value: 0x7F090008
 			public const int META = 2131296264;
 			
-			// aapt resource value: 0x7F0901D4
-			public const int middle = 2131296724;
-			
-			// aapt resource value: 0x7F0901D3
-			public const int mid_vertical_view = 2131296723;
-			
 			// aapt resource value: 0x7F0901D5
-			public const int min = 2131296725;
+			public const int middle = 2131296725;
+			
+			// aapt resource value: 0x7F0901D4
+			public const int mid_vertical_view = 2131296724;
 			
 			// aapt resource value: 0x7F0901D6
-			public const int mini = 2131296726;
+			public const int min = 2131296726;
 			
 			// aapt resource value: 0x7F0901D7
-			public const int mirror_line = 2131296727;
+			public const int mini = 2131296727;
 			
 			// aapt resource value: 0x7F0901D8
-			public const int modify_password_layout = 2131296728;
+			public const int mirror_line = 2131296728;
 			
 			// aapt resource value: 0x7F0901D9
-			public const int monitor = 2131296729;
+			public const int modify_password_layout = 2131296729;
 			
 			// aapt resource value: 0x7F0901DA
-			public const int month = 2131296730;
+			public const int monitor = 2131296730;
 			
 			// aapt resource value: 0x7F0901DB
-			public const int more_btn = 2131296731;
+			public const int month = 2131296731;
 			
 			// aapt resource value: 0x7F0901DC
-			public const int multiply = 2131296732;
+			public const int more_btn = 2131296732;
 			
 			// aapt resource value: 0x7F0901DD
-			public const int myRelativeLayout = 2131296733;
+			public const int multiply = 2131296733;
 			
 			// aapt resource value: 0x7F0901DE
-			public const int myRetry = 2131296734;
+			public const int myRelativeLayout = 2131296734;
 			
 			// aapt resource value: 0x7F0901DF
-			public const int nameText = 2131296735;
+			public const int myRetry = 2131296735;
 			
 			// aapt resource value: 0x7F0901E0
-			public const int name_del = 2131296736;
+			public const int nameText = 2131296736;
 			
 			// aapt resource value: 0x7F0901E1
-			public const int name_text = 2131296737;
+			public const int name_del = 2131296737;
 			
 			// aapt resource value: 0x7F0901E2
-			public const int name_tv = 2131296738;
+			public const int name_text = 2131296738;
 			
 			// aapt resource value: 0x7F0901E3
-			public const int navigation_header_container = 2131296739;
+			public const int name_tv = 2131296739;
 			
 			// aapt resource value: 0x7F0901E4
-			public const int never = 2131296740;
+			public const int navigation_header_container = 2131296740;
 			
 			// aapt resource value: 0x7F0901E5
-			public const int new_password = 2131296741;
+			public const int never = 2131296741;
 			
 			// aapt resource value: 0x7F0901E6
-			public const int next_play_btn = 2131296742;
-			
-			// aapt resource value: 0x7F0901EE
-			public const int none = 2131296750;
-			
-			// aapt resource value: 0x7F0901EF
-			public const int normal = 2131296751;
+			public const int new_password = 2131296742;
 			
 			// aapt resource value: 0x7F0901E7
-			public const int noText = 2131296743;
+			public const int next_play_btn = 2131296743;
+			
+			// aapt resource value: 0x7F0901EF
+			public const int none = 2131296751;
 			
 			// aapt resource value: 0x7F0901F0
-			public const int notification_background = 2131296752;
-			
-			// aapt resource value: 0x7F0901F1
-			public const int notification_main_column = 2131296753;
-			
-			// aapt resource value: 0x7F0901F2
-			public const int notification_main_column_container = 2131296754;
-			
-			// aapt resource value: 0x7F0901F3
-			public const int novideo_img = 2131296755;
-			
-			// aapt resource value: 0x7F0901F4
-			public const int novideo_img_device = 2131296756;
+			public const int normal = 2131296752;
 			
 			// aapt resource value: 0x7F0901E8
-			public const int no_camera_tip_ly = 2131296744;
+			public const int noText = 2131296744;
 			
-			// aapt resource value: 0x7F0901E9
-			public const int no_message_button = 2131296745;
+			// aapt resource value: 0x7F0901F1
+			public const int notification_background = 2131296753;
 			
-			// aapt resource value: 0x7F0901EA
-			public const int no_message_layout = 2131296746;
+			// aapt resource value: 0x7F0901F2
+			public const int notification_main_column = 2131296754;
 			
-			// aapt resource value: 0x7F0901EB
-			public const int no_message_text = 2131296747;
+			// aapt resource value: 0x7F0901F3
+			public const int notification_main_column_container = 2131296755;
 			
-			// aapt resource value: 0x7F0901EC
-			public const int no_more_hint = 2131296748;
-			
-			// aapt resource value: 0x7F0901ED
-			public const int no_more_text = 2131296749;
+			// aapt resource value: 0x7F0901F4
+			public const int novideo_img = 2131296756;
 			
 			// aapt resource value: 0x7F0901F5
-			public const int offline_bg = 2131296757;
+			public const int novideo_img_device = 2131296757;
+			
+			// aapt resource value: 0x7F0901E9
+			public const int no_camera_tip_ly = 2131296745;
+			
+			// aapt resource value: 0x7F0901EA
+			public const int no_message_button = 2131296746;
+			
+			// aapt resource value: 0x7F0901EB
+			public const int no_message_layout = 2131296747;
+			
+			// aapt resource value: 0x7F0901EC
+			public const int no_message_text = 2131296748;
+			
+			// aapt resource value: 0x7F0901ED
+			public const int no_more_hint = 2131296749;
+			
+			// aapt resource value: 0x7F0901EE
+			public const int no_more_text = 2131296750;
 			
 			// aapt resource value: 0x7F0901F6
-			public const int ok_tv = 2131296758;
+			public const int offline_bg = 2131296758;
 			
 			// aapt resource value: 0x7F0901F7
-			public const int options1 = 2131296759;
+			public const int ok_tv = 2131296759;
 			
 			// aapt resource value: 0x7F0901F8
-			public const int options2 = 2131296760;
+			public const int options1 = 2131296760;
 			
 			// aapt resource value: 0x7F0901F9
-			public const int options3 = 2131296761;
+			public const int options2 = 2131296761;
 			
 			// aapt resource value: 0x7F0901FA
-			public const int optionspicker = 2131296762;
+			public const int options3 = 2131296762;
 			
 			// aapt resource value: 0x7F0901FB
-			public const int outmost_container = 2131296763;
+			public const int optionspicker = 2131296763;
 			
 			// aapt resource value: 0x7F0901FC
-			public const int packed = 2131296764;
-			
-			// aapt resource value: 0x7F0901FE
-			public const int pager = 2131296766;
-			
-			// aapt resource value: 0x7F0901FF
-			public const int pager_tab_strip = 2131296767;
+			public const int outmost_container = 2131296764;
 			
 			// aapt resource value: 0x7F0901FD
-			public const int page_container = 2131296765;
+			public const int packed = 2131296765;
+			
+			// aapt resource value: 0x7F0901FF
+			public const int pager = 2131296767;
 			
 			// aapt resource value: 0x7F090200
-			public const int parallax = 2131296768;
+			public const int pager_tab_strip = 2131296768;
+			
+			// aapt resource value: 0x7F0901FE
+			public const int page_container = 2131296766;
 			
 			// aapt resource value: 0x7F090201
-			public const int parent = 2131296769;
+			public const int parallax = 2131296769;
 			
 			// aapt resource value: 0x7F090202
-			public const int parentPanel = 2131296770;
+			public const int parent = 2131296770;
 			
 			// aapt resource value: 0x7F090203
-			public const int parent_matrix = 2131296771;
+			public const int parentPanel = 2131296771;
 			
 			// aapt resource value: 0x7F090204
-			public const int passwordETV = 2131296772;
+			public const int parent_matrix = 2131296772;
 			
 			// aapt resource value: 0x7F090205
-			public const int pb_notlist_title_bar_landscape = 2131296773;
+			public const int passwordETV = 2131296773;
 			
 			// aapt resource value: 0x7F090206
-			public const int pb_play_loading = 2131296774;
+			public const int pb_notlist_title_bar_landscape = 2131296774;
 			
 			// aapt resource value: 0x7F090207
-			public const int pb_search_content_tab = 2131296775;
+			public const int pb_play_loading = 2131296775;
 			
 			// aapt resource value: 0x7F090208
-			public const int pb_search_tab_btn_cloud = 2131296776;
+			public const int pb_search_content_tab = 2131296776;
 			
 			// aapt resource value: 0x7F090209
-			public const int pb_search_tab_btn_device = 2131296777;
+			public const int pb_search_tab_btn_cloud = 2131296777;
 			
 			// aapt resource value: 0x7F09020A
-			public const int pb_title_bar_landscape = 2131296778;
+			public const int pb_search_tab_btn_device = 2131296778;
 			
 			// aapt resource value: 0x7F09020B
-			public const int peerAddress = 2131296779;
+			public const int pb_title_bar_landscape = 2131296779;
 			
 			// aapt resource value: 0x7F09020C
-			public const int percent = 2131296780;
+			public const int peerAddress = 2131296780;
 			
 			// aapt resource value: 0x7F09020D
-			public const int phone_et = 2131296781;
+			public const int percent = 2131296781;
 			
 			// aapt resource value: 0x7F09020E
-			public const int phone_ly = 2131296782;
+			public const int phone_et = 2131296782;
 			
 			// aapt resource value: 0x7F09020F
-			public const int phone_lyt = 2131296783;
+			public const int phone_ly = 2131296783;
 			
 			// aapt resource value: 0x7F090210
-			public const int pin = 2131296784;
-			
-			// aapt resource value: 0x7F090212
-			public const int platform_login_btn = 2131296786;
+			public const int phone_lyt = 2131296784;
 			
 			// aapt resource value: 0x7F090211
-			public const int plat_tv = 2131296785;
+			public const int pin = 2131296785;
 			
 			// aapt resource value: 0x7F090213
-			public const int play_video_layout = 2131296787;
+			public const int platform_login_btn = 2131296787;
+			
+			// aapt resource value: 0x7F090212
+			public const int plat_tv = 2131296786;
 			
 			// aapt resource value: 0x7F090214
-			public const int preview_view = 2131296788;
-			
-			// aapt resource value: 0x7F090219
-			public const int progressbar = 2131296793;
+			public const int play_video_layout = 2131296788;
 			
 			// aapt resource value: 0x7F090215
-			public const int progress_area = 2131296789;
-			
-			// aapt resource value: 0x7F090216
-			public const int progress_circular = 2131296790;
-			
-			// aapt resource value: 0x7F090217
-			public const int progress_horizontal = 2131296791;
-			
-			// aapt resource value: 0x7F090218
-			public const int progress_seekbar = 2131296792;
+			public const int preview_view = 2131296789;
 			
 			// aapt resource value: 0x7F09021A
-			public const int ptz_bottom_btn = 2131296794;
+			public const int progressbar = 2131296794;
+			
+			// aapt resource value: 0x7F090216
+			public const int progress_area = 2131296790;
+			
+			// aapt resource value: 0x7F090217
+			public const int progress_circular = 2131296791;
+			
+			// aapt resource value: 0x7F090218
+			public const int progress_horizontal = 2131296792;
+			
+			// aapt resource value: 0x7F090219
+			public const int progress_seekbar = 2131296793;
 			
 			// aapt resource value: 0x7F09021B
-			public const int ptz_close_btn = 2131296795;
+			public const int ptz_bottom_btn = 2131296795;
 			
 			// aapt resource value: 0x7F09021C
-			public const int ptz_control_ly = 2131296796;
+			public const int ptz_close_btn = 2131296796;
 			
 			// aapt resource value: 0x7F09021D
-			public const int ptz_flip_btn = 2131296797;
+			public const int ptz_control_ly = 2131296797;
 			
 			// aapt resource value: 0x7F09021E
-			public const int ptz_left_btn = 2131296798;
+			public const int ptz_flip_btn = 2131296798;
 			
 			// aapt resource value: 0x7F09021F
-			public const int ptz_right_btn = 2131296799;
+			public const int ptz_left_btn = 2131296799;
 			
 			// aapt resource value: 0x7F090220
-			public const int ptz_top_btn = 2131296800;
+			public const int ptz_right_btn = 2131296800;
 			
 			// aapt resource value: 0x7F090221
-			public const int quality_balanced_btn = 2131296801;
+			public const int ptz_top_btn = 2131296801;
 			
 			// aapt resource value: 0x7F090222
-			public const int quality_close_btn = 2131296802;
+			public const int quality_balanced_btn = 2131296802;
 			
 			// aapt resource value: 0x7F090223
-			public const int quality_flunet_btn = 2131296803;
+			public const int quality_close_btn = 2131296803;
 			
 			// aapt resource value: 0x7F090224
-			public const int quality_hd_btn = 2131296804;
+			public const int quality_flunet_btn = 2131296804;
 			
 			// aapt resource value: 0x7F090225
-			public const int quality_line = 2131296805;
+			public const int quality_hd_btn = 2131296805;
 			
 			// aapt resource value: 0x7F090226
-			public const int quality_super_hd_btn = 2131296806;
-			
-			// aapt resource value: 0x7F090228
-			public const int queryingCameraRyt = 2131296808;
-			
-			// aapt resource value: 0x7F090229
-			public const int querying_camera_tv = 2131296809;
+			public const int quality_line = 2131296806;
 			
 			// aapt resource value: 0x7F090227
-			public const int query_exception_ly = 2131296807;
+			public const int quality_super_hd_btn = 2131296807;
+			
+			// aapt resource value: 0x7F090229
+			public const int queryingCameraRyt = 2131296809;
 			
 			// aapt resource value: 0x7F09022A
-			public const int quit = 2131296810;
+			public const int querying_camera_tv = 2131296810;
+			
+			// aapt resource value: 0x7F090228
+			public const int query_exception_ly = 2131296808;
 			
 			// aapt resource value: 0x7F09022B
-			public const int radio = 2131296811;
+			public const int quit = 2131296811;
 			
 			// aapt resource value: 0x7F09022C
-			public const int range = 2131296812;
+			public const int radio = 2131296812;
 			
 			// aapt resource value: 0x7F09022D
-			public const int rangeSort = 2131296813;
+			public const int range = 2131296813;
 			
 			// aapt resource value: 0x7F09022E
-			public const int rate_16x = 2131296814;
+			public const int rangeSort = 2131296814;
 			
 			// aapt resource value: 0x7F09022F
-			public const int rate_1x = 2131296815;
+			public const int rate_16x = 2131296815;
 			
 			// aapt resource value: 0x7F090230
-			public const int rate_4x = 2131296816;
+			public const int rate_1x = 2131296816;
 			
 			// aapt resource value: 0x7F090231
-			public const int rate_8x = 2131296817;
-			
-			// aapt resource value: 0x7F090233
-			public const int read_button = 2131296819;
-			
-			// aapt resource value: 0x7F090234
-			public const int realplay_area = 2131296820;
-			
-			// aapt resource value: 0x7F090235
-			public const int realplay_back_btn = 2131296821;
-			
-			// aapt resource value: 0x7F090236
-			public const int realplay_capture_iv = 2131296822;
-			
-			// aapt resource value: 0x7F090237
-			public const int realplay_capture_rl = 2131296823;
-			
-			// aapt resource value: 0x7F090238
-			public const int realplay_capture_watermark_iv = 2131296824;
-			
-			// aapt resource value: 0x7F090239
-			public const int realplay_control_bar = 2131296825;
-			
-			// aapt resource value: 0x7F09023A
-			public const int realplay_control_rl = 2131296826;
-			
-			// aapt resource value: 0x7F09023B
-			public const int realplay_display_view = 2131296827;
-			
-			// aapt resource value: 0x7F09023C
-			public const int realplay_flow_tv = 2131296828;
-			
-			// aapt resource value: 0x7F09023D
-			public const int realplay_full_anim_btn = 2131296829;
-			
-			// aapt resource value: 0x7F09023E
-			public const int realplay_full_flow_ly = 2131296830;
-			
-			// aapt resource value: 0x7F09023F
-			public const int realplay_full_flow_tv = 2131296831;
-			
-			// aapt resource value: 0x7F090240
-			public const int realplay_full_operate_bar = 2131296832;
-			
-			// aapt resource value: 0x7F090241
-			public const int realplay_full_operate_layout = 2131296833;
-			
-			// aapt resource value: 0x7F090242
-			public const int realplay_full_play_btn = 2131296834;
-			
-			// aapt resource value: 0x7F090243
-			public const int realplay_full_previously_btn = 2131296835;
-			
-			// aapt resource value: 0x7F090244
-			public const int realplay_full_ptz_anim_btn = 2131296836;
-			
-			// aapt resource value: 0x7F090245
-			public const int realplay_full_ptz_btn = 2131296837;
-			
-			// aapt resource value: 0x7F090246
-			public const int realplay_full_ptz_prompt_iv = 2131296838;
-			
-			// aapt resource value: 0x7F090247
-			public const int realplay_full_rate_tv = 2131296839;
-			
-			// aapt resource value: 0x7F090248
-			public const int realplay_full_sound_btn = 2131296840;
-			
-			// aapt resource value: 0x7F090249
-			public const int realplay_full_talk_anim_btn = 2131296841;
-			
-			// aapt resource value: 0x7F09024A
-			public const int realplay_full_talk_btn = 2131296842;
-			
-			// aapt resource value: 0x7F09024B
-			public const int realplay_full_video_btn = 2131296843;
-			
-			// aapt resource value: 0x7F09024C
-			public const int realplay_full_video_container = 2131296844;
-			
-			// aapt resource value: 0x7F09024D
-			public const int realplay_full_video_start_btn = 2131296845;
-			
-			// aapt resource value: 0x7F09024E
-			public const int realplay_loading = 2131296846;
-			
-			// aapt resource value: 0x7F09024F
-			public const int realplay_loading_rl = 2131296847;
-			
-			// aapt resource value: 0x7F090250
-			public const int realplay_operate_bar = 2131296848;
-			
-			// aapt resource value: 0x7F090251
-			public const int realplay_operate_bar2 = 2131296849;
-			
-			// aapt resource value: 0x7F090252
-			public const int realplay_operate_ly = 2131296850;
-			
-			// aapt resource value: 0x7F090253
-			public const int realplay_operate_ly2 = 2131296851;
-			
-			// aapt resource value: 0x7F090256
-			public const int realplay_pages_gallery = 2131296854;
-			
-			// aapt resource value: 0x7F090254
-			public const int realplay_page_anim_iv = 2131296852;
-			
-			// aapt resource value: 0x7F090255
-			public const int realplay_page_ly = 2131296853;
-			
-			// aapt resource value: 0x7F090257
-			public const int realplay_play_btn = 2131296855;
-			
-			// aapt resource value: 0x7F090258
-			public const int realplay_play_iv = 2131296856;
-			
-			// aapt resource value: 0x7F090259
-			public const int realplay_play_rl = 2131296857;
-			
-			// aapt resource value: 0x7F09025A
-			public const int realplay_previously_btn = 2131296858;
-			
-			// aapt resource value: 0x7F09025B
-			public const int realplay_previously_btn2 = 2131296859;
-			
-			// aapt resource value: 0x7F09025C
-			public const int realplay_previously_btn_ly = 2131296860;
-			
-			// aapt resource value: 0x7F09025D
-			public const int realplay_previously_btn_ly2 = 2131296861;
-			
-			// aapt resource value: 0x7F09025E
-			public const int realplay_privacy_btn = 2131296862;
-			
-			// aapt resource value: 0x7F09025F
-			public const int realplay_privacy_btn2 = 2131296863;
-			
-			// aapt resource value: 0x7F090260
-			public const int realplay_privacy_btn_ly = 2131296864;
-			
-			// aapt resource value: 0x7F090261
-			public const int realplay_privacy_btn_ly2 = 2131296865;
-			
-			// aapt resource value: 0x7F090262
-			public const int realplay_privacy_ly = 2131296866;
-			
-			// aapt resource value: 0x7F090263
-			public const int realplay_privacy_tv = 2131296867;
-			
-			// aapt resource value: 0x7F090264
-			public const int realplay_privacy_tv2 = 2131296868;
-			
-			// aapt resource value: 0x7F090265
-			public const int realplay_prompt_rl = 2131296869;
-			
-			// aapt resource value: 0x7F090266
-			public const int realplay_ptz_btn = 2131296870;
-			
-			// aapt resource value: 0x7F090267
-			public const int realplay_ptz_btn2 = 2131296871;
-			
-			// aapt resource value: 0x7F090268
-			public const int realplay_ptz_btn_ly = 2131296872;
-			
-			// aapt resource value: 0x7F090269
-			public const int realplay_ptz_btn_ly2 = 2131296873;
-			
-			// aapt resource value: 0x7F09026A
-			public const int realplay_ptz_direction_iv = 2131296874;
-			
-			// aapt resource value: 0x7F09026B
-			public const int realplay_quality_btn = 2131296875;
-			
-			// aapt resource value: 0x7F09026C
-			public const int realplay_ratio_tv = 2131296876;
-			
-			// aapt resource value: 0x7F09026D
-			public const int realplay_record_iv = 2131296877;
-			
-			// aapt resource value: 0x7F09026E
-			public const int realplay_record_ly = 2131296878;
-			
-			// aapt resource value: 0x7F09026F
-			public const int realplay_record_tv = 2131296879;
-			
-			// aapt resource value: 0x7F090270
-			public const int realplay_sound_btn = 2131296880;
-			
-			// aapt resource value: 0x7F090271
-			public const int realplay_ssl_btn = 2131296881;
-			
-			// aapt resource value: 0x7F090272
-			public const int realplay_ssl_btn2 = 2131296882;
-			
-			// aapt resource value: 0x7F090273
-			public const int realplay_ssl_btn_ly = 2131296883;
-			
-			// aapt resource value: 0x7F090274
-			public const int realplay_ssl_btn_ly2 = 2131296884;
-			
-			// aapt resource value: 0x7F090275
-			public const int realplay_ssl_btn_rl = 2131296885;
-			
-			// aapt resource value: 0x7F090276
-			public const int realplay_ssl_btn_rl2 = 2131296886;
-			
-			// aapt resource value: 0x7F090277
-			public const int realplay_ssl_progress = 2131296887;
-			
-			// aapt resource value: 0x7F090278
-			public const int realplay_ssl_progress2 = 2131296888;
-			
-			// aapt resource value: 0x7F090279
-			public const int realplay_ssl_tv = 2131296889;
-			
-			// aapt resource value: 0x7F09027A
-			public const int realplay_ssl_tv2 = 2131296890;
-			
-			// aapt resource value: 0x7F09027B
-			public const int realplay_stop_btn = 2131296891;
-			
-			// aapt resource value: 0x7F09027C
-			public const int realplay_sv = 2131296892;
-			
-			// aapt resource value: 0x7F09027D
-			public const int realplay_talk_btn = 2131296893;
-			
-			// aapt resource value: 0x7F09027E
-			public const int realplay_talk_btn2 = 2131296894;
-			
-			// aapt resource value: 0x7F09027F
-			public const int realplay_talk_btn_ly = 2131296895;
-			
-			// aapt resource value: 0x7F090280
-			public const int realplay_talk_btn_ly2 = 2131296896;
-			
-			// aapt resource value: 0x7F090281
-			public const int realplay_tip_tv = 2131296897;
-			
-			// aapt resource value: 0x7F090282
-			public const int realplay_title_tv = 2131296898;
-			
-			// aapt resource value: 0x7F090283
-			public const int realplay_top_bar = 2131296899;
-			
-			// aapt resource value: 0x7F090284
-			public const int realplay_video_btn = 2131296900;
-			
-			// aapt resource value: 0x7F090285
-			public const int realplay_video_btn2 = 2131296901;
-			
-			// aapt resource value: 0x7F090286
-			public const int realplay_video_container = 2131296902;
-			
-			// aapt resource value: 0x7F090287
-			public const int realplay_video_container2 = 2131296903;
-			
-			// aapt resource value: 0x7F090288
-			public const int realplay_video_container_ly = 2131296904;
-			
-			// aapt resource value: 0x7F090289
-			public const int realplay_video_container_ly2 = 2131296905;
-			
-			// aapt resource value: 0x7F09028A
-			public const int realplay_video_start_btn = 2131296906;
-			
-			// aapt resource value: 0x7F09028B
-			public const int realplay_video_start_btn2 = 2131296907;
-			
-			// aapt resource value: 0x7F09028C
-			public const int realplay_waiting_lr = 2131296908;
-			
-			// aapt resource value: 0x7F09028D
-			public const int realplay_watting_pb = 2131296909;
-			
-			// aapt resource value: 0x7F09028E
-			public const int realplay_watting_tv = 2131296910;
-			
-			// aapt resource value: 0x7F09028F
-			public const int realplay_wnd_sv = 2131296911;
-			
-			// aapt resource value: 0x7F090290
-			public const int recycler_view = 2131296912;
-			
-			// aapt resource value: 0x7F090291
-			public const int refresh_button = 2131296913;
-			
-			// aapt resource value: 0x7F090292
-			public const int refresh_layout = 2131296914;
-			
-			// aapt resource value: 0x7F090293
-			public const int refresh_tip = 2131296915;
-			
-			// aapt resource value: 0x7F090294
-			public const int remoteFrame = 2131296916;
-			
-			// aapt resource value: 0x7F090295
-			public const int remoteFrameContainer = 2131296917;
-			
-			// aapt resource value: 0x7F0902A2
-			public const int remoteplayback_begin_time_tv = 2131296930;
-			
-			// aapt resource value: 0x7F0902A3
-			public const int remoteplayback_capture_iv = 2131296931;
-			
-			// aapt resource value: 0x7F0902A4
-			public const int remoteplayback_capture_rl = 2131296932;
-			
-			// aapt resource value: 0x7F0902A5
-			public const int remoteplayback_capture_watermark_iv = 2131296933;
-			
-			// aapt resource value: 0x7F0902A6
-			public const int remoteplayback_control_rl = 2131296934;
-			
-			// aapt resource value: 0x7F0902A7
-			public const int remoteplayback_end_time_tv = 2131296935;
-			
-			// aapt resource value: 0x7F0902A8
-			public const int remoteplayback_file_time_bar = 2131296936;
-			
-			// aapt resource value: 0x7F0902A9
-			public const int remoteplayback_flow_tv = 2131296937;
-			
-			// aapt resource value: 0x7F0902AA
-			public const int remoteplayback_full_down_btn = 2131296938;
-			
-			// aapt resource value: 0x7F0902AB
-			public const int remoteplayback_full_flow_ly = 2131296939;
-			
-			// aapt resource value: 0x7F0902AC
-			public const int remoteplayback_full_flow_tv = 2131296940;
-			
-			// aapt resource value: 0x7F0902AD
-			public const int remoteplayback_full_operate_bar = 2131296941;
-			
-			// aapt resource value: 0x7F0902AE
-			public const int remoteplayback_full_play_btn = 2131296942;
-			
-			// aapt resource value: 0x7F0902AF
-			public const int remoteplayback_full_previously_btn = 2131296943;
-			
-			// aapt resource value: 0x7F0902B0
-			public const int remoteplayback_full_rate_tv = 2131296944;
-			
-			// aapt resource value: 0x7F0902B1
-			public const int remoteplayback_full_sound_btn = 2131296945;
-			
-			// aapt resource value: 0x7F0902B2
-			public const int remoteplayback_full_video_btn = 2131296946;
-			
-			// aapt resource value: 0x7F0902B3
-			public const int remoteplayback_full_video_container = 2131296947;
-			
-			// aapt resource value: 0x7F0902B4
-			public const int remoteplayback_full_video_start_btn = 2131296948;
-			
-			// aapt resource value: 0x7F0902B5
-			public const int remoteplayback_loading_iv = 2131296949;
-			
-			// aapt resource value: 0x7F0902B6
-			public const int remoteplayback_loading_ly = 2131296950;
-			
-			// aapt resource value: 0x7F0902B7
-			public const int remoteplayback_loading_pb_ly = 2131296951;
-			
-			// aapt resource value: 0x7F0902B8
-			public const int remoteplayback_loading_play_btn = 2131296952;
-			
-			// aapt resource value: 0x7F0902B9
-			public const int remoteplayback_loading_tv = 2131296953;
-			
-			// aapt resource value: 0x7F0902BA
-			public const int remoteplayback_operate_bar = 2131296954;
-			
-			// aapt resource value: 0x7F0902BB
-			public const int remoteplayback_page_ly = 2131296955;
-			
-			// aapt resource value: 0x7F0902BC
-			public const int remoteplayback_play_btn = 2131296956;
-			
-			// aapt resource value: 0x7F0902BD
-			public const int remoteplayback_play_rl = 2131296957;
-			
-			// aapt resource value: 0x7F0902BE
-			public const int remoteplayback_previously_btn = 2131296958;
-			
-			// aapt resource value: 0x7F0902C1
-			public const int remoteplayback_progressbar = 2131296961;
-			
-			// aapt resource value: 0x7F0902BF
-			public const int remoteplayback_progress_ly = 2131296959;
-			
-			// aapt resource value: 0x7F0902C0
-			public const int remoteplayback_progress_seekbar = 2131296960;
-			
-			// aapt resource value: 0x7F0902C2
-			public const int remoteplayback_ratio_tv = 2131296962;
-			
-			// aapt resource value: 0x7F0902C3
-			public const int remoteplayback_record_iv = 2131296963;
-			
-			// aapt resource value: 0x7F0902C4
-			public const int remoteplayback_record_ly = 2131296964;
-			
-			// aapt resource value: 0x7F0902C5
-			public const int remoteplayback_record_tv = 2131296965;
-			
-			// aapt resource value: 0x7F0902C6
-			public const int remoteplayback_replay_btn = 2131296966;
-			
-			// aapt resource value: 0x7F0902C7
-			public const int remoteplayback_small_previously_btn = 2131296967;
-			
-			// aapt resource value: 0x7F0902C8
-			public const int remoteplayback_small_video_btn = 2131296968;
-			
-			// aapt resource value: 0x7F0902C9
-			public const int remoteplayback_small_video_container = 2131296969;
-			
-			// aapt resource value: 0x7F0902CA
-			public const int remoteplayback_small_video_start_btn = 2131296970;
-			
-			// aapt resource value: 0x7F0902CB
-			public const int remoteplayback_sound_btn = 2131296971;
-			
-			// aapt resource value: 0x7F0902CC
-			public const int remoteplayback_sv = 2131296972;
-			
-			// aapt resource value: 0x7F0902CE
-			public const int remoteplayback_timebar = 2131296974;
-			
-			// aapt resource value: 0x7F0902CF
-			public const int remoteplayback_timebar_rl = 2131296975;
-			
-			// aapt resource value: 0x7F0902CD
-			public const int remoteplayback_time_tv = 2131296973;
-			
-			// aapt resource value: 0x7F0902D0
-			public const int remoteplayback_tip_tv = 2131296976;
-			
-			// aapt resource value: 0x7F0902D1
-			public const int remoteplayback_video_btn = 2131296977;
-			
-			// aapt resource value: 0x7F0902D2
-			public const int remoteplayback_video_container = 2131296978;
-			
-			// aapt resource value: 0x7F0902D3
-			public const int remoteplayback_video_start_btn = 2131296979;
-			
-			// aapt resource value: 0x7F090296
-			public const int remoteVideo = 2131296918;
-			
-			// aapt resource value: 0x7F090297
-			public const int remote_list_page = 2131296919;
-			
-			// aapt resource value: 0x7F090298
-			public const int remote_loading_buffer_tv = 2131296920;
-			
-			// aapt resource value: 0x7F090299
-			public const int remote_loading_iv = 2131296921;
-			
-			// aapt resource value: 0x7F09029A
-			public const int remote_playback_area = 2131296922;
-			
-			// aapt resource value: 0x7F09029B
-			public const int remote_playback_capture_btn = 2131296923;
-			
-			// aapt resource value: 0x7F09029C
-			public const int remote_playback_download_btn = 2131296924;
-			
-			// aapt resource value: 0x7F09029D
-			public const int remote_playback_flow_tv = 2131296925;
-			
-			// aapt resource value: 0x7F09029E
-			public const int remote_playback_pause_btn = 2131296926;
-			
-			// aapt resource value: 0x7F09029F
-			public const int remote_playback_sound_btn = 2131296927;
-			
-			// aapt resource value: 0x7F0902A0
-			public const int remote_playback_video_recording_btn = 2131296928;
-			
-			// aapt resource value: 0x7F0902A1
-			public const int remote_playback_wnd_sv = 2131296929;
-			
-			// aapt resource value: 0x7F0902D4
-			public const int render_texture_view = 2131296980;
-			
-			// aapt resource value: 0x7F0902D5
-			public const int render_texture_view_soft = 2131296981;
-			
-			// aapt resource value: 0x7F0902D6
-			public const int replay_btn = 2131296982;
-			
-			// aapt resource value: 0x7F0902D7
-			public const int requestA = 2131296983;
-			
-			// aapt resource value: 0x7F0902D8
-			public const int requestMasterAudio = 2131296984;
-			
-			// aapt resource value: 0x7F0902D9
-			public const int requestMasterVideo = 2131296985;
-			
-			// aapt resource value: 0x7F0902DA
-			public const int requestV = 2131296986;
-			
-			// aapt resource value: 0x7F0902DB
-			public const int restart_preview = 2131296987;
-			
-			// aapt resource value: 0x7F0902DC
-			public const int retry_btn = 2131296988;
-			
-			// aapt resource value: 0x7F0902DD
-			public const int retry_button = 2131296989;
-			
-			// aapt resource value: 0x7F0902DE
-			public const int return_scan_result = 2131296990;
-			
-			// aapt resource value: 0x7F0902DF
-			public const int reverseCall = 2131296991;
-			
-			// aapt resource value: 0x7F0902E0
-			public const int reverseCallInfo = 2131296992;
+			public const int rate_4x = 2131296817;
 			
 			// aapt resource value: 0x7F090232
-			public const int re_next_area = 2131296818;
+			public const int rate_8x = 2131296818;
+			
+			// aapt resource value: 0x7F090234
+			public const int read_button = 2131296820;
+			
+			// aapt resource value: 0x7F090235
+			public const int realplay_area = 2131296821;
+			
+			// aapt resource value: 0x7F090236
+			public const int realplay_back_btn = 2131296822;
+			
+			// aapt resource value: 0x7F090237
+			public const int realplay_capture_iv = 2131296823;
+			
+			// aapt resource value: 0x7F090238
+			public const int realplay_capture_rl = 2131296824;
+			
+			// aapt resource value: 0x7F090239
+			public const int realplay_capture_watermark_iv = 2131296825;
+			
+			// aapt resource value: 0x7F09023A
+			public const int realplay_control_bar = 2131296826;
+			
+			// aapt resource value: 0x7F09023B
+			public const int realplay_control_rl = 2131296827;
+			
+			// aapt resource value: 0x7F09023C
+			public const int realplay_display_view = 2131296828;
+			
+			// aapt resource value: 0x7F09023D
+			public const int realplay_flow_tv = 2131296829;
+			
+			// aapt resource value: 0x7F09023E
+			public const int realplay_full_anim_btn = 2131296830;
+			
+			// aapt resource value: 0x7F09023F
+			public const int realplay_full_flow_ly = 2131296831;
+			
+			// aapt resource value: 0x7F090240
+			public const int realplay_full_flow_tv = 2131296832;
+			
+			// aapt resource value: 0x7F090241
+			public const int realplay_full_operate_bar = 2131296833;
+			
+			// aapt resource value: 0x7F090242
+			public const int realplay_full_operate_layout = 2131296834;
+			
+			// aapt resource value: 0x7F090243
+			public const int realplay_full_play_btn = 2131296835;
+			
+			// aapt resource value: 0x7F090244
+			public const int realplay_full_previously_btn = 2131296836;
+			
+			// aapt resource value: 0x7F090245
+			public const int realplay_full_ptz_anim_btn = 2131296837;
+			
+			// aapt resource value: 0x7F090246
+			public const int realplay_full_ptz_btn = 2131296838;
+			
+			// aapt resource value: 0x7F090247
+			public const int realplay_full_ptz_prompt_iv = 2131296839;
+			
+			// aapt resource value: 0x7F090248
+			public const int realplay_full_rate_tv = 2131296840;
+			
+			// aapt resource value: 0x7F090249
+			public const int realplay_full_sound_btn = 2131296841;
+			
+			// aapt resource value: 0x7F09024A
+			public const int realplay_full_talk_anim_btn = 2131296842;
+			
+			// aapt resource value: 0x7F09024B
+			public const int realplay_full_talk_btn = 2131296843;
+			
+			// aapt resource value: 0x7F09024C
+			public const int realplay_full_video_btn = 2131296844;
+			
+			// aapt resource value: 0x7F09024D
+			public const int realplay_full_video_container = 2131296845;
+			
+			// aapt resource value: 0x7F09024E
+			public const int realplay_full_video_start_btn = 2131296846;
+			
+			// aapt resource value: 0x7F09024F
+			public const int realplay_loading = 2131296847;
+			
+			// aapt resource value: 0x7F090250
+			public const int realplay_loading_rl = 2131296848;
+			
+			// aapt resource value: 0x7F090251
+			public const int realplay_operate_bar = 2131296849;
+			
+			// aapt resource value: 0x7F090252
+			public const int realplay_operate_bar2 = 2131296850;
+			
+			// aapt resource value: 0x7F090253
+			public const int realplay_operate_ly = 2131296851;
+			
+			// aapt resource value: 0x7F090254
+			public const int realplay_operate_ly2 = 2131296852;
+			
+			// aapt resource value: 0x7F090257
+			public const int realplay_pages_gallery = 2131296855;
+			
+			// aapt resource value: 0x7F090255
+			public const int realplay_page_anim_iv = 2131296853;
+			
+			// aapt resource value: 0x7F090256
+			public const int realplay_page_ly = 2131296854;
+			
+			// aapt resource value: 0x7F090258
+			public const int realplay_play_btn = 2131296856;
+			
+			// aapt resource value: 0x7F090259
+			public const int realplay_play_iv = 2131296857;
+			
+			// aapt resource value: 0x7F09025A
+			public const int realplay_play_rl = 2131296858;
+			
+			// aapt resource value: 0x7F09025B
+			public const int realplay_previously_btn = 2131296859;
+			
+			// aapt resource value: 0x7F09025C
+			public const int realplay_previously_btn2 = 2131296860;
+			
+			// aapt resource value: 0x7F09025D
+			public const int realplay_previously_btn_ly = 2131296861;
+			
+			// aapt resource value: 0x7F09025E
+			public const int realplay_previously_btn_ly2 = 2131296862;
+			
+			// aapt resource value: 0x7F09025F
+			public const int realplay_privacy_btn = 2131296863;
+			
+			// aapt resource value: 0x7F090260
+			public const int realplay_privacy_btn2 = 2131296864;
+			
+			// aapt resource value: 0x7F090261
+			public const int realplay_privacy_btn_ly = 2131296865;
+			
+			// aapt resource value: 0x7F090262
+			public const int realplay_privacy_btn_ly2 = 2131296866;
+			
+			// aapt resource value: 0x7F090263
+			public const int realplay_privacy_ly = 2131296867;
+			
+			// aapt resource value: 0x7F090264
+			public const int realplay_privacy_tv = 2131296868;
+			
+			// aapt resource value: 0x7F090265
+			public const int realplay_privacy_tv2 = 2131296869;
+			
+			// aapt resource value: 0x7F090266
+			public const int realplay_prompt_rl = 2131296870;
+			
+			// aapt resource value: 0x7F090267
+			public const int realplay_ptz_btn = 2131296871;
+			
+			// aapt resource value: 0x7F090268
+			public const int realplay_ptz_btn2 = 2131296872;
+			
+			// aapt resource value: 0x7F090269
+			public const int realplay_ptz_btn_ly = 2131296873;
+			
+			// aapt resource value: 0x7F09026A
+			public const int realplay_ptz_btn_ly2 = 2131296874;
+			
+			// aapt resource value: 0x7F09026B
+			public const int realplay_ptz_direction_iv = 2131296875;
+			
+			// aapt resource value: 0x7F09026C
+			public const int realplay_quality_btn = 2131296876;
+			
+			// aapt resource value: 0x7F09026D
+			public const int realplay_ratio_tv = 2131296877;
+			
+			// aapt resource value: 0x7F09026E
+			public const int realplay_record_iv = 2131296878;
+			
+			// aapt resource value: 0x7F09026F
+			public const int realplay_record_ly = 2131296879;
+			
+			// aapt resource value: 0x7F090270
+			public const int realplay_record_tv = 2131296880;
+			
+			// aapt resource value: 0x7F090271
+			public const int realplay_sound_btn = 2131296881;
+			
+			// aapt resource value: 0x7F090272
+			public const int realplay_ssl_btn = 2131296882;
+			
+			// aapt resource value: 0x7F090273
+			public const int realplay_ssl_btn2 = 2131296883;
+			
+			// aapt resource value: 0x7F090274
+			public const int realplay_ssl_btn_ly = 2131296884;
+			
+			// aapt resource value: 0x7F090275
+			public const int realplay_ssl_btn_ly2 = 2131296885;
+			
+			// aapt resource value: 0x7F090276
+			public const int realplay_ssl_btn_rl = 2131296886;
+			
+			// aapt resource value: 0x7F090277
+			public const int realplay_ssl_btn_rl2 = 2131296887;
+			
+			// aapt resource value: 0x7F090278
+			public const int realplay_ssl_progress = 2131296888;
+			
+			// aapt resource value: 0x7F090279
+			public const int realplay_ssl_progress2 = 2131296889;
+			
+			// aapt resource value: 0x7F09027A
+			public const int realplay_ssl_tv = 2131296890;
+			
+			// aapt resource value: 0x7F09027B
+			public const int realplay_ssl_tv2 = 2131296891;
+			
+			// aapt resource value: 0x7F09027C
+			public const int realplay_stop_btn = 2131296892;
+			
+			// aapt resource value: 0x7F09027D
+			public const int realplay_sv = 2131296893;
+			
+			// aapt resource value: 0x7F09027E
+			public const int realplay_talk_btn = 2131296894;
+			
+			// aapt resource value: 0x7F09027F
+			public const int realplay_talk_btn2 = 2131296895;
+			
+			// aapt resource value: 0x7F090280
+			public const int realplay_talk_btn_ly = 2131296896;
+			
+			// aapt resource value: 0x7F090281
+			public const int realplay_talk_btn_ly2 = 2131296897;
+			
+			// aapt resource value: 0x7F090282
+			public const int realplay_tip_tv = 2131296898;
+			
+			// aapt resource value: 0x7F090283
+			public const int realplay_title_tv = 2131296899;
+			
+			// aapt resource value: 0x7F090284
+			public const int realplay_top_bar = 2131296900;
+			
+			// aapt resource value: 0x7F090285
+			public const int realplay_video_btn = 2131296901;
+			
+			// aapt resource value: 0x7F090286
+			public const int realplay_video_btn2 = 2131296902;
+			
+			// aapt resource value: 0x7F090287
+			public const int realplay_video_container = 2131296903;
+			
+			// aapt resource value: 0x7F090288
+			public const int realplay_video_container2 = 2131296904;
+			
+			// aapt resource value: 0x7F090289
+			public const int realplay_video_container_ly = 2131296905;
+			
+			// aapt resource value: 0x7F09028A
+			public const int realplay_video_container_ly2 = 2131296906;
+			
+			// aapt resource value: 0x7F09028B
+			public const int realplay_video_start_btn = 2131296907;
+			
+			// aapt resource value: 0x7F09028C
+			public const int realplay_video_start_btn2 = 2131296908;
+			
+			// aapt resource value: 0x7F09028D
+			public const int realplay_waiting_lr = 2131296909;
+			
+			// aapt resource value: 0x7F09028E
+			public const int realplay_watting_pb = 2131296910;
+			
+			// aapt resource value: 0x7F09028F
+			public const int realplay_watting_tv = 2131296911;
+			
+			// aapt resource value: 0x7F090290
+			public const int realplay_wnd_sv = 2131296912;
+			
+			// aapt resource value: 0x7F090291
+			public const int recycler_view = 2131296913;
+			
+			// aapt resource value: 0x7F090292
+			public const int refresh_button = 2131296914;
+			
+			// aapt resource value: 0x7F090293
+			public const int refresh_layout = 2131296915;
+			
+			// aapt resource value: 0x7F090294
+			public const int refresh_tip = 2131296916;
+			
+			// aapt resource value: 0x7F090295
+			public const int remoteFrame = 2131296917;
+			
+			// aapt resource value: 0x7F090296
+			public const int remoteFrameContainer = 2131296918;
+			
+			// aapt resource value: 0x7F0902A3
+			public const int remoteplayback_begin_time_tv = 2131296931;
+			
+			// aapt resource value: 0x7F0902A4
+			public const int remoteplayback_capture_iv = 2131296932;
+			
+			// aapt resource value: 0x7F0902A5
+			public const int remoteplayback_capture_rl = 2131296933;
+			
+			// aapt resource value: 0x7F0902A6
+			public const int remoteplayback_capture_watermark_iv = 2131296934;
+			
+			// aapt resource value: 0x7F0902A7
+			public const int remoteplayback_control_rl = 2131296935;
+			
+			// aapt resource value: 0x7F0902A8
+			public const int remoteplayback_end_time_tv = 2131296936;
+			
+			// aapt resource value: 0x7F0902A9
+			public const int remoteplayback_file_time_bar = 2131296937;
+			
+			// aapt resource value: 0x7F0902AA
+			public const int remoteplayback_flow_tv = 2131296938;
+			
+			// aapt resource value: 0x7F0902AB
+			public const int remoteplayback_full_down_btn = 2131296939;
+			
+			// aapt resource value: 0x7F0902AC
+			public const int remoteplayback_full_flow_ly = 2131296940;
+			
+			// aapt resource value: 0x7F0902AD
+			public const int remoteplayback_full_flow_tv = 2131296941;
+			
+			// aapt resource value: 0x7F0902AE
+			public const int remoteplayback_full_operate_bar = 2131296942;
+			
+			// aapt resource value: 0x7F0902AF
+			public const int remoteplayback_full_play_btn = 2131296943;
+			
+			// aapt resource value: 0x7F0902B0
+			public const int remoteplayback_full_previously_btn = 2131296944;
+			
+			// aapt resource value: 0x7F0902B1
+			public const int remoteplayback_full_rate_tv = 2131296945;
+			
+			// aapt resource value: 0x7F0902B2
+			public const int remoteplayback_full_sound_btn = 2131296946;
+			
+			// aapt resource value: 0x7F0902B3
+			public const int remoteplayback_full_video_btn = 2131296947;
+			
+			// aapt resource value: 0x7F0902B4
+			public const int remoteplayback_full_video_container = 2131296948;
+			
+			// aapt resource value: 0x7F0902B5
+			public const int remoteplayback_full_video_start_btn = 2131296949;
+			
+			// aapt resource value: 0x7F0902B6
+			public const int remoteplayback_loading_iv = 2131296950;
+			
+			// aapt resource value: 0x7F0902B7
+			public const int remoteplayback_loading_ly = 2131296951;
+			
+			// aapt resource value: 0x7F0902B8
+			public const int remoteplayback_loading_pb_ly = 2131296952;
+			
+			// aapt resource value: 0x7F0902B9
+			public const int remoteplayback_loading_play_btn = 2131296953;
+			
+			// aapt resource value: 0x7F0902BA
+			public const int remoteplayback_loading_tv = 2131296954;
+			
+			// aapt resource value: 0x7F0902BB
+			public const int remoteplayback_operate_bar = 2131296955;
+			
+			// aapt resource value: 0x7F0902BC
+			public const int remoteplayback_page_ly = 2131296956;
+			
+			// aapt resource value: 0x7F0902BD
+			public const int remoteplayback_play_btn = 2131296957;
+			
+			// aapt resource value: 0x7F0902BE
+			public const int remoteplayback_play_rl = 2131296958;
+			
+			// aapt resource value: 0x7F0902BF
+			public const int remoteplayback_previously_btn = 2131296959;
+			
+			// aapt resource value: 0x7F0902C2
+			public const int remoteplayback_progressbar = 2131296962;
+			
+			// aapt resource value: 0x7F0902C0
+			public const int remoteplayback_progress_ly = 2131296960;
+			
+			// aapt resource value: 0x7F0902C1
+			public const int remoteplayback_progress_seekbar = 2131296961;
+			
+			// aapt resource value: 0x7F0902C3
+			public const int remoteplayback_ratio_tv = 2131296963;
+			
+			// aapt resource value: 0x7F0902C4
+			public const int remoteplayback_record_iv = 2131296964;
+			
+			// aapt resource value: 0x7F0902C5
+			public const int remoteplayback_record_ly = 2131296965;
+			
+			// aapt resource value: 0x7F0902C6
+			public const int remoteplayback_record_tv = 2131296966;
+			
+			// aapt resource value: 0x7F0902C7
+			public const int remoteplayback_replay_btn = 2131296967;
+			
+			// aapt resource value: 0x7F0902C8
+			public const int remoteplayback_small_previously_btn = 2131296968;
+			
+			// aapt resource value: 0x7F0902C9
+			public const int remoteplayback_small_video_btn = 2131296969;
+			
+			// aapt resource value: 0x7F0902CA
+			public const int remoteplayback_small_video_container = 2131296970;
+			
+			// aapt resource value: 0x7F0902CB
+			public const int remoteplayback_small_video_start_btn = 2131296971;
+			
+			// aapt resource value: 0x7F0902CC
+			public const int remoteplayback_sound_btn = 2131296972;
+			
+			// aapt resource value: 0x7F0902CD
+			public const int remoteplayback_sv = 2131296973;
+			
+			// aapt resource value: 0x7F0902CF
+			public const int remoteplayback_timebar = 2131296975;
+			
+			// aapt resource value: 0x7F0902D0
+			public const int remoteplayback_timebar_rl = 2131296976;
+			
+			// aapt resource value: 0x7F0902CE
+			public const int remoteplayback_time_tv = 2131296974;
+			
+			// aapt resource value: 0x7F0902D1
+			public const int remoteplayback_tip_tv = 2131296977;
+			
+			// aapt resource value: 0x7F0902D2
+			public const int remoteplayback_video_btn = 2131296978;
+			
+			// aapt resource value: 0x7F0902D3
+			public const int remoteplayback_video_container = 2131296979;
+			
+			// aapt resource value: 0x7F0902D4
+			public const int remoteplayback_video_start_btn = 2131296980;
+			
+			// aapt resource value: 0x7F090297
+			public const int remoteVideo = 2131296919;
+			
+			// aapt resource value: 0x7F090298
+			public const int remote_list_page = 2131296920;
+			
+			// aapt resource value: 0x7F090299
+			public const int remote_loading_buffer_tv = 2131296921;
+			
+			// aapt resource value: 0x7F09029A
+			public const int remote_loading_iv = 2131296922;
+			
+			// aapt resource value: 0x7F09029B
+			public const int remote_playback_area = 2131296923;
+			
+			// aapt resource value: 0x7F09029C
+			public const int remote_playback_capture_btn = 2131296924;
+			
+			// aapt resource value: 0x7F09029D
+			public const int remote_playback_download_btn = 2131296925;
+			
+			// aapt resource value: 0x7F09029E
+			public const int remote_playback_flow_tv = 2131296926;
+			
+			// aapt resource value: 0x7F09029F
+			public const int remote_playback_pause_btn = 2131296927;
+			
+			// aapt resource value: 0x7F0902A0
+			public const int remote_playback_sound_btn = 2131296928;
+			
+			// aapt resource value: 0x7F0902A1
+			public const int remote_playback_video_recording_btn = 2131296929;
+			
+			// aapt resource value: 0x7F0902A2
+			public const int remote_playback_wnd_sv = 2131296930;
+			
+			// aapt resource value: 0x7F0902D5
+			public const int render_texture_view = 2131296981;
+			
+			// aapt resource value: 0x7F0902D6
+			public const int render_texture_view_soft = 2131296982;
+			
+			// aapt resource value: 0x7F0902D7
+			public const int replay_btn = 2131296983;
+			
+			// aapt resource value: 0x7F0902D8
+			public const int requestA = 2131296984;
+			
+			// aapt resource value: 0x7F0902D9
+			public const int requestMasterAudio = 2131296985;
+			
+			// aapt resource value: 0x7F0902DA
+			public const int requestMasterVideo = 2131296986;
+			
+			// aapt resource value: 0x7F0902DB
+			public const int requestV = 2131296987;
+			
+			// aapt resource value: 0x7F0902DC
+			public const int restart_preview = 2131296988;
+			
+			// aapt resource value: 0x7F0902DD
+			public const int retry_btn = 2131296989;
+			
+			// aapt resource value: 0x7F0902DE
+			public const int retry_button = 2131296990;
+			
+			// aapt resource value: 0x7F0902DF
+			public const int return_scan_result = 2131296991;
+			
+			// aapt resource value: 0x7F0902E0
+			public const int reverseCall = 2131296992;
 			
 			// aapt resource value: 0x7F0902E1
-			public const int right = 2131296993;
+			public const int reverseCallInfo = 2131296993;
+			
+			// aapt resource value: 0x7F090233
+			public const int re_next_area = 2131296819;
 			
 			// aapt resource value: 0x7F0902E2
-			public const int right_icon = 2131296994;
+			public const int right = 2131296994;
 			
 			// aapt resource value: 0x7F0902E3
-			public const int right_side = 2131296995;
+			public const int right_icon = 2131296995;
 			
 			// aapt resource value: 0x7F0902E4
-			public const int rv_multi_screen = 2131296996;
+			public const int right_side = 2131296996;
 			
 			// aapt resource value: 0x7F0902E5
-			public const int rv_topbar = 2131296997;
+			public const int rv_multi_screen = 2131296997;
 			
 			// aapt resource value: 0x7F0902E6
-			public const int safe_box_tip = 2131296998;
+			public const int rv_topbar = 2131296998;
 			
 			// aapt resource value: 0x7F0902E7
-			public const int sample_text = 2131296999;
+			public const int safe_box_tip = 2131296999;
 			
 			// aapt resource value: 0x7F0902E8
-			public const int save_image_matrix = 2131297000;
+			public const int sample_text = 2131297000;
 			
 			// aapt resource value: 0x7F0902E9
-			public const int save_non_transition_alpha = 2131297001;
+			public const int save_image_matrix = 2131297001;
 			
 			// aapt resource value: 0x7F0902EA
-			public const int save_scale_type = 2131297002;
+			public const int save_non_transition_alpha = 2131297002;
+			
+			// aapt resource value: 0x7F0902EB
+			public const int save_scale_type = 2131297003;
 			
 			// aapt resource value: 0x7F09000D
 			public const int Scale = 2131296269;
 			
-			// aapt resource value: 0x7F0902EB
-			public const int screen = 2131297003;
-			
 			// aapt resource value: 0x7F0902EC
-			public const int scroll = 2131297004;
-			
-			// aapt resource value: 0x7F0902F0
-			public const int scrollable = 2131297008;
+			public const int screen = 2131297004;
 			
 			// aapt resource value: 0x7F0902ED
-			public const int scrollIndicatorDown = 2131297005;
-			
-			// aapt resource value: 0x7F0902EE
-			public const int scrollIndicatorUp = 2131297006;
-			
-			// aapt resource value: 0x7F0902EF
-			public const int scrollView = 2131297007;
+			public const int scroll = 2131297005;
 			
 			// aapt resource value: 0x7F0902F1
-			public const int searchAnim = 2131297009;
+			public const int scrollable = 2131297009;
+			
+			// aapt resource value: 0x7F0902EE
+			public const int scrollIndicatorDown = 2131297006;
+			
+			// aapt resource value: 0x7F0902EF
+			public const int scrollIndicatorUp = 2131297007;
+			
+			// aapt resource value: 0x7F0902F0
+			public const int scrollView = 2131297008;
 			
 			// aapt resource value: 0x7F0902F2
-			public const int searchBtn = 2131297010;
+			public const int searchAnim = 2131297010;
 			
 			// aapt resource value: 0x7F0902F3
-			public const int searchEditTextContainer = 2131297011;
+			public const int searchBtn = 2131297011;
 			
 			// aapt resource value: 0x7F0902F4
-			public const int searchFragment = 2131297012;
+			public const int searchEditTextContainer = 2131297012;
 			
 			// aapt resource value: 0x7F0902F5
-			public const int search_badge = 2131297013;
+			public const int searchFragment = 2131297013;
 			
 			// aapt resource value: 0x7F0902F6
-			public const int search_bar = 2131297014;
+			public const int search_badge = 2131297014;
 			
 			// aapt resource value: 0x7F0902F7
-			public const int search_button = 2131297015;
+			public const int search_bar = 2131297015;
 			
 			// aapt resource value: 0x7F0902F8
-			public const int search_close_btn = 2131297016;
+			public const int search_button = 2131297016;
 			
 			// aapt resource value: 0x7F0902F9
-			public const int search_edit_frame = 2131297017;
+			public const int search_close_btn = 2131297017;
 			
 			// aapt resource value: 0x7F0902FA
-			public const int search_go_btn = 2131297018;
+			public const int search_edit_frame = 2131297018;
 			
 			// aapt resource value: 0x7F0902FB
-			public const int search_mag_icon = 2131297019;
+			public const int search_go_btn = 2131297019;
 			
 			// aapt resource value: 0x7F0902FC
-			public const int search_plate = 2131297020;
+			public const int search_mag_icon = 2131297020;
 			
 			// aapt resource value: 0x7F0902FD
-			public const int search_src_text = 2131297021;
+			public const int search_plate = 2131297021;
 			
 			// aapt resource value: 0x7F0902FE
-			public const int search_voice_btn = 2131297022;
+			public const int search_src_text = 2131297022;
 			
 			// aapt resource value: 0x7F0902FF
-			public const int second = 2131297023;
+			public const int search_voice_btn = 2131297023;
 			
 			// aapt resource value: 0x7F090300
-			public const int select_dialog_listview = 2131297024;
+			public const int second = 2131297024;
 			
 			// aapt resource value: 0x7F090301
-			public const int sendA = 2131297025;
+			public const int select_dialog_listview = 2131297025;
 			
 			// aapt resource value: 0x7F090302
-			public const int sendCustomData = 2131297026;
+			public const int sendA = 2131297026;
 			
 			// aapt resource value: 0x7F090303
-			public const int sendV = 2131297027;
+			public const int sendCustomData = 2131297027;
 			
 			// aapt resource value: 0x7F090304
-			public const int separate_line = 2131297028;
+			public const int sendV = 2131297028;
 			
 			// aapt resource value: 0x7F090305
-			public const int serial_tv = 2131297029;
+			public const int separate_line = 2131297029;
 			
 			// aapt resource value: 0x7F090306
-			public const int seriesNumberEt = 2131297030;
+			public const int serial_tv = 2131297030;
+			
+			// aapt resource value: 0x7F090307
+			public const int seriesNumberEt = 2131297031;
 			
 			// aapt resource value: 0x7F09000A
 			public const int SHIFT = 2131296266;
 			
-			// aapt resource value: 0x7F090307
-			public const int shipin7_logo_lyt = 2131297031;
-			
 			// aapt resource value: 0x7F090308
-			public const int shortcut = 2131297032;
+			public const int shipin7_logo_lyt = 2131297032;
 			
 			// aapt resource value: 0x7F090309
-			public const int show = 2131297033;
+			public const int shortcut = 2131297033;
 			
 			// aapt resource value: 0x7F09030A
-			public const int showCustom = 2131297034;
+			public const int show = 2131297034;
 			
 			// aapt resource value: 0x7F09030B
-			public const int showHome = 2131297035;
+			public const int showCustom = 2131297035;
 			
 			// aapt resource value: 0x7F09030C
-			public const int showTitle = 2131297036;
+			public const int showHome = 2131297036;
 			
 			// aapt resource value: 0x7F09030D
-			public const int sign_et = 2131297037;
+			public const int showTitle = 2131297037;
 			
 			// aapt resource value: 0x7F09030E
-			public const int smallLabel = 2131297038;
+			public const int sign_et = 2131297038;
 			
 			// aapt resource value: 0x7F09030F
-			public const int sms_code_et = 2131297039;
+			public const int smallLabel = 2131297039;
 			
 			// aapt resource value: 0x7F090310
-			public const int sms_code_lyt = 2131297040;
+			public const int sms_code_et = 2131297040;
 			
 			// aapt resource value: 0x7F090311
-			public const int sms_verify_dailog_ly = 2131297041;
+			public const int sms_code_lyt = 2131297041;
 			
 			// aapt resource value: 0x7F090312
-			public const int snackbar_action = 2131297042;
+			public const int sms_verify_dailog_ly = 2131297042;
 			
 			// aapt resource value: 0x7F090313
-			public const int snackbar_text = 2131297043;
+			public const int snackbar_action = 2131297043;
 			
 			// aapt resource value: 0x7F090314
-			public const int snap = 2131297044;
+			public const int snackbar_text = 2131297044;
 			
 			// aapt resource value: 0x7F090315
-			public const int snapshot = 2131297045;
+			public const int snap = 2131297045;
 			
 			// aapt resource value: 0x7F090316
-			public const int sound_line = 2131297046;
-			
-			// aapt resource value: 0x7F090318
-			public const int spacer = 2131297048;
-			
-			// aapt resource value: 0x7F090319
-			public const int split_action_bar = 2131297049;
-			
-			// aapt resource value: 0x7F09031A
-			public const int spread = 2131297050;
-			
-			// aapt resource value: 0x7F09031B
-			public const int spread_inside = 2131297051;
+			public const int snapshot = 2131297046;
 			
 			// aapt resource value: 0x7F090317
-			public const int sp_server_area = 2131297047;
+			public const int sound_line = 2131297047;
+			
+			// aapt resource value: 0x7F090319
+			public const int spacer = 2131297049;
+			
+			// aapt resource value: 0x7F09031A
+			public const int split_action_bar = 2131297050;
+			
+			// aapt resource value: 0x7F09031B
+			public const int spread = 2131297051;
 			
 			// aapt resource value: 0x7F09031C
-			public const int squareColumnItem = 2131297052;
+			public const int spread_inside = 2131297052;
+			
+			// aapt resource value: 0x7F090318
+			public const int sp_server_area = 2131297048;
 			
 			// aapt resource value: 0x7F09031D
-			public const int squareVideo = 2131297053;
+			public const int squareColumnItem = 2131297053;
 			
 			// aapt resource value: 0x7F09031E
-			public const int squareVideoList = 2131297054;
+			public const int squareVideo = 2131297054;
 			
 			// aapt resource value: 0x7F09031F
-			public const int square_channel = 2131297055;
+			public const int squareVideoList = 2131297055;
 			
 			// aapt resource value: 0x7F090320
-			public const int src_atop = 2131297056;
+			public const int square_channel = 2131297056;
 			
 			// aapt resource value: 0x7F090321
-			public const int src_in = 2131297057;
+			public const int src_atop = 2131297057;
 			
 			// aapt resource value: 0x7F090322
-			public const int src_over = 2131297058;
+			public const int src_in = 2131297058;
 			
 			// aapt resource value: 0x7F090323
-			public const int srl_classics_arrow = 2131297059;
+			public const int src_over = 2131297059;
 			
 			// aapt resource value: 0x7F090324
-			public const int srl_classics_center = 2131297060;
+			public const int srl_classics_arrow = 2131297060;
 			
 			// aapt resource value: 0x7F090325
-			public const int srl_classics_progress = 2131297061;
+			public const int srl_classics_center = 2131297061;
 			
 			// aapt resource value: 0x7F090326
-			public const int srl_classics_title = 2131297062;
+			public const int srl_classics_progress = 2131297062;
 			
 			// aapt resource value: 0x7F090327
-			public const int srl_classics_update = 2131297063;
+			public const int srl_classics_title = 2131297063;
 			
 			// aapt resource value: 0x7F090328
-			public const int standard = 2131297064;
+			public const int srl_classics_update = 2131297064;
 			
 			// aapt resource value: 0x7F090329
-			public const int start = 2131297065;
+			public const int standard = 2131297065;
 			
 			// aapt resource value: 0x7F09032A
-			public const int startAVMsg = 2131297066;
+			public const int start = 2131297066;
 			
 			// aapt resource value: 0x7F09032B
-			public const int startDoorKey = 2131297067;
+			public const int startAVMsg = 2131297067;
 			
 			// aapt resource value: 0x7F09032C
-			public const int startLocalRecord = 2131297068;
+			public const int startDoorKey = 2131297068;
 			
 			// aapt resource value: 0x7F09032D
-			public const int startReadCard = 2131297069;
+			public const int startLocalRecord = 2131297069;
 			
 			// aapt resource value: 0x7F09032E
-			public const int startRecord = 2131297070;
+			public const int startReadCard = 2131297070;
 			
 			// aapt resource value: 0x7F09032F
-			public const int startRecordLocalAudio = 2131297071;
+			public const int startRecord = 2131297071;
 			
 			// aapt resource value: 0x7F090330
-			public const int startRecordPeerAudio = 2131297072;
+			public const int startRecordLocalAudio = 2131297072;
 			
 			// aapt resource value: 0x7F090331
-			public const int startStream = 2131297073;
+			public const int startRecordPeerAudio = 2131297073;
 			
 			// aapt resource value: 0x7F090332
-			public const int startWatchDog = 2131297074;
+			public const int startStream = 2131297074;
 			
 			// aapt resource value: 0x7F090333
-			public const int start_stop = 2131297075;
+			public const int startWatchDog = 2131297075;
 			
 			// aapt resource value: 0x7F090334
-			public const int start_stop_stream = 2131297076;
+			public const int start_stop = 2131297076;
 			
 			// aapt resource value: 0x7F090335
-			public const int status = 2131297077;
+			public const int start_stop_stream = 2131297077;
 			
 			// aapt resource value: 0x7F090336
-			public const int status_bar_latest_event_content = 2131297078;
+			public const int status = 2131297078;
 			
 			// aapt resource value: 0x7F090337
-			public const int stopAVMsg = 2131297079;
+			public const int status_bar_latest_event_content = 2131297079;
 			
 			// aapt resource value: 0x7F090338
-			public const int stopDoorKey = 2131297080;
+			public const int stopAVMsg = 2131297080;
 			
 			// aapt resource value: 0x7F090339
-			public const int stopLocalRecord = 2131297081;
+			public const int stopDoorKey = 2131297081;
 			
 			// aapt resource value: 0x7F09033A
-			public const int stopReadCard = 2131297082;
+			public const int stopLocalRecord = 2131297082;
 			
 			// aapt resource value: 0x7F09033B
-			public const int stopRecord = 2131297083;
+			public const int stopReadCard = 2131297083;
 			
 			// aapt resource value: 0x7F09033C
-			public const int stopRecordLocalAudio = 2131297084;
+			public const int stopRecord = 2131297084;
 			
 			// aapt resource value: 0x7F09033D
-			public const int stopRecordPeerAudio = 2131297085;
+			public const int stopRecordLocalAudio = 2131297085;
 			
 			// aapt resource value: 0x7F09033E
-			public const int stopStream = 2131297086;
+			public const int stopRecordPeerAudio = 2131297086;
 			
 			// aapt resource value: 0x7F09033F
-			public const int stopWatchDog = 2131297087;
+			public const int stopStream = 2131297087;
 			
 			// aapt resource value: 0x7F090340
-			public const int storage_layout = 2131297088;
+			public const int stopWatchDog = 2131297088;
 			
 			// aapt resource value: 0x7F090341
-			public const int storage_notice = 2131297089;
+			public const int storage_layout = 2131297089;
+			
+			// aapt resource value: 0x7F090342
+			public const int storage_notice = 2131297090;
 			
 			// aapt resource value: 0x7F09000B
 			public const int STROKE = 2131296267;
 			
-			// aapt resource value: 0x7F090343
-			public const int submenuarrow = 2131297091;
-			
 			// aapt resource value: 0x7F090344
-			public const int submit = 2131297092;
+			public const int submenuarrow = 2131297092;
 			
 			// aapt resource value: 0x7F090345
-			public const int submit_area = 2131297093;
+			public const int submit = 2131297093;
 			
 			// aapt resource value: 0x7F090346
-			public const int subtitle = 2131297094;
-			
-			// aapt resource value: 0x7F090342
-			public const int sub_title_text = 2131297090;
+			public const int submit_area = 2131297094;
 			
 			// aapt resource value: 0x7F090347
-			public const int successIcon = 2131297095;
+			public const int subtitle = 2131297095;
+			
+			// aapt resource value: 0x7F090343
+			public const int sub_title_text = 2131297091;
 			
 			// aapt resource value: 0x7F090348
-			public const int surfaceview = 2131297096;
+			public const int successIcon = 2131297096;
+			
+			// aapt resource value: 0x7F090349
+			public const int surfaceview = 2131297097;
 			
 			// aapt resource value: 0x7F09000C
 			public const int SYM = 2131296268;
 			
-			// aapt resource value: 0x7F090349
-			public const int tabMode = 2131297097;
-			
 			// aapt resource value: 0x7F09034A
-			public const int tab_alarmlist_btn = 2131297098;
+			public const int tabMode = 2131297098;
 			
 			// aapt resource value: 0x7F09034B
-			public const int tab_alarmlist_rl = 2131297099;
+			public const int tab_alarmlist_btn = 2131297099;
 			
 			// aapt resource value: 0x7F09034C
-			public const int tab_devicedefence_btn = 2131297100;
+			public const int tab_alarmlist_rl = 2131297100;
 			
 			// aapt resource value: 0x7F09034D
-			public const int tab_devicedefence_rl = 2131297101;
+			public const int tab_devicedefence_btn = 2131297101;
 			
 			// aapt resource value: 0x7F09034E
-			public const int tab_devicepicture_btn = 2131297102;
+			public const int tab_devicedefence_rl = 2131297102;
 			
 			// aapt resource value: 0x7F09034F
-			public const int tab_devicepicture_rl = 2131297103;
+			public const int tab_devicepicture_btn = 2131297103;
 			
 			// aapt resource value: 0x7F090350
-			public const int tab_devicevideo_btn = 2131297104;
+			public const int tab_devicepicture_rl = 2131297104;
 			
 			// aapt resource value: 0x7F090351
-			public const int tab_devicevideo_rl = 2131297105;
+			public const int tab_devicevideo_btn = 2131297105;
 			
 			// aapt resource value: 0x7F090352
-			public const int tab_remoteplayback_btn = 2131297106;
+			public const int tab_devicevideo_rl = 2131297106;
 			
 			// aapt resource value: 0x7F090353
-			public const int tab_remoteplayback_rl = 2131297107;
+			public const int tab_remoteplayback_btn = 2131297107;
 			
 			// aapt resource value: 0x7F090354
-			public const int tab_setdevice_btn = 2131297108;
+			public const int tab_remoteplayback_rl = 2131297108;
 			
 			// aapt resource value: 0x7F090355
-			public const int tab_setdevice_rl = 2131297109;
+			public const int tab_setdevice_btn = 2131297109;
 			
 			// aapt resource value: 0x7F090356
-			public const int tab_video_talk_btn = 2131297110;
+			public const int tab_setdevice_rl = 2131297110;
 			
 			// aapt resource value: 0x7F090357
-			public const int tab_video_talk_rl = 2131297111;
+			public const int tab_video_talk_btn = 2131297111;
 			
 			// aapt resource value: 0x7F090358
-			public const int tag_key_position = 2131297112;
+			public const int tab_video_talk_rl = 2131297112;
 			
 			// aapt resource value: 0x7F090359
-			public const int talkback_close_btn = 2131297113;
+			public const int tag_key_position = 2131297113;
 			
 			// aapt resource value: 0x7F09035A
-			public const int talkback_control_btn = 2131297114;
+			public const int talkback_close_btn = 2131297114;
 			
 			// aapt resource value: 0x7F09035B
-			public const int talkback_rv = 2131297115;
+			public const int talkback_control_btn = 2131297115;
 			
 			// aapt resource value: 0x7F09035C
-			public const int test = 2131297116;
+			public const int talkback_rv = 2131297116;
 			
 			// aapt resource value: 0x7F09035D
-			public const int testWatchDogReboot = 2131297117;
+			public const int test = 2131297117;
 			
 			// aapt resource value: 0x7F09035E
-			public const int text = 2131297118;
+			public const int testWatchDogReboot = 2131297118;
 			
 			// aapt resource value: 0x7F09035F
-			public const int text1 = 2131297119;
+			public const int text = 2131297119;
 			
 			// aapt resource value: 0x7F090360
-			public const int text2 = 2131297120;
+			public const int text1 = 2131297120;
 			
 			// aapt resource value: 0x7F090361
-			public const int text3 = 2131297121;
-			
-			// aapt resource value: 0x7F09036E
-			public const int textinput_counter = 2131297134;
-			
-			// aapt resource value: 0x7F09036F
-			public const int textinput_error = 2131297135;
+			public const int text2 = 2131297121;
 			
 			// aapt resource value: 0x7F090362
-			public const int textSpacerNoButtons = 2131297122;
+			public const int text3 = 2131297122;
 			
-			// aapt resource value: 0x7F090363
-			public const int textSpacerNoTitle = 2131297123;
+			// aapt resource value: 0x7F09036F
+			public const int textinput_counter = 2131297135;
 			
 			// aapt resource value: 0x7F090370
-			public const int textureView_play = 2131297136;
+			public const int textinput_error = 2131297136;
+			
+			// aapt resource value: 0x7F090363
+			public const int textSpacerNoButtons = 2131297123;
+			
+			// aapt resource value: 0x7F090364
+			public const int textSpacerNoTitle = 2131297124;
 			
 			// aapt resource value: 0x7F090371
-			public const int texture_view_play_window = 2131297137;
+			public const int textureView_play = 2131297137;
+			
+			// aapt resource value: 0x7F090372
+			public const int texture_view_play_window = 2131297138;
 			
 			// aapt resource value: 0x7F09000E
 			public const int TextView01 = 2131296270;
@@ -9355,356 +9358,356 @@
 			// aapt resource value: 0x7F09000F
 			public const int TextView03 = 2131296271;
 			
-			// aapt resource value: 0x7F090365
-			public const int text_camerano = 2131297125;
-			
-			// aapt resource value: 0x7F090364
-			public const int text_camera_name = 2131297124;
-			
 			// aapt resource value: 0x7F090366
-			public const int text_device_ip = 2131297126;
+			public const int text_camerano = 2131297126;
+			
+			// aapt resource value: 0x7F090365
+			public const int text_camera_name = 2131297125;
 			
 			// aapt resource value: 0x7F090367
-			public const int text_input_password_toggle = 2131297127;
+			public const int text_device_ip = 2131297127;
 			
 			// aapt resource value: 0x7F090368
-			public const int text_left = 2131297128;
+			public const int text_input_password_toggle = 2131297128;
 			
 			// aapt resource value: 0x7F090369
-			public const int text_my = 2131297129;
+			public const int text_left = 2131297129;
 			
 			// aapt resource value: 0x7F09036A
-			public const int text_right = 2131297130;
+			public const int text_my = 2131297130;
 			
 			// aapt resource value: 0x7F09036B
-			public const int text_serial = 2131297131;
+			public const int text_right = 2131297131;
 			
 			// aapt resource value: 0x7F09036C
-			public const int text_share = 2131297132;
+			public const int text_serial = 2131297132;
 			
 			// aapt resource value: 0x7F09036D
-			public const int text_title = 2131297133;
+			public const int text_share = 2131297133;
 			
-			// aapt resource value: 0x7F090372
-			public const int time = 2131297138;
-			
-			// aapt resource value: 0x7F090375
-			public const int timeline_image = 2131297141;
-			
-			// aapt resource value: 0x7F090376
-			public const int timepicker = 2131297142;
-			
-			// aapt resource value: 0x7F090377
-			public const int timer = 2131297143;
+			// aapt resource value: 0x7F09036E
+			public const int text_title = 2131297134;
 			
 			// aapt resource value: 0x7F090373
-			public const int time_text = 2131297139;
+			public const int time = 2131297139;
 			
-			// aapt resource value: 0x7F090374
-			public const int time_tv = 2131297140;
+			// aapt resource value: 0x7F090376
+			public const int timeline_image = 2131297142;
+			
+			// aapt resource value: 0x7F090377
+			public const int timepicker = 2131297143;
 			
 			// aapt resource value: 0x7F090378
-			public const int tip = 2131297144;
+			public const int timer = 2131297144;
+			
+			// aapt resource value: 0x7F090374
+			public const int time_text = 2131297140;
+			
+			// aapt resource value: 0x7F090375
+			public const int time_tv = 2131297141;
 			
 			// aapt resource value: 0x7F090379
-			public const int title = 2131297145;
+			public const int tip = 2131297145;
 			
 			// aapt resource value: 0x7F09037A
-			public const int titleBar = 2131297146;
+			public const int title = 2131297146;
 			
 			// aapt resource value: 0x7F09037B
-			public const int titleDividerNoCustom = 2131297147;
+			public const int titleBar = 2131297147;
 			
 			// aapt resource value: 0x7F09037C
-			public const int title_bar = 2131297148;
+			public const int titleDividerNoCustom = 2131297148;
 			
 			// aapt resource value: 0x7F09037D
-			public const int title_bar_landscape = 2131297149;
+			public const int title_bar = 2131297149;
 			
 			// aapt resource value: 0x7F09037E
-			public const int title_bar_portrait = 2131297150;
+			public const int title_bar_landscape = 2131297150;
 			
 			// aapt resource value: 0x7F09037F
-			public const int title_layout = 2131297151;
+			public const int title_bar_portrait = 2131297151;
 			
 			// aapt resource value: 0x7F090380
-			public const int title_left = 2131297152;
+			public const int title_layout = 2131297152;
 			
 			// aapt resource value: 0x7F090381
-			public const int title_right = 2131297153;
+			public const int title_left = 2131297153;
 			
 			// aapt resource value: 0x7F090382
-			public const int title_template = 2131297154;
+			public const int title_right = 2131297154;
 			
 			// aapt resource value: 0x7F090383
-			public const int title_text = 2131297155;
+			public const int title_template = 2131297155;
 			
 			// aapt resource value: 0x7F090384
-			public const int title_text_layout = 2131297156;
+			public const int title_text = 2131297156;
 			
 			// aapt resource value: 0x7F090385
-			public const int top = 2131297157;
-			
-			// aapt resource value: 0x7F090388
-			public const int topbar = 2131297160;
-			
-			// aapt resource value: 0x7F090389
-			public const int topbar_right_img = 2131297161;
+			public const int title_text_layout = 2131297157;
 			
 			// aapt resource value: 0x7F090386
-			public const int topPanel = 2131297158;
+			public const int top = 2131297158;
 			
-			// aapt resource value: 0x7F090387
-			public const int topTip = 2131297159;
+			// aapt resource value: 0x7F090389
+			public const int topbar = 2131297161;
 			
 			// aapt resource value: 0x7F09038A
-			public const int touch_loading_buffer_tv = 2131297162;
+			public const int topbar_right_img = 2131297162;
+			
+			// aapt resource value: 0x7F090387
+			public const int topPanel = 2131297159;
+			
+			// aapt resource value: 0x7F090388
+			public const int topTip = 2131297160;
 			
 			// aapt resource value: 0x7F09038B
-			public const int touch_outside = 2131297163;
+			public const int touch_loading_buffer_tv = 2131297163;
 			
 			// aapt resource value: 0x7F09038C
-			public const int touch_progress_layout = 2131297164;
+			public const int touch_outside = 2131297164;
 			
 			// aapt resource value: 0x7F09038D
-			public const int transition_current_scene = 2131297165;
+			public const int touch_progress_layout = 2131297165;
 			
 			// aapt resource value: 0x7F09038E
-			public const int transition_layout_save = 2131297166;
+			public const int transition_current_scene = 2131297166;
 			
 			// aapt resource value: 0x7F09038F
-			public const int transition_position = 2131297167;
+			public const int transition_layout_save = 2131297167;
 			
 			// aapt resource value: 0x7F090390
-			public const int transition_scene_layoutid_cache = 2131297168;
+			public const int transition_position = 2131297168;
 			
 			// aapt resource value: 0x7F090391
-			public const int transition_transform = 2131297169;
+			public const int transition_scene_layoutid_cache = 2131297169;
+			
+			// aapt resource value: 0x7F090392
+			public const int transition_transform = 2131297170;
 			
 			// aapt resource value: 0x7F090010
 			public const int Translate = 2131296272;
 			
-			// aapt resource value: 0x7F090392
-			public const int tvDeviceWifiConfigTip = 2131297170;
-			
 			// aapt resource value: 0x7F090393
-			public const int tvIntroduce1 = 2131297171;
+			public const int tvDeviceWifiConfigTip = 2131297171;
 			
 			// aapt resource value: 0x7F090394
-			public const int tvIntroduce2 = 2131297172;
+			public const int tvIntroduce1 = 2131297172;
 			
 			// aapt resource value: 0x7F090395
-			public const int tvMore = 2131297173;
+			public const int tvIntroduce2 = 2131297173;
 			
 			// aapt resource value: 0x7F090396
-			public const int tvSSID = 2131297174;
+			public const int tvMore = 2131297174;
 			
 			// aapt resource value: 0x7F090397
-			public const int tvStatus = 2131297175;
+			public const int tvSSID = 2131297175;
 			
 			// aapt resource value: 0x7F090398
-			public const int tvSuccess = 2131297176;
+			public const int tvStatus = 2131297176;
 			
 			// aapt resource value: 0x7F090399
-			public const int tvTip = 2131297177;
+			public const int tvSuccess = 2131297177;
 			
 			// aapt resource value: 0x7F09039A
-			public const int tvTitle = 2131297178;
+			public const int tvTip = 2131297178;
 			
 			// aapt resource value: 0x7F09039B
-			public const int tv_adding_to_account = 2131297179;
+			public const int tvTitle = 2131297179;
 			
 			// aapt resource value: 0x7F09039C
-			public const int tv_camera_name = 2131297180;
+			public const int tv_adding_to_account = 2131297180;
 			
 			// aapt resource value: 0x7F09039D
-			public const int tv_connecting_to_device = 2131297181;
+			public const int tv_camera_name = 2131297181;
 			
 			// aapt resource value: 0x7F09039E
-			public const int tv_content = 2131297182;
+			public const int tv_connecting_to_device = 2131297182;
 			
 			// aapt resource value: 0x7F09039F
-			public const int tv_decode_type = 2131297183;
+			public const int tv_content = 2131297183;
 			
 			// aapt resource value: 0x7F0903A0
-			public const int tv_ezviz_account_login = 2131297184;
+			public const int tv_decode_type = 2131297184;
 			
 			// aapt resource value: 0x7F0903A1
-			public const int tv_file_path = 2131297185;
+			public const int tv_ezviz_account_login = 2131297185;
 			
 			// aapt resource value: 0x7F0903A2
-			public const int tv_ok = 2131297186;
+			public const int tv_file_path = 2131297186;
 			
 			// aapt resource value: 0x7F0903A3
-			public const int tv_play_error = 2131297187;
+			public const int tv_ok = 2131297187;
 			
 			// aapt resource value: 0x7F0903A4
-			public const int tv_pwd = 2131297188;
+			public const int tv_play_error = 2131297188;
 			
 			// aapt resource value: 0x7F0903A5
-			public const int tv_registering_to_platform = 2131297189;
+			public const int tv_pwd = 2131297189;
 			
 			// aapt resource value: 0x7F0903A6
-			public const int tv_sdk_ver = 2131297190;
+			public const int tv_registering_to_platform = 2131297190;
 			
 			// aapt resource value: 0x7F0903A7
-			public const int tv_ssid = 2131297191;
+			public const int tv_sdk_ver = 2131297191;
 			
 			// aapt resource value: 0x7F0903A8
-			public const int tv_stream_type = 2131297192;
+			public const int tv_ssid = 2131297192;
 			
 			// aapt resource value: 0x7F0903A9
-			public const int tv_tip = 2131297193;
+			public const int tv_stream_type = 2131297193;
 			
 			// aapt resource value: 0x7F0903AA
-			public const int tv_title = 2131297194;
+			public const int tv_tip = 2131297194;
 			
 			// aapt resource value: 0x7F0903AB
-			public const int tv_zxing_back = 2131297195;
+			public const int tv_title = 2131297195;
 			
 			// aapt resource value: 0x7F0903AC
-			public const int tv_zxing_flash = 2131297196;
+			public const int tv_zxing_back = 2131297196;
 			
 			// aapt resource value: 0x7F0903AD
-			public const int tv_zxing_scan = 2131297197;
+			public const int tv_zxing_flash = 2131297197;
 			
 			// aapt resource value: 0x7F0903AE
-			public const int txtResult = 2131297198;
+			public const int tv_zxing_scan = 2131297198;
 			
 			// aapt resource value: 0x7F0903AF
-			public const int unbind_button = 2131297199;
+			public const int txtResult = 2131297199;
 			
 			// aapt resource value: 0x7F0903B0
-			public const int uniform = 2131297200;
+			public const int unbind_button = 2131297200;
 			
 			// aapt resource value: 0x7F0903B1
-			public const int up = 2131297201;
+			public const int uniform = 2131297201;
 			
 			// aapt resource value: 0x7F0903B2
-			public const int useLogo = 2131297202;
+			public const int up = 2131297202;
 			
 			// aapt resource value: 0x7F0903B3
-			public const int userid_et = 2131297203;
+			public const int useLogo = 2131297203;
 			
 			// aapt resource value: 0x7F0903B4
-			public const int userid_lyt = 2131297204;
+			public const int userid_et = 2131297204;
 			
 			// aapt resource value: 0x7F0903B5
-			public const int uvc = 2131297205;
+			public const int userid_lyt = 2131297205;
 			
 			// aapt resource value: 0x7F0903B6
-			public const int verifycodeEditTextContainer = 2131297206;
+			public const int uvc = 2131297206;
 			
 			// aapt resource value: 0x7F0903B7
-			public const int verifycodeEt = 2131297207;
+			public const int verifycodeEditTextContainer = 2131297207;
 			
 			// aapt resource value: 0x7F0903B8
-			public const int version = 2131297208;
+			public const int verifycodeEt = 2131297208;
 			
 			// aapt resource value: 0x7F0903B9
-			public const int version_arrow = 2131297209;
+			public const int version = 2131297209;
 			
 			// aapt resource value: 0x7F0903BA
-			public const int version_layout = 2131297210;
+			public const int version_arrow = 2131297210;
 			
 			// aapt resource value: 0x7F0903BB
-			public const int version_newest = 2131297211;
+			public const int version_layout = 2131297211;
 			
 			// aapt resource value: 0x7F0903BC
-			public const int version_notice = 2131297212;
+			public const int version_newest = 2131297212;
 			
 			// aapt resource value: 0x7F0903BD
-			public const int vertical = 2131297213;
+			public const int version_notice = 2131297213;
 			
 			// aapt resource value: 0x7F0903BE
-			public const int vg_child_watch_video_talk_camera = 2131297214;
+			public const int vertical = 2131297214;
 			
 			// aapt resource value: 0x7F0903BF
-			public const int vg_child_watch_video_talk_player = 2131297215;
+			public const int vg_child_watch_video_talk_camera = 2131297215;
 			
 			// aapt resource value: 0x7F0903C0
-			public const int vg_child_watch_video_talk_video_container = 2131297216;
+			public const int vg_child_watch_video_talk_player = 2131297216;
 			
 			// aapt resource value: 0x7F0903C1
-			public const int vg_error_tips = 2131297217;
+			public const int vg_child_watch_video_talk_video_container = 2131297217;
 			
 			// aapt resource value: 0x7F0903C2
-			public const int vg_login_anim = 2131297218;
+			public const int vg_error_tips = 2131297218;
 			
 			// aapt resource value: 0x7F0903C3
-			public const int vg_notification_operation_tool_container = 2131297219;
+			public const int vg_login_anim = 2131297219;
 			
 			// aapt resource value: 0x7F0903C4
-			public const int vg_play_info = 2131297220;
+			public const int vg_notification_operation_tool_container = 2131297220;
 			
 			// aapt resource value: 0x7F0903C5
-			public const int vg_play_window = 2131297221;
+			public const int vg_play_info = 2131297221;
 			
 			// aapt resource value: 0x7F0903C6
-			public const int videoBackImg = 2131297222;
+			public const int vg_play_window = 2131297222;
 			
 			// aapt resource value: 0x7F0903C7
-			public const int videoParent = 2131297223;
+			public const int videoBackImg = 2131297223;
 			
 			// aapt resource value: 0x7F0903C8
-			public const int videoTitle = 2131297224;
+			public const int videoParent = 2131297224;
 			
 			// aapt resource value: 0x7F0903C9
-			public const int video_button = 2131297225;
+			public const int videoTitle = 2131297225;
 			
 			// aapt resource value: 0x7F0903CA
-			public const int video_talk_et_room_id = 2131297226;
-			
-			// aapt resource value: 0x7F0903CF
-			public const int viewedCount = 2131297231;
-			
-			// aapt resource value: 0x7F0903D0
-			public const int viewfinder_view = 2131297232;
+			public const int video_button = 2131297226;
 			
 			// aapt resource value: 0x7F0903CB
-			public const int viewSort = 2131297227;
+			public const int video_talk_et_room_id = 2131297227;
 			
-			// aapt resource value: 0x7F0903CC
-			public const int view_child_watch_video_talk_camera = 2131297228;
-			
-			// aapt resource value: 0x7F0903CD
-			public const int view_child_watch_video_talk_player = 2131297229;
-			
-			// aapt resource value: 0x7F0903CE
-			public const int view_offset_helper = 2131297230;
+			// aapt resource value: 0x7F0903D0
+			public const int viewedCount = 2131297232;
 			
 			// aapt resource value: 0x7F0903D1
-			public const int visible = 2131297233;
+			public const int viewfinder_view = 2131297233;
+			
+			// aapt resource value: 0x7F0903CC
+			public const int viewSort = 2131297228;
+			
+			// aapt resource value: 0x7F0903CD
+			public const int view_child_watch_video_talk_camera = 2131297229;
+			
+			// aapt resource value: 0x7F0903CE
+			public const int view_child_watch_video_talk_player = 2131297230;
+			
+			// aapt resource value: 0x7F0903CF
+			public const int view_offset_helper = 2131297231;
 			
 			// aapt resource value: 0x7F0903D2
-			public const int wait_bar = 2131297234;
+			public const int visible = 2131297234;
 			
 			// aapt resource value: 0x7F0903D3
-			public const int wait_tv = 2131297235;
+			public const int wait_bar = 2131297235;
 			
 			// aapt resource value: 0x7F0903D4
-			public const int watting_pb = 2131297236;
-			
-			// aapt resource value: 0x7F0903D6
-			public const int webview = 2131297238;
+			public const int wait_tv = 2131297236;
 			
 			// aapt resource value: 0x7F0903D5
-			public const int web_login_btn = 2131297237;
+			public const int watting_pb = 2131297237;
 			
 			// aapt resource value: 0x7F0903D7
-			public const int wifi_tv = 2131297239;
+			public const int webview = 2131297239;
+			
+			// aapt resource value: 0x7F0903D6
+			public const int web_login_btn = 2131297238;
 			
 			// aapt resource value: 0x7F0903D8
-			public const int withText = 2131297240;
+			public const int wifi_tv = 2131297240;
 			
 			// aapt resource value: 0x7F0903D9
-			public const int wrap = 2131297241;
+			public const int withText = 2131297241;
 			
 			// aapt resource value: 0x7F0903DA
-			public const int wrap_content = 2131297242;
+			public const int wrap = 2131297242;
 			
 			// aapt resource value: 0x7F0903DB
-			public const int year = 2131297243;
+			public const int wrap_content = 2131297243;
+			
+			// aapt resource value: 0x7F0903DC
+			public const int year = 2131297244;
 			
 			static Id()
 			{
@@ -12271,227 +12274,233 @@
 			// aapt resource value: 0x7F0F0256
 			public const int talk = 2131690070;
 			
+			// aapt resource value: 0x7F0F0259
+			public const int talking = 2131690073;
+			
 			// aapt resource value: 0x7F0F0257
-			public const int talking = 2131690071;
+			public const int talk_open_failed = 2131690071;
 			
 			// aapt resource value: 0x7F0F0258
-			public const int tip_heard_voice = 2131690072;
-			
-			// aapt resource value: 0x7F0F0259
-			public const int tip_login_out = 2131690073;
+			public const int talk_open_success = 2131690072;
 			
 			// aapt resource value: 0x7F0F025A
-			public const int tip_of_added_by_yourself_and_online = 2131690074;
+			public const int tip_heard_voice = 2131690074;
 			
 			// aapt resource value: 0x7F0F025B
-			public const int tip_of_bad_net = 2131690075;
+			public const int tip_login_out = 2131690075;
 			
 			// aapt resource value: 0x7F0F025C
-			public const int tip_playback_again = 2131690076;
+			public const int tip_of_added_by_yourself_and_online = 2131690076;
 			
 			// aapt resource value: 0x7F0F025D
-			public const int tip_specified_device = 2131690077;
+			public const int tip_of_bad_net = 2131690077;
 			
 			// aapt resource value: 0x7F0F025E
-			public const int title_activate_device = 2131690078;
+			public const int tip_playback_again = 2131690078;
 			
 			// aapt resource value: 0x7F0F025F
-			public const int title_activate_device_fail = 2131690079;
+			public const int tip_specified_device = 2131690079;
 			
 			// aapt resource value: 0x7F0F0260
-			public const int title_activity_connect_device_wifi = 2131690080;
+			public const int title_activate_device = 2131690080;
 			
 			// aapt resource value: 0x7F0F0261
-			public const int title_activity_ezupgrade_device = 2131690081;
+			public const int title_activate_device_fail = 2131690081;
 			
 			// aapt resource value: 0x7F0F0262
-			public const int today = 2131690082;
+			public const int title_activity_connect_device_wifi = 2131690082;
 			
 			// aapt resource value: 0x7F0F0263
-			public const int touch_fingerprint_sensor_hint = 2131690083;
+			public const int title_activity_ezupgrade_device = 2131690083;
 			
 			// aapt resource value: 0x7F0F0264
-			public const int touch_to_load = 2131690084;
+			public const int today = 2131690084;
 			
 			// aapt resource value: 0x7F0F0265
-			public const int try_again = 2131690085;
+			public const int touch_fingerprint_sensor_hint = 2131690085;
 			
 			// aapt resource value: 0x7F0F0266
-			public const int ui_call_demo_txt = 2131690086;
+			public const int touch_to_load = 2131690086;
 			
 			// aapt resource value: 0x7F0F0267
-			public const int unable_identify_two_dimensional_code_tip = 2131690087;
+			public const int try_again = 2131690087;
 			
 			// aapt resource value: 0x7F0F0268
-			public const int unbind_to_bind = 2131690088;
+			public const int ui_call_demo_txt = 2131690088;
 			
 			// aapt resource value: 0x7F0F0269
-			public const int unknow_ssid = 2131690089;
+			public const int unable_identify_two_dimensional_code_tip = 2131690089;
 			
 			// aapt resource value: 0x7F0F026A
-			public const int unlock_success = 2131690090;
+			public const int unbind_to_bind = 2131690090;
 			
 			// aapt resource value: 0x7F0F026B
-			public const int unnamed = 2131690091;
+			public const int unknow_ssid = 2131690091;
 			
 			// aapt resource value: 0x7F0F026C
-			public const int update_exit = 2131690092;
+			public const int unlock_success = 2131690092;
 			
 			// aapt resource value: 0x7F0F026D
-			public const int upgrade = 2131690093;
+			public const int unnamed = 2131690093;
 			
 			// aapt resource value: 0x7F0F026E
-			public const int upgrade_fail = 2131690094;
+			public const int update_exit = 2131690094;
 			
 			// aapt resource value: 0x7F0F026F
-			public const int upgrade_progress = 2131690095;
+			public const int upgrade = 2131690095;
 			
 			// aapt resource value: 0x7F0F0270
-			public const int upgrade_success = 2131690096;
+			public const int upgrade_fail = 2131690096;
 			
 			// aapt resource value: 0x7F0F0271
-			public const int upgrade_success_progress = 2131690097;
+			public const int upgrade_progress = 2131690097;
 			
 			// aapt resource value: 0x7F0F0272
-			public const int user_name_txt = 2131690098;
+			public const int upgrade_success = 2131690098;
 			
 			// aapt resource value: 0x7F0F0273
-			public const int verify_code_error = 2131690099;
+			public const int upgrade_success_progress = 2131690099;
 			
 			// aapt resource value: 0x7F0F0274
-			public const int verify_sms_code_fail = 2131690100;
+			public const int user_name_txt = 2131690100;
 			
 			// aapt resource value: 0x7F0F0275
-			public const int verify_sms_code_success = 2131690101;
+			public const int verify_code_error = 2131690101;
 			
 			// aapt resource value: 0x7F0F0276
-			public const int version_newest = 2131690102;
+			public const int verify_sms_code_fail = 2131690102;
 			
 			// aapt resource value: 0x7F0F0277
-			public const int video_answer = 2131690103;
+			public const int verify_sms_code_success = 2131690103;
 			
 			// aapt resource value: 0x7F0F0278
-			public const int video_box = 2131690104;
+			public const int version_newest = 2131690104;
 			
 			// aapt resource value: 0x7F0F0279
-			public const int video_confirm = 2131690105;
+			public const int video_answer = 2131690105;
 			
 			// aapt resource value: 0x7F0F027A
-			public const int video_device = 2131690106;
+			public const int video_box = 2131690106;
 			
 			// aapt resource value: 0x7F0F027B
-			public const int video_fail = 2131690107;
+			public const int video_confirm = 2131690107;
 			
 			// aapt resource value: 0x7F0F027C
-			public const int video_hang_up = 2131690108;
+			public const int video_device = 2131690108;
 			
 			// aapt resource value: 0x7F0F027D
-			public const int video_icon = 2131690109;
+			public const int video_fail = 2131690109;
 			
 			// aapt resource value: 0x7F0F027E
-			public const int video_not_answer = 2131690110;
+			public const int video_hang_up = 2131690110;
 			
 			// aapt resource value: 0x7F0F027F
-			public const int video_screenshot = 2131690111;
+			public const int video_icon = 2131690111;
 			
 			// aapt resource value: 0x7F0F0280
-			public const int video_square = 2131690112;
+			public const int video_not_answer = 2131690112;
 			
 			// aapt resource value: 0x7F0F0281
-			public const int video_success = 2131690113;
+			public const int video_screenshot = 2131690113;
 			
 			// aapt resource value: 0x7F0F0282
-			public const int video_talk_call_cancel = 2131690114;
+			public const int video_square = 2131690114;
 			
 			// aapt resource value: 0x7F0F0283
-			public const int video_talk_call_is_accepted = 2131690115;
+			public const int video_success = 2131690115;
 			
 			// aapt resource value: 0x7F0F0284
-			public const int video_talk_is_playing = 2131690116;
+			public const int video_talk_call_cancel = 2131690116;
 			
 			// aapt resource value: 0x7F0F0285
-			public const int video_talk_sdk_toast_hang_up = 2131690117;
+			public const int video_talk_call_is_accepted = 2131690117;
 			
 			// aapt resource value: 0x7F0F0286
-			public const int video_talk_sdk_toast_nobody = 2131690118;
+			public const int video_talk_is_playing = 2131690118;
 			
 			// aapt resource value: 0x7F0F0287
-			public const int video_talk_signal_weak = 2131690119;
+			public const int video_talk_sdk_toast_hang_up = 2131690119;
 			
 			// aapt resource value: 0x7F0F0288
-			public const int video_talk_watch_is_busy = 2131690120;
+			public const int video_talk_sdk_toast_nobody = 2131690120;
 			
 			// aapt resource value: 0x7F0F0289
-			public const int video_talk_watch_temperature_high_hang = 2131690121;
+			public const int video_talk_signal_weak = 2131690121;
 			
 			// aapt resource value: 0x7F0F028A
-			public const int video_talk_watch_temperature_high_hint = 2131690122;
+			public const int video_talk_watch_is_busy = 2131690122;
 			
 			// aapt resource value: 0x7F0F028B
-			public const int video_talk_watch_temperature_high_reject = 2131690123;
+			public const int video_talk_watch_temperature_high_hang = 2131690123;
 			
 			// aapt resource value: 0x7F0F028C
-			public const int video_talk_watch_temperature_high_warn = 2131690124;
+			public const int video_talk_watch_temperature_high_hint = 2131690124;
 			
 			// aapt resource value: 0x7F0F028D
-			public const int video_tip = 2131690125;
+			public const int video_talk_watch_temperature_high_reject = 2131690125;
 			
 			// aapt resource value: 0x7F0F028E
-			public const int video_unlock = 2131690126;
+			public const int video_talk_watch_temperature_high_warn = 2131690126;
 			
 			// aapt resource value: 0x7F0F028F
-			public const int wait = 2131690127;
+			public const int video_tip = 2131690127;
 			
 			// aapt resource value: 0x7F0F0290
-			public const int web_login_button_txt = 2131690128;
+			public const int video_unlock = 2131690128;
 			
 			// aapt resource value: 0x7F0F0291
-			public const int wechat_interconnect = 2131690129;
+			public const int wait = 2131690129;
 			
 			// aapt resource value: 0x7F0F0292
-			public const int wifi_connected = 2131690130;
+			public const int web_login_button_txt = 2131690130;
 			
 			// aapt resource value: 0x7F0F0293
-			public const int wifi_connection_finish_need_refresh = 2131690131;
+			public const int wechat_interconnect = 2131690131;
 			
 			// aapt resource value: 0x7F0F0294
-			public const int wifi_set = 2131690132;
+			public const int wifi_connected = 2131690132;
 			
 			// aapt resource value: 0x7F0F0295
-			public const int wifi_setting = 2131690133;
+			public const int wifi_connection_finish_need_refresh = 2131690133;
 			
 			// aapt resource value: 0x7F0F0296
-			public const int wired_connection = 2131690134;
-			
-			// aapt resource value: 0x7F0F0298
-			public const int xlistview_footer_hint_normal = 2131690136;
+			public const int wifi_set = 2131690134;
 			
 			// aapt resource value: 0x7F0F0297
-			public const int xlistview_footer_hint_no_more_device = 2131690135;
+			public const int wifi_setting = 2131690135;
 			
-			// aapt resource value: 0x7F0F0299
-			public const int xlistview_footer_hint_ready = 2131690137;
+			// aapt resource value: 0x7F0F0298
+			public const int wired_connection = 2131690136;
 			
 			// aapt resource value: 0x7F0F029A
-			public const int xlistview_footer_no_more = 2131690138;
+			public const int xlistview_footer_hint_normal = 2131690138;
+			
+			// aapt resource value: 0x7F0F0299
+			public const int xlistview_footer_hint_no_more_device = 2131690137;
 			
 			// aapt resource value: 0x7F0F029B
-			public const int xlistview_footer_no_more_msg = 2131690139;
+			public const int xlistview_footer_hint_ready = 2131690139;
 			
 			// aapt resource value: 0x7F0F029C
-			public const int xlistview_header_hint_loading = 2131690140;
+			public const int xlistview_footer_no_more = 2131690140;
 			
 			// aapt resource value: 0x7F0F029D
-			public const int xlistview_header_hint_more = 2131690141;
+			public const int xlistview_footer_no_more_msg = 2131690141;
 			
 			// aapt resource value: 0x7F0F029E
-			public const int xlistview_header_hint_normal = 2131690142;
+			public const int xlistview_header_hint_loading = 2131690142;
 			
 			// aapt resource value: 0x7F0F029F
-			public const int xlistview_header_hint_ready = 2131690143;
+			public const int xlistview_header_hint_more = 2131690143;
 			
 			// aapt resource value: 0x7F0F02A0
-			public const int xlistview_header_last_time = 2131690144;
+			public const int xlistview_header_hint_normal = 2131690144;
+			
+			// aapt resource value: 0x7F0F02A1
+			public const int xlistview_header_hint_ready = 2131690145;
+			
+			// aapt resource value: 0x7F0F02A2
+			public const int xlistview_header_last_time = 2131690146;
 			
 			static String()
 			{
diff --git a/HDL-ON_Android/Resources/layout/activity_video_phone.xml b/HDL-ON_Android/Resources/layout/activity_video_phone.xml
index e5116dd..2c9e2b4 100644
--- a/HDL-ON_Android/Resources/layout/activity_video_phone.xml
+++ b/HDL-ON_Android/Resources/layout/activity_video_phone.xml
@@ -30,7 +30,8 @@
 			android:text="@string/video_device"/>
 	</RelativeLayout>
 
-	<LinearLayout
+	<FrameLayout
+		android:id="@+id/live_window"
 		android:layout_width="match_parent"
 		android:layout_height="0dp"
 		android:layout_weight="210"
@@ -48,7 +49,7 @@
 			android:layout_width="match_parent"
 			android:layout_height="match_parent"/>
 
-	</LinearLayout>
+	</FrameLayout>
 
 	<LinearLayout
 		android:layout_width="match_parent"
diff --git a/HDL-ON_Android/Resources/values-zh/strings.xml b/HDL-ON_Android/Resources/values-zh/strings.xml
index 9a13152..4636041 100644
--- a/HDL-ON_Android/Resources/values-zh/strings.xml
+++ b/HDL-ON_Android/Resources/values-zh/strings.xml
@@ -18,4 +18,6 @@
 	<string name="on_the_phone">閫氳瘽涓�...</string>
 	<string name="unlock_success">寮�閿佹垚鍔�</string>
 	<string name="screenshot_success">鎴浘鎴愬姛</string>
+	<string name="talk_open_success">瀵硅寮�濮�</string>
+	<string name="talk_open_failed">瀵硅鎵撳紑澶辫触</string>
 </resources>
\ No newline at end of file
diff --git a/HDL-ON_Android/Resources/values/strings.xml b/HDL-ON_Android/Resources/values/strings.xml
index 00d8ad7..948af94 100644
--- a/HDL-ON_Android/Resources/values/strings.xml
+++ b/HDL-ON_Android/Resources/values/strings.xml
@@ -17,5 +17,7 @@
         <string name="on_the_phone">On the phone</string>
         <string name="unlock_success">Unlock successfully</string>
         <string name="screenshot_success">Screenshot successfully</string>
+    <string name="talk_open_success">Intercom Begin</string>
+    <string name="talk_open_failed">Intercom failed to open</string>
 
 </resources>
\ No newline at end of file
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libGMCrypto.so b/HDL-ON_Android/libs/armeabi-v7a/libGMCrypto.so
new file mode 100644
index 0000000..426d9a0
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libGMCrypto.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libLCOpenApiClient.so b/HDL-ON_Android/libs/armeabi-v7a/libLCOpenApiClient.so
new file mode 100644
index 0000000..1c970f7
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libLCOpenApiClient.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libLechangeSDK.so b/HDL-ON_Android/libs/armeabi-v7a/libLechangeSDK.so
new file mode 100644
index 0000000..29b0cd2
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libLechangeSDK.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libSmartConfig.so b/HDL-ON_Android/libs/armeabi-v7a/libSmartConfig.so
new file mode 100644
index 0000000..4f557b3
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libSmartConfig.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libSoftAPConfig.so b/HDL-ON_Android/libs/armeabi-v7a/libSoftAPConfig.so
new file mode 100644
index 0000000..bb7fb84
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libSoftAPConfig.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libconfigsdk.so b/HDL-ON_Android/libs/armeabi-v7a/libconfigsdk.so
new file mode 100644
index 0000000..e786702
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libconfigsdk.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libgnustl_shared.so b/HDL-ON_Android/libs/armeabi-v7a/libgnustl_shared.so
new file mode 100644
index 0000000..ab79e66
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libgnustl_shared.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libjninetsdk.so b/HDL-ON_Android/libs/armeabi-v7a/libjninetsdk.so
new file mode 100644
index 0000000..ee4b507
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libjninetsdk.so
Binary files differ
diff --git a/HDL-ON_Android/libs/armeabi-v7a/libnetsdk.so b/HDL-ON_Android/libs/armeabi-v7a/libnetsdk.so
new file mode 100644
index 0000000..7c759a1
--- /dev/null
+++ b/HDL-ON_Android/libs/armeabi-v7a/libnetsdk.so
Binary files differ
diff --git a/HDL-ON_iOS/AppDelegate.cs b/HDL-ON_iOS/AppDelegate.cs
index 851ed2e..03ce2b3 100644
--- a/HDL-ON_iOS/AppDelegate.cs
+++ b/HDL-ON_iOS/AppDelegate.cs
@@ -245,6 +245,7 @@
 
         public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
         {
+            Console.WriteLine("111111111111");
             SetCurrentLanguage();
             //Shared.Application.FontSize = 12;
             //Bugly.Bugly.StartWithAppId("b58fb35436");
@@ -295,6 +296,7 @@
                     var expandData = "";
                     var messageType = "";
                     var expantContent = "";
+                    var homeId = "";
                     if (userInfo.ContainsKey(new NSString("expandData")))
                     {
                         var expandDataStr = userInfo["expandData"] as NSString;
@@ -315,6 +317,12 @@
                                     Utlis.WriteLine("expantContent: " + expantContent);
                                 }
 
+                                if (expandDataNSD.ContainsKey(new NSString("homeId")))
+                                {
+                                    homeId = expandDataNSD["homeId"].ToString();
+                                    Utlis.WriteLine("homeId: " + homeId);
+                                }
+
                             }
                         }
                         else
@@ -325,6 +333,7 @@
                     }
                     var pushMes = new JPushMessageInfo()
                     {
+                        HomeId = homeId,
                         Title = title,
                         Content = body,
                         Extras = expandData,
diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index 97326f6..d26dc65 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -54,7 +54,6 @@
         <MtouchLink>SdkOnly</MtouchLink>
         <MtouchExtraArgs>-gcc_flags="-dead_strip -ObjC"</MtouchExtraArgs>
         <MtouchEnableSGenConc>false</MtouchEnableSGenConc>
-<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
 <CodesignProvision>On+Dev-20210616-1</CodesignProvision>
     </PropertyGroup>
     <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
@@ -69,7 +68,7 @@
         <MtouchLink>SdkOnly</MtouchLink>
         <MtouchExtraArgs>-gcc_flags="-dead_strip -ObjC"</MtouchExtraArgs>
         <MtouchI18n>cjk</MtouchI18n>
-        <CodesignProvision>On+_Hoc20210401-1</CodesignProvision>
+        <CodesignProvision>ComHdlOnProAdHoc20210616-1</CodesignProvision>
     </PropertyGroup>
     <ItemGroup>
         <Reference Include="System" />
@@ -92,11 +91,14 @@
         <Reference Include="EZSDK.IOS">
           <HintPath>..\DLL\IOS\EZSDK.IOS.dll</HintPath>
         </Reference>
+        <Reference Include="Shared.IOS">
+          <HintPath>..\DLL\Shared.IOS.dll</HintPath>
+        </Reference>
         <Reference Include="Shared.IOS.ESVideoOnSDK">
           <HintPath>..\DLL\FL\iOS\Shared.IOS.ESVideoOnSDK.dll</HintPath>
         </Reference>
-        <Reference Include="Shared.IOS">
-          <HintPath>..\DLL\Shared.IOS.dll</HintPath>
+        <Reference Include="Shared.IOS.LCVideoOnSDK">
+          <HintPath>..\DLL\LC\IOS\Shared.IOS.LCVideoOnSDK.dll</HintPath>
         </Reference>
     </ItemGroup>
     <ItemGroup>
@@ -450,6 +452,7 @@
         <Folder Include="Resources\Phone\FunctionIcon\Electrical\ClothesHanger\" />
         <Folder Include="Resources\Phone\FunctionIcon\EnvirSensor\" />
         <Folder Include="Resources\Phone\FunctionIcon\Energy\" />
+        <Folder Include="Resources\Phone\FunctionIcon\IrFan\" />
     </ItemGroup>
     <ItemGroup>
         <InterfaceDefinition Include="LaunchScreen.storyboard" />
@@ -1291,6 +1294,21 @@
       <BundleResource Include="Resources\Phone\FunctionIcon\AC\SweepIconUD.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\AC\SweepIconUDOn.png" />
       <BundleResource Include="Resources\Phone\Public\ScanGrey.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\IrFan\FanIcon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\IrFan\PatternIcon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\IrFan\PatternIconOn.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\IrFan\PowerIcon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\IrFan\PowerIconOn.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\IrFan\TimingIcon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\IrFan\TimingIconOn.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\IrFan\SpeedIcon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\IrFan\SpeedIconOn.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\IrFan\HeadSwingingIcon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\IrFan\HeadSwingingIconOn.png" />
+      <BundleResource Include="Resources\Phone\Classification\Room\AllCloseIcon2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\irfan.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irfan_blue.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\irfan_white.png" />
     </ItemGroup>
     <ItemGroup>
       <ITunesArtwork Include="iTunesArtwork" />
diff --git a/HDL-ON_iOS/Info.plist b/HDL-ON_iOS/Info.plist
index c9c3bb1..c4c4c22 100644
--- a/HDL-ON_iOS/Info.plist
+++ b/HDL-ON_iOS/Info.plist
@@ -13,10 +13,6 @@
 			<string>AispeechMobile</string>
 		</dict>
 		<dict>
-			<key>CFBundleURLName</key>
-			<string>xiaoduapp</string>
-		</dict>
-		<dict>
 			<key>CFBundleURLSchemes</key>
 			<array>
 				<string>hdlonpro</string>
@@ -104,9 +100,9 @@
 	<key>UIStatusBarStyle</key>
 	<string>UIStatusBarStyleLightContent</string>
 	<key>CFBundleShortVersionString</key>
-	<string>1.2.202106082</string>
+	<string>1.2.202107081</string>
 	<key>CFBundleVersion</key>
-	<string>1.2.06082</string>
+	<string>1.2.07081</string>
 	<key>NSLocationWhenInUseUsageDescription</key>
 	<string>Use geographic location to provide services such as weather</string>
 	<key>NSAppleMusicUsageDescription</key>
diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini
index 79536dc..4d6e2f9 100644
--- a/HDL-ON_iOS/Resources/Language.ini
+++ b/HDL-ON_iOS/Resources/Language.ini
@@ -337,7 +337,7 @@
 333=Floor cooling power 
 334=Adjust the percentage
 335=No delay
-336=No scene
+336=No scene available. Add one! 
 337=Edit the scene
 338=The name of the scene can not be blank.
 339=The name of the scene has existed, please revise.
@@ -439,7 +439,6 @@
 453=Alarm mute
 454=Deployment information
 455=The name can not be blank.
-
 456=Canvas
 457=Energy consumption
 458=Date
@@ -463,6 +462,11 @@
 474=Swing up and down
 475=Swing left and right
 476=Add residence
+477=Swing
+478=Pattern
+479=Speed
+
+
  
 1000=Room Humidity
 1001=V-chip
@@ -622,17 +626,21 @@
 1154=Transferring to User, Please Wait鈥�
 1155={0} has become a residential administrator
 1156=The residence data will be deleted from your account
-1157=Fail to transfer
+1157=Fail to migrate
 1158=Please try again
-
- 
- 
- 
- 
+1159=Admin authority migration
+1160=Your admin authority is being migrated to other members
+1161=1.Your data (cloud data) of the residence will be{0}migratedto the new administrator{0}2.Your data will be exchanged with the target member{0}and your permission will be changed to the target{0}member
+1162=Confirm
+1163=No members to choose 
+1164=Confirm admin authority migration from {0} to {1} 
+1165=Migrate successfully
+1166=Fail to migrate
+1167=Migrate successfully, And your permissions will become normal members
  
 4000=Video intercom
 4001=Call record
-4002=*Cloud photos are only kept for 30 days
+4002=*Cloud records are only kept for 30 days
 4003=Door phone call
 4004=Answered
 4005=Unlocked
@@ -1529,6 +1537,9 @@
 474=涓婁笅鎵
 475=宸﹀彸鎵
 476=娣诲姞浣忓畢
+477=鎽嗗姩
+478=妯″紡
+479=椋庨��
  
  
 1000=瀹ゅ唴婀垮害
@@ -1693,16 +1704,23 @@
 1152=涓嶈兘鑷繁杩囨埛缁欒嚜宸�
 1153=缁堟
 1154=姝e湪杩囨埛缁欑敤鎴�,璇风◢鍚�...
-1155=鐢ㄦ埛{0}宸茬粡鎴愪负浣忓畢琛岀鐞嗗憳
+1155=鐢ㄦ埛{0}宸茬粡鎴愪负浣忓畢鏂扮鐞嗗憳
 1156=璇ヤ綇瀹呯殑淇℃伅灏嗗湪鎮ㄧ殑璐﹀彿涓垹闄�
 1157=杩囨埛澶辫触
 1158=璇烽噸鏂板皾璇�
-
- 
+1159=绠$悊鍛樻潈闄愯浆绉�
+1160=鎮ㄥ皢杞Щ鎮ㄧ殑绠$悊鍛樻潈闄愮粰鍏朵粬鎴愬憳
+1161=1.璇ヤ綇瀹呮偍鐨勭鐞嗗憳鏁版嵁锛堜簯绔暟鎹級灏嗗叏閮ㄨ浆绉荤粰鏂扮殑{0}绠$悊鍛榹0}2.鎮ㄧ殑鏁版嵁灏嗕細涓庣洰鏍囨垚鍛樹簰鎹紝鎮ㄧ殑鏉冮檺灏嗗彉鏇翠负鐩爣{0}鎴愬憳鐨勬潈闄�
+1162=纭杞Щ
+1163=妫�娴嬩笉鍒板彲渚涢�夋嫨鐨勬垚鍛�
+1164=纭杞Щ{0}鐨勭鐞嗗憳鏉冮檺缁欒处鍙穥1}
+1165=杩佺Щ鎴愬姛
+1166=杩佺Щ澶辫触
+1167=杩佺Щ鎴愬姛锛屾偍鐨勬潈闄愬皢鍙樹负鏅�氭垚鍛�
  
 4000=鍙瀵硅
 4001=閫氳瘽璁板綍
-4002=*浜戠鐓х墖鍙繚鐣�30澶�
+4002=*浜戠璁板綍鍙繚鐣�30澶�
 4003=闂ㄥ彛鏈哄懠鍙�
 4004=宸叉帴鍚�
 4005=宸插紑閿�
@@ -1785,7 +1803,7 @@
 6016=绂荤嚎
 6017=鐗堟湰鍙�
 6018=璇疯緭鍏ラ仴鎺у櫒鍚嶇О
-6019=鎻愮ず锛氶仴鎺у櫒鍒涘缓鍚庡彲鍦ㄥ姛鑳�-鐢靛櫒鍒嗙被{\r\n}鏌ユ壘浣跨敤
+6019=鎻愮ず锛氶仴鎺у櫒鍒涘缓鍚庡彲鍦ㄥ姛鑳�-鐢靛櫒鍒嗙被锛屾煡鎵句娇鐢�
 6020=鎺ㄨ崘鎸夐敭
 6021=璇疯緭鍏ユ寜閿悕绉�
 6022=涓嬩竴姝�
diff --git a/HDL-ON_iOS/Resources/Phone/Classification/Room/AllCloseIcon2.png b/HDL-ON_iOS/Resources/Phone/Classification/Room/AllCloseIcon2.png
new file mode 100644
index 0000000..bf7df5a
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/Classification/Room/AllCloseIcon2.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irfan_blue.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irfan_blue.png
new file mode 100644
index 0000000..c59a2e5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irfan_blue.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irfan_white.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irfan_white.png
new file mode 100644
index 0000000..8c5ead5
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/irfan_white.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irfan.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irfan.png
new file mode 100644
index 0000000..0447c4d
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/irfan.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/FanIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/FanIcon.png
new file mode 100644
index 0000000..5ed6525
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/FanIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/HeadSwingingIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/HeadSwingingIcon.png
new file mode 100644
index 0000000..6839cb1
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/HeadSwingingIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/HeadSwingingIconOn.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/HeadSwingingIconOn.png
new file mode 100644
index 0000000..2fbe4e2
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/HeadSwingingIconOn.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PatternIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PatternIcon.png
new file mode 100644
index 0000000..dbb0830
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PatternIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PatternIconOn.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PatternIconOn.png
new file mode 100644
index 0000000..b663d9b
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PatternIconOn.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PowerIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PowerIcon.png
new file mode 100644
index 0000000..6cfa157
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PowerIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PowerIconOn.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PowerIconOn.png
new file mode 100644
index 0000000..34bfbf2
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/PowerIconOn.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/SpeedIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/SpeedIcon.png
new file mode 100644
index 0000000..2a0fa78
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/SpeedIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/SpeedIconOn.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/SpeedIconOn.png
new file mode 100644
index 0000000..e57e298
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/SpeedIconOn.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/TimingIcon.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/TimingIcon.png
new file mode 100644
index 0000000..177b58c
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/TimingIcon.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/TimingIconOn.png b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/TimingIconOn.png
new file mode 100644
index 0000000..2ce5688
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/FunctionIcon/IrFan/TimingIconOn.png
Binary files differ
diff --git a/HDL-ON_iOS/ViewController.cs b/HDL-ON_iOS/ViewController.cs
index 05c71bf..ddecb00 100644
--- a/HDL-ON_iOS/ViewController.cs
+++ b/HDL-ON_iOS/ViewController.cs
@@ -24,6 +24,7 @@
 
         public override void ViewDidLoad()
         {
+            Console.WriteLine("qidong 1111");
             base.ViewDidLoad();
 
             HDL_ON.MainPage.Show();
diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs
index 50dee7c..26204e8 100644
--- a/HDL_ON/Common/ApiUtlis.cs
+++ b/HDL_ON/Common/ApiUtlis.cs
@@ -4,6 +4,8 @@
 using HDL_ON.DAL;
 using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
+using HDL_ON.UI.UI2.FuntionControlView.Video;
+using Newtonsoft.Json;
 using Shared;
 
 namespace HDL_ON.Common
@@ -106,6 +108,26 @@
                 }
                 endTime = DateTime.Now.AddSeconds(5);
                 MainPage.Log($"鍒锋柊涓汉淇℃伅鎴愬姛");
+
+                //int count = 0;
+                //while (count < 10)
+                //{
+                //    if (DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
+                //    {
+                //        System.Threading.Thread.Sleep(200);
+                //    }
+                //    else
+                //    {
+                //        break;
+                //    }
+                //    count++;
+                //}
+                //if (DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
+                //{
+                //    return;
+                //}
+
+
                 try
                 {
                     //===================鎴块棿=======================
@@ -165,7 +187,7 @@
                         //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳�
                         foreach (var newFunction in deviceList.list) 
                         {
-                            MainPage.Log(newFunction.savePath);
+                            newFunction.AssembleStatus();
                             newFunction.SaveFunctionFile();
                             FunctionList.List.IniFunctionList(newFunction.savePath);
                         }
@@ -229,15 +251,31 @@
                         MainPage.Log($"璇诲彇浜戠鍦烘櫙鏁版嵁澶辫触:Code:{pack.Code}; Msg:{pack.message}");
                     }
 
-                    //===================璇诲彇瀹夐槻鍒楄〃==========================
-                    GetSecurityList();
                     //===================璇诲彇閫昏緫鍒楄〃==========================
                     UI.UI2.Intelligence.Automation.MainView.GetLogicList();
+
                     //===================璇诲彇鍙瀵硅鏁版嵁==========================
-                    var flVideoInfo = HttpRequest.CheckFlVideo();
-                    if(flVideoInfo.Code == StateCode.SUCCESS)
+                    //鍒ゆ柇鏄惁鏈夊彲瑙嗗璁叉暟鎹紝鏈夊垯鏄剧ず鍙瀵硅icon
+                    //var flVideoInfo = HttpRequest.CheckFlVideo();
+                    //if(flVideoInfo.Code == StateCode.SUCCESS)
+                    //{
+                    //    FunctionList.List.videoIntercom1111 = Newtonsoft.Json.JsonConvert.DeserializeObject<UI.UI2.FuntionControlView.Video.VideoClouds>(flVideoInfo.Data.ToString());
+                    //}
+
+                    //======================鑾峰彇鍙瀵硅璁惧鍒楄〃====================
+                    var videoInfo= VideoSend.GetVideoInfoList();
+                    if (videoInfo.Code == StateCode.SUCCESS)
                     {
-                        FunctionList.List.videoIntercom = Newtonsoft.Json.JsonConvert.DeserializeObject<UI.UI2.FuntionControlView.Video.VideoClouds>(flVideoInfo.Data.ToString());
+                        string videoList = videoInfo.Data.ToString();
+                        FunctionList.List.videoIntercom = JsonConvert.DeserializeObject<List<UI.UI2.FuntionControlView.Video.Video>>(videoList);
+
+                        foreach (var video in FunctionList.List.videoIntercom)
+                        {
+                            if (video.interphoneType == "IMOUVISIAL")
+                            {
+                                UI.UI2.PersonalCenter.PirDevice.PirSend.LcSubAccessToken = video.subAccountToken;
+                            }
+                        }
                     }
 
                 }
@@ -302,6 +340,8 @@
                         UI.Music.A31MusicModel.ReadMusicStates();
                         //鎼滅储缃戝叧
                         DriverLayer.Control.Ins.SearchLoaclGateway();
+                        //閲嶆柊杩炴帴mqtt
+                        DAL.Mqtt.MqttClient.DisConnectRemote("鍒锋柊鏁版嵁锛岄噸杩瀖qtt",false);
                         #endregion
                     }
                 }
diff --git a/HDL_ON/Common/Constant.cs b/HDL_ON/Common/Constant.cs
index 9f79b2f..a5c0598 100644
--- a/HDL_ON/Common/Constant.cs
+++ b/HDL_ON/Common/Constant.cs
@@ -264,6 +264,10 @@
         /// 瀹夐槻鎶ヨ
         /// </summary>
         SecurityAlarm,
+        /// <summary>
+        /// HDL鍙瀵硅
+        /// </summary>
+        HDL_INTERPHONE,
     }
 
     /// <summary>
diff --git a/HDL_ON/Common/HDLCommon.cs b/HDL_ON/Common/HDLCommon.cs
index cf27527..d7de09c 100644
--- a/HDL_ON/Common/HDLCommon.cs
+++ b/HDL_ON/Common/HDLCommon.cs
@@ -273,7 +273,7 @@
                     if (jpushMessageInfo.messageType.Contains(PushMessageType.Alarm.ToString()))
                     {
                         //鎶ヨ鎺ㄩ�佸脊绐楁彁绀�
-                        ShowAlarmPushMessage(jpushMessageInfo);
+                        ShowAlarmPushMessage(jpushMessageInfo,true);
                     }
                     else if (jpushMessageInfo.messageType.Contains(PushMessageType.FLCall.ToString()))
                     {
@@ -295,8 +295,32 @@
                             eSVideoInfo.ESVideoUUID = eSVideoInfo.uuid;
                         }
 
-                        ESOnVideo.Current.ShowESvideoVideoIntercom(eSVideoInfo);
+                        ESOnVideo.Current.ShowESvideoVideoIntercom(eSVideoInfo, "FLVI");
 
+                    }
+                    else if (jpushMessageInfo.messageType.Contains(PushMessageType.HDL_INTERPHONE.ToString()))
+                    {
+                        if (string.IsNullOrEmpty(jpushMessageInfo.expantContent)) return;
+
+                        //瀛楁鍏煎闂锛屽彧鑳界洿鎺ュ彇鍊间簡
+                        var json= Newtonsoft.Json.Linq.JObject.Parse(jpushMessageInfo.expantContent);
+                        ESVideoInfo eSVideoInfo = new ESVideoInfo();// GetESOnVideoJson(jpushMessageInfo.expantContent);
+                        eSVideoInfo.callId = json["callId"].ToString();
+                        //eSVideoInfo.Lc_AccessToken = UI.UI2.PersonalCenter.PirDevice.PirSend.LcSubAccessToken;//json["subAccountToken"].ToString();//
+                        eSVideoInfo.Lc_AccessToken = json["subAccountToken"].ToString();//2021-05-13 鐩墠浜戠杩樻病鎷垮埌Lc_AccessToken锛岀洰鍓嶆病鍔炴硶姝e父浣跨敤
+                        eSVideoInfo.Lc_DeviceId = json["deviceId"].ToString();
+                        eSVideoInfo.Lc_Location = OnAppConfig.Instance.RequestHttpsHost.Contains("China") ? 0 : 1;
+                        eSVideoInfo.Lc_PlayToken = json["token"].ToString();
+                        eSVideoInfo.Lc_Psk = json["cname"].ToString();
+
+                        if (eSVideoInfo == null) return;
+
+                        ESOnVideo.Current.ShowESvideoVideoIntercom(eSVideoInfo, "IMOUVISIAL");
+
+                    }
+                    else if(jpushMessageInfo.messageType.Contains(PushMessageType.Prompt.ToString()))
+                    {
+                        ShowAlarmPushMessage(jpushMessageInfo, false);
                     }
                 }
             }
@@ -307,7 +331,7 @@
         }
 
         /// <summary>
-        /// 
+        /// 瑙f瀽涓版灄鍙瀵硅鎺ㄩ�佹暟鎹�
         /// </summary>
         /// <param name="jsonStr"></param>
         /// <returns></returns>
@@ -411,7 +435,8 @@
         /// 鎶ヨ鎺ㄩ�佸脊绐楁彁绀�,鐐瑰嚮鏌ョ湅璺宠浆淇℃伅涓績
         /// </summary>
         /// <param name="jpushMessageInfo"></param>
-        public void ShowAlarmPushMessage(JPushMessageInfo jpushMessageInfo)
+        /// <param name="isAlarm">鏄惁鏄姤璀︿俊鎭紝锛堝姞杞界殑寮圭獥棰滆壊涓嶄竴鏍凤級</param>
+        public void ShowAlarmPushMessage(JPushMessageInfo jpushMessageInfo,bool isAlarm)
         {
             //娌$櫥褰曚笉澶勭悊
             if (UserInfo.Current == null || !UserInfo.Current.IsLogin || MainPage.BasePageView == null)
@@ -422,12 +447,35 @@
             //璺宠浆淇℃伅涓績椤甸潰
             Action goAction = () =>
             {
+                //鏌ョ湅瀵瑰簲浣忓畢鐨勪俊鎭紝瑕佸垏鎹㈠埌瀵瑰簲浣忓畢
+                if (jpushMessageInfo.HomeId != DB_ResidenceData.Instance.CurrentRegion.id)
+                {
+                    var homeTemp = UserInfo.Current.regionList.Find((obj) => jpushMessageInfo.HomeId == obj.id);
+                    if (homeTemp != null)
+                    {
+                        DB_ResidenceData.Instance.CurrentRegion = homeTemp;
+                        DB_ResidenceData.Instance.SaveResidenceData();
+                        DB_ResidenceData.Instance.EixtAccount();
+                        //鍒锋柊浣忓畢鏁版嵁
+                        Common.ApiUtlis.Ins.DownloadData();
+                        while (MainPage.BasePageView.ChildrenCount > 1)
+                        {
+                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 2;
+                        }
+                        MainPage.CurPageIndex = 9999;
+                        MainPage.UserBasePage.ChooseCollection();
+                    }
+                }
                 //Dialog
                 alarmPushConfirmDialog = null;
                 Action backAction = () =>
                 {
 
                 };
+                while (MainPage.BasePageView.ChildrenCount > 1)
+                {
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 2;
+                }
                 var skipPage = new MessageCenterPage();
                 MainPage.BasePageView.AddChidren(skipPage);
                 skipPage.LoadPage(backAction);
@@ -440,10 +488,11 @@
                 alarmPushConfirmDialog = null;
             };
 
+
             //闃叉澶氭寮圭獥澶勭悊
             if (alarmPushConfirmDialog == null)
             {
-                alarmPushConfirmDialog = new ConfirmDialog();
+                alarmPushConfirmDialog = new ConfirmDialog(isAlarm);
                 alarmPushConfirmDialog.ShowDialog(Language.StringByID(StringId.Tip), jpushMessageInfo.Content, goAction, cancelAction, StringId.Cancel, StringId.LookOver);
             }
             else
diff --git a/HDL_ON/Common/OnAppConfig.cs b/HDL_ON/Common/OnAppConfig.cs
index 496bf7a..dd65de5 100644
--- a/HDL_ON/Common/OnAppConfig.cs
+++ b/HDL_ON/Common/OnAppConfig.cs
@@ -46,6 +46,11 @@
         public string SetLanguage = "";
 
         /// <summary>
+        /// 鍒嗙被鐣岄潰鏄惁鏄剧ず澶у浘
+        /// </summary>
+        public bool IsShowBigPicture = true;
+
+        /// <summary>
         /// 鏈�鍚庝竴浣嶇櫥褰曠殑璐﹀彿鐨処D
         /// </summary>
         public string LastLoginUserId = "";
@@ -75,7 +80,7 @@
         /// <summary>
         ///  璐﹀彿娉ㄥ唽鏈嶅姟鍣ㄤ俊鎭�
         /// </summary>
-        public string RequestHttpsHost ="https://china.hdlcontrol.com";
+        public string RequestHttpsHost = "https://china.hdlcontrol.com";
         /// <summary>
         /// 
         /// </summary>
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index 340f4bb..9464539 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -5,6 +5,18 @@
     public static class StringId
     {
         /// <summary>
+        /// 椋庨噺
+        /// </summary>
+        public const int AirVolume = 479;
+        /// <summary>
+        /// 鎽嗗姩
+        /// </summary>
+        public const int Pattern = 478;
+        /// <summary>
+        /// 鎽嗗姩
+        /// </summary>
+        public const int HeadSwinging = 477;
+        /// <summary>
         /// 娣诲姞浣忓畢
         /// </summary>
         public const int AddResidence = 476;
@@ -553,40 +565,40 @@
         public const int LoginByEmail = 4;
 
 
-        /// <summary>
-        /// 瀹ゅ唴婀垮害
+        /// <summary>
+        /// 瀹ゅ唴婀垮害
         /// </summary>
         public const int IndoorHumidity = 1000;
-        /// <summary>
-        /// 绔ラ攣
+        /// <summary>
+        /// 绔ラ攣
         /// </summary>
         public const int V_chip = 1001;
-        /// <summary>
-        /// 璐熺瀛�
+        /// <summary>
+        /// 璐熺瀛�
         /// </summary>
         public const int Anion = 1002;
-        /// <summary>
-        /// 鏉�鑿�
+        /// <summary>
+        /// 鏉�鑿�
         /// </summary>
         public const int Sterilization = 1003;
-        /// <summary>
-        /// 鍔犳箍
+        /// <summary>
+        /// 鍔犳箍
         /// </summary>
-        public const int Humidification = 1004;
-        /// <summary>
-        /// 婊よ姱澶嶄綅
+        public const int Humidification = 1004;
+        /// <summary>
+        /// 婊よ姱澶嶄綅
         /// </summary>
-        public const int FilterElementReset = 1005;
-        /// <summary>
-        /// 鐏厜
+        public const int FilterElementReset = 1005;
+        /// <summary>
+        /// 鐏厜
         /// </summary>
-        public const int Lighting = 1006;
-        /// <summary>
-        /// 鑷姩妯″紡
+        public const int Lighting = 1006;
+        /// <summary>
+        /// 鑷姩妯″紡
         /// </summary>
-        public const int AutoMode = 1007;
-        /// <summary>
-        /// 鎵嬪姩妯″紡
+        public const int AutoMode = 1007;
+        /// <summary>
+        /// 鎵嬪姩妯″紡
         /// </summary>
         public const int HandMode = 1008;
         /// <summary>
@@ -601,96 +613,96 @@
         /// 瀹氭椂
         /// </summary>
         public const int Timing = 1011;
-        /// <summary>
-        /// 閫夋嫨椋庨��
+        /// <summary>
+        /// 閫夋嫨椋庨��
         /// </summary>
-        public const int WindSpeedSelection = 1012;
-        /// <summary>
-        /// 妗�
+        public const int WindSpeedSelection = 1012;
+        /// <summary>
+        /// 妗�
         /// </summary>
-        public const int Gear = 1013;
-        /// <summary>
-        /// 璇风‘璁ゆ槸鍚﹀凡瀹為檯閲嶇疆婊よ姱骞舵寜{0}鐓ц鏄庝功瑕佹眰鎿嶄綔璁惧杩涜婊よ姱{0}瀵垮懡閲嶆柊璁℃椂
+        public const int Gear = 1013;
+        /// <summary>
+        /// 璇风‘璁ゆ槸鍚﹀凡瀹為檯閲嶇疆婊よ姱骞舵寜{0}鐓ц鏄庝功瑕佹眰鎿嶄綔璁惧杩涜婊よ姱{0}瀵垮懡閲嶆柊璁℃椂
         /// </summary>
-        public const int FilterElementResetMsg = 1014;
-        /// <summary>
-        /// 浣庢。
+        public const int FilterElementResetMsg = 1014;
+        /// <summary>
+        /// 浣庢。
         /// </summary>
-        public const int LowGear = 1015;
-        /// <summary>
-        /// 涓。
+        public const int LowGear = 1015;
+        /// <summary>
+        /// 涓。
         /// </summary>
-        public const int MidGear = 1016;
-        /// <summary>
-        /// 楂樻。
+        public const int MidGear = 1016;
+        /// <summary>
+        /// 楂樻。
         /// </summary>
         public const int HeightGear = 1017;
-        /// <summary>
-        /// 瀹氭椂璁剧疆
+        /// <summary>
+        /// 瀹氭椂璁剧疆
         /// </summary>
         public const int TimingSetting = 1018;
-        /// <summary>
-        /// 灏忔椂
+        /// <summary>
+        /// 灏忔椂
         /// </summary>
         public const int Hour1 = 1019;
-        /// <summary>
-        /// 婊よ姱浣跨敤锛�
+        /// <summary>
+        /// 婊よ姱浣跨敤锛�
         /// </summary>
         public const int UseOfFilterElement = 1020;
-        /// <summary>
-        /// 绌烘皵鍑�鍖栧櫒
+        /// <summary>
+        /// 绌烘皵鍑�鍖栧櫒
         /// </summary>
         public const int AirCleaner = 1021;
-        /// <summary>
-        /// 褰撳墠椋庨��
+        /// <summary>
+        /// 褰撳墠椋庨��
         /// </summary>
-        public const int CurrentWindSpeed = 1022;
-        /// <summary>
-        /// 鍙栨秷瀹氭椂
+        public const int CurrentWindSpeed = 1022;
+        /// <summary>
+        /// 鍙栨秷瀹氭椂
         /// </summary>
-        public const int CancelTiming = 1023;
-        /// <summary>
-        /// 鎵湴鏈哄櫒浜�
+        public const int CancelTiming = 1023;
+        /// <summary>
+        /// 鎵湴鏈哄櫒浜�
         /// </summary>
         public const int WeepRobot = 1024;
-        /// <summary>
-        /// 鍚稿姏璋冭妭
+        /// <summary>
+        /// 鍚稿姏璋冭妭
         /// </summary>
         public const int SuctionAdjustment = 1025;
-        /// <summary>
-        /// 鍚稿姏1妗�
+        /// <summary>
+        /// 鍚稿姏1妗�
         /// </summary>
         public const int SuctionOneGear = 1026;
-        /// <summary>
-        /// 鍚稿姏2妗�
+        /// <summary>
+        /// 鍚稿姏2妗�
         /// </summary>
         public const int SuctionTwoGear = 1027;
-        /// <summary>
-        /// 鍚稿姏3妗�
+        /// <summary>
+        /// 鍚稿姏3妗�
         /// </summary>
         public const int SuctionThreeGear = 1028;
-        /// <summary>
-        /// 鍏呯數
+        /// <summary>
+        /// 鍏呯數
         /// </summary>
         public const int Charge = 1029;
-        /// <summary>
-        /// 澹伴煶
+        /// <summary>
+        /// 澹伴煶
         /// </summary>
-        public const int Voice = 1030;
-        /// <summary>
-        /// 闈欓煶
+        public const int Voice = 1030;
+        /// <summary>
+        /// 闈欓煶
         /// </summary>
-        public const int Mute = 1031;
-        /// <summary>
-        /// 娓呮壂妯″紡
+        public const int Mute = 1031;
+        /// <summary>
+        /// 娓呮壂妯″紡
         /// </summary>
         public const int CleanMode = 1032;
-        /// <summary>
-        /// 鑰楁潗绠$悊
+        /// <summary>
+        /// 鑰楁潗绠$悊
         /// </summary>
         public const int ConsumablesManagement = 1033;
-        /// <summary>
-        /// 鍘嗗彶璁板綍
+        /// <summary>
+        /// 鍘嗗彶璁板綍
         /// </summary>
         public const int HistoryLog = 1034;
         /// <summary>
@@ -752,367 +764,367 @@
         /// <summary>
         /// 鏄惁閲嶇疆婊ょ綉
         /// </summary>
-        public const int ResetFilterScreenMsg = 1049;
+        public const int ResetFilterScreenMsg = 1049;
         /// <summary>
         /// 娣诲姞璁惧
         /// </summary>
         public const int AddDevice = 1050;
-        /// <summary>
-        /// mini鏅鸿兘閬ユ帶鍣�
+        /// <summary>
+        /// mini鏅鸿兘閬ユ帶鍣�
         /// </summary>
-        public const int MiniIntelligentRemoteControl = 1051;
-        /// <summary>
-        /// 娣诲姞绾㈠閬ユ帶
+        public const int MiniIntelligentRemoteControl = 1051;
+        /// <summary>
+        /// 娣诲姞绾㈠閬ユ帶
         /// </summary>
-        public const int AddInfraredRemoteControl = 1052;
-        /// <summary>
-        /// 闀挎寜绾㈠閬ユ帶鍣ㄦ寜閽�10绉掞紝鎸囩ず鐏摑鑹插揩闂�
+        public const int AddInfraredRemoteControl = 1052;
+        /// <summary>
+        /// 闀挎寜绾㈠閬ユ帶鍣ㄦ寜閽�10绉掞紝鎸囩ず鐏摑鑹插揩闂�
         /// </summary>
-        public const int AddInfraredRemoteControlMsg1 = 1053;
-        /// <summary>
-        /// 璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
+        public const int AddInfraredRemoteControlMsg1 = 1053;
+        /// <summary>
+        /// 璇风‘淇濇偍鐨勮摑鐗欏凡寮�鍚苟澶勪簬鍙互琚悳绱㈢姸鎬�
         /// </summary>
-        public const int AddInfraredRemoteControlMsg2 = 1054;
-        /// <summary>
-        /// 涓嬩竴姝�
+        public const int AddInfraredRemoteControlMsg2 = 1054;
+        /// <summary>
+        /// 涓嬩竴姝�
         /// </summary>
         public const int Next = 1055;
-        /// <summary>
-        /// 璁惧鎼滅储涓�...
+        /// <summary>
+        /// 璁惧鎼滅储涓�...
         /// </summary>
-        public const int SearchingDevice = 1056;
-        /// <summary>
-        /// 娌℃湁鍙戠幇绾㈠閬ユ帶鍣�
+        public const int SearchingDevice = 1056;
+        /// <summary>
+        /// 娌℃湁鍙戠幇绾㈠閬ユ帶鍣�
         /// </summary>
-        public const int NoInfraredRemoteControlFound = 1057;
-        /// <summary>
-        /// 1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽妫�鏌ヨ摑鐗欏姛鑳芥槸鍚︽甯稿紑鍚瘂0}3銆佽妫�鏌ユ寚绀虹伅鏄惁钃濊壊蹇棯鐘舵��
+        public const int NoInfraredRemoteControlFound = 1057;
+        /// <summary>
+        /// 1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽妫�鏌ヨ摑鐗欏姛鑳芥槸鍚︽甯稿紑鍚瘂0}3銆佽妫�鏌ユ寚绀虹伅鏄惁钃濊壊蹇棯鐘舵��
         /// </summary>
         public const int AddInfraredRemoteControlMsg3 = 1058;
-        /// <summary>
-        /// 閲嶆柊鎼滅储
+        /// <summary>
+        /// 閲嶆柊鎼滅储
         /// </summary>
-        public const int ReSearch = 1059;
-        /// <summary>
-        /// 杩炴帴WiFi
+        public const int ReSearch = 1059;
+        /// <summary>
+        /// 杩炴帴WiFi
         /// </summary>
-        public const int ConnectWiFi = 1060;
-        /// <summary>
-        /// 鐩墠鍙敮鎸�2.4G WiFi缃戠粶{0}鏆備笉鏀寔甯︽湁涓枃瀛楃鐨刉iFi鍚嶇О
+        public const int ConnectWiFi = 1060;
+        /// <summary>
+        /// 鐩墠鍙敮鎸�2.4G WiFi缃戠粶{0}鏆備笉鏀寔甯︽湁涓枃瀛楃鐨刉iFi鍚嶇О
         /// </summary>
-        public const int AddInfraredRemoteControlMsg4 = 1061;
-        /// <summary>
-        /// 瀵嗙爜
+        public const int AddInfraredRemoteControlMsg4 = 1061;
+        /// <summary>
+        /// 瀵嗙爜
         /// </summary>
         public const int Password = 1062;
-        /// <summary>
-        /// 姝e湪杩炴帴涓�...
+        /// <summary>
+        /// 姝e湪杩炴帴涓�...
         /// </summary>
-        public const int NowConnectting = 1063;
-        /// <summary>
-        /// 璇疯绾㈠閬ユ帶灏介噺鎺ヨ繎WIFI璺敱鍣�
+        public const int NowConnectting = 1063;
+        /// <summary>
+        /// 璇疯绾㈠閬ユ帶灏介噺鎺ヨ繎WIFI璺敱鍣�
         /// </summary>
-        public const int AddInfraredRemoteControlMsg5 = 1064;
-        /// <summary>
-        /// 缃戠粶閾炬帴涓�
+        public const int AddInfraredRemoteControlMsg5 = 1064;
+        /// <summary>
+        /// 缃戠粶閾炬帴涓�
         /// </summary>
-        public const int InTheNetworkLink = 1065;
-        /// <summary>
-        /// 涓婁紶鍒颁簯
+        public const int InTheNetworkLink = 1065;
+        /// <summary>
+        /// 涓婁紶鍒颁簯
         /// </summary>
-        public const int UploadToCloud = 1066;
-        /// <summary>
-        /// 杩炴帴鎴愬姛
+        public const int UploadToCloud = 1066;
+        /// <summary>
+        /// 杩炴帴鎴愬姛
         /// </summary>
-        public const int ConnectSuccess = 1067;
-        /// <summary>
-        /// 1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽寮�鍚摑鐗欏姛鑳絳0}3銆佸苟闀挎寜鎸夐挳10s锛屾寚绀虹伅甯镐寒
+        public const int ConnectSuccess = 1067;
+        /// <summary>
+        /// 1銆佽妫�鏌ヨ澶囨槸鍚︽甯搁�氱數{0}2銆佽寮�鍚摑鐗欏姛鑳絳0}3銆佸苟闀挎寜鎸夐挳10s锛屾寚绀虹伅甯镐寒
         /// </summary>
         public const int AddInfraredRemoteControlMsg6 = 1068;
-        /// <summary>
-        /// 娣诲姞澶辫触
+        /// <summary>
+        /// 娣诲姞澶辫触
         /// </summary>
-        public const int AddFail = 1069;
-        /// <summary>
-        /// 娣诲姞鎴愬姛
+        public const int AddFail = 1069;
+        /// <summary>
+        /// 娣诲姞鎴愬姛
         /// </summary>
-        public const int AddSuccess = 1070;
-        /// <summary>
-        /// 鍙互寮�濮嬩娇鐢ㄧ孩澶栭仴鎺у姛鑳斤紒
+        public const int AddSuccess = 1070;
+        /// <summary>
+        /// 鍙互寮�濮嬩娇鐢ㄧ孩澶栭仴鎺у姛鑳斤紒
         /// </summary>
         public const int AddInfraredRemoteControlMsg7 = 1071;
-        /// <summary>
-        /// 寮�濮嬩娇鐢�
+        /// <summary>
+        /// 寮�濮嬩娇鐢�
         /// </summary>
         public const int StartUse = 1072;
-        /// <summary>
-        /// 璇锋墦寮�钃濈墮
+        /// <summary>
+        /// 璇锋墦寮�钃濈墮
         /// </summary>
         public const int PleaseTurnOnBluetooth = 1073;
-        /// <summary>
-        /// 浣嶇疆淇℃伅(GBS)涓嶅彲鐢�
+        /// <summary>
+        /// 浣嶇疆淇℃伅(GBS)涓嶅彲鐢�
         /// </summary>
-        public const int GbsIsNotAvailable = 1074;
-        /// <summary>
-        /// 缃戠粶涓嶅彲鐢�
+        public const int GbsIsNotAvailable = 1074;
+        /// <summary>
+        /// 缃戠粶涓嶅彲鐢�
         /// </summary>
         public const int NetworkIsNotAvailable = 1075;
-        /// <summary>
-        /// 閫夋嫨绾㈠閬ユ帶鍣�
+        /// <summary>
+        /// 閫夋嫨绾㈠閬ユ帶鍣�
         /// </summary>
-        public const int ChooseInfraredRemoteControl = 1076;
-        /// <summary>
-        /// 鏂伴
+        public const int ChooseInfraredRemoteControl = 1076;
+        /// <summary>
+        /// 鏂伴
         /// </summary>
-        public const int AirFresh = 1077;
-        /// <summary>
-        /// 褰撳墠婊ょ綉鍓╀綑
+        public const int AirFresh = 1077;
+        /// <summary>
+        /// 褰撳墠婊ょ綉鍓╀綑
         /// </summary>
-        public const int ResidualFilterScreen = 1078;
-        /// <summary>
-        /// 鑺傝兘
+        public const int ResidualFilterScreen = 1078;
+        /// <summary>
+        /// 鑺傝兘
         /// </summary>
-        public const int Energy = 1079;
-        /// <summary>
-        /// 閫氶
+        public const int Energy = 1079;
+        /// <summary>
+        /// 閫氶
         /// </summary>
-        public const int Ventilated = 1080;
-        /// <summary>
-        /// 1妗�
+        public const int Ventilated = 1080;
+        /// <summary>
+        /// 1妗�
         /// </summary>
         public const int OneGear = 1081;
-        /// <summary>
-        /// 2妗�
+        /// <summary>
+        /// 2妗�
         /// </summary>
         public const int TwoGear = 1082;
-        /// <summary>
-        /// 3妗�
+        /// <summary>
+        /// 3妗�
         /// </summary>
-        public const int ThreeGear = 1083;
-        /// <summary>
-        /// 椋庨��1妗�
+        public const int ThreeGear = 1083;
+        /// <summary>
+        /// 椋庨��1妗�
         /// </summary>
         public const int FanOneGear = 1084;
-        /// <summary>
-        /// 椋庨��2妗�
+        /// <summary>
+        /// 椋庨��2妗�
         /// </summary>
         public const int FanTwoGear = 1085;
-        /// <summary>
-        /// 椋庨��3妗�
+        /// <summary>
+        /// 椋庨��3妗�
         /// </summary>
-        public const int FanThreeGear = 1086;
-        /// <summary>
-        /// 涓�閿紑閿�
+        public const int FanThreeGear = 1086;
+        /// <summary>
+        /// 涓�閿紑閿�
         /// </summary>
-        public const int OneKeyUnlocking = 1087;
-        /// <summary>
-        /// 涓存椂瀵嗙爜寮�閿�
+        public const int OneKeyUnlocking = 1087;
+        /// <summary>
+        /// 涓存椂瀵嗙爜寮�閿�
         /// </summary>
-        public const int TemporaryPasswordUnlocking = 1088;
-        /// <summary>
-        /// 宸茶繛鎺�
+        public const int TemporaryPasswordUnlocking = 1088;
+        /// <summary>
+        /// 宸茶繛鎺�
         /// </summary>
-        public const int Connected = 1089;
-        /// <summary>
-        /// 鏈繛鎺�
+        public const int Connected = 1089;
+        /// <summary>
+        /// 鏈繛鎺�
         /// </summary>
-        public const int UnConnected = 1090;
-        /// <summary>
-        /// 鐢熸垚涓存椂瀵嗙爜
+        public const int UnConnected = 1090;
+        /// <summary>
+        /// 鐢熸垚涓存椂瀵嗙爜
         /// </summary>
-        public const int CreatTemporaryPassword = 1091;
-        /// <summary>
-        /// 鐢熸晥鏃堕棿
+        public const int CreatTemporaryPassword = 1091;
+        /// <summary>
+        /// 鐢熸晥鏃堕棿
         /// </summary>
-        public const int EffectiveTime = 1092;
-        /// <summary>
-        /// 澶辨晥鏃堕棿
+        public const int EffectiveTime = 1092;
+        /// <summary>
+        /// 澶辨晥鏃堕棿
         /// </summary>
-        public const int FailureTime = 1093;
-        /// <summary>
-        /// 閫夋嫨鏃堕棿
+        public const int FailureTime = 1093;
+        /// <summary>
+        /// 閫夋嫨鏃堕棿
         /// </summary>
-        public const int SelectTime = 1094;
-        /// <summary>
-        /// 閫夋嫨鏃ユ湡
+        public const int SelectTime = 1094;
+        /// <summary>
+        /// 閫夋嫨鏃ユ湡
         /// </summary>
         public const int SelectDate = 1095;
-        /// <summary>
-        /// 鐢熸垚
+        /// <summary>
+        /// 鐢熸垚
         /// </summary>
-        public const int Generate = 1096;
-        /// <summary>
-        /// 涓存椂瀵嗙爜宸茬粡澶嶅埗
+        public const int Generate = 1096;
+        /// <summary>
+        /// 涓存椂瀵嗙爜宸茬粡澶嶅埗
         /// </summary>
-        public const int TempPsswordHasBeenCopy = 1097;
-        /// <summary>
-        /// 娓呴櫎褰撳墠涓存椂瀵嗙爜锛�
+        public const int TempPsswordHasBeenCopy = 1097;
+        /// <summary>
+        /// 娓呴櫎褰撳墠涓存椂瀵嗙爜锛�
         /// </summary>
-        public const int ClearTempPsswordMsg = 1098;
-        /// <summary>
-        /// 鐢熸晥鏃堕棿蹇呴』澶т簬澶辨晥鏃堕棿
+        public const int ClearTempPsswordMsg = 1098;
+        /// <summary>
+        /// 鐢熸晥鏃堕棿蹇呴』澶т簬澶辨晥鏃堕棿
         /// </summary>
-        public const int EffectiveTimeMustBeOverFailureTime = 1099;
-        /// <summary>
-        /// 寮�閿佹柟寮忕鐞�
+        public const int EffectiveTimeMustBeOverFailureTime = 1099;
+        /// <summary>
+        /// 寮�閿佹柟寮忕鐞�
         /// </summary>
-        public const int UnlockingManagement = 1100;
-        /// <summary>
-        /// 鍒犻櫎鎿嶄綔灏嗚鍚屾浜庡疄浣撻攣涓婃槸鍚﹁繕闇�瑕佸垹闄わ紵
+        public const int UnlockingManagement = 1100;
+        /// <summary>
+        /// 鍒犻櫎鎿嶄綔灏嗚鍚屾浜庡疄浣撻攣涓婃槸鍚﹁繕闇�瑕佸垹闄わ紵
         /// </summary>
         public const int DeleteUnlockingMethordMsg = 1101;
-        /// <summary>
-        /// 纭鍒犻櫎
+        /// <summary>
+        /// 纭鍒犻櫎
         /// </summary>
-        public const int ConfirmDeletion = 1102;
-        /// <summary>
-        /// 淇敼澶囨敞鍚嶇О
+        public const int ConfirmDeletion = 1102;
+        /// <summary>
+        /// 淇敼澶囨敞鍚嶇О
         /// </summary>
-        public const int EditorRemarkName = 1103;
-        /// <summary>
-        /// 澶囨敞鍚嶇О涓嶈兘涓虹┖
+        public const int EditorRemarkName = 1103;
+        /// <summary>
+        /// 澶囨敞鍚嶇О涓嶈兘涓虹┖
         /// </summary>
         public const int RemarkNameCanNotEmpty = 1104;
-        /// <summary>
-        /// 鍒嗛厤鑷�
+        /// <summary>
+        /// 鍒嗛厤鑷�
         /// </summary>
         public const int AssignTo = 1105;
-        /// <summary>
-        /// 妫�娴嬩笉鍒板彲渚涢�夋嫨鐨勫満鏅�
+        /// <summary>
+        /// 妫�娴嬩笉鍒板彲渚涢�夋嫨鐨勫満鏅�
         /// </summary>
-        public const int NotHadCanSelectScene = 1106;
-        /// <summary>
-        /// 閫夋嫨鍦烘櫙
+        public const int NotHadCanSelectScene = 1106;
+        /// <summary>
+        /// 閫夋嫨鍦烘櫙
         /// </summary>
-        public const int SelectScene = 1107;
-        /// <summary>
-        /// 閿佸凡鎵撳紑
+        public const int SelectScene = 1107;
+        /// <summary>
+        /// 閿佸凡鎵撳紑
         /// </summary>
         public const int LockIsOpened = 1108;
-        /// <summary>
-        /// 甯稿紑
+        /// <summary>
+        /// 甯稿紑
         /// </summary>
         public const int AlwaysOn = 1109;
-        /// <summary>
-        /// 鏃舵晥鎬у父寮�璁剧疆
+        /// <summary>
+        /// 鏃舵晥鎬у父寮�璁剧疆
         /// </summary>
         public const int TimelyAlwaysOnSetting = 1110;
-        /// <summary>
-        /// 甯稿紑鑷姩鍖�
+        /// <summary>
+        /// 甯稿紑鑷姩鍖�
         /// </summary>
-        public const int AutomationAlwaysOn = 1111;
-        /// <summary>
-        /// 鎵撳紑甯稿紑妯″紡
+        public const int AutomationAlwaysOn = 1111;
+        /// <summary>
+        /// 鎵撳紑甯稿紑妯″紡
         /// </summary>
-        public const int OpenAlwaysOnModel = 1112;
-        /// <summary>
-        /// 鍏抽棴甯稿紑妯″紡
+        public const int OpenAlwaysOnModel = 1112;
+        /// <summary>
+        /// 鍏抽棴甯稿紑妯″紡
         /// </summary>
-        public const int CloseAlwaysOnModel = 1113;
-        /// <summary>
-        /// 缂栬緫
+        public const int CloseAlwaysOnModel = 1113;
+        /// <summary>
+        /// 缂栬緫
         /// </summary>
         public const int Edit = 1114;
-        /// <summary>
-        /// 甯稿紑妯″紡灏嗕簬{0}鍏抽棴
+        /// <summary>
+        /// 甯稿紑妯″紡灏嗕簬{0}鍏抽棴
         /// </summary>
-        public const int AlwaysOnWillCloseOnTime = 1115;
-        /// <summary>
-        /// 鏉′欢
+        public const int AlwaysOnWillCloseOnTime = 1115;
+        /// <summary>
+        /// 鏉′欢
         /// </summary>
         public const int Condtion = 1116;
-        /// <summary>
-        /// 鍔ㄤ綔
+        /// <summary>
+        /// 鍔ㄤ綔
         /// </summary>
         public const int Action = 1117;
-        /// <summary>
-        /// 甯稿紑妯″紡
+        /// <summary>
+        /// 甯稿紑妯″紡
         /// </summary>
-        public const int AlwaysOnModel = 1118;
-        /// <summary>
-        /// 閿�
+        public const int AlwaysOnModel = 1118;
+        /// <summary>
+        /// 閿�
         /// </summary>
-        public const int Lock = 1119;
-        /// <summary>
-        /// 鐢ㄦ埛
+        public const int Lock = 1119;
+        /// <summary>
+        /// 鐢ㄦ埛
         /// </summary>
-        public const int User = 1120;
-        /// <summary>
-        /// 寮�閿佹柟寮�
+        public const int User = 1120;
+        /// <summary>
+        /// 寮�閿佹柟寮�
         /// </summary>
-        public const int UnlockingMode = 1121;
-        /// <summary>
-        /// 鎸囩汗
+        public const int UnlockingMode = 1121;
+        /// <summary>
+        /// 鎸囩汗
         /// </summary>
-        public const int Fingerprints = 1122;
-        /// <summary>
-        /// 鍗�
+        public const int Fingerprints = 1122;
+        /// <summary>
+        /// 鍗�
         /// </summary>
-        public const int Card = 1123;
-        /// <summary>
-        /// 閽ュ寵
+        public const int Card = 1123;
+        /// <summary>
+        /// 閽ュ寵
         /// </summary>
-        public const int Key = 1124;
-        /// <summary>
-        /// 淇℃伅绫诲瀷
+        public const int Key = 1124;
+        /// <summary>
+        /// 淇℃伅绫诲瀷
         /// </summary>
-        public const int MessageType = 1125;
-        /// <summary>
-        /// 寮�閿佷俊鎭�
+        public const int MessageType = 1125;
+        /// <summary>
+        /// 寮�閿佷俊鎭�
         /// </summary>
-        public const int UnlockingMessage = 1126;
-        /// <summary>
-        /// 鎶ヨ绫讳俊鎭�
+        public const int UnlockingMessage = 1126;
+        /// <summary>
+        /// 鎶ヨ绫讳俊鎭�
         /// </summary>
-        public const int AlarmMessage = 1127;
-        /// <summary>
-        /// 璁惧涓嶅湪绾�
+        public const int AlarmMessage = 1127;
+        /// <summary>
+        /// 璁惧涓嶅湪绾�
         /// </summary>
-        public const int DeviceNotOnline = 1128;
-        /// <summary>
-        /// 绗竴娆′娇鐢紝璇峰厛缁戝畾闂ㄩ攣瀵嗙爜
+        public const int DeviceNotOnline = 1128;
+        /// <summary>
+        /// 绗竴娆′娇鐢紝璇峰厛缁戝畾闂ㄩ攣瀵嗙爜
         /// </summary>
         public const int PleaseBindTheDoorPswFirst = 1129;
-        /// <summary>
-        /// 璇疯緭鍏ラ棬閿佺鐞嗗憳瀵嗙爜
+        /// <summary>
+        /// 璇疯緭鍏ラ棬閿佺鐞嗗憳瀵嗙爜
         /// </summary>
-        public const int PleaseInputDoorAdminPassword = 1130;
-        /// <summary>
-        /// 闂ㄩ攣缁戝畾鎴愬姛
+        public const int PleaseInputDoorAdminPassword = 1130;
+        /// <summary>
+        /// 闂ㄩ攣缁戝畾鎴愬姛
         /// </summary>
         public const int BindDoorLockSuccess = 1131;
-        /// <summary>
-        /// 涓轰簡瀹夊叏锛岃璺宠浆鑷充釜浜轰腑蹇儃0}璁剧疆涓汉瀵嗙爜锛屽苟搴旂敤浜庨棬閿佸紑閿�
+        /// <summary>
+        /// 涓轰簡瀹夊叏锛岃璺宠浆鑷充釜浜轰腑蹇儃0}璁剧疆涓汉瀵嗙爜锛屽苟搴旂敤浜庨棬閿佸紑閿�
         /// </summary>
         public const int JumpToPersonalCentetToSetPasswordMsg = 1132;
-        /// <summary>
-        /// 璺宠浆
+        /// <summary>
+        /// 璺宠浆
         /// </summary>
-        public const int Jump = 1133;
-        /// <summary>
-        /// 璇风粯鍒跺浘妗�
+        public const int Jump = 1133;
+        /// <summary>
+        /// 璇风粯鍒跺浘妗�
         /// </summary>
-        public const int PleaseDrawPattern = 1134;
-        /// <summary>
-        /// 璁剧疆甯稿紑妯″紡鍚巤0}鎮ㄧ殑闂ㄩ攣灏嗗浜庢墦寮�鐘舵�亄0}鏄惁缁х画寮�鍚�
+        public const int PleaseDrawPattern = 1134;
+        /// <summary>
+        /// 璁剧疆甯稿紑妯″紡鍚巤0}鎮ㄧ殑闂ㄩ攣灏嗗浜庢墦寮�鐘舵�亄0}鏄惁缁х画寮�鍚�
         /// </summary>
-        public const int OpenAlwayOnConfirmMsg = 1135;
-        /// <summary>
-        /// 纭寮�鍚�
+        public const int OpenAlwayOnConfirmMsg = 1135;
+        /// <summary>
+        /// 纭寮�鍚�
         /// </summary>
-        public const int ConfirmOpen = 1136;
-        /// <summary>
-        /// 澶辨晥璁剧疆
+        public const int ConfirmOpen = 1136;
+        /// <summary>
+        /// 澶辨晥璁剧疆
         /// </summary>
-        public const int FailTimeSeetion = 1137;
-        /// <summary>
-        /// 甯稿紑妯″紡灏嗕簬{0}灏忔椂鍚庡け鏁�
+        public const int FailTimeSeetion = 1137;
+        /// <summary>
+        /// 甯稿紑妯″紡灏嗕簬{0}灏忔椂鍚庡け鏁�
         /// </summary>
-        public const int AlwayOnWillCloseAtTimeMsg = 1138;
-        /// <summary>
-        /// 璇疯緭鍏ュけ鏁堟椂闂�
+        public const int AlwayOnWillCloseAtTimeMsg = 1138;
+        /// <summary>
+        /// 璇疯緭鍏ュけ鏁堟椂闂�
         /// </summary>
-        public const int PleaseInputFailTime = 1139;
+        public const int PleaseInputFailTime = 1139;
         /// <summary>
         /// 澶辨晥鏃堕棿涓嶈兘澶т簬72灏忔椂
         /// </summary>
@@ -1120,76 +1132,111 @@
         /// <summary>
         /// 澶辨晥鏃堕棿涓嶈兘灏忎簬1灏忔椂
         /// </summary>
-        public const int InvalidTimeLessThan1 = 1141;
+        public const int InvalidTimeLessThan1 = 1141;
         /// <summary>
         /// 甯稿紑妯″紡鍏抽棴璁剧疆澶辨晥锛岃閲嶈瘯
         /// </summary>
-        public const int AlwayOnFailTimeSettionFailMsg = 1142;
+        public const int AlwayOnFailTimeSettionFailMsg = 1142;
         /// <summary>
         /// 绠$悊鍛樿韩浠介獙璇佸け璐�,璇烽噸鏂扮櫥褰�
         /// </summary>
-        public const int CheckAdminFailAndLoginAgain = 1143;
+        public const int CheckAdminFailAndLoginAgain = 1143;
         /// <summary>
         /// 鎮ㄧ殑浣忓畢灏嗚繃鎴风粰鍏朵粬HDL璐﹀彿
         /// </summary>
-        public const int YourHomeWillBeTransferredToOtherAccounts = 1144;
+        public const int YourHomeWillBeTransferredToOtherAccounts = 1144;
         /// <summary>
         /// 璇锋敞鎰忥細
         /// </summary>
-        public const int Attention = 1145;
+        public const int Attention = 1145;
         /// <summary>
         /// 1.璇ヤ綇瀹呮偍鐨勬暟鎹紙浜戠鏁版嵁锛夊皢鍏ㄩ儴杞Щ缁欐柊鐨勬埛涓粄0}2.杩囨埛鍚庯紝鍘熸湁鐨勬垚鍛樺皢鑷姩瑙g粦璇ヤ綇瀹厈0}3.鏂版埛涓昏处鍙蜂负鏈夋晥鐨凥DL璐﹀彿{0}4.鎺ユ敹鏂硅处鍙蜂笌杞Щ鏂硅处鍙蜂笉鍙负鍚屼竴涓处鍙�
         /// </summary>
-        public const int TransferreConfirmMsg1 = 1146;
-        /// <summary>
-        /// 纭杩囨埛
-        /// </summary>
-        public const int ConfirmTransferre = 1147;
-        /// <summary>
-        /// 璇疯緭鍏ユ帴鏀舵柟璐﹀彿
-        /// </summary>
+        public const int TransferreConfirmMsg1 = 1146;
+        /// <summary>
+        /// 纭杩囨埛
+        /// </summary>
+        public const int ConfirmTransferre = 1147;
+        /// <summary>
+        /// 璇疯緭鍏ユ帴鏀舵柟璐﹀彿
+        /// </summary>
         public const int PleaseInputReceiverAccount = 1148;
-        /// <summary>
-        /// 涓汉璧勬枡
+        /// <summary>
+        /// 涓汉璧勬枡
         /// </summary>
-        public const int Profile = 1149;
-        /// <summary>
-        /// 纭杩囨埛{0}鐨勭鐞嗗憳璐﹀彿缁欒处鍙穥1}
+        public const int Profile = 1149;
+        /// <summary>
+        /// 纭杩囨埛{0}鐨勭鐞嗗憳璐﹀彿缁欒处鍙穥1}
         /// </summary>
-        public const int TransferreConfirmMsg2 = 1150;
-        /// <summary>
-        /// 鐩爣璐﹀彿骞朵笉瀛樺湪
+        public const int TransferreConfirmMsg2 = 1150;
+        /// <summary>
+        /// 鐩爣璐﹀彿骞朵笉瀛樺湪
         /// </summary>
-        public const int TargetAcountDoesNotExist = 1151;
+        public const int TargetAcountDoesNotExist = 1151;
         /// <summary>
         /// 涓嶈兘鑷繁杩囨埛缁欒嚜宸�
         /// </summary>
         public const int YouCannotTransferOwnershipToYourself = 1152;
-        /// <summary>
-        /// 缁堟
+        /// <summary>
+        /// 缁堟
         /// </summary>
-        public const int Terminate = 1153;
-        /// <summary>
-        /// 姝e湪杩囨埛缁欑敤鎴�,璇风◢鍚�...
+        public const int Terminate = 1153;
+        /// <summary>
+        /// 姝e湪杩囨埛缁欑敤鎴�,璇风◢鍚�...
         /// </summary>
-        public const int IsTransferingPleaseWaitting = 1154;
+        public const int IsTransferingPleaseWaitting = 1154;
         /// <summary>
         /// 鐢ㄦ埛{0}宸茬粡鎴愪负浣忓畢琛岀鐞嗗憳
         /// </summary>
         public const int CongratulationsXXBecomingNNAdministrator = 1155;
-        /// <summary>
-        /// 璇ヤ綇瀹呯殑淇℃伅灏嗗湪鎮ㄧ殑璐﹀彿涓垹闄�
+        /// <summary>
+        /// 璇ヤ綇瀹呯殑淇℃伅灏嗗湪鎮ㄧ殑璐﹀彿涓垹闄�
         /// </summary>
         public const int ResidenceDataWillBeDeletedFromYourAccount = 1156;
-        /// <summary>
-        /// 杩囨埛澶辫触
+        /// <summary>
+        /// 杩囨埛澶辫触
         /// </summary>
         public const int TransferFail = 1157;
-        /// <summary>
-        /// 璇烽噸鏂板皾璇�
+        /// <summary>
+        /// 璇烽噸鏂板皾璇�
         /// </summary>
         public const int PleaseTryAgain = 1158;
-
+        /// <summary>
+        /// 绠$悊鍛樻潈闄愯浆绉�
+        /// </summary>
+        public const int AdminAuthorityTransfer = 1159;
+        /// <summary>
+        /// 鎮ㄥ皢杞Щ鎮ㄧ殑绠$悊鍛樻潈闄愮粰鍏朵粬鎴愬憳
+        /// </summary>
+        public const int AdminAuthorityTransferMag1 = 1160;
+        /// <summary>
+        /// 1.璇ヤ綇瀹呮偍鐨勭鐞嗗憳鏁版嵁锛堜簯绔暟鎹級灏嗗叏閮ㄨ浆绉荤粰鏂扮殑绠$悊鍛榹0}2.鎮ㄧ殑鏁版嵁灏嗕細涓庣洰鏍囨垚鍛樹簰鎹紝鎮ㄧ殑鏉冮檺灏嗗彉鏇翠负鐩爣鎴愬憳鐨勬潈闄�
+        /// </summary>
+        public const int AdminAuthorityTransferMag2 = 1161;
+        /// <summary>
+        /// 纭杞Щ
+        /// </summary>
+        public const int ConfirmTransfer2 = 1162;
+        /// <summary>
+        /// 妫�娴嬩笉鍒板彲渚涢�夋嫨鐨勬垚鍛�
+        /// </summary>
+        public const int NotHadMemberToSelect = 1163;
+        /// <summary>
+        /// 纭杞Щ{0}鐨勭鐞嗗憳鏉冮檺缁欒处鍙穥1}
+        /// </summary>
+        public const int TransferreConfirmMsg3 = 1164;
+        /// <summary>
+        /// 杩佺Щ鎴愬姛
+        /// </summary>
+        public const int TransferreSuccess1 = 1165;
+        /// <summary>
+        /// 杩佺Щ澶辫触
+        /// </summary>
+        public const int TransferreFail1 = 1166;
+        /// <summary>
+        /// 杩佺Щ鎴愬姛锛屾偍鐨勬潈闄愬皢鍙樹负鏅�氭垚鍛�
+        /// </summary>
+        public const int TransferreSuccessMsg1 = 1167;
 
         public const int keshiduijiang = 4000;
         public const int tonghuajilu = 4001;
diff --git a/HDL_ON/Common/UserInfo.cs b/HDL_ON/Common/UserInfo.cs
index a242194..c82538d 100644
--- a/HDL_ON/Common/UserInfo.cs
+++ b/HDL_ON/Common/UserInfo.cs
@@ -23,41 +23,41 @@
         {
             get
             {
+                //Dome妯″紡
+                if (MainPage.NoLoginMode)
+                {
+                    if (Language.CurrentLanguage == "Chinese")
+                    {
+                        m_Current = new UserInfo()
+                        {
+                            ID = "1234567890",
+                            userName = "浣撻獙璐﹀彿",
+                            AccountString = "浣撻獙璐﹀彿",
+                            userMobileInfo = "浣撻獙璐﹀彿",
+                            userEmailInfo = "浣撻獙璐﹀彿",
+                            language = "Chinese",
+                            areaCode = "86",
+                            headImagePagePath = "LoginIcon/2.png",
+                        };
+                    }
+                    else
+                    {
+                        m_Current = new UserInfo()
+                        {
+                            ID = "1234567890",
+                            userName = "Trial account",
+                            AccountString = "Trial account",
+                            userMobileInfo = "Trial account",
+                            userEmailInfo = "Trial account",
+                            language = "English",
+                            areaCode = "86",
+                            headImagePagePath = "LoginIcon/2.png",
+                        };
+                    }
+                    return m_Current;
+                }
                 if (m_Current == null)
                 {
-                    //Dome妯″紡
-                    if (MainPage.NoLoginMode)
-                    {
-                        if (Language.CurrentLanguage == "Chinese")
-                        {
-                            m_Current = new UserInfo()
-                            {
-                                ID = "浣撻獙璐﹀彿1234567890",
-                                userName = "浣撻獙璐﹀彿",
-                                AccountString = "浣撻獙璐﹀彿",
-                                userMobileInfo = "浣撻獙璐﹀彿",
-                                userEmailInfo = "浣撻獙璐﹀彿",
-                                language = "Chinese",
-                                areaCode = "86",
-                                headImagePagePath = "LoginIcon/2.png",
-                            };
-                        }
-                        else
-                        {
-                            m_Current = new UserInfo()
-                            {
-                                ID = "1234567890",
-                                userName = "Trial account",
-                                AccountString = "Trial account",
-                                userMobileInfo = "Trial account",
-                                userEmailInfo = "Trial account",
-                                language = "English",
-                                areaCode = "86",
-                                headImagePagePath = "LoginIcon/2.png",
-                            };
-                        }
-                        return m_Current;
-                    }
 
                     try
                     {
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index 8f82384..0724f2b 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -359,6 +359,15 @@
                     }
                 }
             }
+            //Bug淇锛氫竴绔彛杩滅▼鎺у埗璋冨厜璁惧鐨勮皟鍏夊睘鎬ф椂锛屾棤娉曟帶鍒跺埌0锛屽弽澶嶆í璺炽��
+            //鍥犱负On + 杩滅▼鎺у埗鍙戦�佺粰浜戠浣跨敤鐨勬槸link鍗忚鏁版嵁锛屾潹娑涗腑杞粰楂樿儨澶勭悊鏃跺�欓�昏緫涓婃湁鍐茬獊锛屽鑷存棤娉曞崟鐙帶鍒朵寒搴﹀�硷紝闇�瑕佸悓鏃跺彂閫佸紑鍏冲�间笌浜害鍊笺��
+            if (DB_ResidenceData.Instance.GatewayType == 0)
+            {
+                if(commandDictionary.Count == 1 && commandDictionary.ContainsKey(FunctionAttributeKey.Brightness))
+                {
+                    commandDictionary.Add(FunctionAttributeKey.OnOff, commandDictionary[FunctionAttributeKey.Brightness] == "0" ? "off" : "on");
+                }
+            }
 
             ///dome鎺у埗
             if (MainPage.NoLoginMode)
@@ -406,16 +415,6 @@
             }
             else
             {
-                ////杩滅▼閫氳
-                //if (Ins.GatewayOnline_Local == false && Ins.GatewayOnline_Cloud == true)
-                //{
-                //    DAL.Server.HttpServerRequest httpServer = new DAL.Server.HttpServerRequest();
-                //    //ALink鎺у埗銆丅us鎺у埗浣跨敤鍚屼竴涓帴鍙f帶鍒讹紝鐢变簯绔礋璐hВ鏋�
-                //    var apiControlData = function.GetApiControlData(commandDictionary);
-                //    var actionObjs = new List<ApiAlinkControlActionObj>();
-                //    actionObjs.Add(apiControlData);
-                //    var pack = httpServer.ControlDevice(actionObjs);
-                //}
                 //鏈湴閫氳
                 if (Ins.GatewayOnline_Local)
                 {
@@ -477,28 +476,41 @@
             }
 
             var count = 0;
-            var logString = open ? "鎵撳紑\r\n" : "鍏抽棴\r\n";
             List<ApiAlinkControlActionObj> actionObjs = new List<ApiAlinkControlActionObj>();
             Dictionary<string, string> d = new Dictionary<string, string>();
             d.Add(FunctionAttributeKey.OnOff, open ? "on" : "off");
             var pm = new DAL.Server.HttpServerRequest();
-            foreach (var temp in functions)
+            //涓�绔彛鍏ㄥ紑鍏ㄥ叧闇�瑕佸欢鏃跺彂閫�
+            if (DB_ResidenceData.Instance.GatewayType == 0)
             {
-                logString += temp.spk + ":" + temp.sid + "\r\n";
-                var apiControlData = temp.GetApiControlData(d);
-                actionObjs.Add(apiControlData);
-                count++;
-                if (count > 9)
+                new System.Threading.Thread(() =>
                 {
-                    var result = pm.ControlDevice(actionObjs);
-                    actionObjs = new List<ApiAlinkControlActionObj>();
-                    count = 0;
-                    MainPage.Log(logString);
-                    logString = "";
-                }
+                    foreach (var temp in functions)
+                    {
+                        var apiControlData = temp.GetApiControlData(d);
+                        var result = pm.ControlDevice(new List<ApiAlinkControlActionObj>() { apiControlData });
+                        System.Threading.Thread.Sleep(100);
+                    }
+                })
+                { IsBackground = true }.Start();
             }
-            var pack = pm.ControlDevice(actionObjs);
-            MainPage.Log(logString);
+            else
+            {
+                foreach (var temp in functions)
+                {
+                    var apiControlData = temp.GetApiControlData(d);
+                    actionObjs.Add(apiControlData);
+                    count++;
+                    if (count > 9)
+                    {
+                        var result = pm.ControlDevice(actionObjs);
+                        actionObjs = new List<ApiAlinkControlActionObj>();
+                        count = 0;
+                        System.Threading.Thread.Sleep(100);
+                    }
+                }
+                var pack = pm.ControlDevice(actionObjs);
+            }
         }
 
         public void SendApiReadCommand(List<string> functionIds)
@@ -899,6 +911,17 @@
                                 }
                                 EnvironmentalPage.LoadEvent_UpdataStatus(localFunction);
                                 break;
+                            case SPK.SensorEnvironment:
+                                if (localFunction.GetAttributes().Contains(FunctionAttributeKey.Temperature))
+                                {
+                                    HomePage.LoadEvent_RefreshEnvirIndoorTemp();
+                                }
+                                if (localFunction.GetAttributes().Contains(FunctionAttributeKey.Humidity))
+                                {
+                                    HomePage.LoadEvent_RefreshEnvirIndoorHumi();
+                                }
+                                EnvironmentalPage.LoadEvent_UpdataStatus(localFunction);
+                                break;
                             case SPK.ElectricSocket:
                                 SocketPage.UpdataState(localFunction);
                                 break;
diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
index 4b9483b..789428d 100644
--- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -52,6 +52,15 @@
         /// </summary>
         public void ControlBytesSend(Command command, byte subnetID, byte deviceID, byte[] gatewayBytes, int sendCount = 3)
         {
+#if DEBUG
+            string ddd = "";
+            foreach (var bb in gatewayBytes)
+            {
+                ddd += bb + ",";
+            }
+            MainPage.Log($"鍙戦�乥us鍛戒护:" + ((int)command).ToString("X").PadLeft(4,'0') + " : 鏁版嵁:" + ddd);
+#endif
+
             var control = new Control_Udp();
             control.Send(new Target()
             {
@@ -429,13 +438,16 @@
                         {
                             case SPK.LightCCT:
                                 byte b0 = 100;//寮�鍏虫搷浣滀緷鎹畂n_off瀛楁锛屽疄闄呭紑鍏冲�间緷鎹産rightness锛屽綋on_off涓烘墦寮�锛宐rightness涓嶈兘涓�0
-                                if (function.trait_on_off.curValue.ToString() == "off")
+                                if(commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
                                 {
-                                    b0 = 0;
+                                    if (function.trait_on_off.curValue.ToString() == "off")
+                                    {
+                                        b0 = 0;
+                                    }
                                 }
                                 else
                                 {
-                                    b0 = Convert.ToByte( function.GetAttrState(FunctionAttributeKey.Brightness)) == 0 ? (byte)100 : Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
+                                    b0 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));// == 0 ? (byte)100 : Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
                                 }
                                 var bytes0 = new byte[] { function.bus.LoopId,
                                             b0,
@@ -646,10 +658,10 @@
                                         {
                                             b1 += (byte)(16 + wm);
                                         }
-                                        if (commandDictionary.ContainsKey("temp"))
+                                        if (commandDictionary.ContainsKey("set_temp"))
                                         {
                                             var dicTempString = "";
-                                            commandDictionary.TryGetValue("temp", out dicTempString);
+                                            commandDictionary.TryGetValue("set_temp", out dicTempString);
                                             var dicTemp = Convert.ToByte(dicTempString);
                                             var mode = function.GetAttrState(FunctionAttributeKey.Mode);
                                             switch (mode)
@@ -742,22 +754,31 @@
                                             break;
                                     }
                                 }
-
                                 //7   婀垮害璁惧畾 %
                                 //8   瀹ゅ唴娓╁害鍊�   鈩�
+                                byte indoorTemp_airFrsh = 0;
+                                if (commandDictionary.ContainsKey(FunctionAttributeKey.IndoorTemp) == true)
+                                {
+                                    indoorTemp_airFrsh= Convert.ToByte(commandDictionary[FunctionAttributeKey.IndoorTemp]);
+                                }
+                                byte indoorHumidity_airFrsh = 0;
+                                if (commandDictionary.ContainsKey(FunctionAttributeKey.IndoorHumidity) == true)
+                                {
+                                    indoorHumidity_airFrsh = Convert.ToByte(commandDictionary[FunctionAttributeKey.IndoorHumidity]);
+                                }
                                 //9   瀹ゅ唴婀垮害鍊�   鈩�
                                 //10  杩囨护缃戝墿浣� %
-                                //11  杩囨护缃戜娇鐢ㄨ秴鏃� 1 瓒呮椂 0 鏃�
+                                //11  杩囨护缃戜娇鐢ㄨ秴鏃� 1 瓒呮椂 0 鏃�    
                                 ControlBytesSend(Command.FreshAirControl_JinMao, subnetId, deviceId, new byte[] {
                                     function.bus.LoopId,0, switchValue ,
                                     airFreshMode,airFreshEnergy,
                                     airFreshFan,
                                     Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Humidity)),
-                                    0,0,0,0
-                                    //Convert.ToByte( function.GetAttrState(FunctionAttributeKey.IndoorTemp)),
-                                    //Convert.ToByte( function.GetAttrState(FunctionAttributeKey.IndoorHumidity)),
+                                    indoorTemp_airFrsh,
+                                    indoorHumidity_airFrsh,
                                     //Convert.ToByte( function.GetAttrState(FunctionAttributeKey.FilterRemain)),
                                     //function.GetAttrState(FunctionAttributeKey.FilterTimeout) =="true"?1:0,
+                                    0,0
                                 });
                                 break;
                         }
diff --git a/HDL_ON/DAL/DriverLayer/Packet.cs b/HDL_ON/DAL/DriverLayer/Packet.cs
index e67231e..2d28447 100644
--- a/HDL_ON/DAL/DriverLayer/Packet.cs
+++ b/HDL_ON/DAL/DriverLayer/Packet.cs
@@ -97,7 +97,8 @@
                 {
                     ddd += bb + ",";
                 }
-                MainPage.Log(((int)command) + " : " + ddd);
+                MainPage.Log($"bus鍛戒护:" + ((int)command).ToString("X").PadLeft(4, '0') + " : 鏁版嵁:" + ddd);
+                //MainPage.Log($"bus鍛戒护:"+ ((int)command) + " : 鏁版嵁:" + ddd);
 #endif
                 //澶勭悊鏄惁瑕侀噸鍙戞暟鎹�
                 ManagerReceive(subnetID, deviceID, command, usefulBytes);
@@ -227,25 +228,40 @@
                         break;
                     case Command.SetLogicLoopColorACK:
                     case Command.ReadLogicLoopColorACK:
-                        foreach (var rgb in FunctionList.List.GetLightList())
+                        foreach (var lightTeme in FunctionList.List.GetLightList())
                         {
-                            if (rgb.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
+                            if (lightTeme.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
                             {
-                                if (rgb.spk == SPK.LightRGB)
+                                if (lightTeme.spk == SPK.LightRGB)
                                 {
-                                    rgb.trait_on_off.curValue = receiveBytes[1] > 0 ? "on" : "off";
+                                    lightTeme.trait_on_off.curValue = receiveBytes[1] > 0 ? "on" : "off";
                                     if (receiveBytes[1] > 0)
                                     {
-                                        rgb.SetAttrState(FunctionAttributeKey.Brightness, receiveBytes[1].ToString());
-                                        rgb.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[1] + "%";
+                                        lightTeme.SetAttrState(FunctionAttributeKey.Brightness, receiveBytes[1].ToString());
+                                        lightTeme.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[1] + "%";
                                     }
-                                    new Light().SetRGBcolor(new byte[] { receiveBytes[6], receiveBytes[7], receiveBytes[8] }, rgb);
+                                    new Light().SetRGBcolor(new byte[] { receiveBytes[6], receiveBytes[7], receiveBytes[8] }, lightTeme);
 
-                                    HomePage.UpdataFunctionStates(rgb);
-                                    RoomPage.UpdataStates(rgb);
-                                    FunctionPage.UpdataStates(rgb);
-                                    ClassificationPage.UpdataInfo(rgb);
-                                    RGBPage.UpdataStates(rgb);
+                                    HomePage.UpdataFunctionStates(lightTeme);
+                                    RoomPage.UpdataStates(lightTeme);
+                                    FunctionPage.UpdataStates(lightTeme);
+                                    ClassificationPage.UpdataInfo(lightTeme);
+                                    RGBPage.UpdataStates(lightTeme);
+                                }else if(lightTeme.spk == SPK.LightCCT)
+                                {
+                                    lightTeme.trait_on_off.curValue = receiveBytes[1] > 0 ? "on" : "off";
+                                    if (receiveBytes[1] > 0)
+                                    {
+                                        lightTeme.SetAttrState(FunctionAttributeKey.Brightness, receiveBytes[1].ToString());
+                                        lightTeme.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[1] + "%";
+                                    }
+                                    new Light().SetCCT(new byte[] { receiveBytes[6], receiveBytes[7] }, lightTeme);
+
+                                    HomePage.UpdataFunctionStates(lightTeme);
+                                    RoomPage.UpdataStates(lightTeme);
+                                    FunctionPage.UpdataStates(lightTeme);
+                                    ClassificationPage.UpdataInfo(lightTeme);
+                                    ColorTureLampPage.UpdataStatus(lightTeme);
                                 }
                             }
                         }
diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs
index c71c3a4..b7de875 100644
--- a/HDL_ON/DAL/Mqtt/MqttClient.cs
+++ b/HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -20,7 +20,7 @@
         /// <summary>
         /// 鍔犲瘑閫氳KEY
         /// </summary>
-        static string mqttEncryptKey = "";
+        //static string mqttEncryptKey = "";
         static string tuyaEncryptKey = "";
         //static string checkGatewayTopicBase64 = "";
         static bool hadGateway = true;
@@ -206,10 +206,16 @@
                     };
 
                     #region 鏁版嵁鏇存柊鎺ㄩ�佷富棰�
-                    //appHomeRefresh锛氫綇瀹呮暟鎹埛鏂伴�氱煡
+                    //appHomeRefresh锛氫綇瀹呮暟鎹埛鏂伴�氱煡--鏉ㄦ稕
                     var appHomeRefresh = new MqttTopicFilter()
                     {
                         Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/appHomeRefresh/up",
+                        QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
+                    };
+                    //浣忓畢娑堟伅鍙樻洿鎺ㄩ��--璞嗚眴
+                    var residenceChange = new MqttTopicFilter()
+                    {
+                        Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/appDeviceRefresh/up",
                         QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
                     };
                     //appRoomRefresh锛氭埧闂存暟鎹埛鏂伴�氱煡
@@ -221,7 +227,7 @@
                     //appDeviceRefresh锛氳澶囨暟鎹埛鏂伴�氱煡
                     var appDeviceRefresh = new MqttTopicFilter()
                     {
-                        Topic = $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/appDeviceRefresh/up",
+                        Topic = $"/user/{MqttInfoConfig.Current.HomeGatewayInfo.gatewayId}/app/thing/event/appHomeRefresh/up",
                         QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce
                     };
                     //涓�绔彛瀵嗛挜鏇存柊閫氱煡
@@ -237,7 +243,7 @@
                     Utlis.WriteLine("寮�濮嬭闃咃紒");
                     var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] {
                         pirStatus,pirStudy,
-                        appDeviceRefresh,appHomeRefresh,appRoomRefresh,
+                        appDeviceRefresh,appHomeRefresh,appRoomRefresh,residenceChange,
                         topicFilterPush2, topicAlinkStatus ,mqttkeyChange});
                     if (result.Items[0].ResultCode == MQTTnet.Client.Subscribing.MqttClientSubscribeResultCode.GrantedQoS0)
                     {
@@ -295,7 +301,7 @@
                             try
                             {
                                 var topic = e.ApplicationMessage.Topic;
-                                //MainPage.Log($"鏀跺埌mqtt涓婚:{topic}");
+                                MainPage.Log($"鏀跺埌mqtt涓婚:{topic}");
                                 //涓�绔彛涓婚澶勭悊
                                 if (DB_ResidenceData.Instance.GatewayType == 0 && !DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
                                 {
@@ -322,7 +328,7 @@
                                 }
 
                                 //涓�浜涚壒娈婄殑涓婚澶勭悊(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣� true:鎵ц浜嗙壒娈婂鐞� false:娌℃湁鎵ц鐗规畩澶勭悊)
-                                Stan.HdlCloudReceiveLogic.Current.CloudOverallMsgReceiveEx(topic, e.ApplicationMessage.Payload, mqttEncryptKey, tuyaEncryptKey);
+                                Stan.HdlCloudReceiveLogic.Current.CloudOverallMsgReceiveEx(topic, e.ApplicationMessage.Payload, DB_ResidenceData.Instance.HomeGateway.aesKey, tuyaEncryptKey);
 
                                 if (topic == $"/BusGateWayToClient/{UserInfo.Current.ID}" + PushNotifySqueeze)
                                 {
@@ -346,7 +352,8 @@
                                 }
                                 #region 鏁版嵁鏇存柊鎺ㄩ�佷富棰�
                                 //appHomeRefresh锛氫綇瀹呮暟鎹埛鏂伴�氱煡
-                                else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/appHomeRefresh/up")
+                                else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/appHomeRefresh/up"
+                                        || topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/event/appDeviceRefresh/up")
                                 {
                                     MainPage.Log("浣忓畢鏁版嵁鍒锋柊閫氱煡");
                                     new HttpServerRequest().GetHomePager();
@@ -425,10 +432,7 @@
                                 {
                                     var pm = new HttpServerRequest();
                                     pm.GetHomeGatewayList();
-                                    MainPage.Log($"缃戝叧瀵嗛挜鍙樻洿");
-                                    MainPage.Log($"鏃у瘑閽ワ細{mqttEncryptKey}");
-                                    mqttEncryptKey = MqttInfoConfig.Current.HomeGatewayInfo.aesKey;
-                                    MainPage.Log($"鏂板瘑閽ワ細{mqttEncryptKey}");
+                                    MainPage.Log($"缃戝叧瀵嗛挜鍙樻洿.鏂板瘑閽ワ細{DB_ResidenceData.Instance.HomeGateway.aesKey}");
                                 }
 
                                 #endregion
@@ -447,9 +451,9 @@
                                     //bus鏁版嵁瑙f瀽
                                     var packet = new Packet();
 
-                                    if (!string.IsNullOrEmpty(mqttEncryptKey))
+                                    if (!string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.aesKey))
                                     {
-                                        packet.Bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, mqttEncryptKey);
+                                        packet.Bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, DB_ResidenceData.Instance.HomeGateway.aesKey);
                                     }
                                     else
                                     {
@@ -485,6 +489,25 @@
                     #endregion
 
                     //(4)===========寮�濮嬭繛鎺ヨ繃绋�==========
+
+                    ////涓�绔彛姣忔閮借鍒锋柊瀵嗛挜
+                    //if (DB_ResidenceData.Instance.HomeGateway != null && DB_ResidenceData.Instance.HomeGateway.gatewayType == "BUSUDPGATEWAY") {
+                    //    var pm = new HttpServerRequest();
+                    //    var result = pm.GetHomeGatewayList();
+                    //    if(result == StateCode.SUCCESS)
+                    //    {
+                    //        MainPage.Log($"鍒锋柊涓�绔彛瀵嗛挜");
+                    //        MainPage.Log($"鏃у瘑閽ワ細{mqttEncryptKey}");
+                    //        mqttEncryptKey = MqttInfoConfig.Current.HomeGatewayInfo.aesKey;
+                    //        MainPage.Log($"鏂板瘑閽ワ細{mqttEncryptKey}");
+                    //    }else
+                    //    {
+                    //        return;
+                    //    }
+                    //}
+                    
+
+
                     //涔嬪墠宸茬粡鑾峰彇鍙傛暟鎴愬姛杩�
                     if (MqttInfoConfig.Current.IfGetMqttInfoSuccess)
                     {
@@ -600,7 +623,7 @@
 
 
 
-                    mqttEncryptKey = MqttInfoConfig.Current.HomeGatewayInfo.aesKey;
+                    //mqttEncryptKey = MqttInfoConfig.Current.HomeGatewayInfo.aesKey;
                     //瑙e瘑瀵嗛挜瑙勫垯锛氬凡鐜版湁鐨勪綇瀹匢D涓哄熀鍑�,浠庡彸杈逛竴涓�鑾峰彇鍊�,鏈�鍚庡鏋滀笉澶�16浣�,鍒欏線鍙宠ˉ闆�
                     string aesKey = string.Empty;
                     for (int i = DB_ResidenceData.Instance.CurrentRegion.id.Length - 1; i >= 0; i--)
@@ -776,9 +799,9 @@
                 {
                     case 0:
                         topicName = $"/ClientToBusGateWay/{MqttInfoConfig.Current.HomeGatewayInfo.gatewayId}/Common/ON";
-                        if (!string.IsNullOrEmpty(mqttEncryptKey))
+                        if (!string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.aesKey))
                         {
-                            message = Securitys.EncryptionService.AesEncryptPayload(message, mqttEncryptKey);
+                            message = Securitys.EncryptionService.AesEncryptPayload(message, DB_ResidenceData.Instance.HomeGateway.aesKey);
                         }
                         await RemoteMqttClient.PublishAsync(new MqttApplicationMessage { Topic = topicName, Payload = message, Retain = false, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce });
                         break;
diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs
index c1a0d9e..c32ca0c 100644
--- a/HDL_ON/DAL/Server/HttpServerRequest.cs
+++ b/HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -727,6 +727,24 @@
             return result != null && result.Code == StateCode.SUCCESS;
         }
 
+        /// <summary>
+        /// 绠$悊鍛樻潈闄愯縼绉�
+        /// </summary>
+        /// <param name="i_childAccountId">鎴愬憳璐﹀彿id</param>
+        /// <returns></returns>
+        public bool AdminAuthorityMigration(string i_childAccountId)
+        {
+            var pra2 = new
+            {
+                homeId = DB_ResidenceData.Instance.CurrentRegion.id,
+                childAccountId = i_childAccountId
+            };
+            var requestJson = HttpUtil.GetSignRequestJson(pra2);
+            var result = HttpUtil.RequestHttpsPost(NewAPI.API_Post_AdminAuthorityMigration, requestJson);
+
+            return result != null && result.Code == StateCode.SUCCESS;
+        }
+
         #region 鏂版暟鎹垎浜�
         /// <summary>
         /// 娣诲姞鍒嗕韩
@@ -1045,7 +1063,8 @@
             var requestJson = HttpUtil.GetSignRequestJson(new GetMessageListObj()
             {
                 pushId = OnAppConfig.Instance.PushId,
-                pushType = pushType
+                pushType = pushType,
+                homeId = DB_ResidenceData.Instance.CurrentRegion.id,
             });
             return HttpUtil.RequestHttpsPost(NewAPI.API_POST_PushSerivce_Getpushmessagelist, requestJson);
         }
@@ -1940,7 +1959,7 @@
             d.Add("actions", actionObjs);
 
             var requestJson = HttpUtil.GetSignRequestJson(d);
-            MainPage.Log($"{requestJson}");
+            MainPage.Log($"api鍔熻兘鎺у埗锛歿requestJson}");
             return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_ControlDevice, requestJson);
         }
         /// <summary>
@@ -2462,7 +2481,7 @@
 
         #region 鈻� 鍙瀵硅_________________________
         /// <summary>
-        /// 妫�鏌ヤ綇瀹呮槸鍚︾粦瀹氫赴鏋楋紝骞惰幏鍙栭棬鍙f満鍒楄〃
+        /// 妫�鏌ヤ綇瀹呮槸鍚︾粦瀹氫赴鏋�
         /// </summary>
         /// <returns></returns>
         public ResponsePackNew CheckFlVideo()
diff --git a/HDL_ON/DAL/Server/HttpUtil.cs b/HDL_ON/DAL/Server/HttpUtil.cs
index 75c9b97..b271fdb 100644
--- a/HDL_ON/DAL/Server/HttpUtil.cs
+++ b/HDL_ON/DAL/Server/HttpUtil.cs
@@ -18,8 +18,8 @@
         /// 鍏叡鍩熷悕灏辫繎瑙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>
@@ -163,10 +163,6 @@
                 string requestFullUrl = urlHead + apiPath;
 
 
-                ////**************娴嬭瘯**************
-                //string requestFullUrl = GlobalRequestHttpsHost + apiPath;
-                ////**************娴嬭瘯**************
-
                 RestClient client = new RestClient(requestFullUrl);
 
                 RestRequest request = new RestRequest(method);
@@ -284,7 +280,7 @@
 
 
         /// <summary>
-        /// 鍒锋柊Token
+        /// 鍒锋柊  Token
         /// </summary>
         /// <returns></returns>
         static bool RefreshToken()
@@ -333,10 +329,6 @@
                     urlHead = OnAppConfig.Instance.RequestHttpsHost;
                 }
                 string requestFullUrl = urlHead + apiPath;
-
-                ////**************娴嬭瘯**************
-                //string requestFullUrl = GlobalRequestHttpsHost + apiPath;
-                ////**************娴嬭瘯**************
 
                 RestClient client = new RestClient(requestFullUrl);
                 RestRequest request = new RestRequest(Method.POST);
diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs
index 07179a1..bd27310 100644
--- a/HDL_ON/DAL/Server/NewAPI.cs
+++ b/HDL_ON/DAL/Server/NewAPI.cs
@@ -115,6 +115,10 @@
         /// 杩囨埛
         /// </summary>
         public const string API_Post_TransferResidence = "/home-wisdom/app/home/transfer";
+        /// <summary>
+        /// 绠$悊鍛樻潈闄愯縼绉�
+        /// </summary>
+        public const string API_Post_AdminAuthorityMigration = "/home-wisdom/app/home/ownerConvert";
 
         #endregion
 
@@ -147,7 +151,7 @@
         /// 涓嬭浇璐﹀彿澶村儚
         /// </summary>
         public const string API_POST_DownloadHeadImage = "/home-wisdom/app/head/portrait/downWithAccount";
-        
+
         #region 鏁版嵁鍒嗕韩
         /// <summary>
         /// 鍒嗕韩鎸囧畾鏂囦欢缁欐寚瀹氭垚鍛�
@@ -306,14 +310,14 @@
         /// <summary>
         /// 妫�娴嬫洿鏂�,鏄惁闇�瑕佸己鍒舵洿鏂�
         /// </summary>
-        public const string API_POST_CheckAppVersion= "/smart-footstone/app/appVersion/check";
+        public const string API_POST_CheckAppVersion = "/smart-footstone/app/appVersion/check";
         ///// <summary>
         ///// 鏌ヨAPP鏈�鏂扮増鏈�
         ///// </summary>
         //public const string API_POST_GetAppVersion = "/smart-footstone/app/getAppVersion";
         #endregion
 
-        
+
 
         #region 鈻�  -- 鎴块棿鍦烘櫙鑳屾櫙鍥剧墖涓婁紶涓嬭浇鎺ュ彛___________________________
         /// <summary>
@@ -344,7 +348,7 @@
         /// 鑾峰彇璁惧璇︽儏
         /// </summary>
         public const string Api_Post_GetDevcieInfoList = "/home-wisdom/app/device/info";
-    
+
         /// <summary>
         /// 鍒锋柊璁惧鐘�
         /// </summary>
@@ -596,7 +600,7 @@
         /// 娌充笢鑾峰彇钀ょ煶浜戝瓙璐﹀彿token鐨勬帴鍙�
         /// </summary>
         public const string API_POST_EZ_GetChildToken = "/home-wisdom/platform/childToken";
-       
+
 
         #endregion
 
@@ -616,7 +620,7 @@
         /// <summary>
         /// 寮�閿佹垚鍔�
         /// </summary>
-        public const string API_POST_FL_Unlock= "/home-wisdom/app/fl/vi/unlock";
+        public const string API_POST_FL_Unlock = "/home-wisdom/app/fl/vi/unlock";
         /// <summary>
         /// 閫氳瘽瑙嗛鎴浘涓婁紶
         /// </summary>
@@ -628,7 +632,8 @@
         /// <summary>
         /// 鑾峰彇閫氳瘽璁板綍
         /// </summary>
-        public const string API_POST_FL_GetCallList = "/home-wisdom/app/fl/vi/list";
+        //public const string API_POST_FL_GetCallList = "/home-wisdom/app/fl/vi/list";
+        public const string API_POST_FL_GetCallList = "/home-wisdom/platform/imou/listCallRecords";
         /// <summary>
         /// 鍒犻櫎閫氳瘽璁板綍
         /// </summary>
@@ -643,6 +648,23 @@
         public const string API_POST_FL_QRcode = "http://112.74.164.111:180/api.php/Device/setdynamicpwd";
         #endregion
 
+
+        #region 鍙瀵硅鏍囧噯閫氱敤鎺ュ彛
+        /// <summary>
+        /// 鑾峰彇鍙瀵硅璁惧鍒楄〃锛堟墍鏈夊鎺ュ彲瑙嗗璁查兘鍖呭惈涓�璧凤級
+        /// </summary>
+        public const string API_POST_VideoDeviceList = "/home-wisdom/platform/imou/listVisualSpeaks";
+        /// <summary>
+        /// 杩滅▼寮�闂�
+        /// </summary>
+        public const string API_POST_VideoDevice_OpenDoorbell = "/home-wisdom/platform/imou/openDoorbell";
+        /// <summary>
+        /// 鏇存敼閫氳瘽鐘舵��
+        /// </summary>
+        public const string API_POST_VideoDevice_UpdateCallStatus = "/home-wisdom/platform/imou/updateCallStatus";
+        #endregion
+
+
         #region  鈻�  -- 闂ㄩ攣鐩稿叧鎺ュ彛_______________________________
 
         /// <summary>
diff --git a/HDL_ON/DAL/Server/NewApiRes.cs b/HDL_ON/DAL/Server/NewApiRes.cs
index 10f6844..4d5cf58 100644
--- a/HDL_ON/DAL/Server/NewApiRes.cs
+++ b/HDL_ON/DAL/Server/NewApiRes.cs
@@ -1419,6 +1419,10 @@
     public class JPushMessageInfo
     {
         /// <summary>
+        /// 浣忓畢ID
+        /// </summary>
+        public string HomeId;
+        /// <summary>
         /// 鎺ㄩ�佹爣棰�
         /// </summary>
         public string Title;
@@ -1462,6 +1466,10 @@
     public class ExpandData
     {
         /// <summary>
+        /// 浣忓畢ID
+        /// </summary>
+        public string homeId;
+        /// <summary>
         /// 闄勫姞鍐呭
         /// </summary>
         public string expantContent;
diff --git a/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs b/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
index 9758f95..b6ad254 100644
--- a/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
+++ b/HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
@@ -3,9 +3,11 @@
 using HDL_ON.DAL.Server;
 using System.Threading;
 using System.Collections.Generic;
+using HDL_ON.UI.UI2.PersonalCenter.PirDevice;
 
 #if __IOS__
 using Shared.IOS.ESVideoOnSDK;
+using Shared.IOS.LCVideoOnSDK;
 using UIKit;
 using Foundation;
 #else
@@ -56,77 +58,151 @@
         /// <summary>
         /// 鐩戞帶椤甸潰
         /// </summary>
-        /// <param name="mESVideoInfo">涓版灄鐩戣鎵�闇�鐩稿叧鍙傛暟</param>
-        public void ShowESVideoMonitor(ESVideoInfo mESVideoInfo)
+        /// <param name="mESVideoInfo"></param>
+        public void ShowESVideoMonitor(ESVideoInfo mESVideoInfo, string interphoneType)
         {
-#if __IOS__
-             int roomID = 0;
+            this.esVideoInfo = mESVideoInfo;
+            int roomID = 0;
             int.TryParse(mESVideoInfo.roomno, out roomID);
-            ESOnMonitorViewController vc = new ESOnMonitorViewController();
-            vc.MESVideoID = mESVideoInfo.ESVideoUUID;
-            vc.MESRoomID =roomID;
-            vc.DeviceName = mESVideoInfo.DeviceName;
-            //vc.RoomName = mESVideoInfo.RoomName;
-            //vc.MESCallDelegate = new OnESCallDelegate(this);
-            mOnESCallDelegate = new OnESCallDelegate(this);
-            vc.MESCallDelegate = mOnESCallDelegate;
-            Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
-#else
 
-            Intent intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.VideoActivity));
+#if __IOS__
+            if (interphoneType == "IMOUVISIAL")
+            {
+                //涔愭鍙瀵硅
+                //1.鍒濆鍖朙COpenSDK_Api
+                LCApiKit.SharedInstance().InitSDKOpenApi(mESVideoInfo.Lc_AccessToken);
+                LCApiKit.SharedInstance().CurrentDevicePlayToken = mESVideoInfo.Lc_PlayToken;
+                LCApiKit.SharedInstance().CurrentDeviceId = mESVideoInfo.Lc_DeviceId;
+                LCApiKit.SharedInstance().CurrentDeviceName = mESVideoInfo.DeviceName;
+                LCApiKit.SharedInstance().CurrentPsk = mESVideoInfo.Lc_DeviceId;
+                //2.璋冩暣鐩戣椤甸潰
+                LCOnMonitorViewController vc = new LCOnMonitorViewController();
+                mOnLCCallDelegate = new OnLCCallDelegate(this);
+                vc.MLCCallDelegate = mOnLCCallDelegate;
+                //vc.MLCCallDelegate = new OnLCCallDelegate(this);
+                Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
+            }
+            else
+            {
+
+                ESOnMonitorViewController vc = new ESOnMonitorViewController();
+                vc.MESVideoID = mESVideoInfo.ESVideoUUID;
+                vc.MESRoomID = roomID;
+                vc.DeviceName = mESVideoInfo.DeviceName;
+                //vc.RoomName = mESVideoInfo.RoomName;
+                //vc.MESCallDelegate = new OnESCallDelegate(this);
+                Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
+            }
+#else
+            Intent intent = null;
+            if (interphoneType == "IMOUVISIAL")
+            {
+                intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.LeChengVideoActivity));
+            }
+            else
+            {
+                intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.VideoActivity));
+            }
+
             intent.PutExtra("ESVideoUUID", mESVideoInfo.ESVideoUUID);
             intent.PutExtra("uuid", mESVideoInfo.uuid);
             intent.PutExtra("DeviceName", mESVideoInfo.DeviceName);
             intent.PutExtra("cmtID", mESVideoInfo.cmtID);
             intent.PutExtra("roomno", mESVideoInfo.roomno);
             intent.PutExtra("unitno", mESVideoInfo.unitno);
-            //intent.PutExtra("HomeID", mESVideoInfo.HomeID);
+            intent.PutExtra("HomeID", PirSend.HomeId);
             intent.PutExtra("callId", mESVideoInfo.callId);
             intent.PutExtra("Type", 0);
+
+            //=========涔愭==========
+            intent.PutExtra("AccessToken", mESVideoInfo.Lc_AccessToken);
+            intent.PutExtra("DeviceId", mESVideoInfo.Lc_DeviceId);
+            intent.PutExtra("Location", OnAppConfig.Instance.RequestHttpsHost.Contains("China") ? 0 : 1);//濡傛灉鍩熷悕鍖呭惈china锛屽垯鏄浗鍐呰处鍙�);
+            intent.PutExtra("PlayToken", mESVideoInfo.Lc_PlayToken);
+            intent.PutExtra("Psk", mESVideoInfo.Lc_Psk);
+
             Shared.Application.Activity.StartActivity(intent);
 
 #endif
         }
-
-
 
         /// <summary>
         /// 琚懠鍙〉闈�
         /// </summary>
-        /// <param name="mESVideoInfo">涓版灄鍛煎彨鍔熻兘鎵�闇�鐩稿叧鍙傛暟</param>
-        public void ShowESvideoVideoIntercom(ESVideoInfo mESVideoInfo)
+        /// <param name="mESVideoInfo"></param>
+        public void ShowESvideoVideoIntercom(ESVideoInfo mESVideoInfo, string interphoneType)
         {
             this.esVideoInfo = mESVideoInfo;
-#if __IOS__
             int roomID = 0;
             int.TryParse(mESVideoInfo.roomno, out roomID);
-            ESOnIntercomViewController vc = new ESOnIntercomViewController();
-            vc.MESVideoID = mESVideoInfo.ESVideoUUID;
-            vc.MESRoomID = roomID;
-            vc.DeviceName = mESVideoInfo.DeviceName;
-            //vc.RoomName = mESVideoInfo.RoomName;
-            //vc.MESCallDelegate = new OnESCallDelegate(this);
-            mOnESCallDelegate = new OnESCallDelegate(this);
-            vc.MESCallDelegate = mOnESCallDelegate;
-            Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
-#else
+#if __IOS__
+            if (interphoneType == "IMOUVISIAL")
+            {
+                //涔愭鍙瀵硅
+                //1.鍒濆鍖朙COpenSDK_Api
+                LCApiKit.SharedInstance().InitSDKOpenApi(mESVideoInfo.Lc_AccessToken);
+                //2021-05-18 鐩墠鎺ㄩ�佺殑PlayToken;鏈夐棶棰樹細瀵艰嚧SDK宕╂簝锛屾殏鏃朵笉浼�
+                //LCApiKit.SharedInstance().CurrentDevicePlayToken = mESVideoInfo.Lc_PlayToken;
+                LCApiKit.SharedInstance().CurrentDeviceId = mESVideoInfo.Lc_DeviceId;
+                LCApiKit.SharedInstance().CurrentDeviceName = mESVideoInfo.DeviceName;
+                LCApiKit.SharedInstance().CurrentPsk = mESVideoInfo.Lc_DeviceId;
+                //2.璺宠浆涔愭鍛煎彨椤甸潰
+                LCOnIntercomViewController vc = new LCOnIntercomViewController();
+                mOnLCCallDelegate = new OnLCCallDelegate(this);
+                vc.MLCCallDelegate = mOnLCCallDelegate;
+                //vc.MLCCallDelegate = new OnLCCallDelegate(this);
+                Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
+            }
+            else
+            {
 
-            Intent intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.VideoActivity));
+                ESOnIntercomViewController vc = new ESOnIntercomViewController();
+                vc.MESVideoID = mESVideoInfo.ESVideoUUID;
+                vc.MESRoomID = roomID;
+                vc.DeviceName = mESVideoInfo.DeviceName;
+                //vc.RoomName = mESVideoInfo.RoomName;
+                //vc.MESCallDelegate = new OnESCallDelegate(this);
+                mOnESCallDelegate = new OnESCallDelegate(this);
+                vc.MESCallDelegate = mOnESCallDelegate;
+                Shared.Application.currentVC.NavigationController.PushViewController(vc, true);
+            }
+#else
+            #region
+
+            Intent intent = null;
+            if (interphoneType == "IMOUVISIAL")
+            {
+                intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.LeChengVideoActivity));
+            }
+            else
+            {
+                intent = new Intent(Shared.Application.Activity, typeof(HDL_ON_Android.VideoActivity));
+            }
+
             intent.PutExtra("ESVideoUUID", mESVideoInfo.ESVideoUUID);
             intent.PutExtra("uuid", mESVideoInfo.uuid);
             intent.PutExtra("DeviceName", mESVideoInfo.DeviceName);
             intent.PutExtra("cmtID", mESVideoInfo.cmtID);
             intent.PutExtra("roomno", mESVideoInfo.roomno);
             intent.PutExtra("unitno", mESVideoInfo.unitno);
-            //intent.PutExtra("HomeID", mESVideoInfo.HomeID);
+            intent.PutExtra("HomeID", PirSend.HomeId);
             intent.PutExtra("callId", mESVideoInfo.callId);
             intent.PutExtra("Type", 1);
+
+            //=========涔愭==========
+            intent.PutExtra("AccessToken", mESVideoInfo.Lc_AccessToken);
+            intent.PutExtra("DeviceId", mESVideoInfo.Lc_DeviceId);
+            intent.PutExtra("Location", OnAppConfig.Instance.RequestHttpsHost.Contains("China") ? 0 : 1);//濡傛灉鍩熷悕鍖呭惈china锛屽垯鏄浗鍐呰处鍙�);
+            intent.PutExtra("PlayToken", mESVideoInfo.Lc_PlayToken);
+            intent.PutExtra("Psk", mESVideoInfo.Lc_Psk);
+
             Shared.Application.Activity.StartActivity(intent);
 
+            #endregion
 #endif
         }
 
-        #region 鍔ㄤ綔鍥炶皟锛屾彁浜よ褰曞埌浜戠
+        #region 鍔ㄤ綔鍥炶皟鍜屽師鐢熶氦浜掞紝鎻愪氦璁板綍鍒颁簯绔�
 
         /// <summary>
         /// 鍒ゆ柇callId鏄惁涓虹┖
@@ -188,7 +264,7 @@
                 }
                 else
                 {
-                    Utlis.WriteLine("POST 鎸傛柇澶辫触 code: "+ revertObj.Code);
+                    Utlis.WriteLine("POST 鎸傛柇澶辫触 code: " + revertObj.Code);
                 }
 
             })
@@ -262,6 +338,7 @@
         }
 
         DateTime UnlockDateTime = DateTime.MinValue;
+
         /// <summary>
         /// 寮�閿佹垚鍔�
         /// </summary>
@@ -272,9 +349,9 @@
             if (CheckESVideoInfoIsNullOrEmpty()) return;
 
             //3S鍐呬笉鍏佽瑙﹀彂绗簩娆�
-            if(UnlockDateTime.AddSeconds(3) > DateTime.Now)
+            if (UnlockDateTime.AddSeconds(3) > DateTime.Now)
             {
-               
+
                 Utlis.WriteLine("3S鍐呬笉鍏佽瑙﹀彂绗簩娆�");
                 //涓版灄SDKbug锛屽懠鍙殑鏃跺�欏紑閿佹垚鍔熶細鏈�2娆″洖璋冿紝
                 return;
@@ -302,6 +379,77 @@
             { IsBackground = false }.Start();
         }
 
+        #endregion
+
+        #region 鐜嬭耽鏂版帴鍚拰寮�閿佹帴鍙�
+        /// <summary>
+        /// 寮�閿�
+        /// </summary>
+        void HDLUnlockAction()
+        {
+            //Utlis.WriteLine("UnlockAction");
+
+            if (esVideoInfo == null) return;
+
+            new Thread(() =>
+            {
+                Dictionary<string, object> dic = new Dictionary<string, object>();
+                dic.Add("deviceId", esVideoInfo.Lc_DeviceId);//璁惧id
+                dic.Add("callId", esVideoInfo.callId);
+                var requestJson = HttpUtil.GetSignRequestJson(dic);
+                var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_VideoDevice_OpenDoorbell, requestJson);
+                if (revertObj.Code == StateCode.SUCCESS)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+#if __IOS__
+                        //鍜屽師鐢熺洃鎺х晫闈氦浜掋�佸彂閫佸紑閿佹垚鍔熼�氱煡
+                        NSNotificationCenter.DefaultCenter.PostNotificationName("lcCallDelegateOpenDoorSuccess", null);
+#endif
+                    });
+                }
+                else
+                {
+                    Utlis.WriteLine("POST 寮�閿佸け璐� code: " + revertObj.Code);
+                }
+
+            })
+            { IsBackground = false }.Start();
+        }
+
+        /// <summary>
+        /// 鏇存敼閫氳瘽鐘舵��
+        /// </summary>
+        void HDLUpdateCallStatus(CallStatusType callStatusType, InterphoneType interphoneType, int callDuration = 0) {
+
+            if (CheckESVideoInfoIsNullOrEmpty()) return;
+
+            new Thread(() =>
+            {
+                Dictionary<string, object> dic = new Dictionary<string, object>();
+                dic.Add("callId", esVideoInfo.callId);//鍛煎彨id
+                dic.Add("callStatus", callStatusType.ToString());//鍙敤鍊�:MISSED,RECEIVED,REJECT
+                dic.Add("interphoneTypeEnum", interphoneType.ToString());//鍙敤鍊�:FLVI,IMOUVISIAL
+                if (callStatusType == CallStatusType.RECEIVED && callDuration > 0)
+                {
+                    dic.Add("callDuration", callDuration);//閫氳瘽鏃堕暱锛堢锛�
+                }
+
+                var requestJson = HttpUtil.GetSignRequestJson(dic);
+                var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_VideoDevice_UpdateCallStatus, requestJson);
+                if (revertObj.Code == StateCode.SUCCESS)
+                {
+
+                }
+                else
+                {
+                    Utlis.WriteLine("POST 鏇存柊鐘舵�佸け璐� code: " + revertObj.Code);
+                }
+
+            })
+            { IsBackground = false }.Start();
+
+        }
         #endregion
 
 #if __IOS__
@@ -379,7 +527,77 @@
 
         }
 
-#endregion
+        #endregion
+
+        #region OnLCCallDelegate
+        /////// <summary>
+        /////// OnLCCallDelegate 缁ф壙鍝嶅簲浜嬩欢
+        /////// </summary>
+        OnLCCallDelegate mOnLCCallDelegate;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public class OnLCCallDelegate : LCCallDelegate
+        {
+
+            [Weak] ESOnVideo _ESOnVideo;
+
+            public OnLCCallDelegate(ESOnVideo mESOnVideo)
+            {
+                _ESOnVideo = mESOnVideo;
+            }
+
+            /// <summary>
+            /// 鎺ュ惉
+            /// </summary>
+            public override void OnAnswerAction()
+            {
+                _ESOnVideo.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.IMOUVISIAL);
+            }
+
+            /// <summary>
+            /// 鎸傛柇
+            /// </summary>
+            /// <param name="callDuration"></param>
+            public override void OnHangUpAction(int callDuration)
+            {
+                _ESOnVideo.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.IMOUVISIAL, callDuration);
+            }
+
+            /// <summary>
+            /// 鎷掓帴
+            /// </summary>
+            public override void OnRejectCallAction()
+            {
+                _ESOnVideo.HDLUpdateCallStatus(CallStatusType.REJECT, InterphoneType.IMOUVISIAL);
+            }
+
+            /// <summary>
+            /// 鎴浘鎴愬姛
+            /// </summary>
+            /// <param name="image"></param>
+            public override void OnScreenshotSuccessfulAction(UIImage image)
+            {
+                ////NSData imageData = UIImagePNGRepresentation(image); UIImage
+                //NSData imageData = image.AsPNG();
+                //byte[] dataBytes = new byte[imageData.Length];
+                //System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, dataBytes, 0, Convert.ToInt32(imageData.Length));
+                ////image.g
+                ////_ESOnVideo.ScreenshotSuccessfulAction(dataBytes);
+            }
+
+            /// <summary>
+            /// 寮�閿佹垚鍔�
+            /// </summary>
+            public override void OnUnlockAction()
+            {
+                _ESOnVideo.HDLUnlockAction();
+            }
+
+        }
+
+        #endregion
 #endif
 
         /// <summary>
@@ -392,23 +610,23 @@
             {
                 DeviceName = "瀹ゅ鏈�88",
                 ESVideoUUID = "JJY000019VPLLF",
-                 
+
             };
             if (isMonitor)
             {
-                ShowESVideoMonitor(eSVideoInfo);
+                ShowESVideoMonitor(eSVideoInfo, "");
             }
             else
             {
                 eSVideoInfo.callId = "88888";
-                ShowESvideoVideoIntercom(eSVideoInfo);
+                ShowESvideoVideoIntercom(eSVideoInfo, "");
             }
 
         }
     }
 
     /// <summary>
-    /// 涓版灄鐩戣鍜屽懠鍙姛鑳芥墍闇�鐩稿叧鍙傛暟
+    /// 鍙瀵硅鍙傛暟瀵硅薄锛堜粎鍦ㄦ渶鍚庝竴姝ヨ烦杞埌activity鏃舵墠璋冪敤,涓轰簡鍋氬吋瀹硅繖閲岄兘鏁版嵁鏈夌偣涔憋紝浠ュ悗鏈夋椂闂村啀鐞嗛『鎬濊矾浼樺寲锛�
     /// </summary>
     public class ESVideoInfo
     {
@@ -447,9 +665,68 @@
         /// </summary>
         public string callId = string.Empty;
 
+
+        //========================澶у崕==========================
+
+        /// <summary>
+        /// 璐﹀彿accessToken
+        /// </summary>
+        public string Lc_AccessToken = string.Empty;
+
+        /// <summary>
+        /// 璁惧搴忓垪鍙凤紝閫氳蹇呰瀛楁
+        /// </summary>
+        public string Lc_DeviceId = string.Empty;
+
+        /// <summary>
+        /// 澶囨敞锛燂紵锛�
+        /// </summary>
+        public string Lc_Psk = string.Empty;
+
+        /// <summary>
+        /// 棰勮鐢婚潰蹇呴』浣跨敤
+        /// </summary>
+        public string Lc_PlayToken = string.Empty;
+
+        /// <summary>
+        /// 璐﹀彿鏍囪锛�0鍥藉唴锛�1鍥藉锛涘浗鍐呭浗澶栬闂兘鍦板潃涓嶄竴鏍�
+        /// </summary>
+        public int Lc_Location = 0;
+
     }
 
-    
 
+    /// <summary>
+    /// 閫氳瘽鐘舵�佺被鍨�
+    /// </summary>
+    public enum CallStatusType
+    {
+        /// <summary>
+        /// 鏈帴
+        /// </summary>
+        MISSED,
+        /// <summary>
+        /// 宸叉帴鍚�
+        /// </summary>
+        RECEIVED,
+        /// <summary>
+        /// 鎷掓帴
+        /// </summary>
+        REJECT,
+    }
 
+    /// <summary>
+    /// 鍙瀵硅璁惧骞冲彴绫诲瀷
+    /// </summary>
+    public enum InterphoneType
+    {
+        /// <summary>
+        /// 涓版灄骞冲彴
+        /// </summary>
+        FLVI,
+        /// <summary>
+        /// 澶у崕鍙瀵硅骞冲彴
+        /// </summary>
+        IMOUVISIAL,
+    }
 }
diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index ff4d25b..b9e3102 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -281,6 +281,21 @@
                 return _trait_on_off;
             }
         }
+        /// <summary>
+        /// 鍔熻兘鐨勫睘鎬х姸鎬佸垪琛�
+        /// </summary>
+        public List<AttributesStatus> status = new List<AttributesStatus>();
+        /// <summary>
+        /// 閫氳繃鐘舵�佸垪琛ㄧ粍瑁呭睘鎬ч噷闈㈢殑鐘舵��
+        /// </summary>
+        public void AssembleStatus()
+        {
+            foreach (var sta in status)
+            {
+                SetAttrState(sta.key, sta.value);
+            }
+        }
+
 
         /// <summary>
         /// 浣跨敤娆℃暟
@@ -507,7 +522,25 @@
                             {
                                 attr.curValue = "off";
                             }
-                            else
+                            else if (attr.key == FunctionAttributeKey.Mode )
+                            {
+                                if (DB_ResidenceData.Instance.GatewayType == 0)
+                                {
+                                    attr.curValue = "0";
+                                }
+                                else
+                                {
+                                    if (SPK.AcSpkList().Contains(spk))
+                                    {
+                                        attr.curValue = "cool";
+                                    }
+                                    else if (SPK.FhSpkList().Contains(spk))
+                                    {
+                                        attr.curValue = "day";
+                                    }
+                                }
+                            }
+                            else 
                             {
                                 attr.curValue = "0";
                             }
@@ -516,6 +549,10 @@
                         {
                             double vv = 16;
                             Double.TryParse(attr.curValue.ToString(), out vv);
+                            if (vv == 0)
+                            {
+                                vv = 26;
+                            }
                             sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = Convert.ToInt32(vv).ToString() });
                         }
                         else
@@ -638,7 +675,7 @@
         public List<AttributesStatus> status = new List<AttributesStatus>();
     }
     /// <summary>
-    /// a鍗忚鎺у埗鍔ㄤ綔鏁版嵁
+    /// 鍔熻兘灞炴�х姸鎬�
     /// </summary>
     public class AttributesStatus
     {
@@ -690,6 +727,7 @@
         /// </summary>
         public object curValue = new object();
     }
+
     /// <summary>
     /// 鍔熻兘灞炴�ч敭鍚嶅垪琛�
     /// </summary>
@@ -751,6 +789,7 @@
         /// 绌鸿皟銆佸湴鐑�//app鑷姞
         /// </summary>
         public const string TempType = "temperature_type";
+
         /// <summary>
         /// 鏃堕棿鏍囪
         /// 鍦扮儹//app鑷姞
@@ -861,6 +900,10 @@
         /// 婀垮害
         /// </summary>
         public const string Humidity = "humidity";
+        /// <summary>
+        /// 娓╁害
+        /// </summary>
+        public const string Temperature = "temperature";
         /// <summary>
         /// 瀹ゅ唴娓╁害
         /// </summary>
@@ -1164,7 +1207,7 @@
         /// <summary>
         /// 瓒呭0娉紶鎰熷櫒
         /// </summary>
-        public const string SensoruUtrasonic = "sensor.ultrasonic";
+        public const string SensorUtrasonic = "sensor.ultrasonic";
         /// <summary>
         /// 锛堝共鎺ョ偣锛�
         /// </summary>
@@ -1174,26 +1217,22 @@
         /// </summary>
         public const string SenesorMegahealth = "sensor.megahealth";
         /// <summary>
-        /// 鐜妫�娴嬩紶鎰熷櫒
-        /// </summary>
-        public const string SenesorEnvironment = "sensor.environment";
-        /// <summary>
         /// 瀹夐槻浼犳劅鍣╯pk鍒楄〃
         /// </summary>
         /// <returns></returns>
         public static List<string> ArmSensorSpkList()
         {
             var spkList = new List<string>();
-            spkList.Add(SensorLight);
+            //spkList.Add(SensorLight);
             spkList.Add(SensorPir);
             spkList.Add(SensorDoorWindow);
             spkList.Add(SensorSmoke);
             spkList.Add(SensorWater);
-            spkList.Add(SensorGas);
-            spkList.Add(SensorShanLan);
-            spkList.Add(SensorDuiShe);
-            spkList.Add(SensoruUtrasonic);
-            spkList.Add(SensorDryContact);
+            //spkList.Add(SensorGas);
+            //spkList.Add(SensorShanLan);
+            //spkList.Add(SensorDuiShe);
+            //spkList.Add(SensoruUtrasonic);
+            //spkList.Add(SensorDryContact);
             spkList.Add(SenesorMegahealth);
             return spkList;
         }
@@ -1220,6 +1259,13 @@
         /// 婀垮害浼犳劅鍣�
         /// </summary>
         public const string SensorHumidity = "sensor.humidity";
+        /// <summary>
+        /// 鐜浼犳劅鍣�
+        /// 鐜妫�娴嬩紶鎰熷櫒
+        /// 鐗规畩绫籹pk
+        /// 璇pk鍔熻兘鏄幆澧冧紶鎰熷櫒鍔熻兘鐨勯泦鎴�
+        /// </summary>
+        public const string SensorEnvironment = "sensor.environment";
 
         /// <summary>
         /// 鐜浼犳劅鍣╯pk鍒楄〃
@@ -1233,6 +1279,7 @@
             spkList.Add(SensorCO2);
             spkList.Add(SensorTVOC);
             spkList.Add(SensorHumidity);
+            spkList.Add(SensorEnvironment);
             return spkList;
         }
         #endregion
@@ -1324,6 +1371,7 @@
             spkList.Add(TvIr);
             spkList.Add(TvXmIr);
             spkList.Add(ElectricFan);
+            spkList.Add(FanIr);
             spkList.Add(ClothesHanger);
             spkList.Add(IrLearn);
             spkList.Add(PjtIr);
@@ -1337,7 +1385,6 @@
 
 
         #endregion
-
 
         #region 璁惧绫�
         /// <summary>
@@ -1396,6 +1443,12 @@
         }
         #endregion
 
+        /// <summary>
+        /// 娌℃湁鐘舵�佹樉绀虹殑鍔熻兘spk鍒楄〃
+        /// </summary>
+        public static List<string> NotStatusSpkList = new List<string> {
+            ElectricTV, FanIr, TvIr, TvXmIr, StbIr, PjtIr, IrLearn
+        };
 
         /// <summary>
         /// 绗笁鏂瑰搧鐗屽垪琛�
diff --git a/HDL_ON/Entity/Function/Light.cs b/HDL_ON/Entity/Function/Light.cs
index c7546c7..bb19c2f 100644
--- a/HDL_ON/Entity/Function/Light.cs
+++ b/HDL_ON/Entity/Function/Light.cs
@@ -32,6 +32,30 @@
             return recolor;
         }
         /// <summary>
+        /// 鑾峰彇rgb棰滆壊鏁扮粍
+        /// </summary>
+        /// <param name="function"></param>
+        /// <returns></returns>
+        public byte[] GetRGBbytes(Function function)
+        {
+            var color = function.GetAttrState(FunctionAttributeKey.RGB).Split(",");
+
+            if (color.Length != 3)
+            {
+                color = new string[] { "100", "100", "100" };
+            }
+            byte redColor = 0;
+            byte greenColor = 0;
+            byte blueColor = 0;
+
+            byte.TryParse(color[0], out redColor);
+            byte.TryParse(color[1], out greenColor);
+            byte.TryParse(color[2], out blueColor);
+
+            return new byte[] { redColor, greenColor, blueColor };
+        }
+
+        /// <summary>
         /// 鑾峰彇rgb 鎺у埗瀛楃涓�
         /// </summary>
         /// <returns></returns>
@@ -68,6 +92,16 @@
             function.SetAttrState(FunctionAttributeKey.RGB, color[0] + "," + color[1] + "," + color[2]);
         }
 
+        /// <summary>
+        /// 璁剧疆鑹叉俯
+        /// </summary>
+        /// <param name="cct"></param>
+        /// <param name="function"></param>
+        public void SetCCT(byte[] cct,Function function)
+        {
+            function.SetAttrState(FunctionAttributeKey.CCT, cct[0] * 256 + cct[1]);
+        }
+
         #endregion
 
     }
diff --git a/HDL_ON/Entity/Function/Scene.cs b/HDL_ON/Entity/Function/Scene.cs
index f4bdd83..29a3503 100644
--- a/HDL_ON/Entity/Function/Scene.cs
+++ b/HDL_ON/Entity/Function/Scene.cs
@@ -87,7 +87,7 @@
         /// <summary>
         /// 鍒涘缓璇ュ満鏅殑鐢ㄦ埛ID
         /// </summary>
-        public string userId = "";
+        public string userId = UserInfo.Current.ID;
 
         ///// <summary>
         ///// 鍦烘櫙鑳屾櫙
@@ -445,7 +445,9 @@
                 if (sfs.key == FunctionAttributeKey.OnOff)
                 {
                     if (sfs.value == "off")
+                    {
                         return Language.StringByID(StringId.Close);
+                    }
                 }
             }
             sceneFunctionInfo += Language.StringByID(StringId.Open) + " ";
@@ -562,26 +564,31 @@
         /// 鑾峰彇鎸囧畾灞炴�х殑鏄剧ず鏂囨湰
         /// 涓嫳鏂囨樉绀�
         /// </summary>
-        public string GetValueText()
+        public string GetValueText(string temp = "")
         {
+            string catchString = value;
+            if(temp!= "")
+            {
+                catchString = temp;
+            }
             string text = "";
             switch (key)
             {
                 case FunctionAttributeKey.OnOff:
-                    text = value == "on" ? Language.StringByID(StringId.On) : Language.StringByID(StringId.OFF);
+                    text = catchString == "on" ? Language.StringByID(StringId.On) : Language.StringByID(StringId.OFF);
                     break;
                 case FunctionAttributeKey.SetTemp:
                 case FunctionAttributeKey.RoomTemp:
                 case FunctionAttributeKey.Brightness:
                 case FunctionAttributeKey.Percent:
-                    if (value == "")
+                    if (catchString == "")
                     {
-                        value = "0";
+                        catchString = "0";
                     }
-                    text = value;
+                    text = catchString;
                     break;
                 case FunctionAttributeKey.Mode:
-                    switch (value)
+                    switch (catchString)
                     {
                         //----绌鸿皟
                         case "auto":
@@ -600,6 +607,7 @@
                             text = Language.StringByID(StringId.AirSupply);
                             break;
                         //-----鍦扮儹
+                        // 1:鏅��,2:鐧藉ぉ,3:澶滄櫄,4:绂诲紑,5:鏃堕棿
                         case "day":
                             text = Language.StringByID(StringId.Day);
                             break;
@@ -618,7 +626,7 @@
                     }
                     break;
                 case FunctionAttributeKey.FanSpeed:
-                    switch (value)
+                    switch (catchString)
                     {
                         case "high":
                             text = Language.StringByID(StringId.HighWindSpeed);
diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs
index 62b1fee..0d84b83 100644
--- a/HDL_ON/Entity/FunctionList.cs
+++ b/HDL_ON/Entity/FunctionList.cs
@@ -101,6 +101,7 @@
             return Functions.FindAll((obj) => spkList.Contains(obj.spk));
         }
     
+      
         /// <summary>
         /// 绾㈠瀹濆垪琛�
         /// </summary>
@@ -127,7 +128,7 @@
         public List<Function> GetEnvirSensorsList()
         {
             var spkList = SPK.EnvironSpkList();
-            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
+            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
         }
         /// <summary>
         /// 瀹夐槻璁惧鍒楄〃
@@ -139,9 +140,10 @@
         }
 
         /// <summary>
-        /// 鍙瀵硅鍒楄〃
+        /// 鍙瀵硅鍒楄〃,褰撲负null鎴杝ize涓�0鍒欎笉鏄剧ず鍙瀵硅icon
         /// </summary>
-        public UI.UI2.FuntionControlView.Video.VideoClouds videoIntercom;
+        // public UI.UI2.FuntionControlView.Video.VideoClouds videoIntercom;
+        public List<UI.UI2.FuntionControlView.Video.Video> videoIntercom = new List<UI.UI2.FuntionControlView.Video.Video>();
 
         List<Function> _OtherBrandFunction;
         /// <summary>
@@ -199,23 +201,23 @@
                 //{
                 //    UI.Music.A31MusicModel.A31MusicModelList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<UI.Music.A31MusicModel>(functionDataString));
                 //}
-                if (checkRepeat == true)
-                {
-                    //妫�娴嬮噸澶�
-                    for (int i = 0; i < Functions.Count; i++)
-                    {
-                        if (Functions[i].deviceId == tempFunction.deviceId)
-                        {
-                            //鍏堢Щ闄ゆ帀鍐嶅姞
-                            Functions.RemoveAt(i);
-                            Functions.Add(tempFunction);
-                            return;
-                        }
-                    }
+                if (checkRepeat == true)
+                {
+                    //妫�娴嬮噸澶�
+                    for (int i = 0; i < Functions.Count; i++)
+                    {
+                        if (Functions[i].deviceId == tempFunction.deviceId)
+                        {
+                            //鍏堢Щ闄ゆ帀鍐嶅姞
+                            Functions.RemoveAt(i);
+                            Functions.Add(tempFunction);
+                            return;
+                        }
+                    }
                 }
                 Functions.Add(tempFunction);
             }
-            else if (filePath.StartsWith("SceneData_"))
+            if (filePath.StartsWith("SceneData_"))
             {
                 var sceneDataBytes = FileUtlis.Files.ReadFile(filePath);
                 var sceneDataString = System.Text.Encoding.UTF8.GetString(sceneDataBytes);
@@ -346,6 +348,7 @@
                 List.scenes.Remove(scene);
             }
         }
+
         /// <summary>
         /// 鍒犻櫎鏈湴鍔熻兘鍙婃枃浠�
         /// </summary>
@@ -463,6 +466,7 @@
             })
             { IsBackground = true }.Start();
         }
+
         #region 鍦烘櫙鐩稿叧
         /// <summary>
         /// 娣诲姞鍦烘櫙
@@ -474,11 +478,20 @@
             var revPack = pm.AddScene(scene);
             if (revPack.Code == StateCode.SUCCESS)
             {
-                var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString());
-                tempScene = sceneList.Find((obj) => obj.sid == scene.sid);
-                var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene));
-                FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd);
-                result = tempScene;
+                if (MainPage.NoLoginMode)
+                {
+                    var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(scene));
+                    FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd);
+                    result = scene;
+                }
+                else
+                {
+                    var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString());
+                    tempScene = sceneList.Find((obj) => obj.sid == scene.sid);
+                    var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene));
+                    FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd);
+                    result = tempScene;
+                }
             }
             else
             {
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index 4649930..357af0a 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -9,22 +9,9 @@
     <Import_RootNamespace>HDL_ON</Import_RootNamespace>
   </PropertyGroup>
   <ItemGroup>
-    <Compile Include="$(MSBuildThisFileDirectory)UI\BindingResidence\WellcomToHomeForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\MainPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\FileUtils.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\R.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Mqtt\MqttInfoConfig.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\HttpServerRequest.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\RegionInfoRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\ResponsePack.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\EmptyHttpReques.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\HttpServerRequestBase.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Room.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\Command.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\MyEnum.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\DB_ResidenceData.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Function.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\PublicAssmebly.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\BindingResidence\BindingResidencePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\BindingResidence\WellcomToHomeForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\CSS\CSS.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Common\CommonClass.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BottomControls\BottomDateSelectControl.cs" />
@@ -37,6 +24,9 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlBluetoothIOSLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlCheckLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlCommonLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\AdminMigrationMemberConfirmPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\AdminMigrationMemberListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\AdminMigrationResultPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\TransferingResidencePage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\TransferResidenceResultPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\DoorLock\DoorLockAlwaysOnManagerPage.cs" />
@@ -51,100 +41,28 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\UserPageBLL.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\UserPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\ClassificationPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\RoomPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionControlZoneBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionControlZone.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\RoomPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\ClassificaitionPublicBLL.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\ClassificationPageBLL.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FunctionBaseInfoSetPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ChooseFloorPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FunctionBaseInfoSetPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ChooseRoomPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\MotorCurtainPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\DimmerPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RelayPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RGBPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RGBPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RelayPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\1-HomePage\HomePageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\1-HomePage\HomePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalCenterPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalDataPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalCenterPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalDataPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditFunctionPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\ResidentialManagePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditFunctionPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomsManagementPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\FloorsManagementPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\FloorsManagementPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\ResidentialManagePageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomsManagementPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\LoginPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\ForgetPasswordPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\LoginPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\ForgetPasswordPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\ResetPassword_VerificationCode.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\RegisterPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\BaseView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\RegisterPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\PublicAssmeblyBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\TopViewDiv.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\TopViewDivBLL.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ChooseRoomPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\DimmerPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\MotorCurtainPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\CurtainModulePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\CurtainModulePageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\RollingShutterPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\RollingShutterPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\AC\ACPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\AC\ACPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionControlZone.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\FunctionControlZoneBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\RoomPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\RoomPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\ClassificaitionPublicBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Scene.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\FunctionList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\AC.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Curtain.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\FloorHeating.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Light.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\CityInfo.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockSettingsPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockSettingsPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockPasswordPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\OperationSuccessPromptPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockGesturePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\AppUnlockPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FoolHeating\FloorHeatingPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FoolHeating\FloorHeatingPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\FanPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Fan.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\SwitchSocket.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\FanPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\SocketPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\SocketPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\TV.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TVPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TVPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalSciencePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Sensor.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalSciencePageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalSensorPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberManagementPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\ResidenceMemberInfo.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberManagementPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberPermissionPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberFunctionPermissionPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\AProtocolEntity.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberPermissionPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\AddMemberScanPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\AddMemberScanPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberFunctionPermissionPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FunctionBasePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ChooseRoomPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorWaterImmersionPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorDoorWinwsPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorSmokePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorPirPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\ArmSensorHistroyPaging.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\MusicMain.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31Radio.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\UpdateThread.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31RadioList.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31MusicModel.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\A31MusicSourcePage.cs" />
@@ -166,144 +84,165 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\TipView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\MusicSourceView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\SongView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\ChooseShareMemberTargetListPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\ChooseShareMemberTargetListPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\MyListView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaFanPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\ClothesHangerPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\FanPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\ClothesHangerSetTimePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWeepRobotConsumablesMagPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TVPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\IrLearnPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TVPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWeepRobotHistoryPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWaterValvePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\SocketPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\SocketPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWeepRobotPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaAirCleanerPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\FanPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\VideoMainView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\VideoMethod.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\VideoSend.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\ObjectClass.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\View\ShowDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\View\FrameLayout60.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\View\FrameLayout50.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\AC\ACPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\AC\ACPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FoolHeating\FloorHeatingPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FoolHeating\FloorHeatingPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Panel\PanelPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\AirFreshControlPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\AcControlPage_AddIrButton.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\AcControlPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\TvControlPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\FhControlPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\MotorCurtainPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\RollingShutterPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\MotorCurtainPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\CurtainModulePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\RollingShutterPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\CurtainModulePageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Energy\EnergyMainPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalSciencePageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalSciencePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EchartsOption_Pie.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EchartsOption.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalSensorPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\ColorTureLampPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\ColorTureLampPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\DimmerPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\DimmerPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RelayPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RGBPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RGBPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\RelayPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\1-HomePage\HomePageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\1-HomePage\MessageCenterPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\1-HomePage\HomePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\IntelligencePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\CatchSceneAddPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneEditPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneAddPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SetSceneFunctionInfoPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\NewSceneMenuListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SetSceneLocationPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneFunctionListChoosePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\CatchSceneCatchFunctionListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalCenterPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalDataPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MyServerInfoPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalCenterPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PersonalDataPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MyQRCodePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\GetSupport\GetSupportPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\GetSupport\FAQHelpPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\GetSupport\QuestionListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\NewBindVerificationCodePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\NewBindAccountPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\BindAccountPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\AccountBindInfoPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\ChangeBindAccountPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\ChangeBindVerificationCodePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\BindAccountPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EchartsOption.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\ResetAccountPassword\ResetPasswordOptionPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\ResetAccountPassword\ResetPasswordVerificationCodePage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\ResetAccountPassword\ResetPasswordPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\UpdateThread.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Music\View\MyListView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\UpdataSidDataDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\IntelligencePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\GalleryPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\NewSceneMenuListPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneEditPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneFunctionListChoosePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SetSceneFunctionInfoPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SetSceneLocationPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Panel\PanelPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\ResetAccountPassword\ResetPasswordVerificationCodePage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\SearchDevicePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\VoicePanelScenePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Device\DeviceModule.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Device\SBK_SceneListObj.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\VoicePanelSettingPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\VoicePanelSceneListPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\NewAPI.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\HttpUtil.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\Utlis.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\IMessageCommon.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\NewApiRes.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\NewBindAccountPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\NewBindVerificationCodePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\HDLCommon.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\Constant.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\TextButton.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\SelectServerDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control_TcpClient.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control_TcpServer.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control_Udp.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\CRC.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Packet.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Target.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\UdpSocket.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\A_Protocol_Common.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)DAL\Mqtt\MqttClient.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MyQRCodePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ListCellView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\UpdateTipDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MyServerInfoPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\AboutOnPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\FunctionIntroductionPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\ComplaintsPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\EmptyTipView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\LineView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ConfirmDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\WebViewDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\GetSupport\FAQHelpPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ListIconCellView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\GetSupport\QuestionListPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\GetSupport\GetSupportPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\TransferConfirmPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ConfirmButton.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\AdminMigrationConfirmPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\VoicePanelSettingPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\VoicePanelScenePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditFunctionPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\ResidentialManagePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomEditFunctionPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomsManagementPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\FloorsManagementPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\FloorsManagementPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\ResidentialManagePageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\RoomsManagementPageBLL.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\TransferInputPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\AdminMigrationInputPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\TransferConfirmPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\AdminMigrationConfirmPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\Transfer\TransferUserConfirmPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\1-HomePage\MessageCenterPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\MenuButton.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\RoomGalleryPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\AddInputType.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\AddLogic.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\AddTarget.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\FunTpye.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\InpOrOutLogicMethod.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Logic.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicMethod.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\MainView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Set.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\TimeTpye.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\FunAllAreaView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\DateView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\AreaView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\MonView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\LogicAddView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TopView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\SelectTypeView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\SwitchView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\LogicTypeTitleView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TimeView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TimeHorizonView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TextSize.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\AddOutputInputView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TipPopView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\AddOutputInputTextView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\SaveView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\SingleLogicView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Send.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\ImageUtlis.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\ConditionDeviceFunList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\TargetDeviceFunList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\FunTypeView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\CheckView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\FileUtlis.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\AddRoom\AddRoomPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\RoomListManage\AddRoom\RoomBinglingFloorPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\BindingResidence\BindingResidencePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\DB_AccountList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\PublicInterface.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\OnAppConfig.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\UserInfo.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneAddPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\SelectPopupDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\Utlis\FloorSelectPopupDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\ColorTureLampPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Light\ColorTureLampPageBLL.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\Utlis\FloorRoomSelectPopupView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\BrightnessView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Common\ApiUtlis.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TemperatureView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\DiySelectPopupDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ListCellDialog.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\SpeciaTime.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Time3.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Weather.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\OutdoorEnvironment.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\WeatherCondition.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\1-test-\TestDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberFunctionPermissionPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberFunctionPermissionPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\AddMemberScanPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\ChooseShareMemberTargetListPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberManagementPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberPermissionPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\AddMemberScanPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberManagementPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberPermissionPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\ChooseShareMemberTargetListPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\ThirdPartyBrandListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\AddDevciePage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\AddThirdPartyBrandListpage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Integratedbrand\IntegratedBrand.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\AirCleaner.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\WeepRobot.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaAirCleanerPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaFanPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWeepRobotPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\DeviceListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\BrandListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockGesturePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockSettingsPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockSettingsPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\AppUnlockPasswordPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\FunctionIntroductionPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\AboutOnPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\ComplaintsPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\1-test-\TestDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\LoginPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\ForgetPasswordPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\LoginPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\ForgetPasswordPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\ResetPassword_VerificationCode.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\RegisterPageBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\BaseView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\RegisterPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI1-Login\SelectServerDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\TopViewDivBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\RoomGalleryPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\DiySelectPopupDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\PublicAssmebly.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\AppUnlockPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\OperationSuccessPromptPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\UpdataSidDataDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\PublicAssmeblyBLL.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\GalleryPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\TopViewDiv.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ListIconCellView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\TextButton.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\WebViewDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\IconTipDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\SelectPopupDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ConfirmButton.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ListCellDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\MenuButton.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\EmptyTipView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\UpdateTipDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ListCellView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\ConfirmDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\LineView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Resourse\HdlControlResourse.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Form\HideOptionDirectoryListForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Form\HideOptionSearchAllFile.cs" />
@@ -316,7 +255,11 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlThreadLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlDeviceStatuPushLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlMessageLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlCloudReceiveLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlFormLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlBluetoothIOSLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlWifiLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlBluetoothAndroidLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BottomControls\BottomItemEditorControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BottomControls\BottomDialogCommon.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\BottomControls\BottomTimeSelectControl.cs" />
@@ -343,54 +286,25 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\ListViewLayoutControls\VerticalFrameRefreshControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\ListViewLayoutControls\VerticalFrameControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\DialogTitleMenuControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\ProgressRowBar.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\NormalSelectControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\DirectionImageControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\SeekBarImageControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\BatteryPersentControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\FanGearSeekBarControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\ProgressBar.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWaterValvePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\BatteryPersentControl.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWeepRobotConsumablesMagPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\TuyaWeepRobotHistoryPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\ClothesHangerPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FunctionBasePage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorPirPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorWaterImmersionPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorDoorWinwsPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SensorSmokePage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\MyEnum.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\Command.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\ClothsHangerEnum.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\PirMain.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\TopView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\BrandList.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\BrandListView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\TipView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\AddButton.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\SaveView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\Buttons.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\AddControl.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\Pir.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\PirSend.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\AddControlComplete.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\PatchView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\FailView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\ReplicationView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\ClothesHangerSetTimePage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\ArmSensorHistroyPaging.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlCloudReceiveLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Logic\HdlWifiLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Controls\CompoundControls\ProgressRowBar.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\Matching.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\PirNameView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\BrandListPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\IrLearnPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\EditControl.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\FrameLayout50.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\PirView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\ControlView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\AddDevciePage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\DeviceListPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\MainView.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\HeigthChangeView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\AcControlPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\FhControlPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\TvControlPage.cs" />
@@ -399,7 +313,6 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\View\ShowDialog.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EnvironmentalPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EchartsOption_Pie.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\SetPir.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\AcControlPage_AddIrButton.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Energy\EnergyMainPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)DAL\ThirdPartySdk\ESOnVideo.cs" />
@@ -410,12 +323,9 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\ObjectClass.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\CatchSceneAddPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\CatchSceneCatchFunctionListPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\InputPushText.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\AirQuality.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmCenter\ArmCenterPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\SecurityAlarm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmCenter\ArmDeploymentSettingPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\OnePortAutomation.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\EchartsOption_BrokenLine.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SmartSpeaker\SmartSpeakerListPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SmartSpeaker\SmartSpeakerSelectDevicesPage.cs" />
@@ -423,7 +333,6 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\DvdPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\PjtPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\StbPage.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\PirMethod.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\SenesorMegahealth\AddSenesorMegahealthDirection1Page.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\MiniRemoteControl\AddMiniRemoteControlDirection1Page.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\MiniRemoteControl\AddMiniRemoteControlDirection2Page.cs" />
@@ -433,29 +342,131 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddDevice\SenesorMegahealth\SenesorMegahealthManagerPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\SenesorMegahealthPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\IrFanPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Enumerative\EmptyHttpReques.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Integratedbrand\IntegratedBrand.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\AirCleaner.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Scene.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\AC.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Sensor.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Curtain.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\FloorHeating.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Fan.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Light.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\SwitchSocket.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\Function.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\WeepRobot.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Function\TV.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\RegionInfoRes.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\ResidenceMemberInfo.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\ResponsePack.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\CityInfo.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\FileUtils.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\ThirdPartySdk\ESOnVideo.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\IMessageCommon.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\NewAPI.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\HttpUtil.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\HttpServerRequest.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\NewApiRes.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Server\HttpServerRequestBase.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\A_Protocol_Common.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\CRC.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control_TcpClient.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control_Udp.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Control_TcpServer.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Packet.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\Target.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\UdpSocket.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Mqtt\MqttClient.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)DAL\Mqtt\MqttInfoConfig.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\ApiUtlis.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\ImageUtlis.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\Utlis.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\R.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\OnAppConfig.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\DB_AccountList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\Constant.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\FileUtlis.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\UserInfo.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\HDLCommon.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\Utlis\FloorSelectPopupDialog.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\Utlis\FloorRoomSelectPopupView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\AProtocolEntity.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\DB_ResidenceData.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\FunctionList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Room.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Device\DeviceModule.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Entity\Device\SBK_SceneListObj.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Send.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\FunTpye.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\OutdoorEnvironment.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Weather.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\ConditionDeviceFunList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\TimeTpye.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Logic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\PublicInterface.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\AirQuality.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\MainView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\OnePortAutomation.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicMethod.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Time3.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\AddLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Set.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\InputPushText.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\WeatherCondition.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\TargetDeviceFunList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\InpOrOutLogicMethod.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\SpeciaTime.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\AddTarget.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\AddInputType.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\FunAllAreaView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\DateView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\AreaView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\MonView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\LogicAddView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\FunTypeView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TopView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\SelectTypeView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\SwitchView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TemperatureView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\LogicTypeTitleView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TimeView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TimeHorizonView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TextSize.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\AddOutputInputView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\TipPopView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\brightnessView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\AddOutputInputTextView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\SaveView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\CheckView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\LogicView\SingleLogicView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\PirMethod.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\AddControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\PirMain.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\Pir.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\PirSend.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\Matching.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\SetPir.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\BrandList.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\EditControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\AddControlComplete.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\AddButton.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\BrandListView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\PatchView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\TopView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\HeigthChangeView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\PirNameView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\MainView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\ControlView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\FailView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\PirView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\TipView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\ReplicationView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\FrameLayout50.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\SaveView.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\Buttons.cs" />
   </ItemGroup>
   <ItemGroup>
-    <Folder Include="$(MSBuildThisFileDirectory)DAL\" />
-    <Folder Include="$(MSBuildThisFileDirectory)DAL\Mqtt\" />
-    <Folder Include="$(MSBuildThisFileDirectory)Common\" />
-    <Folder Include="$(MSBuildThisFileDirectory)DAL\Server\" />
-    <Folder Include="$(MSBuildThisFileDirectory)Entity\" />
-    <Folder Include="$(MSBuildThisFileDirectory)Entity\ResponseEntity\" />
-    <Folder Include="$(MSBuildThisFileDirectory)Entity\Enumerative\" />
-    <Folder Include="$(MSBuildThisFileDirectory)Entity\Function\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\AC\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\UnlockSetting\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\FoolHeating\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\EnvironmentalScience\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AccountBindInfo\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\ResetAccountPassword\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Panel\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\SearchDevice\" />
     <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" />
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI0-Public\Widget\" />
     <Folder Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\" />
@@ -468,8 +479,6 @@
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\" />
     <Folder Include="$(MSBuildThisFileDirectory)Entity\Integratedbrand\" />
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ArmSensor\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\" />
-    <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\PirDevice\View\" />
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\" />
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\" />
     <Folder Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\View\" />
diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs
index 1a295d4..0a502ab 100644
--- a/HDL_ON/UI/MainPage.cs
+++ b/HDL_ON/UI/MainPage.cs
@@ -1,6 +1,7 @@
 锘縰sing System;
 using System.Collections.Generic;
 using HDL_ON.DAL;
+using HDL_ON.Entity;
 using HDL_ON.UI;
 using HDL_ON.UI.CSS;
 using Shared;
@@ -18,9 +19,13 @@
         /// </summary>
         public static PageLayout BasePageView { get; set; }
         /// <summary>
+        /// 鐢ㄦ埛鎺у埗鐖跺鍣�
+        /// </summary>
+        public static UserPage UserBasePage;
+        /// <summary>
         /// 鐗堟湰鍙�
         /// </summary>
-        public static string VersionString = "1.2.0617";
+        public static string VersionString = "1.2.0708";
         ///// <summary>
         ///// 瀹㈡埛绔被鍨�
         ///// </summary>
@@ -93,6 +98,25 @@
 #endif
             }
         }
+
+        /// <summary>
+        /// 鍦烘櫙鏀寔鐨勫姛鑳藉垪琛�
+        /// </summary>
+        public static List<string> SceneSupportFunctionList = new List<string> {
+            SPK.LightCCT,SPK.LightDimming,SPK.LightSwitch,SPK.LightRGB,
+            SPK.CurtainRoller,SPK.CurtainSwitch,SPK.CurtainTrietex,
+            SPK.AcIr,SPK.AcStandard,
+            SPK.FloorHeatStandard,
+
+        };
+        /// <summary>
+        /// 鎴块棿鍔熻兘鍒楄〃涓嶅姞杞界殑鍔熻兘鍒楄〃
+        /// </summary>
+        public static List<string> RoomNotSupportFunctionList = new List<string>
+        {
+            SPK.EnergyStandard,
+        };
+
 
 
         public static void Show()
@@ -272,7 +296,7 @@
             if (NoLoginMode)
             {
                 //璺宠浆椤甸潰----
-                var UserBasePage = new UserPage();
+                UserBasePage = new UserPage();
                 BasePageView.AddChidren(UserBasePage);
                 UserBasePage.LoadPage();
                 BasePageView.PageIndex = 0;
@@ -294,20 +318,20 @@
                 addResidencePage.LoadView();
                 return;
             }
-            new System.Threading.Thread(() =>
+            new System.Threading.Thread(async () =>
             {
                 try
                 {
                     Entity.FunctionList.List.Clear();
                     Entity.SpatialInfo.CurrentSpatial.Clear();
                     ///绛夊緟鑾峰彇浣忓畢淇℃伅
-                    Application.RunOnMainThread(() =>
+                    Application.RunOnMainThread( () =>
                     {
                         waitPage.Hide();
                         waitPage.RemoveFromParent();
 
                         //璺宠浆椤甸潰----
-                        var UserBasePage = new UserPage();
+                        UserBasePage = new UserPage();
                         BasePageView.AddChidren(UserBasePage);
                         UserBasePage.LoadPage();
                         BasePageView.PageIndex = 0;
@@ -331,6 +355,7 @@
                     {
                         if (downloadData)
                         {
+                            DB_ResidenceData.Instance.EixtAccount();
                             ///鍒濆鍖朼pp鏁版嵁
                             Common.ApiUtlis.Ins.DownloadData();
                         };
diff --git a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
index 82d5d2b..0f50349 100644
--- a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
+++ b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
@@ -152,6 +152,10 @@
                         var clothesHangerpage = new ClothesHangerPage();
                         clothesHangerpage.AddForm(function, btnCollectionIcon, btnName, btnFromFloor);
                         break;
+                    case SPK.FanIr:
+                        var fanIr = new IrFanPage();
+                        fanIr.AddForm(function, btnCollectionIcon, btnName, btnFromFloor);
+                        break;
                     case SPK.AcIr:
                     case SPK.AcStandard:
                         var acPage = new AcControlPage();
diff --git a/HDL_ON/UI/UI0-Public/TopViewDiv.cs b/HDL_ON/UI/UI0-Public/TopViewDiv.cs
index 0cacd40..9ebf6a1 100644
--- a/HDL_ON/UI/UI0-Public/TopViewDiv.cs
+++ b/HDL_ON/UI/UI0-Public/TopViewDiv.cs
@@ -131,7 +131,7 @@
             LoadTopView();
         }
 
-        public void LoadTopView_RoomTop(Action backAction ,Action editAction)
+        public void LoadTopView_RoomTop(Action backAction, Action editAction)
         {
             this.backAction = backAction;
 
@@ -275,7 +275,7 @@
         /// <summary>
         /// 妤煎眰绠$悊椤堕儴鏍�
         /// </summary>
-        public void LoadTopView_FloorTopView(Action<string> callBack,Action action)
+        public void LoadTopView_FloorTopView(Action<string> callBack, Action action)
         {
             LoadTopView();
 
diff --git a/HDL_ON/UI/UI0-Public/Widget/ConfirmDialog.cs b/HDL_ON/UI/UI0-Public/Widget/ConfirmDialog.cs
index 3961438..a8d8520 100644
--- a/HDL_ON/UI/UI0-Public/Widget/ConfirmDialog.cs
+++ b/HDL_ON/UI/UI0-Public/Widget/ConfirmDialog.cs
@@ -14,6 +14,10 @@
         /// bodyView
         /// </summary>
         FrameLayout bodyView;
+        /// <summary>
+        /// 鏄惁鍔犺浇鎶ヨ棰滆壊绐楀彛(绾㈣壊)
+        /// </summary>
+        bool isAlarmColor = false;
 
         /// <summary>
         /// 
@@ -21,6 +25,13 @@
         public ConfirmDialog()
         {
 
+        }
+        /// <summary>
+        /// 
+        /// </summary>
+        public ConfirmDialog(bool isAlarmColor)
+        {
+            this.isAlarmColor = isAlarmColor;
         }
 
         /// <summary>
@@ -135,6 +146,12 @@
             };
 
             //this.Show();
+            if(isAlarmColor)
+            {
+                btnTitle.TextColor = CSS_Color.WarningColor;
+                btnConfirm.TextColor = CSS_Color.MainBackgroundColor;
+                btnConfirm.BackgroundColor = CSS_Color.WarningColor;
+            }
         }
 
         /// <summary>
diff --git a/HDL_ON/UI/UI0-Public/Widget/DiySelectPopupDialog.cs b/HDL_ON/UI/UI0-Public/Widget/DiySelectPopupDialog.cs
deleted file mode 100644
index a66af36..0000000
--- a/HDL_ON/UI/UI0-Public/Widget/DiySelectPopupDialog.cs
+++ /dev/null
@@ -1,665 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using HDL_ON.UI.CSS;
-using Shared;
-
-namespace HDL_ON
-{
-    /// <summary>
-    /// 妤煎眰DiySelectPopupDialog
-    /// </summary>
-    public class DiySelectPopupDialog : Dialog
-    {
-        /// <summary>
-        /// ALLSELECT锛屾爣璇�
-        /// </summary>
-        public const string ALLSELECT = "ALLSELECT";
-
-        /// bodyView
-        /// </summary>
-        FrameLayout bodyView;
-        /// <summary>
-        /// 搴曢儴View
-        /// 鑷繁鏍规嵁闇�瑕佽皟鏁碭銆乊鍧愭爣
-        /// </summary>
-        public FrameLayout BackView;
-        /// <summary>
-        /// 鍏ㄩ儴鎸夐挳
-        /// </summary>
-        Button leftAllButton;
-        /// <summary>
-        /// 涓�绾ф粦鍔╒iew
-        /// </summary>
-        VerticalScrolViewLayout leftScrolView;
-        /// <summary>
-        /// 浜岀骇婊戝姩View
-        /// </summary>
-        VerticalScrolViewLayout rightScrolView;
-        /// <summary>
-        /// 閫変腑鍥炶皟浜嬩欢
-        /// </summary>
-        Action<string> SelectAction;
-        /// <summary>
-        /// 涓�绾ist
-        /// </summary>
-        List<RoomCellInfo> mFirstList = new List<RoomCellInfo>();
-        /// <summary>
-        /// 浜岀骇鑱斿姩List
-        /// </summary>
-        List<List<RoomCellInfo>> mSecondList = new List<List<RoomCellInfo>>();
-        /// <summary>
-        /// 浜岀骇鎵�鏈塋ist
-        /// </summary>
-        List<RoomCellInfo> mSecondAllList = new List<RoomCellInfo>();
-
-        /// <summary>
-        /// DiySelectPopupDialog
-        /// </summary>
-        public DiySelectPopupDialog()
-        {
-            bodyView = new FrameLayout();
-
-        }
-
-        /// <summary>
-        /// 鏄剧ずView
-        /// mFirstList銆乵SecondList涓嶅悎娉曢兘涓嶄細鏄剧ずView
-        /// mSecondList 涓嶄紶涓洪粯璁や竴绾�
-        /// </summary>
-        /// <param name="mFirstList">涓�绾ф暟鎹泦鍚�</param>
-        /// <param name="mSecondList">浜岀骇鏁版嵁闆嗗悎</param>
-        /// <param name="SelectAction">閫夋嫨鍥炶皟浜嬩欢</param>
-        /// <param name="selectTagId"></param>
-        public void ShowView(List<RoomCellInfo> mFirstList, List<List<RoomCellInfo>> mSecondList, Action<string> SelectAction, string selectTagId = ALLSELECT)
-        {
-            if (mFirstList == null)
-            {
-                Utlis.WriteLine("mFirstList null");
-                return;
-            }
-            //娉ㄥ唽鍥炶皟浜嬩欢
-            this.SelectAction = SelectAction;
-            //浜屾槸鍚﹂渶瑕佷簩绾у垽鏂�
-            if (mSecondList == null || mSecondList.Count == 0)
-            {
-                //涓�绾�
-                this.mFirstList = mFirstList;
-                //View鏄剧ず
-                ShowOneBaseView();
-                //鏁版嵁鍐呭濉厖
-                RefreshOneBaseView(selectTagId);
-            }
-            else
-            {
-                if (mFirstList.Count != mSecondList.Count)
-                {
-                    Utlis.WriteLine("鏁版嵁 涓嶈仈鍔ㄥ紓甯�");
-                    return;
-                }
-                //浜岀骇鑱斿姩
-                this.mFirstList = mFirstList;
-                this.mSecondList = mSecondList;
-                this.mSecondAllList.Clear();
-                foreach (var list in mSecondList)
-                {
-                    foreach (var data in list)
-                    {
-                        this.mSecondAllList.Add(data);
-                    }
-                }
-
-                //View鏄剧ず
-                ShowDoubleBaseView();
-                //鏁版嵁鍐呭濉厖
-                RefreshDoubleBaseView();
-                //閫変腑鏁堟灉
-                SetSelectTagId(selectTagId);
-
-            }
-            this.Show();
-        }
-
-
-        /// <summary>
-        /// 鍒锋柊UI锛岄�夋嫨鍏ㄩ儴
-        /// </summary>
-        void SelectAll()
-        {
-            RefreshSelectButton(leftScrolView, ALLSELECT);
-            var all = new RoomCellInfo()
-            {
-                TagId = ALLSELECT,
-                Title = "ALL",
-            };
-            LoadRightScrolView(all, this.mSecondAllList);
-        }
-
-        /// <summary>
-        /// 鏍规嵁tagID閫変腑
-        /// </summary>
-        void SetSelectTagId(string tagId)
-        {
-            if (string.IsNullOrEmpty(tagId) || tagId == ALLSELECT || mFirstList == null)
-            {
-                SelectAll();
-            }
-            else
-            {
-                //涓�绾фゼ灞傚尮閰嶆垚鍔�
-                var tagInfo = mFirstList.Find((m) => m.TagId == tagId);
-                if (tagInfo != null)
-                {
-                    var index = mFirstList.IndexOf(tagInfo);
-                    if (index < mSecondList.Count)
-                    {
-                        RefreshSelectButton(leftScrolView, tagId);
-                        LoadRightScrolView(tagInfo, mSecondList[index]);
-                        return;
-                    }
-                    else
-                    {
-                        SelectAll();
-                    }
-                }
-                else
-                {
-                    //SelectAll();
-                    //涓�绾х殑妤煎眰鍖归厤澶辫触锛屽皾璇曞尮閰嶄簩绾�
-                    if (mSecondList == null || mFirstList.Count != mSecondList.Count)
-                    {
-                        SelectAll();
-                    }
-                    else
-                    {
-                        //鏄惁鍖归厤鍒版埧闂�
-                        bool isFind = false;
-                        //1.閬嶅巻浜岀骇鎴块棿鏁版嵁
-                        for(var i = 0; i < mSecondList.Count; i++)
-                        {
-                            foreach (var room in mSecondList[i])
-                            {
-                                if(tagId == room.TagId)
-                                {
-                                    //鍖归厤鎴块棿鎴愬姛锛岄�変腑瀵逛簬鐨勬ゼ灞�
-                                    var tagFirstInfo = mFirstList[i];
-                                    isFind = true;
-                                    RefreshSelectButton(leftScrolView, tagFirstInfo.TagId);
-                                    LoadRightScrolView(tagFirstInfo, mSecondList[i]);
-                                    break;
-                                }
-                            }
-                        }
-
-                        //娌℃湁鍖归厤鍒版埧闂�
-                        if (!isFind)
-                        {
-                            SelectAll();
-                        }
-                    }
-
-
-                }
-            }
-        }
-
-        #region 浜岀骇鑱斿姩閫夋嫨鏁堟灉
-        /// <summary>
-        /// 鏄剧ず浜岀骇view
-        /// </summary>
-        void ShowDoubleBaseView()
-        {
-            bodyView.BackgroundColor = CSS_Color.DialogTransparentColor1;
-            this.AddChidren(bodyView);
-            bodyView.MouseUpEventHandler = (sender, e) =>
-            {
-                this.Close();
-            };
-
-            BackView = new FrameLayout()
-            {
-                X = Application.GetRealWidth(10),
-                Y = Application.GetRealHeight(104),
-                Width = Application.GetRealWidth(283),
-                Height = Application.GetRealWidth(242),
-            };
-            bodyView.AddChidren(BackView);
-
-            var backImageView = new ImageView(){
-                Width = BackView.Width,
-                Height = BackView.Height,
-                ImagePath = "Public/PopupDialog.png"
-            };
-            BackView.AddChidren(backImageView);
-
-            leftAllButton = new Button()
-            {
-                Y = Application.GetRealWidth(14),
-                X = Application.GetRealWidth(24),
-                Height = Application.GetRealWidth(44),
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextID = StringId.All,
-                IsSelected = true,
-                //IsBold = true,
-            };
-            BackView.AddChidren(leftAllButton);
-            //鍒嗗壊绾�
-            var lineView1 = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(112),
-                Height = Application.GetRealHeight(1),
-                Y = leftAllButton.Bottom,
-                X = leftAllButton.X,
-                BackgroundColor = CSS_Color.DividingLineColor,
-            };
-            BackView.AddChidren(lineView1);
-
-            leftScrolView = new VerticalScrolViewLayout()
-            {
-                X = Application.GetRealWidth(8),
-                Y = leftAllButton.Bottom,
-                Height = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(128),
-                VerticalScrollBarEnabled = false,
-            };
-            BackView.AddChidren(leftScrolView);
-
-            rightScrolView = new VerticalScrolViewLayout()
-            {
-                X = leftScrolView.Right + Application.GetRealWidth(12),
-                Y = Application.GetRealWidth(58),
-                Height = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(128),
-                VerticalScrollBarEnabled = false,
-            };
-            BackView.AddChidren(rightScrolView);
-
-            leftAllButton.MouseUpEventHandler = (sender, e) =>
-            {
-                leftAllButton.IsSelected = true;
-
-                //鍔犺浇鍏ㄩ儴
-                SelectAll();
-            };
-        }
-
-        /// <summary>
-        /// 鍒锋柊浜岀骇鑱斿姩鐨刅IEW
-        /// </summary>
-        void RefreshDoubleBaseView()
-        {
-            leftScrolView.RemoveAll();
-            for (var i = 0; i < mFirstList.Count; i++)
-            {
-                AddSelectButton(leftScrolView, mFirstList[i], mSecondList[i]);
-            }
-        }
-
-        /// <summary>
-        /// scrolView閲岄潰Button 閫変腑鏁堟灉浜掓枼
-        /// </summary>
-        /// <param name="scrolView"></param>
-        /// <param name="selectBtnTag"></param>
-        void RefreshSelectButton(VerticalScrolViewLayout scrolView, string selectBtnTag)
-        {
-            try
-            {
-                if (leftAllButton != null)
-                {
-                    leftAllButton.IsSelected = selectBtnTag == ALLSELECT;
-                }
-
-                if (scrolView != null)
-                {
-                    for (int i = 0; i < scrolView.ChildrenCount; i++)
-                    {
-                        if (scrolView.GetChildren(i).GetType() == typeof(FrameLayout))
-                        {
-                            var cellView = (FrameLayout)scrolView.GetChildren(i);
-                            for (int j = 0; j < cellView.ChildrenCount; j++)
-                            {
-                                if (cellView.GetChildren(j).GetType() == typeof(Button))
-                                {
-                                    var titleButton = (Button)cellView.GetChildren(j);
-                                    var o = titleButton.GetTagByKey("BtnKey");
-                                    if (o != null && o.ToString() == selectBtnTag)
-                                    {
-                                        titleButton.IsSelected = true;
-                                    }
-                                    else
-                                    {
-                                        titleButton.IsSelected = false;
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            catch
-            {
-
-            }
-        }
-
-        /// <summary>
-        /// 娣诲姞涓�绾фゼ灞傞�夋嫨CellView
-        /// </summary>
-        /// <param name="scrolView"></param>
-        /// <param name="firstData"></param>
-        /// <param name="rightList"></param>
-        void AddSelectButton(VerticalScrolViewLayout scrolView, RoomCellInfo firstData, List<RoomCellInfo> rightList)
-        {
-            var cellView = new FrameLayout()
-            {
-                Height = Application.GetRealWidth(44),
-                Tag = "cell"
-            };
-            scrolView.AddChidren(cellView);
-
-            var titleButton = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Height = Application.GetRealWidth(44),
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.TextFontSize,
-                TextAlignment = TextAlignment.CenterLeft,
-                Text = firstData.Title,
-            };
-            cellView.AddChidren(titleButton);
-            titleButton.AddTag("BtnKey", firstData.TagId);
-
-            //椤堕儴鍒嗗壊绾�
-            var lineView = new FrameLayout()
-            {
-                X = Application.GetRealWidth(16),
-                Height = Application.GetRealHeight(1),
-                Width = Application.GetRealWidth(112),
-                BackgroundColor = CSS_Color.DividingLineColor,
-                Y = cellView.Height - Application.GetRealHeight(1),
-            };
-            cellView.AddChidren(lineView);
-
-            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
-            {
-                //cellView.BackgroundColor = CSS_Color.viewTranslucence;
-                RefreshSelectButton(scrolView, firstData.TagId);
-                LoadRightScrolView(firstData, rightList);
-            };
-
-            titleButton.MouseUpEventHandler = eventHandler;
-            cellView.MouseUpEventHandler = eventHandler;
-
-            //EventHandler<MouseEventArgs> mousDownEventHandler = (sender, e) =>
-            //{
-            //    cellView.BackgroundColor = CSS_Color.TopViewColor;
-            //};
-
-            //titleButton.MouseDownEventHandler = mousDownEventHandler;
-            //cellView.MouseDownEventHandler = mousDownEventHandler;
-        }
-
-
-
-        /// <summary>
-        /// 鍔犺浇浜岀骇婊戝姩View
-        /// </summary>
-        /// <param name="firstData"></param>
-        /// <param name="rightList"></param>
-        void LoadRightScrolView(RoomCellInfo firstData, List<RoomCellInfo> rightList)
-        {
-            rightScrolView.RemoveAll();
-
-            //娣诲姞椤堕儴鍒嗗壊绾�
-            var lineView2 = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(112),
-                Height = Application.GetRealHeight(1),
-                BackgroundColor = CSS_Color.DividingLineColor,
-            };
-            rightScrolView.AddChidren(lineView2);
-            //娣诲姞鍏ㄩ儴鎸夐挳
-            var allInfo = new RoomCellInfo()
-            {
-                Title = Language.StringByID(StringId.All),
-                TagId = firstData.TagId,//涓婁竴绾фゼ灞侷D
-            };
-            AddRightSelectButton(rightScrolView, allInfo, true);
-
-            for (var i = 0; i < rightList.Count; i++)
-            {
-                AddRightSelectButton(rightScrolView, rightList[i]);
-            }
-
-        }
-
-        /// <summary>
-        ///  娣诲姞浜岀骇閫夋嫨CellView
-        /// </summary>
-        /// <param name="scrolView"></param>
-        /// <param name="secondData"></param>
-        /// <param name="isSelected"></param>
-        void AddRightSelectButton(VerticalScrolViewLayout scrolView, RoomCellInfo secondData, bool isSelected = false)
-        {
-            var cellView = new FrameLayout()
-            {
-                Height = Application.GetRealWidth(44),
-            };
-            scrolView.AddChidren(cellView);
-
-            var titleButton = new Button()
-            {
-                //X = Application.GetRealWidth(16),
-                Height = Application.GetRealWidth(44),
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.TextFontSize,
-                TextAlignment = TextAlignment.CenterLeft,
-                Text = secondData.Title,
-                IsSelected = isSelected
-            };
-            cellView.AddChidren(titleButton);
-
-            var lineView = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(112),
-                Height = Application.GetRealHeight(1),
-                Y = cellView.Height - Application.GetRealHeight(1),
-                BackgroundColor = CSS_Color.DividingLineColor,
-            };
-            cellView.AddChidren(lineView);
-
-            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
-            {
-                this.Close();
-                //鍥炶皟閫変腑绱㈠紩
-                SelectAction?.Invoke(secondData.TagId);
-            };
-
-            titleButton.MouseUpEventHandler = eventHandler;
-            cellView.MouseUpEventHandler = eventHandler;
-
-           
-        }
-
-        #endregion
-
-
-        #region 鍙湁涓�绾х殑鑱斿姩
-        /// <summary>
-        /// 閮芥樉绀轰竴绾х殑
-        /// </summary>
-        void ShowOneBaseView()
-        {
-            bodyView.BackgroundColor = CSS_Color.DialogTransparentColor1;
-            this.AddChidren(bodyView);
-            bodyView.MouseUpEventHandler = (sender, e) =>
-            {
-                this.Close();
-            };
-
-            BackView = new FrameLayout()
-            {
-                X = Application.GetRealWidth(10),
-                Y = Application.GetRealHeight(104),
-                Width = Application.GetRealWidth(160),
-                Height = Application.GetRealWidth(198),
-            };
-            bodyView.AddChidren(BackView);
-
-            var backImageView = new ImageView()
-            {
-                Width = BackView.Width,
-                Height = BackView.Height,
-                ImagePath = "PersonalCenter/HomeList3bg.png"
-            };
-            BackView.AddChidren(backImageView);
-
-            leftAllButton = new Button()
-            {
-                Y = Application.GetRealWidth(14),
-                X = Application.GetRealWidth(24),
-                Height = Application.GetRealWidth(44),
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextID = StringId.All,
-                //IsBold = true,
-            };
-            BackView.AddChidren(leftAllButton);
-            //鍒嗗壊绾�
-            var lineView1 = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(112),
-                Height = Application.GetRealHeight(1),
-                Y = leftAllButton.Bottom,
-                X = leftAllButton.X,
-                BackgroundColor = CSS_Color.DividingLineColor,
-            };
-            BackView.AddChidren(lineView1);
-
-            leftScrolView = new VerticalScrolViewLayout()
-            {
-                X = Application.GetRealWidth(8),
-                Y = leftAllButton.Bottom,
-                Height = Application.GetRealWidth(132),
-                Width = Application.GetRealWidth(144),
-                VerticalScrollBarEnabled = false,
-            };
-            BackView.AddChidren(leftScrolView);
-
-            leftAllButton.MouseUpEventHandler = (sender, e) =>
-            {
-                this.Close();
-                SelectAction?.Invoke(ALLSELECT);
-            };
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="tagId"></param>
-        void RefreshOneBaseView(string tagId)
-        {
-            if (leftAllButton != null)
-            {
-                leftAllButton.IsSelected = tagId == ALLSELECT;
-            }
-            leftScrolView.RemoveAll();
-            for (var i = 0; i < mFirstList.Count; i++)
-            {
-                AddOneSelectButton(leftScrolView, mFirstList[i], tagId);
-            }
-        }
-
-        /// <summary>
-        /// 娣诲姞涓�绾фゼ灞傞�夋嫨CellView
-        /// </summary>
-        /// <param name="scrolView"></param>
-        /// <param name="firstIndex"></param>
-        /// <param name="firstText"></param>
-        void AddOneSelectButton(VerticalScrolViewLayout scrolView, RoomCellInfo firstData, string tagId)
-        {
-            var cellView = new FrameLayout()
-            {
-                Height = Application.GetRealWidth(44),
-                Tag = "cell"
-            };
-            scrolView.AddChidren(cellView);
-
-            var titleButton = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Height = Application.GetRealWidth(44),
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.TextFontSize,
-                TextAlignment = TextAlignment.CenterLeft,
-                Text = firstData.Title,
-            };
-            cellView.AddChidren(titleButton);
-            titleButton.IsSelected = firstData.TagId == tagId;
-            titleButton.AddTag("BtnKey", firstData.TagId);
-
-            //椤堕儴鍒嗗壊绾�
-            var lineView = new FrameLayout()
-            {
-                X = Application.GetRealWidth(16),
-                Height = Application.GetRealHeight(1),
-                Width = Application.GetRealWidth(112),
-                BackgroundColor = CSS_Color.DividingLineColor,
-                Y = cellView.Height - Application.GetRealHeight(1),
-            };
-            cellView.AddChidren(lineView);
-
-            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
-            {
-                this.Close();
-                //鍥炶皟閫変腑绱㈠紩
-                SelectAction?.Invoke(firstData.TagId);
-            };
-
-            titleButton.MouseUpEventHandler = eventHandler;
-            cellView.MouseUpEventHandler = eventHandler;
-
-            //EventHandler<MouseEventArgs> mousDownEventHandler = (sender, e) =>
-            //{
-            //    cellView.BackgroundColor = CSS_Color.TopViewColor;
-            //};
-
-            //titleButton.MouseDownEventHandler = mousDownEventHandler;
-            //cellView.MouseDownEventHandler = mousDownEventHandler;
-        }
-
-        
-
-        #endregion
-
-
-        #region 閫夋嫨妤煎眰鍜屾埧闂翠笓鐢�
-
-
-        #endregion
-
-
-    }
-
-    /// <summary>
-    /// 
-    /// </summary>
-    public class RoomCellInfo
-    {
-        /// <summary>
-        /// 
-        /// </summary>
-        public string Title;
-        /// <summary>
-        /// 
-        /// </summary>
-        public string TagId;
-    }
-}
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlCheckLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlCheckLogic.cs
index fcc986b..53f920a 100644
--- a/HDL_ON/UI/UI0-Stan/Logic/HdlCheckLogic.cs
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlCheckLogic.cs
@@ -46,7 +46,7 @@
         /// <param name="addTopFrame">楠岃瘉鐣岄潰鏄惁娣诲姞澶撮儴Frame(鍙鎵嬪娍瀵嗙爜鍜屾暟瀛楀瘑鐮佹湁鏁�)</param>
         /// <param name="successEvent">楠岃瘉鎴愬姛涔嬪悗鐨勫洖璋冨嚱鏁�,澶辫触涓嶄細鍥炶皟(0:娌℃湁璁剧疆鏈夐獙璇� 1:楠岃瘉鎴愬姛锛�</param>
         /// <param name="loadPageBeforEvent">鍔犺浇鎸囧畾瑙i攣璁よ瘉鐣岄潰涔嬪墠鐨勪簨浠�,0:鍙栨秷褰撳墠楠岃瘉骞跺垏鎹㈠埌鍏朵粬鏂瑰紡,1:鏁板瓧瀵嗙爜,2:鎵嬪娍瀵嗙爜,3:鎸囩汗瀵嗙爜,4:闈㈠ID</param>
-        public void CheckUnlockSecurity(bool addTopFrame, Action<int> successEvent, Action<string> loadPageBeforEvent = null)
+        public void CheckUnlockSecurity(bool addTopFrame, Action<int> successEvent, Action<int> loadPageBeforEvent = null)
         {
             //楠岃瘉鎸囩汗鍜岄潰瀹筰d閮戒娇鐢ㄦ寚绾归獙璇�
             if (UserInfo.Current.appUnlockType.Contains("3") || UserInfo.Current.appUnlockType.Contains("4"))
@@ -58,7 +58,7 @@
                 if (type == TouchIDUtils.TouchIDSupperType.TouchID)
                 {
                     //閫氱煡浣跨敤鎸囩汗楠岃瘉
-                    loadPageBeforEvent?.Invoke("3");
+                    loadPageBeforEvent?.Invoke(3);
 
                     //Touch ID楠岃瘉
                     TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent += (sender2, e2) =>
@@ -77,7 +77,7 @@
                         else if (e2 == TouchIDUtils.TouchIDState.InputPassword)
                         {
                             //閫氱煡鍙栨秷浜嗛獙璇�,鍒囨崲涓哄叾浠栭獙璇�
-                            loadPageBeforEvent?.Invoke("0");
+                            loadPageBeforEvent?.Invoke(0);
 
                             //浣跨敤瀵嗙爜鎴栬�呮墜鍔垮瘑鐮佽В閿佽璇�
                             this.CheckUnlockSecurityByPassword(addTopFrame, successEvent, loadPageBeforEvent);
@@ -108,12 +108,12 @@
         /// <param name="addTopFrame">楠岃瘉鐣岄潰鏄惁娣诲姞澶撮儴Frame(鍙鎵嬪娍瀵嗙爜鍜屾暟瀛楀瘑鐮佹湁鏁�)</param>
         /// <param name="successEvent">楠岃瘉鎴愬姛涔嬪悗鐨勫洖璋冨嚱鏁�,澶辫触涓嶄細鍥炶皟(0:娌℃湁璁剧疆鏈夐獙璇� 1:楠岃瘉鎴愬姛锛�</param>
         /// <param name="loadPageBeforEvent">鍔犺浇鎸囧畾瑙i攣璁よ瘉鐣岄潰涔嬪墠鐨勪簨浠�,1:鏁板瓧瀵嗙爜,2:鎵嬪娍瀵嗙爜,3:鎸囩汗瀵嗙爜,4:闈㈠ID</param>
-        private void CheckUnlockSecurityByPassword(bool addTopFrame, Action<int> successEvent, Action<string> loadPageBeforEvent = null)
+        private void CheckUnlockSecurityByPassword(bool addTopFrame, Action<int> successEvent, Action<int> loadPageBeforEvent = null)
         {
             if (UserInfo.Current.appUnlockType.Contains("1"))
             {
                 //閫氱煡浣跨敤鏁板瓧瀵嗙爜楠岃瘉
-                loadPageBeforEvent?.Invoke("1");
+                loadPageBeforEvent?.Invoke(1);
 
                 //鏄剧ず鏁板瓧瀵嗙爜瑙i攣璁よ瘉鐣岄潰
                 this.ShowAppNumPasswordSecurityForm(addTopFrame, successEvent);
@@ -121,7 +121,7 @@
             else if (UserInfo.Current.appUnlockType.Contains("2"))
             {
                 //閫氱煡浣跨敤鎵嬪娍瀵嗙爜楠岃瘉
-                loadPageBeforEvent?.Invoke("2");
+                loadPageBeforEvent?.Invoke(2);
 
                 //鏄剧ず鎵嬪娍瀵嗙爜瑙i攣璁よ瘉鐣岄潰
                 this.ShowAppGestureSecurityForm(addTopFrame, successEvent);
diff --git a/HDL_ON/UI/UI1-Login/LoginPage.cs b/HDL_ON/UI/UI1-Login/LoginPage.cs
index 14c1026..58ce5a1 100644
--- a/HDL_ON/UI/UI1-Login/LoginPage.cs
+++ b/HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Text.RegularExpressions;
 using System.Threading;
+using HDL_ON.Common;
 using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
@@ -202,8 +203,9 @@
                 //return;
                 if (b)
                 {
-                    etAccount.Text = "15626203746";//娴嬭瘯鏈嶅姟鍣�
+                    //etAccount.Text = "tf@smarttech.com.ua";//鍥藉璐﹀彿锛屾湁浣忓畢锛岀櫥褰曟棤娉曟樉绀�
                     //etAccount.Text = "13375012446";//娴嬭瘯鏈嶅姟鍣�
+                    etAccount.Text = "13450425803";
                     //etAccount.Text = "1033326940@qq.com";
                     //etAccount.Text = "18022428438";//wjc
                     //etAccount.Text = "13602944661";//kx
@@ -211,22 +213,32 @@
                     //etAccount.Text = "18316672920";//lcg "18316672920";//hzx;// "13415629083"//cf;;
                     //etAccount.Text = "18316120654";//tujie
                     // "15622703419"lwn;// "18824864143";//"464027401@qq.com"; //"2791308028@qq.com";//13697499568 
+                    etAccount.Text = "15626203746";
+                    //etAccount.Text = "13450425807";//榛勭婧� knx椤圭洰
                 }
                 else
                 {
-                    etAccount.Text = "464027401@qq.com";//
+                    //etAccount.Text = "15018447586";//闊充箰鏁伴噺鍒锋柊闂
+                    //etAccount.Text = "464027401@qq.com";//
                     //etAccount.Text = "15217626103";//
                     //etAccount.Text = "13682244600";//娉㈠摜
-                    //etAccount.Text = "BB01010101@evoyo.com";//鍙瀵硅
+                    //etAccount.Text = "13168123446";//鏄嗘槑閲戣寕椤圭洰锛屾柊椋庨棶棰�
+                    etAccount.Text = "551775569@qq.com";
+                    etAccount.Text = "2949126848@qq.com";//闄堢惓cct娴嬭瘯
                     //etAccount.Text = "13168123446";
                     //etAccount.Text = "13676202754";//宸存灄鏈嶅姟鍣�
                     //etAccount.Text = "13602944661";//kx
                     //etAccount.Text = "551775569@qq.com";//wcf
                     //etAccount.Text = "18666455392";//13375012446//13602944661//tzy 18778381374
                     //etAccount.Text = "15971583093";// gs//tzy 274116637@qq.com//Sumant.Bhatia@havells.com 鍥藉鏈嶅姟鍣ㄦ祴璇�
+                    etAccount.Text = "15971583093";//楂樿儨 璋冨厜0 100 鍙嶅妯烦
                 }
                 b = !b;
                 etPassword.Text = "123456";
+                if(etAccount.Text == "15626203746")
+                {
+                    etPassword.Text = "12345678";
+                }
                 btnLogin.IsSelected = true;
             };
 #endif
@@ -320,7 +332,7 @@
             };
             accountView.AddChidren(etAccount);
 
-            if (userInfo != null)
+            if (userInfo != null && userInfo.ID != "1234567890")
             {
                 registerEmail = userInfo.userEmailInfo;
                 etAccount.Text = registerPhone = userInfo.userMobileInfo;
@@ -507,11 +519,16 @@
                 IsBold = true,
                 TextColor = CSS_Color.MainColor,
                 TextAlignment = TextAlignment.Center,
-                Text = "浣撻獙妯″紡"
+                Text = "Demo妯″紡"
             };
             bodyView.AddChidren(btnDomeLogin);
             btnDomeLogin.MouseUpEventHandler = (sender, e) => {
+
                 MainPage.NoLoginMode = true;
+#if DEBUG
+                FileUtlis.Files.DeleteAllFile();
+#endif
+
                 //妤煎眰鎴块棿鍒楄〃
                 var floor1 = new SpatialInfo("FLOOR") { roomName = "F1", parentId = DB_ResidenceData.Instance.CurrentRegion.id };
                 floor1.SaveRoomFile();
@@ -521,7 +538,7 @@
                 var room1 = new Room()
                 {
                     roomId = "1405771366041378818",
-                    roomName = "娲楁墜闂�",
+                    roomName = Language.CurrentLanguage == "Chinese"? "娲楁墜闂�" : "Restroom",
                     roomImage = "Classification/Room/Roombg.png",
                     uid = "47c98953-6fd4-4379-88b9-4b748963504f",
                     roomType = "ROOM",
@@ -529,27 +546,27 @@
                     homeId = "1396717478877241345",
                     createTime = "1623996986290",
                     modifyTime = "1623996986290",
-                    floorRoomName = "1F-娲楁墜闂�"
+                    floorRoomName = "1F-Restroom"
                 };
                 room1.SaveRoomFile();
-                var room2 = new Room()
-                {
-                    roomId = "1405771310345216001",
-                    roomName = "涓诲崸",
-                    roomImage = "Classification/Room/Roombg.png",
-                    uid = "168d27a1-9e53-42c0-95c9-f5cbf41ea167",
-                    roomType = "ROOM",
-                    parentId = "2348be0f-eec2-43c4-b74d-9b6037a5ba55",
-                    homeId = "1396717478877241345",
-                    createTime = "1623996973011",
-                    modifyTime = "1623996973011",
-                    floorRoomName = "1F-涓诲崸"
-                };
-                room2.SaveRoomFile();
+                //var room2 = new Room()
+                //{
+                //    roomId = "1405771310345216001",
+                //    roomName = Language.CurrentLanguage == "Chinese"? "涓诲崸" : "Master bedroom",
+                //    roomImage = "Classification/Room/Roombg.png",
+                //    uid = "168d27a1-9e53-42c0-95c9-f5cbf41ea167",
+                //    roomType = "ROOM",
+                //    parentId = "2348be0f-eec2-43c4-b74d-9b6037a5ba55",
+                //    homeId = "1396717478877241345",
+                //    createTime = "1623996973011",
+                //    modifyTime = "1623996973011",
+                //    floorRoomName = "1F-Master bedroom"
+                //};
+                //room2.SaveRoomFile();
                 var room3 = new Room()
                 {
                     roomId = "1405771193802285057",
-                    roomName = "椁愬巺",
+                    roomName = Language.CurrentLanguage == "Chinese"? "椁愬巺" : "Restaurant",
                     roomImage = "Classification/Room/Roombg.png",
                     uid = "ed7fc784-aace-44b8-97a3-bc3e727e598b",
                     roomType = "ROOM",
@@ -557,13 +574,13 @@
                     homeId = "1396717478877241345",
                     createTime = "1623996945225",
                     modifyTime = "1623996945225",
-                    floorRoomName = "1F-椁愬巺"
+                    floorRoomName = "1F-Restaurant"
                 };
                 room3.SaveRoomFile();
                 var room4 = new Room()
                 {
                     roomId = "1405771024583090178",
-                    roomName = "瀹㈠巺",
+                    roomName = Language.CurrentLanguage == "Chinese"? "瀹㈠巺" : "Drawing room",
                     roomImage = "Classification/Room/Roombg.png",
                     uid = "9191a3a2-026f-4667-a0b1-e3af699e7295",
                     roomType = "ROOM",
@@ -571,7 +588,7 @@
                     homeId = "1396717478877241345",
                     createTime = "1623996904880",
                     modifyTime = "1623996904880",
-                    floorRoomName = "1F-瀹㈠巺"
+                    floorRoomName = "1F-Drawing room"
                 };
                 room4.SaveRoomFile();
                 var floor = new SpatialInfo()
@@ -590,7 +607,7 @@
 
                 SpatialInfo.CurrentSpatial.FloorList.Add(floor);
                 SpatialInfo.CurrentSpatial.RoomList.Add(room1);
-                SpatialInfo.CurrentSpatial.RoomList.Add(room2);
+                //SpatialInfo.CurrentSpatial.RoomList.Add(room2);
                 SpatialInfo.CurrentSpatial.RoomList.Add(room3);
                 SpatialInfo.CurrentSpatial.RoomList.Add(room4);
 
@@ -601,7 +618,7 @@
                 {
                     sid = "light1",
                     deviceId = "light1",
-                    name = "RGB1",
+                    name = Language.CurrentLanguage == "Chinese"?  "瀹㈠巺姘涘洿鐏�1": "RGB light 1",
                     spk = SPK.LightRGB,
                     roomIds = new List<string>() { "1405771024583090178"},
                     collect = true,
@@ -619,7 +636,7 @@
                 {
                     sid = "light2",
                     deviceId = "light2",
-                    name = "RGB2",
+                    name = Language.CurrentLanguage == "Chinese" ? "瀹㈠巺姘涘洿鐏�2" : "RGB light 2",
                     spk = SPK.LightRGB,
                     roomIds = new List<string>() { "1405771024583090178"},
                     attributes = new List<FunctionAttributes>()
@@ -636,7 +653,7 @@
                 {
                     sid = "light3",
                     deviceId = "light3",
-                    name = "CCT1",
+                    name = Language.CurrentLanguage == "Chinese" ? "闃呰鐏�" : "CCT light",
                     spk = SPK.LightCCT,
                     roomIds = new List<string>() { "1405771024583090178"},
                     attributes = new List<FunctionAttributes>()
@@ -653,9 +670,9 @@
                 {
                     sid = "light4",
                     deviceId = "light4",
-                    name = "寮�鍏崇伅1",
+                    name = Language.CurrentLanguage == "Chinese" ? "澶х伅" : "light 1",
                     spk = SPK.LightSwitch,
-                    roomIds = new List<string>() { "1405771024583090178"},
+                    roomIds = new List<string>() { "1405771024583090178" },
                     attributes = new List<FunctionAttributes>()
                     {
                         new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
@@ -668,7 +685,7 @@
                 {
                     sid = "light5",
                     deviceId = "light5",
-                    name = "寮�鍏崇伅2",
+                    name = Language.CurrentLanguage == "Chinese" ? "寮�鍏崇伅" : "light 2",
                     spk = SPK.LightSwitch,
                     roomIds = new List<string>() { "1405771024583090178"},
                     attributes = new List<FunctionAttributes>()
@@ -683,7 +700,7 @@
                 {
                     sid = "curtain1",
                     deviceId = "curtain1",
-                    name = "寮�鍚堝笜",
+                    name = Language.CurrentLanguage == "Chinese" ? "寮�鍚堝笜" : "Curtain 1",
                     spk = SPK.CurtainTrietex,
                     roomIds = new List<string>() { "1405771024583090178"},
                     attributes = new List<FunctionAttributes>()
@@ -697,7 +714,7 @@
                 {
                     sid = "curtain2",
                     deviceId = "curtain2",
-                    name = "鍗峰笜",
+                    name = Language.CurrentLanguage == "Chinese" ? "鍗峰笜" : "Curtain 2",
                     spk = SPK.CurtainRoller,
                     roomIds = new List<string>() { "1405771024583090178"},
                     attributes = new List<FunctionAttributes>()
@@ -711,7 +728,7 @@
                 {
                     sid = "floorheat1",
                     deviceId = "floorheat1",
-                    name = "鍦版殩",
+                    name = Language.CurrentLanguage == "Chinese" ? "鍦版殩" : "Floorheat 1",
                     spk = SPK.FloorHeatStandard,
                     roomIds = new List<string>() { "1405771024583090178"},
                     attributes = new List<FunctionAttributes>()
@@ -729,7 +746,7 @@
                 {
                     sid = "scene1",
                     userSceneId = "scene1",
-                    name = "鏄庝寒妯″紡",
+                    name = Language.CurrentLanguage == "Chinese" ? "鏄庝寒妯″紡" : "Bright scene",
                     roomIds = new List<string>() { "1405771024583090178" },
                     gatewayId = "1234567890123456",
                     collect = true,
@@ -804,7 +821,7 @@
                 {
                     sid = "scene2",
                     userSceneId = "scene2",
-                    name = "娴极妯″紡",
+                    name = Language.CurrentLanguage == "Chinese" ? "娴极妯″紡" : "Romantic scene",
                     roomIds = new List<string>() { "1405771024583090178" },
                     gatewayId = "1234567890123456",
                     collect = false,
@@ -883,7 +900,7 @@
                 {
                     sid = "light6",
                     deviceId = "light6",
-                    name = "椁愬巺鐏�1",
+                    name = Language.CurrentLanguage == "Chinese" ? "椁愬巺鐏�1" : "Dining room light 1",
                     spk = SPK.LightSwitch,
                     roomIds = new List<string>() { room3.roomId },
                     attributes = new List<FunctionAttributes>()
@@ -898,7 +915,7 @@
                 {
                     sid = "light7",
                     deviceId = "light7",
-                    name = "椁愬巺鐏�2",
+                    name = Language.CurrentLanguage == "Chinese" ? "椁愬巺鐏�2" : "Dining room light 2",
                     spk = SPK.LightSwitch,
                     roomIds = new List<string>() { room3.roomId },
                     attributes = new List<FunctionAttributes>()
@@ -913,7 +930,7 @@
                 {
                     sid = "scene3",
                     userSceneId = "scene3",
-                    name = "娓╅Θ妯″紡",
+                    name = Language.CurrentLanguage == "Chinese" ? "娓╅Θ妯″紡" : "Warm scene",
                     roomIds = new List<string>() { room3.roomId },
                     gatewayId = "1234567890123456",
                     collect = true,
@@ -950,7 +967,7 @@
                 {
                     sid = "scene4",
                     userSceneId = "scene4",
-                    name = "瑗块妯″紡",
+                    name = Language.CurrentLanguage == "Chinese" ? "瑗块妯″紡" : "Western food mode",
                     roomIds = new List<string>() { room3.roomId },
                     gatewayId = "1234567890123456",
                     collect = false,
@@ -989,7 +1006,7 @@
                 {
                     sid = "ac1",
                     deviceId = "ac1",
-                    name = "鍗у绌鸿皟",
+                    name = Language.CurrentLanguage == "Chinese" ? "鍗у绌鸿皟" : "Bedroom air conditioning",
                     spk = SPK.AcStandard,
                     roomIds = new List<string>() { room3.roomId },
                     attributes = new List<FunctionAttributes>()
@@ -1003,26 +1020,26 @@
                     }
                 };
                 ac.SaveFunctionFile();
-                var scene5 = new Scene()
-                {
-                    sid = "scene5",
-                    userSceneId = "scene5",
-                    name = "闃呰",
-                    roomIds = new List<string>() { room2.roomId },
-                    gatewayId = "1234567890123456",
-                    collect = true,
-                };
-                scene5.SaveSceneFile();
-                var scene6 = new Scene()
-                {
-                    sid = "scene6",
-                    userSceneId = "scene6",
-                    name = "璧峰簥",
-                    roomIds = new List<string>() { room2.roomId },
-                    gatewayId = "1234567890123456",
-                    collect = false,
-                };
-                scene6.SaveSceneFile();
+                //var scene5 = new Scene()
+                //{
+                //    sid = "scene5",
+                //    userSceneId = "scene5",
+                //    name = Language.CurrentLanguage == "Chinese" ? "闃呰" : "Reading mode",
+                //    roomIds = new List<string>() { room2.roomId },
+                //    gatewayId = "1234567890123456",
+                //    collect = true,
+                //};
+                //scene5.SaveSceneFile();
+                //var scene6 = new Scene()
+                //{
+                //    sid = "scene6",
+                //    userSceneId = "scene6",
+                //    name = Language.CurrentLanguage == "Chinese" ? "璧峰簥" : "Wake up scene",
+                //    roomIds = new List<string>() { room2.roomId },
+                //    gatewayId = "1234567890123456",
+                //    collect = false,
+                //};
+                //scene6.SaveSceneFile();
                 #endregion
 
 
@@ -1030,7 +1047,7 @@
                 {
                     sid = "lightSwitch6",
                     deviceId = "lightSwitch6",
-                    name = "娲楁墜闂寸伅",
+                    name = Language.CurrentLanguage == "Chinese" ? "娲楁墜闂寸伅" : "Toilet light",
                     spk = SPK.LightSwitch,
                     roomIds = new List<string>() { room1.roomId },
                     attributes = new List<FunctionAttributes>()
@@ -1045,11 +1062,6 @@
                 #endregion
 
                 var fileList = Common.FileUtlis.Files.ReadFiles();
-
-                foreach (var file in fileList)
-                {
-                    FunctionList.List.IniFunctionList(file,true);
-                }
 
                 Room.CurrentSpatial.InitRoomListFunctions();
 
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index d58d0ec..f057023 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -948,12 +948,8 @@
                     LoadEvent_ControlCurtain(function, btnCurtainClose, btnCurtainOpen);
                 }
 
-                else if (function.spk == SPK.ElectricTV || function.spk == SPK.TvIr || function.spk == SPK.TvXmIr
-                    || function.spk == SPK.StbIr || function.spk == SPK.PjtIr)
+                else if (SPK.NotStatusSpkList.Contains(function.spk))
                 {
-                    //btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
-                    //btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
-
                     Button btnPower;
                     btnPower = new Button()
                     {
@@ -962,6 +958,7 @@
                         Width = Application.GetRealWidth(32),
                         Height = Application.GetRealWidth(32),
                         UnSelectedImagePath = "Public/PowerClose.png",
+                        SelectedImagePath = "Public/PowerOpen.png",
                     };
                     view.AddChidren(btnPower);
                     LoadEvent_ControlTV(function, btnPower);
@@ -1057,62 +1054,8 @@
                     };
                     view.AddChidren(btnSwitch);
 
-
                     btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                     btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
-
-                    //switch (function.Spk_Prefix)
-                    //{
-                    //    //todo 澧炲姞璁惧锛屼富椤垫敹钘忓浘鏍�
-                    //    case FunctionCategory.Light:
-                    //        #region 鐏厜 Light
-                    //        btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightIcon.png";
-                    //        btnIcon.SelectedImagePath = "FunctionIcon/Light/LightOnIcon.png";
-                    //        UpdataFunctionStates(function);
-                    //        #endregion
-                    //        break;
-                    //    case FunctionCategory.AC:
-                    //        #region 绌鸿皟 AC
-                    //        btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcIcon.png";
-                    //        btnIcon.SelectedImagePath = "FunctionIcon/AC/AcOnIcon.png";
-                    //        #endregion
-                    //        break;
-                    //    case FunctionCategory.FloorHeat:
-                    //        #region 鍦扮儹
-                    //        btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingIcon.png";
-                    //        btnIcon.SelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingOnIcon.png";
-                    //        #endregion
-                    //        break;
-                    //    case FunctionCategory.Electric:
-                    //        switch (function.spk)
-                    //        {
-                    //            case SPK.ElectricSocket:
-                    //                btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketIcon.png";
-                    //                btnIcon.SelectedImagePath = "FunctionIcon/Socket/SocketOnIcon.png";
-                    //                break;
-                    //            case SPK.ElectricFan:
-                    //                btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanIcon.png";
-                    //                btnIcon.SelectedImagePath = "FunctionIcon/Electrical/FanOnIcon.png";
-                    //                break;
-                    //            case SPK.ElectricTuyaAirCleaner:
-                    //                btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/AirCleanerIcon.png";
-                    //                btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/AirCleanerIconOn.png";
-                    //                break;
-                    //            case SPK.ElectricTuyaFan:
-                    //                btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/FanIcon.png";
-                    //                btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/FanIconOn.png";
-                    //                break;
-                    //            case SPK.ElectricTuyaWaterValve:
-                    //                btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/WaterValveIcon.png";
-                    //                btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/WaterValveIconOn.png";
-                    //                break;
-                    //            case SPK.ElectricTuyaWeepRobot:
-                    //                btnIcon.SelectedImagePath = "FunctionIcon/HomePageIcon/WeepRobotIcon.png";
-                    //                btnIcon.UnSelectedImagePath = "FunctionIcon/HomePageIcon/WeepRobotIconOn.png";
-                    //                break;
-                    //        }
-                    //        break;
-                    //}
                     LoadEvent_SwitchFunction(function, btnSwitch);
                 }
                 //鍙栨秷鏀惰棌浜嬩欢
@@ -1137,8 +1080,8 @@
                 btnName.MouseUpEventHandler = skipControlPageEvent;
                 btnIcon.MouseUpEventHandler = skipControlPageEvent;
                 btnState.MouseUpEventHandler = skipControlPageEvent;
-                //鐢佃涓嶉渶瑕佹洿鏂扮姸鎬�
-                if(function.spk!= SPK.ElectricTV && function.spk != SPK.StbIr && function.spk != SPK.PjtIr)
+                //涓嶉渶瑕佹洿鏂扮姸鎬佺殑鍔ㄨ兘鍒楄〃
+                if(!SPK.NotStatusSpkList.Contains(function.spk))
                 {
                     UpdataFunctionStates(function);
                 }
@@ -1184,7 +1127,7 @@
                     Width = Application.GetRealWidth(32),
                     UnSelectedImagePath = "Public/FuncInfoSetIcon_white.png",
                 };
-                if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
+                if (scene.userId == UserInfo.Current.ID)
                 {
                     view.AddChidren(btnSettingIcon);
                 }
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
index b84b2a7..f704df6 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -32,6 +32,22 @@
                 if (bodyView != null)
                 {
                     var humiSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorHumidity);
+                    var enviSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorEnvironment);
+                    foreach (var enviTemp in enviSensorList)
+                    {
+                        var tempAttr = enviTemp.attributes.Find((obj) => obj.key == "humidity");
+                        if (tempAttr != null)
+                        {
+                            var newTemp = new Function()
+                            {
+                                name = enviTemp.name,
+                                sid = enviTemp.sid,
+                                deviceId = enviTemp.deviceId,
+                                attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = tempAttr.state, curValue = tempAttr.curValue } },
+                            };
+                            humiSensorList.Add(newTemp);
+                        }
+                    }
                     double humiTotalValues = 0;
                     foreach (var temp in humiSensorList)
                     {
@@ -58,6 +74,22 @@
                 if (bodyView != null)
                 {
                     var tempSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorTemperature);
+                    var enviSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorEnvironment);
+                    foreach (var enviTemp in enviSensorList)
+                    {
+                        var tempAttr = enviTemp.attributes.Find((obj) => obj.key == "temperature");
+                        if (tempAttr != null)
+                        {
+                            var newTemp = new Function()
+                            {
+                                name = enviTemp.name,
+                                sid = enviTemp.sid,
+                                deviceId = enviTemp.deviceId,
+                                attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = tempAttr.state, curValue = tempAttr.curValue } },
+                            };
+                            tempSensorList.Add(newTemp);
+                        }
+                    }
                     double tempTotalValues = 0;
                     foreach (var temp in tempSensorList)
                     {
@@ -359,6 +391,13 @@
                 btnSwitch.IsSelected = !btnSwitch.IsSelected;
                 new System.Threading.Thread(() =>
                 {
+                    if(SPK.NotStatusSpkList.Contains(function.spk))
+                    {
+                        System.Threading.Thread.Sleep(1000);
+                        Application.RunOnMainThread(() => {
+                            btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                        });
+                    }
                     function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off";
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     if (function.spk == SPK.LightDimming || function.spk == SPK.LightRGB)
@@ -388,21 +427,35 @@
         /// <summary>
         /// 鍔犺浇鐢佃鎺у埗浜嬩欢
         /// </summary>
-        /// <param name="tV"></param>
-        /// <param name="button"></param>
-        void LoadEvent_ControlTV(Function tV, Button button)
+        /// <param name="function"></param>
+        /// <param name="btnSwitch"></param>
+        void LoadEvent_ControlTV(Function function, Button btnSwitch)
         {
-            button.MouseUpEventHandler = (sender, e) =>
+            btnSwitch.MouseUpEventHandler = (sender, e) =>
             {
                 if (DB_ResidenceData.Instance.GatewayType == 1)
                 {
-                    Dictionary<string, string> d = new Dictionary<string, string>();
-                    d.Add("on_off", "");
-                    Control.Ins.SendWriteCommand(tV, d);
+                    btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                    new System.Threading.Thread(() =>
+                    {
+                        if (SPK.NotStatusSpkList.Contains(function.spk))
+                        {
+                            System.Threading.Thread.Sleep(2000);
+                            Application.RunOnMainThread(() =>
+                            {
+                                btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                            });
+                        }
+
+                        Dictionary<string, string> d = new Dictionary<string, string>();
+                        d.Add("on_off", "");
+                        Control.Ins.SendWriteCommand(function, d);
+                    })
+                    { IsBackground = true }.Start();
                 }
                 else
                 {
-                    new TV().ControlTV(InfraredCode_TV.Power, tV);
+                    new TV().ControlTV(InfraredCode_TV.Power, function);
                 }
             };
         }
diff --git a/HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs b/HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs
index 05cabc6..f00ffbe 100644
--- a/HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/MessageCenterPage.cs
@@ -134,7 +134,7 @@
             };
 #endregion
 
-#region 鍒嗕韩涓庡姛鑳�
+            #region 鍒嗕韩涓庡姛鑳�
             shareMenuButton = new MenuButton()
             {
                 X = allMenuButton.Right,
@@ -150,7 +150,7 @@
                 MenuButtonSelect(1);
             };
             shareMenuButton.SelectAction = shateAction;
-#endregion
+            #endregion
 
 #region 鎶ヨ绫�
             alarmMenuButton = new MenuButton()
diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
index 7198795..32ef478 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
@@ -18,7 +18,6 @@
         {
             Application.RunOnMainThread((Action)(() =>
             {
-
                 try
                 {
                     if (view == null || scrolView == null || updataFunction == null)
@@ -111,7 +110,12 @@
                                         #endregion
                                         case FunctionCategory.Curtain:
                                             #region 绐楀笜鏇存柊
-                                            var percent = updataFunction.GetAttrState(FunctionAttributeKey.OnOff) == "off" ? 0 : 100;
+                                            var onoffString = updataFunction.GetAttrState(FunctionAttributeKey.OnOff);
+                                            if (onoffString == "stop")
+                                            {
+                                                return;
+                                            }
+                                            var percent = onoffString == "off" ? 0 : 100;
                                             if(updataFunction.GetAttributes().Contains(FunctionAttributeKey.Percent))
                                             {
                                                 string percentString = updataFunction.GetAttrState(FunctionAttributeKey.Percent);
diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
index 2f3552a..606a378 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
@@ -184,16 +184,22 @@
             /// <summary>
             /// 鏄剧ず鏂瑰紡鍒囨崲鎸夐挳
             /// </summary>
-            //btnSwitchDipaly = new Button()
-            //{
-            //    X = Application.GetRealWidth(335),
-            //    Y = Application.GetRealHeight(12),
-            //    Width = Application.GetMinRealAverage(28),
-            //    Height = Application.GetMinRealAverage(28),
-            //    UnSelectedImagePath = "Classification/ToggleDisplayThumbnail.png",//缂╃暐鍥�
-            //    SelectedImagePath = "Classification/ToggleDisplayLarge.png",
-            //};
-            //roomFloorChangeView.AddChidren(btnSwitchDipaly);
+            btnSwitchDipaly = new Button()
+            {
+                X = Application.GetRealWidth(335),
+                Y = Application.GetRealHeight(12),
+                Width = Application.GetMinRealAverage(28),
+                Height = Application.GetMinRealAverage(28),
+                UnSelectedImagePath = "Classification/ToggleDisplayThumbnail.png",//缂╃暐鍥�
+                SelectedImagePath = "Classification/ToggleDisplayLarge.png",
+                IsSelected = OnAppConfig.Instance.IsShowBigPicture
+            };
+            roomFloorChangeView.AddChidren(btnSwitchDipaly);
+            btnSwitchDipaly.MouseUpEventHandler = (sender, e) => {
+               OnAppConfig.Instance.IsShowBigPicture = !OnAppConfig.Instance.IsShowBigPicture;
+                btnSwitchDipaly.IsSelected = OnAppConfig.Instance.IsShowBigPicture;
+                LoadRoomRows(true);
+            };
             #endregion
 
             /// <summary>
@@ -216,179 +222,383 @@
         /// <summary>
         /// 鍔犺浇鎴块棿鍒楄〃鍖哄煙
         /// </summary>
-        void LoadRoomRows()
+        /// <param name="animationEffect">鍔ㄧ敾鏁堟灉</param>
+        void LoadRoomRows(bool animationEffect = false)
         {
-            roomListView.RemoveAll();
-            foreach (var room in roomsShowed)
+            if (animationEffect)
             {
-                var roomView = new FrameLayout()
+                ///绉诲姩鏂瑰悜
+                var runDirection = OnAppConfig.Instance.IsShowBigPicture ? 1 : -1;
+                for (int i = 0; i < roomListView.ChildrenCount; i++)
                 {
-                    Gravity = Gravity.CenterHorizontal,
-                    Width = Application.GetRealWidth(343),
-                    Height = Application.GetRealWidth(192),//2020-12-01 鎴块棿鍥剧墖姣斾緥鏀瑰洖16:9
-                    Radius = (uint)Application.GetRealWidth(12),
-                    Tag = room.roomId,
-                };
-                roomListView.AddChidren(roomView);
+                    var childView = roomListView.GetChildren(i);
 
-                var roomViewbg = new ImageView()
-                {
-                    Width = Application.GetRealWidth(343),
-                    Height = Application.GetRealWidth(192),//2020-12-01 鎴块棿鍥剧墖姣斾緥鏀瑰洖16:9
-                    //ImagePath = room.backgroundImage,
-                    Radius = (uint)Application.GetRealWidth(12),
-                };
-                roomView.AddChidren(roomViewbg);
-
-                //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶
-                ImageUtlis.Current.LoadLocalOrNetworkImages(room.backgroundImage, roomViewbg);
-
-                var roomViewbgColor = new Button()
-                {
-                    Radius = (uint)Application.GetRealWidth(12),
-                    BackgroundColor = 0x19333333,
-                };
-                roomView.AddChidren(roomViewbgColor);
-
-                var btnFloorAndRoomName = new Button()
-                {
-                    X = Application.GetRealWidth(16),
-                    Y = Application.GetRealHeight(12 - 2),
-                    Width = Application.GetRealWidth(266),
-                    Height = Application.GetRealHeight(22 + 2 + 2),
-                    Text = room.floorName + room.roomName,
-                    TextAlignment = TextAlignment.CenterLeft,
-                    TextColor = CSS_Color.MainBackgroundColor,
-                    TextSize = CSS_FontSize.SubheadingFontSize,
-                };
-                roomView.AddChidren(btnFloorAndRoomName);
-
-                #region 鐜鏁版嵁
-                //var environmentalView = new FrameLayout()
-                //{
-                //    Y = Application.GetRealHeight(2) + btnFloorAndRoomName.Bottom,
-                //    Height = Application.GetRealHeight(32),
-                //    Tag = "EnvironmentalView",
-                //};
-                //roomView.AddChidren(environmentalView);
-
-                //Button btnTempIcon = new Button()
-                //{
-                //    X = Application.GetRealWidth(12),
-                //    Gravity = Gravity.CenterVertical,
-                //    Width = Application.GetMinRealAverage(16),
-                //    Height = Application.GetMinRealAverage(16),
-                //    UnSelectedImagePath = "Public/DeviceInfoIcon/TempIcon.png",
-                //};
-                //environmentalView.AddChidren(btnTempIcon);
-
-                //var btnTempValues = new Button()
-                //{
-                //    X = btnTempIcon.Right + Application.GetRealWidth(4),
-                //    Width = Application.GetRealWidth(30),
-                //    Gravity = Gravity.CenterVertical,
-                //    TextColor = CSS_Color.MainBackgroundColor,
-                //    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                //    Text = "--掳",
-                //    TextAlignment = TextAlignment.CenterLeft,
-                //    Tag = "TempValues"
-                //};
-                //environmentalView.AddChidren(btnTempValues);
-
-                //Button btnHumidityIcon = new Button()
-                //{
-                //    X = btnTempValues.Right + Application.GetRealWidth(2),
-                //    Gravity = Gravity.CenterVertical,
-                //    Width = Application.GetMinRealAverage(16),
-                //    Height = Application.GetMinRealAverage(16),
-                //    UnSelectedImagePath = "Public/DeviceInfoIcon/HumidityIcon.png",
-                //};
-                //environmentalView.AddChidren(btnHumidityIcon);
-
-                //var btnHumidityValues = new Button()
-                //{
-                //    X = btnHumidityIcon.Right + Application.GetRealWidth(4),
-                //    Width = Application.GetRealWidth(30),
-                //    Gravity = Gravity.CenterVertical,
-                //    TextColor = CSS_Color.MainBackgroundColor,
-                //    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                //    Text = "--%",
-                //    TextAlignment = TextAlignment.CenterLeft,
-                //    Tag = "HumidityValues"
-                //};
-                //environmentalView.AddChidren(btnHumidityValues);
-
-                //Button btnPm25Icon = new Button()
-                //{
-                //    X = btnHumidityValues.Right + Application.GetRealWidth(2),
-                //    Gravity = Gravity.CenterVertical,
-                //    Width = Application.GetMinRealAverage(16),
-                //    Height = Application.GetMinRealAverage(16),
-                //    UnSelectedImagePath = "Public/DeviceInfoIcon/Pm25Icon.png",
-                //};
-                //environmentalView.AddChidren(btnPm25Icon);
-
-                //var btnPm25Values = new Button()
-                //{
-                //    X = btnPm25Icon.Right + Application.GetRealWidth(4),
-                //    Width = Application.GetRealWidth(30),
-                //    Gravity = Gravity.CenterVertical,
-                //    TextColor = CSS_Color.MainBackgroundColor,
-                //    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                //    Text = "--",
-                //    TextAlignment = TextAlignment.CenterLeft,
-                //    Tag = "Pm25Values"
-                //};
-                //environmentalView.AddChidren(btnPm25Values);
-                //roomView.AddChidren(environmentalView);
-                #endregion
-                var btnAllClose = new Button()
-                {
-                    X = Application.GetRealWidth(282),
-                    Y = Application.GetRealWidth(126),
-                    Width = Application.GetMinRealAverage(58),
-                    Height = Application.GetMinRealAverage(58),
-                    UnSelectedImagePath = "Classification/Room/AllCloseIcon.png",
-                    Tag = "AllClose",
-                    Visible = false
-                };
-                roomView.AddChidren(btnAllClose);
-                LoadEvent_CloseAllFunction(btnAllClose, room);
-
-                var btn = new Button()
-                {
-                    Height = Application.GetRealWidth(20),
-                };
-                roomListView.AddChidren(btn);
-
-                roomViewbgColor.MouseUpEventHandler += (sender, e) =>
-                {
-                    Action ReloadRoomName = () =>
+                    if (childView.GetType() == typeof(FrameLayout))
                     {
-                        btnFloorAndRoomName.Text = room.floorName + room.roomName;
-                    };
+                        var roomView = childView as FrameLayout;
 
-                    //鎴块棿鍒犻櫎浜嬩欢
-                    Action deleteAction = () =>
+                        //澶у浘鏄剧ず
+                        if (OnAppConfig.Instance.IsShowBigPicture)
+                        {
+                            LoadBigPirtureRoomRow(roomView, roomsShowed[i]);
+                        }
+                        else//鏃犲浘鏄剧ず
+                        {
+                            LoadSmallPirtureRoomRow(roomView, roomsShowed[i]);
+                        }
+                    }
+
+                    new System.Threading.Thread(() =>
                     {
-                        roomView.RemoveFromParent();
-                    };
+                        //闇�瑕佺Щ鍔ㄧ殑楂樺害
+                        var runHeight = Application.GetRealWidth(i * 142);
 
-                    //鎴块棿鑳屾櫙鍥句慨鏀逛簨浠跺洖璋�
-                    Action modifyImageAction = () =>
+                        int runCount = 0;
+                        //寰幆娆℃暟锛屽姩鐢绘晥鏋滈渶瑕佸湪1绉� 锛�10娆★級鍐呭畬鎴�
+                        while (runCount < 9)
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                if (childView.GetType() == typeof(FrameLayout))
+                                {
+                                    childView.Height += Application.GetRealWidth(14) * runDirection;
+                                }
+                                if (i > 0)
+                                {
+                                    childView.Y += runDirection * Application.GetRealWidth(14 * i);
+                                }
+                            });
+                            runCount++;
+                            System.Threading.Thread.Sleep(8);
+                        }
+                        Application.RunOnMainThread(() =>
+                        {
+                            childView.Y += runHeight * runDirection;
+
+                            if (childView.GetType() == typeof(FrameLayout))
+                            {
+                                if (runDirection == 1)
+                                {
+                                    childView.Height = Application.GetRealWidth(192+20);
+                                }
+                                else
+                                {
+                                    childView.Height = Application.GetRealWidth(70+20);
+                                }
+                            }
+                        });
+                    })
+                    { IsBackground = true, Priority = System.Threading.ThreadPriority.Highest }.Start();
+                }
+            }
+            else
+            {
+                roomListView.RemoveAll();
+                foreach (var room in roomsShowed)
+                {
+                    //澶у浘鏄剧ず
+                    if (OnAppConfig.Instance.IsShowBigPicture)
                     {
-                        //roomViewbg.ImagePath = room.backgroundImage;
-                        ImageUtlis.Current.LoadLocalOrNetworkImages(room.backgroundImage, roomViewbg);
-                    };
+                        roomFloorChangeView.BackgroundColor = roomListView.BackgroundColor = CSS_Color.MainBackgroundColor;
+                        var roomView = new FrameLayout()
+                        {
+                            Gravity = Gravity.CenterHorizontal,
+                            Width = Application.GetRealWidth(343),
+                            Height = Application.GetRealWidth(192 + 20),//2020-12-01 鎴块棿鍥剧墖姣斾緥鏀瑰洖16:9
+                            Radius = (uint)Application.GetRealWidth(12),
+                            Tag = room.roomId,
+                        };
+                        roomListView.AddChidren(roomView);
 
-                    var view = new RoomPage(room, ReloadRoomName, deleteAction, modifyImageAction);
-                    MainPage.BasePageView.AddChidren(view);
-                    view.LoadPage();
-                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-                };
+                        LoadBigPirtureRoomRow(roomView, room);
 
+                    }
+                    else//鏃犲浘鏄剧ず
+                    {
+                        roomFloorChangeView.BackgroundColor = roomListView.BackgroundColor = CSS_Color.BackgroundColor;
+                        var roomView = new FrameLayout()
+                        {
+                            Gravity = Gravity.CenterHorizontal,
+                            Width = Application.GetRealWidth(343),
+                            Height = Application.GetRealWidth(70 + 20),
+                            Radius = (uint)Application.GetRealWidth(12),
+                            Tag = room.roomId,
+                            BackgroundColor = CSS_Color.BackgroundColor,
+                        };
+                        roomListView.AddChidren(roomView);
+                        LoadSmallPirtureRoomRow(roomView, room);
+                    }
+                }
             }
         }
+
+        /// <summary>
+        /// 鍔犺浇澶у浘鎴块棿row
+        /// </summary>
+        /// <param name="roomView"></param>
+        /// <param name="room"></param>
+        void LoadBigPirtureRoomRow(FrameLayout roomView, Room room)
+        {
+            roomView.RemoveAll();
+            roomFloorChangeView.BackgroundColor = roomListView.BackgroundColor = CSS_Color.MainBackgroundColor;
+            roomView.BackgroundColor = CSS_Color.MainBackgroundColor;
+            var roomViewbg = new ImageView()
+            {
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealWidth(192),//2020-12-01 鎴块棿鍥剧墖姣斾緥鏀瑰洖16:9
+                Radius = (uint)Application.GetRealWidth(12),
+            };
+            roomView.AddChidren(roomViewbg);
+
+            //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶
+            ImageUtlis.Current.LoadLocalOrNetworkImages(room.backgroundImage, roomViewbg);
+
+            var btnFloorAndRoomName = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Y = Application.GetRealHeight(12 - 2),
+                Width = Application.GetRealWidth(266),
+                Height = Application.GetRealHeight(22 + 2 + 2),
+                Text = room.floorName + room.roomName,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = CSS_Color.MainBackgroundColor,
+                TextSize = CSS_FontSize.SubheadingFontSize,
+            };
+            roomView.AddChidren(btnFloorAndRoomName);
+
+            #region 鐜鏁版嵁
+            //var environmentalView = new FrameLayout()
+            //{
+            //    Y = Application.GetRealHeight(2) + btnFloorAndRoomName.Bottom,
+            //    Height = Application.GetRealHeight(32),
+            //    Tag = "EnvironmentalView",
+            //};
+            //roomView.AddChidren(environmentalView);
+
+            //Button btnTempIcon = new Button()
+            //{
+            //    X = Application.GetRealWidth(12),
+            //    Gravity = Gravity.CenterVertical,
+            //    Width = Application.GetMinRealAverage(16),
+            //    Height = Application.GetMinRealAverage(16),
+            //    UnSelectedImagePath = "Public/DeviceInfoIcon/TempIcon.png",
+            //};
+            //environmentalView.AddChidren(btnTempIcon);
+
+            //var btnTempValues = new Button()
+            //{
+            //    X = btnTempIcon.Right + Application.GetRealWidth(4),
+            //    Width = Application.GetRealWidth(30),
+            //    Gravity = Gravity.CenterVertical,
+            //    TextColor = CSS_Color.MainBackgroundColor,
+            //    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+            //    Text = "--掳",
+            //    TextAlignment = TextAlignment.CenterLeft,
+            //    Tag = "TempValues"
+            //};
+            //environmentalView.AddChidren(btnTempValues);
+
+            //Button btnHumidityIcon = new Button()
+            //{
+            //    X = btnTempValues.Right + Application.GetRealWidth(2),
+            //    Gravity = Gravity.CenterVertical,
+            //    Width = Application.GetMinRealAverage(16),
+            //    Height = Application.GetMinRealAverage(16),
+            //    UnSelectedImagePath = "Public/DeviceInfoIcon/HumidityIcon.png",
+            //};
+            //environmentalView.AddChidren(btnHumidityIcon);
+
+            //var btnHumidityValues = new Button()
+            //{
+            //    X = btnHumidityIcon.Right + Application.GetRealWidth(4),
+            //    Width = Application.GetRealWidth(30),
+            //    Gravity = Gravity.CenterVertical,
+            //    TextColor = CSS_Color.MainBackgroundColor,
+            //    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+            //    Text = "--%",
+            //    TextAlignment = TextAlignment.CenterLeft,
+            //    Tag = "HumidityValues"
+            //};
+            //environmentalView.AddChidren(btnHumidityValues);
+
+            //Button btnPm25Icon = new Button()
+            //{
+            //    X = btnHumidityValues.Right + Application.GetRealWidth(2),
+            //    Gravity = Gravity.CenterVertical,
+            //    Width = Application.GetMinRealAverage(16),
+            //    Height = Application.GetMinRealAverage(16),
+            //    UnSelectedImagePath = "Public/DeviceInfoIcon/Pm25Icon.png",
+            //};
+            //environmentalView.AddChidren(btnPm25Icon);
+
+            //var btnPm25Values = new Button()
+            //{
+            //    X = btnPm25Icon.Right + Application.GetRealWidth(4),
+            //    Width = Application.GetRealWidth(30),
+            //    Gravity = Gravity.CenterVertical,
+            //    TextColor = CSS_Color.MainBackgroundColor,
+            //    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+            //    Text = "--",
+            //    TextAlignment = TextAlignment.CenterLeft,
+            //    Tag = "Pm25Values"
+            //};
+            //environmentalView.AddChidren(btnPm25Values);
+            //roomView.AddChidren(environmentalView);
+            #endregion
+
+            var roomViewbgColor = new Button()
+            {
+                Height = Application.GetRealWidth(192),
+                Radius = (uint)Application.GetRealWidth(12),
+                BackgroundColor = 0x19333333,
+            };
+            roomView.AddChidren(roomViewbgColor);
+
+            var btnAllClose = new Button()
+            {
+                X = Application.GetRealWidth(282),
+                Y = Application.GetRealWidth(126),
+                Width = Application.GetMinRealAverage(48),
+                Height = Application.GetMinRealAverage(48),
+                UnSelectedImagePath = "Classification/Room/AllCloseIcon.png",
+                Tag = "AllClose",
+                Visible = false
+            };
+            roomView.AddChidren(btnAllClose);
+            LoadEvent_CloseAllFunction(btnAllClose, room);
+
+            //var btn = new Button()
+            //{
+            //    Y = Application.GetRealWidth(192),
+            //    Height = Application.GetRealWidth(20),
+            //    BackgroundColor = CSS_Color.MainBackgroundColor,
+            //};
+            //roomView.AddChidren(btn);
+
+            roomViewbgColor.MouseUpEventHandler += (sender, e) =>
+            {
+                Action ReloadRoomName = () =>
+                {
+                    btnFloorAndRoomName.Text = room.floorName + room.roomName;
+                };
+
+                //鎴块棿鍒犻櫎浜嬩欢
+                Action deleteAction = () =>
+                {
+                    roomView.RemoveFromParent();
+                };
+
+                //鎴块棿鑳屾櫙鍥句慨鏀逛簨浠跺洖璋�
+                Action modifyImageAction = () =>
+                {
+                    //roomViewbg.ImagePath = room.backgroundImage;
+                    ImageUtlis.Current.LoadLocalOrNetworkImages(room.backgroundImage, roomViewbg);
+                };
+
+                var view = new RoomPage(room, ReloadRoomName, deleteAction, modifyImageAction);
+                MainPage.BasePageView.AddChidren(view);
+                view.LoadPage();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+        }
+        /// <summary>
+        /// 璁拌浇灏忓浘鎴块棿row
+        /// </summary>
+        void LoadSmallPirtureRoomRow(FrameLayout roomView, Room room)
+        {
+            roomView.RemoveAll();
+            roomFloorChangeView.BackgroundColor = roomListView.BackgroundColor = CSS_Color.BackgroundColor;
+            roomView.BackgroundColor = CSS_Color.BackgroundColor;
+
+
+            var viewbg = new ImageView()
+            {
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealWidth(70),
+                Radius = (uint)Application.GetRealWidth(12),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+            };
+            roomView.AddChidren(viewbg);
+
+            var btnRoomName = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                //Y = Application.GetRealHeight(12 - 2),
+                Width = Application.GetRealWidth(266),
+                Height = Application.GetRealHeight(52),
+                Text = room.roomName,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextSize = CSS_FontSize.TextFontSize,
+            };
+            roomView.AddChidren(btnRoomName);
+
+            var btnFloorName = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Y = Application.GetRealHeight(19),
+                Width = Application.GetRealWidth(266),
+                Height = Application.GetRealHeight(46),
+                Text = room.floorName,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = CSS_Color.PromptingColor1,
+                TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
+            };
+            roomView.AddChidren(btnFloorName);
+
+            var roomViewbg = new ImageView()
+            {
+                Width = Application.GetRealWidth(343),
+                Height = Application.GetRealWidth(70),
+                Radius = (uint)Application.GetRealWidth(12),
+            };
+            roomView.AddChidren(roomViewbg);
+
+            var btnAllClose = new Button()
+            {
+                X = Application.GetRealWidth(288),
+                Y = Application.GetRealWidth(10),
+                Width = Application.GetMinRealAverage(58),
+                Height = Application.GetMinRealAverage(58),
+                UnSelectedImagePath = "Classification/Room/AllCloseIcon2.png",
+                Tag = "AllClose",
+                Visible = false
+            };
+            roomView.AddChidren(btnAllClose);
+            LoadEvent_CloseAllFunction(btnAllClose, room);
+
+            //var btn = new Button()
+            //{
+            //    Y = Application.GetRealWidth(70),
+            //    Height = Application.GetRealWidth(20),
+            //    BackgroundColor = CSS_Color.BackgroundColor,
+            //};
+            //roomView.AddChidren(btn);
+
+            roomViewbg.MouseUpEventHandler += (sender, e) =>
+            {
+                Action ReloadRoomName = () =>
+                {
+                    btnFloorName.Text = room.floorName;
+                    btnRoomName.Text = room.roomName;
+                };
+
+                //鎴块棿鍒犻櫎浜嬩欢
+                Action deleteAction = () =>
+                {
+                    roomView.RemoveFromParent();
+                };
+                Action action = () =>
+                {
+                };
+
+                var view = new RoomPage(room, ReloadRoomName, deleteAction, action);
+                MainPage.BasePageView.AddChidren(view);
+                view.LoadPage();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+        }
+
 
         /// <summary>
         /// 鍔犺浇鍔熻兘鍒楄〃鐣岄潰
@@ -486,25 +696,30 @@
                         break;
                     case ShowFunction.FreshAir:
                         functionCount = FunctionList.List.GetAirFreshList().Count;
+                        functionOnCount = FunctionList.List.GetAirFreshList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
                         break;
                     case ShowFunction.Music:
-                        functionCount = Music.A31MusicModel.A31MusicModelList.Count;
-                        functionOnCount = Music.A31MusicModel.A31MusicModelList.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
-                        if(functionCount == 0)
-                        {
-                            functionCount = FunctionList.List.GetMusicList().Count;
-                        }
+                        //functionCount = Music.A31MusicModel.A31MusicModelList.Count;
+                        //functionOnCount = Music.A31MusicModel.A31MusicModelList.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+                        //if(functionCount == 0)
+                        //{
+                        //    functionCount = FunctionList.List.GetMusicList().Count;
+                        //}
+                        functionCount = 1;
                         break;
                     case ShowFunction.Panel:
                         break;
                     case ShowFunction.SecurityMonitoring:
-                        functionCount = 1;
+                        if (!MainPage.NoLoginMode)
+                        {
+                            functionCount = 1;
+                        }
                         break;
                     case ShowFunction.Sensor:
                         functionCount = FunctionList.List.GetArmSensorList().Count;
                         break;
                     case ShowFunction.VideoIntercom:
-                        if (FunctionList.List.videoIntercom != null)
+                        if (FunctionList.List.videoIntercom != null && FunctionList.List.videoIntercom.Count > 0)
                         {
                             functionCount = 1;
                         }
@@ -572,7 +787,7 @@
                 functionView.AddChidren(btnName);
 
                 if (item != ShowFunction.Environmental && item != ShowFunction.Sensor && item != ShowFunction.VideoIntercom
-                    && item != ShowFunction.SecurityMonitoring && item != ShowFunction.FreshAir
+                    && item != ShowFunction.SecurityMonitoring && item != ShowFunction.FreshAir && item != ShowFunction.Music
                     && item != ShowFunction.EnergyMonitoring && item != ShowFunction.SecurityCenter
                     && functionCount != 0)
                 {
@@ -813,12 +1028,12 @@
                         btnName.TextID = StringId.Sensor;
                         functionPageTitleId = StringId.Sensor;
                         break;
-                    case ShowFunction.VideoIntercom:
+                    case ShowFunction.VideoIntercom://鍙瀵硅
                         btnName.TextID = StringId.VideoIntercom;
                         btnFunctionViewBg.MouseUpEventHandler = (sender, e) =>
                         {
                             var videoMethod = new UI2.FuntionControlView.Video.VideoMethod();
-                            videoMethod.MianView(this,FunctionList.List.videoIntercom);
+                            videoMethod.MianView(this);
                         };
                         break;
                     case ShowFunction.SecurityCenter:
diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
index d480411..7012fba 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
@@ -331,8 +331,12 @@
                 {
                     try
                     {
-                        //鍏ㄥ紑鍏ㄥ叧
-                        //if (DB_ResidenceData.Instance.GatewayType == 0 && !Control.Ins.IsRemote)
+                        //浼戠湢鏃堕棿(ms)
+                        int sleepTime = 100;
+                        if(DB_ResidenceData.Instance.GatewayType == 0)
+                        {
+                            sleepTime = 200;
+                        }
                         if (Control.Ins.GatewayOnline_Local)
                         {
                             switch (functionCategory)
@@ -344,7 +348,7 @@
                                         Dictionary<string, string> d = new Dictionary<string, string>();
                                         d.Add(FunctionAttributeKey.OnOff, f.trait_on_off.curValue.ToString());
                                         Control.Ins.SendWriteCommand(f, d);
-                                        System.Threading.Thread.Sleep(100);
+                                        System.Threading.Thread.Sleep(sleepTime);
                                     }
                                     break;
                                 case ShowFunction.FloorHeating:
@@ -354,7 +358,7 @@
                                         Dictionary<string, string> d = new Dictionary<string, string>();
                                         d.Add(FunctionAttributeKey.OnOff, f.trait_on_off.curValue.ToString());
                                         Control.Ins.SendWriteCommand(f, d);
-                                        System.Threading.Thread.Sleep(100);
+                                        System.Threading.Thread.Sleep(sleepTime);
                                     }
                                     break;
                                 case ShowFunction.Light:
@@ -364,7 +368,7 @@
                                         Dictionary<string, string> d = new Dictionary<string, string>();
                                         d.Add(FunctionAttributeKey.OnOff, f.trait_on_off.curValue.ToString());
                                         Control.Ins.SendWriteCommand(f, d);
-                                        System.Threading.Thread.Sleep(100);
+                                        System.Threading.Thread.Sleep(sleepTime);
                                     }
                                     break;
                                 case ShowFunction.Electric:
@@ -374,7 +378,7 @@
                                         Dictionary<string, string> d = new Dictionary<string, string>();
                                         d.Add(FunctionAttributeKey.OnOff, f.trait_on_off.curValue.ToString());
                                         Control.Ins.SendWriteCommand(f, d);
-                                        System.Threading.Thread.Sleep(100);
+                                        System.Threading.Thread.Sleep(sleepTime);
                                     }
                                     break;
                                 case ShowFunction.FreshAir:
@@ -384,7 +388,7 @@
                                         Dictionary<string, string> d = new Dictionary<string, string>();
                                         d.Add(FunctionAttributeKey.OnOff, f.trait_on_off.curValue.ToString());
                                         Control.Ins.SendWriteCommand(f, d);
-                                        System.Threading.Thread.Sleep(100);
+                                        System.Threading.Thread.Sleep(sleepTime);
                                     }
                                     break;
                             }
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
index e0dbadc..27ce249 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -160,7 +160,6 @@
                             LoadLastStatesButton();
                             break;
                         case FunctionCategory.Light:
-                            //btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightThinIcon.png";
                             btnSwitch.IsSelected = function.trait_on_off.curValue.ToString() == "on";
                             LoadLightControl();
                             break;
@@ -309,7 +308,7 @@
                 Height = Application.GetMinRealAverage(32),
                 UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseIcon.png",
                 SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseOnIcon.png",
-                IsSelected = function.GetAttrState(FunctionAttributeKey.Percent) == "0",
+                IsSelected = function.GetAttrState(FunctionAttributeKey.OnOff) == "off",
                 Tag = function.sid + "_off"
             };
             bodyDiv.AddChidren(btnCurtainClose);
@@ -340,7 +339,7 @@
                 UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenIcon.png",
                 SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenOnIcon.png",
                 Tag = function.sid + "_on",
-                IsSelected = function.GetAttrState(FunctionAttributeKey.Percent) != "0"
+                IsSelected = function.GetAttrState(FunctionAttributeKey.OnOff) == "on",
             };
             bodyDiv.AddChidren(btnCurtainOpen);
             if (function.spk == SPK.CurtainRoller)
diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
index 6f234d8..66a2ff8 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
@@ -81,7 +81,7 @@
             {
                 btnSwitch.IsSelected = !btnSwitch.IsSelected;
 
-                if(function.spk == SPK.IrLearn || function.spk == SPK.TvIr || function.spk == SPK.TvXmIr)
+                if(SPK.NotStatusSpkList.Contains( function.spk ))
                 {
                     new System.Threading.Thread(() => {
                         System.Threading.Thread.Sleep(2000);
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation 2.zip b/HDL_ON/UI/UI2/3-Intelligence/Automation 2.zip
new file mode 100644
index 0000000..29f5c62
--- /dev/null
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation 2.zip
Binary files differ
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation.zip b/HDL_ON/UI/UI2/3-Intelligence/Automation.zip
new file mode 100644
index 0000000..252e880
--- /dev/null
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation.zip
Binary files differ
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
index e2ec5ee..4b1896f 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -161,7 +161,7 @@
                     }
                     break;
                 //瓒呭0娉紶鎰熷櫒
-                case SPK.SensoruUtrasonic:
+                case SPK.SensorUtrasonic:
                     {
 
                         LogicView.FunTypeView view = new LogicView.FunTypeView();
@@ -203,7 +203,7 @@
                     }
                     break;
                 //鐜妫�娴嬩紶鎰熷櫒
-                case SPK.SenesorEnvironment:
+                case SPK.SensorEnvironment:
                     {
                         #region 鐣岄潰
                         ///娓╁害
@@ -366,7 +366,7 @@
                     case SPK.SensorDuiShe:
                     case SPK.SensorPir:
                     case SPK.SensorDoorWindow:
-                    case SPK.SensoruUtrasonic:
+                    case SPK.SensorUtrasonic:
                         {
                             keyVlaue = "status";
                         }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
index c279705..9357a40 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -258,7 +258,7 @@
                                         }
                                     }
                                     break;
-                                case SPK.SensoruUtrasonic:
+                                case SPK.SensorUtrasonic:
                                     {
                                         string str = "";
                                         foreach (var dic in dicList)
@@ -315,7 +315,7 @@
                                         }
                                     }
                                     break;
-                                case SPK.SenesorEnvironment:
+                                case SPK.SensorEnvironment:
                                     {
                                         string strtext = "";
                                         foreach (var dic in dicList)
@@ -599,7 +599,7 @@
                             {
                                 //鐢╯id鎵惧埌璁惧锛�
                                 var device = LogicMethod.CurrLogicMethod.GetDevice(inputCondition.sid);
-                                if (device.spk == SPK.SenesorEnvironment)
+                                if (device.spk == SPK.SensorEnvironment)
                                 {
                                     //杩欎釜璁惧姣旇緝鐗规畩
                                     ConditionDeviceFunList conditionDeviceFunList = new ConditionDeviceFunList();
@@ -1549,7 +1549,7 @@
                         }
                     }
                     break;
-                case SPK.SensoruUtrasonic:
+                case SPK.SensorUtrasonic:
                     {
                         foreach (var dic in dicList)
                         {
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
index da993e1..443542a 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -323,9 +323,9 @@
                 case SPK.SensorDuiShe:
                 case SPK.SensorPir:
                 case SPK.SensorDoorWindow:
-                case SPK.SensoruUtrasonic:
+                case SPK.SensorUtrasonic:
                 case SPK.SenesorMegahealth:
-                case SPK.SenesorEnvironment:
+                case SPK.SensorEnvironment:
                     {
                         strPath = "LogicIcon/sensor.png";
                     }
@@ -382,9 +382,9 @@
             || device.spk == SPK.SensorDuiShe
             || device.spk == SPK.SensorPir
             || device.spk == SPK.SensorDoorWindow
-            || device.spk == SPK.SensoruUtrasonic
+            || device.spk == SPK.SensorUtrasonic
             || device.spk == SPK.SenesorMegahealth
-            || device.spk == SPK.SenesorEnvironment
+            || device.spk == SPK.SensorEnvironment
             );
             if (sensor != null)
             {
@@ -433,9 +433,9 @@
                 functionTypeList.Add(SPK.SensorDuiShe);
                 functionTypeList.Add(SPK.SensorPir);
                 functionTypeList.Add(SPK.SensorDoorWindow);
-                functionTypeList.Add(SPK.SensoruUtrasonic);
+                functionTypeList.Add(SPK.SensorUtrasonic);
                 functionTypeList.Add(SPK.SenesorMegahealth);
-                functionTypeList.Add(SPK.SenesorEnvironment);
+                functionTypeList.Add(SPK.SensorEnvironment);
 
 
             }
@@ -471,9 +471,9 @@
                         deviceTypeList.Add(SPK.SensorDuiShe);
                         deviceTypeList.Add(SPK.SensorPir);
                         deviceTypeList.Add(SPK.SensorDoorWindow);
-                        deviceTypeList.Add(SPK.SensoruUtrasonic);
+                        deviceTypeList.Add(SPK.SensorUtrasonic);
                         deviceTypeList.Add(SPK.SenesorMegahealth);
-                        deviceTypeList.Add(SPK.SenesorEnvironment);
+                        deviceTypeList.Add(SPK.SensorEnvironment);
 
                     }
                     break;
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/OnePortAutomation.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/OnePortAutomation.cs
index 37d4567..6da7fb2 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/OnePortAutomation.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/OnePortAutomation.cs
@@ -195,15 +195,21 @@
                     {
                         list.Add(logic.name);
                     }
-                    new LogicView.TipPopView().InputBox(StringId.editName, InpOrOutLogicMethod.GetLogicName(Logic.currlogic), StringId.nameNull, StringId.NameAlreadyExists, list, (logicName, view
-                        ) =>
+                    new LogicView.TipPopView().InputBox(StringId.editName, InpOrOutLogicMethod.GetLogicName(Logic.currlogic), StringId.nameNull, StringId.NameAlreadyExists, list, (logicName, view) =>
                     {
                         Logic.currlogic.name = logicName;
                         Logic.currlogic.sid = LogicMethod.CurrLogicMethod.NewSid();
+                        if (MainPage.NoLoginMode)
+                        {
+                            Logic.currlogic.userLogicId = Guid.NewGuid().ToString();
+                            Logic.LogicList.Add(Logic.currlogic);
+                            LogicMethod.CurrLogicMethod.RemoveAllView();
+                            MainView.MainShow();
+                            return;
+                        }
                         loading.Start();
                         new System.Threading.Thread(() =>
                         {
-
                             try
                             {
                                 //鍙戦�佹柊鍔犻�昏緫鍛戒护锛�
diff --git a/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs b/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
index d647195..6754818 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
@@ -1,5 +1,5 @@
 锘縰sing System;
-using System.Collections.Generic;
+using System.Collections.Generic;
 using HDL_ON.DriverLayer;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
@@ -21,8 +21,8 @@
         /// 鍦烘櫙鍐呭鏄剧ず鍖哄煙
         /// </summary>
         FrameLayout floorChangeView;
-        /// <summary>
-        /// 妤煎眰鎴块棿閫夋嫨鐨勪笅鎷夊璞�
+        /// <summary>
+        /// 妤煎眰鎴块棿閫夋嫨鐨勪笅鎷夊璞�
         /// </summary>
         FloorRoomSelectPopupView floorRoomSelectView = null;
         Button btnSceneTilte;
@@ -136,9 +136,9 @@
             }
             btnAddIcon = new Button()
             {
-                X = Application.GetRealWidth(337-20),
-                Width = Application.GetMinRealAverage(28+30),
-                Height = Application.GetMinRealAverage(28+29),
+                X = Application.GetRealWidth(337 - 20),
+                Width = Application.GetMinRealAverage(28 + 30),
+                Height = Application.GetMinRealAverage(28 + 29),
             };
             //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
             {
@@ -189,7 +189,7 @@
                 Width = Application.GetMinRealAverage(16),
                 Height = Application.GetMinRealAverage(16),
                 X = Application.GetRealWidth(16),
-               Gravity = Gravity.CenterVertical,
+                Gravity = Gravity.CenterVertical,
                 UnSelectedImagePath = "Public/DownIcon.png",
             };
             floorChangeView.AddChidren(btnFloorDownIcon);
@@ -199,7 +199,7 @@
             btnFloor = new Button()
             {
                 X = btnFloorDownIcon.Right,
-               Gravity = Gravity.CenterVertical,
+                Gravity = Gravity.CenterVertical,
                 Width = Application.GetRealWidth(200),
                 Height = Application.GetMinRealAverage(16),
                 TextColor = CSS_Color.FirstLevelTitleColor,
@@ -207,30 +207,30 @@
                 TextAlignment = TextAlignment.CenterLeft,
                 Text = DB_ResidenceData.Instance.CurFloor.roomName,
             };
-            floorChangeView.AddChidren(btnFloor);
-
-            string nowSelectId = null;
-            btnFloor.MouseUpEventHandler += (sender, e) =>
-            {
-                if (this.floorRoomSelectView == null)
-                {
-                    //鍏堝垵濮嬪寲
-                    this.floorRoomSelectView = new FloorRoomSelectPopupView();
-                }
-                //鏄剧ず涓嬫媺鍒楄〃
-                this.floorRoomSelectView.ShowSceneView(btnFloor, (selectId, listScene) =>
-                {
-                    nowSelectId = selectId;
-                    //閲嶆柊鍒锋柊鍦烘櫙鍒楄〃
-                    this.LoadSceneFunctionControlZone(listScene);
-                }, nowSelectId);
+            floorChangeView.AddChidren(btnFloor);
+
+            string nowSelectId = null;
+            btnFloor.MouseUpEventHandler += (sender, e) =>
+            {
+                if (this.floorRoomSelectView == null)
+                {
+                    //鍏堝垵濮嬪寲
+                    this.floorRoomSelectView = new FloorRoomSelectPopupView();
+                }
+                //鏄剧ず涓嬫媺鍒楄〃
+                this.floorRoomSelectView.ShowSceneView(btnFloor, (selectId, listScene) =>
+                {
+                    nowSelectId = selectId;
+                    //閲嶆柊鍒锋柊鍦烘櫙鍒楄〃
+                    this.LoadSceneFunctionControlZone(listScene);
+                }, nowSelectId);
             };
 
             #endregion
-
+
             sceneFunctionView = new VerticalScrolViewLayout()
             {
-                Y = Application.GetRealHeight(53),  
+                Y = Application.GetRealHeight(53),
                 Height = Application.GetRealHeight(667 - 64 - 49 - 52 + 30),
             };
             scenePageView.AddChidren(sceneFunctionView);
@@ -250,15 +250,15 @@
             {
                 int index = 0;
                 //鑾峰彇鑳藉鏄剧ず鐨勫満鏅�
-                if (listScene == null)
-                {
-                    //鍒濆鍊�
-                    if (this.floorRoomSelectView == null)
-                    {
-                        //鍏堝垵濮嬪寲
-                        this.floorRoomSelectView = new FloorRoomSelectPopupView();
-                    }
-                    listScene = this.floorRoomSelectView.GetCanShowListScene();
+                if (listScene == null)
+                {
+                    //鍒濆鍊�
+                    if (this.floorRoomSelectView == null)
+                    {
+                        //鍏堝垵濮嬪寲
+                        this.floorRoomSelectView = new FloorRoomSelectPopupView();
+                    }
+                    listScene = this.floorRoomSelectView.GetCanShowListScene();
                 }
                 foreach (var scene in listScene)
                 {
@@ -413,11 +413,6 @@
                     IsSelected = scene.collect,
                 };
                 view.AddChidren(btnCollection);
-                //2020-12-16 濡傛灉鏄垚鍛橀殣钘忔敹钘忓姛鑳�
-                //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
-                //{
-                //    view.AddChidren(btnCollection);
-                //}
                 btnCollection.MouseUpEventHandler = (sender, e) => {
                     scene.collect = btnCollection.IsSelected = !btnCollection.IsSelected;
                     scene.CollectScene();
@@ -503,7 +498,7 @@
             contentPageView.AddChidren(automationPage);
             UI2.Intelligence.Automation.MainView.automationPage = automationPage;
             UI2.Intelligence.Automation.MainView.MainShow();
-        }
+        }
         #endregion
     }
 
@@ -616,7 +611,7 @@
         /// <summary>
         /// 鍔犺浇鍦烘櫙鎺у埗浜嬩欢
         /// </summary>
-        void LoadEvent_ControlScene(Button btnCoverd, Button btnName, Button btnZone,Button btnShowDelay, Scene scene)
+        void LoadEvent_ControlScene(Button btnCoverd, Button btnName, Button btnZone, Button btnShowDelay, Scene scene)
         {
 
             EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs
index 61abb45..8b7f266 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/CatchSceneAddPage.cs
@@ -1,7 +1,5 @@
 锘縰sing System;
 using System.Collections.Generic;
-using System.Threading;
-using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using Shared;
@@ -21,36 +19,6 @@
         private Button btnChooseZoneViewTitle;
         private VerticalScrolViewLayout functionListView;
         private Button btnComplete;
-
-        #region 鍥炬爣閫夋嫨閮ㄥ垎鍥炬爣
-        /// <summary>
-        /// 鑳屾櫙鍥鹃�夐」鍖哄煙
-        /// </summary>
-        FrameLayout pictureOptionView;
-        /// <summary>
-        /// 鑳屾櫙鍥鹃�夐」閫夋嫨鍖哄煙
-        /// </summary>
-        VerticalScrolViewLayout optionView;
-        /// <summary>
-        /// 榛樿鍥惧簱鎸夐挳
-        /// </summary>
-        Button btnDefaultGallery;
-        /// <summary>
-        /// 鎷嶇収鎸夐挳
-        /// </summary>
-        Button btnTakePicture;
-        /// <summary>
-        /// 鐩稿唽鎸夐挳
-        /// </summary>
-        Button btnAlbum;
-        /// <summary>
-        /// 鍙栨秷鎸夐挳
-        /// </summary>
-        Button btnCancel;
-        #endregion
-
-
-
         /// <summary>
         /// 鎹曟崏鐨勫尯鍩熷垪琛�
         /// </summary>
@@ -69,6 +37,7 @@
                 RemoveFromParent();
             };
         }
+
 
         public void LoadPage()
         {
@@ -105,14 +74,6 @@
 
             //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶
             ImageUtlis.Current.LoadLocalOrNetworkImages(scene.ImagePath, addSceneImageView);
-
-            /// <summary>
-            /// 淇敼鍦烘櫙鑳屾櫙浜嬩欢
-            /// </summary>
-            addSceneImageView.MouseUpEventHandler = (sender, e) =>
-            {
-                LoadPictureOptionView();
-            };
 
             #region 鍦烘櫙鍚嶇Оrow
             sceneNameView = new FrameLayout()
@@ -213,6 +174,71 @@
                 BackgroundColor = CSS_Color.BackgroundColor,
             });
             #endregion
+            #region 鍦烘櫙寤舵椂row
+            /*
+            if (DB_ResidenceData.Instance.GatewayType == 1)
+            {
+                FrameLayout sceneDelayRow = new FrameLayout()
+                {
+                    Y = sceneNameView.Bottom,
+                    Height = Application.GetRealWidth(50),
+                };
+                contentView.AddChidren(sceneDelayRow);
+
+                Button btnSceneDelayRight = new Button()
+                {
+                    X = Application.GetRealWidth(339),
+                    Gravity = Gravity.CenterVertical,
+                    Width = Application.GetMinRealAverage(16),
+                    Height = Application.GetMinRealAverage(16),
+                    UnSelectedImagePath = "Public/Right.png",
+                };
+                sceneDelayRow.AddChidren(btnSceneDelayRight);
+
+                var btnSceneDelayInfo = new Button()
+                {
+                    Width = Application.GetRealWidth(327),
+                    TextAlignment = TextAlignment.CenterRight,
+                    TextColor = CSS_Color.PromptingColor1,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                    Text = scene.GetDelayText()
+                };
+                sceneDelayRow.AddChidren(btnSceneDelayInfo);
+
+                Button btnSceneDelayTitle = new Button()
+                {
+                    X = Application.GetRealWidth(16),
+                    //Width = Application.GetRealWidth(90),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = CSS_FontSize.TextFontSize,
+                    TextID = StringId.SceneDelay,
+                };
+                sceneDelayRow.AddChidren(btnSceneDelayTitle);
+
+                btnSceneDelayTitle.MouseUpEventHandler = (sender, e) =>
+                {
+                    Action<string> action = (obj) => {
+                        scene.delay = obj;
+                        btnSceneDelayInfo.Text = scene.GetDelayText();
+                    };
+                    Dictionary<string, string> items = new Dictionary<string, string>();
+                    items.Add("30", "30s");
+                    items.Add("60", "1min");
+                    items.Add("120", "2min");
+                    items.Add("300", "5min");
+                    new PublicAssmebly().SetSceneDelayDialog(items, action, scene.delay);
+                };
+
+                contentView.AddChidren(new Button()
+                {
+                    Y = sceneDelayRow.Bottom,
+                    Height = Application.GetRealHeight(8),
+                    BackgroundColor = CSS_Color.BackgroundColor,
+                });
+            }
+            */
+            #endregion
 
             #region 閫夋嫨鍖哄煙
             FrameLayout chooseZoneView = new FrameLayout()
@@ -247,6 +273,8 @@
                 BackgroundColor = CSS_Color.BackgroundColor,
             };
             contentView.AddChidren(btnLine1);
+
+
 
             #endregion
 
@@ -302,7 +330,10 @@
                         {
                             if(temp.roomIds.Contains(catchRoom.roomId))
                             {
-                                catchFunctionList.Add(temp);
+                                if (MainPage.SceneSupportFunctionList.Contains(temp.spk))
+                                {
+                                    catchFunctionList.Add(temp);
+                                }
                             }
                         }
                     }
@@ -314,6 +345,8 @@
                 }
             };
         }
+
+
 
         /// <summary>
         /// 鍔犺浇鍔熻兘鍒楄〃
@@ -402,273 +435,6 @@
             }
         }
 
-        /// <summary>
-        /// 鍔犺浇鍥炬爣閫夋嫨閫夐」
-        /// </summary>
-        void LoadPictureOptionView()
-        {
-            var pView = new FrameLayout()
-            {
-                BackgroundColor = CSS_Color.DialogTransparentColor1,
-            };
-            bodyView.AddChidren(pView);
-
-            pictureOptionView = new FrameLayout()
-            {
-                Y = Application.GetRealHeight(445),
-                Height = Application.GetRealHeight(250),
-                AnimateSpeed = 0.3f,
-                Animate = Animate.DownToUp,
-            };
-            pView.AddChidren(pictureOptionView);
-
-            optionView = new VerticalScrolViewLayout()
-            {
-                Gravity = Gravity.CenterHorizontal,
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(150),
-                BackgroundColor = CSS_Color.MainBackgroundColor,
-                Radius = (uint)Application.GetRealWidth(12),
-            };
-            pictureOptionView.AddChidren(optionView);
-
-            btnDefaultGallery = new Button()
-            {
-                Height = Application.GetRealHeight(50),
-                TextAlignment = TextAlignment.Center,
-                TextColor = CSS_Color.TextualColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                TextID = StringId.DefaultGallery,
-            };
-            optionView.AddChidren(btnDefaultGallery);
-
-            optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
-
-            btnTakePicture = new Button()
-            {
-                Height = Application.GetRealHeight(50),
-                TextAlignment = TextAlignment.Center,
-                TextColor = CSS_Color.TextualColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                TextID = StringId.TakePicture,
-            };
-            optionView.AddChidren(btnTakePicture);
-
-            optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
-
-            btnAlbum = new Button()
-            {
-                Height = Application.GetRealHeight(50),
-                TextAlignment = TextAlignment.Center,
-                TextColor = CSS_Color.TextualColor,
-                SelectedTextColor = CSS_Color.MainColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                TextID = StringId.Album,
-            };
-            optionView.AddChidren(btnAlbum);
-
-            optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
-
-            btnCancel = new Button()
-            {
-                Gravity = Gravity.CenterHorizontal,
-                Y = Application.GetRealHeight(8) + optionView.Bottom,
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(50),
-                BackgroundColor = CSS_Color.MainBackgroundColor,
-                Radius = (uint)Application.GetRealWidth(12),
-                TextID = StringId.Cancel,
-                TextColor = CSS_Color.WarningColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-            };
-            pictureOptionView.AddChidren(btnCancel);
-
-
-            LoadEvent_PictureOptionViewEventList(pView);
-        }
-
-        /// <summary>
-        /// 鍔犺浇鑳屾櫙鍥鹃�夋嫨鍖哄煙浜嬩欢鍒楄〃
-        /// </summary>
-        void LoadEvent_PictureOptionViewEventList(FrameLayout pView)
-        {
-            pictureOptionView.MouseUpEventHandler = (sender, e) =>
-            {
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-            pView.MouseUpEventHandler = (sender, e) =>
-            {
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-
-            btnCancel.MouseUpEventHandler = (sender, e) =>
-            {
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-            btnTakePicture.MouseDownEventHandler = (sender, e) => {
-                btnTakePicture.IsSelected = true;
-            };
-            btnTakePicture.MouseUpEventHandler = (sender, e) =>
-            {
-                btnTakePicture.IsSelected = false;
-
-                var imageName = Guid.NewGuid().ToString();
-                CropImage.TakePicture((imagePath) =>
-                {
-                    CropImageCallBack(imagePath);
-
-                }, imageName, 4, 3);
-
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-            btnAlbum.MouseDownEventHandler = (sender, e) => {
-                btnAlbum.IsSelected = true;
-            };
-
-            btnAlbum.MouseUpEventHandler = (sender, e) =>
-            {
-                btnAlbum.IsSelected = false;
-
-                //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
-                var imageName = Guid.NewGuid().ToString();
-                //var imageName = scene.sid;
-                CropImage.SelectPicture((imagePath) =>
-                {
-                    CropImageCallBack(imagePath);
-                }, imageName, 4, 3);
-
-
-                //if (pageTitleId == StringId.EditScene)
-                //{
-                //    scene.SaveFunctionData();
-                //}
-                pictureOptionView.Parent.RemoveFromParent();
-            };
-
-            btnDefaultGallery.MouseUpEventHandler = (sender, e) => {
-                pictureOptionView.Parent.RemoveFromParent();
-                Action<string> action = (obj) => {
-                    scene.ImagePath = obj;
-                    addSceneImageView.ImageBytes = null;//瑙e喅鏈塈mageBytes涓嶅姞杞絀magePath
-                    addSceneImageView.ImagePath = scene.ImagePath;
-                };
-
-                var galleryPage = new GalleryPage(scene.ImagePath, action);
-                MainPage.BasePageView.AddChidren(galleryPage);
-                galleryPage.LoadPage(true);
-                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-            };
-
-        }
-
-        /// <summary>
-        /// 瑁佸壀瀹岀収鐗囧洖璋冿紝缁熶竴澶勭悊
-        /// </summary>
-        /// <param name="imagePath">瑁佸壀鍚庣殑鐪熷疄璺緞</param>
-        /// <param name="imageName">鑷畾涔夌殑鍥剧墖鍚嶇О</param>
-        void CropImageCallBack(string selectImagePath)
-        {
-            if (string.IsNullOrEmpty(selectImagePath) == true)
-            {
-                return;
-            }
-
-            //涓婁紶鎴愬姛鍒板洖璋�
-            Action<string> uploadSuccessAction = (imageUrl) =>
-            {
-                //2020-12-03 闇�瑕佽鏈�鏂扮殑鍥剧墖璺緞鍚屾鍒颁簯绔�
-                scene.ImagePath = imageUrl;
-            };
-            //涓婁紶鍥剧墖鍒颁簯绔�
-            UploadImage(selectImagePath, addSceneImageView, scene, uploadSuccessAction);
-        }
-
-        /// <summary>
-        /// 涓婁紶鍥剧墖鏂规硶
-        /// </summary>
-        /// <param name="selectImagePath">瑁佸壀鍚庣殑鍥剧墖璺緞</param>
-        /// <param name="imageView"></param>
-        /// <param name="uploadSuccessAction"></param>
-        void UploadImage(string selectImagePath, ImageView imageView, Scene mScene, Action<string> uploadSuccessAction)
-        {
-            try
-            {
-                //MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + selectImagePath);
-                //1.璇诲彇瑁佸壀鍚庣殑鍥剧墖锛岀劧鍚庡垹闄�
-                var imageBytes = Shared.IO.FileUtils.ReadFile(selectImagePath);
-                System.IO.File.Delete(selectImagePath);
-
-                var waitPage = new Loading();
-                bodyView.AddChidren(waitPage);
-                waitPage.Start(Language.StringByID(StringId.PleaseWait));
-                //寮�濮嬩笂浼�
-                new Thread(() =>
-                {
-                    try
-                    {
-                        var newImageName = mScene.name.Trim() + ".png";
-                        var uploadImageObj = new UploadImageObj()
-                        {
-                            prefix = "Scene" + Utlis.GetTimestamp(),
-                            fileName = newImageName,
-                            uid = mScene.sid,
-                            content = imageBytes,
-                        };
-
-                        var imageUrl = ImageUtlis.Current.UploadImage(uploadImageObj);
-                        if (!string.IsNullOrEmpty(imageUrl) && imageUrl.Contains(newImageName))
-                        {
-                            //涓婁紶鎴愬姛
-                            Application.RunOnMainThread(() =>
-                            {
-                                //Utlis.WriteLine("涓婁紶鎴愬姛锛�" + imageUrl);
-                                //1.2濡傛灉鏄嚜瀹氫箟鍥剧墖鍒犻櫎涔嬪墠鐨�
-                                if (!string.IsNullOrEmpty(imageView.ImagePath) && !imageView.ImagePath.Contains("Classification/Room/Roombg"))
-                                {
-                                    //Utlis.WriteLine("鍒犻櫎: " + imageView.ImagePath);
-                                    System.IO.File.Delete(imageView.ImagePath);
-                                }
-                                //閲嶅懡鍚嶄繚瀛�
-                                ImageUtlis.Current.WriteFileByBytes(imageUrl, imageBytes);
-                                imageView.ImagePath = null;
-                                imageView.ImageBytes = imageBytes;
-                                //涓婁紶鎴愬姛
-                                Utlis.ShowTip(Language.StringByID(StringId.UploadSuccessfully));
-                                uploadSuccessAction?.Invoke(imageUrl);
-                            });
-                        }
-                        else
-                        {
-                            //涓婁紶澶辫触
-                            Application.RunOnMainThread(() =>
-                            {
-                                //涓婁紶澶辫触
-                                Utlis.ShowTip(Language.StringByID(StringId.UploadFailed));
-                            });
-                        }
-
-                    }
-                    catch (Exception ex)
-                    {
-                    }
-                    finally
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            if (waitPage != null)
-                            {
-                                waitPage.RemoveFromParent();
-                                waitPage = null;
-                            }
-                        });
-                    }
-                })
-                { IsBackground = true }.Start();
-            }
-            catch { }
-        }
 
     }
 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/NewSceneMenuListPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/NewSceneMenuListPage.cs
index 8e94a49..efb7272 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/NewSceneMenuListPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/NewSceneMenuListPage.cs
@@ -63,43 +63,47 @@
             addSceneView.AddChidren(btnAddSceneText);
             #endregion
 
-            #region 鎹曡幏鍦烘櫙
-            FrameLayout catchSceneView = new FrameLayout()
-            {
-                Gravity = Gravity.CenterHorizontal,
-                Y =addSceneView.Bottom,//+ Application.GetRealWidth(10),
-                Width = Application.GetRealWidth(361),
-                Height = Application.GetRealWidth(202),
-                Radius = (uint)Application.GetRealWidth(12),
-            };
-            bodyView.AddChidren(catchSceneView);
 
-            ImageView catchSceneImageView = new ImageView()
+            if (DB_ResidenceData.Instance.GatewayType == 0) { }
+            else
             {
-                Gravity = Gravity.CenterHorizontal,
-                Radius = (uint)Application.GetRealWidth(12),
-                ImagePath = "Intelligence/CreateScene2Bg.png",
-            };
-            catchSceneView.AddChidren(catchSceneImageView);
+                #region 鎹曡幏鍦烘櫙
+                FrameLayout catchSceneView = new FrameLayout()
+                {
+                    Gravity = Gravity.CenterHorizontal,
+                    Y = addSceneView.Bottom,//+ Application.GetRealWidth(10),
+                    Width = Application.GetRealWidth(361),
+                    Height = Application.GetRealWidth(202),
+                    Radius = (uint)Application.GetRealWidth(12),
+                };
+                bodyView.AddChidren(catchSceneView);
 
-            btnCatchSceneBg = new Button()
-            {
-                Radius = (uint)Application.GetRealWidth(12),
-            };
-            catchSceneView.AddChidren(btnCatchSceneBg);
+                ImageView catchSceneImageView = new ImageView()
+                {
+                    Gravity = Gravity.CenterHorizontal,
+                    Radius = (uint)Application.GetRealWidth(12),
+                    ImagePath = "Intelligence/CreateScene2Bg.png",
+                };
+                catchSceneView.AddChidren(catchSceneImageView);
 
-            Button btnCatchSceneText = new Button()
-            {
-                Y = Application.GetRealWidth(126),
-                Height = Application.GetRealWidth(68),
-                TextColor = CSS_Color.MainBackgroundColor,
-                TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
-                TextAlignment = TextAlignment.Center,
-                TextID = StringId.CatchScene,
-            };
-            catchSceneView.AddChidren(btnCatchSceneText);
-            #endregion
+                btnCatchSceneBg = new Button()
+                {
+                    Radius = (uint)Application.GetRealWidth(12),
+                };
+                catchSceneView.AddChidren(btnCatchSceneBg);
 
+                Button btnCatchSceneText = new Button()
+                {
+                    Y = Application.GetRealWidth(126),
+                    Height = Application.GetRealWidth(68),
+                    TextColor = CSS_Color.MainBackgroundColor,
+                    TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
+                    TextAlignment = TextAlignment.Center,
+                    TextID = StringId.CatchScene,
+                };
+                catchSceneView.AddChidren(btnCatchSceneText);
+                #endregion
+            }
 
             /*
             #region 鐢靛奖鍦烘櫙
@@ -150,7 +154,10 @@
         void LoadEventList()
         {
             LoadEvent_SkipAddScenePage();
-            LoadEvent_SkipCatchScenePage();
+            if (DB_ResidenceData.Instance.GatewayType != 0)
+            {
+                LoadEvent_SkipCatchScenePage();
+            }
         }
 
         /// <summary>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs
index 111d2f4..f05323d 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs
@@ -105,6 +105,7 @@
             {
                 Y = Application.GetRealHeight(64),
                 Height = Application.GetRealHeight(603 - 50),
+                //BackgroundColor = CSS_Color.DividingLineColor,
             };
             bodyView.AddChidren(contentView);
             contentView.AddChidren(new Button() { Height = Application.GetRealWidth(12) });
@@ -113,7 +114,7 @@
             {
                 Gravity = Gravity.CenterHorizontal,
                 Width = Application.GetRealWidth(252),
-                Height = Application.GetRealWidth(188 + 24),
+                Height = Application.GetRealWidth(184),
                 Radius = (uint)Application.GetRealWidth(12),
                 BackgroundColor = CSS_Color.MainBackgroundColor,
             };
@@ -325,27 +326,28 @@
 
             functionListView = new VerticalScrolViewLayout()
             {
-                Height = 0,
+                Height = Application.GetRealHeight(228+48),
+                BackgroundColor = CSS_Color.DividingLineColor,
+                ScrollEnabled = false,
             };
             contentView.AddChidren(functionListView);
 
             LoadFunctionRow(functionListView);
 
-            Button btnLine1 = new Button()
-            {
-                //Y = sceneDelayRow.Bottom,
-                Height = Application.GetRealHeight(8),
-                BackgroundColor = CSS_Color.DividingLineColor,
-            };
-            contentView.AddChidren(btnLine1);
+            //Button btnLine1 = new Button()
+            //{
+            //    //Y = sceneDelayRow.Bottom,
+            //    Height = Application.GetRealHeight(8),
+            //};
+            //contentView.AddChidren(btnLine1);
 
-            Button btnLine2 = new Button()
-            {
-                //Y = sceneDelayRow.Bottom,
-                Height = Application.GetRealHeight(228),
-                BackgroundColor = CSS_Color.DividingLineColor,
-            };
-            contentView.AddChidren(btnLine2);
+            //Button btnLine2 = new Button()
+            //{
+            //    //Y = sceneDelayRow.Bottom,
+            //    Height = Application.GetRealHeight(228),
+            //    BackgroundColor = CSS_Color.DividingLineColor,
+            //};
+            //contentView.AddChidren(btnLine2);
             #endregion
 
             Button btnBottomLine = new Button()
@@ -379,7 +381,10 @@
         void LoadFunctionRow(VerticalScrolViewLayout functionListView)
         {
             functionListView.RemoveAll();
-            functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count);
+            if (scene.functions.Count > 4)
+            {
+                functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count);
+            }
             foreach (var scenefunction in scene.functions)
             {
                 var row = new RowLayout()
@@ -482,7 +487,10 @@
                 btnDelSceneFunction.MouseUpEventHandler = (sender, e) => {
                     scene.functions.Remove(scenefunction);
                     row.RemoveFromParent();
-                    functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count);
+                    if (scene.functions.Count > 4)
+                    {
+                        functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count);
+                    }
                 };
             }
         }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
index 3d30cdf..cfab368 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
@@ -331,6 +331,7 @@
 
             functionListView = new VerticalScrolViewLayout() {
                 Height = 0,
+                ScrollEnabled  = false,
             };
             contentView.AddChidren(functionListView);
 
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs
index ede07c9..9401786 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneFunctionListChoosePage.cs
@@ -130,6 +130,10 @@
 
             foreach (var function in FunctionList.List.Functions)
             {
+                if (!MainPage.SceneSupportFunctionList.Contains(function.spk))
+                {
+                    continue;
+                }
                 if (function == null)
                 {
                     continue;
@@ -166,11 +170,7 @@
             }
             foreach (var function in functions)
             {
-                if (function.Spk_Prefix != FunctionCategory.Light &&
-                    function.Spk_Prefix != FunctionCategory.AC &&
-                    function.Spk_Prefix != FunctionCategory.FloorHeat &&
-                    function.Spk_Prefix != FunctionCategory.Curtain
-                    )
+                if (!MainPage.SceneSupportFunctionList.Contains(function.spk))
                 {
                     continue;
                 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
index 418ce6a..93b3af5 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
@@ -49,6 +49,7 @@
                         LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SetTemp));
                         break;
                     case FunctionAttributeKey.Mode:
+
                         LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Mode));
                         break;
                     case FunctionAttributeKey.FanSpeed:
@@ -138,6 +139,7 @@
                 //    }
                 //    catch { }
                 //}
+                
                 if (temp != null)
                 {
                     temp = sceneFunction;
@@ -188,6 +190,13 @@
             {
                 row.AddChidren(new Button() { X = Application.GetRealWidth(16), Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
             }
+            else
+            {
+                if(sceneStatus.value == "stop")
+                {
+                    sceneStatus.value = "on";
+                }
+            }
             Button btnRight = new Button()
             {
                 X = Application.GetRealWidth(339),
@@ -198,15 +207,72 @@
             };
             row.AddChidren(btnRight);
 
+
+            var showCode = "";
+
+            if (sceneStatus.key == FunctionAttributeKey.Mode)
+            {
+                if (DB_ResidenceData.Instance.GatewayType == 0)
+                {
+                    if (SPK.AcSpkList().Contains(sceneFunction.localFunction.spk))
+                    {
+                        //0 鍒跺喎1鍒剁儹锛�2閫氶锛�3鑷姩锛�4闄ゆ箍
+                        switch (sceneStatus.value)
+                        {
+                            case "0":
+                                showCode = "cool";
+                                break;
+                            case "1":
+                                showCode = "heat";
+                                break;
+                            case "2":
+                                showCode = "fan";
+                                break;
+                            case "3":
+                                showCode = "auto";
+                                break;
+                            case "4":
+                                showCode = "dry";
+                                break;
+                        }
+                    }
+                    else if (SPK.FhSpkList().Contains(sceneFunction.localFunction.spk))
+                    {
+                        //1:鏅��,2:鐧藉ぉ,3:澶滄櫄,4:绂诲紑,5:鏃堕棿
+                        switch (sceneStatus.value)
+                        {
+                            case "5":
+                                showCode = "timer";
+                                break;
+                            case "1":
+                                showCode = "normal";
+                                break;
+                            case "2":
+                                showCode = "day";
+                                break;
+                            case "3":
+                                showCode = "night";
+                                break;
+                            case "4":
+                                showCode = "away";
+                                break;
+                        }
+                    }
+                }
+            }
+
             var btnFunctionText = new Button()
             {
                 Width = Application.GetRealWidth(330),
                 TextAlignment = TextAlignment.CenterRight,
                 TextColor = CSS_Color.PromptingColor1,
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                Text = sceneStatus.GetValueText() + sceneStatus.GetUintString()
+                Text = sceneStatus.GetValueText(showCode) + sceneStatus.GetUintString()
             };
             row.AddChidren(btnFunctionText);
+
+
+
             if (sceneStatus.key == FunctionAttributeKey.OnOff)
             {
                 btnOnText = btnFunctionText;
@@ -889,6 +955,65 @@
             var lastText = "";
             Dialog dialog = new Dialog();
 
+            if(DB_ResidenceData.Instance.GatewayType == 0)
+            {
+                if (SPK.AcSpkList().Contains(sceneFunction.localFunction.spk))
+                {
+                    //0 鍒跺喎1鍒剁儹锛�2閫氶锛�3鑷姩锛�4闄ゆ箍
+                    for (int i = 0; i < statusList.Count; i++)
+                    {
+                        if (statusList[i] == "0")
+                        {
+                            statusList[i] = "cool";
+                        }
+                        else if (statusList[i] == "1")
+                        {
+                            statusList[i] = "heat";
+                        }
+                        else if (statusList[i] == "2")
+                        {
+                            statusList[i] = "fan";
+                        }
+                        else if (statusList[i] == "3")
+                        {
+                            statusList[i] = "auto";
+                        }
+                        else if (statusList[i] == "4")
+                        {
+                            statusList[i] = "dry";
+                        }
+                    }
+                }
+                else if (SPK.FhSpkList().Contains(sceneFunction.localFunction.spk))
+                {
+                    //1:鏅��,2:鐧藉ぉ,3:澶滄櫄,4:绂诲紑,5:鏃堕棿
+                    for (int i = 0; i < statusList.Count; i++)
+                    {
+                        if (statusList[i] == "5")
+                        {
+                            statusList[i] = "timer";
+                        }
+                        else if (statusList[i] == "1")
+                        {
+                            statusList[i] = "normal";
+                        }
+                        else if (statusList[i] == "2")
+                        {
+                            statusList[i] = "day";
+                        }
+                        else if (statusList[i] == "3")
+                        {
+                            statusList[i] = "night";
+                        }
+                        else if (statusList[i] == "4")
+                        {
+                            statusList[i] = "away";
+                        }
+                    }
+
+                }
+            }
+
             var pView = new FrameLayout()
             {
                 BackgroundColor = CSS_Color.DialogTransparentColor1,
@@ -995,7 +1120,7 @@
                     TextColor = CSS_Color.FirstLevelTitleColor,
                     TextSize = CSS_FontSize.TextFontSize,
                     Tag = m,
-                    Text = trait.GetValueText()
+                    Text = trait.GetValueText(m)
                 };
                 row.AddChidren(btnPropertyTitle);
 
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/MiniRemoteControl/AddThirdPartyDeviceMenuListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/MiniRemoteControl/AddThirdPartyDeviceMenuListPage.cs
index 58b0c30..278a056 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/MiniRemoteControl/AddThirdPartyDeviceMenuListPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/MiniRemoteControl/AddThirdPartyDeviceMenuListPage.cs
@@ -7,7 +7,7 @@
 namespace HDL_ON.UI
 {
     /// <summary>
-    /// 娣诲姞绗笁鏂硅澶囩殑鑿滃崟鍒楄〃鐣岄潰
+    /// 娣诲姞绗笁鏂硅澶囩殑鑿滃崟鍒楄〃鐣岄潰(宸插簾寮�)
     /// </summary>
     public class AddThirdPartyDeviceMenuListPage : EditorCommonForm
     {
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
index 9c98518..a2c9567 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
@@ -102,10 +102,6 @@
             bool isFrist = true;
             foreach (var device in deviceList)
             {
-                //if (!FunctionList.List.DeviceSpk.Contains(device.spk))
-                //{
-                //    continue;
-                //}
                 FrameLayout row = new FrameLayout()
                 {
                     Height = Application.GetRealHeight(50),
@@ -164,7 +160,10 @@
                     switch (device.spk)
                     {
                         case SPK.IrModule:
-                            new UI2.PersonalCenter.PirDevice.PirMethod().MainView(this, device,()=> {});
+                            new UI2.PersonalCenter.PirDevice.PirMethod().MainView(this, device, () =>
+                            {
+                                contentView.BeginHeaderRefreshing();
+                            });
                             break;
                         case SPK.SenesorMegahealth:
                             var smPage = new SenesorMegahealthManagerPage();
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
index 6af040c..6c82a05 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
@@ -237,16 +237,18 @@
             //浣撻獙妯″紡
             if(MainPage.NoLoginMode)
             {
-
                 Button btnExit = new Button()
                 {
-                    Y = Application.GetRealHeight(58) + personalInfoView.Bottom,
-                    Height = Application.GetRealHeight(50),
+                    Y = Application.GetRealHeight(258) + personalInfoView.Bottom,
+                    Gravity = Gravity.CenterHorizontal,
+                    Height = Application.GetRealHeight(60),
+                    Width = Application.GetRealWidth(330),
                     TextAlignment = TextAlignment.Center,
                     SelectedTextColor = CSS_Color.MainColor,
-                    TextColor = CSS_Color.BackgroundColor,
+                    TextColor = CSS_Color.WarningColor,
                     TextSize = CSS_FontSize.SubheadingFontSize,
                     TextID = StringId.NextStep,
+                    Radius = 10,
                     BackgroundColor = CSS_Color.MainBackgroundColor,
                     SelectedBackgroundColor = CSS_Color.MainBackgroundColor,
                 };
@@ -260,9 +262,11 @@
                 }
                 btnExit.MouseUpEventHandler = (sender, e) =>
                 {
+                    MainPage.NoLoginMode = false;
+                    UserInfo.Current.ClearUserInfo();
                     HDLCommon.Current.Logout();
                 };
-
+                bodyView.AddChidren(btnExit);
                 return;
             }
 
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
index 53fb6d3..9ddce15 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -163,7 +163,6 @@
                     {
                         var regionId = (string)btnHomeName.Tag;
                         dialog.Close();
-                        //LoadEvent_ChangeCurHome(UserInfo.Current.regionList.Find((obj) => obj.RegionID == regionId));
                         LoadEvent_ChangeCurHome(home);
                         LoadContentView();
                     };
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMethod.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMethod.cs
index cbf992b..4d7538c 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMethod.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMethod.cs
@@ -8,7 +8,6 @@
 {
     public class PirMethod
     {
-
         /// <summary>
         /// 绾㈠瀹濈▼搴忎富鍏ュ彛
         /// </summary>
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
index ced74cc..6f4b31f 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs
@@ -36,6 +36,13 @@
                 return Entity.DB_ResidenceData.Instance.CurrentRegion.id;
             }
         }
+
+
+        /// <summary>
+        /// 涔愭subAccessToken
+        /// </summary>
+        public static string LcSubAccessToken = "";
+
         /// <summary>
         /// 鏄惁涓哄叾浠栦富鐢ㄦ埛鍒嗕韩杩囨潵鐨勪綇瀹�
         /// </summary>
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/FloorsManagementPageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/FloorsManagementPageBLL.cs
index de7355a..3ab1bf7 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/FloorsManagementPageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/FloorsManagementPageBLL.cs
@@ -40,14 +40,19 @@
                         {
                             try
                             {
+                                var oldName = floor.roomName;
+                                floor.roomName = newName;
                                 var editResult = SpatialInfo.CurrentSpatial.UpdateFloor(floor);
                                 Application.RunOnMainThread(() =>
                                 {
                                     if (editResult == DAL.Server.StateCode.SUCCESS)
                                     {
-                                        floor.roomName = newName;
                                         btn.Text = newName;
                                     }
+                                    else
+                                    {
+                                        floor.roomName = oldName;
+                                    }
                                 });
                             }
                             catch { }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePage.cs
index ee17871..849be74 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePage.cs
@@ -282,7 +282,11 @@
                 Height = Application.GetRealHeight(65),
                 BackgroundColor = CSS_Color.MainBackgroundColor,
             };
-            //contentView.AddChidren(administratorPermissionMigrationRow);
+            if (DB_ResidenceData.Instance.CurrentRegion.isOtherShare == false)
+            {
+                //鏄富璐﹀彿鏈汉鎵嶈兘鏄剧ず杩欎釜鑿滃崟
+                contentView.AddChidren(administratorPermissionMigrationRow);
+            }
 
             btnAdministratorPermissionMigrationTitle = new Button()
             {
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePageBLL.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePageBLL.cs
index 9faddfc..f62265b 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePageBLL.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/ResidentialManagePageBLL.cs
@@ -157,10 +157,8 @@
         {
             EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
             {
-                var skipPage = new AdminMigrationConfirmPage();
-                MainPage.BasePageView.AddChidren(skipPage);
-                skipPage.LoadPage();
-                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                var form = new AdminMigrationConfirmPage();
+                form.AddForm();
             };
 
             administratorPermissionMigrationRow.MouseUpEventHandler = eventHandler;
@@ -176,8 +174,8 @@
         {
             EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
             {
-                var from = new TransferConfirmPage();
-                from.AddForm();
+                var form = new TransferConfirmPage();
+                form.AddForm();
             };
 
             transferRow.MouseUpEventHandler = eventHandler;
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/RoomEditFunctionPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/RoomEditFunctionPage.cs
index 0200f20..3293e0d 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/RoomEditFunctionPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/RoomEditFunctionPage.cs
@@ -164,6 +164,10 @@
             foreach (var function in FunctionList.List.GetDeviceFunctionList())
             {
                 function.roomIds.Remove(null);
+                if(MainPage.RoomNotSupportFunctionList.Contains(function.spk))
+                {
+                    continue;
+                }
                 if (function.roomIds.Count > 0 )
                 {
                     allocatedList.Add(function);
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationConfirmPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationConfirmPage.cs
index 0b29974..ae82ebe 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationConfirmPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationConfirmPage.cs
@@ -1,140 +1,95 @@
 锘縰sing System;
 using Shared;
 using HDL_ON.UI.CSS;
+using HDL_ON.Stan;
 
 namespace HDL_ON.UI
 {
     /// <summary>
     /// 绠$悊鍛樻潈闄愯縼绉荤‘璁ゆ彁閱掔晫闈�
     /// </summary>
-    public class AdminMigrationConfirmPage : FrameLayout
+    public class AdminMigrationConfirmPage : EditorCommonForm
     {
-        /// <summary>
-        /// 
-        /// </summary>
-        FrameLayout bodyView;
+        #region 鈻� 鍙橀噺澹版槑___________________________
 
-        public AdminMigrationConfirmPage()
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
         {
-            bodyView = this;
+            //绠$悊鍛樻潈闄愯浆绉�
+            base.SetTitleText(Language.StringByID(StringId.AdminAuthorityTransfer));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
         }
 
         /// <summary>
-        /// 
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
         /// </summary>
-        public void LoadPage()
+        private void InitMiddleFrame()
         {
-            BackgroundColor = CSS_Color.MainBackgroundColor;
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
 
-            new TopViewDiv(bodyView, Language.StringByID(StringId.AdministratorPermissionMigration)).LoadTopView();
+            //璐﹀彿鑷繁鐨勫ご鍍�
+            var btnHeadImage = new ImageView();
+            btnHeadImage.X = Application.GetRealWidth(48);
+            btnHeadImage.Y = Application.GetRealHeight(32);
+            btnHeadImage.Width = Application.GetRealWidth(84);
+            btnHeadImage.Height = Application.GetRealWidth(84);
+            btnHeadImage.Radius = (uint)Application.GetRealWidth(42);
+            btnHeadImage.ImagePath = UserInfo.Current.headImagePagePath;
+            bodyFrameLayout.AddChidren(btnHeadImage);
 
-            #region 澶村儚
-            FrameLayout headView = new FrameLayout()
+            //绠ご
+            var btnArrow = new PicViewControl(84, 32);
+            btnArrow.X = btnHeadImage.Right + Application.GetRealWidth(12);
+            btnArrow.Y = Application.GetRealHeight(58);
+            btnArrow.UnSelectedImagePath = "PersonalCenter/Transfer.png";
+            bodyFrameLayout.AddChidren(btnArrow);
+
+            //涓�涓粯璁ゅご鍍�
+            var btnHead2 = new IconViewControl(102);
+            btnHead2.X = btnArrow.Right + Application.GetRealWidth(3);
+            btnHead2.Y = Application.GetRealHeight(26);
+            btnHead2.UnSelectedImagePath = "PersonalCenter/Head.png";
+            bodyFrameLayout.AddChidren(btnHead2);
+
+            //鎮ㄥ皢杞Щ鎮ㄧ殑绠$悊鍛樻潈闄愮粰鍏朵粬鎴愬憳
+            this.AddListMsgControls(bodyFrameLayout, Language.StringByID(StringId.AdminAuthorityTransferMag1), CSS_FontSize.SubheadingFontSize,
+                CSS_Color.FirstLevelTitleColor, Application.GetRealHeight(23), btnHead2.Bottom + Application.GetRealHeight(12));
+
+            //璇锋敞鎰�:
+            var btnAttention = new NormalViewControl(200, 18, true);
+            btnAttention.X = HdlControlResourse.XXLeft;
+            btnAttention.Y = btnHeadImage.Bottom + Application.GetRealHeight(84);
+            btnAttention.TextID = StringId.Attention;
+            btnAttention.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+            btnAttention.TextColor = CSS_Color.FirstLevelTitleColor;
+            bodyFrameLayout.AddChidren(btnAttention);
+
+            //1.璇ヤ綇瀹呮偍鐨勭鐞嗗憳鏁版嵁锛堜簯绔暟鎹級灏嗗叏閮ㄨ浆绉荤粰鏂扮殑绠$悊鍛�
+            //2.鎮ㄧ殑鏁版嵁灏嗕細涓庣洰鏍囨垚鍛樹簰鎹紝鎮ㄧ殑鏉冮檺灏嗗彉鏇翠负鐩爣鎴愬憳鐨勬潈闄�
+            var listContr = this.AddListMsgControls(bodyFrameLayout, Language.StringByID(StringId.AdminAuthorityTransferMag2), CSS_FontSize.PromptFontSize_FirstLevel,
+                CSS_Color.TextualColor, Application.GetRealHeight(18), btnAttention.Bottom + Application.GetRealHeight(8), TextAlignment.CenterLeft);
+
+            //纭杞Щ
+            var btnConfirm = new BottomClickButton(220);
+            btnConfirm.Y = listContr[listContr.Count - 1].Bottom + Application.GetRealHeight(75);
+            btnConfirm.TextID = StringId.ConfirmTransfer2;
+            bodyFrameLayout.AddChidren(btnConfirm);
+            btnConfirm.ButtonClickEvent += (sender, e) =>
             {
-                Y = Application.GetRealHeight(72),
-                Height = Application.GetRealHeight(132),
+                var form = new AdminMigrationMemberListPage();
+                form.AddForm();
             };
-            bodyView.AddChidren(headView);
-
-
-            ImageView myHeadImage = new ImageView()
-            {
-                X = Application.GetRealWidth(48),
-                Y = Application.GetRealHeight(96),
-                Width = Application.GetRealWidth(84),
-                Height = Application.GetRealWidth(84),
-                Radius = (uint)Application.GetRealWidth(42),
-                ImagePath = UserInfo.Current.headImagePagePath,
-                Gravity = Gravity.CenterVertical,
-            };
-            headView.AddChidren(myHeadImage);
-
-            ImageView transferImage = new ImageView()
-            {
-                X = Application.GetRealWidth(144),
-                Y = Application.GetRealHeight(96),
-                Width = Application.GetRealWidth(84),
-                Height = Application.GetRealWidth(32),
-                ImagePath = "PersonalCenter/Transfer.png",
-                Gravity = Gravity.Center,
-            };
-            headView.AddChidren(transferImage);
-
-            ImageView otherHeadImage = new ImageView()
-            {
-                X = Application.GetRealWidth(231),
-                Y = Application.GetRealHeight(96),
-                Width = Application.GetRealWidth(101),
-                Height = Application.GetRealWidth(101),
-                ImagePath = "PersonalCenter/Head.png",
-                Gravity = Gravity.CenterVertical,
-            };
-            headView.AddChidren(otherHeadImage);
-
-            #endregion
-
-            var btnTip = new Button()
-            {
-                Y = headView.Bottom,
-                X = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(22),
-                TextAlignment = TextAlignment.Center,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.SubheadingFontSize,
-                Text = "鎮ㄥ皢杞Щ鎮ㄧ殑绠$悊鍛樻潈闄愮粰鍏朵粬HDL璐﹀彿",
-            };
-            bodyView.AddChidren(btnTip);
-
-
-            //璇锋敞鎰�
-            var btnPleaseNote = new Button()
-            {
-                Y = btnTip.Bottom + Application.GetRealHeight(38),
-                X = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(17),
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                Text = "璇锋敞鎰忥細",
-            };
-            bodyView.AddChidren(btnPleaseNote);
-
-            //璇锋敞鎰忕殑鍐呭
-            var btnPleaseNoteStr = new Button()
-            {
-                Y = btnPleaseNote.Bottom + Application.GetRealHeight(8),
-                X = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(343),
-                Height = Application.GetRealHeight(170),
-                TextAlignment = TextAlignment.TopLeft,
-                TextColor = CSS_Color.TextualColor,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                IsMoreLines = true,
-                Text = "1.璇ヤ綇瀹呮偍鐨勭鐞嗗憳鏁版嵁锛堜簯绔暟鎹級灏嗗叏閮ㄨ浆绉荤粰鏂扮殑绠$悊鍛� \n\n2.鏂扮殑绠$悊鍛樺彲浠ラ�夋嫨涓嶄繚鐣欏師鏈変綇瀹呮垚鍛樼殑鏁版嵁,鍏朵粬鎴愬憳灏嗕細涓嶈兘浣跨敤 \n\n3.鍦ㄨ浆绉诲悗锛屾偍鑻ラ渶瑕佹垚涓哄搴垚鍛橈紝鐢辨柊鐨勭鐞嗗憳璁剧疆 \n\n4.鎺ユ敹鏂硅处鍙蜂负鏈夋晥鐨凥DL璐﹀彿 \n\n5.鎺ユ敹鏂硅处鍙蜂笌杞Щ鏂硅处鍙蜂笉鍙负鍚屼竴涓处鍙� (缁戝畾鐨勫叾浠栫櫥褰�)",
-            };
-            bodyView.AddChidren(btnPleaseNoteStr);
-
-            //
-            var btnConfirm = new ConfirmButton()
-            {
-                Y = Application.GetRealHeight(583),
-                Text = "纭杞Щ",
-            };
-            bodyView.AddChidren(btnConfirm);
-
-            btnConfirm.MouseUpEventHandler = (sender, e) => {
-                //Utlis.ShowTip("鏆備笉鏀寔");
-                var skipPage = new AdminMigrationInputPage();
-                MainPage.BasePageView.AddChidren(skipPage);
-                skipPage.LoadPage();
-                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-            };
-
-
         }
 
+        #endregion
     }
-
 }
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationInputPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationInputPage.cs
deleted file mode 100644
index 8f4c011..0000000
--- a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationInputPage.cs
+++ /dev/null
@@ -1,150 +0,0 @@
-锘縰sing System;
-using Shared;
-using HDL_ON.UI.CSS;
-
-namespace HDL_ON.UI
-{
-    /// <summary>
-    /// 绠$悊鍛樿浆绉昏緭鍏ヨ处鍙风晫闈�
-    /// </summary>
-    public class AdminMigrationInputPage : FrameLayout
-    {
-        /// <summary>
-        /// 
-        /// </summary>
-        FrameLayout bodyView;
-
-        public AdminMigrationInputPage()
-        {
-            bodyView = this;
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public void LoadPage()
-        {
-            BackgroundColor = CSS_Color.BackgroundColor;
-
-            new TopViewDiv(bodyView, Language.StringByID(StringId.AdministratorPermissionMigration)).LoadTopView();
-
-            #region 璐﹀彿濉啓
-            var accountView = new FrameLayout()
-            {
-                Y = Application.GetRealHeight(72),
-                Height = Application.GetRealHeight(50),
-                BackgroundColor = CSS_Color.MainBackgroundColor
-            };
-            bodyView.AddChidren(accountView);
-
-            var btnAccountIcon = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Gravity = Gravity.CenterVertical,
-                Width = Application.GetMinRealAverage(24),
-                Height = Application.GetMinRealAverage(24),
-                UnSelectedImagePath = "LoginIcon/AccountIcon.png",
-            };
-            accountView.AddChidren(btnAccountIcon);
-
-            var etAccount = new EditText()
-            {
-                X = Application.GetRealWidth(52),
-                Width = Application.GetRealWidth(307),
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.TextFontSize,
-                PlaceholderTextColor = CSS_Color.PromptingColor1,
-                PlaceholderText = "璇疯緭鍏ユ帴鏀舵柟璐﹀彿",
-            };
-            accountView.AddChidren(etAccount);
-
-            var btnLine = new Button()
-            {
-                BackgroundColor = CSS_Color.DividingLineColor,
-                Height = Application.GetRealHeight(1),
-                Y = accountView.Height - Application.GetRealHeight(1),
-                X = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(343),
-            };
-            accountView.AddChidren(btnLine);
-            #endregion
-
-            #region 璐﹀彿濉啓
-            var accountConfirmView = new FrameLayout()
-            {
-                Y = accountView.Bottom,
-                Height = Application.GetRealHeight(50),
-                BackgroundColor = CSS_Color.MainBackgroundColor
-            };
-            bodyView.AddChidren(accountConfirmView);
-
-            var btnAccountConfirmIcon = new Button()
-            {
-                X = Application.GetRealWidth(16),
-                Gravity = Gravity.CenterVertical,
-                Width = Application.GetMinRealAverage(24),
-                Height = Application.GetMinRealAverage(24),
-                UnSelectedImagePath = "LoginIcon/AccountIcon.png",
-            };
-            accountConfirmView.AddChidren(btnAccountConfirmIcon);
-
-            var etAccountConfirm = new EditText()
-            {
-                X = Application.GetRealWidth(52),
-                Width = Application.GetRealWidth(307),
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = CSS_Color.FirstLevelTitleColor,
-                TextSize = CSS_FontSize.TextFontSize,
-                PlaceholderTextColor = CSS_Color.PromptingColor1,
-                PlaceholderText = "璇峰啀娆¤緭鍏ユ帴鏀舵柟璐﹀彿",
-            };
-            accountConfirmView.AddChidren(etAccountConfirm);
-
-            //var btnLine2 = new Button()
-            //{
-            //    BackgroundColor = CSS_Color.DividingLineColor,
-            //    Height = Application.GetRealHeight(1),
-            //    Y = accountConfirmView.Height - Application.GetRealHeight(1),
-            //};
-            //accountConfirmView.AddChidren(btnLine2);
-            #endregion
-
-            var btnTip = new Button()
-            {
-                Y = accountConfirmView.Bottom + Application.GetRealHeight(12),
-                X = Application.GetRealWidth(16),
-                Width = Application.GetRealWidth(343),
-                TextAlignment = TextAlignment.TopLeft,
-                TextColor = CSS_Color.AuxiliaryColor2,
-                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                Text = "*璇风‘璁よ处鍙锋棤璇紝鍦ㄦ暟鎹浆绉昏繃绋嬩腑涓嶅彲鍙栨秷鎿嶄綔",
-                IsMoreLines = true
-
-            };
-            bodyView.AddChidren(btnTip);
-
-            var btnConfirm = new ConfirmButton()
-            {
-                Y = Application.GetRealHeight(251),
-                Text = "杞Щ",
-            };
-            bodyView.AddChidren(btnConfirm);
-
-            Button btnEmailOption = new Button()
-            {
-                Y = btnConfirm.Bottom + Application.GetRealWidth(6),
-                Width = Application.GetRealWidth(220),
-                Height = Application.GetRealWidth(32),
-                TextSize = CSS_FontSize.TextFontSize,
-                TextColor = CSS_Color.MainColor,
-                Gravity = Gravity.CenterHorizontal,
-                TextAlignment = TextAlignment.Center,
-                Text = "鎵弿浜岀淮鐮佽縼绉�"
-            };
-            bodyView.AddChidren(btnEmailOption);
-        }
-
-    }
-
-}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationMemberConfirmPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationMemberConfirmPage.cs
new file mode 100644
index 0000000..1312dd4
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationMemberConfirmPage.cs
@@ -0,0 +1,210 @@
+锘縰sing System;
+using Shared;
+using HDL_ON.UI.CSS;
+using HDL_ON.Stan;
+using HDL_ON.Entity;
+
+namespace HDL_ON.UI
+{
+    /// <summary>
+    /// 绠$悊鍛樻潈闄愯縼绉绘垚鍛樿祫鏂欑‘璁ょ晫闈�
+    /// </summary>
+    public class AdminMigrationMemberConfirmPage : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鎴愬憳淇℃伅
+        /// </summary>
+        private ResidenceMemberInfo memberInfo = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_memberInfo">鎴愬憳淇℃伅</param>
+        public void ShowForm(ResidenceMemberInfo i_memberInfo)
+        {
+            this.memberInfo = i_memberInfo;
+
+            //涓汉璧勬枡
+            base.SetTitleText(Language.StringByID(StringId.Profile));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            //涓婇儴鐨勭櫧鑹茶儗鏅�
+            var frameBack1 = new FrameLayout();
+            frameBack1.BackgroundColor = CSS_Color.MainBackgroundColor;
+            frameBack1.Height = Application.GetRealHeight(204);
+            bodyFrameLayout.AddChidren(frameBack1);
+
+            //澶村儚
+            var btnHeadImage = new ImageView();
+            btnHeadImage.Y = Application.GetRealHeight(32);
+            btnHeadImage.Gravity = Gravity.CenterHorizontal;
+            btnHeadImage.Width = Application.GetRealWidth(84);
+            btnHeadImage.Height = Application.GetRealWidth(84);
+            btnHeadImage.Radius = (uint)Application.GetRealWidth(42);
+            btnHeadImage.ImagePath = "LoginIcon/2.png";
+            frameBack1.AddChidren(btnHeadImage);
+
+            //鏄电О
+            var btnName = new NormalViewControl(frameBack1.Width - HdlControlResourse.XXLeft * 2, Application.GetRealHeight(24), false);
+            btnName.Y = btnHeadImage.Bottom + Application.GetRealHeight(11);
+            btnName.Gravity = Gravity.CenterHorizontal;
+            btnName.IsBold = true;
+            btnName.TextSize = CSS_FontSize.SubheadingFontSize;
+            btnName.TextColor = CSS_Color.FirstLevelTitleColor;
+            btnName.Text = string.IsNullOrEmpty(memberInfo.nickName) == true ? memberInfo.memberName : memberInfo.nickName;
+            btnName.TextAlignment = TextAlignment.Center;
+            frameBack1.AddChidren(btnName);
+
+            //璐﹀彿
+            var btnAccount = new NormalViewControl(frameBack1.Width - HdlControlResourse.XXLeft * 2, Application.GetRealHeight(16), false);
+            btnAccount.Y = btnName.Bottom + Application.GetRealHeight(7);
+            btnAccount.Gravity = Gravity.CenterHorizontal;
+            btnAccount.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+            btnAccount.TextAlignment = TextAlignment.Center;
+            btnAccount.Text = memberInfo.Account;
+            frameBack1.AddChidren(btnAccount);
+
+            //纭鐨勭櫧鑹茶儗鏅�
+            var frameBack2 = new FrameLayout();
+            frameBack2.Y = frameBack1.Bottom + Application.GetRealHeight(8);
+            frameBack2.Height = Application.GetRealHeight(50);
+            frameBack2.BackgroundColor = CSS_Color.MainBackgroundColor;
+            bodyFrameLayout.AddChidren(frameBack2);
+            //纭杞Щ
+            var btnConform = new NormalViewControl(200, 24, true);
+            btnConform.Gravity = Gravity.Center;
+            btnConform.TextSize = CSS_FontSize.SubheadingFontSize;
+            btnConform.TextAlignment = TextAlignment.Center;
+            btnConform.TextColor = CSS_Color.MainColor;
+            btnConform.TextID = StringId.ConfirmTransfer2;
+            frameBack2.AddChidren(btnConform);
+            btnConform.ButtonClickEvent += (sender, e) =>
+            {
+                //濡傛灉璁剧疆鏈夊畨鍏ㄩ獙璇�,鍒欓渶瑕侀獙璇�
+                HdlCheckLogic.Current.CheckUnlockSecurity(true, (div) =>
+                {
+                    //濡傛灉娌℃湁璁剧疆鏈夊畨鍏ㄩ獙璇�
+                    if (div == 0)
+                    {
+                        //纭杞Щ{0}鐨勭鐞嗗憳鏉冮檺缁欒处鍙穥1}
+                        string msg = Language.StringByID(StringId.TransferreConfirmMsg3).Replace("{0}", DB_ResidenceData.Instance.CurrentRegion.homeName);
+                        msg = msg.Replace("{1}", btnName.Text);
+                        HdlMessageLogic.Current.ShowMassage(ShowMsgType.Confirm, msg, () =>
+                        {
+                            //鎵ц杩佺Щ绠$悊鍛樻潈闄�
+                            this.DoAdminAuthorityMigration();
+                        });
+                    }
+                    else
+                    {
+                        //鎵ц杩佺Щ绠$悊鍛樻潈闄�
+                        this.DoAdminAuthorityMigration();
+                    }
+                });
+            };
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //鐢ㄧ嚎绋嬪幓涓嬭浇澶村儚
+                var headImageBytes = ImageUtlis.Current.DownHeadImageByImageKey(this.memberInfo.memberHeadIcon, true);
+                if (headImageBytes != null && headImageBytes.Length > 0)
+                {
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        btnHeadImage.ImageBytes = headImageBytes;
+                    }, ShowErrorMode.NO);
+                }
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鎵ц杩佺Щ绠$悊鍛樻潈闄恄________________
+
+        /// <summary>
+        /// 鎵ц杩佺Щ绠$悊鍛樻潈闄�
+        /// </summary>
+        private void DoAdminAuthorityMigration()
+        {
+            this.ShowProgressBar();
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //鐬庣帺鐨勪竴涓壒鏁堣�屽凡
+                System.Threading.Thread.Sleep(1000);
+                //鎵ц鏉冮檺杩佺Щ
+                var result = new DAL.Server.HttpServerRequest().AdminAuthorityMigration(this.memberInfo.childAccountId);
+                this.CloseProgressBar();
+
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    var form = new AdminMigrationResultPage();
+                    form.AddForm(result);
+
+                    form.FinishEvent += () =>
+                    {
+                        if (result == false)
+                        {
+                            //閲嶈瘯
+                            this.DoAdminAuthorityMigration();
+                        }
+                        else
+                        {
+                            //鎴愬姛 -> 鍒锋柊App缂撳瓨鍙婄晫闈�
+                            this.RefreshAppMemoryAndForm();
+                        }
+                    };
+                });
+            });
+        }
+
+        /// <summary>
+        /// 鍒锋柊App缂撳瓨鍙婄晫闈�
+        /// </summary>
+        private void RefreshAppMemoryAndForm()
+        {
+            //鍒锋柊缂撳瓨(娉ㄦ剰,閲岄潰鏃㈡湁ui,涔熸湁http,涔熸湁杞湀鐨勯偅涓笢瑗�)
+            Common.ApiUtlis.Ins.DownloadData();
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                while (Common.ApiUtlis.Ins.DownloadDataComplete == false)
+                {
+                    //绛夊緟DownloadData鍑芥暟缁撴潫
+                    System.Threading.Thread.Sleep(300);
+                }
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍏抽棴鎵�鏈夌晫闈�
+                    HdlFormLogic.Current.CloseAllOpenForm();
+                    //鑾峰彇涓婚〉鐨勯偅涓鍣�
+                    var userPage = MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1) as UserPage;
+                    if (userPage != null)
+                    {
+                        //鍒锋柊涓汉涓績鐣岄潰
+                        MainPage.CurPageIndex = 1;
+                        userPage.ChoosePersonalCenter();
+                    }
+                });
+            });
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationMemberListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationMemberListPage.cs
new file mode 100644
index 0000000..cd751f3
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationMemberListPage.cs
@@ -0,0 +1,180 @@
+锘縰sing System;
+using Shared;
+using HDL_ON.UI.CSS;
+using HDL_ON.Stan;
+using HDL_ON.Entity;
+using System.Collections.Generic;
+
+namespace HDL_ON.UI
+{
+    /// <summary>
+    /// 绠$悊鍛樻潈闄愯縼绉荤殑鎴愬憳鍒楄〃鐣岄潰
+    /// </summary>
+    public class AdminMigrationMemberListPage : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鎴愬憳鍒楄〃
+        /// </summary>
+        private List<ResidenceMemberInfo> listMember = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
+        {
+            //绠$悊鍛樻潈闄愯浆绉�
+            base.SetTitleText(Language.StringByID(StringId.AdminAuthorityTransfer));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                this.ShowProgressBar();
+                //鑾峰彇鎴愬憳鍒楄〃
+                var responePack = new DAL.Server.HttpServerRequest().GetResidenceMemberAccount();
+                if (responePack.Code != DAL.Server.StateCode.SUCCESS)
+                {
+                    //鎻愮ず
+                    DAL.Server.IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code);
+                    this.CloseProgressBar(ShowReLoadMode.YES);
+                    return;
+                }
+                this.CloseProgressBar();
+
+                this.listMember = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ResidenceMemberInfo>>(responePack.Data.ToString());
+                if (listMember.Count == 0)
+                {
+                    //妫�娴嬩笉鍒板彲渚涢�夋嫨鐨勬垚鍛�
+                    HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, Language.StringByID(StringId.NotHadMemberToSelect));
+                    return;
+                }
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍒楄〃鎺т欢
+                    var listView = new VerticalListControl();
+                    listView.Height = bodyFrameLayout.Height;
+                    listView.BackgroundColor = CSS_Color.MainBackgroundColor;
+                    bodyFrameLayout.AddChidren(listView);
+
+                    var listIcon = new List<ImageView>();
+                    for (int i = 0; i < listMember.Count; i++)
+                    {
+                        //娣诲姞鎴愬憳琛屾帶浠�
+                        var btnIcon = this.AddMemberRowcontrol(listView, listMember[i], i != listMember.Count - 1);
+                        listIcon.Add(btnIcon);
+                    }
+                    //璋冩暣妗屽竷楂樺害
+                    listView.AdjustRealHeight(0);
+                    //鑾峰彇鎴愬憳澶村儚
+                    this.DownLoadUserIcon(listIcon);
+                });
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞鎴愬憳琛屾帶浠禵____________________
+
+        /// <summary>
+        /// 娣诲姞鎴愬憳琛屾帶浠�
+        /// </summary>
+        /// <param name="listView">鍒楄〃鎺т欢</param>
+        /// <param name="memberInfo">鎴愬憳淇℃伅</param>
+        /// <param name="addLine">鏄惁娣诲姞搴曠嚎</param>
+        private ImageView AddMemberRowcontrol(VerticalListControl listView, ResidenceMemberInfo memberInfo, bool addLine)
+        {
+            //琛屾帶浠�
+            var rowContr = new FrameRowControl();
+            rowContr.Height = Application.GetRealHeight(65);
+            listView.AddChidren(rowContr);
+
+            //澶村儚(鍒濆)
+            var btnIcon = new ImageView();
+            btnIcon.X = HdlControlResourse.XXLeft;
+            btnIcon.Width = this.GetPictrueRealSize(36);
+            btnIcon.Height = this.GetPictrueRealSize(36);
+            btnIcon.Gravity = Gravity.CenterVertical;
+            btnIcon.Radius = (uint)this.GetPictrueRealSize(36) / 2;
+            btnIcon.ImagePath = "LoginIcon/2.png";
+            rowContr.AddChidren(btnIcon);
+
+            //鏄电О
+            var nickName = string.IsNullOrEmpty(memberInfo.nickName) == true ? memberInfo.memberName : memberInfo.nickName;
+            var btnName = rowContr.AddTopView(nickName, 200);
+            btnName.TextColor = CSS_Color.textColor;
+            btnName.X = btnIcon.Right + Application.GetRealWidth(12);
+            btnName.Y = Application.GetRealHeight(12);
+            //閭鎴栬�呮墜鏈哄彿
+            var strPhone = string.IsNullOrEmpty(memberInfo.childAccountPhone) == true ? memberInfo.childAccountEmail : memberInfo.childAccountPhone;
+            var btnPhone = rowContr.AddBottomView(strPhone, 200);
+            btnPhone.X = btnName.X;
+            btnPhone.Y = btnName.Bottom + Application.GetRealHeight(4);
+
+            //鍙崇澶�
+            rowContr.AddRightArrow();
+
+            //搴曠嚎
+            if (addLine == true)
+            {
+                rowContr.AddBottomLine();
+            }
+
+            rowContr.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new AdminMigrationMemberConfirmPage();
+                form.AddForm(memberInfo);
+            };
+
+            return btnIcon;
+        }
+
+        #endregion
+
+        #region 鈻� 鑾峰彇鎴愬憳澶村儚_______________________
+
+        /// <summary>
+        /// 鑾峰彇鎴愬憳澶村儚
+        /// </summary>
+        /// <param name="listIcon">澶村儚鎺т欢鍒楄〃,瀹冪殑绱㈠紩鍜宼his.listMember涓�鑷�</param>
+        private void DownLoadUserIcon(List<ImageView> listIcon)
+        {
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                for (int i = 0; i < this.listMember.Count; i++)
+                {
+                    var resultData = ImageUtlis.Current.DownHeadImageByImageKey(this.listMember[i].memberHeadIcon, false, this.listMember[i].childAccountRegionUrl);
+                    if (this.Parent == null)
+                    {
+                        //鐣岄潰宸茬粡鍏抽棴
+                        return;
+                    }
+                    if (resultData != null && resultData.Length > 0)
+                    {
+                        int nowIndex = i;
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            listIcon[nowIndex].ImageBytes = resultData;
+                        }, ShowErrorMode.NO);
+                    }
+                    System.Threading.Thread.Sleep(200);
+                }
+
+            }, ShowErrorMode.NO);
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationResultPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationResultPage.cs
new file mode 100644
index 0000000..9b87709
--- /dev/null
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/AdminMigrationResultPage.cs
@@ -0,0 +1,105 @@
+锘縰sing System;
+using Shared;
+using HDL_ON.UI.CSS;
+using HDL_ON.Stan;
+using System.Collections.Generic;
+using HDL_ON.Entity;
+
+namespace HDL_ON.UI
+{
+    /// <summary>
+    /// 绠$悊鍛樻潈闄愯縼绉荤粨鏋滅晫闈�
+    /// </summary>
+    public class AdminMigrationResultPage : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 缁撴潫浜嬩欢
+        /// </summary>
+        public Action FinishEvent = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_memberInfo">鎴愬憳淇℃伅</param>
+        /// <param name="i_success">鏄惁鎴愬姛</param>
+        public void ShowForm(bool i_success)
+        {
+            this.ScrollLeftEnabled = false;
+            //绠$悊鍛樻潈闄愯浆绉�
+            base.SetTitleText(Language.StringByID(StringId.AdminAuthorityTransfer));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame(i_success);
+
+            //绉婚櫎杩斿洖閿�
+            base.RemoveBackButton();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        /// <param name="i_success">鏄惁鎴愬姛</param>
+        private void InitMiddleFrame(bool i_success)
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            //鍥剧墖
+            var btnPictrue = new PicViewControl(180, 180);
+            btnPictrue.Y = Application.GetRealHeight(32);
+            btnPictrue.Gravity = Gravity.CenterHorizontal;
+            btnPictrue.UnSelectedImagePath = i_success == true ? "Public/TipIcon_Successfully.png" : "Public/TipIcon_Failed.png";
+            bodyFrameLayout.AddChidren(btnPictrue);
+
+            List<NormalViewControl> listContr = null;
+            if (i_success == true)
+            {
+                //杩佺Щ鎴愬姛
+                string strMsg = Language.StringByID(StringId.TransferreSuccess1);
+                listContr = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS_FontSize.SubheadingFontSize, CSS_Color.MainColor, Application.GetRealHeight(24),
+                    btnPictrue.Bottom + Application.GetRealHeight(16));
+
+                //杩佺Щ鎴愬姛锛屾偍鐨勬潈闄愬皢鍙樹负鏅�氭垚鍛�
+                strMsg = Language.StringByID(StringId.TransferreSuccessMsg1);
+                this.AddListMsgControls(bodyFrameLayout, strMsg, CSS_FontSize.PromptFontSize_FirstLevel, CSS_Color.TextualColor, Application.GetRealHeight(18),
+                    listContr[listContr.Count - 1].Bottom + Application.GetRealHeight(8));
+            }
+            else
+            {
+                //杩佺Щ澶辫触
+                string strMsg = Language.StringByID(StringId.TransferreFail1);
+                listContr = this.AddListMsgControls(bodyFrameLayout, strMsg, CSS_FontSize.SubheadingFontSize, CSS_Color.AuxiliaryColor2, Application.GetRealHeight(24),
+                    btnPictrue.Bottom + Application.GetRealHeight(16));
+                //璇烽噸鏂板皾璇�
+                var btnMsg2 = new NormalViewControl(bodyFrameLayout.Width - HdlControlResourse.XXLeft * 2, Application.GetRealHeight(18), false);
+                btnMsg2.Y = listContr[listContr.Count - 1].Bottom + Application.GetRealHeight(8);
+                btnMsg2.TextAlignment = TextAlignment.Center;
+                btnMsg2.Gravity = Gravity.CenterHorizontal;
+                btnMsg2.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
+                btnMsg2.TextID = StringId.PleaseTryAgain;
+                bodyFrameLayout.AddChidren(btnMsg2);
+            }
+
+            //瀹屾垚
+            var btnConfirm = new BottomClickButton(220);
+            btnConfirm.Y = Application.GetRealHeight(337);
+            btnConfirm.TextID = i_success == true ? StringId.Complete : StringId.Retry;
+            bodyFrameLayout.AddChidren(btnConfirm);
+            btnConfirm.ButtonClickEvent += (sender, e) =>
+            {
+                this.CloseForm();
+                //鍥炶皟鍑芥暟
+                this.FinishEvent?.Invoke();
+                this.FinishEvent = null;
+            };
+        }
+
+        #endregion
+    }
+}
diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferUserConfirmPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferUserConfirmPage.cs
index 4a5c393..4c40acb 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferUserConfirmPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/Transfer/TransferUserConfirmPage.cs
@@ -99,8 +99,23 @@
                 //濡傛灉璁剧疆鏈夊畨鍏ㄩ獙璇�,鍒欓渶瑕侀獙璇�
                 HdlCheckLogic.Current.CheckUnlockSecurity(true, (div) =>
                 {
-                    var form = new TransferingResidenceForm();
-                    form.AddForm(this.accountInfo);
+                    //濡傛灉娌℃湁璁剧疆鏈夊畨鍏ㄩ獙璇�
+                    if (div == 0)
+                    {
+                        //纭杩囨埛{0}鐨勭鐞嗗憳璐﹀彿缁欒处鍙穥1}
+                        string msg = Language.StringByID(StringId.TransferreConfirmMsg2).Replace("{0}", Entity.DB_ResidenceData.Instance.CurrentRegion.homeName);
+                        msg = msg.Replace("{1}", btnName.Text);
+                        HdlMessageLogic.Current.ShowMassage(ShowMsgType.Confirm, Language.StringByID(StringId.TransferreConfirmMsg2), () =>
+                        {
+                            var form = new TransferingResidenceForm();
+                            form.AddForm(this.accountInfo);
+                        });
+                    }
+                    else
+                    {
+                        var form = new TransferingResidenceForm();
+                        form.AddForm(this.accountInfo);
+                    }
                 });
             };
 
diff --git a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs
index d6d93ae..a097bcd 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs
@@ -196,8 +196,10 @@
                 Height = Application.GetRealWidth(40),
                 UnSelectedImagePath = "FunctionIcon/AC/SweepIconNullOn.png",
             };
-            FrameWhiteCentet1.AddChidren(btnSwing);
-
+            if (device.GetAttribute(FunctionAttributeKey.Swing) != null)
+            {
+                FrameWhiteCentet1.AddChidren(btnSwing);
+            }
 
 
             btnWindSpeed = new Button()
@@ -327,8 +329,7 @@
                     btnModeIcon.IsSelected = btnModeText.IsSelected = true;
                     device.SetAttrState(FunctionAttributeKey.Mode, m);
                     btnMode.UnSelectedImagePath = acFunction.GetModeIconPath(m);
-                    System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
-                    //btnMode.UnSelectedImagePath = btnModeIcon.UnSelectedImagePath;
+                    Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add(FunctionAttributeKey.Mode, m);
                     Control.Ins.SendWriteCommand(device, d);
                     dialog.Close();
@@ -594,8 +595,8 @@
                 {
                     Gravity = Gravity.CenterHorizontal,
                     Y = Application.GetRealHeight(334 + 80),
-                    Width = Application.GetRealWidth(30),
-                    Height = Application.GetRealWidth(30),
+                    Width = Application.GetRealWidth(35),
+                    Height = Application.GetRealWidth(35),
                     UnSelectedImagePath = "FunctionIcon/AC/More.png",
                 };
                 FrameWhiteCentet1.AddChidren(btnMore);
diff --git a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs
index 4cf8131..e0a5cfe 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AirFreshControlPage.cs
@@ -96,6 +96,8 @@
             this.RefreshNowDeviceStatuMemory(this.device);
             //鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
             this.InitFrameWhiteContent1();
+
+            Control.Ins.SendReadCommand(device);
         }
 
         /// <summary>
@@ -241,7 +243,7 @@
             this.FrameWhiteCentet1.AddChidren(btnFanView);
 
             //寮�鍏冲浘鏍�
-            this.btnSwitch = new IconViewControl(40);
+            this.btnSwitch = new IconViewControl(32);
             btnSwitch.Gravity = Gravity.CenterHorizontal;
             btnSwitch.Y = Application.GetRealHeight(468);
             btnSwitch.UnSelectedImagePath = "Public/PowerClose.png";
@@ -579,6 +581,10 @@
             dic[FunctionAttributeKey.Energy] = this.airFreshData.Energy;
             //椋庨��
             dic[FunctionAttributeKey.FanSpeed] = this.airFreshData.Fan ;
+            //瀹ゅ唴娓╁害
+            dic[FunctionAttributeKey.IndoorTemp] =  this.airFreshData.Indoor_temp.ToString();
+            ///瀹ゅ唴婀垮害
+            dic[FunctionAttributeKey.IndoorHumidity] = this.airFreshData.Indoor_humidity.ToString();
 
             return dic;
         }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
index d701f51..190b378 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
@@ -451,15 +451,16 @@
         /// </summary>
         public bool Lighting = false;
 
-        public ClothesHangerControl(string iconPath1, string iconPath2, string title, string time)
+
+        public ClothesHangerControl(string unSelectedIconPath, string selectedIconPath, string title, string time)
         {
             btnIcon = new Button()
             {
                 Gravity = Gravity.CenterHorizontal,
                 Width = Application.GetRealWidth(28),
                 Height = Application.GetRealWidth(28),
-                UnSelectedImagePath = iconPath1,
-                SelectedImagePath = iconPath2,
+                UnSelectedImagePath = unSelectedIconPath,
+                SelectedImagePath = selectedIconPath,
             };
             this.AddChidren(btnIcon);
 
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs
index ab85ff9..11604ef 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs
@@ -1,10 +1,243 @@
 锘縰sing System;
-namespace HDL_ON.UI.UI2.FuntionControlView.Electrical
+using System.Collections.Generic;
+using HDL_ON.DriverLayer;
+using HDL_ON.Entity;
+using HDL_ON.Stan;
+using HDL_ON.UI.CSS;
+using Shared;
+
+namespace HDL_ON.UI
 {
-    public class IrFanPage
+    public class IrFanPage : DeviceFunctionCardCommonForm
     {
-        public IrFanPage()
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鍥炬爣
+        /// </summary>
+        private Button btnIcon = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍒濆鍖栫櫧鑹插尯鍩熺殑鍐呭
+        /// </summary>
+        public override void InitFrameWhiteContent()
+        {
+            base.ShowColltionButton = false;
+            base.SetTitleText(Language.StringByID(StringId.Electric));
+
+            //鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+            this.InitFrameWhiteContent1();
+            
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
+        /// </summary>
+        private void InitFrameWhiteContent1()
+        {
+            btnIcon = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(88),
+                Width = Application.GetRealWidth(134),
+                Height = Application.GetRealWidth(134),
+                UnSelectedImagePath = "FunctionIcon/IrFan/FanIcon.png",
+            };
+            FrameWhiteCentet1.AddChidren(btnIcon);
+
+            var patternView = new IrFanControl("FunctionIcon/IrFan/PatternIcon.png",
+                                            "FunctionIcon/IrFan/PatternIconOn.png",
+                                            Language.StringByID(StringId.Mode),
+                                            "");
+            patternView.Y = Application.GetRealHeight(263);
+            patternView.X = Application.GetRealWidth(36);
+            patternView.Width = Application.GetRealWidth(96);
+            patternView.Height = Application.GetRealHeight(74);
+            FrameWhiteCentet1.AddChidren(patternView);
+            EventHandler<MouseEventArgs> mode_EventHandler = (sender, e) =>
+            {
+                Dictionary<string, string> d = new Dictionary<string, string>();
+                d.Add("mode", "");
+                Control.Ins.SendWriteCommand(device, d);
+            };
+            patternView.SetThouchEvent(mode_EventHandler);
+
+            var swingView = new IrFanControl("FunctionIcon/IrFan/HeadSwingingIcon.png",
+                                            "FunctionIcon/IrFan/HeadSwingingIconOn.png",
+                                            Language.StringByID(StringId.HeadSwinging),
+                                            "");
+            swingView.Y = Application.GetRealHeight(263);
+            swingView.X = Application.GetRealWidth(229-34);
+            swingView.Width = Application.GetRealWidth(96);
+            swingView.Height = Application.GetRealHeight(74);
+            FrameWhiteCentet1.AddChidren(swingView);
+            EventHandler<MouseEventArgs> swing_EventHandler = (sender, e) =>
+            {
+                Dictionary<string, string> d = new Dictionary<string, string>();
+                d.Add("swing", "");
+                Control.Ins.SendWriteCommand(device, d);
+            };
+            swingView.SetThouchEvent(swing_EventHandler);
+
+
+            var timingView = new IrFanControl("FunctionIcon/IrFan/TimingIcon.png",
+                                            "FunctionIcon/IrFan/TimingIconOn.png",
+                                            Language.StringByID(StringId.Timing),
+                                            "");
+            timingView.Y = Application.GetRealHeight(366);
+            timingView.X = Application.GetRealWidth(36);
+            timingView.Width = Application.GetRealWidth(96);
+            timingView.Height = Application.GetRealHeight(74);
+            FrameWhiteCentet1.AddChidren(timingView);
+            EventHandler<MouseEventArgs> timing_EventHandler = (sender, e) =>
+            {
+                Dictionary<string, string> d = new Dictionary<string, string>();
+                d.Add("timer", "");
+                Control.Ins.SendWriteCommand(device, d);
+            };
+            timingView.SetThouchEvent(timing_EventHandler);
+
+
+            var airVolumeView = new IrFanControl("FunctionIcon/IrFan/SpeedIcon.png",
+                                            "FunctionIcon/IrFan/SpeedIconOn.png",
+                                            Language.StringByID(StringId.AirVolume),
+                                            "");
+            airVolumeView.Y = Application.GetRealHeight(366);
+            airVolumeView.X = Application.GetRealWidth(229 - 34);
+            airVolumeView.Width = Application.GetRealWidth(96);
+            airVolumeView.Height = Application.GetRealHeight(74);
+            FrameWhiteCentet1.AddChidren(airVolumeView);
+            EventHandler<MouseEventArgs> speed_EventHandler = (sender, e) =>
+            {
+                Dictionary<string, string> d = new Dictionary<string, string>();
+                d.Add("speed", "");
+                Control.Ins.SendWriteCommand(device, d);
+            };
+            airVolumeView.SetThouchEvent(speed_EventHandler);
+
+            Button btnPower = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(468),
+                Width = Application.GetRealWidth(32),
+                Height = Application.GetRealWidth(32),
+                UnSelectedImagePath = "FunctionIcon/IrFan/PowerIcon.png",
+                SelectedImagePath = "FunctionIcon/IrFan/PowerIconOn.png"
+            };
+            FrameWhiteCentet1.AddChidren(btnPower);
+            btnPower.MouseDownEventHandler = (sender, e) =>
+            {
+                btnPower.IsSelected = true;
+            };
+            btnPower.MouseUpEventHandler = (sender, e) => {
+                new System.Threading.Thread(() => {
+                    Dictionary<string, string> d = new Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.OnOff, "");
+                    Control.Ins.SendWriteCommand(device, d);
+                    System.Threading.Thread.Sleep(500);
+                    Application.RunOnMainThread(() => {
+                        btnPower.IsSelected = false;
+                    });
+                }) { IsBackground = true }.Start();
+            };
+
+
+        }
+        #endregion
+
+        #region 鈻� 璁惧鐘舵�佸弽棣坃______________________
+
+        /// <summary>
+        /// 璁惧鐘舵�佸弽棣�
+        /// </summary>
+        /// <param name="i_LocalDevice"></param>
+        public override void DeviceStatuPush(Function i_LocalDevice)
         {
         }
+
+        #endregion
     }
-}
+
+    public class IrFanControl : FrameLayout
+    {
+        private Button btnIcon;
+        private Button btnTitle;
+
+        public bool Lighting = false;
+
+
+        public IrFanControl(string unSelectedIconPath, string selectedIconPath, string title, string time)
+        {
+            btnIcon = new Button()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(28),
+                Height = Application.GetRealWidth(28),
+                UnSelectedImagePath = unSelectedIconPath,
+                SelectedImagePath = selectedIconPath,
+            };
+            this.AddChidren(btnIcon);
+
+            btnTitle = new Button()
+            {
+                Y = Application.GetRealWidth(28),
+                Text = title,
+                Height = Application.GetRealHeight(30),
+                TextColor = CSS_Color.TextualColor,
+                SelectedTextColor = CSS_Color.MainColor,
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+            };
+            this.AddChidren(btnTitle);
+
+        }
+
+        public void SetViewStatus(bool state)
+        {
+            btnIcon.IsSelected = btnTitle.IsSelected = Lighting = state;
+        }
+
+        /// <summary>
+        /// 璁剧疆鐐瑰嚮浜嬩欢
+        /// </summary>
+        public void SetThouchEvent(EventHandler<MouseEventArgs> eventHandler)
+        {
+            btnIcon.MouseUpEventHandler = eventHandler;
+            btnTitle.MouseUpEventHandler = eventHandler;
+            btnIcon.MouseDownEventHandler = (sender, e) => {
+                btnTitle.IsSelected = true;
+                btnIcon.IsSelected = true;
+            };
+            btnTitle.MouseDownEventHandler = (sender, e) => {
+                btnTitle.IsSelected = true;
+                btnIcon.IsSelected = true;
+            };
+            btnIcon.MouseUpEventHandler += (sender, e) => {
+                new System.Threading.Thread(() => {
+                    System.Threading.Thread.Sleep(500);
+                    Application.RunOnMainThread(() =>
+                    {
+                        btnTitle.IsSelected = false;
+                        btnIcon.IsSelected = false;
+                    });
+                })
+                { IsBackground = true }.Start();
+            };
+            btnTitle.MouseUpEventHandler += (sender, e) => {
+                new System.Threading.Thread(() => {
+                    System.Threading.Thread.Sleep(500);
+                    Application.RunOnMainThread(() =>
+                    {
+                        btnTitle.IsSelected = false;
+                        btnIcon.IsSelected = false;
+                    });
+                })
+                { IsBackground = true }.Start();
+            };
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs
index 523142c..5873fdd 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/PjtPage.cs
@@ -47,7 +47,6 @@
         #endregion
 
         #region 鍖哄煙鍙橀噺
-        //TV tvTemp = new TV();
         Function device;
         Button btnCollection_Out;
         Button btnFunctionName_Out;
@@ -323,8 +322,6 @@
             #endregion
 
             new TopViewDiv(bodyView, Language.StringByID(StringId.PJT)).LoadTopView_FunctionTop(device, actionRefresh);
-            DriverLayer.Control.Ins.SendReadCommand(device);
-
             LoadEventList();
 
         }
@@ -345,8 +342,8 @@
 
             var bodyView = new FrameLayout()
             {
-                Y = Application.GetRealHeight(427),//667
-                Height = Application.GetRealHeight(240),
+                Y = Application.GetRealHeight(417),//667
+                Height = Application.GetRealHeight(250),
                 BackgroundColor = CSS_Color.MainBackgroundColor,
             };
             div.AddChidren(bodyView);
@@ -356,6 +353,7 @@
                 Y = Application.GetRealHeight(16),
                 Gravity = Gravity.CenterHorizontal,
                 Width = Application.GetRealWidth(296 + 200),
+                Height = Application.GetRealHeight(234),
             };
             bodyView.AddChidren(contentView);
 
@@ -505,9 +503,6 @@
             dialog.Show();
         }
 
-
-
-        
         /// <summary>
         /// 鍔犺浇浜嬩欢鍒楄〃
         /// </summary>
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs
index b96c396..8d323c4 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/StbPage.cs
@@ -46,7 +46,7 @@
         #endregion
 
         #region 鍖哄煙鍙橀噺
-        Function function;
+        Function device;
         Button btnCollection_Out;
         Button btnFunctionName_Out;
         Button btnFromFloor_Out;
@@ -59,7 +59,7 @@
         public StbPage(Function func)
         {
             bodyView = this;
-            function = func;
+            device = func;
         }
 
 
@@ -89,7 +89,7 @@
                 TextColor = CSS_Color.FirstLevelTitleColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel,
-                Text = function.name,
+                Text = device.name,
             };
             controlView.AddChidren(btnFunctionName);
 
@@ -102,7 +102,7 @@
                 TextColor = CSS_Color.PromptingColor1,
                 TextAlignment = TextAlignment.CenterLeft,
                 TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
-                Text = function.GetRoomListName()
+                Text = device.GetRoomListName()
             };
             controlView.AddChidren(btnFromFoorAndRoom);
 
@@ -114,7 +114,7 @@
                 Height = Application.GetMinRealAverage(40),
                 SelectedImagePath = "Collection/CollectionIcon.png",
                 UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
-                IsSelected = function.collect
+                IsSelected = device.collect
             };
             controlView.AddChidren(btnCollection);
             //2020-12-16 濡傛灉鏄垚鍛橀殣钘忔敹钘忓姛鑳�
@@ -317,11 +317,14 @@
             {
                 X = Application.GetRealWidth(116),
                 Y = Application.GetRealHeight(466),
-                Width = Application.GetRealWidth(32),
-                Height = Application.GetRealWidth(32),
+                Width = Application.GetRealWidth(35),
+                Height = Application.GetRealWidth(35),
                 UnSelectedImagePath = "FunctionIcon/AC/More.png",
             };
             controlView.AddChidren(btnMore);
+            btnMore.MouseUpEventHandler = (sender, e) => {
+                LoadDialog_IrMoreView();
+            };
 
             btnPower = new Button()
             {
@@ -337,9 +340,7 @@
 
             LoadEventList();
 
-            new TopViewDiv(bodyView, Language.StringByID(StringId.STB)).LoadTopView_FunctionTop(function, actionRefresh);
-            DriverLayer.Control.Ins.SendReadCommand(function);
-
+            new TopViewDiv(bodyView, Language.StringByID(StringId.STB)).LoadTopView_FunctionTop(device, actionRefresh);
         }
 
 
@@ -426,7 +427,7 @@
                     {
                         Dictionary<string, string> d = new Dictionary<string, string>();
                         d.Add($"number_{index}", "");
-                        Control.Ins.SendWriteCommand(function, d);
+                        Control.Ins.SendWriteCommand(device, d);
                     }
                 };
                 btn.MouseDownEventHandler = (sender, e) => {
@@ -449,9 +450,9 @@
 
             //鍥為��鍒锋柊淇℃伅浜嬩欢
             actionRefresh = () => {
-                btnFunctionName.Text = btnFunctionName_Out.Text = function.name;
-                btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = function.GetRoomListName();
-                function.UpdataFuncitonInfo();
+                btnFunctionName.Text = btnFunctionName_Out.Text = device.name;
+                btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = device.GetRoomListName();
+                device.UpdataFuncitonInfo();
             };
         }
 
@@ -461,8 +462,8 @@
         void LoadCollectionEvent()
         {
             btnCollection.MouseUpEventHandler += (sender, e) => {
-                btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected;
-                function.CollectFunction();
+                btnCollection.IsSelected = device.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected;
+                device.CollectFunction();
             };
         }
 
@@ -477,7 +478,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("av_tv", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnChlPlus.MouseUpEventHandler = (sender, e) =>
@@ -486,7 +487,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("ch+", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnChlReduce.MouseUpEventHandler = (sender, e) =>
@@ -495,7 +496,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("ch-", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnVolPlus.MouseUpEventHandler = (sender, e) =>
@@ -504,7 +505,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("volume+", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnVolReduce.MouseUpEventHandler = (sender, e) =>
@@ -513,7 +514,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("volume-", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnBack.MouseUpEventHandler = (sender, e) =>
@@ -522,7 +523,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("return", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
 
@@ -532,7 +533,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("menu", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btn123.MouseUpEventHandler = (sender, e) =>
@@ -545,7 +546,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("mute", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnPower.MouseUpEventHandler = (sender, e) =>
@@ -554,7 +555,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("on_off", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
 
@@ -581,7 +582,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("menu", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnTopMenuUp.MouseUpEventHandler = (sender, e) => {
@@ -590,7 +591,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("up", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnTopMenuLeft.MouseUpEventHandler = (sender, e) => {
@@ -599,7 +600,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("left", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnTopMenuRight.MouseUpEventHandler = (sender, e) => {
@@ -608,7 +609,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("right", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnTopMenuDown.MouseUpEventHandler = (sender, e) => {
@@ -617,7 +618,7 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("down", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
             btnOk.MouseUpEventHandler = (sender, e) => {
@@ -626,12 +627,189 @@
                 {
                     Dictionary<string, string> d = new Dictionary<string, string>();
                     d.Add("ok", "");
-                    Control.Ins.SendWriteCommand(function, d);
+                    Control.Ins.SendWriteCommand(device, d);
                 }
             };
 
 
         }
 
+
+        /// <summary>
+        /// 鍔犺浇棰濆瀵圭孩澶栨寜閽晫闈�
+        /// </summary>
+        void LoadDialog_IrMoreView()
+        {
+            Dialog dialog = new Dialog();
+
+            var div = new FrameLayout();
+            dialog.AddChidren(div);
+            div.MouseUpEventHandler = (sender, e) => {
+                dialog.Close();
+            };
+
+            var bodyView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(417),//667
+                Height = Application.GetRealHeight(250),
+                BackgroundColor = CSS_Color.MainBackgroundColor,
+            };
+            div.AddChidren(bodyView);
+
+            var contentView = new VerticalScrolViewLayout()
+            {
+                Y = Application.GetRealHeight(16),
+                Gravity = Gravity.CenterHorizontal,
+                Width = Application.GetRealWidth(296 + 200),
+                Height = Application.GetRealHeight(234),
+            };
+            bodyView.AddChidren(contentView);
+
+
+            var row = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(60),
+                Width = Application.GetRealWidth(296),
+                Gravity = Gravity.CenterHorizontal,
+            };
+            contentView.AddChidren(row);
+
+            int index = 0;
+            List<FunctionAttributes> attrList = new List<FunctionAttributes>();
+            attrList.AddRange(device.attributes);
+            attrList.Add(new FunctionAttributes()
+            {
+                key = "+",
+            });
+
+            foreach (var attr in attrList)
+            {
+                if (attr.key == "up"
+                    || attr.key == "down"
+                    || attr.key == "right"
+                    || attr.key == "left"
+                    || attr.key == "zoom+"
+                    || attr.key == "zoom-"
+                    || attr.key == "volume+"
+                    || attr.key == "volume-"
+                    || attr.key == "back"
+                    || attr.key == "menu"
+                    || attr.key == FunctionAttributeKey.OnOff
+                    )
+                {
+                    continue;
+                }
+                if (index != 0 && index % 3 == 0)
+                {
+                    row = new FrameLayout()
+                    {
+                        Height = Application.GetRealHeight(56),
+                        Width = Application.GetRealWidth(296),
+                        Gravity = Gravity.CenterHorizontal,
+                    };
+                    contentView.AddChidren(row);
+                }
+                if (attr.key == "+")
+                {
+                    var addView = new FrameLayout()
+                    {
+                        Gravity = Gravity.CenterVertical,
+                        Width = Application.GetRealWidth(88),
+                        Height = Application.GetRealHeight(40),
+                        Radius = (uint)Application.GetRealHeight(18),
+                        BorderColor = CSS_Color.PromptingColor1,
+                        BorderWidth = (uint)Application.GetRealWidth(2),
+                    };
+
+
+                    if (index % 3 == 1)
+                    {
+                        addView.Gravity = Gravity.Center;
+                    }
+                    else if (index % 3 == 2)
+                    {
+                        addView.X = Application.GetRealWidth(208);
+                    }
+                    row.AddChidren(addView);
+
+                    var btnAdd = new Button()
+                    {
+                        Gravity = Gravity.Center,
+                        UnSelectedImagePath = "Public/PlusSignIcon.png",
+                        Width = Application.GetRealWidth(32),
+                        Height = Application.GetRealWidth(32),
+                    };
+                    addView.AddChidren(btnAdd);
+
+                    btnAdd.MouseUpEventHandler = (sender, e) =>
+                    {
+                        dialog.Close();
+                        Action action = () => {
+                            LoadDialog_IrMoreView();
+                        };
+                        var addButton = new AcControlPage_AddIrButton(action);
+                        MainPage.BasePageView.AddChidren(addButton);
+                        addButton.Show(device);
+                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                    };
+
+
+                }
+                else
+                {
+
+                    var btn = new Button()
+                    {
+                        Gravity = Gravity.CenterVertical,
+                        Width = Application.GetRealWidth(88),
+                        Height = Application.GetRealHeight(40),
+                        Radius = (uint)Application.GetRealHeight(18),
+                        BorderColor = CSS_Color.PromptingColor1,
+                        BorderWidth = (uint)Application.GetRealWidth(2),
+                        TextAlignment = TextAlignment.Center,
+                        TextSize = CSS_FontSize.TextFontSize,
+                        TextColor = CSS_Color.FirstLevelTitleColor,
+                        SelectedTextColor = CSS_Color.MainBackgroundColor,
+                        SelectedBackgroundColor = CSS_Color.MainColor,
+                    };
+                    if (attr.value.Count > 0)
+                    {
+                        btn.Text = attr.value[0];
+                    }
+                    if (index % 3 == 1)
+                    {
+                        btn.Gravity = Gravity.Center;
+                    }
+                    else if (index % 3 == 2)
+                    {
+                        btn.X = Application.GetRealWidth(208);
+                    }
+                    row.AddChidren(btn);
+
+                    btn.MouseUpEventHandler = (sender, e) =>
+                    {
+                        Dictionary<string, string> d = new Dictionary<string, string>();
+                        d.Add(attr.key, "");
+                        Control.Ins.SendWriteCommand(device, d);
+
+                        new System.Threading.Thread(() =>
+                        {
+                            System.Threading.Thread.Sleep(2000);
+                            Application.RunOnMainThread(() =>
+                            {
+                                btn.IsSelected = false;
+                            });
+                        })
+                        { IsBackground = true }.Start();
+                    };
+
+                }
+
+                index++;
+            }
+
+            dialog.Show();
+        }
+
     }
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TVPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TVPage.cs
index 0b64046..b0ee9af 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/TVPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/TVPage.cs
@@ -339,7 +339,6 @@
             LoadEventList();
 
             new TopViewDiv(bodyView, Language.StringByID(StringId.TV)).LoadTopView_FunctionTop(function, actionRefresh);
-            DriverLayer.Control.Ins.SendReadCommand(function);
 
         }
 
diff --git a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs
index 86d0ace..cd99561 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs
@@ -271,8 +271,53 @@
             int index = 0;
             foreach (var sensor in FunctionList.List.GetEnvirSensorsList())
             {
-                LoadSensorDiv(sensor, index);
-                index++;
+                if(sensor.spk == SPK.SensorEnvironment)
+                {
+                    foreach (var seTemp in sensor.attributes)
+                    {
+                        var newTemp = new Function()
+                        {
+                            name = sensor.name,
+                            sid = sensor.sid,
+                            deviceId = sensor.deviceId,
+                            attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = seTemp.state, curValue = seTemp.curValue } },
+                        };
+                        switch (seTemp.key)
+                        {
+                            case "co2":
+                                newTemp.spk = SPK.SensorCO2;
+                                break;
+                            case "pm25":
+                                newTemp.spk = SPK.SensorPm25;
+                                break;
+                            case "humidity":
+                                newTemp.spk = SPK.SensorHumidity;
+                                break;
+                            case "temperature":
+                                newTemp.spk = SPK.SensorTemperature;
+                                break;
+                            case "tvoc":
+                                newTemp.spk = SPK.SensorTVOC;
+                                break;
+                        }
+                        LoadSensorDiv(newTemp, index);
+                        index++;
+                    }
+                }
+                else
+                {
+#if DEBUG
+                    continue;
+#endif
+                    LoadSensorDiv(sensor, index);
+                    index++;
+                }
+
+                new System.Threading.Thread(() =>
+                {
+                    Control.Ins.SendReadCommand(sensor);
+                })
+                { IsBackground = true }.Start();
             }
         }
 
@@ -283,10 +328,9 @@
         {
             var levelColorList = sensorTemp.GetLevelColorList(sensor.spk);
             var levelTextList = sensorTemp.GetLevelTextList(sensor.spk);
-
             if (room.roomId == "" || sensor.roomIds.Contains(room.roomId))
             {
-                var sensorTag = sensor.sid;
+                var sensorTag = sensor.spk + sensor.sid + sensor.deviceId;
                 FrameLayout sensorView = new FrameLayout()
                 {
                     X = Application.GetRealWidth(7),
@@ -411,12 +455,6 @@
                     #endregion
                 };
 
-
-                new System.Threading.Thread(() =>
-                {
-                    Control.Ins.SendReadCommand(sensor);
-                })
-                { IsBackground = true }.Start();
             }
         }
 
@@ -710,9 +748,45 @@
                 {
                     if (bodyView != null)
                     {
+                        if (updateTemp.spk == SPK.SensorEnvironment)
+                        {
+                            foreach (var seTemp in updateTemp.attributes)
+                            {
+                                var newTemp = new Function()
+                                {
+                                    name = updateTemp.name,
+                                    sid = updateTemp.sid,
+                                    deviceId = updateTemp.deviceId,
+                                    attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = seTemp.state ,curValue = seTemp.curValue} },
+                                };
+                                switch (seTemp.key)
+                                {
+                                    case "co2":
+                                        newTemp.spk = SPK.SensorCO2;
+                                        break;
+                                    case "pm25":
+                                        newTemp.spk = SPK.SensorPm25;
+                                        break;
+                                    case "humidity":
+                                        newTemp.spk = SPK.SensorHumidity;
+                                        break;
+                                    case "temperature":
+                                        newTemp.spk = SPK.SensorTemperature;
+                                        break;
+                                    case "tvoc":
+                                        newTemp.spk = SPK.SensorTVOC;
+                                        break;
+                                }
+                                if(!string.IsNullOrEmpty(newTemp.spk))
+                                {
+                                    LoadEvent_UpdataStatus(newTemp);
+                                }
+                            }
+                        }
+
                         for (int i = 0; i < bodyView.sensorListView.ChildrenCount; i++)
                         {
-                            var sensorTag = updateTemp.sid;
+                            var sensorTag = updateTemp.spk + updateTemp.sid + updateTemp.deviceId;
                             var view = bodyView.sensorListView.GetChildren(i);
                             if (view.GetType() == typeof(FrameLayout))
                             {
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs
index cb6f2da..bcbc5c1 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs
@@ -58,6 +58,11 @@
         Button btnFromFloor_Out;
         bool onDimmerBar = false;
         Function function;
+
+        /// <summary>
+        /// 鏈�鍚庢墦寮�鐨勯鑹�
+        /// </summary>
+        byte[] lastColor = new byte[3] { 255, 255, 255 };
         /// <summary>
         /// 鍒锋柊鏄剧ず淇℃伅
         /// </summary>
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs
index b20523e..b0c2522 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs
@@ -95,21 +95,12 @@
             int circleR = colorPicker.Width / 2 - Application.GetRealWidth(12);
 
             colorPicker.ColorChaged += (sender2, e2) => {
-                if (function.trait_on_off.curValue.ToString() == "off"
-                  || pointIsRight == false)
+                if (function.trait_on_off.curValue.ToString() == "off" || pointIsRight == false)
                 {
                     //pointIsRight:鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐�
                     return;
                 }
-                if ((DateTime.Now - colorChangeTime).TotalMilliseconds > 200)
-                {
-                    lightTemp.SetRGBcolor(e2,function);
-                    colorChangeTime = DateTime.Now;
-                    btnCurColor.BackgroundColor = (uint)(0xFF000000 + lightTemp.GetRGBcolor(function));
-                    System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
-                    d.Add(FunctionAttributeKey.RGB, lightTemp.GetRGBcolorString(function));
-                    Control.Ins.SendWriteCommand(function, d);
-                }
+                lastColor = e2;
             };
             colorPicker.MouseDownEventHandler += (sender, e) =>
             {
@@ -131,11 +122,57 @@
                     btnWhiteRound.Visible = true;
                 }
             };
+           
             colorPicker.MouseMoveEventHandler += (sender, e) =>
             {
                 //褰撻紶鏍囩偣涓嬩簨浠跺鐞�
                 colorPicker.MouseDownEventHandler(sender, e);
+                //if (function.trait_on_off.curValue.ToString() == "off")
+                //{
+                //    return;
+                //}
+                //pointIsRight = this.CheckPoint(circleR, colorPicker.Width / 2, colorPicker.Height / 2, (int)e.X, (int)e.Y);
+                //if (pointIsRight == false)
+                //{
+                //    //鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐�
+                //    return;
+                //}
+                ////鏄剧ず鐧界偣
+                //btnWhiteRound.X = (int)e.X - btnWhiteRound.Width / 2;
+                //btnWhiteRound.Y = (int)e.Y - btnWhiteRound.Height / 2;
+                //if (btnWhiteRound.Visible == false)
+                //{
+                //    btnWhiteRound.Visible = true;
+                //}
+                //btnCurColor.BackgroundColor = (uint)(0xFF000000 + lightTemp.GetRGBcolor(function));
             };
+
+            var colorChangeEvent = new System.Threading.Thread(() => {
+                while (this.Parent != null)
+                {
+                    if (function.trait_on_off.curValue.ToString() == "off" || pointIsRight == false)
+                    {
+                        //pointIsRight:鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐�
+                        continue;
+                    }
+
+                    for (int i = 0; i < 3; i++)
+                    {
+                        if (lightTemp.GetRGBbytes(function)[i] != lastColor[i])
+                        {
+                            function.SetAttrState(FunctionAttributeKey.RGB, lastColor);
+                            lightTemp.SetRGBcolor(lastColor, function);
+                            System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                            d.Add(FunctionAttributeKey.RGB, lightTemp.GetRGBcolorString(function));
+                            Control.Ins.SendWriteCommand(function, d);
+                            break;
+                        }
+                    }
+                    System.Threading.Thread.Sleep(200);
+                }
+            });
+            colorChangeEvent.IsBackground = true;
+            colorChangeEvent.Start();
         }
 
         /// <summary>
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs
index 6114108..f6d8549 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs
@@ -7,6 +7,7 @@
     {
        
     }
+
     [Serializable]
     public class VideoClouds
     {
@@ -52,6 +53,7 @@
         public string flCmtId = string.Empty;
 
     }
+
     [Serializable]
     public class Call
     {
@@ -88,6 +90,7 @@
         /// </summary>
         public string flBindId = string.Empty;
     }
+
     [Serializable]
     public class CallView
     {
@@ -99,6 +102,7 @@
         public List<Call> callList = new List<Call>();
 
     }
+
     [Serializable]
     public class FlVideo
     {
@@ -112,4 +116,92 @@
         public string devType = string.Empty;
         public string uuid = string.Empty;
     }
+
+    /// <summary>
+    /// 鍙瀵硅(閫氱敤)
+    /// </summary>
+    [Serializable]
+    public class Video
+    {
+        /// <summary>
+        /// 瀛愯处鍙穉ccessToken
+        /// </summary>
+        public string subAccountToken = string.Empty;
+        /// <summary>
+        /// 璁惧鍚嶇О
+        /// </summary>
+        public string deviceName = string.Empty;
+        /// <summary>
+        /// 璁惧id銆佸簭鍒楀彿銆乽uid
+        /// </summary>
+        public string deviceId = string.Empty;
+        /// <summary>
+        /// 璁惧绫诲瀷:IMOUVISIAL(涔愭)銆�
+        /// </summary>
+        public string interphoneType = string.Empty;
+        /// <summary>
+        /// 涔愭playToken,棰勮鐢婚潰鏃跺繀椤讳娇鐢ㄧ殑鍙傛暟
+        /// </summary>
+        public string playToken = string.Empty;
+        /// <summary>
+        /// 鐘舵�侊細online
+        /// </summary>
+        public string status = string.Empty;
+        /// <summary>
+        /// 璁惧绫诲瀷锛�(1瀹ゅ唴鏈�,2瀹ゅ鏈猴紝3鍥村鏈猴紝4绠$悊鏈�,5浜屾纭鏈�)
+        /// </summary>
+        public string devType = string.Empty;
+        /// <summary>
+        /// 涓版灄鍙瀵硅data
+        /// </summary>
+        public VideoFlData flRoomBindVO = new VideoFlData();
+    }
+
+    /// <summary>
+    /// 涓版灄鍙瀵硅鏁版嵁
+    /// </summary>
+    [Serializable]
+    public class VideoFlData
+    {
+        /// <summary>
+        /// 涓版灄缁戝畾id锛坒lBindId锛�(userKey)
+        /// </summary>
+        public string id = string.Empty;
+        /// <summary>
+        /// 浣忓畢id
+        /// </summary>
+        public string homeId = string.Empty;
+        /// <summary>
+        /// 铏氭嫙鎵嬫満鍙�
+        /// </summary>
+        public string phone = string.Empty;
+        /// <summary>
+        /// 铏氭嫙韬唤璇佸彿鐮�
+        /// </summary>
+        public string idCard = string.Empty;
+        /// <summary>
+        /// 绀惧尯涓婚敭Id
+        /// </summary>
+        public string communtiyId = string.Empty;
+        /// <summary>
+        /// 涓版灄妤兼爧鍙�
+        /// </summary>
+        public string flBuildingId = string.Empty;
+        /// <summary>
+        /// 涓版灄妤兼爧鍚嶇О
+        /// </summary>
+        public string flBuildingName = string.Empty;
+        /// <summary>
+        /// 涓版灄鎴块棿鍚嶇О
+        /// </summary>
+        public string flRoomId = string.Empty;
+        /// <summary>
+        /// 涓版灄瀹夊叏瀵嗛挜
+        /// </summary>
+        public string flSecretKey = string.Empty;
+        /// <summary>
+        /// 涓版灄鐨勫皬鍖篒d
+        /// </summary>
+        public string flCmtId = string.Empty;
+    }
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs
index 109cdc4..de7c61b 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs
@@ -4,6 +4,7 @@
 using Shared;
 using HDL_ON.Stan;
 using ZXing.QrCode.Internal;
+using static HDL_ON.UI.UI2.FuntionControlView.Video.VideoMethod;
 
 namespace HDL_ON.UI.UI2.FuntionControlView.Video
 {
@@ -12,10 +13,9 @@
         /// <summary>
         /// 鍔犺浇鍙瀵硅UI
         /// </summary>
-        /// <param name="listVideo">闂ㄥ彛鏈哄垪琛�</param>
         /// <param name="listCall">閫氳瘽璁板綍鍒楄〃</param>
-        /// <param name="video">褰撳墠鐨勫彲瑙嗗璁�</param>
-        public void Show(List<FlVideo> listVideo, List<CallView> listCall, VideoClouds video)
+        /// <param name="videoList">鍙瀵硅鍒楄〃</param>
+        public void Show(List<CallView> listCall, List<Video> videoList)
         {
             #region 甯冨眬鐣岄潰
             this.BackgroundColor = MusicColor.ViewColor;
@@ -35,8 +35,8 @@
             pageView.AddChidren(view1);
             var view2 = new FrameLayout();
             pageView.AddChidren(view2);
-            ViewFrameLayout1(view1, listVideo, video);
-            ViewFrameLayout2(view2, listCall, video);
+            View1(view1, videoList);
+            View2(view2, listCall, videoList);
             Button btn11 = new Button
             {
                 X = Application.GetRealWidth(170),
@@ -107,13 +107,13 @@
             };
             #endregion
         }
+
         /// <summary>
         /// 绗竴涓晫闈�
         /// </summary>
         /// <param name="view1">鐖舵帶浠�</param>
-        /// <param name="list">闂ㄥ彛鏈哄垪琛�</param>
-        /// <param name="videoClouds">褰撳墠鐨勫彲瑙嗗璁�</param>
-        void ViewFrameLayout1(FrameLayout view1, List<FlVideo> list, VideoClouds videoClouds)
+        /// <param name="video">鍙瀵硅瀵硅薄</param>
+        void View1(FrameLayout view1, List<Video> videoList)
         {
 
 
@@ -190,23 +190,25 @@
                 Width = Application.GetRealWidth(327),
             };
             bjFl.AddChidren(vv);
-            if (list.Count > 0)
+
+            bool bol = haveFlVideo(videoList);
+            if (bol)
             {
                 //闂ㄧ浜岀淮鐮佸浐瀹氭湁鐨�,铏氭嫙涓�涓嚭鏉�
-                list.Add(new FlVideo { aliasName = Language.StringByID(StringId.menjinerweima), devType = "100" });
+                videoList.Add(new Video { deviceName = Language.StringByID(StringId.menjinerweima), interphoneType = "100" });
             }
             //鏁扮粍涓暟
             //int value = 15;
             //鍏堣绠楁暟鎹墍闇�瑕佺殑寰堥珮搴︼紱
             int l = 0;
-            if (list.Count % 3 == 0)
+            if (videoList.Count % 3 == 0)
             {
-                l = list.Count / 3;
+                l = videoList.Count / 3;
             }
             else
             {
 
-                l = (list.Count / 3) + 1;
+                l = (videoList.Count / 3) + 1;
             }
             var fL = new FrameLayout
             {
@@ -216,9 +218,9 @@
             vv.AddChidren(fL);
             int line = 0;
             #endregion
-            for (int i = 1, j = 0; i <= list.Count; i++, j++)
+            for (int i = 1, j = 0; i <= videoList.Count; i++, j++)
             {
-                var video = list[i - 1];
+                var video = videoList[i - 1];
                 #region
                 var fLayout = new FrameLayout
                 {
@@ -247,7 +249,7 @@
                     TextSize = TextSize.Text10,
                     TextColor = CSS.CSS_Color.TextualColor,
                     TextAlignment = TextAlignment.Center,
-                    Text = video.aliasName,
+                    Text = video.deviceName,
                 };
                 fLayout.AddChidren(deviceNameBtn);
 
@@ -265,11 +267,11 @@
                 //闂ㄥ彛鏈虹殑鐐瑰嚮浜嬩欢
                 clickBtn.MouseUpEventHandler += (sender, e) =>
                 {
-                    var flVideo = clickBtn.Tag as FlVideo;
-                    if (flVideo.devType == "100")
+                    var video2 = clickBtn.Tag as Video;
+                    if (video2.devType == "100")
                     {
                         //闂ㄧ浜岀淮鐮佸浐瀹氭湁鐨�
-                        VideoSend.GetQRcode(this, videoClouds, (tag, paw) =>
+                        VideoSend.GetQRcode(this, video2, (tag, paw) =>
                         {
                             if (tag)
                             {
@@ -281,36 +283,44 @@
                     }
                     else
                     {
-                        if (string.IsNullOrEmpty(flVideo.uuid))
+
+                        if (string.IsNullOrEmpty(video.deviceId))
                         {
                             new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.peizhicanshuyouyichang));
                             return;
                         }
+
+                        //Unitno = Intent.GetStringExtra("unitno");
+                        //HomeID = Intent.GetStringExtra("HomeID");
+
+
                         ESVideoInfo eSVideoInfo = new ESVideoInfo
                         {
-                            ESVideoUUID = getUuid(flVideo.uuid),
-                            DeviceName = flVideo.aliasName,
-                            roomno = videoClouds.flRoomId,
-                            unitno = videoClouds.flBuildingId,
+                            ESVideoUUID = getUuid(video.deviceId),
+                            DeviceName = video.deviceName,
+                            roomno = video.flRoomBindVO.flRoomId,
+                            unitno = video.flRoomBindVO.flBuildingId,
+                            uuid= getUuid(video.deviceId),
+                            cmtID=video.flRoomBindVO.flCmtId,
+                            Lc_AccessToken = video.subAccountToken,
+                            Lc_DeviceId = video.deviceId,
+                            Lc_Psk = video.deviceName,
+                            Lc_PlayToken = video.playToken,
                         };
-                        ESOnVideo.Current.ShowESVideoMonitor(eSVideoInfo);
+                        ESOnVideo.Current.ShowESVideoMonitor(eSVideoInfo, video.interphoneType);
                     }
-
-
                 };
             }
-
-
         }
+
         /// <summary>
         /// 绗簩涓晫闈�
         /// </summary>
         /// <param name="view2">鐖舵帶浠�</param>
         /// <param name="listCall">閫氳瘽璁板綍鍒楄〃</param>
-        /// <param name="video">褰撳墠鐨勫彲瑙嗗璁�</param>
-        void ViewFrameLayout2(FrameLayout view2, List<CallView> listCall, VideoClouds video) 
+        /// <param name="videoList">鍙瀵硅鍒楄〃</param>
+        void View2(FrameLayout view2, List<CallView> listCall, List<Video> videoList)
         {
-
             var bjFl = new FrameLayout
             {
                 Y = Application.GetRealHeight(24),
@@ -349,20 +359,20 @@
                 TextAlignment = TextAlignment.CenterLeft,
                 TextID = StringId.baolu30,
             };
-            //bjFl.AddChidren(regionBtn);
+            bjFl.AddChidren(regionBtn);
 
             var vv = new VerticalRefreshLayout
             {
                 X = Application.GetRealWidth(16),
-                Y = Application.GetRealHeight(58),
-                Height = Application.GetRealHeight(458),
+                Y = Application.GetRealHeight(58 + 17),
+                Height = Application.GetRealHeight(458 - 17),
                 Width = Application.GetRealWidth(295),
             };
             bjFl.AddChidren(vv);
             vv.BeginHeaderRefreshingAction += () =>
             {
                 VideoMethod videoMethod = new VideoMethod();
-                var list = videoMethod.GetCall(video.id);
+                var list = videoMethod.GetCall();
                 RefreshView(vv, list);
                 //鍏抽棴鍒锋柊View锛�
                 vv.EndHeaderRefreshing();
@@ -370,6 +380,7 @@
             RefreshView(vv, listCall);
 
         }
+
         /// <summary>
         /// 閫氳瘽璁板綍鍒锋柊鐣岄潰
         /// </summary>
@@ -395,6 +406,7 @@
                     frameLayout60.btnTime.Text = getTime(call.callTime);
                     ///鍛煎彨鐘舵�侊紙0锛氭湭鎺ワ紱1锛氬凡鎺ワ紱2锛氭嫆鎺ワ級锛涙槸鍚﹀紑閿侊紱
                     frameLayout60.btnStateText.Text = getStateText(call.callStatus) + "," + getUnlockText(call.isUnlock);
+
                 }
 
             }
@@ -406,11 +418,11 @@
         /// </summary>
         /// <param name="flVideo"></param>
         /// <param name="iconBtn">鍥炬爣</param>
-        private void getIconAndText(FlVideo flVideo, Button iconBtn)
+        private void getIconAndText(Video Video, Button iconBtn)
         {
             //(1瀹ゅ唴鏈�,2瀹ゅ鏈猴紝3鍥村鏈猴紝4绠$悊鏈�,5浜屾纭鏈�)
             string iconstr = "";
-            switch (flVideo.devType)
+            switch (Video.devType)
             {
                 case "1":
                     {
@@ -461,10 +473,7 @@
         {
             var utcTime = Convert.ToDateTime(str);
             var dateTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, TimeZoneInfo.Local);
-            // var monday = dateTime.ToString("MM") + Language.StringByID(StringId.month) + dateTime.ToString("dd") + Language.StringByID(StringId.day);
-            var monday = dateTime.ToString("MM") + "/" + dateTime.ToString("dd");
-            var time = dateTime.ToString("HH") + ":" + dateTime.ToString("mm");
-            return monday + " " + time;
+            return dateTime.ToString("HH") + ":" + dateTime.ToString("mm");
         }
         /// <summary>
         /// 鑾峰彇鍛煎彨鐘舵�佹枃鏈�
@@ -501,14 +510,16 @@
         /// <returns></returns>
         private string getUnlockText(bool if_bool)
         {
+            string s = "";
             if (if_bool)
             {
-                return Language.StringByID(StringId.yikaisuo);
+                s = Language.StringByID(StringId.yikaisuo);
             }
             else
             {
-                return Language.StringByID(StringId.weikaisuo);
+                s = Language.StringByID(StringId.weikaisuo);
             }
+            return s;
         }
         /// <summary>
         /// 鑾峰彇uuid
@@ -528,6 +539,22 @@
             }
         }
 
+
+        //鍒ゆ柇鏄惁鏈� 涓版灄鍙瀵硅
+        private bool haveFlVideo(List<Video> videoList)
+        {
+            bool bol = false;
+
+            for (int i = 0; i < videoList.Count; i++)
+            {
+                var _video = videoList[i];
+                if (_video.interphoneType == "FLVI")
+                    return true;
+            }
+
+            return bol;
+        }
+
     }
 
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs
index c7d4797..cb881c5 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs
@@ -3,6 +3,8 @@
 using HDL_ON.UI.UI2.PersonalCenter.PirDevice;
 using System.Collections.Generic;
 using Shared;
+using HDL_ON.Entity;
+using Newtonsoft.Json;
 
 namespace HDL_ON.UI.UI2.FuntionControlView.Video
 {
@@ -13,24 +15,31 @@
         /// </summary>
         /// <param name="frameLayout">log鐖舵帶浠�</param>
         /// <param name="video">鍙瀵硅瀵硅薄</param>
-        public void MianView(FrameLayout frameLayout, VideoClouds video)
+        public void MianView(FrameLayout frameLayout)
         {
             //鍔犺浇log
             Loading loading = new Loading();
             frameLayout.AddChidren(loading);
             loading.Start();
-            List<FlVideo> listESVideoInfo = new List<FlVideo>();
             List<CallView> listCall = new List<CallView>();
             new System.Threading.Thread(() =>
             {
                 try
                 {
-                    listESVideoInfo = VideoSend.GetVideoInfoList(video);
-                    listCall = GetCall(video.id);
+                    // 杩欓噷鍐嶈幏鍙栦竴娆¤澶囧垪琛紙鏇存柊鏁版嵁锛�
+                    var videoInfo = VideoSend.GetVideoInfoList();
+                    if (videoInfo.Code == StateCode.SUCCESS)
+                    {
+                        string data_str = videoInfo.Data.ToString();
+                        FunctionList.List.videoIntercom = JsonConvert.DeserializeObject<List<UI.UI2.FuntionControlView.Video.Video>>(data_str);
+                    }
+
+                    // 鑾峰彇閫氳瘽璁板綍
+                    listCall = GetCall();
                 }
                 catch
                 {
-
+                    //
                 }
                 finally
                 {
@@ -39,13 +48,14 @@
                         loading.Hide();
                         var mainView = new VideoMainView();
                         MainPage.BasePageView.AddChidren(mainView);
-                        mainView.Show(listESVideoInfo, listCall, video);
+                        mainView.Show(listCall, FunctionList.List.videoIntercom);
                         MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                     });
                 }
             })
             { IsBackground = true }.Start();
         }
+
         /// <summary>
         /// 鑾峰彇鍙瀵硅
         /// </summary>
@@ -68,18 +78,18 @@
                  }
              }, "鑾峰彇鍙瀵硅", "fram", frame, null, tag);
         } 
+
         /// <summary>
         /// 鑾峰彇鍘嗗彶閫氳瘽璁板綍
         /// </summary>
-        /// <param name="id"></param>
-        public List<CallView> GetCall(string id)
+        public List<CallView> GetCall()
         {
             List<CallView> callViewList = new List<CallView>();
             try
             {
 
                 List<Call> listCall = new List<Call>();
-                var responsePackNew = VideoSend.GetCall(id);
+                var responsePackNew = VideoSend.GetCall();
                 if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
                 {
                     var jobject = Newtonsoft.Json.Linq.JObject.Parse(responsePackNew.Data.ToString());
@@ -132,6 +142,7 @@
             catch { }
             return callViewList;
         } 
+
         /// <summary>
         /// 鍙戦�佸懡浠ょ嚎绋�
         /// </summary>
@@ -165,11 +176,12 @@
                 {
                     if (str == "鑾峰彇鍙瀵硅")
                     {
-                        responsePackNew = VideoSend.GetVideo();
+                        // responsePackNew = VideoSend.GetVideo();
+                        responsePackNew = VideoSend.GetVideoInfoList();
                     }
                     else if (str == "鑾峰彇閫氳瘽璁板綍")
                     {
-                        responsePackNew = VideoSend.GetCall(videoObj.id);
+                        responsePackNew = VideoSend.GetCall();
                     }
 
                 }
@@ -206,6 +218,7 @@
 
 
         }
+
         /// <summary>
         /// 闅忔満瀵嗙爜6浣�
         /// </summary>
@@ -220,6 +233,7 @@
             }
             return code;
         } 
+
         /// <summary>
         /// 鑾峰彇褰撳墠鏃堕棿鎴�
         /// </summary>
@@ -234,6 +248,7 @@
             return ((long)(DateTime.Now - startTime).TotalSeconds).ToString(); // 鐩稿樊绉掓暟
             
         }
+
         /// <summary>
         /// 鑾峰彇褰撳墠鏃堕棿鎴�
         /// </summary>
@@ -246,7 +261,6 @@
             System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 褰撳湴鏃跺尯
             return ((long)(DateTime.Now.AddDays(1) - startTime).TotalSeconds).ToString(); // 鐩稿樊绉掓暟
         }
-     
 
     }
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs
index 5a8a945..ae759bb 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs
@@ -22,16 +22,18 @@
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_FL_Check);
             return responsePackNew;
         }
+
         /// <summary>
         /// 鑾峰彇閫氳瘽璁板綍
         /// </summary>
         /// <returns></returns>
-        public static ResponsePackNew GetCall(string flBindId)
+        public static ResponsePackNew GetCall()
         {
-            var jObject = new JObject { { "homeId", PirSend.HomeId }, { "flBindId", flBindId }, { "pageSize", int.MaxValue } };
+            var jObject = new JObject { { "homeId", PirSend.HomeId }, { "pageSize", int.MaxValue } };
             var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_FL_GetCallList);
             return responsePackNew;
         }
+
         /// <summary>
         /// 鑾峰彇闂ㄥ彛鏈哄垪琛�(1瀹ゅ唴鏈�,2瀹ゅ鏈猴紝3鍥村鏈猴紝4绠$悊鏈�,5浜屾纭鏈�)
         /// </summary>
@@ -64,21 +66,36 @@
             catch { }
             return eSVideoInfosList;
         }
+
+        /// <summary>
+        /// 鑾峰彇鍙瀵硅璁惧鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public static ResponsePackNew GetVideoInfoList()
+        {
+            var jobject = new JObject();
+            jobject.Add("homeId", PirSend.HomeId);//1382596006055460866
+            var requestJson = HttpUtil.GetSignRequestJson(jobject);//鏁版嵁绛惧悕
+            // 鑾峰彇鍙瀵硅璁惧鍒楄〃
+            var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_VideoDeviceList, requestJson);
+            return revertObj;
+        }
+
         /// <summary>
         /// 涓婃姤鍔ㄦ�佸紑閿佸瘑鐮�(娉ㄦ剰锛氬瘑鐮佹湁鍙兘寤舵椂1鍒嗛挓鐢熸晥)
         /// </summary>
-        public static void GetQRcode(FrameLayout frame, VideoClouds video, Action<bool, string> action)
+        public static void GetQRcode(FrameLayout frame, Video video, Action<bool, string> action)
         {
             ///鏍囪鏄惁鎴愬姛
             bool if_bool = false;
             //涓存椂瀵嗙爜
             string pwd = VideoMethod.GetCode();
-            var jobject = new JObject();
            jobject.Add("communityID", video.flCmtId);//绀惧尯ID
+            var jobject = new JObject();
            jobject.Add("communityID", video.flRoomBindVO.flCmtId);//绀惧尯ID
             jobject.Add("fromTime", VideoMethod.GetCurrentTimeStamp());//寮�濮嬫椂闂�
             jobject.Add("validTime", VideoMethod.GetTomorrowTimeStamp());//鏈夋晥鏃堕棿
-            jobject.Add("unitno", video.flBuildingId);//鍗曞厓鍙�
-            jobject.Add("roomno", video.flRoomId);//鎴块棿鍙�
-            jobject.Add("code", pwd);
            jobject.Add("userKey", video.id);
            jobject.Add("timestamp", VideoMethod.GetCurrentTimeStamp());
            jobject.Add("secretKey", video.flSecretKey);
            jobject.Add("method", "setdynamicpwd");
            jobject.Add("numTimes", "5");
+            jobject.Add("unitno", video.flRoomBindVO.flBuildingId);//鍗曞厓鍙�
+            jobject.Add("roomno", video.flRoomBindVO.flRoomId);//鎴块棿鍙�
+            jobject.Add("code", pwd);
            jobject.Add("userKey", video.flRoomBindVO.id);
            jobject.Add("timestamp", VideoMethod.GetCurrentTimeStamp());
            jobject.Add("secretKey", video.flRoomBindVO.flSecretKey);
            jobject.Add("method", "setdynamicpwd");
            jobject.Add("numTimes", "5");
             //鍔犺浇log
             Loading loading = new Loading();
             frame.AddChidren(loading);
@@ -90,29 +107,13 @@
                     var str = HttpWebRequest(NewAPI.API_POST_FL_QRcode, jobject.ToString(), "POST");
                     if (!string.IsNullOrEmpty(str))
                     {
-                        if (str.Contains("status"))
+                        var json = JObject.Parse(str);
+                        if (json != null)
                         {
-                            //var json = JObject.Parse(str);
-                            //if (json != null)
-                            //{
-                            //    var stateCode = json["status"].ToString();
-                            //    if (stateCode == "0")
-                            //    {
-                            //        if_bool = true;
-                            //    }
-                            //}
-                            if_bool = true;
-                        }
-                        else {
-                            var json = JObject.Parse(str);
-                            if (json != null)
+                            var stateCode = json["status"].ToString();
+                            if (stateCode == "0")
                             {
-                                var stateCode = json["desc"].ToString();
-                                Application.RunOnMainThread(() =>
-                                {
-                                    //閿欒鎻愮ず
-                                    new Intelligence.Automation.LogicView.TipPopView().FlashingBox(stateCode);
-                                });
+                                if_bool = true;
                             }
                         }
                     }
@@ -131,6 +132,7 @@
             })
             { IsBackground = true }.Start();
         }
+
         /// <summary>
         /// 涓嬭浇鍥剧墖
         /// </summary>
@@ -158,6 +160,7 @@
             })
             { IsBackground = true }.Start();
         }
+
         /// <summary>
         ///  璇锋眰鏈嶅姟鍣ㄧ殑鏂规硶(鏀寔璇锋眰鏂瑰紡涓篜OST/GET)
         /// </summary>
@@ -201,6 +204,7 @@
                 return null;
             }
         }
+
         /// <summary>
         ///璇锋眰鏈嶅姟鍣紙涓庝綇瀹呮湁鍏�:渚嬪锛沨omeId锛� 
         /// </summary>
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout50.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout50.cs
index 53c9190..fa8d245 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout50.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout50.cs
@@ -8,10 +8,10 @@
         /// <summary>
         /// 涓绘帶浠禫iew
         /// </summary>
-        public RowLayout frameLayout = new RowLayout
+        public FrameLayout frameLayout = new FrameLayout
         {
             Height = Application.GetRealHeight(50),
-            LineColor = CSS.CSS_Color.view,
+            // BackgroundColor = CSS.CSS_Color.view,
         };
         /// <summary>
         /// 鏂囨湰鎻忚堪
@@ -36,7 +36,7 @@
         /// View鐨勬柟娉�
         /// </summary>
         /// <returns></returns>
-        public RowLayout FLayoutView()
+        public FrameLayout FLayoutView()
         {
             frameLayout.AddChidren(btnText);
             frameLayout.AddChidren(btnClick);
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout60.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout60.cs
index dd1c231..9eb9fc4 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout60.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/View/FrameLayout60.cs
@@ -8,10 +8,10 @@
         /// <summary>
         /// 涓绘帶浠禫iew
         /// </summary>
-        public RowLayout frameLayout = new RowLayout
+        public FrameLayout frameLayout = new FrameLayout
         {
             Height = Application.GetRealHeight(60),
-            LineColor = CSS.CSS_Color.view,
+            //BackgroundColor = CSS.CSS_Color.view,
         };
 
         /// <summary>
@@ -37,10 +37,10 @@
             Y = Application.GetRealHeight(10),
             Width = Application.GetRealWidth(120),
             Height = Application.GetRealHeight(20),
-            TextColor = CSS.CSS_Color.textCancelColor,
+            TextColor = CSS.CSS_Color.textColor,
             TextSize = TextSize.text14,
             TextAlignment=TextAlignment.CenterLeft,
-            //Text = "15:01",
+            Text = "15:01",
         };
         /// <summary>
         /// 鐘舵�佹枃鏈�
@@ -53,6 +53,7 @@
             TextSize = TextSize.text12,
             TextColor = CSS.CSS_Color.textCancelColor,
             TextAlignment = TextAlignment.CenterLeft,
+            Text = "宸叉帴鍚�, 宸插紑閿�",
         };
 
 
@@ -87,7 +88,7 @@
         /// View鐨勬柟娉�
         /// </summary>
         /// <returns></returns>
-        public RowLayout FLayoutView()
+        public FrameLayout FLayoutView()
         {
             frameLayout.AddChidren(btnText);
             frameLayout.AddChidren(btnTime);
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs
index cbb2043..d5a2001 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs
@@ -125,12 +125,12 @@
             //瀵嗙爜
             Button btnpaw = new Button()
             {
-                X=Application.GetRealWidth(95),
+                X=Application.GetRealWidth(100),
                 Y = Application.GetRealHeight(62),
                 Height = Application.GetRealHeight(32),
-                Width = Application.GetRealWidth(82+5),
+                Width = Application.GetRealWidth(82),
                 TextColor = MusicColor.SelectedColor,
-                TextSize =18,//24
+                TextSize =24,
                 TextAlignment = TextAlignment.Center,
                 IsBold = true,
                 Text = str1,
@@ -143,7 +143,7 @@
                 Width = Application.GetRealWidth(20),
                 Height = Application.GetRealWidth(20),
                 UnSelectedImagePath = "LoginIcon/ShowPasswordIcon.png",
-                SelectedImagePath = "LoginIcon/HidePasswordIcon.png",
+                SelectedImagePath = "LoginIcon/HidePasswordIcon.png",
             };
             whiteView.AddChidren(iconBtn);
             //浜岀淮鐮�
diff --git a/HDL_ON/UI/UI2/UserPage.cs b/HDL_ON/UI/UI2/UserPage.cs
index 8147061..2da462c 100644
--- a/HDL_ON/UI/UI2/UserPage.cs
+++ b/HDL_ON/UI/UI2/UserPage.cs
@@ -302,7 +302,7 @@
         /// <summary>
         /// 鍒囨崲鍒版敹钘忕晫闈�
         /// </summary>
-        void ChooseCollection()
+        public void ChooseCollection()
         {
             if (MainPage.CurPageIndex == 0)
             {
diff --git a/HDL_ON/UI/UI2/UserPageBLL.cs b/HDL_ON/UI/UI2/UserPageBLL.cs
index e48e51e..b7c69dd 100644
--- a/HDL_ON/UI/UI2/UserPageBLL.cs
+++ b/HDL_ON/UI/UI2/UserPageBLL.cs
@@ -1,4 +1,5 @@
 锘縰sing System;
+//using Android.Content;
 using Shared;
 
 namespace HDL_ON.UI

--
Gitblit v1.8.0