From bba578c2f0acf2eca747edcb69426771e0cadd32 Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期一, 23 三月 2020 18:20:50 +0800
Subject: [PATCH] 2020-03-23-3

---
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/16Icon.png                                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/21Icon.png                                           |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs                                   |  187 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs                         |  228 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/17IconSelected.png                                 |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/18IconSelected.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/11IconSelected.png                                 |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs                                  |   38 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/25IconSelected2.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorBindTargetSettionForm.cs                 |    6 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/4IconSelected2.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerZbGatewaySelected2.png                     |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/15IconSelected.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/12IconSelected.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/5IconSelected2.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/15IconSelected2.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelFangyueFreshAirDirectionForm.cs              |   76 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainAutoOpenSelected2.png                               |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/1Icon.png                                            |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/22IconSelected2.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueEnvironmentSelected2.png                 |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs                           |    6 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterSelected2.png                                      |    0 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceTemperatureCardControl.cs                  |   10 
 ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs                               |   18 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/20IconSelected.png                                 |    0 
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAcRowControl.cs                             |  113 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorDoorWindowSelected2.png                            |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureHumiditySelected2.png                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerZbGatewaySelected2.png                       |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterZb485.png                                       |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/24Icon.png                                           |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/19Icon.png                                         |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/ScenePictrueControl.cs           |  147 
 ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelFangyueTwoButtonTable.png                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/12IconSelected2.png                                  |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksH06CSelected2.png                        |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/20IconSelected2.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceCurtainLogic.cs                          |    2 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorInfraredSelected2.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs                                        |   69 
 ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs                                                       |   24 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/6IconSelected.png                                    |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/9IconSelected.png                                    |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs           |  591 +
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceHardInfoLogic.cs                         |   12 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/20Icon.png                                         |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFunctionSettionForm.cs                    |    6 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/3IconSelected.png                                    |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/ProgressBackground.png                                 |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/15IconSelected2.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelSelected2.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/25IconSelected2.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/LowPower.png                                             |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs                           |   45 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/17IconSelected2.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/ButtonPanelFangyueEnvironmentBigPic.png                |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/27Icon.png                                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/10Icon.png                                           |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/10Icon.png                                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorDoorWindowSelected2.png                              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Converter.png                                            |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/VolumeIcon.png                                           |    0 
 ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml                                               |    2 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterZigbeeSelected2.png                                |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueTwoSelected2.png                       |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureSelected2.png                             |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterZigbeeSelected2.png                              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorWaterSelected2.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDeviceSelected.png                             |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorInfraredSelected2.png                              |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayEpointSelected2.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/27Icon.png                                           |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/13Icon.png                                           |    0 
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceDoorLockRowControl.cs                       |   66 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power60.png                                            |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/26IconSelected.png                                 |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs                                       |   42 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterSelected2.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/23IconSelected.png                                 |    0 
 ZigbeeApp/Home.Ios/Home.IOS.csproj                                                                   |  123 
 ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power100.png                                             |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelOneSelected2.png                                |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Instruct/PanelCurtain.png                                         |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorHumiditySelected2.png                              |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSiphonateSelected2.png                              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCarbonMonoxideSelected2.png                        |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/13Icon.png                                         |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/9IconSelected2.png                                 |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/BindPic/FreshAirIcon.png                                          |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayThreeLoadSelected2.png                              |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/Socket1Selected2.png                                       |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/28IconSelected2.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/RowLayoutControl.cs          |    1 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/LightSelected2.png                                       |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/8Icon.png                                            |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/NormallyOpenOn.png                                     |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/CommonFormResouce.cs                                        |    8 
 ZigbeeApp/Shared/Phone/Device/CommonForm/TopFrameLayout.cs                                           |   30 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/DryContactSelected2.png                                    |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/VolumeIconOn.png                                       |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/17IconSelected2.png                                |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/6IconSelected2.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/1Icon.png                                          |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power100.png                                           |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/22IconSelected2.png                                |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPirSelected2.png                                     |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs                           |    2 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueFourSelected2.png                        |    0 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceDoorLockCardControl.cs                     |    3 
 ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs                                               | 11131 +++++++++++---------
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/24IconSelected2.png                                  |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/PanelCurtain.png                                       |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorSelected2.png                                        |    0 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceFunctionUnallocatedControl.cs                         |   98 
 ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/ProgressBackground.png                                   |    0 
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/Base/DeviceRowCommon.cs                           |  455 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/EntryStatusPage.cs                                        |   38 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/12Icon.png                                         |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/4Icon.png                                          |    0 
 ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs                                                  | 1472 ++
 ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewPhoneForm.cs                                      |   19 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/9IconSelected.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueEightSelected2.png                       |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power40.png                                              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DryContactSelected2.png                                  |    0 
 ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs                                                  |   26 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/14IconSelected2.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchCloudContrSelected2.png                           |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/5Icon.png                                            |    0 
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceRelayRowControl.cs                          |  111 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/11Icon.png                                           |    0 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs                   |   13 
 ZigbeeApp/Shared/Phone/MainPage/Controls/SceneCardControl.cs                                         |   91 
 ZigbeeApp/Shared/Common/ZigbeeColor.cs                                                               |   20 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/7IconSelected2.png                                   |    0 
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceSensorRowControl.cs                         |   25 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/2IconSelected2.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorSelected2.png                                      |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorFireSelected2.png                                    |    0 
 ZigbeeApp/Shared/Phone/Login/AccountRegisterSuccess.cs                                               |    4 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueButtonSettionForm.cs                      |   56 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/ButtonPanelFangyueEnvironmentBigPic.png              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/NormallyOpenOffline.png                                |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs                                                 |   37 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSelected2.png                                       |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/12IconSelected2.png                                |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ColorLightSelected2.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ThirdPartyDeviceSelected2.png                              |    0 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAirSwitchCardControl.cs                    |   13 
 ZigbeeApp/Shared/Phone/Login/AccountLoginByCode.cs                                                   |   20 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/6IconSelected.png                                  |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/3IconSelected.png                                  |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs                                         |   24 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/24Icon.png                                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFourSelected2.png                               |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/22IconSelected.png                                 |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/18IconSelected2.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/16Icon.png                                           |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs                                       | 1178 +
 ZigbeeApp/Shared/Phone/UserView/LoginLoading.cs                                                      |   11 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/25IconSelected.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/27IconSelected2.png                                |    0 
 ZigbeeApp/Shared/Shared.projitems                                                                    |   31 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/16IconSelected.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/28IconSelected.png                                 |    0 
 ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs                                               |  765 +
 ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power60.png                                              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFourSelected2.png                             |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDeviceSelected2.png                            |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayThreeLoadSelected2.png                                |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/10IconSelected.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/19IconSelected.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/13IconSelected.png                                 |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/28Icon.png                                           |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/5IconSelected2.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchSelected2.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelFangyueFourButtonTable.png                        |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/4IconSelected2.png                                   |    0 
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAirSwitchRowControl.cs                      |  111 
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceColorLightRowControl.cs                     |  112 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainAutoOpenSelected2.png                             |    0 
 ZigbeeApp/Shared/Phone/CommonForm/EditorCommonForm.cs                                                |   12 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs                                         |  113 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSelected2.png                                     |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/23Icon.png                                           |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/24IconSelected2.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/ProgressFormBar.cs            |   12 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/18IconSelected2.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs                          |    8 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/21IconSelected2.png                                  |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/23Icon.png                                         |    0 
 ZigbeeApp/Shared/Phone/Login/AccountLogin.cs                                                         |  329 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/27IconSelected2.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/17Icon.png                                           |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethod.cs                                        |   39 
 ZigbeeApp/Shared/Phone/UserCenter/Guide/GuideForm2.cs                                                |    2 
 ZigbeeApp/Shared/Phone/UserCenter/Residence/AddNewRoomForm.cs                                        |   49 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/17Icon.png                                         |    0 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceCurtainCardControl.cs                      |   17 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs              |  162 
 ZigbeeApp/Shared/Phone/ZigBee/Device/Enum.cs                                                         |    9 
 ZigbeeApp/Shared/Phone/Device/Light/DimmableLightControl.cs                                          |   24 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorHumiditySelected2.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs                              |   21 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddContactForm.cs                                  |   19 
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceTemperatureRowControl.cs                    |   41 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelCurtain.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/5Icon.png                                          |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/Converter.png                                              |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs                                |  170 
 ZigbeeApp/Shared/Phone/Device/Light/OnOffControl.cs                                                  |   26 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/24IconSelected.png                                   |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs                                  |   81 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerSelected2.png                                |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/21IconSelected.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/27IconSelected.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/4Icon.png                                            |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs                                   |  119 
 ZigbeeApp/Home.Ios/AppDelegate.cs                                                                    |    1 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/16IconSelected2.png                                  |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs                              |    8 
 ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/VolumeIconOn.png                                         |    0 
 ZigbeeApp/Shared/Phone/Device/Light/PlugControl.cs                                                   |   26 
 ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs                                                    |   92 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/26IconSelected2.png                                  |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs                                      |   41 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/25Icon.png                                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/1IconSelected2.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/15Icon.png                                           |    0 
 ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs                                                     |  597 +
 ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/PowerOffline.png                                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/9Icon.png                                            |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/ResidenceOption.cs                               |   10 
 ZigbeeApp/Shared/Phone/ZigBee/Common/IStatus.cs                                                      |   15 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/21IconSelected2.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelCurtainDirectionForm.cs                      |   84 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs                                   |   35 
 ZigbeeApp/Shared/Phone/Device/Room/AddRoomSelectPicByLocal.cs                                        |    5 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPirSelected2.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/11IconSelected2.png                                  |    0 
 ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs                                                  |   12 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelThreeSelected2.png                            |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/3Icon.png                                          |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/19IconSelected2.png                                |    0 
 ZigbeeApp/Home.Ios/Info.plist                                                                        |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/11Icon.png                                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorWaterSelected2.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/NormallyOpenOffline.png                                  |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SwitchSelected2.png                                      |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueEnvironmentSelected2.png               |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power40.png                                            |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/8IconSelected2.png                                 |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterZb485Selected2.png                                |    0 
 ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs                                                        |  315 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/12Icon.png                                           |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs                                     |   51 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs                          |    7 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelThreeSelected2.png                              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelSelected2.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterSelected2.png                                    |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/6Icon.png                                            |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ColorLightSelected2.png                                    |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs                                        |  424 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/25IconSelected.png                                   |    0 
 ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs                                                      |    9 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/2IconSelected.png                                  |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/18Icon.png                                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/28IconSelected.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/22IconSelected.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/VolumeIcon.png                                         |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelFangyueTwoButtonTable.png                       |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueEnvironmentButtonSettionForm.cs           |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/5IconSelected.png                                  |    0 
 ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj                                                         |  350 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/3Icon.png                                            |    0 
 ZigbeeApp/Shared/Common/CommonPage.cs                                                                |    7 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/4IconSelected.png                                    |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/7IconSelected.png                                    |    0 
 ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs                                   |    2 
 ZigbeeApp/Shared/Phone/Device/AC/ACControl.cs                                                        |   25 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/6Icon.png                                          |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/NormallyOpenOn.png                                       |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/1IconSelected.png                                    |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/17IconSelected.png                                   |    0 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAcCardControl.cs                           |   13 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorFireSelected2.png                                  |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/9Icon.png                                          |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightOneLoadSelected2.png                          |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchCloudContrSelected2.png                         |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/28Icon.png                                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ThirdPartyDeviceSelected.png                               |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power80.png                                              |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksH06CSelected2.png                          |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/8IconSelected.png                                  |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerSelected2.png                              |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/11IconSelected.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSiphonateSelected2.png                            |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/22Icon.png                                           |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs                                     |   11 
 ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs                                          |   25 
 ZigbeeApp/Home.Ios/Resources/Phone/RealDevice/ButtonPanelCurtain.png                                 |    0 
 ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceCurtainRowControl.cs                        |  204 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerEpointSelected2.png                        |    0 
 ZigbeeApp/Shared/R.cs                                                                                |  181 
 ZigbeeApp/GateWay.Droid/Assets/Phone/RealDevice/ButtonPanelCurtain.png                               |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs              |    8 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/9IconSelected2.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightSelected2.png                                 |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/RoomAndDeviceView.cs                                             |    4 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelCurtainSelected.png                           |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/11IconSelected2.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MasterManagementPage.cs                                   |   40 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/LightSelected2.png                                         |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs                                     |  139 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLighWithSensorForm.cs                        |  644 +
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs                                        |  943 +
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/6IconSelected2.png                                   |    0 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceRelayCardControl.cs                        |   13 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Socket1Selected2.png                                     |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/22Icon.png                                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/18Icon.png                                           |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/3IconSelected2.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/14IconSelected2.png                                |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelFangyueEightButtonTable.png                       |    0 
 ZigbeeApp/Shared/Common/House.cs                                                                     |    2 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/28IconSelected2.png                                  |    0 
 ZigbeeApp/GateWay.Droid/Assets/Language.ini                                                          |  177 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/3IconSelected2.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/25Icon.png                                           |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/23IconSelected2.png                                |    0 
 ZigbeeApp/Shared/Phone/Device/Category/Category.cs                                                   |   96 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs |    4 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceDryContactCardControl.cs                   |   77 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/GatewayBackupEnum.cs                             |    4 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelFangyueFourButtonTable.png                      |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/19Icon.png                                           |    0 
 ZigbeeApp/Shared/Phone/UserView/UserPage.cs                                                          |  331 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/NormallyOpen.png                                       |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/13IconSelected2.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetExistSettionForm.cs                              |   10 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/7Icon.png                                          |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterZb485Selected2.png                              |    0 
 ZigbeeApp/Shared/Phone/MainPage/Controls/ListRoomCardControl.cs                                      |  125 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/23IconSelected.png                                   |    0 
 ZigbeeApp/Shared/Phone/Device/Light/AirSwitchControl.cs                                              |   24 
 ZigbeeApp/GateWay.Droid/Assets/Phone/BindPic/FreshAirIcon.png                                        |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayEpointSelected2.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/LowPower.png                                           |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/21Icon.png                                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/26IconSelected.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/20IconSelected.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchSelected2.png                                     |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs                                |   37 
 ZigbeeApp/Shared/Phone/UserCenter/Guide/GuideCommonForm.cs                                           |    6 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/10IconSelected.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/8IconSelected2.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/15Icon.png                                         |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/20Icon.png                                           |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelOneSelected2.png                              |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/16IconSelected.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/13IconSelected.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/1IconSelected2.png                                 |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/19IconSelected.png                                   |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/2Icon.png                                            |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/PowerOffline.png                                       |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightSelected2.png                               |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureSelected2.png                           |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs                                       |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksSelected2.png                            |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/ShowDoorLockMsgControl.cs                                 |  375 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/InformationEditorControl.cs   |   18 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs             |   14 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelTwoSelected2.png                              |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs |    7 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorCarbonMonoxideSelected2.png                          |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/23IconSelected2.png                                  |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs                                        |   29 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelCurtain.png                                     |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterSelected2.png                                     |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelaySelected2.png                                       |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/20IconSelected2.png                                  |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs                                       |   36 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksSelected2.png                              |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalFrameControl.cs |    4 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethodTip.cs                                     |   40 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterZb485.png                                         |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/16IconSelected2.png                                |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/2Icon.png                                          |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/24IconSelected.png                                 |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/2IconSelected2.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power80.png                                            |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/RelaySelected2.png                                         |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs                                           |   11 
 ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs                                                  | 1209 ++
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueEightSelected2.png                     |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelTwoSelected2.png                                |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/21IconSelected.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueFourSelected2.png                      |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/27IconSelected.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/18IconSelected.png                                 |    0 
 ZigbeeApp/Shared/Common/SceneUI.cs                                                                   |   12 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelCurtainSelected.png                             |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/15IconSelected.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightOneLoadSelected2.png                        |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/7IconSelected2.png                                 |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/NormallyOpen.png                                         |    0 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/Base/DeviceCardCommon.cs                         |  124 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs                                   |   28 
 ZigbeeApp/Shared/Phone/Login/PhoneEmailForm.cs                                                       |   99 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/19IconSelected2.png                                  |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelTable.png                                       |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/26IconSelected2.png                                |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/7Icon.png                                            |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/2IconSelected.png                                    |    0 
 ZigbeeApp/Home.Ios/Resources/Language.ini                                                            |  177 
 ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelFangyueEightButtonTable.png                     |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/10IconSelected2.png                                |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/7IconSelected.png                                  |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePanelLogic.cs                            |   81 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureHumiditySelected2.png                     |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/10IconSelected2.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/5IconSelected.png                                    |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/8IconSelected.png                                    |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/NormalControls/MostRightIconControl.cs         |    8 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelFangyueFreshAirModulDirectionForm.cs         |   93 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/12IconSelected.png                                 |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerEpointSelected2.png                          |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs                             |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/26Icon.png                                         |    0 
 ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceSelectUnallocatedControl.cs                           |  176 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/SwitchSelected2.png                                        |    0 
 ZigbeeApp/Shared/Common/Device.cs                                                                    |  152 
 ZigbeeApp/Shared/Phone/MainPage/ListRoomViewFrom.cs                                                  |  289 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDevice.png                                     |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/13IconSelected2.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelTable.png                                         |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/8Icon.png                                          |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueTwoSelected2.png                         |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/4IconSelected.png                                  |    0 
 /dev/null                                                                                            | 3770 -------
 ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/26Icon.png                                           |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Password/EditorSecondaryPasswordForm.cs                            |   21 
 ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/1IconSelected.png                                  |    0 
 ZigbeeApp/Home.Ios/Resources/Phone/Device/ThirdPartyDevice.png                                       |    0 
 ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs                                                 |  403 
 ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs               |    5 
 447 files changed, 18,973 insertions(+), 12,419 deletions(-)

diff --git a/ZigbeeApp/.vs/GateWay/xs/sqlite3/db.lock b/ZigbeeApp/.vs/GateWay/xs/sqlite3/db.lock
deleted file mode 100644
index e69de29..0000000
--- a/ZigbeeApp/.vs/GateWay/xs/sqlite3/db.lock
+++ /dev/null
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Language.ini b/ZigbeeApp/GateWay.Droid/Assets/Language.ini
index 4534637..236e0ca 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Language.ini
+++ b/ZigbeeApp/GateWay.Droid/Assets/Language.ini
@@ -234,139 +234,44 @@
 228=纭
 229=鍒嗛厤鎴愬姛
 230=纭畾瑕佸皢璇ヨ处鎴疯В鍐伙紵
-548=鎻愰啋璁剧疆
-550=鏂板鐢ㄦ埛
-551=澶村儚
-552=宸茬紪杈�
-553=鎸囩汗鍒楄〃
-554=鏈紪杈戝瘑鐮�
-555=鏈紪杈戞劅搴斿崱
-556=鍦烘櫙缂栬緫
-557=鏈紪杈戝満鏅�
-558=鏂板悕瀛�
-559=鍘熷悕瀛�
-560=绯荤粺璁剧疆
-561=瀵嗙爜鍒楄〃
-562=淇敼澶囨敞
-563=涓存椂瀵嗙爜
-564=鎰熷簲鍗�
-565=澶囨敞涓虹┖
-566=楠岃瘉鎴愬姛
-567=楠岃瘉棰戠箒锛岃5绉掑悗閲嶆柊鎿嶄綔
-568=鏈夋晥娆℃暟涓嶈秴杩�15娆�
-569=鏈夋晥鏃舵:
-570=鏈夋晥娆℃暟:
-571=鏃跺埢
-572= 娆�
-573=璇ヤ复鏃跺瘑鐮佹湁鏁�2娆�
-574=鐢熸垚涓存椂瀵嗙爜
-575=鏃�  鏈�
-576=鍒囨崲妯″紡浼氭竻闄ゆ寜閿腑鎵�鏈夌殑鐩爣锛岀‘瀹氳鍒囨崲鍚�
-577=鐭鏃堕棿
-578=鑷姩鐭鏃堕棿
-579=鎵嬪姩鐭鏃堕棿
-580=鍒�
-581=璁剧疆鎴愬姛
-582=璁剧疆澶辫触
-583=鍔ㄦ�佸瘑鐮�
-584=纭畾瑕侀噸鏂扮敓鎴愪复鏃跺姩鎬佸瘑鐮佸悧
-585=鎵�鏈夐�氱煡鎻愰啋
-586=寮�鍏抽棬鎻愰啋
-587=浣庣數鍘嬫姤璀�
-588=闃叉挰鎶ヨ
-589=闂ㄦ湭鍏虫姤璀�
-590=閿欒鎶ヨ
-591=閫氱煡鎻愰啋
-592=鎵嬫満鎺ㄩ�佹姤璀︿俊鎭�
-593=涓嶉�氱煡
-594=绫诲瀷
-595=鐢ㄦ埛
-596=鎸囩汗
-597=瀵嗙爜
-598=IC鍗�
-599=閽ュ寵
-600=杩滅▼
-601=涓存椂瀵嗙爜
-602=閽ュ寵
-603=瀵嗙爜閿欒
-604=闂ㄦ湭閿佸ソ
-605=鍔寔
-606=鐢甸噺涓嶈冻
-607=鎸囩汗閿欒
-608=鍗$墖閿欒
-609=寮�閿侊細
-610=鎶ヨ锛�
-611=寮�閿侀�氱煡
-612=淇℃伅鏇存敼
-614=鍙�夊満鏅�
-615=鍦烘櫙涓病鏈夌洰鏍囷紝鎺у埗澶辫触
-616=鐩爣閰嶇疆涓�
-617=鐩爣閰嶇疆鎴愬姛
-618=鎶ヨ鍦烘櫙璁剧疆
-619=璇疯緭鍏�6浣嶆暟瀛楀瘑鐮�
-620=璁剧疆瀵嗙爜闇�瑕佹寜璁惧鎸夐敭
-621=璇疯緭鍏�6浣嶅瘑鐮�
-622=瀵嗙爜鍙戦�佸け璐�
-623=鏇存敼瀵嗙爜鏃跺厛鍦ㄨ緭鍏ュ師瀵嗙爜
-624=璁剧疆瀵嗙爜闇�瑕佹寜璁惧閿�5s
-625=鏇存敼瀵嗙爜鏃跺厛杈撳叆鍘熷瘑鐮佺劧鍚庨暱鎸夎澶囨寜閿�5s鎵嶈兘鏇存敼瀵嗙爜
-626=鏃堕棿璁剧疆
-627=楠岃瘉棰戠箒锛岃15绉掑悗鍐嶆搷浣�
-628=璁惧涓嶅湪绾�
-629=璁剧疆瀵嗙爜
-630=鐢ㄦ埛鍚�
-631=鎵�鏈夐棬閿�
-632=瀵嗙爜涓嶅瓨鍦ㄣ�傚缓璁缃柊瀵嗙爜
-633=纭畾瑕佹洿鏀瑰瘑鐮佸悧
-634=鎵�鏈夊巻鍙茶褰�
-635=璁剧疆瀵嗙爜
-636=鎵惧洖瀵嗙爜
-637=璐︽埛瀵嗙爜
-638=璐︽埛瀵嗙爜閿欒
-639=鎵�鏈夎褰�
-640=杩滅▼寮�閿佸瘑鐮佽缃�/鏇存敼
-641=杩樻病璁剧疆瀵嗙爜
-642= 杩滅▼寮�閿佸瘑鐮佸凡缁忚缃�
-643= 娆㈣繋浣跨敤杩滅▼寮�閿�
-644=棣栨浣跨敤璇疯缃繙绋嬪紑閿佸瘑鐮�
-645=鐜板湪璁剧疆
-646=绋嶅悗璁剧疆
-647=绋嶅悗璇峰墠寰�绯荤粺璁剧疆涓缃垨鑰呮洿鏀瑰瘑鐮�
-648=璁剧疆6浣嶅瘑鐮�
-649=璇疯缃�6浣嶆柊瀵嗙爜
-650=璐︽埛瀵嗙爜涓虹┖
-651=鍦烘櫙鎶ヨ璁剧疆
-652=璁剧疆鐩爣澶辫触锛岃鍦ㄥ満鏅腑娣诲姞閫昏緫妯″潡
-653=鎺у埗澶辫触
-654=鏈煡鎸囩汗
-655=璇锋鏌ョ綉缁�
-656=鏈煡IC鍗�
-657=纭畾鎵撳紑鎶ヨ鎻愰啋?
-658=纭畾鍏抽棴鎶ヨ鎻愰啋锛�
-659=鎸囩汗璁板綍
-660=瀵嗙爜璁板綍
-661=IC鍗¤褰�
-662=杩滅▼璁板綍
-663=鎺ㄩ��
-664=鐢ㄦ埛
-665=璇疯緭鍏ユ帹閫佸唴瀹�
-666=褰撳墠宸茬粡閰嶇疆浜嗗満鏅紝纭畾瑕佹浛鎹㈠悧锛�
-667=鏀瑰満鏅凡缁忛�変腑
-668=娌℃湁鍙戠幇缃戝叧
-669=鍚屾閫氱煡鎴愬姛
-670=鍚屾閫氱煡澶辫触
-671=纭畾鍙戦�侀�氱煡鍚楋紵
-672=鎵撳紑闂ㄩ攣鎶ヨ鎴愬姛
-673=鎵撳紑闂ㄩ攣鎶ヨ澶辫触
-674=鍏抽棴闂ㄩ攣鎶ヨ鎴愬姛
-675=鍏抽棴闂ㄩ攣鎶ヨ澶辫触
-676=鍙戦�侀�氱煡鎴愬姛
-677=鍙戦�侀�氱煡澶辫触
-678=鎶ヨ閫氱煡
-679=宸茬粡缂栬緫鍦烘櫙
-680=鏈煡瀵嗙爜
-
-
+231=鎺ヨ繎鎰熷簲
+232=鎺ヨ繎鎰熷簲鍔熻兘璁剧疆缃け璐�
+233=鑾峰彇鎺ヨ繎鎰熷簲鍔熻兘澶辫触
+234=鏂规偊鏂伴灏忔ā鍧�
+235=鎸変綇闈㈡澘妯″紡锛圡ode)鍜岄閫燂紙Fan)鎸夐敭{0}缁胯壊鎸囩ず鐏寒璧枫�傚垯閰嶇綉鎴愬姛
+;涓夋寜閿潰鏉垮叆缃戞搷浣滄寚绀�
+236=缁胯壊鎸囩ず鐏棯鐑�
+237=鎸囩ず鐏�
+238=闀挎寜5绉掞紙鎸夐敭锛�
+239=闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝鎸囩ず鐏彉缁裤�侀棯鐑亄0}杩涘叆閰嶇綉鐘舵�併�傜豢鐏唲鐏垯閰嶇綉鎴愬姛
+;涓夋寜閿潰鏉垮叆缃戞搷浣滄寚绀�
+240= S-one
+241=璁剧疆甯稿紑妯″紡鍚庯紝鎮ㄧ殑闂ㄩ攣灏嗗缁坽0}澶勪簬鎵撳紑鐘舵�侊紝纭寮�鍚紵
+242=鐢甸噺
+243=甯稿紑妯″紡宸插紑鍚�
+244=澶辨晥璁剧疆
+245=鑷姩鍖�
+246=闂ㄩ攣濮嬬粓鎵撳紑{0}灏忔椂
+247=褰撳墠鏃跺尯
+248=鍙栨秷甯稿紑
+249=鎮ㄧ殑甯稿紑妯″紡灏嗚鍙栨秷
+250=淇濇寔甯稿紑
+251=纭鍙栨秷
+252=(鏈鎿嶄綔浠呬负鍗曟鍙栨秷锛岃嫢闇�瑕佸仠姝㈡墽琛岃嚜鍔ㄥ寲锛岃閫夋嫨鍒嗙被-鑷姩鍖栬繘琛岃缃�)
+253=鑾峰彇闂ㄩ攣甯稿紑妯″紡澶辫触
+254=鎵撳紑闂ㄩ攣甯稿紑妯″紡鎴愬姛
+255=鎵撳紑闂ㄩ攣甯稿紑妯″紡澶辫触
+256=鍏抽棴闂ㄩ攣甯稿紑妯″紡鎴愬姛
+257=鍏抽棴闂ㄩ攣甯稿紑妯″紡鎴愬姛
+258=甯稿紑妯″紡涓嬫棤娉曟搷浣�
+259=澶辨晥鏃堕棿涓嶅悎娉曪紝璇烽噸鍐欒缃�
+260=闊抽噺璁剧疆澶辫触
+261=闊抽噺璁剧疆鎴愬姛
+262=褰撳墠鏃跺尯
+263=鍖�
+264=涓�
+265=瑗�
+266=褰撳墠璁惧涓嶆敮鎸佽鍔熻兘
 
 5097=鍙栨秷
 5098=纭畾
@@ -1831,6 +1736,7 @@
 16071=绾�
 16072=鑳屽厜鐏寒搴�
 16073=鎵撳紑
+16074=鏃ョ珛绌鸿皟妯″潡
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄帴鍙g殑杩斿洖淇℃伅缈昏瘧,浠�18000寮�濮嬧槄鈽呪槄鈽�
 18004=鎸囧畾缃戝叧宸茬粡琚粦瀹�
@@ -1913,6 +1819,8 @@
 21020=鎸変綇闈㈡澘宸︿笂瑙掓寜閿紝鎵�鏈夋寜閿寚绀虹伅{0}浜捣锛屽垯閰嶇綉鎴愬姛
 ;鏂规偊鐜闈㈡澘鍏ョ綉鎿嶄綔鎸囩ず
 21021=鎸変綇闈㈡澘鍔熻兘(function)鎸夐敭锛屾墍鏈夋寜閿畕0}鎸囩ず鐏寒璧凤紝鍒欓厤缃戞垚鍔�
+;绐楀笜闈㈡澘鐨勫叆缃戞搷浣滄寚绀�
+21022=闀挎寜闈㈡澘宸︿笂瑙掓寜閿紝鎵�鏈夋寜閿畕0}鎸囩ず鐏寒璧凤紝鍒欓厤缃戞垚鍔�
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄ā鍧桰D鐨勭炕璇戝悕瀛�,浠�30000寮�濮嬧槄鈽呪槄鈽�
 30000=绱ф�ユ寜閽�
@@ -1951,6 +1859,7 @@
 30033=鏂规偊鐜闈㈡澘
 30034=绠�绾�4鎸夐敭鍦烘櫙闈㈡澘
 30035=绠�绾�2璺獥甯橀潰鏉�
+30036=鏂规偊/2璺獥甯橀潰鏉�-Z
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄澶囨墍灞炵绫荤殑缈昏瘧鍚嶅瓧,浠�40000寮�濮嬧槄鈽呪槄鈽�
 40000=閬槼
@@ -1967,4 +1876,4 @@
 40011=娓╂箍搴︿紶鎰熷櫒
 40012=娓╁害浼犳劅鍣�
 40013=婀垮害浼犳劅鍣�
-40014=骞叉帴鐐�
\ No newline at end of file
+40014=骞叉帴鐐�
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/BindPic/FreshAirIcon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/BindPic/FreshAirIcon.png
new file mode 100755
index 0000000..7dcb24c
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/BindPic/FreshAirIcon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerEpointSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerEpointSelected2.png
new file mode 100755
index 0000000..b01d55f
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerEpointSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerSelected2.png
new file mode 100755
index 0000000..0915084
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerZbGatewaySelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerZbGatewaySelected2.png
new file mode 100755
index 0000000..0915084
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerZbGatewaySelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchCloudContrSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchCloudContrSelected2.png
new file mode 100755
index 0000000..f6bd66e
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchCloudContrSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchSelected2.png
new file mode 100755
index 0000000..f6bd66e
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelCurtain.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelCurtain.png
new file mode 100755
index 0000000..a0e87e6
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelCurtain.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelCurtainSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelCurtainSelected.png
new file mode 100755
index 0000000..af7c7f8
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelCurtainSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueEightSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueEightSelected2.png
new file mode 100755
index 0000000..d452d06
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueEightSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueEnvironmentSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueEnvironmentSelected2.png
new file mode 100755
index 0000000..b01a740
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueEnvironmentSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueFourSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueFourSelected2.png
new file mode 100755
index 0000000..37ae231
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueFourSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueTwoSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueTwoSelected2.png
new file mode 100755
index 0000000..74d7490
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFangyueTwoSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFourSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFourSelected2.png
new file mode 100755
index 0000000..202bc47
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFourSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelOneSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelOneSelected2.png
new file mode 100755
index 0000000..cd553a1
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelOneSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelSelected2.png
new file mode 100755
index 0000000..202bc47
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelThreeSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelThreeSelected2.png
new file mode 100755
index 0000000..4dccc79
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelThreeSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelTwoSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelTwoSelected2.png
new file mode 100755
index 0000000..f916586
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelTwoSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ColorLightSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ColorLightSelected2.png
new file mode 100755
index 0000000..ebfa875
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ColorLightSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Converter.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Converter.png
index b0e9c11..0785b95 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Converter.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Converter.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterSelected2.png
new file mode 100755
index 0000000..27d83fa
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterZb485.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterZb485.png
index b0e9c11..0785b95 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterZb485.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterZb485.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterZb485Selected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterZb485Selected2.png
new file mode 100755
index 0000000..27d83fa
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ConverterZb485Selected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainAutoOpenSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainAutoOpenSelected2.png
new file mode 100755
index 0000000..79b2cdc
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainAutoOpenSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSelected2.png
new file mode 100755
index 0000000..79b2cdc
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSiphonateSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSiphonateSelected2.png
new file mode 100755
index 0000000..79b2cdc
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSiphonateSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightOneLoadSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightOneLoadSelected2.png
new file mode 100755
index 0000000..30c23a0
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightOneLoadSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightSelected2.png
new file mode 100755
index 0000000..30c23a0
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DryContactSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DryContactSelected2.png
new file mode 100755
index 0000000..4e40bb1
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DryContactSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksH06CSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksH06CSelected2.png
new file mode 100755
index 0000000..7c8e31b
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksH06CSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksSelected2.png
new file mode 100755
index 0000000..7c8e31b
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/LightSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/LightSelected2.png
new file mode 100755
index 0000000..ebfa875
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/LightSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayEpointSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayEpointSelected2.png
new file mode 100755
index 0000000..fc7cea3
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayEpointSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelaySelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelaySelected2.png
new file mode 100755
index 0000000..951d3cb
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelaySelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayThreeLoadSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayThreeLoadSelected2.png
new file mode 100755
index 0000000..951d3cb
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayThreeLoadSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterSelected2.png
new file mode 100755
index 0000000..e313935
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterZigbeeSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterZigbeeSelected2.png
new file mode 100755
index 0000000..e313935
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterZigbeeSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCarbonMonoxideSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCarbonMonoxideSelected2.png
new file mode 100755
index 0000000..5394ed4
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCarbonMonoxideSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorDoorWindowSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorDoorWindowSelected2.png
new file mode 100755
index 0000000..1bcd0d2
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorDoorWindowSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorFireSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorFireSelected2.png
new file mode 100755
index 0000000..5801d33
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorFireSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorHumiditySelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorHumiditySelected2.png
new file mode 100755
index 0000000..3687727
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorHumiditySelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorInfraredSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorInfraredSelected2.png
new file mode 100755
index 0000000..43c9a9e
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorInfraredSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorMotion.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorMotion.png
deleted file mode 100755
index 464710f..0000000
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorMotion.png
+++ /dev/null
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPirSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPirSelected2.png
new file mode 100755
index 0000000..7f1aa90
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPirSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorSelected2.png
new file mode 100755
index 0000000..5e800e7
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureHumiditySelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureHumiditySelected2.png
new file mode 100755
index 0000000..51855c1
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureHumiditySelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureSelected2.png
new file mode 100755
index 0000000..a5dc658
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperatureSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorWaterSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorWaterSelected2.png
new file mode 100755
index 0000000..4ecffea
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorWaterSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Socket1Selected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Socket1Selected2.png
new file mode 100755
index 0000000..f73889c
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Socket1Selected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SwitchSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SwitchSelected2.png
new file mode 100755
index 0000000..f6bd66e
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SwitchSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDevice.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDevice.png
index cf45a1f..c1770a3 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDevice.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDevice.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDeviceSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDeviceSelected.png
new file mode 100755
index 0000000..ec90708
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDeviceSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDeviceSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDeviceSelected2.png
new file mode 100755
index 0000000..9c4c795
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDeviceSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/ButtonPanelFangyueEnvironmentBigPic.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/ButtonPanelFangyueEnvironmentBigPic.png
new file mode 100755
index 0000000..f118ea7
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/ButtonPanelFangyueEnvironmentBigPic.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelFangyueEightButtonTable.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelFangyueEightButtonTable.png
new file mode 100755
index 0000000..bb8788a
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelFangyueEightButtonTable.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelFangyueFourButtonTable.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelFangyueFourButtonTable.png
new file mode 100755
index 0000000..0a98fbd
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelFangyueFourButtonTable.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelFangyueTwoButtonTable.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelFangyueTwoButtonTable.png
new file mode 100755
index 0000000..8ebc156
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelFangyueTwoButtonTable.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/PanelTable.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelTable.png
similarity index 100%
rename from ZigbeeApp/GateWay.Droid/Assets/Phone/Device/PanelTable.png
rename to ZigbeeApp/GateWay.Droid/Assets/Phone/DeviceItem/PanelTable.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/LowPower.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/LowPower.png
new file mode 100755
index 0000000..2b4273a
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/LowPower.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/NormallyOpen.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/NormallyOpen.png
new file mode 100755
index 0000000..c2c9532
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/NormallyOpen.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/NormallyOpenOffline.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/NormallyOpenOffline.png
new file mode 100755
index 0000000..209bbc6
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/NormallyOpenOffline.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/NormallyOpenOn.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/NormallyOpenOn.png
new file mode 100755
index 0000000..8fb7203
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/NormallyOpenOn.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power100.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power100.png
new file mode 100755
index 0000000..e0097f1
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power100.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power40.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power40.png
new file mode 100755
index 0000000..a4533fb
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power40.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power60.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power60.png
new file mode 100755
index 0000000..b0e81f9
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power60.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power80.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power80.png
new file mode 100755
index 0000000..cf297c0
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/Power80.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/PowerOffline.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/PowerOffline.png
new file mode 100755
index 0000000..3ca528d
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/PowerOffline.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/ProgressBackground.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/ProgressBackground.png
new file mode 100755
index 0000000..da1d1b2
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/ProgressBackground.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/VolumeIcon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/VolumeIcon.png
new file mode 100755
index 0000000..49f76cf
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/VolumeIcon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/VolumeIconOn.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/VolumeIconOn.png
new file mode 100755
index 0000000..ec361fb
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/DoorLock/VolumeIconOn.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/10Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/10Icon.png
index 31b4257..54c9dec 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/10Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/10Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/10IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/10IconSelected.png
index 8430524..27d15e2 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/10IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/10IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/10IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/10IconSelected2.png
new file mode 100755
index 0000000..8a9f054
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/10IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/11Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/11Icon.png
index 0c0b4ee..87557ba 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/11Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/11Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/11IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/11IconSelected.png
index 2d565dc..d1145ad 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/11IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/11IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/11IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/11IconSelected2.png
new file mode 100755
index 0000000..9c26005
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/11IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/12Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/12Icon.png
index 841ed27..82b9b40 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/12Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/12Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/12IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/12IconSelected.png
index f0abca5..d86edbe 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/12IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/12IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/12IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/12IconSelected2.png
new file mode 100755
index 0000000..31f4853
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/12IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/13Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/13Icon.png
index f2b75da..ea10304 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/13Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/13Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/13IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/13IconSelected.png
index 2228105..758d770 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/13IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/13IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/13IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/13IconSelected2.png
new file mode 100755
index 0000000..82f7ac3
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/13IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/14IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/14IconSelected2.png
new file mode 100755
index 0000000..f4bd614
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/14IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/15Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/15Icon.png
index a749360..10604dd 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/15Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/15Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/15IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/15IconSelected.png
index 4faa3e1..b39cf98 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/15IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/15IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/15IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/15IconSelected2.png
new file mode 100755
index 0000000..3ee6200
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/15IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/16Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/16Icon.png
index e652a11..b20c8b8 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/16Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/16Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/16IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/16IconSelected.png
index 01699e8..5dcb7f2 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/16IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/16IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/16IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/16IconSelected2.png
new file mode 100755
index 0000000..ec24db4
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/16IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/17Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/17Icon.png
index b20c8b8..82024d9 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/17Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/17Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/17IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/17IconSelected.png
index 5dcb7f2..a4f18d5 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/17IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/17IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/17IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/17IconSelected2.png
new file mode 100755
index 0000000..f544d34
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/17IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/18Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/18Icon.png
index 39a1287..a1ce50c 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/18Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/18Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/18IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/18IconSelected.png
index 4ea13da..937ae2a 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/18IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/18IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/18IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/18IconSelected2.png
new file mode 100755
index 0000000..bc27876
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/18IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/19Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/19Icon.png
index c6dad69..d18c088 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/19Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/19Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/19IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/19IconSelected.png
index 208edca..e9d54d9 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/19IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/19IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/19IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/19IconSelected2.png
new file mode 100755
index 0000000..ecb3778
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/19IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/1Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/1Icon.png
index 28ac0a9..78d6483 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/1Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/1Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/1IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/1IconSelected.png
index ac6ce6c..adfd844 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/1IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/1IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/1IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/1IconSelected2.png
new file mode 100755
index 0000000..cf38e61
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/1IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/20Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/20Icon.png
index d18c088..5b08b41 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/20Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/20Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/20IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/20IconSelected.png
index e9d54d9..9a3bdd9 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/20IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/20IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/20IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/20IconSelected2.png
new file mode 100755
index 0000000..15344d7
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/20IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/21Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/21Icon.png
new file mode 100755
index 0000000..b2b7706
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/21Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/21IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/21IconSelected.png
new file mode 100755
index 0000000..8c8ae39
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/21IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/21IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/21IconSelected2.png
new file mode 100755
index 0000000..f601398
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/21IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/22Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/22Icon.png
new file mode 100755
index 0000000..fb5c77a
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/22Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/22IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/22IconSelected.png
new file mode 100755
index 0000000..25ed769
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/22IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/22IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/22IconSelected2.png
new file mode 100755
index 0000000..fafddac
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/22IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/23Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/23Icon.png
new file mode 100755
index 0000000..81ad331
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/23Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/23IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/23IconSelected.png
new file mode 100755
index 0000000..1827473
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/23IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/23IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/23IconSelected2.png
new file mode 100755
index 0000000..96ffb78
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/23IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/24Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/24Icon.png
new file mode 100755
index 0000000..8324db8
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/24Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/24IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/24IconSelected.png
new file mode 100755
index 0000000..575b2f5
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/24IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/24IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/24IconSelected2.png
new file mode 100755
index 0000000..42f3819
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/24IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/25Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/25Icon.png
new file mode 100755
index 0000000..d5bc294
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/25Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/25IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/25IconSelected.png
new file mode 100755
index 0000000..1dcd4c5
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/25IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/25IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/25IconSelected2.png
new file mode 100755
index 0000000..c6014ab
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/25IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/26Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/26Icon.png
new file mode 100755
index 0000000..c4e0d1e
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/26Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/26IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/26IconSelected.png
new file mode 100755
index 0000000..a5b4a71
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/26IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/26IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/26IconSelected2.png
new file mode 100755
index 0000000..863388e
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/26IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/27Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/27Icon.png
new file mode 100755
index 0000000..07c53a2
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/27Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/27IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/27IconSelected.png
new file mode 100755
index 0000000..8d01e8f
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/27IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/27IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/27IconSelected2.png
new file mode 100755
index 0000000..7d6782a
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/27IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/28Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/28Icon.png
new file mode 100755
index 0000000..17c9898
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/28Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/28IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/28IconSelected.png
new file mode 100755
index 0000000..db47a3c
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/28IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/28IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/28IconSelected2.png
new file mode 100755
index 0000000..46606b4
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/28IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/2Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/2Icon.png
index 59a5ad9..a7eadb4 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/2Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/2Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/2IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/2IconSelected.png
index 34011fb..4c98a55 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/2IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/2IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/2IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/2IconSelected2.png
new file mode 100755
index 0000000..61d3db8
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/2IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/3Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/3Icon.png
index e19bb68..f2521ac 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/3Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/3Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/3IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/3IconSelected.png
index 9be55b9..7c37e9b 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/3IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/3IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/3IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/3IconSelected2.png
new file mode 100755
index 0000000..674d06f
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/3IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/4Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/4Icon.png
index 7d4c142..09559e3 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/4Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/4Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/4IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/4IconSelected.png
index bd02961..1b952d6 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/4IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/4IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/4IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/4IconSelected2.png
new file mode 100755
index 0000000..e6940df
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/4IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/5Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/5Icon.png
index aa55690..f3c7b17 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/5Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/5Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/5IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/5IconSelected.png
index 3f9b64a..d3c1005 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/5IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/5IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/5IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/5IconSelected2.png
new file mode 100755
index 0000000..d402904
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/5IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/6Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/6Icon.png
index 92c63e4..88d8280 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/6Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/6Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/6IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/6IconSelected.png
index b48c0fd..ae4dd06 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/6IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/6IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/6IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/6IconSelected2.png
new file mode 100755
index 0000000..ee38c4f
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/6IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/7Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/7Icon.png
index 48a6e27..a4f26c2 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/7Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/7Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/7IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/7IconSelected.png
index 2a26207..c5e5db8 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/7IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/7IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/7IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/7IconSelected2.png
new file mode 100755
index 0000000..19d5db3
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/7IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/8Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/8Icon.png
index 4a3bbef..b82afcf 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/8Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/8Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/8IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/8IconSelected.png
index d11557c..8ede4b8 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/8IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/8IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/8IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/8IconSelected2.png
new file mode 100755
index 0000000..687ea40
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/8IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/9Icon.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/9Icon.png
index f178284..d8b35dc 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/9Icon.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/9Icon.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/9IconSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/9IconSelected.png
index f095bfb..38e9ca2 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/9IconSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/9IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/9IconSelected2.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/9IconSelected2.png
new file mode 100755
index 0000000..86adf04
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/FunctionIcon/9IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/PanelCurtain.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/PanelCurtain.png
new file mode 100755
index 0000000..a68129c
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Instruct/PanelCurtain.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/RealDevice/ButtonPanelCurtain.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/RealDevice/ButtonPanelCurtain.png
new file mode 100755
index 0000000..ae97ad5
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/RealDevice/ButtonPanelCurtain.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj b/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
index 15b68a5..82fd553 100644
--- a/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
+++ b/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
@@ -41,7 +41,6 @@
     <AndroidSupportedAbis />
     <AndroidDexTool>d8</AndroidDexTool>
     <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
-    <AndroidKeyStore></AndroidKeyStore>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
@@ -313,7 +312,6 @@
     <AndroidAsset Include="Assets\Phone\Device\IntelligentLocks.png" />
     <AndroidAsset Include="Assets\Phone\Device\IntelligentLocksH06C.png" />
     <AndroidAsset Include="Assets\Phone\Device\Light.png" />
-    <AndroidAsset Include="Assets\Phone\Device\PanelTable.png" />
     <AndroidAsset Include="Assets\Phone\Device\Relay.png" />
     <AndroidAsset Include="Assets\Phone\Device\RelayEpoint.png" />
     <AndroidAsset Include="Assets\Phone\Device\RelayThreeLoad.png" />
@@ -325,7 +323,6 @@
     <AndroidAsset Include="Assets\Phone\Device\SensorFire.png" />
     <AndroidAsset Include="Assets\Phone\Device\SensorHumidity.png" />
     <AndroidAsset Include="Assets\Phone\Device\SensorInfrared.png" />
-    <AndroidAsset Include="Assets\Phone\Device\SensorMotion.png" />
     <AndroidAsset Include="Assets\Phone\Device\SensorPir.png" />
     <AndroidAsset Include="Assets\Phone\Device\SensorTemperature.png" />
     <AndroidAsset Include="Assets\Phone\Device\SensorWater.png" />
@@ -1581,15 +1578,6 @@
     <AndroidAsset Include="Assets\Phone\Instruct\PanelFangyueTwoButton.png" />
   </ItemGroup>
   <ItemGroup>
-    <AndroidAsset Include="Assets\Phone\Device\PanelFangyueEightButtonTable.png" />
-  </ItemGroup>
-  <ItemGroup>
-    <AndroidAsset Include="Assets\Phone\Device\PanelFangyueFourButtonTable.png" />
-  </ItemGroup>
-  <ItemGroup>
-    <AndroidAsset Include="Assets\Phone\Device\PanelFangyueTwoButtonTable.png" />
-  </ItemGroup>
-  <ItemGroup>
     <AndroidAsset Include="Assets\Phone\Device\ButtonPanelFangyueEightSelected.png" />
   </ItemGroup>
   <ItemGroup>
@@ -1635,9 +1623,6 @@
     <AndroidAsset Include="Assets\Phone\MenuGroud\TopRightMenu2_6.png" />
   </ItemGroup>
   <ItemGroup>
-    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelFangyueEnvironmentBigPic.png" />
-  </ItemGroup>
-  <ItemGroup>
     <AndroidAsset Include="Assets\Phone\Room\RoomShadow.png" />
   </ItemGroup>
   <ItemGroup>
@@ -1648,6 +1633,339 @@
   </ItemGroup>
   <ItemGroup>
     <AndroidAsset Include="Assets\Phone\Room\RoomCardShadow.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\AirConditionerEpointSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\AirConditionerSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\AirConditionerZbGatewaySelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\AirSwitchCloudContrSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\AirSwitchSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelFangyueEightSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelFangyueEnvironmentSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelFangyueFourSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelFangyueTwoSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelFourSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelOneSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelThreeSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelTwoSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ColorLightSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ConverterSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ConverterZb485Selected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\CurtainAutoOpenSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\CurtainSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\CurtainSiphonateSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\DimmableLightOneLoadSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\DimmableLightSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\DryContactSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\IntelligentLocksH06CSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\IntelligentLocksSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\LightSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\RelayEpointSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\RelaySelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\RelayThreeLoadSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\RepeaterSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\RepeaterZigbeeSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorCarbonMonoxideSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorDoorWindowSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorFireSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorHumiditySelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorPirSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorTemperatureHumiditySelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorTemperatureSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorWaterSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\Socket1Selected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SwitchSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ThirdPartyDeviceSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ThirdPartyDeviceSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\1IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\2IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\3IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\4IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\5IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\6IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\7IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\8IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\9IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\10IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\11IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\12IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\13IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\14IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\15IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\16IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\17IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\18IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\19IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\20IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\21Icon.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\21IconSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\21IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\22Icon.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\22IconSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\22IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\23Icon.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\23IconSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\23IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\24Icon.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\24IconSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\24IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\25Icon.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\25IconSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\25IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\26Icon.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\26IconSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\26IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\27Icon.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\27IconSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\27IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\28Icon.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\28IconSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\FunctionIcon\28IconSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\SensorInfraredSelected2.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Instruct\PanelCurtain.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DeviceItem\ButtonPanelFangyueEnvironmentBigPic.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DeviceItem\PanelFangyueEightButtonTable.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DeviceItem\PanelFangyueFourButtonTable.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DeviceItem\PanelFangyueTwoButtonTable.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DeviceItem\PanelTable.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\RealDevice\ButtonPanelCurtain.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelCurtain.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ButtonPanelCurtainSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DoorLock\LowPower.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DoorLock\NormallyOpen.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DoorLock\NormallyOpenOffline.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DoorLock\NormallyOpenOn.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DoorLock\Power40.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DoorLock\Power60.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DoorLock\Power80.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DoorLock\Power100.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DoorLock\PowerOffline.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DoorLock\ProgressBackground.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DoorLock\VolumeIcon.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\DoorLock\VolumeIconOn.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\BindPic\FreshAirIcon.png" />
   </ItemGroup>
   <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" />
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
@@ -1678,4 +1996,4 @@
   <Import Project="..\packages\Xamarin.Android.Support.Fragment.25.4.0.1\build\MonoAndroid70\Xamarin.Android.Support.Fragment.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Fragment.25.4.0.1\build\MonoAndroid70\Xamarin.Android.Support.Fragment.targets')" />
   <Import Project="..\packages\Xamarin.Android.Support.v4.25.4.0.1\build\MonoAndroid70\Xamarin.Android.Support.v4.targets" Condition="Exists('..\packages\Xamarin.Android.Support.v4.25.4.0.1\build\MonoAndroid70\Xamarin.Android.Support.v4.targets')" />
   <Import Project="..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets')" />
-</Project>
\ No newline at end of file
+</Project>
diff --git a/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml b/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml
index 073cb6b..4600bc7 100644
--- a/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml
+++ b/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml
@@ -167,4 +167,4 @@
 		<!-- 璁剧疆楂樺痉鍦板浘key -->
 		<meta-data android:name="com.amap.api.v2.apikey" android:value="1f753413955012c9594c5df69eaa0aff" />
 	</application>
-</manifest>
\ No newline at end of file
+</manifest>
diff --git a/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs b/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
index 09d3931..40013b1 100644
--- a/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
+++ b/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
@@ -13,5450 +13,5798 @@
 
 namespace GateWay.Droid
 {
-	
-	
+
+
 	[System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
 	public partial class Resource
 	{
-		
+
 		static Resource()
 		{
 			global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 		}
-		
+
 		public static void UpdateIdValues()
 		{
 			global::ZXing.Mobile.Resource.Id.contentFrame = global::GateWay.Droid.Resource.Id.contentFrame;
 			global::ZXing.Mobile.Resource.Layout.zxingscanneractivitylayout = global::GateWay.Droid.Resource.Layout.zxingscanneractivitylayout;
 			global::ZXing.Mobile.Resource.Layout.zxingscannerfragmentlayout = global::GateWay.Droid.Resource.Layout.zxingscannerfragmentlayout;
 		}
-		
+
 		public partial class Animation
 		{
-			
+
 			// aapt resource value: 0x7F010000
 			public const int abc_fade_in = 2130771968;
-			
+
 			// aapt resource value: 0x7F010001
 			public const int abc_fade_out = 2130771969;
-			
+
 			// aapt resource value: 0x7F010002
 			public const int abc_grow_fade_in_from_bottom = 2130771970;
-			
+
 			// aapt resource value: 0x7F010003
 			public const int abc_popup_enter = 2130771971;
-			
+
 			// aapt resource value: 0x7F010004
 			public const int abc_popup_exit = 2130771972;
-			
+
 			// aapt resource value: 0x7F010005
 			public const int abc_shrink_fade_out_from_bottom = 2130771973;
-			
+
 			// aapt resource value: 0x7F010006
 			public const int abc_slide_in_bottom = 2130771974;
-			
+
 			// aapt resource value: 0x7F010007
 			public const int abc_slide_in_top = 2130771975;
-			
+
 			// aapt resource value: 0x7F010008
 			public const int abc_slide_out_bottom = 2130771976;
-			
+
 			// aapt resource value: 0x7F010009
 			public const int abc_slide_out_top = 2130771977;
-			
-			// aapt resource value: 0x7F01000A
-			public const int design_bottom_sheet_slide_in = 2130771978;
-			
-			// aapt resource value: 0x7F01000B
-			public const int design_bottom_sheet_slide_out = 2130771979;
-			
-			// aapt resource value: 0x7F01000C
-			public const int design_snackbar_in = 2130771980;
-			
-			// aapt resource value: 0x7F01000D
-			public const int design_snackbar_out = 2130771981;
-			
-			// aapt resource value: 0x7F01000E
-			public const int fingerprint_draw_off_animation_interpolator_0 = 2130771982;
-			
-			// aapt resource value: 0x7F01000F
-			public const int fingerprint_draw_off_animation_interpolator_1 = 2130771983;
-			
-			// aapt resource value: 0x7F010010
-			public const int fingerprint_draw_off_ridge_1_path_animation = 2130771984;
-			
-			// aapt resource value: 0x7F010011
-			public const int fingerprint_draw_off_ridge_2_path_animation = 2130771985;
-			
-			// aapt resource value: 0x7F010012
-			public const int fingerprint_draw_off_ridge_5_path_animation = 2130771986;
-			
-			// aapt resource value: 0x7F010013
-			public const int fingerprint_draw_off_ridge_6_path_animation = 2130771987;
-			
-			// aapt resource value: 0x7F010014
-			public const int fingerprint_draw_off_ridge_7_path_animation = 2130771988;
-			
-			// aapt resource value: 0x7F010015
-			public const int fingerprint_draw_on_animation_interpolator_0 = 2130771989;
-			
-			// aapt resource value: 0x7F010016
-			public const int fingerprint_draw_on_animation_interpolator_1 = 2130771990;
-			
-			// aapt resource value: 0x7F010017
-			public const int fingerprint_draw_on_ridge_1_path_animation = 2130771991;
-			
-			// aapt resource value: 0x7F010018
-			public const int fingerprint_draw_on_ridge_2_path_animation = 2130771992;
-			
-			// aapt resource value: 0x7F010019
-			public const int fingerprint_draw_on_ridge_5_path_animation = 2130771993;
-			
-			// aapt resource value: 0x7F01001A
-			public const int fingerprint_draw_on_ridge_6_path_animation = 2130771994;
-			
-			// aapt resource value: 0x7F01001B
-			public const int fingerprint_draw_on_ridge_7_path_animation = 2130771995;
-			
-			// aapt resource value: 0x7F01001C
-			public const int fingerprint_error_state_to_fp_animation_interpolator_0 = 2130771996;
-			
-			// aapt resource value: 0x7F01001D
-			public const int fingerprint_error_state_to_fp_animation_interpolator_1 = 2130771997;
-			
-			// aapt resource value: 0x7F01001E
-			public const int fingerprint_error_state_to_fp_animation_interpolator_2 = 2130771998;
-			
-			// aapt resource value: 0x7F01001F
-			public const int fingerprint_error_state_to_fp_animation_interpolator_3 = 2130771999;
-			
-			// aapt resource value: 0x7F010020
-			public const int fingerprint_error_state_to_fp_animation_interpolator_4 = 2130772000;
-			
-			// aapt resource value: 0x7F010021
-			public const int fingerprint_error_state_to_fp_animation_interpolator_5 = 2130772001;
-			
-			// aapt resource value: 0x7F010022
-			public const int fingerprint_error_state_to_fp_group_1_animation = 2130772002;
-			
-			// aapt resource value: 0x7F010023
-			public const int fingerprint_error_state_to_fp_group_2_animation = 2130772003;
-			
-			// aapt resource value: 0x7F010024
-			public const int fingerprint_error_state_to_fp_path_1_animation = 2130772004;
-			
-			// aapt resource value: 0x7F010025
-			public const int fingerprint_error_state_to_fp_path_2_animation = 2130772005;
-			
-			// aapt resource value: 0x7F010026
-			public const int fingerprint_error_state_to_fp_path_3_animation = 2130772006;
-			
-			// aapt resource value: 0x7F010027
-			public const int fingerprint_error_state_to_fp_ridge_1_path_animation = 2130772007;
-			
-			// aapt resource value: 0x7F010028
-			public const int fingerprint_error_state_to_fp_ridge_2_path_animation = 2130772008;
-			
-			// aapt resource value: 0x7F010029
-			public const int fingerprint_error_state_to_fp_ridge_5_path_animation = 2130772009;
-			
-			// aapt resource value: 0x7F01002A
-			public const int fingerprint_error_state_to_fp_ridge_6_path_animation = 2130772010;
-			
-			// aapt resource value: 0x7F01002B
-			public const int fingerprint_error_state_to_fp_ridge_7_path_animation = 2130772011;
-			
-			// aapt resource value: 0x7F01002C
-			public const int fingerprint_error_state_to_fp_white_fingerprint_ridges_animation = 2130772012;
-			
-			// aapt resource value: 0x7F01002D
-			public const int fingerprint_fp_to_error_state_animation_interpolator_0 = 2130772013;
-			
-			// aapt resource value: 0x7F01002E
-			public const int fingerprint_fp_to_error_state_animation_interpolator_1 = 2130772014;
-			
-			// aapt resource value: 0x7F01002F
-			public const int fingerprint_fp_to_error_state_animation_interpolator_2 = 2130772015;
-			
-			// aapt resource value: 0x7F010030
-			public const int fingerprint_fp_to_error_state_animation_interpolator_3 = 2130772016;
-			
-			// aapt resource value: 0x7F010031
-			public const int fingerprint_fp_to_error_state_animation_interpolator_4 = 2130772017;
-			
-			// aapt resource value: 0x7F010032
-			public const int fingerprint_fp_to_error_state_animation_interpolator_5 = 2130772018;
-			
-			// aapt resource value: 0x7F010033
-			public const int fingerprint_fp_to_error_state_fingerprint_ridges_animation = 2130772019;
-			
-			// aapt resource value: 0x7F010034
-			public const int fingerprint_fp_to_error_state_group_1_animation = 2130772020;
-			
-			// aapt resource value: 0x7F010035
-			public const int fingerprint_fp_to_error_state_group_2_animation = 2130772021;
-			
-			// aapt resource value: 0x7F010036
-			public const int fingerprint_fp_to_error_state_path_1_animation = 2130772022;
-			
-			// aapt resource value: 0x7F010037
-			public const int fingerprint_fp_to_error_state_path_2_animation = 2130772023;
-			
-			// aapt resource value: 0x7F010038
-			public const int fingerprint_fp_to_error_state_path_3_animation = 2130772024;
-			
-			// aapt resource value: 0x7F010039
-			public const int fingerprint_fp_to_error_state_ridge_1_path_0_animation = 2130772025;
-			
-			// aapt resource value: 0x7F01003A
-			public const int fingerprint_fp_to_error_state_ridge_1_path_animation = 2130772026;
-			
-			// aapt resource value: 0x7F01003B
-			public const int fingerprint_fp_to_error_state_ridge_2_path_0_animation = 2130772027;
-			
-			// aapt resource value: 0x7F01003C
-			public const int fingerprint_fp_to_error_state_ridge_2_path_animation = 2130772028;
-			
-			// aapt resource value: 0x7F01003D
-			public const int fingerprint_fp_to_error_state_ridge_5_path_0_animation = 2130772029;
-			
-			// aapt resource value: 0x7F01003E
-			public const int fingerprint_fp_to_error_state_ridge_5_path_animation = 2130772030;
-			
-			// aapt resource value: 0x7F01003F
-			public const int fingerprint_fp_to_error_state_ridge_6_path_0_animation = 2130772031;
-			
-			// aapt resource value: 0x7F010040
-			public const int fingerprint_fp_to_error_state_ridge_6_path_animation = 2130772032;
-			
-			// aapt resource value: 0x7F010041
-			public const int fingerprint_fp_to_error_state_ridge_7_path_0_animation = 2130772033;
-			
-			// aapt resource value: 0x7F010042
-			public const int fingerprint_fp_to_error_state_ridge_7_path_animation = 2130772034;
-			
-			// aapt resource value: 0x7F010043
-			public const int fingerprint_fp_to_error_state_white_fingerprint_ridges_animation = 2130772035;
-			
-			// aapt resource value: 0x7F010044
-			public const int move_in = 2130772036;
-			
-			// aapt resource value: 0x7F010045
-			public const int move_out = 2130772037;
-			
-			// aapt resource value: 0x7F010046
-			public const int pickerview_dialog_scale_in = 2130772038;
-			
-			// aapt resource value: 0x7F010047
-			public const int pickerview_dialog_scale_out = 2130772039;
-			
-			// aapt resource value: 0x7F010048
-			public const int pickerview_slide_in_bottom = 2130772040;
-			
-			// aapt resource value: 0x7F010049
-			public const int pickerview_slide_out_bottom = 2130772041;
-			
-			// aapt resource value: 0x7F01004A
-			public const int tooltip_enter = 2130772042;
-			
-			// aapt resource value: 0x7F01004B
-			public const int tooltip_exit = 2130772043;
-			
+
+			// aapt resource value: 0x7f05000a
+			public const int design_bottom_sheet_slide_in = 2131034122;
+
+			// aapt resource value: 0x7f05000b
+			public const int design_bottom_sheet_slide_out = 2131034123;
+
+			// aapt resource value: 0x7f05000c
+			public const int design_snackbar_in = 2131034124;
+
+			// aapt resource value: 0x7f05000d
+			public const int design_snackbar_out = 2131034125;
+
+			// aapt resource value: 0x7f05000e
+			public const int fingerprint_draw_off_animation_interpolator_0 = 2131034126;
+
+			// aapt resource value: 0x7f05000f
+			public const int fingerprint_draw_off_animation_interpolator_1 = 2131034127;
+
+			// aapt resource value: 0x7f050010
+			public const int fingerprint_draw_off_ridge_1_path_animation = 2131034128;
+
+			// aapt resource value: 0x7f050011
+			public const int fingerprint_draw_off_ridge_2_path_animation = 2131034129;
+
+			// aapt resource value: 0x7f050012
+			public const int fingerprint_draw_off_ridge_5_path_animation = 2131034130;
+
+			// aapt resource value: 0x7f050013
+			public const int fingerprint_draw_off_ridge_6_path_animation = 2131034131;
+
+			// aapt resource value: 0x7f050014
+			public const int fingerprint_draw_off_ridge_7_path_animation = 2131034132;
+
+			// aapt resource value: 0x7f050015
+			public const int fingerprint_draw_on_animation_interpolator_0 = 2131034133;
+
+			// aapt resource value: 0x7f050016
+			public const int fingerprint_draw_on_animation_interpolator_1 = 2131034134;
+
+			// aapt resource value: 0x7f050017
+			public const int fingerprint_draw_on_ridge_1_path_animation = 2131034135;
+
+			// aapt resource value: 0x7f050018
+			public const int fingerprint_draw_on_ridge_2_path_animation = 2131034136;
+
+			// aapt resource value: 0x7f050019
+			public const int fingerprint_draw_on_ridge_5_path_animation = 2131034137;
+
+			// aapt resource value: 0x7f05001a
+			public const int fingerprint_draw_on_ridge_6_path_animation = 2131034138;
+
+			// aapt resource value: 0x7f05001b
+			public const int fingerprint_draw_on_ridge_7_path_animation = 2131034139;
+
+			// aapt resource value: 0x7f05001c
+			public const int fingerprint_error_state_to_fp_animation_interpolator_0 = 2131034140;
+
+			// aapt resource value: 0x7f05001d
+			public const int fingerprint_error_state_to_fp_animation_interpolator_1 = 2131034141;
+
+			// aapt resource value: 0x7f05001e
+			public const int fingerprint_error_state_to_fp_animation_interpolator_2 = 2131034142;
+
+			// aapt resource value: 0x7f05001f
+			public const int fingerprint_error_state_to_fp_animation_interpolator_3 = 2131034143;
+
+			// aapt resource value: 0x7f050020
+			public const int fingerprint_error_state_to_fp_animation_interpolator_4 = 2131034144;
+
+			// aapt resource value: 0x7f050021
+			public const int fingerprint_error_state_to_fp_animation_interpolator_5 = 2131034145;
+
+			// aapt resource value: 0x7f050022
+			public const int fingerprint_error_state_to_fp_group_1_animation = 2131034146;
+
+			// aapt resource value: 0x7f050023
+			public const int fingerprint_error_state_to_fp_group_2_animation = 2131034147;
+
+			// aapt resource value: 0x7f050024
+			public const int fingerprint_error_state_to_fp_path_1_animation = 2131034148;
+
+			// aapt resource value: 0x7f050025
+			public const int fingerprint_error_state_to_fp_path_2_animation = 2131034149;
+
+			// aapt resource value: 0x7f050026
+			public const int fingerprint_error_state_to_fp_path_3_animation = 2131034150;
+
+			// aapt resource value: 0x7f050027
+			public const int fingerprint_error_state_to_fp_ridge_1_path_animation = 2131034151;
+
+			// aapt resource value: 0x7f050028
+			public const int fingerprint_error_state_to_fp_ridge_2_path_animation = 2131034152;
+
+			// aapt resource value: 0x7f050029
+			public const int fingerprint_error_state_to_fp_ridge_5_path_animation = 2131034153;
+
+			// aapt resource value: 0x7f05002a
+			public const int fingerprint_error_state_to_fp_ridge_6_path_animation = 2131034154;
+
+			// aapt resource value: 0x7f05002b
+			public const int fingerprint_error_state_to_fp_ridge_7_path_animation = 2131034155;
+
+			// aapt resource value: 0x7f05002c
+			public const int fingerprint_error_state_to_fp_white_fingerprint_ridges_animation = 2131034156;
+
+			// aapt resource value: 0x7f05002d
+			public const int fingerprint_fp_to_error_state_animation_interpolator_0 = 2131034157;
+
+			// aapt resource value: 0x7f05002e
+			public const int fingerprint_fp_to_error_state_animation_interpolator_1 = 2131034158;
+
+			// aapt resource value: 0x7f05002f
+			public const int fingerprint_fp_to_error_state_animation_interpolator_2 = 2131034159;
+
+			// aapt resource value: 0x7f050030
+			public const int fingerprint_fp_to_error_state_animation_interpolator_3 = 2131034160;
+
+			// aapt resource value: 0x7f050031
+			public const int fingerprint_fp_to_error_state_animation_interpolator_4 = 2131034161;
+
+			// aapt resource value: 0x7f050032
+			public const int fingerprint_fp_to_error_state_animation_interpolator_5 = 2131034162;
+
+			// aapt resource value: 0x7f050033
+			public const int fingerprint_fp_to_error_state_fingerprint_ridges_animation = 2131034163;
+
+			// aapt resource value: 0x7f050034
+			public const int fingerprint_fp_to_error_state_group_1_animation = 2131034164;
+
+			// aapt resource value: 0x7f050035
+			public const int fingerprint_fp_to_error_state_group_2_animation = 2131034165;
+
+			// aapt resource value: 0x7f050036
+			public const int fingerprint_fp_to_error_state_path_1_animation = 2131034166;
+
+			// aapt resource value: 0x7f050037
+			public const int fingerprint_fp_to_error_state_path_2_animation = 2131034167;
+
+			// aapt resource value: 0x7f050038
+			public const int fingerprint_fp_to_error_state_path_3_animation = 2131034168;
+
+			// aapt resource value: 0x7f050039
+			public const int fingerprint_fp_to_error_state_ridge_1_path_0_animation = 2131034169;
+
+			// aapt resource value: 0x7f05003a
+			public const int fingerprint_fp_to_error_state_ridge_1_path_animation = 2131034170;
+
+			// aapt resource value: 0x7f05003b
+			public const int fingerprint_fp_to_error_state_ridge_2_path_0_animation = 2131034171;
+
+			// aapt resource value: 0x7f05003c
+			public const int fingerprint_fp_to_error_state_ridge_2_path_animation = 2131034172;
+
+			// aapt resource value: 0x7f05003d
+			public const int fingerprint_fp_to_error_state_ridge_5_path_0_animation = 2131034173;
+
+			// aapt resource value: 0x7f05003e
+			public const int fingerprint_fp_to_error_state_ridge_5_path_animation = 2131034174;
+
+			// aapt resource value: 0x7f05003f
+			public const int fingerprint_fp_to_error_state_ridge_6_path_0_animation = 2131034175;
+
+			// aapt resource value: 0x7f050040
+			public const int fingerprint_fp_to_error_state_ridge_6_path_animation = 2131034176;
+
+			// aapt resource value: 0x7f050041
+			public const int fingerprint_fp_to_error_state_ridge_7_path_0_animation = 2131034177;
+
+			// aapt resource value: 0x7f050042
+			public const int fingerprint_fp_to_error_state_ridge_7_path_animation = 2131034178;
+
+			// aapt resource value: 0x7f050043
+			public const int fingerprint_fp_to_error_state_white_fingerprint_ridges_animation = 2131034179;
+
+			// aapt resource value: 0x7f050044
+			public const int move_in = 2131034180;
+
+			// aapt resource value: 0x7f050045
+			public const int move_out = 2131034181;
+
+			// aapt resource value: 0x7f050046
+			public const int pickerview_dialog_scale_in = 2131034182;
+
+			// aapt resource value: 0x7f050047
+			public const int pickerview_dialog_scale_out = 2131034183;
+
+			// aapt resource value: 0x7f050048
+			public const int pickerview_slide_in_bottom = 2131034184;
+
+			// aapt resource value: 0x7f050049
+			public const int pickerview_slide_out_bottom = 2131034185;
+
+			// aapt resource value: 0x7f05004a
+			public const int tooltip_enter = 2131034186;
+
+			// aapt resource value: 0x7f05004b
+			public const int tooltip_exit = 2131034187;
+
 			static Animation()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Animation()
 			{
 			}
 		}
-		
+
 		public partial class Animator
 		{
-			
-			// aapt resource value: 0x7F020000
-			public const int design_appbar_state_list_animator = 2130837504;
-			
+
+			// aapt resource value: 0x7f060000
+			public const int design_appbar_state_list_animator = 2131099648;
+
 			static Animator()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Animator()
 			{
 			}
 		}
-		
+
 		public partial class Array
 		{
-			
-			// aapt resource value: 0x7F030000
-			public const int arc_colors_default = 2130903040;
-			
+
+			// aapt resource value: 0x7f0f0000
+			public const int arc_colors_default = 2131689472;
+
 			static Array()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Array()
 			{
 			}
 		}
-		
+
 		public partial class Attribute
 		{
-			
+
 			// aapt resource value: 0x7F040000
 			public const int actionBarDivider = 2130968576;
-			
+
 			// aapt resource value: 0x7F040001
 			public const int actionBarItemBackground = 2130968577;
-			
+
 			// aapt resource value: 0x7F040002
 			public const int actionBarPopupTheme = 2130968578;
-			
+
 			// aapt resource value: 0x7F040003
 			public const int actionBarSize = 2130968579;
-			
+
 			// aapt resource value: 0x7F040004
 			public const int actionBarSplitStyle = 2130968580;
-			
+
 			// aapt resource value: 0x7F040005
 			public const int actionBarStyle = 2130968581;
-			
+
 			// aapt resource value: 0x7F040006
 			public const int actionBarTabBarStyle = 2130968582;
-			
+
 			// aapt resource value: 0x7F040007
 			public const int actionBarTabStyle = 2130968583;
-			
+
 			// aapt resource value: 0x7F040008
 			public const int actionBarTabTextStyle = 2130968584;
-			
+
 			// aapt resource value: 0x7F040009
 			public const int actionBarTheme = 2130968585;
-			
+
 			// aapt resource value: 0x7F04000A
 			public const int actionBarWidgetTheme = 2130968586;
-			
+
 			// aapt resource value: 0x7F04000B
 			public const int actionButtonStyle = 2130968587;
-			
+
 			// aapt resource value: 0x7F04000C
 			public const int actionDropDownStyle = 2130968588;
-			
+
 			// aapt resource value: 0x7F04000D
 			public const int actionLayout = 2130968589;
-			
+
 			// aapt resource value: 0x7F04000E
 			public const int actionMenuTextAppearance = 2130968590;
-			
+
 			// aapt resource value: 0x7F04000F
 			public const int actionMenuTextColor = 2130968591;
-			
+
 			// aapt resource value: 0x7F040010
 			public const int actionModeBackground = 2130968592;
-			
+
 			// aapt resource value: 0x7F040011
 			public const int actionModeCloseButtonStyle = 2130968593;
-			
+
 			// aapt resource value: 0x7F040012
 			public const int actionModeCloseDrawable = 2130968594;
-			
+
 			// aapt resource value: 0x7F040013
 			public const int actionModeCopyDrawable = 2130968595;
-			
+
 			// aapt resource value: 0x7F040014
 			public const int actionModeCutDrawable = 2130968596;
-			
+
 			// aapt resource value: 0x7F040015
 			public const int actionModeFindDrawable = 2130968597;
-			
+
 			// aapt resource value: 0x7F040016
 			public const int actionModePasteDrawable = 2130968598;
-			
+
 			// aapt resource value: 0x7F040017
 			public const int actionModePopupWindowStyle = 2130968599;
-			
+
 			// aapt resource value: 0x7F040018
 			public const int actionModeSelectAllDrawable = 2130968600;
-			
+
 			// aapt resource value: 0x7F040019
 			public const int actionModeShareDrawable = 2130968601;
-			
+
 			// aapt resource value: 0x7F04001A
 			public const int actionModeSplitBackground = 2130968602;
-			
+
 			// aapt resource value: 0x7F04001B
 			public const int actionModeStyle = 2130968603;
-			
+
 			// aapt resource value: 0x7F04001C
 			public const int actionModeWebSearchDrawable = 2130968604;
-			
+
 			// aapt resource value: 0x7F04001D
 			public const int actionOverflowButtonStyle = 2130968605;
-			
+
 			// aapt resource value: 0x7F04001E
 			public const int actionOverflowMenuStyle = 2130968606;
-			
+
 			// aapt resource value: 0x7F04001F
 			public const int actionProviderClass = 2130968607;
-			
+
 			// aapt resource value: 0x7F040020
 			public const int actionViewClass = 2130968608;
-			
+
 			// aapt resource value: 0x7F040021
 			public const int activityChooserViewStyle = 2130968609;
-			
+
 			// aapt resource value: 0x7F040022
 			public const int alertDialogButtonGroupStyle = 2130968610;
-			
+
 			// aapt resource value: 0x7F040023
 			public const int alertDialogCenterButtons = 2130968611;
-			
+
 			// aapt resource value: 0x7F040024
 			public const int alertDialogStyle = 2130968612;
-			
+
 			// aapt resource value: 0x7F040025
 			public const int alertDialogTheme = 2130968613;
-			
+
 			// aapt resource value: 0x7F040026
 			public const int allowStacking = 2130968614;
-			
+
 			// aapt resource value: 0x7F040027
 			public const int alpha = 2130968615;
-			
+
 			// aapt resource value: 0x7F040028
 			public const int alphabeticModifiers = 2130968616;
-			
+
 			// aapt resource value: 0x7F040029
 			public const int arc_border_color = 2130968617;
-			
+
 			// aapt resource value: 0x7F04002A
 			public const int arc_border_width = 2130968618;
-			
+
 			// aapt resource value: 0x7F04002B
 			public const int arc_colors = 2130968619;
-			
+
 			// aapt resource value: 0x7F04002C
 			public const int arc_max = 2130968620;
-			
+
 			// aapt resource value: 0x7F04002D
 			public const int arc_min = 2130968621;
-			
+
 			// aapt resource value: 0x7F04002E
 			public const int arc_open_angle = 2130968622;
-			
+
 			// aapt resource value: 0x7F04002F
 			public const int arc_progress = 2130968623;
-			
+
 			// aapt resource value: 0x7F040030
 			public const int arc_progress_bar_color = 2130968624;
-			
+
 			// aapt resource value: 0x7F040031
 			public const int arc_progress_bar_text_unit = 2130968625;
-			
+
 			// aapt resource value: 0x7F040032
 			public const int arc_rotate_angle = 2130968626;
-			
+
 			// aapt resource value: 0x7F040033
 			public const int arc_shadow_radius = 2130968627;
-			
+
 			// aapt resource value: 0x7F040034
 			public const int arc_thumb_color = 2130968628;
-			
+
 			// aapt resource value: 0x7F040035
 			public const int arc_thumb_radius = 2130968629;
-			
+
 			// aapt resource value: 0x7F040036
 			public const int arc_thumb_shadow_color = 2130968630;
-			
+
 			// aapt resource value: 0x7F040037
 			public const int arc_thumb_shadow_radius = 2130968631;
-			
+
 			// aapt resource value: 0x7F040038
 			public const int arc_thumb_width = 2130968632;
-			
+
 			// aapt resource value: 0x7F040039
 			public const int arc_width = 2130968633;
-			
+
 			// aapt resource value: 0x7F04003A
 			public const int arrowHeadLength = 2130968634;
-			
+
 			// aapt resource value: 0x7F04003B
 			public const int arrowShaftLength = 2130968635;
-			
+
 			// aapt resource value: 0x7F04003C
 			public const int autoCompleteTextViewStyle = 2130968636;
-			
+
 			// aapt resource value: 0x7F04003D
 			public const int autoSizeMaxTextSize = 2130968637;
-			
+
 			// aapt resource value: 0x7F04003E
 			public const int autoSizeMinTextSize = 2130968638;
-			
+
 			// aapt resource value: 0x7F04003F
 			public const int autoSizePresetSizes = 2130968639;
-			
+
 			// aapt resource value: 0x7F040040
 			public const int autoSizeStepGranularity = 2130968640;
-			
+
 			// aapt resource value: 0x7F040041
 			public const int autoSizeTextType = 2130968641;
-			
+
 			// aapt resource value: 0x7F040042
 			public const int background = 2130968642;
-			
+
 			// aapt resource value: 0x7F040043
 			public const int backgroundSplit = 2130968643;
-			
+
 			// aapt resource value: 0x7F040044
 			public const int backgroundStacked = 2130968644;
-			
+
 			// aapt resource value: 0x7F040045
 			public const int backgroundTint = 2130968645;
-			
+
 			// aapt resource value: 0x7F040046
 			public const int backgroundTintMode = 2130968646;
-			
+
 			// aapt resource value: 0x7F040047
 			public const int barLength = 2130968647;
-			
+
 			// aapt resource value: 0x7F040048
 			public const int behavior_autoHide = 2130968648;
-			
+
 			// aapt resource value: 0x7F040049
 			public const int behavior_hideable = 2130968649;
-			
+
 			// aapt resource value: 0x7F04004A
 			public const int behavior_overlapTop = 2130968650;
-			
+
 			// aapt resource value: 0x7F04004B
 			public const int behavior_peekHeight = 2130968651;
-			
+
 			// aapt resource value: 0x7F04004C
 			public const int behavior_skipCollapsed = 2130968652;
-			
+
 			// aapt resource value: 0x7F04004D
 			public const int biometricPromptDialogTheme = 2130968653;
-			
+
 			// aapt resource value: 0x7F04004F
 			public const int borderlessButtonStyle = 2130968655;
-			
+
 			// aapt resource value: 0x7F04004E
 			public const int borderWidth = 2130968654;
-			
+
 			// aapt resource value: 0x7F040050
 			public const int bottomSheetDialogTheme = 2130968656;
-			
+
 			// aapt resource value: 0x7F040051
 			public const int bottomSheetStyle = 2130968657;
-			
+
 			// aapt resource value: 0x7F040052
 			public const int buttonBarButtonStyle = 2130968658;
-			
+
 			// aapt resource value: 0x7F040053
 			public const int buttonBarNegativeButtonStyle = 2130968659;
-			
+
 			// aapt resource value: 0x7F040054
 			public const int buttonBarNeutralButtonStyle = 2130968660;
-			
+
 			// aapt resource value: 0x7F040055
 			public const int buttonBarPositiveButtonStyle = 2130968661;
-			
+
 			// aapt resource value: 0x7F040056
 			public const int buttonBarStyle = 2130968662;
-			
+
 			// aapt resource value: 0x7F040057
 			public const int buttonGravity = 2130968663;
-			
+
 			// aapt resource value: 0x7F040058
 			public const int buttonPanelSideLayout = 2130968664;
-			
+
 			// aapt resource value: 0x7F040059
 			public const int buttonStyle = 2130968665;
-			
-			// aapt resource value: 0x7F04005A
-			public const int buttonStyleSmall = 2130968666;
-			
-			// aapt resource value: 0x7F04005B
-			public const int buttonTint = 2130968667;
-			
-			// aapt resource value: 0x7F04005C
-			public const int buttonTintMode = 2130968668;
-			
-			// aapt resource value: 0x7F04005D
-			public const int checkboxStyle = 2130968669;
-			
-			// aapt resource value: 0x7F04005E
-			public const int checkedTextViewStyle = 2130968670;
-			
-			// aapt resource value: 0x7F04005F
-			public const int closeIcon = 2130968671;
-			
-			// aapt resource value: 0x7F040060
-			public const int closeItemLayout = 2130968672;
-			
-			// aapt resource value: 0x7F040061
-			public const int collapseContentDescription = 2130968673;
-			
-			// aapt resource value: 0x7F040063
-			public const int collapsedTitleGravity = 2130968675;
-			
-			// aapt resource value: 0x7F040064
-			public const int collapsedTitleTextAppearance = 2130968676;
-			
-			// aapt resource value: 0x7F040062
-			public const int collapseIcon = 2130968674;
-			
-			// aapt resource value: 0x7F040065
-			public const int color = 2130968677;
-			
-			// aapt resource value: 0x7F040066
-			public const int colorAccent = 2130968678;
-			
-			// aapt resource value: 0x7F040067
-			public const int colorBackgroundFloating = 2130968679;
-			
-			// aapt resource value: 0x7F040068
-			public const int colorButtonNormal = 2130968680;
-			
-			// aapt resource value: 0x7F040069
-			public const int colorControlActivated = 2130968681;
-			
-			// aapt resource value: 0x7F04006A
-			public const int colorControlHighlight = 2130968682;
-			
+
+			// aapt resource value: 0x7f0101a3
+			public const int arc_border_color = 2130772387;
+
+			// aapt resource value: 0x7f0101a2
+			public const int arc_border_width = 2130772386;
+
+			// aapt resource value: 0x7f0101a1
+			public const int arc_colors = 2130772385;
+
+			// aapt resource value: 0x7f0101a4
+			public const int arc_max = 2130772388;
+
+			// aapt resource value: 0x7f0101a5
+			public const int arc_min = 2130772389;
+
+			// aapt resource value: 0x7f01019f
+			public const int arc_open_angle = 2130772383;
+
+			// aapt resource value: 0x7f0101a6
+			public const int arc_progress = 2130772390;
+
+			// aapt resource value: 0x7f0101ae
+			public const int arc_progress_bar_color = 2130772398;
+
+			// aapt resource value: 0x7f0101af
+			public const int arc_progress_bar_text_unit = 2130772399;
+
+			// aapt resource value: 0x7f0101a0
+			public const int arc_rotate_angle = 2130772384;
+
+			// aapt resource value: 0x7f0101ad
+			public const int arc_shadow_radius = 2130772397;
+
+			// aapt resource value: 0x7f0101a8
+			public const int arc_thumb_color = 2130772392;
+
+			// aapt resource value: 0x7f0101a9
+			public const int arc_thumb_radius = 2130772393;
+
+			// aapt resource value: 0x7f0101ab
+			public const int arc_thumb_shadow_color = 2130772395;
+
+			// aapt resource value: 0x7f0101aa
+			public const int arc_thumb_shadow_radius = 2130772394;
+
+			// aapt resource value: 0x7f0101a7
+			public const int arc_thumb_width = 2130772391;
+
+			// aapt resource value: 0x7f01019e
+			public const int arc_width = 2130772382;
+
 			// aapt resource value: 0x7F04006B
 			public const int colorControlNormal = 2130968683;
-			
+
 			// aapt resource value: 0x7F04006C
 			public const int colorError = 2130968684;
-			
+
 			// aapt resource value: 0x7F04006D
 			public const int colorPrimary = 2130968685;
-			
+
 			// aapt resource value: 0x7F04006E
 			public const int colorPrimaryDark = 2130968686;
-			
+
 			// aapt resource value: 0x7F04006F
 			public const int colorSwitchThumbNormal = 2130968687;
-			
+
 			// aapt resource value: 0x7F040070
 			public const int commitIcon = 2130968688;
-			
+
 			// aapt resource value: 0x7F040071
 			public const int contentDescription = 2130968689;
-			
+
 			// aapt resource value: 0x7F040072
 			public const int contentInsetEnd = 2130968690;
-			
+
 			// aapt resource value: 0x7F040073
 			public const int contentInsetEndWithActions = 2130968691;
-			
+
 			// aapt resource value: 0x7F040074
 			public const int contentInsetLeft = 2130968692;
-			
+
 			// aapt resource value: 0x7F040075
 			public const int contentInsetRight = 2130968693;
-			
+
 			// aapt resource value: 0x7F040076
 			public const int contentInsetStart = 2130968694;
-			
+
 			// aapt resource value: 0x7F040077
 			public const int contentInsetStartWithNavigation = 2130968695;
-			
+
 			// aapt resource value: 0x7F040078
 			public const int contentScrim = 2130968696;
-			
-			// aapt resource value: 0x7F040079
-			public const int controlBackground = 2130968697;
-			
+
+			// aapt resource value: 0x7f010128
+			public const int behavior_autoHide = 2130772264;
+
+			// aapt resource value: 0x7f010105
+			public const int behavior_hideable = 2130772229;
+
+			// aapt resource value: 0x7f010131
+			public const int behavior_overlapTop = 2130772273;
+
+			// aapt resource value: 0x7f010104
+			public const int behavior_peekHeight = 2130772228;
+
+			// aapt resource value: 0x7f010106
+			public const int behavior_skipCollapsed = 2130772230;
+
+			// aapt resource value: 0x7f01015a
+			public const int biometricPromptDialogTheme = 2130772314;
+
+			// aapt resource value: 0x7f010126
+			public const int borderWidth = 2130772262;
+
 			// aapt resource value: 0x7F04007A
 			public const int counterEnabled = 2130968698;
-			
-			// aapt resource value: 0x7F04007B
-			public const int counterMaxLength = 2130968699;
-			
+
+			// aapt resource value: 0x7f010120
+			public const int bottomSheetDialogTheme = 2130772256;
+
+			// aapt resource value: 0x7f010121
+			public const int bottomSheetStyle = 2130772257;
+
+			// aapt resource value: 0x7f01006f
+			public const int buttonBarButtonStyle = 2130772079;
+
 			// aapt resource value: 0x7F04007C
 			public const int counterOverflowTextAppearance = 2130968700;
-			
+
 			// aapt resource value: 0x7F04007D
 			public const int counterTextAppearance = 2130968701;
-			
+
 			// aapt resource value: 0x7F04007E
 			public const int curtain_bar_bg_color = 2130968702;
-			
+
 			// aapt resource value: 0x7F04007F
 			public const int curtain_bar_border_color = 2130968703;
-			
+
 			// aapt resource value: 0x7F040080
 			public const int curtain_bar_color = 2130968704;
-			
+
 			// aapt resource value: 0x7F040081
 			public const int curtain_bar_height = 2130968705;
-			
+
 			// aapt resource value: 0x7F040082
 			public const int curtain_bar_width = 2130968706;
-			
+
 			// aapt resource value: 0x7F040083
 			public const int customNavigationLayout = 2130968707;
-			
+
 			// aapt resource value: 0x7F040084
 			public const int defaultQueryHint = 2130968708;
-			
+
 			// aapt resource value: 0x7F040085
 			public const int dialogPreferredPadding = 2130968709;
-			
+
 			// aapt resource value: 0x7F040086
 			public const int dialogTheme = 2130968710;
-			
+
 			// aapt resource value: 0x7F040087
 			public const int displayOptions = 2130968711;
-			
+
 			// aapt resource value: 0x7F040088
 			public const int divider = 2130968712;
-			
+
 			// aapt resource value: 0x7F040089
 			public const int dividerHorizontal = 2130968713;
-			
+
 			// aapt resource value: 0x7F04008A
 			public const int dividerPadding = 2130968714;
-			
+
 			// aapt resource value: 0x7F04008B
 			public const int dividerVertical = 2130968715;
-			
-			// aapt resource value: 0x7F04008C
-			public const int drawableSize = 2130968716;
-			
+
+			// aapt resource value: 0x7f010113
+			public const int collapsedTitleGravity = 2130772243;
+
+			// aapt resource value: 0x7f01010d
+			public const int collapsedTitleTextAppearance = 2130772237;
+
+			// aapt resource value: 0x7f0100b6
+			public const int color = 2130772150;
+
 			// aapt resource value: 0x7F04008D
 			public const int drawerArrowStyle = 2130968717;
-			
+
 			// aapt resource value: 0x7F04008F
 			public const int dropdownListPreferredItemHeight = 2130968719;
-			
+
 			// aapt resource value: 0x7F04008E
 			public const int dropDownListViewStyle = 2130968718;
-			
+
 			// aapt resource value: 0x7F040090
 			public const int editTextBackground = 2130968720;
-			
+
 			// aapt resource value: 0x7F040091
 			public const int editTextColor = 2130968721;
-			
+
 			// aapt resource value: 0x7F040092
 			public const int editTextStyle = 2130968722;
-			
+
 			// aapt resource value: 0x7F040093
 			public const int elevation = 2130968723;
-			
+
 			// aapt resource value: 0x7F040094
 			public const int errorEnabled = 2130968724;
-			
+
 			// aapt resource value: 0x7F040095
 			public const int errorTextAppearance = 2130968725;
-			
+
 			// aapt resource value: 0x7F040096
 			public const int expandActivityOverflowButtonDrawable = 2130968726;
-			
+
 			// aapt resource value: 0x7F040097
 			public const int expanded = 2130968727;
-			
+
 			// aapt resource value: 0x7F040098
 			public const int expandedTitleGravity = 2130968728;
-			
+
 			// aapt resource value: 0x7F040099
 			public const int expandedTitleMargin = 2130968729;
-			
+
 			// aapt resource value: 0x7F04009A
 			public const int expandedTitleMarginBottom = 2130968730;
-			
+
 			// aapt resource value: 0x7F04009B
 			public const int expandedTitleMarginEnd = 2130968731;
-			
+
 			// aapt resource value: 0x7F04009C
 			public const int expandedTitleMarginStart = 2130968732;
-			
+
 			// aapt resource value: 0x7F04009D
 			public const int expandedTitleMarginTop = 2130968733;
-			
+
 			// aapt resource value: 0x7F04009E
 			public const int expandedTitleTextAppearance = 2130968734;
-			
-			// aapt resource value: 0x7F04009F
-			public const int fabSize = 2130968735;
-			
-			// aapt resource value: 0x7F0400A0
-			public const int fastScrollEnabled = 2130968736;
-			
-			// aapt resource value: 0x7F0400A1
-			public const int fastScrollHorizontalThumbDrawable = 2130968737;
-			
-			// aapt resource value: 0x7F0400A2
-			public const int fastScrollHorizontalTrackDrawable = 2130968738;
-			
-			// aapt resource value: 0x7F0400A3
-			public const int fastScrollVerticalThumbDrawable = 2130968739;
-			
-			// aapt resource value: 0x7F0400A4
-			public const int fastScrollVerticalTrackDrawable = 2130968740;
-			
+
+			// aapt resource value: 0x7f01010e
+			public const int contentScrim = 2130772238;
+
+			// aapt resource value: 0x7f010097
+			public const int controlBackground = 2130772119;
+
+			// aapt resource value: 0x7f010147
+			public const int counterEnabled = 2130772295;
+
+			// aapt resource value: 0x7f010148
+			public const int counterMaxLength = 2130772296;
+
+			// aapt resource value: 0x7f01014a
+			public const int counterOverflowTextAppearance = 2130772298;
+
+			// aapt resource value: 0x7f010149
+			public const int counterTextAppearance = 2130772297;
+
+			// aapt resource value: 0x7f0101b2
+			public const int curtain_bar_bg_color = 2130772402;
+
+			// aapt resource value: 0x7f0101b3
+			public const int curtain_bar_border_color = 2130772403;
+
+			// aapt resource value: 0x7f0101b0
+			public const int curtain_bar_color = 2130772400;
+
+			// aapt resource value: 0x7f0101b5
+			public const int curtain_bar_height = 2130772405;
+
+			// aapt resource value: 0x7f0101b4
+			public const int curtain_bar_width = 2130772404;
+
 			// aapt resource value: 0x7F0400A5
 			public const int font = 2130968741;
-			
+
 			// aapt resource value: 0x7F0400A6
 			public const int fontFamily = 2130968742;
-			
+
 			// aapt resource value: 0x7F0400A7
 			public const int fontProviderAuthority = 2130968743;
-			
+
 			// aapt resource value: 0x7F0400A8
 			public const int fontProviderCerts = 2130968744;
-			
+
 			// aapt resource value: 0x7F0400A9
 			public const int fontProviderFetchStrategy = 2130968745;
-			
+
 			// aapt resource value: 0x7F0400AA
 			public const int fontProviderFetchTimeout = 2130968746;
-			
+
 			// aapt resource value: 0x7F0400AB
 			public const int fontProviderPackage = 2130968747;
-			
+
 			// aapt resource value: 0x7F0400AC
 			public const int fontProviderQuery = 2130968748;
-			
+
 			// aapt resource value: 0x7F0400AD
 			public const int fontStyle = 2130968749;
-			
+
 			// aapt resource value: 0x7F0400AE
 			public const int fontWeight = 2130968750;
-			
+
 			// aapt resource value: 0x7F0400AF
 			public const int foregroundInsidePadding = 2130968751;
-			
+
 			// aapt resource value: 0x7F0400B0
 			public const int gapBetweenBars = 2130968752;
-			
+
 			// aapt resource value: 0x7F0400B1
 			public const int goIcon = 2130968753;
-			
+
 			// aapt resource value: 0x7F0400B2
 			public const int hdl_arc_thumb_mode = 2130968754;
-			
+
 			// aapt resource value: 0x7F0400B3
 			public const int headerLayout = 2130968755;
-			
+
 			// aapt resource value: 0x7F0400B4
 			public const int height = 2130968756;
-			
+
 			// aapt resource value: 0x7F0400B5
 			public const int hideOnContentScroll = 2130968757;
-			
-			// aapt resource value: 0x7F0400B6
-			public const int hintAnimationEnabled = 2130968758;
-			
-			// aapt resource value: 0x7F0400B7
-			public const int hintEnabled = 2130968759;
-			
+
+			// aapt resource value: 0x7f010145
+			public const int errorEnabled = 2130772293;
+
+			// aapt resource value: 0x7f010146
+			public const int errorTextAppearance = 2130772294;
+
+			// aapt resource value: 0x7f010029
+			public const int expandActivityOverflowButtonDrawable = 2130772009;
+
+			// aapt resource value: 0x7f0100ff
+			public const int expanded = 2130772223;
+
+			// aapt resource value: 0x7f010114
+			public const int expandedTitleGravity = 2130772244;
+
+			// aapt resource value: 0x7f010107
+			public const int expandedTitleMargin = 2130772231;
+
+			// aapt resource value: 0x7f01010b
+			public const int expandedTitleMarginBottom = 2130772235;
+
+			// aapt resource value: 0x7f01010a
+			public const int expandedTitleMarginEnd = 2130772234;
+
+			// aapt resource value: 0x7f010108
+			public const int expandedTitleMarginStart = 2130772232;
+
+			// aapt resource value: 0x7f010109
+			public const int expandedTitleMarginTop = 2130772233;
+
+			// aapt resource value: 0x7f01010c
+			public const int expandedTitleTextAppearance = 2130772236;
+
+			// aapt resource value: 0x7f010124
+			public const int fabSize = 2130772260;
+
+			// aapt resource value: 0x7f010004
+			public const int fastScrollEnabled = 2130771972;
+
 			// aapt resource value: 0x7F0400B8
 			public const int hintTextAppearance = 2130968760;
-			
+
 			// aapt resource value: 0x7F0400B9
 			public const int homeAsUpIndicator = 2130968761;
-			
+
 			// aapt resource value: 0x7F0400BA
 			public const int homeLayout = 2130968762;
-			
+
 			// aapt resource value: 0x7F0400BB
 			public const int icon = 2130968763;
-			
-			// aapt resource value: 0x7F0400BE
-			public const int iconifiedByDefault = 2130968766;
-			
+
+			// aapt resource value: 0x7f010158
+			public const int font = 2130772312;
+
 			// aapt resource value: 0x7F0400BC
 			public const int iconTint = 2130968764;
-			
-			// aapt resource value: 0x7F0400BD
-			public const int iconTintMode = 2130968765;
-			
-			// aapt resource value: 0x7F0400BF
-			public const int imageButtonStyle = 2130968767;
-			
-			// aapt resource value: 0x7F0400C0
-			public const int indeterminateProgressStyle = 2130968768;
-			
-			// aapt resource value: 0x7F0400C1
-			public const int initialActivityCount = 2130968769;
-			
-			// aapt resource value: 0x7F0400C2
-			public const int insetForeground = 2130968770;
-			
-			// aapt resource value: 0x7F0400C3
-			public const int isLightTheme = 2130968771;
-			
-			// aapt resource value: 0x7F0400C4
-			public const int itemBackground = 2130968772;
-			
-			// aapt resource value: 0x7F0400C5
-			public const int itemIconTint = 2130968773;
-			
+
+			// aapt resource value: 0x7f010151
+			public const int fontProviderAuthority = 2130772305;
+
+			// aapt resource value: 0x7f010154
+			public const int fontProviderCerts = 2130772308;
+
+			// aapt resource value: 0x7f010155
+			public const int fontProviderFetchStrategy = 2130772309;
+
+			// aapt resource value: 0x7f010156
+			public const int fontProviderFetchTimeout = 2130772310;
+
+			// aapt resource value: 0x7f010152
+			public const int fontProviderPackage = 2130772306;
+
+			// aapt resource value: 0x7f010153
+			public const int fontProviderQuery = 2130772307;
+
+			// aapt resource value: 0x7f010157
+			public const int fontStyle = 2130772311;
+
+			// aapt resource value: 0x7f010159
+			public const int fontWeight = 2130772313;
+
+			// aapt resource value: 0x7f010129
+			public const int foregroundInsidePadding = 2130772265;
+
 			// aapt resource value: 0x7F0400C6
 			public const int itemPadding = 2130968774;
-			
+
 			// aapt resource value: 0x7F0400C7
 			public const int itemTextAppearance = 2130968775;
-			
-			// aapt resource value: 0x7F0400C8
-			public const int itemTextColor = 2130968776;
-			
+
+			// aapt resource value: 0x7f0101ac
+			public const int hdl_arc_thumb_mode = 2130772396;
+
+			// aapt resource value: 0x7f01012f
+			public const int headerLayout = 2130772271;
+
 			// aapt resource value: 0x7F0400C9
 			public const int keylines = 2130968777;
-			
+
 			// aapt resource value: 0x7F0400CA
 			public const int layout = 2130968778;
-			
-			// aapt resource value: 0x7F0400CB
-			public const int layoutManager = 2130968779;
-			
+
+			// aapt resource value: 0x7f01014b
+			public const int hintAnimationEnabled = 2130772299;
+
+			// aapt resource value: 0x7f010144
+			public const int hintEnabled = 2130772292;
+
+			// aapt resource value: 0x7f010143
+			public const int hintTextAppearance = 2130772291;
+
+			// aapt resource value: 0x7f01006c
+			public const int homeAsUpIndicator = 2130772076;
+
 			// aapt resource value: 0x7F0400CC
 			public const int layout_anchor = 2130968780;
-			
+
 			// aapt resource value: 0x7F0400CD
 			public const int layout_anchorGravity = 2130968781;
-			
+
 			// aapt resource value: 0x7F0400CE
 			public const int layout_behavior = 2130968782;
-			
+
 			// aapt resource value: 0x7F0400CF
 			public const int layout_collapseMode = 2130968783;
-			
+
 			// aapt resource value: 0x7F0400D0
 			public const int layout_collapseParallaxMultiplier = 2130968784;
-			
+
 			// aapt resource value: 0x7F0400D1
 			public const int layout_dodgeInsetEdges = 2130968785;
-			
+
 			// aapt resource value: 0x7F0400D2
 			public const int layout_insetEdge = 2130968786;
-			
+
 			// aapt resource value: 0x7F0400D3
 			public const int layout_keyline = 2130968787;
-			
-			// aapt resource value: 0x7F0400D4
-			public const int layout_scrollFlags = 2130968788;
-			
-			// aapt resource value: 0x7F0400D5
-			public const int layout_scrollInterpolator = 2130968789;
-			
-			// aapt resource value: 0x7F0400D6
-			public const int layout_srlBackgroundColor = 2130968790;
-			
+
+			// aapt resource value: 0x7f010130
+			public const int insetForeground = 2130772272;
+
+			// aapt resource value: 0x7f01000b
+			public const int isLightTheme = 2130771979;
+
+			// aapt resource value: 0x7f01012d
+			public const int itemBackground = 2130772269;
+
+			// aapt resource value: 0x7f01012b
+			public const int itemIconTint = 2130772267;
+
+			// aapt resource value: 0x7f01001d
+			public const int itemPadding = 2130771997;
+
+			// aapt resource value: 0x7f01012e
+			public const int itemTextAppearance = 2130772270;
+
+			// aapt resource value: 0x7f01012c
+			public const int itemTextColor = 2130772268;
+
+			// aapt resource value: 0x7f010118
+			public const int keylines = 2130772248;
+
+			// aapt resource value: 0x7f0100d1
+			public const int layout = 2130772177;
+
 			// aapt resource value: 0x7F0400D7
 			public const int layout_srlSpinnerStyle = 2130968791;
-			
-			// aapt resource value: 0x7F0400D8
-			public const int listChoiceBackgroundIndicator = 2130968792;
-			
-			// aapt resource value: 0x7F0400D9
-			public const int listDividerAlertDialog = 2130968793;
-			
+
+			// aapt resource value: 0x7f01011b
+			public const int layout_anchor = 2130772251;
+
+			// aapt resource value: 0x7f01011d
+			public const int layout_anchorGravity = 2130772253;
+
+			// aapt resource value: 0x7f01011a
+			public const int layout_behavior = 2130772250;
+
+			// aapt resource value: 0x7f010116
+			public const int layout_collapseMode = 2130772246;
+
+			// aapt resource value: 0x7f010117
+			public const int layout_collapseParallaxMultiplier = 2130772247;
+
+			// aapt resource value: 0x7f01011f
+			public const int layout_dodgeInsetEdges = 2130772255;
+
+			// aapt resource value: 0x7f01011e
+			public const int layout_insetEdge = 2130772254;
+
+			// aapt resource value: 0x7f01011c
+			public const int layout_keyline = 2130772252;
+
+			// aapt resource value: 0x7f010102
+			public const int layout_scrollFlags = 2130772226;
+
+			// aapt resource value: 0x7f010103
+			public const int layout_scrollInterpolator = 2130772227;
+
+			// aapt resource value: 0x7f010197
+			public const int layout_srlBackgroundColor = 2130772375;
+
+			// aapt resource value: 0x7f01015b
+			public const int layout_srlSpinnerStyle = 2130772315;
+
 			// aapt resource value: 0x7F0400DA
 			public const int listItemLayout = 2130968794;
-			
+
 			// aapt resource value: 0x7F0400DB
 			public const int listLayout = 2130968795;
-			
+
 			// aapt resource value: 0x7F0400DC
 			public const int listMenuViewStyle = 2130968796;
-			
+
 			// aapt resource value: 0x7F0400DD
 			public const int listPopupWindowStyle = 2130968797;
-			
+
 			// aapt resource value: 0x7F0400DE
 			public const int listPreferredItemHeight = 2130968798;
-			
+
 			// aapt resource value: 0x7F0400DF
 			public const int listPreferredItemHeightLarge = 2130968799;
-			
+
 			// aapt resource value: 0x7F0400E0
 			public const int listPreferredItemHeightSmall = 2130968800;
-			
+
 			// aapt resource value: 0x7F0400E1
 			public const int listPreferredItemPaddingLeft = 2130968801;
-			
+
 			// aapt resource value: 0x7F0400E2
 			public const int listPreferredItemPaddingRight = 2130968802;
-			
+
 			// aapt resource value: 0x7F0400E3
 			public const int logo = 2130968803;
-			
+
 			// aapt resource value: 0x7F0400E4
 			public const int logoDescription = 2130968804;
-			
+
 			// aapt resource value: 0x7F0400E5
 			public const int maxActionInlineWidth = 2130968805;
-			
+
 			// aapt resource value: 0x7F0400E6
 			public const int maxButtonHeight = 2130968806;
-			
-			// aapt resource value: 0x7F0400E7
-			public const int measureWithLargestChild = 2130968807;
-			
+
+			// aapt resource value: 0x7f010132
+			public const int maxActionInlineWidth = 2130772274;
+
+			// aapt resource value: 0x7f0100f1
+			public const int maxButtonHeight = 2130772209;
+
 			// aapt resource value: 0x7F0400E8
 			public const int menu = 2130968808;
-			
-			// aapt resource value: 0x7F0400E9
-			public const int multiChoiceItemLayout = 2130968809;
-			
+
+			// aapt resource value: 0x7f01012a
+			public const int menu = 2130772266;
+
+			// aapt resource value: 0x7f01002c
+			public const int multiChoiceItemLayout = 2130772012;
+
 			// aapt resource value: 0x7F0400EA
 			public const int navigationContentDescription = 2130968810;
-			
+
 			// aapt resource value: 0x7F0400EB
 			public const int navigationIcon = 2130968811;
-			
+
 			// aapt resource value: 0x7F0400EC
 			public const int navigationMode = 2130968812;
-			
+
 			// aapt resource value: 0x7F0400ED
 			public const int numericModifiers = 2130968813;
-			
+
 			// aapt resource value: 0x7F0400EE
 			public const int overlapAnchor = 2130968814;
-			
+
 			// aapt resource value: 0x7F0400EF
 			public const int paddingBottomNoButtons = 2130968815;
-			
+
 			// aapt resource value: 0x7F0400F0
 			public const int paddingEnd = 2130968816;
-			
+
 			// aapt resource value: 0x7F0400F1
 			public const int paddingStart = 2130968817;
-			
+
 			// aapt resource value: 0x7F0400F2
 			public const int paddingTopNoTitle = 2130968818;
-			
+
 			// aapt resource value: 0x7F0400F3
 			public const int panelBackground = 2130968819;
-			
+
 			// aapt resource value: 0x7F0400F4
 			public const int panelMenuListTheme = 2130968820;
-			
+
 			// aapt resource value: 0x7F0400F5
 			public const int panelMenuListWidth = 2130968821;
-			
-			// aapt resource value: 0x7F0400F6
-			public const int passwordToggleContentDescription = 2130968822;
-			
+
+			// aapt resource value: 0x7f01014e
+			public const int passwordToggleContentDescription = 2130772302;
+
+			// aapt resource value: 0x7f01014d
+			public const int passwordToggleDrawable = 2130772301;
+
+			// aapt resource value: 0x7f01014c
+			public const int passwordToggleEnabled = 2130772300;
+
+			// aapt resource value: 0x7f01014f
+			public const int passwordToggleTint = 2130772303;
+
+			// aapt resource value: 0x7f010150
+			public const int passwordToggleTintMode = 2130772304;
+
+			// aapt resource value: 0x7f010078
+			public const int popupMenuStyle = 2130772088;
+
 			// aapt resource value: 0x7F0400F7
 			public const int passwordToggleDrawable = 2130968823;
-			
+
 			// aapt resource value: 0x7F0400F8
 			public const int passwordToggleEnabled = 2130968824;
-			
+
 			// aapt resource value: 0x7F0400F9
 			public const int passwordToggleTint = 2130968825;
-			
-			// aapt resource value: 0x7F0400FA
-			public const int passwordToggleTintMode = 2130968826;
-			
+
+			// aapt resource value: 0x7f010125
+			public const int pressedTranslationZ = 2130772261;
+
+			// aapt resource value: 0x7f01001c
+			public const int progressBarPadding = 2130771996;
+
 			// aapt resource value: 0x7F0400FB
 			public const int popupMenuStyle = 2130968827;
-			
+
 			// aapt resource value: 0x7F0400FC
 			public const int popupTheme = 2130968828;
-			
+
 			// aapt resource value: 0x7F0400FD
 			public const int popupWindowStyle = 2130968829;
-			
+
 			// aapt resource value: 0x7F0400FE
 			public const int preserveIconSpacing = 2130968830;
-			
+
 			// aapt resource value: 0x7F0400FF
 			public const int pressedTranslationZ = 2130968831;
-			
+
 			// aapt resource value: 0x7F040100
 			public const int progressBarPadding = 2130968832;
-			
+
 			// aapt resource value: 0x7F040101
 			public const int progressBarStyle = 2130968833;
-			
+
 			// aapt resource value: 0x7F040102
 			public const int queryBackground = 2130968834;
-			
-			// aapt resource value: 0x7F040103
-			public const int queryHint = 2130968835;
-			
+
+			// aapt resource value: 0x7f010123
+			public const int rippleColor = 2130772259;
+
+			// aapt resource value: 0x7f010112
+			public const int scrimAnimationDuration = 2130772242;
+
+			// aapt resource value: 0x7f010111
+			public const int scrimVisibleHeightTrigger = 2130772241;
+
+			// aapt resource value: 0x7f0100d8
+			public const int searchHintIcon = 2130772184;
+
 			// aapt resource value: 0x7F040104
 			public const int radioButtonStyle = 2130968836;
-			
+
 			// aapt resource value: 0x7F040105
 			public const int ratingBarStyle = 2130968837;
-			
-			// aapt resource value: 0x7F040106
-			public const int ratingBarStyleIndicator = 2130968838;
-			
-			// aapt resource value: 0x7F040107
-			public const int ratingBarStyleSmall = 2130968839;
-			
+
+			// aapt resource value: 0x7f0101b1
+			public const int second_curtain_bar_color = 2130772401;
+
+			// aapt resource value: 0x7f0101b7
+			public const int second_wave_color = 2130772407;
+
 			// aapt resource value: 0x7F040108
 			public const int reverseLayout = 2130968840;
-			
+
 			// aapt resource value: 0x7F040109
 			public const int rippleColor = 2130968841;
-			
+
 			// aapt resource value: 0x7F04010A
 			public const int scrimAnimationDuration = 2130968842;
-			
+
 			// aapt resource value: 0x7F04010B
 			public const int scrimVisibleHeightTrigger = 2130968843;
-			
+
 			// aapt resource value: 0x7F04010C
 			public const int searchHintIcon = 2130968844;
-			
+
 			// aapt resource value: 0x7F04010D
 			public const int searchIcon = 2130968845;
-			
+
 			// aapt resource value: 0x7F04010E
 			public const int searchViewStyle = 2130968846;
-			
+
 			// aapt resource value: 0x7F04010F
 			public const int second_curtain_bar_color = 2130968847;
-			
+
 			// aapt resource value: 0x7F040110
 			public const int second_wave_color = 2130968848;
-			
+
 			// aapt resource value: 0x7F040111
 			public const int seekBarStyle = 2130968849;
-			
+
 			// aapt resource value: 0x7F040112
 			public const int selectableItemBackground = 2130968850;
-			
+
 			// aapt resource value: 0x7F040113
 			public const int selectableItemBackgroundBorderless = 2130968851;
-			
+
 			// aapt resource value: 0x7F040114
 			public const int showAsAction = 2130968852;
-			
+
 			// aapt resource value: 0x7F040115
 			public const int showDividers = 2130968853;
-			
-			// aapt resource value: 0x7F040116
-			public const int showText = 2130968854;
-			
-			// aapt resource value: 0x7F040117
-			public const int showTitle = 2130968855;
-			
-			// aapt resource value: 0x7F040118
-			public const int singleChoiceItemLayout = 2130968856;
-			
-			// aapt resource value: 0x7F040119
-			public const int spanCount = 2130968857;
-			
-			// aapt resource value: 0x7F04011A
-			public const int spinBars = 2130968858;
-			
-			// aapt resource value: 0x7F04011B
-			public const int spinnerDropDownItemStyle = 2130968859;
-			
-			// aapt resource value: 0x7F04011C
-			public const int spinnerStyle = 2130968860;
-			
-			// aapt resource value: 0x7F04011D
-			public const int splitTrack = 2130968861;
-			
-			// aapt resource value: 0x7F04011E
-			public const int srcCompat = 2130968862;
-			
-			// aapt resource value: 0x7F04011F
-			public const int srlAccentColor = 2130968863;
-			
-			// aapt resource value: 0x7F040120
-			public const int srlAnimatingColor = 2130968864;
-			
-			// aapt resource value: 0x7F040121
-			public const int srlClassicsSpinnerStyle = 2130968865;
-			
-			// aapt resource value: 0x7F040122
-			public const int srlDisableContentWhenLoading = 2130968866;
-			
-			// aapt resource value: 0x7F040123
-			public const int srlDisableContentWhenRefresh = 2130968867;
-			
-			// aapt resource value: 0x7F040124
-			public const int srlDragRate = 2130968868;
-			
-			// aapt resource value: 0x7F040125
-			public const int srlDrawableArrow = 2130968869;
-			
-			// aapt resource value: 0x7F040126
-			public const int srlDrawableArrowSize = 2130968870;
-			
-			// aapt resource value: 0x7F040127
-			public const int srlDrawableMarginRight = 2130968871;
-			
-			// aapt resource value: 0x7F040128
-			public const int srlDrawableProgress = 2130968872;
-			
-			// aapt resource value: 0x7F040129
-			public const int srlDrawableProgressSize = 2130968873;
-			
-			// aapt resource value: 0x7F04012A
-			public const int srlDrawableSize = 2130968874;
-			
-			// aapt resource value: 0x7F04012B
-			public const int srlEnableAutoLoadMore = 2130968875;
-			
-			// aapt resource value: 0x7F04012C
-			public const int srlEnableClipFooterWhenFixedBehind = 2130968876;
-			
-			// aapt resource value: 0x7F04012D
-			public const int srlEnableClipHeaderWhenFixedBehind = 2130968877;
-			
-			// aapt resource value: 0x7F04012E
-			public const int srlEnableFooterFollowWhenLoadFinished = 2130968878;
-			
-			// aapt resource value: 0x7F04012F
-			public const int srlEnableFooterFollowWhenNoMoreData = 2130968879;
-			
-			// aapt resource value: 0x7F040130
-			public const int srlEnableFooterTranslationContent = 2130968880;
-			
-			// aapt resource value: 0x7F040131
-			public const int srlEnableHeaderTranslationContent = 2130968881;
-			
-			// aapt resource value: 0x7F040132
-			public const int srlEnableHorizontalDrag = 2130968882;
-			
-			// aapt resource value: 0x7F040133
-			public const int srlEnableLastTime = 2130968883;
-			
-			// aapt resource value: 0x7F040134
-			public const int srlEnableLoadMore = 2130968884;
-			
-			// aapt resource value: 0x7F040135
-			public const int srlEnableLoadMoreWhenContentNotFull = 2130968885;
-			
-			// aapt resource value: 0x7F040136
-			public const int srlEnableNestedScrolling = 2130968886;
-			
-			// aapt resource value: 0x7F040137
-			public const int srlEnableOverScrollBounce = 2130968887;
-			
-			// aapt resource value: 0x7F040138
-			public const int srlEnableOverScrollDrag = 2130968888;
-			
-			// aapt resource value: 0x7F040139
-			public const int srlEnablePreviewInEditMode = 2130968889;
-			
-			// aapt resource value: 0x7F04013A
-			public const int srlEnablePullToCloseTwoLevel = 2130968890;
-			
-			// aapt resource value: 0x7F04013B
-			public const int srlEnablePureScrollMode = 2130968891;
-			
-			// aapt resource value: 0x7F04013C
-			public const int srlEnableRefresh = 2130968892;
-			
-			// aapt resource value: 0x7F04013D
-			public const int srlEnableScrollContentWhenLoaded = 2130968893;
-			
-			// aapt resource value: 0x7F04013E
-			public const int srlEnableScrollContentWhenRefreshed = 2130968894;
-			
-			// aapt resource value: 0x7F04013F
-			public const int srlEnableTwoLevel = 2130968895;
-			
-			// aapt resource value: 0x7F040140
-			public const int srlFinishDuration = 2130968896;
-			
-			// aapt resource value: 0x7F040141
-			public const int srlFixedFooterViewId = 2130968897;
-			
-			// aapt resource value: 0x7F040142
-			public const int srlFixedHeaderViewId = 2130968898;
-			
-			// aapt resource value: 0x7F040143
-			public const int srlFloorDuration = 2130968899;
-			
-			// aapt resource value: 0x7F040144
-			public const int srlFloorRage = 2130968900;
-			
-			// aapt resource value: 0x7F040145
-			public const int srlFooterHeight = 2130968901;
-			
-			// aapt resource value: 0x7F040146
-			public const int srlFooterInsetStart = 2130968902;
-			
-			// aapt resource value: 0x7F040147
-			public const int srlFooterMaxDragRate = 2130968903;
-			
-			// aapt resource value: 0x7F040148
-			public const int srlFooterTranslationViewId = 2130968904;
-			
-			// aapt resource value: 0x7F040149
-			public const int srlFooterTriggerRate = 2130968905;
-			
-			// aapt resource value: 0x7F04014A
-			public const int srlHeaderHeight = 2130968906;
-			
-			// aapt resource value: 0x7F04014B
-			public const int srlHeaderInsetStart = 2130968907;
-			
-			// aapt resource value: 0x7F04014C
-			public const int srlHeaderMaxDragRate = 2130968908;
-			
-			// aapt resource value: 0x7F04014D
-			public const int srlHeaderTranslationViewId = 2130968909;
-			
-			// aapt resource value: 0x7F04014E
-			public const int srlHeaderTriggerRate = 2130968910;
-			
-			// aapt resource value: 0x7F04014F
-			public const int srlMaxRage = 2130968911;
-			
-			// aapt resource value: 0x7F040150
-			public const int srlNormalColor = 2130968912;
-			
-			// aapt resource value: 0x7F040151
-			public const int srlPrimaryColor = 2130968913;
-			
-			// aapt resource value: 0x7F040152
-			public const int srlReboundDuration = 2130968914;
-			
-			// aapt resource value: 0x7F040153
-			public const int srlRefreshRage = 2130968915;
-			
-			// aapt resource value: 0x7F040154
-			public const int srlTextFailed = 2130968916;
-			
-			// aapt resource value: 0x7F040155
-			public const int srlTextFinish = 2130968917;
-			
-			// aapt resource value: 0x7F040156
-			public const int srlTextLoading = 2130968918;
-			
+
+			// aapt resource value: 0x7f01015c
+			public const int srlAccentColor = 2130772316;
+
+			// aapt resource value: 0x7f010172
+			public const int srlAnimatingColor = 2130772338;
+
+			// aapt resource value: 0x7f01015d
+			public const int srlClassicsSpinnerStyle = 2130772317;
+
+			// aapt resource value: 0x7f010194
+			public const int srlDisableContentWhenLoading = 2130772372;
+
+			// aapt resource value: 0x7f010193
+			public const int srlDisableContentWhenRefresh = 2130772371;
+
+			// aapt resource value: 0x7f01017b
+			public const int srlDragRate = 2130772347;
+
+			// aapt resource value: 0x7f01015e
+			public const int srlDrawableArrow = 2130772318;
+
+			// aapt resource value: 0x7f01015f
+			public const int srlDrawableArrowSize = 2130772319;
+
+			// aapt resource value: 0x7f010160
+			public const int srlDrawableMarginRight = 2130772320;
+
+			// aapt resource value: 0x7f010161
+			public const int srlDrawableProgress = 2130772321;
+
+			// aapt resource value: 0x7f010162
+			public const int srlDrawableProgressSize = 2130772322;
+
+			// aapt resource value: 0x7f010163
+			public const int srlDrawableSize = 2130772323;
+
+			// aapt resource value: 0x7f010187
+			public const int srlEnableAutoLoadMore = 2130772359;
+
+			// aapt resource value: 0x7f010191
+			public const int srlEnableClipFooterWhenFixedBehind = 2130772369;
+
+			// aapt resource value: 0x7f010190
+			public const int srlEnableClipHeaderWhenFixedBehind = 2130772368;
+
+			// aapt resource value: 0x7f01018e
+			public const int srlEnableFooterFollowWhenLoadFinished = 2130772366;
+
+			// aapt resource value: 0x7f01018f
+			public const int srlEnableFooterFollowWhenNoMoreData = 2130772367;
+
+			// aapt resource value: 0x7f010183
+			public const int srlEnableFooterTranslationContent = 2130772355;
+
+			// aapt resource value: 0x7f010182
+			public const int srlEnableHeaderTranslationContent = 2130772354;
+
+			// aapt resource value: 0x7f010164
+			public const int srlEnableHorizontalDrag = 2130772324;
+
+			// aapt resource value: 0x7f010175
+			public const int srlEnableLastTime = 2130772341;
+
+			// aapt resource value: 0x7f010181
+			public const int srlEnableLoadMore = 2130772353;
+
+			// aapt resource value: 0x7f01018d
+			public const int srlEnableLoadMoreWhenContentNotFull = 2130772365;
+
+			// aapt resource value: 0x7f01018a
+			public const int srlEnableNestedScrolling = 2130772362;
+
+			// aapt resource value: 0x7f010188
+			public const int srlEnableOverScrollBounce = 2130772360;
+
+			// aapt resource value: 0x7f010192
+			public const int srlEnableOverScrollDrag = 2130772370;
+
+			// aapt resource value: 0x7f010186
+			public const int srlEnablePreviewInEditMode = 2130772358;
+
+			// aapt resource value: 0x7f01019d
+			public const int srlEnablePullToCloseTwoLevel = 2130772381;
+
+			// aapt resource value: 0x7f010189
+			public const int srlEnablePureScrollMode = 2130772361;
+
+			// aapt resource value: 0x7f010180
+			public const int srlEnableRefresh = 2130772352;
+
+			// aapt resource value: 0x7f01018b
+			public const int srlEnableScrollContentWhenLoaded = 2130772363;
+
+			// aapt resource value: 0x7f01018c
+			public const int srlEnableScrollContentWhenRefreshed = 2130772364;
+
+			// aapt resource value: 0x7f01019c
+			public const int srlEnableTwoLevel = 2130772380;
+
+			// aapt resource value: 0x7f010165
+			public const int srlFinishDuration = 2130772325;
+
+			// aapt resource value: 0x7f010196
+			public const int srlFixedFooterViewId = 2130772374;
+
+			// aapt resource value: 0x7f010195
+			public const int srlFixedHeaderViewId = 2130772373;
+
+			// aapt resource value: 0x7f01019b
+			public const int srlFloorDuration = 2130772379;
+
+			// aapt resource value: 0x7f010199
+			public const int srlFloorRage = 2130772377;
+
+			// aapt resource value: 0x7f010178
+			public const int srlFooterHeight = 2130772344;
+
+			// aapt resource value: 0x7f01017a
+			public const int srlFooterInsetStart = 2130772346;
+
+			// aapt resource value: 0x7f01017d
+			public const int srlFooterMaxDragRate = 2130772349;
+
+			// aapt resource value: 0x7f010185
+			public const int srlFooterTranslationViewId = 2130772357;
+
+			// aapt resource value: 0x7f01017f
+			public const int srlFooterTriggerRate = 2130772351;
+
+			// aapt resource value: 0x7f010177
+			public const int srlHeaderHeight = 2130772343;
+
+			// aapt resource value: 0x7f010179
+			public const int srlHeaderInsetStart = 2130772345;
+
+			// aapt resource value: 0x7f01017c
+			public const int srlHeaderMaxDragRate = 2130772348;
+
+			// aapt resource value: 0x7f010184
+			public const int srlHeaderTranslationViewId = 2130772356;
+
+			// aapt resource value: 0x7f01017e
+			public const int srlHeaderTriggerRate = 2130772350;
+
+			// aapt resource value: 0x7f010198
+			public const int srlMaxRage = 2130772376;
+
+			// aapt resource value: 0x7f010173
+			public const int srlNormalColor = 2130772339;
+
+			// aapt resource value: 0x7f010166
+			public const int srlPrimaryColor = 2130772326;
+
+			// aapt resource value: 0x7f010176
+			public const int srlReboundDuration = 2130772342;
+
+			// aapt resource value: 0x7f01019a
+			public const int srlRefreshRage = 2130772378;
+
+			// aapt resource value: 0x7f010167
+			public const int srlTextFailed = 2130772327;
+
+			// aapt resource value: 0x7f010168
+			public const int srlTextFinish = 2130772328;
+
+			// aapt resource value: 0x7f010169
+			public const int srlTextLoading = 2130772329;
+
+			// aapt resource value: 0x7f01016a
+			public const int srlTextNothing = 2130772330;
+
+			// aapt resource value: 0x7f01016b
+			public const int srlTextPulling = 2130772331;
+
+			// aapt resource value: 0x7f01016c
+			public const int srlTextRefreshing = 2130772332;
+
+			// aapt resource value: 0x7f01016d
+			public const int srlTextRelease = 2130772333;
+
+			// aapt resource value: 0x7f01016e
+			public const int srlTextSecondary = 2130772334;
+
+			// aapt resource value: 0x7f01016f
+			public const int srlTextSizeTime = 2130772335;
+
+			// aapt resource value: 0x7f010170
+			public const int srlTextSizeTitle = 2130772336;
+
+			// aapt resource value: 0x7f010174
+			public const int srlTextTimeMarginTop = 2130772340;
+
+			// aapt resource value: 0x7f010171
+			public const int srlTextUpdate = 2130772337;
+
 			// aapt resource value: 0x7F040157
 			public const int srlTextNothing = 2130968919;
-			
+
 			// aapt resource value: 0x7F040158
 			public const int srlTextPulling = 2130968920;
-			
-			// aapt resource value: 0x7F040159
-			public const int srlTextRefreshing = 2130968921;
-			
+
+			// aapt resource value: 0x7f010100
+			public const int state_collapsed = 2130772224;
+
+			// aapt resource value: 0x7f010101
+			public const int state_collapsible = 2130772225;
+
+			// aapt resource value: 0x7f010119
+			public const int statusBarBackground = 2130772249;
+
+			// aapt resource value: 0x7f01010f
+			public const int statusBarScrim = 2130772239;
+
+			// aapt resource value: 0x7f0100cc
+			public const int subMenuArrow = 2130772172;
+
 			// aapt resource value: 0x7F04015A
 			public const int srlTextRelease = 2130968922;
-			
+
 			// aapt resource value: 0x7F04015B
 			public const int srlTextSecondary = 2130968923;
-			
+
 			// aapt resource value: 0x7F04015C
 			public const int srlTextSizeTime = 2130968924;
-			
+
 			// aapt resource value: 0x7F04015D
 			public const int srlTextSizeTitle = 2130968925;
-			
+
 			// aapt resource value: 0x7F04015E
 			public const int srlTextTimeMarginTop = 2130968926;
-			
+
 			// aapt resource value: 0x7F04015F
 			public const int srlTextUpdate = 2130968927;
-			
+
 			// aapt resource value: 0x7F040160
 			public const int stackFromEnd = 2130968928;
-			
+
 			// aapt resource value: 0x7F040161
 			public const int state_above_anchor = 2130968929;
-			
+
 			// aapt resource value: 0x7F040162
 			public const int state_collapsed = 2130968930;
-			
+
 			// aapt resource value: 0x7F040163
 			public const int state_collapsible = 2130968931;
-			
-			// aapt resource value: 0x7F040164
-			public const int statusBarBackground = 2130968932;
-			
+
+			// aapt resource value: 0x7f010136
+			public const int tabBackground = 2130772278;
+
+			// aapt resource value: 0x7f010135
+			public const int tabContentStart = 2130772277;
+
+			// aapt resource value: 0x7f010138
+			public const int tabGravity = 2130772280;
+
+			// aapt resource value: 0x7f010133
+			public const int tabIndicatorColor = 2130772275;
+
+			// aapt resource value: 0x7f010134
+			public const int tabIndicatorHeight = 2130772276;
+
+			// aapt resource value: 0x7f01013a
+			public const int tabMaxWidth = 2130772282;
+
+			// aapt resource value: 0x7f010139
+			public const int tabMinWidth = 2130772281;
+
+			// aapt resource value: 0x7f010137
+			public const int tabMode = 2130772279;
+
+			// aapt resource value: 0x7f010142
+			public const int tabPadding = 2130772290;
+
+			// aapt resource value: 0x7f010141
+			public const int tabPaddingBottom = 2130772289;
+
+			// aapt resource value: 0x7f010140
+			public const int tabPaddingEnd = 2130772288;
+
+			// aapt resource value: 0x7f01013e
+			public const int tabPaddingStart = 2130772286;
+
+			// aapt resource value: 0x7f01013f
+			public const int tabPaddingTop = 2130772287;
+
+			// aapt resource value: 0x7f01013d
+			public const int tabSelectedTextColor = 2130772285;
+
+			// aapt resource value: 0x7f01013b
+			public const int tabTextAppearance = 2130772283;
+
+			// aapt resource value: 0x7f01013c
+			public const int tabTextColor = 2130772284;
+
+			// aapt resource value: 0x7f010036
+			public const int textAllCaps = 2130772022;
+
 			// aapt resource value: 0x7F040165
 			public const int statusBarScrim = 2130968933;
-			
+
 			// aapt resource value: 0x7F040166
 			public const int subMenuArrow = 2130968934;
-			
+
 			// aapt resource value: 0x7F040167
 			public const int submitBackground = 2130968935;
-			
+
 			// aapt resource value: 0x7F040168
 			public const int subtitle = 2130968936;
-			
+
 			// aapt resource value: 0x7F040169
 			public const int subtitleTextAppearance = 2130968937;
-			
+
 			// aapt resource value: 0x7F04016A
 			public const int subtitleTextColor = 2130968938;
-			
+
 			// aapt resource value: 0x7F04016B
 			public const int subtitleTextStyle = 2130968939;
-			
+
 			// aapt resource value: 0x7F04016C
 			public const int suggestionRowLayout = 2130968940;
-			
+
 			// aapt resource value: 0x7F04016D
 			public const int switchMinWidth = 2130968941;
-			
-			// aapt resource value: 0x7F04016E
-			public const int switchPadding = 2130968942;
-			
+
+			// aapt resource value: 0x7f010122
+			public const int textColorError = 2130772258;
+
+			// aapt resource value: 0x7f01007f
+			public const int textColorSearchUrl = 2130772095;
+
 			// aapt resource value: 0x7F04016F
 			public const int switchStyle = 2130968943;
-			
+
 			// aapt resource value: 0x7F040170
 			public const int switchTextAppearance = 2130968944;
-			
+
 			// aapt resource value: 0x7F040171
 			public const int tabBackground = 2130968945;
-			
+
 			// aapt resource value: 0x7F040172
 			public const int tabContentStart = 2130968946;
-			
+
 			// aapt resource value: 0x7F040173
 			public const int tabGravity = 2130968947;
-			
+
 			// aapt resource value: 0x7F040174
 			public const int tabIndicatorColor = 2130968948;
-			
+
 			// aapt resource value: 0x7F040175
 			public const int tabIndicatorHeight = 2130968949;
-			
+
 			// aapt resource value: 0x7F040176
 			public const int tabMaxWidth = 2130968950;
-			
+
 			// aapt resource value: 0x7F040177
 			public const int tabMinWidth = 2130968951;
-			
+
 			// aapt resource value: 0x7F040178
 			public const int tabMode = 2130968952;
-			
+
 			// aapt resource value: 0x7F040179
 			public const int tabPadding = 2130968953;
-			
-			// aapt resource value: 0x7F04017A
-			public const int tabPaddingBottom = 2130968954;
-			
+
+			// aapt resource value: 0x7f010115
+			public const int titleEnabled = 2130772245;
+
+			// aapt resource value: 0x7f0100eb
+			public const int titleMargin = 2130772203;
+
 			// aapt resource value: 0x7F04017B
 			public const int tabPaddingEnd = 2130968955;
-			
+
 			// aapt resource value: 0x7F04017C
 			public const int tabPaddingStart = 2130968956;
-			
+
 			// aapt resource value: 0x7F04017D
 			public const int tabPaddingTop = 2130968957;
-			
+
 			// aapt resource value: 0x7F04017E
 			public const int tabSelectedTextColor = 2130968958;
-			
+
 			// aapt resource value: 0x7F04017F
 			public const int tabTextAppearance = 2130968959;
-			
+
 			// aapt resource value: 0x7F040180
 			public const int tabTextColor = 2130968960;
-			
+
 			// aapt resource value: 0x7F040181
 			public const int textAllCaps = 2130968961;
-			
+
 			// aapt resource value: 0x7F040182
 			public const int textAppearanceLargePopupMenu = 2130968962;
-			
-			// aapt resource value: 0x7F040183
-			public const int textAppearanceListItem = 2130968963;
-			
+
+			// aapt resource value: 0x7f010110
+			public const int toolbarId = 2130772240;
+
+			// aapt resource value: 0x7f010077
+			public const int toolbarNavigationButtonStyle = 2130772087;
+
 			// aapt resource value: 0x7F040184
 			public const int textAppearanceListItemSecondary = 2130968964;
-			
+
 			// aapt resource value: 0x7F040185
 			public const int textAppearanceListItemSmall = 2130968965;
-			
+
 			// aapt resource value: 0x7F040186
 			public const int textAppearancePopupMenuHeader = 2130968966;
-			
+
 			// aapt resource value: 0x7F040187
 			public const int textAppearanceSearchResultSubtitle = 2130968967;
-			
+
 			// aapt resource value: 0x7F040188
 			public const int textAppearanceSearchResultTitle = 2130968968;
-			
+
 			// aapt resource value: 0x7F040189
 			public const int textAppearanceSmallPopupMenu = 2130968969;
-			
+
 			// aapt resource value: 0x7F04018A
 			public const int textColorAlertDialogListItem = 2130968970;
-			
-			// aapt resource value: 0x7F04018B
-			public const int textColorError = 2130968971;
-			
-			// aapt resource value: 0x7F04018C
-			public const int textColorSearchUrl = 2130968972;
-			
-			// aapt resource value: 0x7F04018D
-			public const int theme = 2130968973;
-			
-			// aapt resource value: 0x7F04018E
-			public const int thickness = 2130968974;
-			
-			// aapt resource value: 0x7F04018F
-			public const int thumbTextPadding = 2130968975;
-			
-			// aapt resource value: 0x7F040190
-			public const int thumbTint = 2130968976;
-			
-			// aapt resource value: 0x7F040191
-			public const int thumbTintMode = 2130968977;
-			
-			// aapt resource value: 0x7F040192
-			public const int tickMark = 2130968978;
-			
-			// aapt resource value: 0x7F040193
-			public const int tickMarkTint = 2130968979;
-			
-			// aapt resource value: 0x7F040194
-			public const int tickMarkTintMode = 2130968980;
-			
-			// aapt resource value: 0x7F040195
-			public const int tint = 2130968981;
-			
-			// aapt resource value: 0x7F040196
-			public const int tintMode = 2130968982;
-			
+
+			// aapt resource value: 0x7f010127
+			public const int useCompatPadding = 2130772263;
+
+			// aapt resource value: 0x7f0100d9
+			public const int voiceIcon = 2130772185;
+
+			// aapt resource value: 0x7f0101b8
+			public const int wave_bg_color = 2130772408;
+
+			// aapt resource value: 0x7f0101b9
+			public const int wave_border_color = 2130772409;
+
+			// aapt resource value: 0x7f0101b6
+			public const int wave_color = 2130772406;
+
+			// aapt resource value: 0x7f0101bb
+			public const int wave_height = 2130772411;
+
+			// aapt resource value: 0x7f0101ba
+			public const int wave_width = 2130772410;
+
+			// aapt resource value: 0x7f0101c0
+			public const int wheelview_dividerColor = 2130772416;
+
+			// aapt resource value: 0x7f0101bc
+			public const int wheelview_gravity = 2130772412;
+
+			// aapt resource value: 0x7f0101c1
+			public const int wheelview_lineSpacingMultiplier = 2130772417;
+
+			// aapt resource value: 0x7f0101bf
+			public const int wheelview_textColorCenter = 2130772415;
+
+			// aapt resource value: 0x7f0101be
+			public const int wheelview_textColorOut = 2130772414;
+
+			// aapt resource value: 0x7f0101bd
+			public const int wheelview_textSize = 2130772413;
+
 			// aapt resource value: 0x7F040197
 			public const int title = 2130968983;
-			
+
 			// aapt resource value: 0x7F040198
 			public const int titleEnabled = 2130968984;
-			
+
 			// aapt resource value: 0x7F040199
 			public const int titleMargin = 2130968985;
-			
+
 			// aapt resource value: 0x7F04019A
 			public const int titleMarginBottom = 2130968986;
-			
+
 			// aapt resource value: 0x7F04019B
 			public const int titleMarginEnd = 2130968987;
-			
+
 			// aapt resource value: 0x7F04019E
 			public const int titleMargins = 2130968990;
-			
+
 			// aapt resource value: 0x7F04019C
 			public const int titleMarginStart = 2130968988;
-			
+
 			// aapt resource value: 0x7F04019D
 			public const int titleMarginTop = 2130968989;
-			
+
 			// aapt resource value: 0x7F04019F
 			public const int titleTextAppearance = 2130968991;
-			
+
 			// aapt resource value: 0x7F0401A0
 			public const int titleTextColor = 2130968992;
-			
+
 			// aapt resource value: 0x7F0401A1
 			public const int titleTextStyle = 2130968993;
-			
+
 			// aapt resource value: 0x7F0401A2
 			public const int toolbarId = 2130968994;
-			
+
 			// aapt resource value: 0x7F0401A3
 			public const int toolbarNavigationButtonStyle = 2130968995;
-			
+
 			// aapt resource value: 0x7F0401A4
 			public const int toolbarStyle = 2130968996;
-			
+
 			// aapt resource value: 0x7F0401A5
 			public const int tooltipForegroundColor = 2130968997;
-			
+
 			// aapt resource value: 0x7F0401A6
 			public const int tooltipFrameBackground = 2130968998;
-			
+
 			// aapt resource value: 0x7F0401A7
 			public const int tooltipText = 2130968999;
-			
+
 			// aapt resource value: 0x7F0401A8
 			public const int track = 2130969000;
-			
+
 			// aapt resource value: 0x7F0401A9
 			public const int trackTint = 2130969001;
-			
+
 			// aapt resource value: 0x7F0401AA
 			public const int trackTintMode = 2130969002;
-			
+
 			// aapt resource value: 0x7F0401AB
 			public const int useCompatPadding = 2130969003;
-			
+
 			// aapt resource value: 0x7F0401AC
 			public const int voiceIcon = 2130969004;
-			
+
 			// aapt resource value: 0x7F0401AD
 			public const int wave_bg_color = 2130969005;
-			
+
 			// aapt resource value: 0x7F0401AE
 			public const int wave_border_color = 2130969006;
-			
+
 			// aapt resource value: 0x7F0401AF
 			public const int wave_color = 2130969007;
-			
+
 			// aapt resource value: 0x7F0401B0
 			public const int wave_height = 2130969008;
-			
+
 			// aapt resource value: 0x7F0401B1
 			public const int wave_width = 2130969009;
-			
+
 			// aapt resource value: 0x7F0401B2
 			public const int wheelview_dividerColor = 2130969010;
-			
+
 			// aapt resource value: 0x7F0401B3
 			public const int wheelview_gravity = 2130969011;
-			
+
 			// aapt resource value: 0x7F0401B4
 			public const int wheelview_lineSpacingMultiplier = 2130969012;
-			
+
 			// aapt resource value: 0x7F0401B5
 			public const int wheelview_textColorCenter = 2130969013;
-			
+
 			// aapt resource value: 0x7F0401B6
 			public const int wheelview_textColorOut = 2130969014;
-			
+
 			// aapt resource value: 0x7F0401B7
 			public const int wheelview_textSize = 2130969015;
-			
+
 			// aapt resource value: 0x7F0401B8
 			public const int windowActionBar = 2130969016;
-			
+
 			// aapt resource value: 0x7F0401B9
 			public const int windowActionBarOverlay = 2130969017;
-			
+
 			// aapt resource value: 0x7F0401BA
 			public const int windowActionModeOverlay = 2130969018;
-			
+
 			// aapt resource value: 0x7F0401BB
 			public const int windowFixedHeightMajor = 2130969019;
-			
+
 			// aapt resource value: 0x7F0401BC
 			public const int windowFixedHeightMinor = 2130969020;
-			
+
 			// aapt resource value: 0x7F0401BD
 			public const int windowFixedWidthMajor = 2130969021;
-			
+
 			// aapt resource value: 0x7F0401BE
 			public const int windowFixedWidthMinor = 2130969022;
-			
+
 			// aapt resource value: 0x7F0401BF
 			public const int windowMinWidthMajor = 2130969023;
-			
+
 			// aapt resource value: 0x7F0401C0
 			public const int windowMinWidthMinor = 2130969024;
-			
+
 			// aapt resource value: 0x7F0401C1
 			public const int windowNoTitle = 2130969025;
-			
+
 			static Attribute()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Attribute()
 			{
 			}
 		}
-		
+
 		public partial class Boolean
 		{
-			
-			// aapt resource value: 0x7F050000
-			public const int abc_action_bar_embed_tabs = 2131034112;
-			
-			// aapt resource value: 0x7F050001
-			public const int abc_allow_stacked_button_bar = 2131034113;
-			
-			// aapt resource value: 0x7F050002
-			public const int abc_config_actionMenuItemAllCaps = 2131034114;
-			
-			// aapt resource value: 0x7F050003
-			public const int abc_config_closeDialogWhenTouchOutside = 2131034115;
-			
-			// aapt resource value: 0x7F050004
-			public const int abc_config_showMenuShortcutsWhenKeyboardPresent = 2131034116;
-			
+
+			// aapt resource value: 0x7f0c0000
+			public const int abc_action_bar_embed_tabs = 2131492864;
+
+			// aapt resource value: 0x7f0c0001
+			public const int abc_allow_stacked_button_bar = 2131492865;
+
+			// aapt resource value: 0x7f0c0002
+			public const int abc_config_actionMenuItemAllCaps = 2131492866;
+
+			// aapt resource value: 0x7f0c0003
+			public const int abc_config_closeDialogWhenTouchOutside = 2131492867;
+
+			// aapt resource value: 0x7f0c0004
+			public const int abc_config_showMenuShortcutsWhenKeyboardPresent = 2131492868;
+
 			static Boolean()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Boolean()
 			{
 			}
 		}
-		
+
 		public partial class Color
 		{
-			
-			// aapt resource value: 0x7F060000
-			public const int abc_background_cache_hint_selector_material_dark = 2131099648;
-			
-			// aapt resource value: 0x7F060001
-			public const int abc_background_cache_hint_selector_material_light = 2131099649;
-			
-			// aapt resource value: 0x7F060002
-			public const int abc_btn_colored_borderless_text_material = 2131099650;
-			
-			// aapt resource value: 0x7F060003
-			public const int abc_btn_colored_text_material = 2131099651;
-			
-			// aapt resource value: 0x7F060004
-			public const int abc_color_highlight_material = 2131099652;
-			
-			// aapt resource value: 0x7F060005
-			public const int abc_hint_foreground_material_dark = 2131099653;
-			
-			// aapt resource value: 0x7F060006
-			public const int abc_hint_foreground_material_light = 2131099654;
-			
-			// aapt resource value: 0x7F060007
-			public const int abc_input_method_navigation_guard = 2131099655;
-			
-			// aapt resource value: 0x7F060008
-			public const int abc_primary_text_disable_only_material_dark = 2131099656;
-			
-			// aapt resource value: 0x7F060009
-			public const int abc_primary_text_disable_only_material_light = 2131099657;
-			
-			// aapt resource value: 0x7F06000A
-			public const int abc_primary_text_material_dark = 2131099658;
-			
-			// aapt resource value: 0x7F06000B
-			public const int abc_primary_text_material_light = 2131099659;
-			
-			// aapt resource value: 0x7F06000C
-			public const int abc_search_url_text = 2131099660;
-			
-			// aapt resource value: 0x7F06000D
-			public const int abc_search_url_text_normal = 2131099661;
-			
-			// aapt resource value: 0x7F06000E
-			public const int abc_search_url_text_pressed = 2131099662;
-			
-			// aapt resource value: 0x7F06000F
-			public const int abc_search_url_text_selected = 2131099663;
-			
-			// aapt resource value: 0x7F060010
-			public const int abc_secondary_text_material_dark = 2131099664;
-			
-			// aapt resource value: 0x7F060011
-			public const int abc_secondary_text_material_light = 2131099665;
-			
-			// aapt resource value: 0x7F060012
-			public const int abc_tint_btn_checkable = 2131099666;
-			
-			// aapt resource value: 0x7F060013
-			public const int abc_tint_default = 2131099667;
-			
-			// aapt resource value: 0x7F060014
-			public const int abc_tint_edittext = 2131099668;
-			
-			// aapt resource value: 0x7F060015
-			public const int abc_tint_seek_thumb = 2131099669;
-			
-			// aapt resource value: 0x7F060016
-			public const int abc_tint_spinner = 2131099670;
-			
-			// aapt resource value: 0x7F060017
-			public const int abc_tint_switch_track = 2131099671;
-			
-			// aapt resource value: 0x7F060018
-			public const int accent_material_dark = 2131099672;
-			
-			// aapt resource value: 0x7F060019
-			public const int accent_material_light = 2131099673;
-			
-			// aapt resource value: 0x7F06001A
-			public const int background_floating_material_dark = 2131099674;
-			
-			// aapt resource value: 0x7F06001B
-			public const int background_floating_material_light = 2131099675;
-			
-			// aapt resource value: 0x7F06001C
-			public const int background_material_dark = 2131099676;
-			
-			// aapt resource value: 0x7F06001D
-			public const int background_material_light = 2131099677;
-			
-			// aapt resource value: 0x7F06001E
-			public const int bright_foreground_disabled_material_dark = 2131099678;
-			
-			// aapt resource value: 0x7F06001F
-			public const int bright_foreground_disabled_material_light = 2131099679;
-			
-			// aapt resource value: 0x7F060020
-			public const int bright_foreground_inverse_material_dark = 2131099680;
-			
-			// aapt resource value: 0x7F060021
-			public const int bright_foreground_inverse_material_light = 2131099681;
-			
-			// aapt resource value: 0x7F060022
-			public const int bright_foreground_material_dark = 2131099682;
-			
-			// aapt resource value: 0x7F060023
-			public const int bright_foreground_material_light = 2131099683;
-			
-			// aapt resource value: 0x7F060024
-			public const int button_material_dark = 2131099684;
-			
-			// aapt resource value: 0x7F060025
-			public const int button_material_light = 2131099685;
-			
-			// aapt resource value: 0x7F060026
-			public const int design_bottom_navigation_shadow_color = 2131099686;
-			
-			// aapt resource value: 0x7F060027
-			public const int design_error = 2131099687;
-			
-			// aapt resource value: 0x7F060028
-			public const int design_fab_shadow_end_color = 2131099688;
-			
-			// aapt resource value: 0x7F060029
-			public const int design_fab_shadow_mid_color = 2131099689;
-			
-			// aapt resource value: 0x7F06002A
-			public const int design_fab_shadow_start_color = 2131099690;
-			
-			// aapt resource value: 0x7F06002B
-			public const int design_fab_stroke_end_inner_color = 2131099691;
-			
-			// aapt resource value: 0x7F06002C
-			public const int design_fab_stroke_end_outer_color = 2131099692;
-			
-			// aapt resource value: 0x7F06002D
-			public const int design_fab_stroke_top_inner_color = 2131099693;
-			
-			// aapt resource value: 0x7F06002E
-			public const int design_fab_stroke_top_outer_color = 2131099694;
-			
-			// aapt resource value: 0x7F06002F
-			public const int design_snackbar_background_color = 2131099695;
-			
-			// aapt resource value: 0x7F060030
-			public const int design_tint_password_toggle = 2131099696;
-			
-			// aapt resource value: 0x7F060031
-			public const int dim_foreground_disabled_material_dark = 2131099697;
-			
-			// aapt resource value: 0x7F060032
-			public const int dim_foreground_disabled_material_light = 2131099698;
-			
-			// aapt resource value: 0x7F060033
-			public const int dim_foreground_material_dark = 2131099699;
-			
-			// aapt resource value: 0x7F060034
-			public const int dim_foreground_material_light = 2131099700;
-			
-			// aapt resource value: 0x7F060035
-			public const int error_color_material = 2131099701;
-			
-			// aapt resource value: 0x7F060036
-			public const int foreground_material_dark = 2131099702;
-			
-			// aapt resource value: 0x7F060037
-			public const int foreground_material_light = 2131099703;
-			
-			// aapt resource value: 0x7F060038
-			public const int gd_top_view = 2131099704;
-			
-			// aapt resource value: 0x7F060039
-			public const int highlighted_text_material_dark = 2131099705;
-			
-			// aapt resource value: 0x7F06003A
-			public const int highlighted_text_material_light = 2131099706;
-			
-			// aapt resource value: 0x7F06003B
-			public const int material_blue_grey_800 = 2131099707;
-			
-			// aapt resource value: 0x7F06003C
-			public const int material_blue_grey_900 = 2131099708;
-			
-			// aapt resource value: 0x7F06003D
-			public const int material_blue_grey_950 = 2131099709;
-			
-			// aapt resource value: 0x7F06003E
-			public const int material_deep_teal_200 = 2131099710;
-			
-			// aapt resource value: 0x7F06003F
-			public const int material_deep_teal_500 = 2131099711;
-			
-			// aapt resource value: 0x7F060040
-			public const int material_grey_100 = 2131099712;
-			
-			// aapt resource value: 0x7F060041
-			public const int material_grey_300 = 2131099713;
-			
-			// aapt resource value: 0x7F060042
-			public const int material_grey_50 = 2131099714;
-			
-			// aapt resource value: 0x7F060043
-			public const int material_grey_600 = 2131099715;
-			
-			// aapt resource value: 0x7F060044
-			public const int material_grey_800 = 2131099716;
-			
-			// aapt resource value: 0x7F060045
-			public const int material_grey_850 = 2131099717;
-			
-			// aapt resource value: 0x7F060046
-			public const int material_grey_900 = 2131099718;
-			
-			// aapt resource value: 0x7F060047
-			public const int material_red_500 = 2131099719;
-			
-			// aapt resource value: 0x7F060048
-			public const int notification_action_color_filter = 2131099720;
-			
-			// aapt resource value: 0x7F060049
-			public const int notification_icon_bg_color = 2131099721;
-			
-			// aapt resource value: 0x7F06004A
-			public const int notification_material_background_media_default_color = 2131099722;
-			
-			// aapt resource value: 0x7F06004B
-			public const int pickerview_bgColor_default = 2131099723;
-			
-			// aapt resource value: 0x7F06004C
-			public const int pickerview_bgColor_overlay = 2131099724;
-			
-			// aapt resource value: 0x7F06004D
-			public const int pickerview_bg_topbar = 2131099725;
-			
-			// aapt resource value: 0x7F06004E
-			public const int pickerview_timebtn_nor = 2131099726;
-			
-			// aapt resource value: 0x7F06004F
-			public const int pickerview_timebtn_pre = 2131099727;
-			
-			// aapt resource value: 0x7F060050
-			public const int pickerview_topbar_title = 2131099728;
-			
-			// aapt resource value: 0x7F060051
-			public const int pickerview_wheelview_textcolor_center = 2131099729;
-			
-			// aapt resource value: 0x7F060052
-			public const int pickerview_wheelview_textcolor_divider = 2131099730;
-			
-			// aapt resource value: 0x7F060053
-			public const int pickerview_wheelview_textcolor_out = 2131099731;
-			
-			// aapt resource value: 0x7F060054
-			public const int primary_dark_material_dark = 2131099732;
-			
-			// aapt resource value: 0x7F060055
-			public const int primary_dark_material_light = 2131099733;
-			
-			// aapt resource value: 0x7F060056
-			public const int primary_material_dark = 2131099734;
-			
-			// aapt resource value: 0x7F060057
-			public const int primary_material_light = 2131099735;
-			
-			// aapt resource value: 0x7F060058
-			public const int primary_text_default_material_dark = 2131099736;
-			
-			// aapt resource value: 0x7F060059
-			public const int primary_text_default_material_light = 2131099737;
-			
-			// aapt resource value: 0x7F06005A
-			public const int primary_text_disabled_material_dark = 2131099738;
-			
-			// aapt resource value: 0x7F06005B
-			public const int primary_text_disabled_material_light = 2131099739;
-			
-			// aapt resource value: 0x7F06005C
-			public const int ripple_material_dark = 2131099740;
-			
-			// aapt resource value: 0x7F06005D
-			public const int ripple_material_light = 2131099741;
-			
-			// aapt resource value: 0x7F06005E
-			public const int secondary_text_default_material_dark = 2131099742;
-			
-			// aapt resource value: 0x7F06005F
-			public const int secondary_text_default_material_light = 2131099743;
-			
-			// aapt resource value: 0x7F060060
-			public const int secondary_text_disabled_material_dark = 2131099744;
-			
-			// aapt resource value: 0x7F060061
-			public const int secondary_text_disabled_material_light = 2131099745;
-			
-			// aapt resource value: 0x7F060062
-			public const int switch_thumb_disabled_material_dark = 2131099746;
-			
-			// aapt resource value: 0x7F060063
-			public const int switch_thumb_disabled_material_light = 2131099747;
-			
-			// aapt resource value: 0x7F060064
-			public const int switch_thumb_material_dark = 2131099748;
-			
-			// aapt resource value: 0x7F060065
-			public const int switch_thumb_material_light = 2131099749;
-			
-			// aapt resource value: 0x7F060066
-			public const int switch_thumb_normal_material_dark = 2131099750;
-			
-			// aapt resource value: 0x7F060067
-			public const int switch_thumb_normal_material_light = 2131099751;
-			
-			// aapt resource value: 0x7F060068
-			public const int tooltip_background_dark = 2131099752;
-			
-			// aapt resource value: 0x7F060069
-			public const int tooltip_background_light = 2131099753;
-			
+
+			// aapt resource value: 0x7f0d0052
+			public const int abc_background_cache_hint_selector_material_dark = 2131558482;
+
+			// aapt resource value: 0x7f0d0053
+			public const int abc_background_cache_hint_selector_material_light = 2131558483;
+
+			// aapt resource value: 0x7f0d0054
+			public const int abc_btn_colored_borderless_text_material = 2131558484;
+
+			// aapt resource value: 0x7f0d0055
+			public const int abc_btn_colored_text_material = 2131558485;
+
+			// aapt resource value: 0x7f0d0056
+			public const int abc_color_highlight_material = 2131558486;
+
+			// aapt resource value: 0x7f0d0057
+			public const int abc_hint_foreground_material_dark = 2131558487;
+
+			// aapt resource value: 0x7f0d0058
+			public const int abc_hint_foreground_material_light = 2131558488;
+
+			// aapt resource value: 0x7f0d0000
+			public const int abc_input_method_navigation_guard = 2131558400;
+
+			// aapt resource value: 0x7f0d0059
+			public const int abc_primary_text_disable_only_material_dark = 2131558489;
+
+			// aapt resource value: 0x7f0d005a
+			public const int abc_primary_text_disable_only_material_light = 2131558490;
+
+			// aapt resource value: 0x7f0d005b
+			public const int abc_primary_text_material_dark = 2131558491;
+
+			// aapt resource value: 0x7f0d005c
+			public const int abc_primary_text_material_light = 2131558492;
+
+			// aapt resource value: 0x7f0d005d
+			public const int abc_search_url_text = 2131558493;
+
+			// aapt resource value: 0x7f0d0001
+			public const int abc_search_url_text_normal = 2131558401;
+
+			// aapt resource value: 0x7f0d0002
+			public const int abc_search_url_text_pressed = 2131558402;
+
+			// aapt resource value: 0x7f0d0003
+			public const int abc_search_url_text_selected = 2131558403;
+
+			// aapt resource value: 0x7f0d005e
+			public const int abc_secondary_text_material_dark = 2131558494;
+
+			// aapt resource value: 0x7f0d005f
+			public const int abc_secondary_text_material_light = 2131558495;
+
+			// aapt resource value: 0x7f0d0060
+			public const int abc_tint_btn_checkable = 2131558496;
+
+			// aapt resource value: 0x7f0d0061
+			public const int abc_tint_default = 2131558497;
+
+			// aapt resource value: 0x7f0d0062
+			public const int abc_tint_edittext = 2131558498;
+
+			// aapt resource value: 0x7f0d0063
+			public const int abc_tint_seek_thumb = 2131558499;
+
+			// aapt resource value: 0x7f0d0064
+			public const int abc_tint_spinner = 2131558500;
+
+			// aapt resource value: 0x7f0d0065
+			public const int abc_tint_switch_track = 2131558501;
+
+			// aapt resource value: 0x7f0d0004
+			public const int accent_material_dark = 2131558404;
+
+			// aapt resource value: 0x7f0d0005
+			public const int accent_material_light = 2131558405;
+
+			// aapt resource value: 0x7f0d0006
+			public const int background_floating_material_dark = 2131558406;
+
+			// aapt resource value: 0x7f0d0007
+			public const int background_floating_material_light = 2131558407;
+
+			// aapt resource value: 0x7f0d0008
+			public const int background_material_dark = 2131558408;
+
+			// aapt resource value: 0x7f0d0009
+			public const int background_material_light = 2131558409;
+
+			// aapt resource value: 0x7f0d000a
+			public const int bright_foreground_disabled_material_dark = 2131558410;
+
+			// aapt resource value: 0x7f0d000b
+			public const int bright_foreground_disabled_material_light = 2131558411;
+
+			// aapt resource value: 0x7f0d000c
+			public const int bright_foreground_inverse_material_dark = 2131558412;
+
+			// aapt resource value: 0x7f0d000d
+			public const int bright_foreground_inverse_material_light = 2131558413;
+
+			// aapt resource value: 0x7f0d000e
+			public const int bright_foreground_material_dark = 2131558414;
+
+			// aapt resource value: 0x7f0d000f
+			public const int bright_foreground_material_light = 2131558415;
+
+			// aapt resource value: 0x7f0d0010
+			public const int button_material_dark = 2131558416;
+
+			// aapt resource value: 0x7f0d0011
+			public const int button_material_light = 2131558417;
+
+			// aapt resource value: 0x7f0d003c
+			public const int design_bottom_navigation_shadow_color = 2131558460;
+
+			// aapt resource value: 0x7f0d0066
+			public const int design_error = 2131558502;
+
+			// aapt resource value: 0x7f0d003d
+			public const int design_fab_shadow_end_color = 2131558461;
+
+			// aapt resource value: 0x7f0d003e
+			public const int design_fab_shadow_mid_color = 2131558462;
+
+			// aapt resource value: 0x7f0d003f
+			public const int design_fab_shadow_start_color = 2131558463;
+
+			// aapt resource value: 0x7f0d0040
+			public const int design_fab_stroke_end_inner_color = 2131558464;
+
+			// aapt resource value: 0x7f0d0041
+			public const int design_fab_stroke_end_outer_color = 2131558465;
+
+			// aapt resource value: 0x7f0d0042
+			public const int design_fab_stroke_top_inner_color = 2131558466;
+
+			// aapt resource value: 0x7f0d0043
+			public const int design_fab_stroke_top_outer_color = 2131558467;
+
+			// aapt resource value: 0x7f0d0044
+			public const int design_snackbar_background_color = 2131558468;
+
+			// aapt resource value: 0x7f0d0067
+			public const int design_tint_password_toggle = 2131558503;
+
+			// aapt resource value: 0x7f0d0012
+			public const int dim_foreground_disabled_material_dark = 2131558418;
+
+			// aapt resource value: 0x7f0d0013
+			public const int dim_foreground_disabled_material_light = 2131558419;
+
+			// aapt resource value: 0x7f0d0014
+			public const int dim_foreground_material_dark = 2131558420;
+
+			// aapt resource value: 0x7f0d0015
+			public const int dim_foreground_material_light = 2131558421;
+
+			// aapt resource value: 0x7f0d0016
+			public const int error_color_material = 2131558422;
+
+			// aapt resource value: 0x7f0d0017
+			public const int foreground_material_dark = 2131558423;
+
+			// aapt resource value: 0x7f0d0018
+			public const int foreground_material_light = 2131558424;
+
+			// aapt resource value: 0x7f0d0048
+			public const int gd_top_view = 2131558472;
+
+			// aapt resource value: 0x7f0d0019
+			public const int highlighted_text_material_dark = 2131558425;
+
+			// aapt resource value: 0x7f0d001a
+			public const int highlighted_text_material_light = 2131558426;
+
+			// aapt resource value: 0x7f0d001b
+			public const int material_blue_grey_800 = 2131558427;
+
+			// aapt resource value: 0x7f0d001c
+			public const int material_blue_grey_900 = 2131558428;
+
+			// aapt resource value: 0x7f0d001d
+			public const int material_blue_grey_950 = 2131558429;
+
+			// aapt resource value: 0x7f0d001e
+			public const int material_deep_teal_200 = 2131558430;
+
+			// aapt resource value: 0x7f0d001f
+			public const int material_deep_teal_500 = 2131558431;
+
+			// aapt resource value: 0x7f0d0020
+			public const int material_grey_100 = 2131558432;
+
+			// aapt resource value: 0x7f0d0021
+			public const int material_grey_300 = 2131558433;
+
+			// aapt resource value: 0x7f0d0022
+			public const int material_grey_50 = 2131558434;
+
+			// aapt resource value: 0x7f0d0023
+			public const int material_grey_600 = 2131558435;
+
+			// aapt resource value: 0x7f0d0024
+			public const int material_grey_800 = 2131558436;
+
+			// aapt resource value: 0x7f0d0025
+			public const int material_grey_850 = 2131558437;
+
+			// aapt resource value: 0x7f0d0026
+			public const int material_grey_900 = 2131558438;
+
+			// aapt resource value: 0x7f0d0047
+			public const int material_red_500 = 2131558471;
+
+			// aapt resource value: 0x7f0d0045
+			public const int notification_action_color_filter = 2131558469;
+
+			// aapt resource value: 0x7f0d0046
+			public const int notification_icon_bg_color = 2131558470;
+
+			// aapt resource value: 0x7f0d003b
+			public const int notification_material_background_media_default_color = 2131558459;
+
+			// aapt resource value: 0x7f0d0049
+			public const int pickerview_bgColor_default = 2131558473;
+
+			// aapt resource value: 0x7f0d004a
+			public const int pickerview_bgColor_overlay = 2131558474;
+
+			// aapt resource value: 0x7f0d004b
+			public const int pickerview_bg_topbar = 2131558475;
+
+			// aapt resource value: 0x7f0d004c
+			public const int pickerview_timebtn_nor = 2131558476;
+
+			// aapt resource value: 0x7f0d004d
+			public const int pickerview_timebtn_pre = 2131558477;
+
+			// aapt resource value: 0x7f0d004e
+			public const int pickerview_topbar_title = 2131558478;
+
+			// aapt resource value: 0x7f0d004f
+			public const int pickerview_wheelview_textcolor_center = 2131558479;
+
+			// aapt resource value: 0x7f0d0050
+			public const int pickerview_wheelview_textcolor_divider = 2131558480;
+
+			// aapt resource value: 0x7f0d0051
+			public const int pickerview_wheelview_textcolor_out = 2131558481;
+
+			// aapt resource value: 0x7f0d0027
+			public const int primary_dark_material_dark = 2131558439;
+
+			// aapt resource value: 0x7f0d0028
+			public const int primary_dark_material_light = 2131558440;
+
+			// aapt resource value: 0x7f0d0029
+			public const int primary_material_dark = 2131558441;
+
+			// aapt resource value: 0x7f0d002a
+			public const int primary_material_light = 2131558442;
+
+			// aapt resource value: 0x7f0d002b
+			public const int primary_text_default_material_dark = 2131558443;
+
+			// aapt resource value: 0x7f0d002c
+			public const int primary_text_default_material_light = 2131558444;
+
+			// aapt resource value: 0x7f0d002d
+			public const int primary_text_disabled_material_dark = 2131558445;
+
+			// aapt resource value: 0x7f0d002e
+			public const int primary_text_disabled_material_light = 2131558446;
+
+			// aapt resource value: 0x7f0d002f
+			public const int ripple_material_dark = 2131558447;
+
+			// aapt resource value: 0x7f0d0030
+			public const int ripple_material_light = 2131558448;
+
+			// aapt resource value: 0x7f0d0031
+			public const int secondary_text_default_material_dark = 2131558449;
+
+			// aapt resource value: 0x7f0d0032
+			public const int secondary_text_default_material_light = 2131558450;
+
+			// aapt resource value: 0x7f0d0033
+			public const int secondary_text_disabled_material_dark = 2131558451;
+
+			// aapt resource value: 0x7f0d0034
+			public const int secondary_text_disabled_material_light = 2131558452;
+
+			// aapt resource value: 0x7f0d0035
+			public const int switch_thumb_disabled_material_dark = 2131558453;
+
+			// aapt resource value: 0x7f0d0036
+			public const int switch_thumb_disabled_material_light = 2131558454;
+
+			// aapt resource value: 0x7f0d0068
+			public const int switch_thumb_material_dark = 2131558504;
+
+			// aapt resource value: 0x7f0d0069
+			public const int switch_thumb_material_light = 2131558505;
+
+			// aapt resource value: 0x7f0d0037
+			public const int switch_thumb_normal_material_dark = 2131558455;
+
+			// aapt resource value: 0x7f0d0038
+			public const int switch_thumb_normal_material_light = 2131558456;
+
+			// aapt resource value: 0x7f0d0039
+			public const int tooltip_background_dark = 2131558457;
+
+			// aapt resource value: 0x7f0d003a
+			public const int tooltip_background_light = 2131558458;
+
 			static Color()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Color()
 			{
 			}
 		}
-		
+
 		public partial class Dimension
 		{
-			
-			// aapt resource value: 0x7F070000
-			public const int abc_action_bar_content_inset_material = 2131165184;
-			
-			// aapt resource value: 0x7F070001
-			public const int abc_action_bar_content_inset_with_nav = 2131165185;
-			
-			// aapt resource value: 0x7F070002
-			public const int abc_action_bar_default_height_material = 2131165186;
-			
-			// aapt resource value: 0x7F070003
-			public const int abc_action_bar_default_padding_end_material = 2131165187;
-			
-			// aapt resource value: 0x7F070004
-			public const int abc_action_bar_default_padding_start_material = 2131165188;
-			
-			// aapt resource value: 0x7F070005
-			public const int abc_action_bar_elevation_material = 2131165189;
-			
-			// aapt resource value: 0x7F070006
-			public const int abc_action_bar_icon_vertical_padding_material = 2131165190;
-			
-			// aapt resource value: 0x7F070007
-			public const int abc_action_bar_overflow_padding_end_material = 2131165191;
-			
-			// aapt resource value: 0x7F070008
-			public const int abc_action_bar_overflow_padding_start_material = 2131165192;
-			
-			// aapt resource value: 0x7F070009
-			public const int abc_action_bar_progress_bar_size = 2131165193;
-			
-			// aapt resource value: 0x7F07000A
-			public const int abc_action_bar_stacked_max_height = 2131165194;
-			
-			// aapt resource value: 0x7F07000B
-			public const int abc_action_bar_stacked_tab_max_width = 2131165195;
-			
-			// aapt resource value: 0x7F07000C
-			public const int abc_action_bar_subtitle_bottom_margin_material = 2131165196;
-			
-			// aapt resource value: 0x7F07000D
-			public const int abc_action_bar_subtitle_top_margin_material = 2131165197;
-			
-			// aapt resource value: 0x7F07000E
-			public const int abc_action_button_min_height_material = 2131165198;
-			
-			// aapt resource value: 0x7F07000F
-			public const int abc_action_button_min_width_material = 2131165199;
-			
-			// aapt resource value: 0x7F070010
-			public const int abc_action_button_min_width_overflow_material = 2131165200;
-			
-			// aapt resource value: 0x7F070011
-			public const int abc_alert_dialog_button_bar_height = 2131165201;
-			
-			// aapt resource value: 0x7F070012
-			public const int abc_button_inset_horizontal_material = 2131165202;
-			
-			// aapt resource value: 0x7F070013
-			public const int abc_button_inset_vertical_material = 2131165203;
-			
-			// aapt resource value: 0x7F070014
-			public const int abc_button_padding_horizontal_material = 2131165204;
-			
-			// aapt resource value: 0x7F070015
-			public const int abc_button_padding_vertical_material = 2131165205;
-			
-			// aapt resource value: 0x7F070016
-			public const int abc_cascading_menus_min_smallest_width = 2131165206;
-			
-			// aapt resource value: 0x7F070017
-			public const int abc_config_prefDialogWidth = 2131165207;
-			
-			// aapt resource value: 0x7F070018
-			public const int abc_control_corner_material = 2131165208;
-			
-			// aapt resource value: 0x7F070019
-			public const int abc_control_inset_material = 2131165209;
-			
-			// aapt resource value: 0x7F07001A
-			public const int abc_control_padding_material = 2131165210;
-			
-			// aapt resource value: 0x7F07001B
-			public const int abc_dialog_fixed_height_major = 2131165211;
-			
-			// aapt resource value: 0x7F07001C
-			public const int abc_dialog_fixed_height_minor = 2131165212;
-			
-			// aapt resource value: 0x7F07001D
-			public const int abc_dialog_fixed_width_major = 2131165213;
-			
-			// aapt resource value: 0x7F07001E
-			public const int abc_dialog_fixed_width_minor = 2131165214;
-			
-			// aapt resource value: 0x7F07001F
-			public const int abc_dialog_list_padding_bottom_no_buttons = 2131165215;
-			
-			// aapt resource value: 0x7F070020
-			public const int abc_dialog_list_padding_top_no_title = 2131165216;
-			
-			// aapt resource value: 0x7F070021
-			public const int abc_dialog_min_width_major = 2131165217;
-			
-			// aapt resource value: 0x7F070022
-			public const int abc_dialog_min_width_minor = 2131165218;
-			
-			// aapt resource value: 0x7F070023
-			public const int abc_dialog_padding_material = 2131165219;
-			
-			// aapt resource value: 0x7F070024
-			public const int abc_dialog_padding_top_material = 2131165220;
-			
-			// aapt resource value: 0x7F070025
-			public const int abc_dialog_title_divider_material = 2131165221;
-			
-			// aapt resource value: 0x7F070026
-			public const int abc_disabled_alpha_material_dark = 2131165222;
-			
-			// aapt resource value: 0x7F070027
-			public const int abc_disabled_alpha_material_light = 2131165223;
-			
-			// aapt resource value: 0x7F070028
-			public const int abc_dropdownitem_icon_width = 2131165224;
-			
-			// aapt resource value: 0x7F070029
-			public const int abc_dropdownitem_text_padding_left = 2131165225;
-			
-			// aapt resource value: 0x7F07002A
-			public const int abc_dropdownitem_text_padding_right = 2131165226;
-			
-			// aapt resource value: 0x7F07002B
-			public const int abc_edit_text_inset_bottom_material = 2131165227;
-			
-			// aapt resource value: 0x7F07002C
-			public const int abc_edit_text_inset_horizontal_material = 2131165228;
-			
-			// aapt resource value: 0x7F07002D
-			public const int abc_edit_text_inset_top_material = 2131165229;
-			
-			// aapt resource value: 0x7F07002E
-			public const int abc_floating_window_z = 2131165230;
-			
-			// aapt resource value: 0x7F07002F
-			public const int abc_list_item_padding_horizontal_material = 2131165231;
-			
-			// aapt resource value: 0x7F070030
-			public const int abc_panel_menu_list_width = 2131165232;
-			
-			// aapt resource value: 0x7F070031
-			public const int abc_progress_bar_height_material = 2131165233;
-			
-			// aapt resource value: 0x7F070032
-			public const int abc_search_view_preferred_height = 2131165234;
-			
-			// aapt resource value: 0x7F070033
-			public const int abc_search_view_preferred_width = 2131165235;
-			
-			// aapt resource value: 0x7F070034
-			public const int abc_seekbar_track_background_height_material = 2131165236;
-			
-			// aapt resource value: 0x7F070035
-			public const int abc_seekbar_track_progress_height_material = 2131165237;
-			
-			// aapt resource value: 0x7F070036
-			public const int abc_select_dialog_padding_start_material = 2131165238;
-			
-			// aapt resource value: 0x7F070037
-			public const int abc_switch_padding = 2131165239;
-			
-			// aapt resource value: 0x7F070038
-			public const int abc_text_size_body_1_material = 2131165240;
-			
-			// aapt resource value: 0x7F070039
-			public const int abc_text_size_body_2_material = 2131165241;
-			
-			// aapt resource value: 0x7F07003A
-			public const int abc_text_size_button_material = 2131165242;
-			
-			// aapt resource value: 0x7F07003B
-			public const int abc_text_size_caption_material = 2131165243;
-			
-			// aapt resource value: 0x7F07003C
-			public const int abc_text_size_display_1_material = 2131165244;
-			
-			// aapt resource value: 0x7F07003D
-			public const int abc_text_size_display_2_material = 2131165245;
-			
-			// aapt resource value: 0x7F07003E
-			public const int abc_text_size_display_3_material = 2131165246;
-			
-			// aapt resource value: 0x7F07003F
-			public const int abc_text_size_display_4_material = 2131165247;
-			
-			// aapt resource value: 0x7F070040
-			public const int abc_text_size_headline_material = 2131165248;
-			
-			// aapt resource value: 0x7F070041
-			public const int abc_text_size_large_material = 2131165249;
-			
-			// aapt resource value: 0x7F070042
-			public const int abc_text_size_medium_material = 2131165250;
-			
-			// aapt resource value: 0x7F070043
-			public const int abc_text_size_menu_header_material = 2131165251;
-			
-			// aapt resource value: 0x7F070044
-			public const int abc_text_size_menu_material = 2131165252;
-			
-			// aapt resource value: 0x7F070045
-			public const int abc_text_size_small_material = 2131165253;
-			
-			// aapt resource value: 0x7F070046
-			public const int abc_text_size_subhead_material = 2131165254;
-			
-			// aapt resource value: 0x7F070047
-			public const int abc_text_size_subtitle_material_toolbar = 2131165255;
-			
-			// aapt resource value: 0x7F070048
-			public const int abc_text_size_title_material = 2131165256;
-			
-			// aapt resource value: 0x7F070049
-			public const int abc_text_size_title_material_toolbar = 2131165257;
-			
-			// aapt resource value: 0x7F07004A
-			public const int compat_button_inset_horizontal_material = 2131165258;
-			
-			// aapt resource value: 0x7F07004B
-			public const int compat_button_inset_vertical_material = 2131165259;
-			
-			// aapt resource value: 0x7F07004C
-			public const int compat_button_padding_horizontal_material = 2131165260;
-			
-			// aapt resource value: 0x7F07004D
-			public const int compat_button_padding_vertical_material = 2131165261;
-			
-			// aapt resource value: 0x7F07004E
-			public const int compat_control_corner_material = 2131165262;
-			
-			// aapt resource value: 0x7F07004F
-			public const int design_appbar_elevation = 2131165263;
-			
-			// aapt resource value: 0x7F070050
-			public const int design_bottom_navigation_active_item_max_width = 2131165264;
-			
-			// aapt resource value: 0x7F070051
-			public const int design_bottom_navigation_active_text_size = 2131165265;
-			
-			// aapt resource value: 0x7F070052
-			public const int design_bottom_navigation_elevation = 2131165266;
-			
-			// aapt resource value: 0x7F070053
-			public const int design_bottom_navigation_height = 2131165267;
-			
-			// aapt resource value: 0x7F070054
-			public const int design_bottom_navigation_item_max_width = 2131165268;
-			
-			// aapt resource value: 0x7F070055
-			public const int design_bottom_navigation_item_min_width = 2131165269;
-			
-			// aapt resource value: 0x7F070056
-			public const int design_bottom_navigation_margin = 2131165270;
-			
-			// aapt resource value: 0x7F070057
-			public const int design_bottom_navigation_shadow_height = 2131165271;
-			
-			// aapt resource value: 0x7F070058
-			public const int design_bottom_navigation_text_size = 2131165272;
-			
-			// aapt resource value: 0x7F070059
-			public const int design_bottom_sheet_modal_elevation = 2131165273;
-			
-			// aapt resource value: 0x7F07005A
-			public const int design_bottom_sheet_peek_height_min = 2131165274;
-			
-			// aapt resource value: 0x7F07005B
-			public const int design_fab_border_width = 2131165275;
-			
-			// aapt resource value: 0x7F07005C
-			public const int design_fab_elevation = 2131165276;
-			
-			// aapt resource value: 0x7F07005D
-			public const int design_fab_image_size = 2131165277;
-			
-			// aapt resource value: 0x7F07005E
-			public const int design_fab_size_mini = 2131165278;
-			
-			// aapt resource value: 0x7F07005F
-			public const int design_fab_size_normal = 2131165279;
-			
-			// aapt resource value: 0x7F070060
-			public const int design_fab_translation_z_pressed = 2131165280;
-			
-			// aapt resource value: 0x7F070061
-			public const int design_navigation_elevation = 2131165281;
-			
-			// aapt resource value: 0x7F070062
-			public const int design_navigation_icon_padding = 2131165282;
-			
-			// aapt resource value: 0x7F070063
-			public const int design_navigation_icon_size = 2131165283;
-			
-			// aapt resource value: 0x7F070064
-			public const int design_navigation_max_width = 2131165284;
-			
-			// aapt resource value: 0x7F070065
-			public const int design_navigation_padding_bottom = 2131165285;
-			
-			// aapt resource value: 0x7F070066
-			public const int design_navigation_separator_vertical_padding = 2131165286;
-			
-			// aapt resource value: 0x7F070067
-			public const int design_snackbar_action_inline_max_width = 2131165287;
-			
-			// aapt resource value: 0x7F070068
-			public const int design_snackbar_background_corner_radius = 2131165288;
-			
-			// aapt resource value: 0x7F070069
-			public const int design_snackbar_elevation = 2131165289;
-			
-			// aapt resource value: 0x7F07006A
-			public const int design_snackbar_extra_spacing_horizontal = 2131165290;
-			
-			// aapt resource value: 0x7F07006B
-			public const int design_snackbar_max_width = 2131165291;
-			
-			// aapt resource value: 0x7F07006C
-			public const int design_snackbar_min_width = 2131165292;
-			
-			// aapt resource value: 0x7F07006D
-			public const int design_snackbar_padding_horizontal = 2131165293;
-			
-			// aapt resource value: 0x7F07006E
-			public const int design_snackbar_padding_vertical = 2131165294;
-			
-			// aapt resource value: 0x7F07006F
-			public const int design_snackbar_padding_vertical_2lines = 2131165295;
-			
-			// aapt resource value: 0x7F070070
-			public const int design_snackbar_text_size = 2131165296;
-			
-			// aapt resource value: 0x7F070071
-			public const int design_tab_max_width = 2131165297;
-			
-			// aapt resource value: 0x7F070072
-			public const int design_tab_scrollable_min_width = 2131165298;
-			
-			// aapt resource value: 0x7F070073
-			public const int design_tab_text_size = 2131165299;
-			
-			// aapt resource value: 0x7F070074
-			public const int design_tab_text_size_2line = 2131165300;
-			
-			// aapt resource value: 0x7F070075
-			public const int disabled_alpha_material_dark = 2131165301;
-			
-			// aapt resource value: 0x7F070076
-			public const int disabled_alpha_material_light = 2131165302;
-			
-			// aapt resource value: 0x7F070077
-			public const int fastscroll_default_thickness = 2131165303;
-			
-			// aapt resource value: 0x7F070078
-			public const int fastscroll_margin = 2131165304;
-			
-			// aapt resource value: 0x7F070079
-			public const int fastscroll_minimum_range = 2131165305;
-			
-			// aapt resource value: 0x7F07007A
-			public const int fingerprint_icon_size = 2131165306;
-			
-			// aapt resource value: 0x7F07007B
-			public const int fingerprint_status_layout_margin_vertical = 2131165307;
-			
-			// aapt resource value: 0x7F07007C
-			public const int highlight_alpha_material_colored = 2131165308;
-			
-			// aapt resource value: 0x7F07007D
-			public const int highlight_alpha_material_dark = 2131165309;
-			
-			// aapt resource value: 0x7F07007E
-			public const int highlight_alpha_material_light = 2131165310;
-			
-			// aapt resource value: 0x7F07007F
-			public const int hint_alpha_material_dark = 2131165311;
-			
-			// aapt resource value: 0x7F070080
-			public const int hint_alpha_material_light = 2131165312;
-			
-			// aapt resource value: 0x7F070081
-			public const int hint_pressed_alpha_material_dark = 2131165313;
-			
-			// aapt resource value: 0x7F070082
-			public const int hint_pressed_alpha_material_light = 2131165314;
-			
-			// aapt resource value: 0x7F070083
-			public const int item_touch_helper_max_drag_scroll_per_frame = 2131165315;
-			
-			// aapt resource value: 0x7F070084
-			public const int item_touch_helper_swipe_escape_max_velocity = 2131165316;
-			
-			// aapt resource value: 0x7F070085
-			public const int item_touch_helper_swipe_escape_velocity = 2131165317;
-			
-			// aapt resource value: 0x7F070086
-			public const int notification_action_icon_size = 2131165318;
-			
-			// aapt resource value: 0x7F070087
-			public const int notification_action_text_size = 2131165319;
-			
-			// aapt resource value: 0x7F070088
-			public const int notification_big_circle_margin = 2131165320;
-			
-			// aapt resource value: 0x7F070089
-			public const int notification_content_margin_start = 2131165321;
-			
-			// aapt resource value: 0x7F07008A
-			public const int notification_large_icon_height = 2131165322;
-			
-			// aapt resource value: 0x7F07008B
-			public const int notification_large_icon_width = 2131165323;
-			
-			// aapt resource value: 0x7F07008C
-			public const int notification_main_column_padding_top = 2131165324;
-			
-			// aapt resource value: 0x7F07008D
-			public const int notification_media_narrow_margin = 2131165325;
-			
-			// aapt resource value: 0x7F07008E
-			public const int notification_right_icon_size = 2131165326;
-			
-			// aapt resource value: 0x7F07008F
-			public const int notification_right_side_padding_top = 2131165327;
-			
-			// aapt resource value: 0x7F070090
-			public const int notification_small_icon_background_padding = 2131165328;
-			
-			// aapt resource value: 0x7F070091
-			public const int notification_small_icon_size_as_large = 2131165329;
-			
-			// aapt resource value: 0x7F070092
-			public const int notification_subtext_size = 2131165330;
-			
-			// aapt resource value: 0x7F070093
-			public const int notification_top_pad = 2131165331;
-			
-			// aapt resource value: 0x7F070094
-			public const int notification_top_pad_large_text = 2131165332;
-			
-			// aapt resource value: 0x7F070095
-			public const int pickerview_textsize = 2131165333;
-			
-			// aapt resource value: 0x7F070096
-			public const int pickerview_topbar_btn_textsize = 2131165334;
-			
-			// aapt resource value: 0x7F070097
-			public const int pickerview_topbar_height = 2131165335;
-			
-			// aapt resource value: 0x7F070098
-			public const int pickerview_topbar_padding = 2131165336;
-			
-			// aapt resource value: 0x7F070099
-			public const int pickerview_topbar_title_textsize = 2131165337;
-			
-			// aapt resource value: 0x7F07009A
-			public const int tooltip_corner_radius = 2131165338;
-			
-			// aapt resource value: 0x7F07009B
-			public const int tooltip_horizontal_padding = 2131165339;
-			
-			// aapt resource value: 0x7F07009C
-			public const int tooltip_margin = 2131165340;
-			
-			// aapt resource value: 0x7F07009D
-			public const int tooltip_precise_anchor_extra_offset = 2131165341;
-			
-			// aapt resource value: 0x7F07009E
-			public const int tooltip_precise_anchor_threshold = 2131165342;
-			
-			// aapt resource value: 0x7F07009F
-			public const int tooltip_vertical_padding = 2131165343;
-			
-			// aapt resource value: 0x7F0700A0
-			public const int tooltip_y_offset_non_touch = 2131165344;
-			
-			// aapt resource value: 0x7F0700A1
-			public const int tooltip_y_offset_touch = 2131165345;
-			
+
+			// aapt resource value: 0x7f080012
+			public const int abc_action_bar_content_inset_material = 2131230738;
+
+			// aapt resource value: 0x7f080013
+			public const int abc_action_bar_content_inset_with_nav = 2131230739;
+
+			// aapt resource value: 0x7f080007
+			public const int abc_action_bar_default_height_material = 2131230727;
+
+			// aapt resource value: 0x7f080014
+			public const int abc_action_bar_default_padding_end_material = 2131230740;
+
+			// aapt resource value: 0x7f080015
+			public const int abc_action_bar_default_padding_start_material = 2131230741;
+
+			// aapt resource value: 0x7f080017
+			public const int abc_action_bar_elevation_material = 2131230743;
+
+			// aapt resource value: 0x7f080018
+			public const int abc_action_bar_icon_vertical_padding_material = 2131230744;
+
+			// aapt resource value: 0x7f080019
+			public const int abc_action_bar_overflow_padding_end_material = 2131230745;
+
+			// aapt resource value: 0x7f08001a
+			public const int abc_action_bar_overflow_padding_start_material = 2131230746;
+
+			// aapt resource value: 0x7f080008
+			public const int abc_action_bar_progress_bar_size = 2131230728;
+
+			// aapt resource value: 0x7f08001b
+			public const int abc_action_bar_stacked_max_height = 2131230747;
+
+			// aapt resource value: 0x7f08001c
+			public const int abc_action_bar_stacked_tab_max_width = 2131230748;
+
+			// aapt resource value: 0x7f08001d
+			public const int abc_action_bar_subtitle_bottom_margin_material = 2131230749;
+
+			// aapt resource value: 0x7f08001e
+			public const int abc_action_bar_subtitle_top_margin_material = 2131230750;
+
+			// aapt resource value: 0x7f08001f
+			public const int abc_action_button_min_height_material = 2131230751;
+
+			// aapt resource value: 0x7f080020
+			public const int abc_action_button_min_width_material = 2131230752;
+
+			// aapt resource value: 0x7f080021
+			public const int abc_action_button_min_width_overflow_material = 2131230753;
+
+			// aapt resource value: 0x7f080006
+			public const int abc_alert_dialog_button_bar_height = 2131230726;
+
+			// aapt resource value: 0x7f080022
+			public const int abc_button_inset_horizontal_material = 2131230754;
+
+			// aapt resource value: 0x7f080023
+			public const int abc_button_inset_vertical_material = 2131230755;
+
+			// aapt resource value: 0x7f080024
+			public const int abc_button_padding_horizontal_material = 2131230756;
+
+			// aapt resource value: 0x7f080025
+			public const int abc_button_padding_vertical_material = 2131230757;
+
+			// aapt resource value: 0x7f080026
+			public const int abc_cascading_menus_min_smallest_width = 2131230758;
+
+			// aapt resource value: 0x7f08000b
+			public const int abc_config_prefDialogWidth = 2131230731;
+
+			// aapt resource value: 0x7f080027
+			public const int abc_control_corner_material = 2131230759;
+
+			// aapt resource value: 0x7f080028
+			public const int abc_control_inset_material = 2131230760;
+
+			// aapt resource value: 0x7f080029
+			public const int abc_control_padding_material = 2131230761;
+
+			// aapt resource value: 0x7f08000c
+			public const int abc_dialog_fixed_height_major = 2131230732;
+
+			// aapt resource value: 0x7f08000d
+			public const int abc_dialog_fixed_height_minor = 2131230733;
+
+			// aapt resource value: 0x7f08000e
+			public const int abc_dialog_fixed_width_major = 2131230734;
+
+			// aapt resource value: 0x7f08000f
+			public const int abc_dialog_fixed_width_minor = 2131230735;
+
+			// aapt resource value: 0x7f08002a
+			public const int abc_dialog_list_padding_bottom_no_buttons = 2131230762;
+
+			// aapt resource value: 0x7f08002b
+			public const int abc_dialog_list_padding_top_no_title = 2131230763;
+
+			// aapt resource value: 0x7f080010
+			public const int abc_dialog_min_width_major = 2131230736;
+
+			// aapt resource value: 0x7f080011
+			public const int abc_dialog_min_width_minor = 2131230737;
+
+			// aapt resource value: 0x7f08002c
+			public const int abc_dialog_padding_material = 2131230764;
+
+			// aapt resource value: 0x7f08002d
+			public const int abc_dialog_padding_top_material = 2131230765;
+
+			// aapt resource value: 0x7f08002e
+			public const int abc_dialog_title_divider_material = 2131230766;
+
+			// aapt resource value: 0x7f08002f
+			public const int abc_disabled_alpha_material_dark = 2131230767;
+
+			// aapt resource value: 0x7f080030
+			public const int abc_disabled_alpha_material_light = 2131230768;
+
+			// aapt resource value: 0x7f080031
+			public const int abc_dropdownitem_icon_width = 2131230769;
+
+			// aapt resource value: 0x7f080032
+			public const int abc_dropdownitem_text_padding_left = 2131230770;
+
+			// aapt resource value: 0x7f080033
+			public const int abc_dropdownitem_text_padding_right = 2131230771;
+
+			// aapt resource value: 0x7f080034
+			public const int abc_edit_text_inset_bottom_material = 2131230772;
+
+			// aapt resource value: 0x7f080035
+			public const int abc_edit_text_inset_horizontal_material = 2131230773;
+
+			// aapt resource value: 0x7f080036
+			public const int abc_edit_text_inset_top_material = 2131230774;
+
+			// aapt resource value: 0x7f080037
+			public const int abc_floating_window_z = 2131230775;
+
+			// aapt resource value: 0x7f080038
+			public const int abc_list_item_padding_horizontal_material = 2131230776;
+
+			// aapt resource value: 0x7f080039
+			public const int abc_panel_menu_list_width = 2131230777;
+
+			// aapt resource value: 0x7f08003a
+			public const int abc_progress_bar_height_material = 2131230778;
+
+			// aapt resource value: 0x7f08003b
+			public const int abc_search_view_preferred_height = 2131230779;
+
+			// aapt resource value: 0x7f08003c
+			public const int abc_search_view_preferred_width = 2131230780;
+
+			// aapt resource value: 0x7f08003d
+			public const int abc_seekbar_track_background_height_material = 2131230781;
+
+			// aapt resource value: 0x7f08003e
+			public const int abc_seekbar_track_progress_height_material = 2131230782;
+
+			// aapt resource value: 0x7f08003f
+			public const int abc_select_dialog_padding_start_material = 2131230783;
+
+			// aapt resource value: 0x7f080016
+			public const int abc_switch_padding = 2131230742;
+
+			// aapt resource value: 0x7f080040
+			public const int abc_text_size_body_1_material = 2131230784;
+
+			// aapt resource value: 0x7f080041
+			public const int abc_text_size_body_2_material = 2131230785;
+
+			// aapt resource value: 0x7f080042
+			public const int abc_text_size_button_material = 2131230786;
+
+			// aapt resource value: 0x7f080043
+			public const int abc_text_size_caption_material = 2131230787;
+
+			// aapt resource value: 0x7f080044
+			public const int abc_text_size_display_1_material = 2131230788;
+
+			// aapt resource value: 0x7f080045
+			public const int abc_text_size_display_2_material = 2131230789;
+
+			// aapt resource value: 0x7f080046
+			public const int abc_text_size_display_3_material = 2131230790;
+
+			// aapt resource value: 0x7f080047
+			public const int abc_text_size_display_4_material = 2131230791;
+
+			// aapt resource value: 0x7f080048
+			public const int abc_text_size_headline_material = 2131230792;
+
+			// aapt resource value: 0x7f080049
+			public const int abc_text_size_large_material = 2131230793;
+
+			// aapt resource value: 0x7f08004a
+			public const int abc_text_size_medium_material = 2131230794;
+
+			// aapt resource value: 0x7f08004b
+			public const int abc_text_size_menu_header_material = 2131230795;
+
+			// aapt resource value: 0x7f08004c
+			public const int abc_text_size_menu_material = 2131230796;
+
+			// aapt resource value: 0x7f08004d
+			public const int abc_text_size_small_material = 2131230797;
+
+			// aapt resource value: 0x7f08004e
+			public const int abc_text_size_subhead_material = 2131230798;
+
+			// aapt resource value: 0x7f080009
+			public const int abc_text_size_subtitle_material_toolbar = 2131230729;
+
+			// aapt resource value: 0x7f08004f
+			public const int abc_text_size_title_material = 2131230799;
+
+			// aapt resource value: 0x7f08000a
+			public const int abc_text_size_title_material_toolbar = 2131230730;
+
+			// aapt resource value: 0x7f08008b
+			public const int compat_button_inset_horizontal_material = 2131230859;
+
+			// aapt resource value: 0x7f08008c
+			public const int compat_button_inset_vertical_material = 2131230860;
+
+			// aapt resource value: 0x7f08008d
+			public const int compat_button_padding_horizontal_material = 2131230861;
+
+			// aapt resource value: 0x7f08008e
+			public const int compat_button_padding_vertical_material = 2131230862;
+
+			// aapt resource value: 0x7f08008f
+			public const int compat_control_corner_material = 2131230863;
+
+			// aapt resource value: 0x7f080069
+			public const int design_appbar_elevation = 2131230825;
+
+			// aapt resource value: 0x7f08006a
+			public const int design_bottom_navigation_active_item_max_width = 2131230826;
+
+			// aapt resource value: 0x7f08006b
+			public const int design_bottom_navigation_active_text_size = 2131230827;
+
+			// aapt resource value: 0x7f08006c
+			public const int design_bottom_navigation_elevation = 2131230828;
+
+			// aapt resource value: 0x7f08006d
+			public const int design_bottom_navigation_height = 2131230829;
+
+			// aapt resource value: 0x7f08006e
+			public const int design_bottom_navigation_item_max_width = 2131230830;
+
+			// aapt resource value: 0x7f08006f
+			public const int design_bottom_navigation_item_min_width = 2131230831;
+
+			// aapt resource value: 0x7f080070
+			public const int design_bottom_navigation_margin = 2131230832;
+
+			// aapt resource value: 0x7f080071
+			public const int design_bottom_navigation_shadow_height = 2131230833;
+
+			// aapt resource value: 0x7f080072
+			public const int design_bottom_navigation_text_size = 2131230834;
+
+			// aapt resource value: 0x7f080073
+			public const int design_bottom_sheet_modal_elevation = 2131230835;
+
+			// aapt resource value: 0x7f080074
+			public const int design_bottom_sheet_peek_height_min = 2131230836;
+
+			// aapt resource value: 0x7f080075
+			public const int design_fab_border_width = 2131230837;
+
+			// aapt resource value: 0x7f080076
+			public const int design_fab_elevation = 2131230838;
+
+			// aapt resource value: 0x7f080077
+			public const int design_fab_image_size = 2131230839;
+
+			// aapt resource value: 0x7f080078
+			public const int design_fab_size_mini = 2131230840;
+
+			// aapt resource value: 0x7f080079
+			public const int design_fab_size_normal = 2131230841;
+
+			// aapt resource value: 0x7f08007a
+			public const int design_fab_translation_z_pressed = 2131230842;
+
+			// aapt resource value: 0x7f08007b
+			public const int design_navigation_elevation = 2131230843;
+
+			// aapt resource value: 0x7f08007c
+			public const int design_navigation_icon_padding = 2131230844;
+
+			// aapt resource value: 0x7f08007d
+			public const int design_navigation_icon_size = 2131230845;
+
+			// aapt resource value: 0x7f080061
+			public const int design_navigation_max_width = 2131230817;
+
+			// aapt resource value: 0x7f08007e
+			public const int design_navigation_padding_bottom = 2131230846;
+
+			// aapt resource value: 0x7f08007f
+			public const int design_navigation_separator_vertical_padding = 2131230847;
+
+			// aapt resource value: 0x7f080062
+			public const int design_snackbar_action_inline_max_width = 2131230818;
+
+			// aapt resource value: 0x7f080063
+			public const int design_snackbar_background_corner_radius = 2131230819;
+
+			// aapt resource value: 0x7f080080
+			public const int design_snackbar_elevation = 2131230848;
+
+			// aapt resource value: 0x7f080064
+			public const int design_snackbar_extra_spacing_horizontal = 2131230820;
+
+			// aapt resource value: 0x7f080065
+			public const int design_snackbar_max_width = 2131230821;
+
+			// aapt resource value: 0x7f080066
+			public const int design_snackbar_min_width = 2131230822;
+
+			// aapt resource value: 0x7f080081
+			public const int design_snackbar_padding_horizontal = 2131230849;
+
+			// aapt resource value: 0x7f080082
+			public const int design_snackbar_padding_vertical = 2131230850;
+
+			// aapt resource value: 0x7f080067
+			public const int design_snackbar_padding_vertical_2lines = 2131230823;
+
+			// aapt resource value: 0x7f080083
+			public const int design_snackbar_text_size = 2131230851;
+
+			// aapt resource value: 0x7f080084
+			public const int design_tab_max_width = 2131230852;
+
+			// aapt resource value: 0x7f080068
+			public const int design_tab_scrollable_min_width = 2131230824;
+
+			// aapt resource value: 0x7f080085
+			public const int design_tab_text_size = 2131230853;
+
+			// aapt resource value: 0x7f080086
+			public const int design_tab_text_size_2line = 2131230854;
+
+			// aapt resource value: 0x7f080050
+			public const int disabled_alpha_material_dark = 2131230800;
+
+			// aapt resource value: 0x7f080051
+			public const int disabled_alpha_material_light = 2131230801;
+
+			// aapt resource value: 0x7f080000
+			public const int fastscroll_default_thickness = 2131230720;
+
+			// aapt resource value: 0x7f080001
+			public const int fastscroll_margin = 2131230721;
+
+			// aapt resource value: 0x7f080002
+			public const int fastscroll_minimum_range = 2131230722;
+
+			// aapt resource value: 0x7f08009c
+			public const int fingerprint_icon_size = 2131230876;
+
+			// aapt resource value: 0x7f08009b
+			public const int fingerprint_status_layout_margin_vertical = 2131230875;
+
+			// aapt resource value: 0x7f080052
+			public const int highlight_alpha_material_colored = 2131230802;
+
+			// aapt resource value: 0x7f080053
+			public const int highlight_alpha_material_dark = 2131230803;
+
+			// aapt resource value: 0x7f080054
+			public const int highlight_alpha_material_light = 2131230804;
+
+			// aapt resource value: 0x7f080055
+			public const int hint_alpha_material_dark = 2131230805;
+
+			// aapt resource value: 0x7f080056
+			public const int hint_alpha_material_light = 2131230806;
+
+			// aapt resource value: 0x7f080057
+			public const int hint_pressed_alpha_material_dark = 2131230807;
+
+			// aapt resource value: 0x7f080058
+			public const int hint_pressed_alpha_material_light = 2131230808;
+
+			// aapt resource value: 0x7f080003
+			public const int item_touch_helper_max_drag_scroll_per_frame = 2131230723;
+
+			// aapt resource value: 0x7f080004
+			public const int item_touch_helper_swipe_escape_max_velocity = 2131230724;
+
+			// aapt resource value: 0x7f080005
+			public const int item_touch_helper_swipe_escape_velocity = 2131230725;
+
+			// aapt resource value: 0x7f080090
+			public const int notification_action_icon_size = 2131230864;
+
+			// aapt resource value: 0x7f080091
+			public const int notification_action_text_size = 2131230865;
+
+			// aapt resource value: 0x7f080092
+			public const int notification_big_circle_margin = 2131230866;
+
+			// aapt resource value: 0x7f080088
+			public const int notification_content_margin_start = 2131230856;
+
+			// aapt resource value: 0x7f080093
+			public const int notification_large_icon_height = 2131230867;
+
+			// aapt resource value: 0x7f080094
+			public const int notification_large_icon_width = 2131230868;
+
+			// aapt resource value: 0x7f080089
+			public const int notification_main_column_padding_top = 2131230857;
+
+			// aapt resource value: 0x7f08008a
+			public const int notification_media_narrow_margin = 2131230858;
+
+			// aapt resource value: 0x7f080095
+			public const int notification_right_icon_size = 2131230869;
+
+			// aapt resource value: 0x7f080087
+			public const int notification_right_side_padding_top = 2131230855;
+
+			// aapt resource value: 0x7f080096
+			public const int notification_small_icon_background_padding = 2131230870;
+
+			// aapt resource value: 0x7f080097
+			public const int notification_small_icon_size_as_large = 2131230871;
+
+			// aapt resource value: 0x7f080098
+			public const int notification_subtext_size = 2131230872;
+
+			// aapt resource value: 0x7f080099
+			public const int notification_top_pad = 2131230873;
+
+			// aapt resource value: 0x7f08009a
+			public const int notification_top_pad_large_text = 2131230874;
+
+			// aapt resource value: 0x7f08009d
+			public const int pickerview_textsize = 2131230877;
+
+			// aapt resource value: 0x7f08009e
+			public const int pickerview_topbar_btn_textsize = 2131230878;
+
+			// aapt resource value: 0x7f08009f
+			public const int pickerview_topbar_height = 2131230879;
+
+			// aapt resource value: 0x7f0800a0
+			public const int pickerview_topbar_padding = 2131230880;
+
+			// aapt resource value: 0x7f0800a1
+			public const int pickerview_topbar_title_textsize = 2131230881;
+
+			// aapt resource value: 0x7f080059
+			public const int tooltip_corner_radius = 2131230809;
+
+			// aapt resource value: 0x7f08005a
+			public const int tooltip_horizontal_padding = 2131230810;
+
+			// aapt resource value: 0x7f08005b
+			public const int tooltip_margin = 2131230811;
+
+			// aapt resource value: 0x7f08005c
+			public const int tooltip_precise_anchor_extra_offset = 2131230812;
+
+			// aapt resource value: 0x7f08005d
+			public const int tooltip_precise_anchor_threshold = 2131230813;
+
+			// aapt resource value: 0x7f08005e
+			public const int tooltip_vertical_padding = 2131230814;
+
+			// aapt resource value: 0x7f08005f
+			public const int tooltip_y_offset_non_touch = 2131230815;
+
+			// aapt resource value: 0x7f080060
+			public const int tooltip_y_offset_touch = 2131230816;
+
 			static Dimension()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Dimension()
 			{
 			}
 		}
-		
+
 		public partial class Drawable
 		{
-			
-			// aapt resource value: 0x7F080006
-			public const int abc_ab_share_pack_mtrl_alpha = 2131230726;
-			
-			// aapt resource value: 0x7F080007
-			public const int abc_action_bar_item_background_material = 2131230727;
-			
-			// aapt resource value: 0x7F080008
-			public const int abc_btn_borderless_material = 2131230728;
-			
-			// aapt resource value: 0x7F080009
-			public const int abc_btn_check_material = 2131230729;
-			
-			// aapt resource value: 0x7F08000A
-			public const int abc_btn_check_to_on_mtrl_000 = 2131230730;
-			
-			// aapt resource value: 0x7F08000B
-			public const int abc_btn_check_to_on_mtrl_015 = 2131230731;
-			
-			// aapt resource value: 0x7F08000C
-			public const int abc_btn_colored_material = 2131230732;
-			
-			// aapt resource value: 0x7F08000D
-			public const int abc_btn_default_mtrl_shape = 2131230733;
-			
-			// aapt resource value: 0x7F08000E
-			public const int abc_btn_radio_material = 2131230734;
-			
-			// aapt resource value: 0x7F08000F
-			public const int abc_btn_radio_to_on_mtrl_000 = 2131230735;
-			
+
+			// aapt resource value: 0x7f020000
+			public const int abc_ab_share_pack_mtrl_alpha = 2130837504;
+
+			// aapt resource value: 0x7f020001
+			public const int abc_action_bar_item_background_material = 2130837505;
+
+			// aapt resource value: 0x7f020002
+			public const int abc_btn_borderless_material = 2130837506;
+
+			// aapt resource value: 0x7f020003
+			public const int abc_btn_check_material = 2130837507;
+
+			// aapt resource value: 0x7f020004
+			public const int abc_btn_check_to_on_mtrl_000 = 2130837508;
+
 			// aapt resource value: 0x7F080010
 			public const int abc_btn_radio_to_on_mtrl_015 = 2131230736;
-			
+
 			// aapt resource value: 0x7F080011
 			public const int abc_btn_switch_to_on_mtrl_00001 = 2131230737;
-			
+
 			// aapt resource value: 0x7F080012
 			public const int abc_btn_switch_to_on_mtrl_00012 = 2131230738;
-			
+
 			// aapt resource value: 0x7F080013
 			public const int abc_cab_background_internal_bg = 2131230739;
-			
+
 			// aapt resource value: 0x7F080014
 			public const int abc_cab_background_top_material = 2131230740;
-			
+
 			// aapt resource value: 0x7F080015
 			public const int abc_cab_background_top_mtrl_alpha = 2131230741;
-			
+
 			// aapt resource value: 0x7F080016
 			public const int abc_control_background_material = 2131230742;
-			
+
 			// aapt resource value: 0x7F080017
 			public const int abc_dialog_material_background = 2131230743;
-			
+
 			// aapt resource value: 0x7F080018
 			public const int abc_edit_text_material = 2131230744;
-			
+
 			// aapt resource value: 0x7F080019
 			public const int abc_ic_ab_back_material = 2131230745;
-			
+
 			// aapt resource value: 0x7F08001A
 			public const int abc_ic_arrow_drop_right_black_24dp = 2131230746;
-			
+
 			// aapt resource value: 0x7F08001B
 			public const int abc_ic_clear_material = 2131230747;
-			
+
 			// aapt resource value: 0x7F08001C
 			public const int abc_ic_commit_search_api_mtrl_alpha = 2131230748;
-			
+
 			// aapt resource value: 0x7F08001D
 			public const int abc_ic_go_search_api_material = 2131230749;
-			
+
 			// aapt resource value: 0x7F08001E
 			public const int abc_ic_menu_copy_mtrl_am_alpha = 2131230750;
-			
+
 			// aapt resource value: 0x7F08001F
 			public const int abc_ic_menu_cut_mtrl_alpha = 2131230751;
-			
+
 			// aapt resource value: 0x7F080020
 			public const int abc_ic_menu_overflow_material = 2131230752;
-			
+
 			// aapt resource value: 0x7F080021
 			public const int abc_ic_menu_paste_mtrl_am_alpha = 2131230753;
-			
+
 			// aapt resource value: 0x7F080022
 			public const int abc_ic_menu_selectall_mtrl_alpha = 2131230754;
-			
+
 			// aapt resource value: 0x7F080023
 			public const int abc_ic_menu_share_mtrl_alpha = 2131230755;
-			
+
 			// aapt resource value: 0x7F080024
 			public const int abc_ic_search_api_material = 2131230756;
-			
+
 			// aapt resource value: 0x7F080025
 			public const int abc_ic_star_black_16dp = 2131230757;
-			
+
 			// aapt resource value: 0x7F080026
 			public const int abc_ic_star_black_36dp = 2131230758;
-			
+
 			// aapt resource value: 0x7F080027
 			public const int abc_ic_star_black_48dp = 2131230759;
-			
+
 			// aapt resource value: 0x7F080028
 			public const int abc_ic_star_half_black_16dp = 2131230760;
-			
+
 			// aapt resource value: 0x7F080029
 			public const int abc_ic_star_half_black_36dp = 2131230761;
-			
+
 			// aapt resource value: 0x7F08002A
 			public const int abc_ic_star_half_black_48dp = 2131230762;
-			
+
 			// aapt resource value: 0x7F08002B
 			public const int abc_ic_voice_search_api_material = 2131230763;
-			
+
 			// aapt resource value: 0x7F08002C
 			public const int abc_item_background_holo_dark = 2131230764;
-			
+
 			// aapt resource value: 0x7F08002D
 			public const int abc_item_background_holo_light = 2131230765;
-			
+
 			// aapt resource value: 0x7F08002E
 			public const int abc_list_divider_mtrl_alpha = 2131230766;
-			
+
 			// aapt resource value: 0x7F08002F
 			public const int abc_list_focused_holo = 2131230767;
-			
+
 			// aapt resource value: 0x7F080030
 			public const int abc_list_longpressed_holo = 2131230768;
-			
+
 			// aapt resource value: 0x7F080031
 			public const int abc_list_pressed_holo_dark = 2131230769;
-			
+
 			// aapt resource value: 0x7F080032
 			public const int abc_list_pressed_holo_light = 2131230770;
-			
+
 			// aapt resource value: 0x7F080033
 			public const int abc_list_selector_background_transition_holo_dark = 2131230771;
-			
+
 			// aapt resource value: 0x7F080034
 			public const int abc_list_selector_background_transition_holo_light = 2131230772;
-			
+
 			// aapt resource value: 0x7F080035
 			public const int abc_list_selector_disabled_holo_dark = 2131230773;
-			
+
 			// aapt resource value: 0x7F080036
 			public const int abc_list_selector_disabled_holo_light = 2131230774;
-			
+
 			// aapt resource value: 0x7F080037
 			public const int abc_list_selector_holo_dark = 2131230775;
-			
+
 			// aapt resource value: 0x7F080038
 			public const int abc_list_selector_holo_light = 2131230776;
-			
+
 			// aapt resource value: 0x7F080039
 			public const int abc_menu_hardkey_panel_mtrl_mult = 2131230777;
-			
+
 			// aapt resource value: 0x7F08003A
 			public const int abc_popup_background_mtrl_mult = 2131230778;
-			
+
 			// aapt resource value: 0x7F08003B
 			public const int abc_ratingbar_indicator_material = 2131230779;
-			
+
 			// aapt resource value: 0x7F08003C
 			public const int abc_ratingbar_material = 2131230780;
-			
+
 			// aapt resource value: 0x7F08003D
 			public const int abc_ratingbar_small_material = 2131230781;
-			
+
 			// aapt resource value: 0x7F08003E
 			public const int abc_scrubber_control_off_mtrl_alpha = 2131230782;
-			
+
 			// aapt resource value: 0x7F08003F
 			public const int abc_scrubber_control_to_pressed_mtrl_000 = 2131230783;
-			
+
 			// aapt resource value: 0x7F080040
 			public const int abc_scrubber_control_to_pressed_mtrl_005 = 2131230784;
-			
+
 			// aapt resource value: 0x7F080041
 			public const int abc_scrubber_primary_mtrl_alpha = 2131230785;
-			
+
 			// aapt resource value: 0x7F080042
 			public const int abc_scrubber_track_mtrl_alpha = 2131230786;
-			
+
 			// aapt resource value: 0x7F080043
 			public const int abc_seekbar_thumb_material = 2131230787;
-			
+
 			// aapt resource value: 0x7F080044
 			public const int abc_seekbar_tick_mark_material = 2131230788;
-			
+
 			// aapt resource value: 0x7F080045
 			public const int abc_seekbar_track_material = 2131230789;
-			
+
 			// aapt resource value: 0x7F080046
 			public const int abc_spinner_mtrl_am_alpha = 2131230790;
-			
+
 			// aapt resource value: 0x7F080047
 			public const int abc_spinner_textfield_background_material = 2131230791;
-			
+
 			// aapt resource value: 0x7F080048
 			public const int abc_switch_thumb_material = 2131230792;
-			
+
 			// aapt resource value: 0x7F080049
 			public const int abc_switch_track_mtrl_alpha = 2131230793;
-			
+
 			// aapt resource value: 0x7F08004A
 			public const int abc_tab_indicator_material = 2131230794;
-			
+
 			// aapt resource value: 0x7F08004B
 			public const int abc_tab_indicator_mtrl_alpha = 2131230795;
-			
+
 			// aapt resource value: 0x7F080053
 			public const int abc_textfield_activated_mtrl_alpha = 2131230803;
-			
+
 			// aapt resource value: 0x7F080054
 			public const int abc_textfield_default_mtrl_alpha = 2131230804;
-			
+
 			// aapt resource value: 0x7F080055
 			public const int abc_textfield_search_activated_mtrl_alpha = 2131230805;
-			
+
 			// aapt resource value: 0x7F080056
 			public const int abc_textfield_search_default_mtrl_alpha = 2131230806;
-			
+
 			// aapt resource value: 0x7F080057
 			public const int abc_textfield_search_material = 2131230807;
-			
+
 			// aapt resource value: 0x7F08004C
 			public const int abc_text_cursor_material = 2131230796;
-			
+
 			// aapt resource value: 0x7F08004D
 			public const int abc_text_select_handle_left_mtrl_dark = 2131230797;
-			
+
 			// aapt resource value: 0x7F08004E
 			public const int abc_text_select_handle_left_mtrl_light = 2131230798;
-			
+
 			// aapt resource value: 0x7F08004F
 			public const int abc_text_select_handle_middle_mtrl_dark = 2131230799;
-			
+
 			// aapt resource value: 0x7F080050
 			public const int abc_text_select_handle_middle_mtrl_light = 2131230800;
-			
+
 			// aapt resource value: 0x7F080051
 			public const int abc_text_select_handle_right_mtrl_dark = 2131230801;
-			
+
 			// aapt resource value: 0x7F080052
 			public const int abc_text_select_handle_right_mtrl_light = 2131230802;
-			
+
 			// aapt resource value: 0x7F080058
 			public const int abc_vector_test = 2131230808;
-			
+
 			// aapt resource value: 0x7F080059
 			public const int avd_hide_password = 2131230809;
-			
+
 			// aapt resource value: 0x7F08005A
 			public const int avd_show_password = 2131230810;
-			
+
 			// aapt resource value: 0x7F08005B
 			public const int design_bottom_navigation_item_background = 2131230811;
-			
+
 			// aapt resource value: 0x7F08005C
 			public const int design_fab_background = 2131230812;
-			
+
 			// aapt resource value: 0x7F08005D
 			public const int design_ic_visibility = 2131230813;
-			
-			// aapt resource value: 0x7F08005E
-			public const int design_ic_visibility_off = 2131230814;
-			
-			// aapt resource value: 0x7F08005F
-			public const int design_password_eye = 2131230815;
-			
-			// aapt resource value: 0x7F080060
-			public const int design_snackbar_background = 2131230816;
-			
-			// aapt resource value: 0x7F080061
-			public const int fingerprint_draw_off = 2131230817;
-			
-			// aapt resource value: 0x7F080062
-			public const int fingerprint_draw_off_animation = 2131230818;
-			
-			// aapt resource value: 0x7F080063
-			public const int fingerprint_draw_on = 2131230819;
-			
-			// aapt resource value: 0x7F080064
-			public const int fingerprint_draw_on_animation = 2131230820;
-			
-			// aapt resource value: 0x7F080065
-			public const int fingerprint_error = 2131230821;
-			
-			// aapt resource value: 0x7F080066
-			public const int fingerprint_error_off = 2131230822;
-			
-			// aapt resource value: 0x7F080067
-			public const int fingerprint_error_off_animation = 2131230823;
-			
-			// aapt resource value: 0x7F080068
-			public const int fingerprint_error_on = 2131230824;
-			
-			// aapt resource value: 0x7F080069
-			public const int fingerprint_error_on_animation = 2131230825;
-			
-			// aapt resource value: 0x7F08006A
-			public const int fingerprint_error_state_to_fp = 2131230826;
-			
-			// aapt resource value: 0x7F08006B
-			public const int fingerprint_error_state_to_fp_animation = 2131230827;
-			
-			// aapt resource value: 0x7F08006C
-			public const int fingerprint_fingerprint = 2131230828;
-			
-			// aapt resource value: 0x7F08006D
-			public const int fingerprint_fp_to_error_state = 2131230829;
-			
-			// aapt resource value: 0x7F08006E
-			public const int fingerprint_fp_to_error_state_animation = 2131230830;
-			
-			// aapt resource value: 0x7F08006F
-			public const int gd_btn_shape_app_b = 2131230831;
-			
-			// aapt resource value: 0x7F080070
-			public const int gd_btn_shape_app_g = 2131230832;
-			
-			// aapt resource value: 0x7F080071
-			public const int gd_btn_shape_app_w = 2131230833;
-			
-			// aapt resource value: 0x7F080072
-			public const int gd_btn_shape_shadow_w = 2131230834;
-			
-			// aapt resource value: 0x7F080073
-			public const int gd_click_effect_select = 2131230835;
-			
-			// aapt resource value: 0x7F080086
-			public const int Icon = 2131230854;
-			
-			// aapt resource value: 0x7F080074
-			public const int ic_gdmap_add = 2131230836;
-			
-			// aapt resource value: 0x7F080075
-			public const int ic_gdmap_back = 2131230837;
-			
-			// aapt resource value: 0x7F080076
-			public const int ic_gdmap_delete = 2131230838;
-			
-			// aapt resource value: 0x7F080077
-			public const int ic_gdmap_home = 2131230839;
-			
-			// aapt resource value: 0x7F080078
-			public const int ic_gdmap_mylocation = 2131230840;
-			
-			// aapt resource value: 0x7F080079
-			public const int ic_gdmap_now = 2131230841;
-			
-			// aapt resource value: 0x7F08007A
-			public const int ic_gdmap_search = 2131230842;
-			
-			// aapt resource value: 0x7F08007B
-			public const int ic_gdmap_zoom_out = 2131230843;
-			
-			// aapt resource value: 0x7F08007C
-			public const int ic_gps_point = 2131230844;
-			
-			// aapt resource value: 0x7F08007D
-			public const int ic_wd_arc_scale_bg = 2131230845;
-			
-			// aapt resource value: 0x7F08007E
-			public const int ic_wd_curtain_bg_top = 2131230846;
-			
-			// aapt resource value: 0x7F08007F
-			public const int ic_wd_curtain_h_bg = 2131230847;
-			
-			// aapt resource value: 0x7F080080
-			public const int ic_wd_curtain_h_open = 2131230848;
-			
-			// aapt resource value: 0x7F080081
-			public const int ic_wd_curtain_h_progress = 2131230849;
-			
-			// aapt resource value: 0x7F080082
-			public const int ic_wd_curtain_h_top = 2131230850;
-			
-			// aapt resource value: 0x7F080083
-			public const int ic_wd_curtain_open = 2131230851;
-			
-			// aapt resource value: 0x7F080084
-			public const int ic_wd_curtain_roll_bg = 2131230852;
-			
-			// aapt resource value: 0x7F080085
-			public const int ic_wd_curtain_roll_progress = 2131230853;
-			
-			// aapt resource value: 0x7F080087
-			public const int Loading = 2131230855;
-			
-			// aapt resource value: 0x7F080088
-			public const int navigation_empty_icon = 2131230856;
-			
-			// aapt resource value: 0x7F080089
-			public const int notification_action_background = 2131230857;
-			
-			// aapt resource value: 0x7F08008A
-			public const int notification_bg = 2131230858;
-			
-			// aapt resource value: 0x7F08008B
-			public const int notification_bg_low = 2131230859;
-			
-			// aapt resource value: 0x7F08008C
-			public const int notification_bg_low_normal = 2131230860;
-			
-			// aapt resource value: 0x7F08008D
-			public const int notification_bg_low_pressed = 2131230861;
-			
-			// aapt resource value: 0x7F08008E
-			public const int notification_bg_normal = 2131230862;
-			
-			// aapt resource value: 0x7F08008F
-			public const int notification_bg_normal_pressed = 2131230863;
-			
-			// aapt resource value: 0x7F080090
-			public const int notification_icon_background = 2131230864;
-			
-			// aapt resource value: 0x7F080091
-			public const int notification_template_icon_bg = 2131230865;
-			
-			// aapt resource value: 0x7F080092
-			public const int notification_template_icon_low_bg = 2131230866;
-			
-			// aapt resource value: 0x7F080093
-			public const int notification_tile_bg = 2131230867;
-			
-			// aapt resource value: 0x7F080094
-			public const int notify_panel_notification_icon_bg = 2131230868;
-			
-			// aapt resource value: 0x7F080095
-			public const int selector_pickerview_btn = 2131230869;
-			
-			// aapt resource value: 0x7F080096
-			public const int tooltip_frame_dark = 2131230870;
-			
-			// aapt resource value: 0x7F080097
-			public const int tooltip_frame_light = 2131230871;
-			
+
+			// aapt resource value: 0x7f020053
+			public const int avd_hide_password = 2130837587;
+
+			// aapt resource value: 0x7f020092
+			public const int avd_hide_password_1 = 2130837650;
+
+			// aapt resource value: 0x7f020093
+			public const int avd_hide_password_2 = 2130837651;
+
+			// aapt resource value: 0x7f020094
+			public const int avd_hide_password_3 = 2130837652;
+
+			// aapt resource value: 0x7f020054
+			public const int avd_show_password = 2130837588;
+
+			// aapt resource value: 0x7f020095
+			public const int avd_show_password_1 = 2130837653;
+
+			// aapt resource value: 0x7f020096
+			public const int avd_show_password_2 = 2130837654;
+
+			// aapt resource value: 0x7f020097
+			public const int avd_show_password_3 = 2130837655;
+
+			// aapt resource value: 0x7f020055
+			public const int design_bottom_navigation_item_background = 2130837589;
+
+			// aapt resource value: 0x7f020056
+			public const int design_fab_background = 2130837590;
+
+			// aapt resource value: 0x7f020057
+			public const int design_ic_visibility = 2130837591;
+
+			// aapt resource value: 0x7f020058
+			public const int design_ic_visibility_off = 2130837592;
+
+			// aapt resource value: 0x7f020059
+			public const int design_password_eye = 2130837593;
+
+			// aapt resource value: 0x7f02005a
+			public const int design_snackbar_background = 2130837594;
+
+			// aapt resource value: 0x7f02005b
+			public const int fingerprint_draw_off = 2130837595;
+
+			// aapt resource value: 0x7f02005c
+			public const int fingerprint_draw_off_animation = 2130837596;
+
+			// aapt resource value: 0x7f02005d
+			public const int fingerprint_draw_on = 2130837597;
+
+			// aapt resource value: 0x7f02005e
+			public const int fingerprint_draw_on_animation = 2130837598;
+
+			// aapt resource value: 0x7f02005f
+			public const int fingerprint_error = 2130837599;
+
+			// aapt resource value: 0x7f020060
+			public const int fingerprint_error_off = 2130837600;
+
+			// aapt resource value: 0x7f020061
+			public const int fingerprint_error_off_animation = 2130837601;
+
+			// aapt resource value: 0x7f020062
+			public const int fingerprint_error_on = 2130837602;
+
+			// aapt resource value: 0x7f020063
+			public const int fingerprint_error_on_animation = 2130837603;
+
+			// aapt resource value: 0x7f020064
+			public const int fingerprint_error_state_to_fp = 2130837604;
+
+			// aapt resource value: 0x7f020065
+			public const int fingerprint_error_state_to_fp_animation = 2130837605;
+
+			// aapt resource value: 0x7f020066
+			public const int fingerprint_fingerprint = 2130837606;
+
+			// aapt resource value: 0x7f020067
+			public const int fingerprint_fp_to_error_state = 2130837607;
+
+			// aapt resource value: 0x7f020068
+			public const int fingerprint_fp_to_error_state_animation = 2130837608;
+
+			// aapt resource value: 0x7f020069
+			public const int gd_btn_shape_app_b = 2130837609;
+
+			// aapt resource value: 0x7f02006a
+			public const int gd_btn_shape_app_g = 2130837610;
+
+			// aapt resource value: 0x7f02006b
+			public const int gd_btn_shape_app_w = 2130837611;
+
+			// aapt resource value: 0x7f02006c
+			public const int gd_btn_shape_shadow_w = 2130837612;
+
+			// aapt resource value: 0x7f02006d
+			public const int gd_click_effect_select = 2130837613;
+
+			// aapt resource value: 0x7f02006e
+			public const int ic_gdmap_add = 2130837614;
+
+			// aapt resource value: 0x7f02006f
+			public const int ic_gdmap_back = 2130837615;
+
+			// aapt resource value: 0x7f020070
+			public const int ic_gdmap_delete = 2130837616;
+
+			// aapt resource value: 0x7f020071
+			public const int ic_gdmap_home = 2130837617;
+
+			// aapt resource value: 0x7f020072
+			public const int ic_gdmap_mylocation = 2130837618;
+
+			// aapt resource value: 0x7f020073
+			public const int ic_gdmap_now = 2130837619;
+
+			// aapt resource value: 0x7f020074
+			public const int ic_gdmap_search = 2130837620;
+
+			// aapt resource value: 0x7f020075
+			public const int ic_gdmap_zoom_out = 2130837621;
+
+			// aapt resource value: 0x7f020076
+			public const int ic_gps_point = 2130837622;
+
+			// aapt resource value: 0x7f020077
+			public const int ic_wd_arc_scale_bg = 2130837623;
+
+			// aapt resource value: 0x7f020078
+			public const int ic_wd_curtain_bg_top = 2130837624;
+
+			// aapt resource value: 0x7f020079
+			public const int ic_wd_curtain_h_bg = 2130837625;
+
+			// aapt resource value: 0x7f02007a
+			public const int ic_wd_curtain_h_open = 2130837626;
+
+			// aapt resource value: 0x7f02007b
+			public const int ic_wd_curtain_h_progress = 2130837627;
+
+			// aapt resource value: 0x7f02007c
+			public const int ic_wd_curtain_h_top = 2130837628;
+
+			// aapt resource value: 0x7f02007d
+			public const int ic_wd_curtain_open = 2130837629;
+
+			// aapt resource value: 0x7f02007e
+			public const int ic_wd_curtain_roll_bg = 2130837630;
+
+			// aapt resource value: 0x7f02007f
+			public const int ic_wd_curtain_roll_progress = 2130837631;
+
+			// aapt resource value: 0x7f020080
+			public const int Icon = 2130837632;
+
+			// aapt resource value: 0x7f020081
+			public const int Loading = 2130837633;
+
+			// aapt resource value: 0x7f020082
+			public const int navigation_empty_icon = 2130837634;
+
+			// aapt resource value: 0x7f020083
+			public const int notification_action_background = 2130837635;
+
+			// aapt resource value: 0x7f020084
+			public const int notification_bg = 2130837636;
+
+			// aapt resource value: 0x7f020085
+			public const int notification_bg_low = 2130837637;
+
+			// aapt resource value: 0x7f020086
+			public const int notification_bg_low_normal = 2130837638;
+
+			// aapt resource value: 0x7f020087
+			public const int notification_bg_low_pressed = 2130837639;
+
+			// aapt resource value: 0x7f020088
+			public const int notification_bg_normal = 2130837640;
+
+			// aapt resource value: 0x7f020089
+			public const int notification_bg_normal_pressed = 2130837641;
+
+			// aapt resource value: 0x7f02008a
+			public const int notification_icon_background = 2130837642;
+
+			// aapt resource value: 0x7f020090
+			public const int notification_template_icon_bg = 2130837648;
+
+			// aapt resource value: 0x7f020091
+			public const int notification_template_icon_low_bg = 2130837649;
+
+			// aapt resource value: 0x7f02008b
+			public const int notification_tile_bg = 2130837643;
+
+			// aapt resource value: 0x7f02008c
+			public const int notify_panel_notification_icon_bg = 2130837644;
+
+			// aapt resource value: 0x7f02008d
+			public const int selector_pickerview_btn = 2130837645;
+
+			// aapt resource value: 0x7f02008e
+			public const int tooltip_frame_dark = 2130837646;
+
+			// aapt resource value: 0x7f02008f
+			public const int tooltip_frame_light = 2130837647;
+
 			static Drawable()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Drawable()
 			{
 			}
 		}
-		
+
 		public partial class Id
 		{
-			
-			// aapt resource value: 0x7F090015
-			public const int action0 = 2131296277;
-			
-			// aapt resource value: 0x7F090027
-			public const int actions = 2131296295;
-			
-			// aapt resource value: 0x7F090016
-			public const int action_bar = 2131296278;
-			
-			// aapt resource value: 0x7F090017
-			public const int action_bar_activity_content = 2131296279;
-			
-			// aapt resource value: 0x7F090018
-			public const int action_bar_container = 2131296280;
-			
-			// aapt resource value: 0x7F090019
-			public const int action_bar_root = 2131296281;
-			
-			// aapt resource value: 0x7F09001A
-			public const int action_bar_spinner = 2131296282;
-			
-			// aapt resource value: 0x7F09001B
-			public const int action_bar_subtitle = 2131296283;
-			
-			// aapt resource value: 0x7F09001C
-			public const int action_bar_title = 2131296284;
-			
-			// aapt resource value: 0x7F09001D
-			public const int action_container = 2131296285;
-			
-			// aapt resource value: 0x7F09001E
-			public const int action_context_bar = 2131296286;
-			
-			// aapt resource value: 0x7F09001F
-			public const int action_divider = 2131296287;
-			
-			// aapt resource value: 0x7F090020
-			public const int action_image = 2131296288;
-			
-			// aapt resource value: 0x7F090021
-			public const int action_menu_divider = 2131296289;
-			
-			// aapt resource value: 0x7F090022
-			public const int action_menu_presenter = 2131296290;
-			
-			// aapt resource value: 0x7F090023
-			public const int action_mode_bar = 2131296291;
-			
-			// aapt resource value: 0x7F090024
-			public const int action_mode_bar_stub = 2131296292;
-			
-			// aapt resource value: 0x7F090025
-			public const int action_mode_close_button = 2131296293;
-			
-			// aapt resource value: 0x7F090026
-			public const int action_text = 2131296294;
-			
-			// aapt resource value: 0x7F090028
-			public const int activity_chooser_view_content = 2131296296;
-			
-			// aapt resource value: 0x7F090029
-			public const int add = 2131296297;
-			
-			// aapt resource value: 0x7F09002A
-			public const int alertTitle = 2131296298;
-			
-			// aapt resource value: 0x7F09002B
-			public const int all = 2131296299;
-			
-			// aapt resource value: 0x7F090000
-			public const int ALT = 2131296256;
-			
-			// aapt resource value: 0x7F09002C
-			public const int always = 2131296300;
-			
-			// aapt resource value: 0x7F09002D
-			public const int async = 2131296301;
-			
-			// aapt resource value: 0x7F09002E
-			public const int auto = 2131296302;
-			
-			// aapt resource value: 0x7F09002F
-			public const int beginning = 2131296303;
-			
-			// aapt resource value: 0x7F090030
-			public const int blocking = 2131296304;
-			
-			// aapt resource value: 0x7F090031
-			public const int bottom = 2131296305;
-			
-			// aapt resource value: 0x7F090032
-			public const int btnCancel = 2131296306;
-			
-			// aapt resource value: 0x7F090033
-			public const int btnSubmit = 2131296307;
-			
-			// aapt resource value: 0x7F090034
-			public const int buttonPanel = 2131296308;
-			
-			// aapt resource value: 0x7F090035
-			public const int cancel_action = 2131296309;
-			
-			// aapt resource value: 0x7F090036
-			public const int center = 2131296310;
-			
-			// aapt resource value: 0x7F090037
-			public const int center_horizontal = 2131296311;
-			
-			// aapt resource value: 0x7F090038
-			public const int center_vertical = 2131296312;
-			
-			// aapt resource value: 0x7F090039
-			public const int checkbox = 2131296313;
-			
-			// aapt resource value: 0x7F09003A
-			public const int chronometer = 2131296314;
-			
-			// aapt resource value: 0x7F09003B
-			public const int clip_horizontal = 2131296315;
-			
-			// aapt resource value: 0x7F09003C
-			public const int clip_vertical = 2131296316;
-			
-			// aapt resource value: 0x7F09003D
-			public const int collapseActionView = 2131296317;
-			
-			// aapt resource value: 0x7F09003E
-			public const int container = 2131296318;
-			
-			// aapt resource value: 0x7F09003F
-			public const int contentFrame = 2131296319;
-			
-			// aapt resource value: 0x7F090040
-			public const int contentPanel = 2131296320;
-			
-			// aapt resource value: 0x7F090041
-			public const int content_container = 2131296321;
-			
-			// aapt resource value: 0x7F090042
-			public const int coordinator = 2131296322;
-			
-			// aapt resource value: 0x7F090001
-			public const int CTRL = 2131296257;
-			
-			// aapt resource value: 0x7F090002
-			public const int Custom = 2131296258;
-			
-			// aapt resource value: 0x7F090043
-			public const int custom = 2131296323;
-			
-			// aapt resource value: 0x7F090003
-			public const int CustomLabel = 2131296259;
-			
-			// aapt resource value: 0x7F090044
-			public const int customPanel = 2131296324;
-			
-			// aapt resource value: 0x7F090045
-			public const int day = 2131296325;
-			
-			// aapt resource value: 0x7F090046
-			public const int decor_content_parent = 2131296326;
-			
-			// aapt resource value: 0x7F090047
-			public const int default_activity_button = 2131296327;
-			
-			// aapt resource value: 0x7F090048
-			public const int description = 2131296328;
-			
-			// aapt resource value: 0x7F090049
-			public const int design_bottom_sheet = 2131296329;
-			
-			// aapt resource value: 0x7F09004A
-			public const int design_menu_item_action_area = 2131296330;
-			
-			// aapt resource value: 0x7F09004B
-			public const int design_menu_item_action_area_stub = 2131296331;
-			
-			// aapt resource value: 0x7F09004C
-			public const int design_menu_item_text = 2131296332;
-			
-			// aapt resource value: 0x7F09004D
-			public const int design_navigation_view = 2131296333;
-			
-			// aapt resource value: 0x7F09004E
-			public const int disableHome = 2131296334;
-			
-			// aapt resource value: 0x7F09004F
-			public const int edit_query = 2131296335;
-			
-			// aapt resource value: 0x7F090050
-			public const int end = 2131296336;
-			
-			// aapt resource value: 0x7F090051
-			public const int end_padder = 2131296337;
-			
-			// aapt resource value: 0x7F090052
-			public const int enterAlways = 2131296338;
-			
-			// aapt resource value: 0x7F090053
-			public const int enterAlwaysCollapsed = 2131296339;
-			
-			// aapt resource value: 0x7F090054
-			public const int exitUntilCollapsed = 2131296340;
-			
-			// aapt resource value: 0x7F090056
-			public const int expanded_menu = 2131296342;
-			
-			// aapt resource value: 0x7F090055
-			public const int expand_activities_button = 2131296341;
-			
-			// aapt resource value: 0x7F090057
-			public const int fill = 2131296343;
-			
-			// aapt resource value: 0x7F090004
-			public const int FILL = 2131296260;
-			
-			// aapt resource value: 0x7F090058
-			public const int fill_horizontal = 2131296344;
-			
-			// aapt resource value: 0x7F090005
-			public const int FILL_STROKE = 2131296261;
-			
-			// aapt resource value: 0x7F090059
-			public const int fill_vertical = 2131296345;
-			
-			// aapt resource value: 0x7F09005A
-			public const int fingerprint_icon = 2131296346;
-			
-			// aapt resource value: 0x7F09005B
-			public const int @fixed = 2131296347;
-			
-			// aapt resource value: 0x7F090007
-			public const int FixedBehind = 2131296263;
-			
-			// aapt resource value: 0x7F090008
-			public const int FixedFront = 2131296264;
-			
-			// aapt resource value: 0x7F09005C
-			public const int forever = 2131296348;
-			
-			// aapt resource value: 0x7F090006
-			public const int FUNCTION = 2131296262;
-			
-			// aapt resource value: 0x7F09005D
-			public const int gd_btn_back = 2131296349;
-			
-			// aapt resource value: 0x7F09005E
-			public const int gd_btn_myLocation = 2131296350;
-			
-			// aapt resource value: 0x7F09005F
-			public const int gd_btn_save = 2131296351;
-			
-			// aapt resource value: 0x7F090060
-			public const int gd_img_search_delete = 2131296352;
-			
-			// aapt resource value: 0x7F090061
-			public const int gd_ll_myhome = 2131296353;
-			
-			// aapt resource value: 0x7F090062
-			public const int gd_ll_search = 2131296354;
-			
-			// aapt resource value: 0x7F090063
-			public const int gd_mapView = 2131296355;
-			
-			// aapt resource value: 0x7F090064
-			public const int gd_rl_topview = 2131296356;
-			
-			// aapt resource value: 0x7F090065
-			public const int gd_tv_activity_title = 2131296357;
-			
-			// aapt resource value: 0x7F090066
-			public const int gd_tv_radius = 2131296358;
-			
-			// aapt resource value: 0x7F090067
-			public const int gd_tv_search_title = 2131296359;
-			
-			// aapt resource value: 0x7F090068
-			public const int hdl_gallery_rootView = 2131296360;
-			
-			// aapt resource value: 0x7F090069
-			public const int hdl_gallery_viewPager = 2131296361;
-			
-			// aapt resource value: 0x7F09006A
-			public const int hdl_options1 = 2131296362;
-			
-			// aapt resource value: 0x7F09006B
-			public const int hdl_options2 = 2131296363;
-			
-			// aapt resource value: 0x7F09006C
-			public const int hdl_options3 = 2131296364;
-			
-			// aapt resource value: 0x7F09006D
-			public const int hdl_pickerview_ll = 2131296365;
-			
-			// aapt resource value: 0x7F09006E
-			public const int home = 2131296366;
-			
-			// aapt resource value: 0x7F09006F
-			public const int homeAsUp = 2131296367;
-			
-			// aapt resource value: 0x7F090070
-			public const int hour = 2131296368;
-			
-			// aapt resource value: 0x7F090071
-			public const int icon = 2131296369;
-			
-			// aapt resource value: 0x7F090072
-			public const int icon_group = 2131296370;
-			
-			// aapt resource value: 0x7F090073
-			public const int ifRoom = 2131296371;
-			
-			// aapt resource value: 0x7F090074
-			public const int image = 2131296372;
-			
-			// aapt resource value: 0x7F090075
-			public const int info = 2131296373;
-			
-			// aapt resource value: 0x7F090076
-			public const int italic = 2131296374;
-			
-			// aapt resource value: 0x7F090077
-			public const int item_touch_helper_previous_elevation = 2131296375;
-			
-			// aapt resource value: 0x7F090078
-			public const int largeLabel = 2131296376;
-			
-			// aapt resource value: 0x7F090079
-			public const int left = 2131296377;
-			
-			// aapt resource value: 0x7F09007A
-			public const int line1 = 2131296378;
-			
-			// aapt resource value: 0x7F09007B
-			public const int line3 = 2131296379;
-			
-			// aapt resource value: 0x7F09007C
-			public const int listMode = 2131296380;
-			
-			// aapt resource value: 0x7F09007D
-			public const int list_item = 2131296381;
-			
-			// aapt resource value: 0x7F09007E
-			public const int masked = 2131296382;
-			
-			// aapt resource value: 0x7F09000A
-			public const int MatchLayout = 2131296266;
-			
-			// aapt resource value: 0x7F09007F
-			public const int media_actions = 2131296383;
-			
-			// aapt resource value: 0x7F090080
-			public const int message = 2131296384;
-			
-			// aapt resource value: 0x7F090009
-			public const int META = 2131296265;
-			
-			// aapt resource value: 0x7F090081
-			public const int middle = 2131296385;
-			
-			// aapt resource value: 0x7F090082
-			public const int min = 2131296386;
-			
-			// aapt resource value: 0x7F090083
-			public const int mini = 2131296387;
-			
-			// aapt resource value: 0x7F090084
-			public const int month = 2131296388;
-			
-			// aapt resource value: 0x7F090085
-			public const int multiply = 2131296389;
-			
-			// aapt resource value: 0x7F090086
-			public const int myButton = 2131296390;
-			
-			// aapt resource value: 0x7F090087
-			public const int navigation_header_container = 2131296391;
-			
-			// aapt resource value: 0x7F090088
-			public const int never = 2131296392;
-			
-			// aapt resource value: 0x7F090089
-			public const int none = 2131296393;
-			
-			// aapt resource value: 0x7F09008A
-			public const int normal = 2131296394;
-			
-			// aapt resource value: 0x7F09000B
-			public const int Notice = 2131296267;
-			
-			// aapt resource value: 0x7F09008B
-			public const int notification_background = 2131296395;
-			
-			// aapt resource value: 0x7F09008C
-			public const int notification_main_column = 2131296396;
-			
-			// aapt resource value: 0x7F09008D
-			public const int notification_main_column_container = 2131296397;
-			
-			// aapt resource value: 0x7F09008E
-			public const int options1 = 2131296398;
-			
-			// aapt resource value: 0x7F09008F
-			public const int options2 = 2131296399;
-			
-			// aapt resource value: 0x7F090090
-			public const int options3 = 2131296400;
-			
-			// aapt resource value: 0x7F090091
-			public const int optionspicker = 2131296401;
-			
-			// aapt resource value: 0x7F090092
-			public const int outmost_container = 2131296402;
-			
-			// aapt resource value: 0x7F090093
-			public const int parallax = 2131296403;
-			
-			// aapt resource value: 0x7F090094
-			public const int parentPanel = 2131296404;
-			
-			// aapt resource value: 0x7F09000C
-			public const int Password = 2131296268;
-			
-			// aapt resource value: 0x7F09000D
-			public const int PasswordLabel = 2131296269;
-			
-			// aapt resource value: 0x7F090095
-			public const int pin = 2131296405;
-			
-			// aapt resource value: 0x7F090096
-			public const int progress_circular = 2131296406;
-			
-			// aapt resource value: 0x7F090097
-			public const int progress_horizontal = 2131296407;
-			
-			// aapt resource value: 0x7F090098
-			public const int radio = 2131296408;
-			
-			// aapt resource value: 0x7F090099
-			public const int right = 2131296409;
-			
-			// aapt resource value: 0x7F09009A
-			public const int right_icon = 2131296410;
-			
-			// aapt resource value: 0x7F09009B
-			public const int right_side = 2131296411;
-			
-			// aapt resource value: 0x7F09009C
-			public const int rv_topbar = 2131296412;
-			
-			// aapt resource value: 0x7F090013
-			public const int Scale = 2131296275;
-			
-			// aapt resource value: 0x7F09009D
-			public const int screen = 2131296413;
-			
-			// aapt resource value: 0x7F09009E
-			public const int scroll = 2131296414;
-			
-			// aapt resource value: 0x7F0900A2
-			public const int scrollable = 2131296418;
-			
-			// aapt resource value: 0x7F09009F
-			public const int scrollIndicatorDown = 2131296415;
-			
-			// aapt resource value: 0x7F0900A0
-			public const int scrollIndicatorUp = 2131296416;
-			
-			// aapt resource value: 0x7F0900A1
-			public const int scrollView = 2131296417;
-			
-			// aapt resource value: 0x7F0900A3
-			public const int search_badge = 2131296419;
-			
-			// aapt resource value: 0x7F0900A4
-			public const int search_bar = 2131296420;
-			
-			// aapt resource value: 0x7F0900A5
-			public const int search_button = 2131296421;
-			
-			// aapt resource value: 0x7F0900A6
-			public const int search_close_btn = 2131296422;
-			
-			// aapt resource value: 0x7F0900A7
-			public const int search_edit_frame = 2131296423;
-			
-			// aapt resource value: 0x7F0900A8
-			public const int search_go_btn = 2131296424;
-			
-			// aapt resource value: 0x7F0900A9
-			public const int search_mag_icon = 2131296425;
-			
-			// aapt resource value: 0x7F0900AA
-			public const int search_plate = 2131296426;
-			
-			// aapt resource value: 0x7F0900AB
-			public const int search_src_text = 2131296427;
-			
-			// aapt resource value: 0x7F0900AC
-			public const int search_voice_btn = 2131296428;
-			
-			// aapt resource value: 0x7F0900AD
-			public const int second = 2131296429;
-			
-			// aapt resource value: 0x7F0900AE
-			public const int select_dialog_listview = 2131296430;
-			
-			// aapt resource value: 0x7F09000E
-			public const int SHIFT = 2131296270;
-			
-			// aapt resource value: 0x7F0900AF
-			public const int shortcut = 2131296431;
-			
-			// aapt resource value: 0x7F0900B0
-			public const int showCustom = 2131296432;
-			
-			// aapt resource value: 0x7F0900B1
-			public const int showHome = 2131296433;
-			
-			// aapt resource value: 0x7F0900B2
-			public const int showTitle = 2131296434;
-			
-			// aapt resource value: 0x7F0900B3
-			public const int smallLabel = 2131296435;
-			
-			// aapt resource value: 0x7F0900B4
-			public const int snackbar_action = 2131296436;
-			
-			// aapt resource value: 0x7F0900B5
-			public const int snackbar_text = 2131296437;
-			
-			// aapt resource value: 0x7F0900B6
-			public const int snap = 2131296438;
-			
-			// aapt resource value: 0x7F0900B7
-			public const int spacer = 2131296439;
-			
-			// aapt resource value: 0x7F0900B8
-			public const int split_action_bar = 2131296440;
-			
-			// aapt resource value: 0x7F0900B9
-			public const int src_atop = 2131296441;
-			
-			// aapt resource value: 0x7F0900BA
-			public const int src_in = 2131296442;
-			
-			// aapt resource value: 0x7F0900BB
-			public const int src_over = 2131296443;
-			
-			// aapt resource value: 0x7F0900BC
-			public const int srl_classics_arrow = 2131296444;
-			
-			// aapt resource value: 0x7F0900BD
-			public const int srl_classics_center = 2131296445;
-			
-			// aapt resource value: 0x7F0900BE
-			public const int srl_classics_progress = 2131296446;
-			
-			// aapt resource value: 0x7F0900BF
-			public const int srl_classics_title = 2131296447;
-			
-			// aapt resource value: 0x7F0900C0
-			public const int srl_classics_update = 2131296448;
-			
-			// aapt resource value: 0x7F09000F
-			public const int SSID = 2131296271;
-			
-			// aapt resource value: 0x7F090010
-			public const int SSIDLabel = 2131296272;
-			
-			// aapt resource value: 0x7F0900C1
-			public const int start = 2131296449;
-			
-			// aapt resource value: 0x7F0900C2
-			public const int startV1 = 2131296450;
-			
-			// aapt resource value: 0x7F0900C3
-			public const int startV1V4 = 2131296451;
-			
-			// aapt resource value: 0x7F0900C4
-			public const int startV4 = 2131296452;
-			
-			// aapt resource value: 0x7F0900C5
-			public const int status = 2131296453;
-			
-			// aapt resource value: 0x7F0900C6
-			public const int status_bar_latest_event_content = 2131296454;
-			
-			// aapt resource value: 0x7F0900C7
-			public const int stop = 2131296455;
-			
-			// aapt resource value: 0x7F090011
-			public const int STROKE = 2131296273;
-			
-			// aapt resource value: 0x7F0900C8
-			public const int submenuarrow = 2131296456;
-			
-			// aapt resource value: 0x7F0900C9
-			public const int submit_area = 2131296457;
-			
-			// aapt resource value: 0x7F0900CA
-			public const int subtitle = 2131296458;
-			
-			// aapt resource value: 0x7F090012
-			public const int SYM = 2131296274;
-			
-			// aapt resource value: 0x7F0900CB
-			public const int tabMode = 2131296459;
-			
-			// aapt resource value: 0x7F0900CC
-			public const int text = 2131296460;
-			
-			// aapt resource value: 0x7F0900CD
-			public const int text2 = 2131296461;
-			
-			// aapt resource value: 0x7F0900D1
-			public const int textinput_counter = 2131296465;
-			
-			// aapt resource value: 0x7F0900D2
-			public const int textinput_error = 2131296466;
-			
-			// aapt resource value: 0x7F0900CE
-			public const int textSpacerNoButtons = 2131296462;
-			
-			// aapt resource value: 0x7F0900CF
-			public const int textSpacerNoTitle = 2131296463;
-			
-			// aapt resource value: 0x7F0900D0
-			public const int text_input_password_toggle = 2131296464;
-			
-			// aapt resource value: 0x7F0900D3
-			public const int time = 2131296467;
-			
-			// aapt resource value: 0x7F0900D4
-			public const int timepicker = 2131296468;
-			
-			// aapt resource value: 0x7F0900D5
-			public const int title = 2131296469;
-			
-			// aapt resource value: 0x7F0900D6
-			public const int titleDividerNoCustom = 2131296470;
-			
-			// aapt resource value: 0x7F0900D7
-			public const int title_template = 2131296471;
-			
-			// aapt resource value: 0x7F0900D8
-			public const int top = 2131296472;
-			
-			// aapt resource value: 0x7F0900D9
-			public const int topPanel = 2131296473;
-			
-			// aapt resource value: 0x7F0900DA
-			public const int touch_outside = 2131296474;
-			
-			// aapt resource value: 0x7F090014
-			public const int Translate = 2131296276;
-			
-			// aapt resource value: 0x7F0900DB
-			public const int tvTitle = 2131296475;
-			
-			// aapt resource value: 0x7F0900DC
-			public const int tv_zxing_back = 2131296476;
-			
-			// aapt resource value: 0x7F0900DD
-			public const int tv_zxing_flash = 2131296477;
-			
-			// aapt resource value: 0x7F0900DE
-			public const int tv_zxing_scan = 2131296478;
-			
-			// aapt resource value: 0x7F0900DF
-			public const int uniform = 2131296479;
-			
-			// aapt resource value: 0x7F0900E0
-			public const int up = 2131296480;
-			
-			// aapt resource value: 0x7F0900E1
-			public const int useLogo = 2131296481;
-			
-			// aapt resource value: 0x7F0900E2
-			public const int view_offset_helper = 2131296482;
-			
-			// aapt resource value: 0x7F0900E3
-			public const int visible = 2131296483;
-			
-			// aapt resource value: 0x7F0900E4
-			public const int withText = 2131296484;
-			
-			// aapt resource value: 0x7F0900E5
-			public const int wrap_content = 2131296485;
-			
-			// aapt resource value: 0x7F0900E6
-			public const int year = 2131296486;
-			
+
+			// aapt resource value: 0x7f090027
+			public const int ALT = 2131296295;
+
+			// aapt resource value: 0x7f090028
+			public const int CTRL = 2131296296;
+
+			// aapt resource value: 0x7f090054
+			public const int FILL = 2131296340;
+
+			// aapt resource value: 0x7f090055
+			public const int FILL_STROKE = 2131296341;
+
+			// aapt resource value: 0x7f090029
+			public const int FUNCTION = 2131296297;
+
+			// aapt resource value: 0x7f09004f
+			public const int FixedBehind = 2131296335;
+
+			// aapt resource value: 0x7f090050
+			public const int FixedFront = 2131296336;
+
+			// aapt resource value: 0x7f09002a
+			public const int META = 2131296298;
+
+			// aapt resource value: 0x7f090051
+			public const int MatchLayout = 2131296337;
+
+			// aapt resource value: 0x7f09002b
+			public const int SHIFT = 2131296299;
+
+			// aapt resource value: 0x7f090056
+			public const int STROKE = 2131296342;
+
+			// aapt resource value: 0x7f09002c
+			public const int SYM = 2131296300;
+
+			// aapt resource value: 0x7f090052
+			public const int Scale = 2131296338;
+
+			// aapt resource value: 0x7f090053
+			public const int Translate = 2131296339;
+
+			// aapt resource value: 0x7f0900c0
+			public const int action0 = 2131296448;
+
+			// aapt resource value: 0x7f090079
+			public const int action_bar = 2131296377;
+
+			// aapt resource value: 0x7f090001
+			public const int action_bar_activity_content = 2131296257;
+
+			// aapt resource value: 0x7f090078
+			public const int action_bar_container = 2131296376;
+
+			// aapt resource value: 0x7f090074
+			public const int action_bar_root = 2131296372;
+
+			// aapt resource value: 0x7f090002
+			public const int action_bar_spinner = 2131296258;
+
+			// aapt resource value: 0x7f090058
+			public const int action_bar_subtitle = 2131296344;
+
+			// aapt resource value: 0x7f090057
+			public const int action_bar_title = 2131296343;
+
+			// aapt resource value: 0x7f0900bd
+			public const int action_container = 2131296445;
+
+			// aapt resource value: 0x7f09007a
+			public const int action_context_bar = 2131296378;
+
+			// aapt resource value: 0x7f0900c4
+			public const int action_divider = 2131296452;
+
+			// aapt resource value: 0x7f0900be
+			public const int action_image = 2131296446;
+
+			// aapt resource value: 0x7f090003
+			public const int action_menu_divider = 2131296259;
+
+			// aapt resource value: 0x7f090004
+			public const int action_menu_presenter = 2131296260;
+
+			// aapt resource value: 0x7f090076
+			public const int action_mode_bar = 2131296374;
+
+			// aapt resource value: 0x7f090075
+			public const int action_mode_bar_stub = 2131296373;
+
+			// aapt resource value: 0x7f090059
+			public const int action_mode_close_button = 2131296345;
+
+			// aapt resource value: 0x7f0900bf
+			public const int action_text = 2131296447;
+
+			// aapt resource value: 0x7f0900cd
+			public const int actions = 2131296461;
+
+			// aapt resource value: 0x7f09005a
+			public const int activity_chooser_view_content = 2131296346;
+
+			// aapt resource value: 0x7f090021
+			public const int add = 2131296289;
+
+			// aapt resource value: 0x7f09006d
+			public const int alertTitle = 2131296365;
+
+			// aapt resource value: 0x7f090047
+			public const int all = 2131296327;
+
+			// aapt resource value: 0x7f09002d
+			public const int always = 2131296301;
+
+			// aapt resource value: 0x7f09004b
+			public const int async = 2131296331;
+
+			// aapt resource value: 0x7f090039
+			public const int auto = 2131296313;
+
+			// aapt resource value: 0x7f090024
+			public const int beginning = 2131296292;
+
+			// aapt resource value: 0x7f09004c
+			public const int blocking = 2131296332;
+
+			// aapt resource value: 0x7f090032
+			public const int bottom = 2131296306;
+
+			// aapt resource value: 0x7f0900a8
+			public const int btnCancel = 2131296424;
+
+			// aapt resource value: 0x7f0900aa
+			public const int btnSubmit = 2131296426;
+
+			// aapt resource value: 0x7f090060
+			public const int buttonPanel = 2131296352;
+
+			// aapt resource value: 0x7f0900c1
+			public const int cancel_action = 2131296449;
+
+			// aapt resource value: 0x7f09003a
+			public const int center = 2131296314;
+
+			// aapt resource value: 0x7f09003b
+			public const int center_horizontal = 2131296315;
+
+			// aapt resource value: 0x7f09003c
+			public const int center_vertical = 2131296316;
+
+			// aapt resource value: 0x7f090070
+			public const int checkbox = 2131296368;
+
+			// aapt resource value: 0x7f0900c9
+			public const int chronometer = 2131296457;
+
+			// aapt resource value: 0x7f090043
+			public const int clip_horizontal = 2131296323;
+
+			// aapt resource value: 0x7f090044
+			public const int clip_vertical = 2131296324;
+
+			// aapt resource value: 0x7f09002e
+			public const int collapseActionView = 2131296302;
+
+			// aapt resource value: 0x7f09008e
+			public const int container = 2131296398;
+
+			// aapt resource value: 0x7f0900d9
+			public const int contentFrame = 2131296473;
+
+			// aapt resource value: 0x7f090063
+			public const int contentPanel = 2131296355;
+
+			// aapt resource value: 0x7f0900ac
+			public const int content_container = 2131296428;
+
+			// aapt resource value: 0x7f09008f
+			public const int coordinator = 2131296399;
+
+			// aapt resource value: 0x7f09006a
+			public const int custom = 2131296362;
+
+			// aapt resource value: 0x7f090069
+			public const int customPanel = 2131296361;
+
+			// aapt resource value: 0x7f0900b8
+			public const int day = 2131296440;
+
+			// aapt resource value: 0x7f090077
+			public const int decor_content_parent = 2131296375;
+
+			// aapt resource value: 0x7f09005d
+			public const int default_activity_button = 2131296349;
+
+			// aapt resource value: 0x7f090089
+			public const int description = 2131296393;
+
+			// aapt resource value: 0x7f090091
+			public const int design_bottom_sheet = 2131296401;
+
+			// aapt resource value: 0x7f090098
+			public const int design_menu_item_action_area = 2131296408;
+
+			// aapt resource value: 0x7f090097
+			public const int design_menu_item_action_area_stub = 2131296407;
+
+			// aapt resource value: 0x7f090096
+			public const int design_menu_item_text = 2131296406;
+
+			// aapt resource value: 0x7f090095
+			public const int design_navigation_view = 2131296405;
+
+			// aapt resource value: 0x7f090015
+			public const int disableHome = 2131296277;
+
+			// aapt resource value: 0x7f09007b
+			public const int edit_query = 2131296379;
+
+			// aapt resource value: 0x7f090025
+			public const int end = 2131296293;
+
+			// aapt resource value: 0x7f0900cf
+			public const int end_padder = 2131296463;
+
+			// aapt resource value: 0x7f090034
+			public const int enterAlways = 2131296308;
+
+			// aapt resource value: 0x7f090035
+			public const int enterAlwaysCollapsed = 2131296309;
+
+			// aapt resource value: 0x7f090036
+			public const int exitUntilCollapsed = 2131296310;
+
+			// aapt resource value: 0x7f09005b
+			public const int expand_activities_button = 2131296347;
+
+			// aapt resource value: 0x7f09006f
+			public const int expanded_menu = 2131296367;
+
+			// aapt resource value: 0x7f090045
+			public const int fill = 2131296325;
+
+			// aapt resource value: 0x7f090046
+			public const int fill_horizontal = 2131296326;
+
+			// aapt resource value: 0x7f09003d
+			public const int fill_vertical = 2131296317;
+
+			// aapt resource value: 0x7f09008a
+			public const int fingerprint_icon = 2131296394;
+
+			// aapt resource value: 0x7f090049
+			public const int @fixed = 2131296329;
+
+			// aapt resource value: 0x7f09004d
+			public const int forever = 2131296333;
+
+			// aapt resource value: 0x7f09009d
+			public const int gd_btn_back = 2131296413;
+
+			// aapt resource value: 0x7f0900a6
+			public const int gd_btn_myLocation = 2131296422;
+
+			// aapt resource value: 0x7f0900a5
+			public const int gd_btn_save = 2131296421;
+
+			// aapt resource value: 0x7f0900a2
+			public const int gd_img_search_delete = 2131296418;
+
+			// aapt resource value: 0x7f0900a4
+			public const int gd_ll_myhome = 2131296420;
+
+			// aapt resource value: 0x7f0900a0
+			public const int gd_ll_search = 2131296416;
+
+			// aapt resource value: 0x7f09009f
+			public const int gd_mapView = 2131296415;
+
+			// aapt resource value: 0x7f09009c
+			public const int gd_rl_topview = 2131296412;
+
+			// aapt resource value: 0x7f09009e
+			public const int gd_tv_activity_title = 2131296414;
+
+			// aapt resource value: 0x7f0900a3
+			public const int gd_tv_radius = 2131296419;
+
+			// aapt resource value: 0x7f0900a1
+			public const int gd_tv_search_title = 2131296417;
+
+			// aapt resource value: 0x7f09009a
+			public const int hdl_gallery_rootView = 2131296410;
+
+			// aapt resource value: 0x7f09009b
+			public const int hdl_gallery_viewPager = 2131296411;
+
+			// aapt resource value: 0x7f0900ae
+			public const int hdl_options1 = 2131296430;
+
+			// aapt resource value: 0x7f0900af
+			public const int hdl_options2 = 2131296431;
+
+			// aapt resource value: 0x7f0900b0
+			public const int hdl_options3 = 2131296432;
+
+			// aapt resource value: 0x7f0900ad
+			public const int hdl_pickerview_ll = 2131296429;
+
+			// aapt resource value: 0x7f090005
+			public const int home = 2131296261;
+
+			// aapt resource value: 0x7f090016
+			public const int homeAsUp = 2131296278;
+
+			// aapt resource value: 0x7f0900b9
+			public const int hour = 2131296441;
+
+			// aapt resource value: 0x7f09005f
+			public const int icon = 2131296351;
+
+			// aapt resource value: 0x7f0900ce
+			public const int icon_group = 2131296462;
+
+			// aapt resource value: 0x7f09002f
+			public const int ifRoom = 2131296303;
+
+			// aapt resource value: 0x7f09005c
+			public const int image = 2131296348;
+
+			// aapt resource value: 0x7f0900ca
+			public const int info = 2131296458;
+
+			// aapt resource value: 0x7f09004e
+			public const int italic = 2131296334;
+
+			// aapt resource value: 0x7f090000
+			public const int item_touch_helper_previous_elevation = 2131296256;
+
+			// aapt resource value: 0x7f09008d
+			public const int largeLabel = 2131296397;
+
+			// aapt resource value: 0x7f09003e
+			public const int left = 2131296318;
+
+			// aapt resource value: 0x7f09000d
+			public const int line1 = 2131296269;
+
+			// aapt resource value: 0x7f09000e
+			public const int line3 = 2131296270;
+
+			// aapt resource value: 0x7f090012
+			public const int listMode = 2131296274;
+
+			// aapt resource value: 0x7f09005e
+			public const int list_item = 2131296350;
+
+			// aapt resource value: 0x7f0900db
+			public const int masked = 2131296475;
+
+			// aapt resource value: 0x7f0900c3
+			public const int media_actions = 2131296451;
+
+			// aapt resource value: 0x7f0900d5
+			public const int message = 2131296469;
+
+			// aapt resource value: 0x7f090026
+			public const int middle = 2131296294;
+
+			// aapt resource value: 0x7f0900ba
+			public const int min = 2131296442;
+
+			// aapt resource value: 0x7f090048
+			public const int mini = 2131296328;
+
+			// aapt resource value: 0x7f0900b7
+			public const int month = 2131296439;
+
+			// aapt resource value: 0x7f09001c
+			public const int multiply = 2131296284;
+
+			// aapt resource value: 0x7f0900bc
+			public const int myButton = 2131296444;
+
+			// aapt resource value: 0x7f090094
+			public const int navigation_header_container = 2131296404;
+
+			// aapt resource value: 0x7f090030
+			public const int never = 2131296304;
+
+			// aapt resource value: 0x7f090017
+			public const int none = 2131296279;
+
+			// aapt resource value: 0x7f090013
+			public const int normal = 2131296275;
+
+			// aapt resource value: 0x7f0900cc
+			public const int notification_background = 2131296460;
+
+			// aapt resource value: 0x7f0900c6
+			public const int notification_main_column = 2131296454;
+
+			// aapt resource value: 0x7f0900c5
+			public const int notification_main_column_container = 2131296453;
+
+			// aapt resource value: 0x7f0900b2
+			public const int options1 = 2131296434;
+
+			// aapt resource value: 0x7f0900b3
+			public const int options2 = 2131296435;
+
+			// aapt resource value: 0x7f0900b4
+			public const int options3 = 2131296436;
+
+			// aapt resource value: 0x7f0900b1
+			public const int optionspicker = 2131296433;
+
+			// aapt resource value: 0x7f0900ab
+			public const int outmost_container = 2131296427;
+
+			// aapt resource value: 0x7f090041
+			public const int parallax = 2131296321;
+
+			// aapt resource value: 0x7f090062
+			public const int parentPanel = 2131296354;
+
+			// aapt resource value: 0x7f090042
+			public const int pin = 2131296322;
+
+			// aapt resource value: 0x7f090006
+			public const int progress_circular = 2131296262;
+
+			// aapt resource value: 0x7f090007
+			public const int progress_horizontal = 2131296263;
+
+			// aapt resource value: 0x7f090072
+			public const int radio = 2131296370;
+
+			// aapt resource value: 0x7f09003f
+			public const int right = 2131296319;
+
+			// aapt resource value: 0x7f0900cb
+			public const int right_icon = 2131296459;
+
+			// aapt resource value: 0x7f0900c7
+			public const int right_side = 2131296455;
+
+			// aapt resource value: 0x7f0900a7
+			public const int rv_topbar = 2131296423;
+
+			// aapt resource value: 0x7f09001d
+			public const int screen = 2131296285;
+
+			// aapt resource value: 0x7f090037
+			public const int scroll = 2131296311;
+
+			// aapt resource value: 0x7f090068
+			public const int scrollIndicatorDown = 2131296360;
+
+			// aapt resource value: 0x7f090064
+			public const int scrollIndicatorUp = 2131296356;
+
+			// aapt resource value: 0x7f090065
+			public const int scrollView = 2131296357;
+
+			// aapt resource value: 0x7f09004a
+			public const int scrollable = 2131296330;
+
+			// aapt resource value: 0x7f09007d
+			public const int search_badge = 2131296381;
+
+			// aapt resource value: 0x7f09007c
+			public const int search_bar = 2131296380;
+
+			// aapt resource value: 0x7f09007e
+			public const int search_button = 2131296382;
+
+			// aapt resource value: 0x7f090083
+			public const int search_close_btn = 2131296387;
+
+			// aapt resource value: 0x7f09007f
+			public const int search_edit_frame = 2131296383;
+
+			// aapt resource value: 0x7f090085
+			public const int search_go_btn = 2131296389;
+
+			// aapt resource value: 0x7f090080
+			public const int search_mag_icon = 2131296384;
+
+			// aapt resource value: 0x7f090081
+			public const int search_plate = 2131296385;
+
+			// aapt resource value: 0x7f090082
+			public const int search_src_text = 2131296386;
+
+			// aapt resource value: 0x7f090086
+			public const int search_voice_btn = 2131296390;
+
+			// aapt resource value: 0x7f0900bb
+			public const int second = 2131296443;
+
+			// aapt resource value: 0x7f090087
+			public const int select_dialog_listview = 2131296391;
+
+			// aapt resource value: 0x7f090071
+			public const int shortcut = 2131296369;
+
+			// aapt resource value: 0x7f090018
+			public const int showCustom = 2131296280;
+
+			// aapt resource value: 0x7f090019
+			public const int showHome = 2131296281;
+
+			// aapt resource value: 0x7f09001a
+			public const int showTitle = 2131296282;
+
+			// aapt resource value: 0x7f09008c
+			public const int smallLabel = 2131296396;
+
+			// aapt resource value: 0x7f090093
+			public const int snackbar_action = 2131296403;
+
+			// aapt resource value: 0x7f090092
+			public const int snackbar_text = 2131296402;
+
+			// aapt resource value: 0x7f090038
+			public const int snap = 2131296312;
+
+			// aapt resource value: 0x7f090061
+			public const int spacer = 2131296353;
+
+			// aapt resource value: 0x7f090008
+			public const int split_action_bar = 2131296264;
+
+			// aapt resource value: 0x7f09001e
+			public const int src_atop = 2131296286;
+
+			// aapt resource value: 0x7f09001f
+			public const int src_in = 2131296287;
+
+			// aapt resource value: 0x7f090020
+			public const int src_over = 2131296288;
+
+			// aapt resource value: 0x7f0900d0
+			public const int srl_classics_arrow = 2131296464;
+
+			// aapt resource value: 0x7f0900d3
+			public const int srl_classics_center = 2131296467;
+
+			// aapt resource value: 0x7f0900d2
+			public const int srl_classics_progress = 2131296466;
+
+			// aapt resource value: 0x7f0900d1
+			public const int srl_classics_title = 2131296465;
+
+			// aapt resource value: 0x7f0900d4
+			public const int srl_classics_update = 2131296468;
+
+			// aapt resource value: 0x7f090040
+			public const int start = 2131296320;
+
+			// aapt resource value: 0x7f09008b
+			public const int status = 2131296395;
+
+			// aapt resource value: 0x7f0900c2
+			public const int status_bar_latest_event_content = 2131296450;
+
+			// aapt resource value: 0x7f090073
+			public const int submenuarrow = 2131296371;
+
+			// aapt resource value: 0x7f090084
+			public const int submit_area = 2131296388;
+
+			// aapt resource value: 0x7f090088
+			public const int subtitle = 2131296392;
+
+			// aapt resource value: 0x7f090014
+			public const int tabMode = 2131296276;
+
+			// aapt resource value: 0x7f09000f
+			public const int text = 2131296271;
+
+			// aapt resource value: 0x7f090010
+			public const int text2 = 2131296272;
+
+			// aapt resource value: 0x7f090067
+			public const int textSpacerNoButtons = 2131296359;
+
+			// aapt resource value: 0x7f090066
+			public const int textSpacerNoTitle = 2131296358;
+
+			// aapt resource value: 0x7f090099
+			public const int text_input_password_toggle = 2131296409;
+
+			// aapt resource value: 0x7f09000a
+			public const int textinput_counter = 2131296266;
+
+			// aapt resource value: 0x7f09000b
+			public const int textinput_error = 2131296267;
+
+			// aapt resource value: 0x7f0900c8
+			public const int time = 2131296456;
+
+			// aapt resource value: 0x7f0900b5
+			public const int timepicker = 2131296437;
+
+			// aapt resource value: 0x7f090011
+			public const int title = 2131296273;
+
+			// aapt resource value: 0x7f09006e
+			public const int titleDividerNoCustom = 2131296366;
+
+			// aapt resource value: 0x7f09006c
+			public const int title_template = 2131296364;
+
+			// aapt resource value: 0x7f090033
+			public const int top = 2131296307;
+
+			// aapt resource value: 0x7f09006b
+			public const int topPanel = 2131296363;
+
+			// aapt resource value: 0x7f090090
+			public const int touch_outside = 2131296400;
+
+			// aapt resource value: 0x7f0900a9
+			public const int tvTitle = 2131296425;
+
+			// aapt resource value: 0x7f0900d7
+			public const int tv_zxing_back = 2131296471;
+
+			// aapt resource value: 0x7f0900d8
+			public const int tv_zxing_flash = 2131296472;
+
+			// aapt resource value: 0x7f0900d6
+			public const int tv_zxing_scan = 2131296470;
+
+			// aapt resource value: 0x7f090022
+			public const int uniform = 2131296290;
+
+			// aapt resource value: 0x7f090009
+			public const int up = 2131296265;
+
+			// aapt resource value: 0x7f09001b
+			public const int useLogo = 2131296283;
+
+			// aapt resource value: 0x7f09000c
+			public const int view_offset_helper = 2131296268;
+
+			// aapt resource value: 0x7f0900da
+			public const int visible = 2131296474;
+
+			// aapt resource value: 0x7f090031
+			public const int withText = 2131296305;
+
+			// aapt resource value: 0x7f090023
+			public const int wrap_content = 2131296291;
+
+			// aapt resource value: 0x7f0900b6
+			public const int year = 2131296438;
+
 			static Id()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Id()
 			{
 			}
 		}
-		
+
 		public partial class Integer
 		{
-			
-			// aapt resource value: 0x7F0A0000
-			public const int abc_config_activityDefaultDur = 2131361792;
-			
-			// aapt resource value: 0x7F0A0001
-			public const int abc_config_activityShortDur = 2131361793;
-			
-			// aapt resource value: 0x7F0A0002
-			public const int animation_default_duration = 2131361794;
-			
-			// aapt resource value: 0x7F0A0003
-			public const int app_bar_elevation_anim_duration = 2131361795;
-			
-			// aapt resource value: 0x7F0A0004
-			public const int bottom_sheet_slide_duration = 2131361796;
-			
-			// aapt resource value: 0x7F0A0005
-			public const int cancel_button_image_alpha = 2131361797;
-			
-			// aapt resource value: 0x7F0A0006
-			public const int config_tooltipAnimTime = 2131361798;
-			
-			// aapt resource value: 0x7F0A0007
-			public const int design_snackbar_text_max_lines = 2131361799;
-			
-			// aapt resource value: 0x7F0A0008
-			public const int hide_password_duration = 2131361800;
-			
-			// aapt resource value: 0x7F0A0009
-			public const int show_password_duration = 2131361801;
-			
-			// aapt resource value: 0x7F0A000A
-			public const int status_bar_notification_info_maxnum = 2131361802;
-			
+
+			// aapt resource value: 0x7f0e0000
+			public const int abc_config_activityDefaultDur = 2131623936;
+
+			// aapt resource value: 0x7f0e0001
+			public const int abc_config_activityShortDur = 2131623937;
+
+			// aapt resource value: 0x7f0e000a
+			public const int animation_default_duration = 2131623946;
+
+			// aapt resource value: 0x7f0e0005
+			public const int app_bar_elevation_anim_duration = 2131623941;
+
+			// aapt resource value: 0x7f0e0006
+			public const int bottom_sheet_slide_duration = 2131623942;
+
+			// aapt resource value: 0x7f0e0002
+			public const int cancel_button_image_alpha = 2131623938;
+
+			// aapt resource value: 0x7f0e0003
+			public const int config_tooltipAnimTime = 2131623939;
+
+			// aapt resource value: 0x7f0e0004
+			public const int design_snackbar_text_max_lines = 2131623940;
+
+			// aapt resource value: 0x7f0e0007
+			public const int hide_password_duration = 2131623943;
+
+			// aapt resource value: 0x7f0e0008
+			public const int show_password_duration = 2131623944;
+
+			// aapt resource value: 0x7f0e0009
+			public const int status_bar_notification_info_maxnum = 2131623945;
+
 			static Integer()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Integer()
 			{
 			}
 		}
-		
+
 		public partial class Layout
 		{
-			
+
 			// aapt resource value: 0x7F0B0000
 			public const int abc_action_bar_title_item = 2131427328;
-			
+
 			// aapt resource value: 0x7F0B0001
 			public const int abc_action_bar_up_container = 2131427329;
-			
+
 			// aapt resource value: 0x7F0B0002
 			public const int abc_action_bar_view_list_nav_layout = 2131427330;
-			
+
 			// aapt resource value: 0x7F0B0003
 			public const int abc_action_menu_item_layout = 2131427331;
-			
+
 			// aapt resource value: 0x7F0B0004
 			public const int abc_action_menu_layout = 2131427332;
-			
+
 			// aapt resource value: 0x7F0B0005
 			public const int abc_action_mode_bar = 2131427333;
-			
+
 			// aapt resource value: 0x7F0B0006
 			public const int abc_action_mode_close_item_material = 2131427334;
-			
+
 			// aapt resource value: 0x7F0B0007
 			public const int abc_activity_chooser_view = 2131427335;
-			
+
 			// aapt resource value: 0x7F0B0008
 			public const int abc_activity_chooser_view_list_item = 2131427336;
-			
+
 			// aapt resource value: 0x7F0B0009
 			public const int abc_alert_dialog_button_bar_material = 2131427337;
-			
+
 			// aapt resource value: 0x7F0B000A
 			public const int abc_alert_dialog_material = 2131427338;
-			
+
 			// aapt resource value: 0x7F0B000B
 			public const int abc_alert_dialog_title_material = 2131427339;
-			
+
 			// aapt resource value: 0x7F0B000C
 			public const int abc_dialog_title_material = 2131427340;
-			
+
 			// aapt resource value: 0x7F0B000D
 			public const int abc_expanded_menu_layout = 2131427341;
-			
+
 			// aapt resource value: 0x7F0B000E
 			public const int abc_list_menu_item_checkbox = 2131427342;
-			
+
 			// aapt resource value: 0x7F0B000F
 			public const int abc_list_menu_item_icon = 2131427343;
-			
+
 			// aapt resource value: 0x7F0B0010
 			public const int abc_list_menu_item_layout = 2131427344;
-			
+
 			// aapt resource value: 0x7F0B0011
 			public const int abc_list_menu_item_radio = 2131427345;
-			
+
 			// aapt resource value: 0x7F0B0012
 			public const int abc_popup_menu_header_item_layout = 2131427346;
-			
+
 			// aapt resource value: 0x7F0B0013
 			public const int abc_popup_menu_item_layout = 2131427347;
-			
+
 			// aapt resource value: 0x7F0B0014
 			public const int abc_screen_content_include = 2131427348;
-			
+
 			// aapt resource value: 0x7F0B0015
 			public const int abc_screen_simple = 2131427349;
-			
+
 			// aapt resource value: 0x7F0B0016
 			public const int abc_screen_simple_overlay_action_mode = 2131427350;
-			
+
 			// aapt resource value: 0x7F0B0017
 			public const int abc_screen_toolbar = 2131427351;
-			
+
 			// aapt resource value: 0x7F0B0018
 			public const int abc_search_dropdown_item_icons_2line = 2131427352;
-			
+
 			// aapt resource value: 0x7F0B0019
 			public const int abc_search_view = 2131427353;
-			
+
 			// aapt resource value: 0x7F0B001A
 			public const int abc_select_dialog_material = 2131427354;
-			
+
 			// aapt resource value: 0x7F0B001B
 			public const int activity_elian = 2131427355;
-			
+
 			// aapt resource value: 0x7F0B001C
 			public const int biometric_prompt_dialog_content = 2131427356;
-			
+
 			// aapt resource value: 0x7F0B001D
 			public const int design_bottom_navigation_item = 2131427357;
-			
+
 			// aapt resource value: 0x7F0B001E
 			public const int design_bottom_sheet_dialog = 2131427358;
-			
+
 			// aapt resource value: 0x7F0B001F
 			public const int design_layout_snackbar = 2131427359;
-			
+
 			// aapt resource value: 0x7F0B0020
 			public const int design_layout_snackbar_include = 2131427360;
-			
+
 			// aapt resource value: 0x7F0B0021
 			public const int design_layout_tab_icon = 2131427361;
-			
+
 			// aapt resource value: 0x7F0B0022
 			public const int design_layout_tab_text = 2131427362;
-			
+
 			// aapt resource value: 0x7F0B0023
 			public const int design_menu_item_action_area = 2131427363;
-			
+
 			// aapt resource value: 0x7F0B0024
 			public const int design_navigation_item = 2131427364;
-			
+
 			// aapt resource value: 0x7F0B0025
 			public const int design_navigation_item_header = 2131427365;
-			
-			// aapt resource value: 0x7F0B0026
-			public const int design_navigation_item_separator = 2131427366;
-			
-			// aapt resource value: 0x7F0B0027
-			public const int design_navigation_item_subheader = 2131427367;
-			
-			// aapt resource value: 0x7F0B0028
-			public const int design_navigation_menu = 2131427368;
-			
-			// aapt resource value: 0x7F0B0029
-			public const int design_navigation_menu_item = 2131427369;
-			
-			// aapt resource value: 0x7F0B002A
-			public const int design_text_input_password_icon = 2131427370;
-			
-			// aapt resource value: 0x7F0B002B
-			public const int hdl_gallery_banner_view_layout = 2131427371;
-			
-			// aapt resource value: 0x7F0B002C
-			public const int hdl_widget_activity_crop_image = 2131427372;
-			
-			// aapt resource value: 0x7F0B002D
-			public const int hdl_widget_activity_geofence_round = 2131427373;
-			
-			// aapt resource value: 0x7F0B002E
-			public const int hdl_widget_air_button = 2131427374;
-			
-			// aapt resource value: 0x7F0B002F
-			public const int hdl_widget_include_pickerview_topbar = 2131427375;
-			
-			// aapt resource value: 0x7F0B0030
-			public const int hdl_widget_layout_basepickerview = 2131427376;
-			
-			// aapt resource value: 0x7F0B0031
-			public const int hdl_widget_pickerview = 2131427377;
-			
-			// aapt resource value: 0x7F0B0032
-			public const int hdl_widget_pickerview_options = 2131427378;
-			
-			// aapt resource value: 0x7F0B0033
-			public const int hdl_widget_pickerview_time = 2131427379;
-			
-			// aapt resource value: 0x7F0B0034
-			public const int Main = 2131427380;
-			
-			// aapt resource value: 0x7F0B0035
-			public const int notification_action = 2131427381;
-			
-			// aapt resource value: 0x7F0B0036
-			public const int notification_action_tombstone = 2131427382;
-			
-			// aapt resource value: 0x7F0B0037
-			public const int notification_media_action = 2131427383;
-			
-			// aapt resource value: 0x7F0B0038
-			public const int notification_media_cancel_action = 2131427384;
-			
-			// aapt resource value: 0x7F0B0039
-			public const int notification_template_big_media = 2131427385;
-			
-			// aapt resource value: 0x7F0B003A
-			public const int notification_template_big_media_custom = 2131427386;
-			
-			// aapt resource value: 0x7F0B003B
-			public const int notification_template_big_media_narrow = 2131427387;
-			
-			// aapt resource value: 0x7F0B003C
-			public const int notification_template_big_media_narrow_custom = 2131427388;
-			
-			// aapt resource value: 0x7F0B003D
-			public const int notification_template_custom_big = 2131427389;
-			
-			// aapt resource value: 0x7F0B003E
-			public const int notification_template_icon_group = 2131427390;
-			
-			// aapt resource value: 0x7F0B003F
-			public const int notification_template_lines_media = 2131427391;
-			
-			// aapt resource value: 0x7F0B0040
-			public const int notification_template_media = 2131427392;
-			
-			// aapt resource value: 0x7F0B0041
-			public const int notification_template_media_custom = 2131427393;
-			
-			// aapt resource value: 0x7F0B0042
-			public const int notification_template_part_chronometer = 2131427394;
-			
-			// aapt resource value: 0x7F0B0043
-			public const int notification_template_part_time = 2131427395;
-			
-			// aapt resource value: 0x7F0B0044
-			public const int select_dialog_item_material = 2131427396;
-			
-			// aapt resource value: 0x7F0B0045
-			public const int select_dialog_multichoice_material = 2131427397;
-			
-			// aapt resource value: 0x7F0B0046
-			public const int select_dialog_singlechoice_material = 2131427398;
-			
-			// aapt resource value: 0x7F0B0047
-			public const int srl_classics_footer = 2131427399;
-			
-			// aapt resource value: 0x7F0B0048
-			public const int srl_classics_header = 2131427400;
-			
-			// aapt resource value: 0x7F0B0049
-			public const int support_simple_spinner_dropdown_item = 2131427401;
-			
-			// aapt resource value: 0x7F0B004A
-			public const int tooltip = 2131427402;
-			
-			// aapt resource value: 0x7F0B004C
-			public const int zxingscanneractivitylayout = 2131427404;
-			
-			// aapt resource value: 0x7F0B004D
-			public const int zxingscannerfragmentlayout = 2131427405;
-			
-			// aapt resource value: 0x7F0B004B
-			public const int zxing_layout = 2131427403;
-			
+
+			// aapt resource value: 0x7f04001c
+			public const int design_bottom_navigation_item = 2130968604;
+
+			// aapt resource value: 0x7f04001d
+			public const int design_bottom_sheet_dialog = 2130968605;
+
+			// aapt resource value: 0x7f04001e
+			public const int design_layout_snackbar = 2130968606;
+
+			// aapt resource value: 0x7f04001f
+			public const int design_layout_snackbar_include = 2130968607;
+
+			// aapt resource value: 0x7f040020
+			public const int design_layout_tab_icon = 2130968608;
+
+			// aapt resource value: 0x7f040021
+			public const int design_layout_tab_text = 2130968609;
+
+			// aapt resource value: 0x7f040022
+			public const int design_menu_item_action_area = 2130968610;
+
+			// aapt resource value: 0x7f040023
+			public const int design_navigation_item = 2130968611;
+
+			// aapt resource value: 0x7f040024
+			public const int design_navigation_item_header = 2130968612;
+
+			// aapt resource value: 0x7f040025
+			public const int design_navigation_item_separator = 2130968613;
+
+			// aapt resource value: 0x7f040026
+			public const int design_navigation_item_subheader = 2130968614;
+
+			// aapt resource value: 0x7f040027
+			public const int design_navigation_menu = 2130968615;
+
+			// aapt resource value: 0x7f040028
+			public const int design_navigation_menu_item = 2130968616;
+
+			// aapt resource value: 0x7f040029
+			public const int design_text_input_password_icon = 2130968617;
+
+			// aapt resource value: 0x7f04002a
+			public const int hdl_gallery_banner_view_layout = 2130968618;
+
+			// aapt resource value: 0x7f04002b
+			public const int hdl_widget_activity_crop_image = 2130968619;
+
+			// aapt resource value: 0x7f04002c
+			public const int hdl_widget_activity_geofence_round = 2130968620;
+
+			// aapt resource value: 0x7f04002d
+			public const int hdl_widget_air_button = 2130968621;
+
+			// aapt resource value: 0x7f04002e
+			public const int hdl_widget_include_pickerview_topbar = 2130968622;
+
+			// aapt resource value: 0x7f04002f
+			public const int hdl_widget_layout_basepickerview = 2130968623;
+
+			// aapt resource value: 0x7f040030
+			public const int hdl_widget_pickerview = 2130968624;
+
+			// aapt resource value: 0x7f040031
+			public const int hdl_widget_pickerview_options = 2130968625;
+
+			// aapt resource value: 0x7f040032
+			public const int hdl_widget_pickerview_time = 2130968626;
+
+			// aapt resource value: 0x7f040033
+			public const int Main = 2130968627;
+
+			// aapt resource value: 0x7f040034
+			public const int notification_action = 2130968628;
+
+			// aapt resource value: 0x7f040035
+			public const int notification_action_tombstone = 2130968629;
+
+			// aapt resource value: 0x7f040036
+			public const int notification_media_action = 2130968630;
+
+			// aapt resource value: 0x7f040037
+			public const int notification_media_cancel_action = 2130968631;
+
+			// aapt resource value: 0x7f040038
+			public const int notification_template_big_media = 2130968632;
+
+			// aapt resource value: 0x7f040039
+			public const int notification_template_big_media_custom = 2130968633;
+
+			// aapt resource value: 0x7f04003a
+			public const int notification_template_big_media_narrow = 2130968634;
+
+			// aapt resource value: 0x7f04003b
+			public const int notification_template_big_media_narrow_custom = 2130968635;
+
+			// aapt resource value: 0x7f04003c
+			public const int notification_template_custom_big = 2130968636;
+
+			// aapt resource value: 0x7f04003d
+			public const int notification_template_icon_group = 2130968637;
+
+			// aapt resource value: 0x7f04003e
+			public const int notification_template_lines_media = 2130968638;
+
+			// aapt resource value: 0x7f04003f
+			public const int notification_template_media = 2130968639;
+
+			// aapt resource value: 0x7f040040
+			public const int notification_template_media_custom = 2130968640;
+
+			// aapt resource value: 0x7f040041
+			public const int notification_template_part_chronometer = 2130968641;
+
+			// aapt resource value: 0x7f040042
+			public const int notification_template_part_time = 2130968642;
+
+			// aapt resource value: 0x7f040043
+			public const int select_dialog_item_material = 2130968643;
+
+			// aapt resource value: 0x7f040044
+			public const int select_dialog_multichoice_material = 2130968644;
+
+			// aapt resource value: 0x7f040045
+			public const int select_dialog_singlechoice_material = 2130968645;
+
+			// aapt resource value: 0x7f040046
+			public const int srl_classics_footer = 2130968646;
+
+			// aapt resource value: 0x7f040047
+			public const int srl_classics_header = 2130968647;
+
+			// aapt resource value: 0x7f040048
+			public const int support_simple_spinner_dropdown_item = 2130968648;
+
+			// aapt resource value: 0x7f040049
+			public const int tooltip = 2130968649;
+
+			// aapt resource value: 0x7f04004a
+			public const int zxing_layout = 2130968650;
+
+			// aapt resource value: 0x7f04004b
+			public const int zxingscanneractivitylayout = 2130968651;
+
+			// aapt resource value: 0x7f04004c
+			public const int zxingscannerfragmentlayout = 2130968652;
+
 			static Layout()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Layout()
 			{
 			}
 		}
-		
+
 		public partial class Mipmap
 		{
-			
+
 			// aapt resource value: 0x7F0C0000
 			public const int Icon = 2131492864;
-			
+
 			static Mipmap()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Mipmap()
 			{
 			}
 		}
-		
+
 		public partial class String
 		{
-			
-			// aapt resource value: 0x7F0D0000
-			public const int abc_action_bar_home_description = 2131558400;
-			
-			// aapt resource value: 0x7F0D0001
-			public const int abc_action_bar_home_description_format = 2131558401;
-			
-			// aapt resource value: 0x7F0D0002
-			public const int abc_action_bar_home_subtitle_description_format = 2131558402;
-			
-			// aapt resource value: 0x7F0D0003
-			public const int abc_action_bar_up_description = 2131558403;
-			
-			// aapt resource value: 0x7F0D0004
-			public const int abc_action_menu_overflow_description = 2131558404;
-			
-			// aapt resource value: 0x7F0D0005
-			public const int abc_action_mode_done = 2131558405;
-			
-			// aapt resource value: 0x7F0D0007
-			public const int abc_activitychooserview_choose_application = 2131558407;
-			
-			// aapt resource value: 0x7F0D0006
-			public const int abc_activity_chooser_view_see_all = 2131558406;
-			
-			// aapt resource value: 0x7F0D0008
-			public const int abc_capital_off = 2131558408;
-			
-			// aapt resource value: 0x7F0D0009
-			public const int abc_capital_on = 2131558409;
-			
-			// aapt resource value: 0x7F0D000A
-			public const int abc_font_family_body_1_material = 2131558410;
-			
-			// aapt resource value: 0x7F0D000B
-			public const int abc_font_family_body_2_material = 2131558411;
-			
-			// aapt resource value: 0x7F0D000C
-			public const int abc_font_family_button_material = 2131558412;
-			
-			// aapt resource value: 0x7F0D000D
-			public const int abc_font_family_caption_material = 2131558413;
-			
-			// aapt resource value: 0x7F0D000E
-			public const int abc_font_family_display_1_material = 2131558414;
-			
-			// aapt resource value: 0x7F0D000F
-			public const int abc_font_family_display_2_material = 2131558415;
-			
-			// aapt resource value: 0x7F0D0010
-			public const int abc_font_family_display_3_material = 2131558416;
-			
-			// aapt resource value: 0x7F0D0011
-			public const int abc_font_family_display_4_material = 2131558417;
-			
-			// aapt resource value: 0x7F0D0012
-			public const int abc_font_family_headline_material = 2131558418;
-			
-			// aapt resource value: 0x7F0D0013
-			public const int abc_font_family_menu_material = 2131558419;
-			
-			// aapt resource value: 0x7F0D0014
-			public const int abc_font_family_subhead_material = 2131558420;
-			
-			// aapt resource value: 0x7F0D0015
-			public const int abc_font_family_title_material = 2131558421;
-			
-			// aapt resource value: 0x7F0D0017
-			public const int abc_searchview_description_clear = 2131558423;
-			
-			// aapt resource value: 0x7F0D0018
-			public const int abc_searchview_description_query = 2131558424;
-			
-			// aapt resource value: 0x7F0D0019
-			public const int abc_searchview_description_search = 2131558425;
-			
-			// aapt resource value: 0x7F0D001A
-			public const int abc_searchview_description_submit = 2131558426;
-			
-			// aapt resource value: 0x7F0D001B
-			public const int abc_searchview_description_voice = 2131558427;
-			
-			// aapt resource value: 0x7F0D0016
-			public const int abc_search_hint = 2131558422;
-			
-			// aapt resource value: 0x7F0D001C
-			public const int abc_shareactionprovider_share_with = 2131558428;
-			
-			// aapt resource value: 0x7F0D001D
-			public const int abc_shareactionprovider_share_with_application = 2131558429;
-			
-			// aapt resource value: 0x7F0D001E
-			public const int abc_toolbar_collapse_description = 2131558430;
-			
-			// aapt resource value: 0x7F0D0020
-			public const int appbar_scrolling_view_behavior = 2131558432;
-			
-			// aapt resource value: 0x7F0D001F
-			public const int app_name = 2131558431;
-			
-			// aapt resource value: 0x7F0D0021
-			public const int bottom_sheet_behavior = 2131558433;
-			
-			// aapt resource value: 0x7F0D0022
-			public const int character_counter_pattern = 2131558434;
-			
-			// aapt resource value: 0x7F0D0023
-			public const int gd_activity_title = 2131558435;
-			
-			// aapt resource value: 0x7F0D0024
-			public const int gd_cancel = 2131558436;
-			
-			// aapt resource value: 0x7F0D0025
-			public const int gd_myhome = 2131558437;
-			
-			// aapt resource value: 0x7F0D0026
-			public const int gd_notifyMsg = 2131558438;
-			
-			// aapt resource value: 0x7F0D0027
-			public const int gd_notifyTitle = 2131558439;
-			
-			// aapt resource value: 0x7F0D0028
-			public const int gd_save = 2131558440;
-			
-			// aapt resource value: 0x7F0D0029
-			public const int gd_search_tip = 2131558441;
-			
-			// aapt resource value: 0x7F0D002A
-			public const int gd_select_distance = 2131558442;
-			
-			// aapt resource value: 0x7F0D002B
-			public const int gd_setting = 2131558443;
-			
-			// aapt resource value: 0x7F0D002C
-			public const int hello = 2131558444;
-			
-			// aapt resource value: 0x7F0D002D
-			public const int not_recognized_fingerprint_hint = 2131558445;
-			
-			// aapt resource value: 0x7F0D002E
-			public const int password_toggle_content_description = 2131558446;
-			
-			// aapt resource value: 0x7F0D002F
-			public const int path_password_eye = 2131558447;
-			
-			// aapt resource value: 0x7F0D0030
-			public const int path_password_eye_mask_strike_through = 2131558448;
-			
-			// aapt resource value: 0x7F0D0031
-			public const int path_password_eye_mask_visible = 2131558449;
-			
-			// aapt resource value: 0x7F0D0032
-			public const int path_password_strike_through = 2131558450;
-			
-			// aapt resource value: 0x7F0D0033
-			public const int pickerview_cancel = 2131558451;
-			
-			// aapt resource value: 0x7F0D0034
-			public const int pickerview_day = 2131558452;
-			
-			// aapt resource value: 0x7F0D0035
-			public const int pickerview_hours = 2131558453;
-			
-			// aapt resource value: 0x7F0D0036
-			public const int pickerview_minutes = 2131558454;
-			
-			// aapt resource value: 0x7F0D0037
-			public const int pickerview_month = 2131558455;
-			
-			// aapt resource value: 0x7F0D0038
-			public const int pickerview_seconds = 2131558456;
-			
-			// aapt resource value: 0x7F0D0039
-			public const int pickerview_submit = 2131558457;
-			
-			// aapt resource value: 0x7F0D003A
-			public const int pickerview_year = 2131558458;
-			
-			// aapt resource value: 0x7F0D003B
-			public const int search_menu_title = 2131558459;
-			
-			// aapt resource value: 0x7F0D003C
-			public const int srl_component_falsify = 2131558460;
-			
-			// aapt resource value: 0x7F0D003D
-			public const int srl_content_empty = 2131558461;
-			
-			// aapt resource value: 0x7F0D003E
-			public const int srl_footer_failed = 2131558462;
-			
-			// aapt resource value: 0x7F0D003F
-			public const int srl_footer_finish = 2131558463;
-			
-			// aapt resource value: 0x7F0D0040
-			public const int srl_footer_loading = 2131558464;
-			
-			// aapt resource value: 0x7F0D0041
-			public const int srl_footer_nothing = 2131558465;
-			
-			// aapt resource value: 0x7F0D0042
-			public const int srl_footer_pulling = 2131558466;
-			
-			// aapt resource value: 0x7F0D0043
-			public const int srl_footer_refreshing = 2131558467;
-			
-			// aapt resource value: 0x7F0D0044
-			public const int srl_footer_release = 2131558468;
-			
-			// aapt resource value: 0x7F0D0045
-			public const int srl_header_failed = 2131558469;
-			
-			// aapt resource value: 0x7F0D0046
-			public const int srl_header_finish = 2131558470;
-			
-			// aapt resource value: 0x7F0D0047
-			public const int srl_header_loading = 2131558471;
-			
-			// aapt resource value: 0x7F0D0048
-			public const int srl_header_pulling = 2131558472;
-			
-			// aapt resource value: 0x7F0D0049
-			public const int srl_header_refreshing = 2131558473;
-			
-			// aapt resource value: 0x7F0D004A
-			public const int srl_header_release = 2131558474;
-			
-			// aapt resource value: 0x7F0D004B
-			public const int srl_header_secondary = 2131558475;
-			
-			// aapt resource value: 0x7F0D004C
-			public const int srl_header_update = 2131558476;
-			
-			// aapt resource value: 0x7F0D004D
-			public const int status_bar_notification_info_overflow = 2131558477;
-			
-			// aapt resource value: 0x7F0D004E
-			public const int touch_fingerprint_sensor_hint = 2131558478;
-			
+
+			// aapt resource value: 0x7f0a0000
+			public const int abc_action_bar_home_description = 2131361792;
+
+			// aapt resource value: 0x7f0a0001
+			public const int abc_action_bar_home_description_format = 2131361793;
+
+			// aapt resource value: 0x7f0a0002
+			public const int abc_action_bar_home_subtitle_description_format = 2131361794;
+
+			// aapt resource value: 0x7f0a0003
+			public const int abc_action_bar_up_description = 2131361795;
+
+			// aapt resource value: 0x7f0a0004
+			public const int abc_action_menu_overflow_description = 2131361796;
+
+			// aapt resource value: 0x7f0a0005
+			public const int abc_action_mode_done = 2131361797;
+
+			// aapt resource value: 0x7f0a0006
+			public const int abc_activity_chooser_view_see_all = 2131361798;
+
+			// aapt resource value: 0x7f0a0007
+			public const int abc_activitychooserview_choose_application = 2131361799;
+
+			// aapt resource value: 0x7f0a0008
+			public const int abc_capital_off = 2131361800;
+
+			// aapt resource value: 0x7f0a0009
+			public const int abc_capital_on = 2131361801;
+
+			// aapt resource value: 0x7f0a0015
+			public const int abc_font_family_body_1_material = 2131361813;
+
+			// aapt resource value: 0x7f0a0016
+			public const int abc_font_family_body_2_material = 2131361814;
+
+			// aapt resource value: 0x7f0a0017
+			public const int abc_font_family_button_material = 2131361815;
+
+			// aapt resource value: 0x7f0a0018
+			public const int abc_font_family_caption_material = 2131361816;
+
+			// aapt resource value: 0x7f0a0019
+			public const int abc_font_family_display_1_material = 2131361817;
+
+			// aapt resource value: 0x7f0a001a
+			public const int abc_font_family_display_2_material = 2131361818;
+
+			// aapt resource value: 0x7f0a001b
+			public const int abc_font_family_display_3_material = 2131361819;
+
+			// aapt resource value: 0x7f0a001c
+			public const int abc_font_family_display_4_material = 2131361820;
+
+			// aapt resource value: 0x7f0a001d
+			public const int abc_font_family_headline_material = 2131361821;
+
+			// aapt resource value: 0x7f0a001e
+			public const int abc_font_family_menu_material = 2131361822;
+
+			// aapt resource value: 0x7f0a001f
+			public const int abc_font_family_subhead_material = 2131361823;
+
+			// aapt resource value: 0x7f0a0020
+			public const int abc_font_family_title_material = 2131361824;
+
+			// aapt resource value: 0x7f0a000a
+			public const int abc_search_hint = 2131361802;
+
+			// aapt resource value: 0x7f0a000b
+			public const int abc_searchview_description_clear = 2131361803;
+
+			// aapt resource value: 0x7f0a000c
+			public const int abc_searchview_description_query = 2131361804;
+
+			// aapt resource value: 0x7f0a000d
+			public const int abc_searchview_description_search = 2131361805;
+
+			// aapt resource value: 0x7f0a000e
+			public const int abc_searchview_description_submit = 2131361806;
+
+			// aapt resource value: 0x7f0a000f
+			public const int abc_searchview_description_voice = 2131361807;
+
+			// aapt resource value: 0x7f0a0010
+			public const int abc_shareactionprovider_share_with = 2131361808;
+
+			// aapt resource value: 0x7f0a0011
+			public const int abc_shareactionprovider_share_with_application = 2131361809;
+
+			// aapt resource value: 0x7f0a0012
+			public const int abc_toolbar_collapse_description = 2131361810;
+
+			// aapt resource value: 0x7f0a003c
+			public const int app_name = 2131361852;
+
+			// aapt resource value: 0x7f0a0021
+			public const int appbar_scrolling_view_behavior = 2131361825;
+
+			// aapt resource value: 0x7f0a0022
+			public const int bottom_sheet_behavior = 2131361826;
+
+			// aapt resource value: 0x7f0a0023
+			public const int character_counter_pattern = 2131361827;
+
+			// aapt resource value: 0x7f0a003d
+			public const int gd_activity_title = 2131361853;
+
+			// aapt resource value: 0x7f0a003e
+			public const int gd_cancel = 2131361854;
+
+			// aapt resource value: 0x7f0a003f
+			public const int gd_myhome = 2131361855;
+
+			// aapt resource value: 0x7f0a0040
+			public const int gd_notifyMsg = 2131361856;
+
+			// aapt resource value: 0x7f0a0041
+			public const int gd_notifyTitle = 2131361857;
+
+			// aapt resource value: 0x7f0a0042
+			public const int gd_save = 2131361858;
+
+			// aapt resource value: 0x7f0a0043
+			public const int gd_search_tip = 2131361859;
+
+			// aapt resource value: 0x7f0a0044
+			public const int gd_select_distance = 2131361860;
+
+			// aapt resource value: 0x7f0a0045
+			public const int gd_setting = 2131361861;
+
+			// aapt resource value: 0x7f0a004e
+			public const int hello = 2131361870;
+
+			// aapt resource value: 0x7f0a0029
+			public const int not_recognized_fingerprint_hint = 2131361833;
+
+			// aapt resource value: 0x7f0a0024
+			public const int password_toggle_content_description = 2131361828;
+
+			// aapt resource value: 0x7f0a0025
+			public const int path_password_eye = 2131361829;
+
+			// aapt resource value: 0x7f0a0026
+			public const int path_password_eye_mask_strike_through = 2131361830;
+
+			// aapt resource value: 0x7f0a0027
+			public const int path_password_eye_mask_visible = 2131361831;
+
+			// aapt resource value: 0x7f0a0028
+			public const int path_password_strike_through = 2131361832;
+
+			// aapt resource value: 0x7f0a0046
+			public const int pickerview_cancel = 2131361862;
+
+			// aapt resource value: 0x7f0a0047
+			public const int pickerview_day = 2131361863;
+
+			// aapt resource value: 0x7f0a0048
+			public const int pickerview_hours = 2131361864;
+
+			// aapt resource value: 0x7f0a0049
+			public const int pickerview_minutes = 2131361865;
+
+			// aapt resource value: 0x7f0a004a
+			public const int pickerview_month = 2131361866;
+
+			// aapt resource value: 0x7f0a004b
+			public const int pickerview_seconds = 2131361867;
+
+			// aapt resource value: 0x7f0a004c
+			public const int pickerview_submit = 2131361868;
+
+			// aapt resource value: 0x7f0a004d
+			public const int pickerview_year = 2131361869;
+
+			// aapt resource value: 0x7f0a0013
+			public const int search_menu_title = 2131361811;
+
+			// aapt resource value: 0x7f0a002b
+			public const int srl_component_falsify = 2131361835;
+
+			// aapt resource value: 0x7f0a002c
+			public const int srl_content_empty = 2131361836;
+
+			// aapt resource value: 0x7f0a002d
+			public const int srl_footer_failed = 2131361837;
+
+			// aapt resource value: 0x7f0a002e
+			public const int srl_footer_finish = 2131361838;
+
+			// aapt resource value: 0x7f0a002f
+			public const int srl_footer_loading = 2131361839;
+
+			// aapt resource value: 0x7f0a0030
+			public const int srl_footer_nothing = 2131361840;
+
+			// aapt resource value: 0x7f0a0031
+			public const int srl_footer_pulling = 2131361841;
+
+			// aapt resource value: 0x7f0a0032
+			public const int srl_footer_refreshing = 2131361842;
+
+			// aapt resource value: 0x7f0a0033
+			public const int srl_footer_release = 2131361843;
+
+			// aapt resource value: 0x7f0a0034
+			public const int srl_header_failed = 2131361844;
+
+			// aapt resource value: 0x7f0a0035
+			public const int srl_header_finish = 2131361845;
+
+			// aapt resource value: 0x7f0a0036
+			public const int srl_header_loading = 2131361846;
+
+			// aapt resource value: 0x7f0a0037
+			public const int srl_header_pulling = 2131361847;
+
+			// aapt resource value: 0x7f0a0038
+			public const int srl_header_refreshing = 2131361848;
+
+			// aapt resource value: 0x7f0a0039
+			public const int srl_header_release = 2131361849;
+
+			// aapt resource value: 0x7f0a003a
+			public const int srl_header_secondary = 2131361850;
+
+			// aapt resource value: 0x7f0a003b
+			public const int srl_header_update = 2131361851;
+
+			// aapt resource value: 0x7f0a0014
+			public const int status_bar_notification_info_overflow = 2131361812;
+
+			// aapt resource value: 0x7f0a002a
+			public const int touch_fingerprint_sensor_hint = 2131361834;
+
 			static String()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private String()
 			{
 			}
 		}
-		
+
 		public partial class Style
 		{
-			
-			// aapt resource value: 0x7F0E0000
-			public const int AlertDialog_AppCompat = 2131623936;
-			
-			// aapt resource value: 0x7F0E0001
-			public const int AlertDialog_AppCompat_Light = 2131623937;
-			
-			// aapt resource value: 0x7F0E0002
-			public const int Animation_AppCompat_Dialog = 2131623938;
-			
-			// aapt resource value: 0x7F0E0003
-			public const int Animation_AppCompat_DropDownUp = 2131623939;
-			
-			// aapt resource value: 0x7F0E0004
-			public const int Animation_AppCompat_Tooltip = 2131623940;
-			
-			// aapt resource value: 0x7F0E0005
-			public const int Animation_Design_BottomSheetDialog = 2131623941;
-			
-			// aapt resource value: 0x7F0E0006
-			public const int Base_AlertDialog_AppCompat = 2131623942;
-			
-			// aapt resource value: 0x7F0E0007
-			public const int Base_AlertDialog_AppCompat_Light = 2131623943;
-			
-			// aapt resource value: 0x7F0E0008
-			public const int Base_Animation_AppCompat_Dialog = 2131623944;
-			
-			// aapt resource value: 0x7F0E0009
-			public const int Base_Animation_AppCompat_DropDownUp = 2131623945;
-			
-			// aapt resource value: 0x7F0E000A
-			public const int Base_Animation_AppCompat_Tooltip = 2131623946;
-			
-			// aapt resource value: 0x7F0E000C
-			public const int Base_DialogWindowTitleBackground_AppCompat = 2131623948;
-			
-			// aapt resource value: 0x7F0E000B
-			public const int Base_DialogWindowTitle_AppCompat = 2131623947;
-			
-			// aapt resource value: 0x7F0E000D
-			public const int Base_TextAppearance_AppCompat = 2131623949;
-			
-			// aapt resource value: 0x7F0E000E
-			public const int Base_TextAppearance_AppCompat_Body1 = 2131623950;
-			
-			// aapt resource value: 0x7F0E000F
-			public const int Base_TextAppearance_AppCompat_Body2 = 2131623951;
-			
-			// aapt resource value: 0x7F0E0010
-			public const int Base_TextAppearance_AppCompat_Button = 2131623952;
-			
-			// aapt resource value: 0x7F0E0011
-			public const int Base_TextAppearance_AppCompat_Caption = 2131623953;
-			
-			// aapt resource value: 0x7F0E0012
-			public const int Base_TextAppearance_AppCompat_Display1 = 2131623954;
-			
-			// aapt resource value: 0x7F0E0013
-			public const int Base_TextAppearance_AppCompat_Display2 = 2131623955;
-			
-			// aapt resource value: 0x7F0E0014
-			public const int Base_TextAppearance_AppCompat_Display3 = 2131623956;
-			
-			// aapt resource value: 0x7F0E0015
-			public const int Base_TextAppearance_AppCompat_Display4 = 2131623957;
-			
-			// aapt resource value: 0x7F0E0016
-			public const int Base_TextAppearance_AppCompat_Headline = 2131623958;
-			
-			// aapt resource value: 0x7F0E0017
-			public const int Base_TextAppearance_AppCompat_Inverse = 2131623959;
-			
-			// aapt resource value: 0x7F0E0018
-			public const int Base_TextAppearance_AppCompat_Large = 2131623960;
-			
-			// aapt resource value: 0x7F0E0019
-			public const int Base_TextAppearance_AppCompat_Large_Inverse = 2131623961;
-			
-			// aapt resource value: 0x7F0E001A
-			public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131623962;
-			
-			// aapt resource value: 0x7F0E001B
-			public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131623963;
-			
-			// aapt resource value: 0x7F0E001C
-			public const int Base_TextAppearance_AppCompat_Medium = 2131623964;
-			
-			// aapt resource value: 0x7F0E001D
-			public const int Base_TextAppearance_AppCompat_Medium_Inverse = 2131623965;
-			
-			// aapt resource value: 0x7F0E001E
-			public const int Base_TextAppearance_AppCompat_Menu = 2131623966;
-			
-			// aapt resource value: 0x7F0E001F
-			public const int Base_TextAppearance_AppCompat_SearchResult = 2131623967;
-			
-			// aapt resource value: 0x7F0E0020
-			public const int Base_TextAppearance_AppCompat_SearchResult_Subtitle = 2131623968;
-			
-			// aapt resource value: 0x7F0E0021
-			public const int Base_TextAppearance_AppCompat_SearchResult_Title = 2131623969;
-			
-			// aapt resource value: 0x7F0E0022
-			public const int Base_TextAppearance_AppCompat_Small = 2131623970;
-			
-			// aapt resource value: 0x7F0E0023
-			public const int Base_TextAppearance_AppCompat_Small_Inverse = 2131623971;
-			
-			// aapt resource value: 0x7F0E0024
-			public const int Base_TextAppearance_AppCompat_Subhead = 2131623972;
-			
-			// aapt resource value: 0x7F0E0025
-			public const int Base_TextAppearance_AppCompat_Subhead_Inverse = 2131623973;
-			
-			// aapt resource value: 0x7F0E0026
-			public const int Base_TextAppearance_AppCompat_Title = 2131623974;
-			
-			// aapt resource value: 0x7F0E0027
-			public const int Base_TextAppearance_AppCompat_Title_Inverse = 2131623975;
-			
-			// aapt resource value: 0x7F0E0028
-			public const int Base_TextAppearance_AppCompat_Tooltip = 2131623976;
-			
-			// aapt resource value: 0x7F0E0029
-			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131623977;
-			
-			// aapt resource value: 0x7F0E002A
-			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131623978;
-			
-			// aapt resource value: 0x7F0E002B
-			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131623979;
-			
-			// aapt resource value: 0x7F0E002C
-			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title = 2131623980;
-			
-			// aapt resource value: 0x7F0E002D
-			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131623981;
-			
-			// aapt resource value: 0x7F0E002E
-			public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131623982;
-			
-			// aapt resource value: 0x7F0E002F
-			public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Title = 2131623983;
-			
-			// aapt resource value: 0x7F0E0030
-			public const int Base_TextAppearance_AppCompat_Widget_Button = 2131623984;
-			
-			// aapt resource value: 0x7F0E0031
-			public const int Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131623985;
-			
-			// aapt resource value: 0x7F0E0032
-			public const int Base_TextAppearance_AppCompat_Widget_Button_Colored = 2131623986;
-			
-			// aapt resource value: 0x7F0E0033
-			public const int Base_TextAppearance_AppCompat_Widget_Button_Inverse = 2131623987;
-			
-			// aapt resource value: 0x7F0E0034
-			public const int Base_TextAppearance_AppCompat_Widget_DropDownItem = 2131623988;
-			
-			// aapt resource value: 0x7F0E0035
-			public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131623989;
-			
-			// aapt resource value: 0x7F0E0036
-			public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131623990;
-			
-			// aapt resource value: 0x7F0E0037
-			public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131623991;
-			
-			// aapt resource value: 0x7F0E0038
-			public const int Base_TextAppearance_AppCompat_Widget_Switch = 2131623992;
-			
-			// aapt resource value: 0x7F0E0039
-			public const int Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131623993;
-			
-			// aapt resource value: 0x7F0E003A
-			public const int Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131623994;
-			
-			// aapt resource value: 0x7F0E003B
-			public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131623995;
-			
-			// aapt resource value: 0x7F0E003C
-			public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Title = 2131623996;
-			
-			// aapt resource value: 0x7F0E004B
-			public const int Base_ThemeOverlay_AppCompat = 2131624011;
-			
-			// aapt resource value: 0x7F0E004C
-			public const int Base_ThemeOverlay_AppCompat_ActionBar = 2131624012;
-			
-			// aapt resource value: 0x7F0E004D
-			public const int Base_ThemeOverlay_AppCompat_Dark = 2131624013;
-			
-			// aapt resource value: 0x7F0E004E
-			public const int Base_ThemeOverlay_AppCompat_Dark_ActionBar = 2131624014;
-			
-			// aapt resource value: 0x7F0E004F
-			public const int Base_ThemeOverlay_AppCompat_Dialog = 2131624015;
-			
-			// aapt resource value: 0x7F0E0050
-			public const int Base_ThemeOverlay_AppCompat_Dialog_Alert = 2131624016;
-			
-			// aapt resource value: 0x7F0E0051
-			public const int Base_ThemeOverlay_AppCompat_Light = 2131624017;
-			
-			// aapt resource value: 0x7F0E003D
-			public const int Base_Theme_AppCompat = 2131623997;
-			
-			// aapt resource value: 0x7F0E003E
-			public const int Base_Theme_AppCompat_CompactMenu = 2131623998;
-			
-			// aapt resource value: 0x7F0E003F
-			public const int Base_Theme_AppCompat_Dialog = 2131623999;
-			
-			// aapt resource value: 0x7F0E0043
-			public const int Base_Theme_AppCompat_DialogWhenLarge = 2131624003;
-			
-			// aapt resource value: 0x7F0E0040
-			public const int Base_Theme_AppCompat_Dialog_Alert = 2131624000;
-			
-			// aapt resource value: 0x7F0E0041
-			public const int Base_Theme_AppCompat_Dialog_FixedSize = 2131624001;
-			
-			// aapt resource value: 0x7F0E0042
-			public const int Base_Theme_AppCompat_Dialog_MinWidth = 2131624002;
-			
-			// aapt resource value: 0x7F0E0044
-			public const int Base_Theme_AppCompat_Light = 2131624004;
-			
-			// aapt resource value: 0x7F0E0045
-			public const int Base_Theme_AppCompat_Light_DarkActionBar = 2131624005;
-			
-			// aapt resource value: 0x7F0E0046
-			public const int Base_Theme_AppCompat_Light_Dialog = 2131624006;
-			
-			// aapt resource value: 0x7F0E004A
-			public const int Base_Theme_AppCompat_Light_DialogWhenLarge = 2131624010;
-			
-			// aapt resource value: 0x7F0E0047
-			public const int Base_Theme_AppCompat_Light_Dialog_Alert = 2131624007;
-			
-			// aapt resource value: 0x7F0E0048
-			public const int Base_Theme_AppCompat_Light_Dialog_FixedSize = 2131624008;
-			
-			// aapt resource value: 0x7F0E0049
-			public const int Base_Theme_AppCompat_Light_Dialog_MinWidth = 2131624009;
-			
-			// aapt resource value: 0x7F0E0054
-			public const int Base_V11_ThemeOverlay_AppCompat_Dialog = 2131624020;
-			
-			// aapt resource value: 0x7F0E0052
-			public const int Base_V11_Theme_AppCompat_Dialog = 2131624018;
-			
-			// aapt resource value: 0x7F0E0053
-			public const int Base_V11_Theme_AppCompat_Light_Dialog = 2131624019;
-			
-			// aapt resource value: 0x7F0E0055
-			public const int Base_V12_Widget_AppCompat_AutoCompleteTextView = 2131624021;
-			
-			// aapt resource value: 0x7F0E0056
-			public const int Base_V12_Widget_AppCompat_EditText = 2131624022;
-			
-			// aapt resource value: 0x7F0E0057
-			public const int Base_V14_Widget_Design_AppBarLayout = 2131624023;
-			
-			// aapt resource value: 0x7F0E005C
-			public const int Base_V21_ThemeOverlay_AppCompat_Dialog = 2131624028;
-			
-			// aapt resource value: 0x7F0E0058
-			public const int Base_V21_Theme_AppCompat = 2131624024;
-			
-			// aapt resource value: 0x7F0E0059
-			public const int Base_V21_Theme_AppCompat_Dialog = 2131624025;
-			
-			// aapt resource value: 0x7F0E005A
-			public const int Base_V21_Theme_AppCompat_Light = 2131624026;
-			
-			// aapt resource value: 0x7F0E005B
-			public const int Base_V21_Theme_AppCompat_Light_Dialog = 2131624027;
-			
-			// aapt resource value: 0x7F0E005D
-			public const int Base_V21_Widget_Design_AppBarLayout = 2131624029;
-			
-			// aapt resource value: 0x7F0E005E
-			public const int Base_V22_Theme_AppCompat = 2131624030;
-			
-			// aapt resource value: 0x7F0E005F
-			public const int Base_V22_Theme_AppCompat_Light = 2131624031;
-			
-			// aapt resource value: 0x7F0E0060
-			public const int Base_V23_Theme_AppCompat = 2131624032;
-			
-			// aapt resource value: 0x7F0E0061
-			public const int Base_V23_Theme_AppCompat_Light = 2131624033;
-			
-			// aapt resource value: 0x7F0E0062
-			public const int Base_V26_Theme_AppCompat = 2131624034;
-			
-			// aapt resource value: 0x7F0E0063
-			public const int Base_V26_Theme_AppCompat_Light = 2131624035;
-			
-			// aapt resource value: 0x7F0E0064
-			public const int Base_V26_Widget_AppCompat_Toolbar = 2131624036;
-			
-			// aapt resource value: 0x7F0E0065
-			public const int Base_V26_Widget_Design_AppBarLayout = 2131624037;
-			
-			// aapt resource value: 0x7F0E006A
-			public const int Base_V7_ThemeOverlay_AppCompat_Dialog = 2131624042;
-			
-			// aapt resource value: 0x7F0E0066
-			public const int Base_V7_Theme_AppCompat = 2131624038;
-			
-			// aapt resource value: 0x7F0E0067
-			public const int Base_V7_Theme_AppCompat_Dialog = 2131624039;
-			
-			// aapt resource value: 0x7F0E0068
-			public const int Base_V7_Theme_AppCompat_Light = 2131624040;
-			
-			// aapt resource value: 0x7F0E0069
-			public const int Base_V7_Theme_AppCompat_Light_Dialog = 2131624041;
-			
-			// aapt resource value: 0x7F0E006B
-			public const int Base_V7_Widget_AppCompat_AutoCompleteTextView = 2131624043;
-			
-			// aapt resource value: 0x7F0E006C
-			public const int Base_V7_Widget_AppCompat_EditText = 2131624044;
-			
-			// aapt resource value: 0x7F0E006D
-			public const int Base_V7_Widget_AppCompat_Toolbar = 2131624045;
-			
-			// aapt resource value: 0x7F0E006E
-			public const int Base_Widget_AppCompat_ActionBar = 2131624046;
-			
-			// aapt resource value: 0x7F0E006F
-			public const int Base_Widget_AppCompat_ActionBar_Solid = 2131624047;
-			
-			// aapt resource value: 0x7F0E0070
-			public const int Base_Widget_AppCompat_ActionBar_TabBar = 2131624048;
-			
-			// aapt resource value: 0x7F0E0071
-			public const int Base_Widget_AppCompat_ActionBar_TabText = 2131624049;
-			
-			// aapt resource value: 0x7F0E0072
-			public const int Base_Widget_AppCompat_ActionBar_TabView = 2131624050;
-			
-			// aapt resource value: 0x7F0E0073
-			public const int Base_Widget_AppCompat_ActionButton = 2131624051;
-			
-			// aapt resource value: 0x7F0E0074
-			public const int Base_Widget_AppCompat_ActionButton_CloseMode = 2131624052;
-			
-			// aapt resource value: 0x7F0E0075
-			public const int Base_Widget_AppCompat_ActionButton_Overflow = 2131624053;
-			
-			// aapt resource value: 0x7F0E0076
-			public const int Base_Widget_AppCompat_ActionMode = 2131624054;
-			
-			// aapt resource value: 0x7F0E0077
-			public const int Base_Widget_AppCompat_ActivityChooserView = 2131624055;
-			
-			// aapt resource value: 0x7F0E0078
-			public const int Base_Widget_AppCompat_AutoCompleteTextView = 2131624056;
-			
-			// aapt resource value: 0x7F0E0079
-			public const int Base_Widget_AppCompat_Button = 2131624057;
-			
-			// aapt resource value: 0x7F0E007F
-			public const int Base_Widget_AppCompat_ButtonBar = 2131624063;
-			
-			// aapt resource value: 0x7F0E0080
-			public const int Base_Widget_AppCompat_ButtonBar_AlertDialog = 2131624064;
-			
-			// aapt resource value: 0x7F0E007A
-			public const int Base_Widget_AppCompat_Button_Borderless = 2131624058;
-			
-			// aapt resource value: 0x7F0E007B
-			public const int Base_Widget_AppCompat_Button_Borderless_Colored = 2131624059;
-			
-			// aapt resource value: 0x7F0E007C
-			public const int Base_Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131624060;
-			
-			// aapt resource value: 0x7F0E007D
-			public const int Base_Widget_AppCompat_Button_Colored = 2131624061;
-			
-			// aapt resource value: 0x7F0E007E
-			public const int Base_Widget_AppCompat_Button_Small = 2131624062;
-			
-			// aapt resource value: 0x7F0E0081
-			public const int Base_Widget_AppCompat_CompoundButton_CheckBox = 2131624065;
-			
-			// aapt resource value: 0x7F0E0082
-			public const int Base_Widget_AppCompat_CompoundButton_RadioButton = 2131624066;
-			
-			// aapt resource value: 0x7F0E0083
-			public const int Base_Widget_AppCompat_CompoundButton_Switch = 2131624067;
-			
-			// aapt resource value: 0x7F0E0084
-			public const int Base_Widget_AppCompat_DrawerArrowToggle = 2131624068;
-			
-			// aapt resource value: 0x7F0E0085
-			public const int Base_Widget_AppCompat_DrawerArrowToggle_Common = 2131624069;
-			
-			// aapt resource value: 0x7F0E0086
-			public const int Base_Widget_AppCompat_DropDownItem_Spinner = 2131624070;
-			
-			// aapt resource value: 0x7F0E0087
-			public const int Base_Widget_AppCompat_EditText = 2131624071;
-			
-			// aapt resource value: 0x7F0E0088
-			public const int Base_Widget_AppCompat_ImageButton = 2131624072;
-			
-			// aapt resource value: 0x7F0E0089
-			public const int Base_Widget_AppCompat_Light_ActionBar = 2131624073;
-			
-			// aapt resource value: 0x7F0E008A
-			public const int Base_Widget_AppCompat_Light_ActionBar_Solid = 2131624074;
-			
-			// aapt resource value: 0x7F0E008B
-			public const int Base_Widget_AppCompat_Light_ActionBar_TabBar = 2131624075;
-			
-			// aapt resource value: 0x7F0E008C
-			public const int Base_Widget_AppCompat_Light_ActionBar_TabText = 2131624076;
-			
-			// aapt resource value: 0x7F0E008D
-			public const int Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131624077;
-			
-			// aapt resource value: 0x7F0E008E
-			public const int Base_Widget_AppCompat_Light_ActionBar_TabView = 2131624078;
-			
-			// aapt resource value: 0x7F0E008F
-			public const int Base_Widget_AppCompat_Light_PopupMenu = 2131624079;
-			
-			// aapt resource value: 0x7F0E0090
-			public const int Base_Widget_AppCompat_Light_PopupMenu_Overflow = 2131624080;
-			
-			// aapt resource value: 0x7F0E0091
-			public const int Base_Widget_AppCompat_ListMenuView = 2131624081;
-			
-			// aapt resource value: 0x7F0E0092
-			public const int Base_Widget_AppCompat_ListPopupWindow = 2131624082;
-			
-			// aapt resource value: 0x7F0E0093
-			public const int Base_Widget_AppCompat_ListView = 2131624083;
-			
-			// aapt resource value: 0x7F0E0094
-			public const int Base_Widget_AppCompat_ListView_DropDown = 2131624084;
-			
-			// aapt resource value: 0x7F0E0095
-			public const int Base_Widget_AppCompat_ListView_Menu = 2131624085;
-			
-			// aapt resource value: 0x7F0E0096
-			public const int Base_Widget_AppCompat_PopupMenu = 2131624086;
-			
-			// aapt resource value: 0x7F0E0097
-			public const int Base_Widget_AppCompat_PopupMenu_Overflow = 2131624087;
-			
-			// aapt resource value: 0x7F0E0098
-			public const int Base_Widget_AppCompat_PopupWindow = 2131624088;
-			
-			// aapt resource value: 0x7F0E0099
-			public const int Base_Widget_AppCompat_ProgressBar = 2131624089;
-			
-			// aapt resource value: 0x7F0E009A
-			public const int Base_Widget_AppCompat_ProgressBar_Horizontal = 2131624090;
-			
-			// aapt resource value: 0x7F0E009B
-			public const int Base_Widget_AppCompat_RatingBar = 2131624091;
-			
-			// aapt resource value: 0x7F0E009C
-			public const int Base_Widget_AppCompat_RatingBar_Indicator = 2131624092;
-			
-			// aapt resource value: 0x7F0E009D
-			public const int Base_Widget_AppCompat_RatingBar_Small = 2131624093;
-			
-			// aapt resource value: 0x7F0E009E
-			public const int Base_Widget_AppCompat_SearchView = 2131624094;
-			
-			// aapt resource value: 0x7F0E009F
-			public const int Base_Widget_AppCompat_SearchView_ActionBar = 2131624095;
-			
-			// aapt resource value: 0x7F0E00A0
-			public const int Base_Widget_AppCompat_SeekBar = 2131624096;
-			
-			// aapt resource value: 0x7F0E00A1
-			public const int Base_Widget_AppCompat_SeekBar_Discrete = 2131624097;
-			
-			// aapt resource value: 0x7F0E00A2
-			public const int Base_Widget_AppCompat_Spinner = 2131624098;
-			
-			// aapt resource value: 0x7F0E00A3
-			public const int Base_Widget_AppCompat_Spinner_Underlined = 2131624099;
-			
-			// aapt resource value: 0x7F0E00A4
-			public const int Base_Widget_AppCompat_TextView_SpinnerItem = 2131624100;
-			
-			// aapt resource value: 0x7F0E00A5
-			public const int Base_Widget_AppCompat_Toolbar = 2131624101;
-			
-			// aapt resource value: 0x7F0E00A6
-			public const int Base_Widget_AppCompat_Toolbar_Button_Navigation = 2131624102;
-			
-			// aapt resource value: 0x7F0E00A7
-			public const int Base_Widget_Design_AppBarLayout = 2131624103;
-			
-			// aapt resource value: 0x7F0E00A8
-			public const int Base_Widget_Design_TabLayout = 2131624104;
-			
-			// aapt resource value: 0x7F0E00A9
-			public const int BottomSheetDialogAnimation = 2131624105;
-			
-			// aapt resource value: 0x7F0E018D
-			public const int custom_dialog2 = 2131624333;
-			
-			// aapt resource value: 0x7F0E00AA
-			public const int MyTheme = 2131624106;
-			
-			// aapt resource value: 0x7F0E018E
-			public const int picker_view_scale_anim = 2131624334;
-			
-			// aapt resource value: 0x7F0E018F
-			public const int picker_view_slide_anim = 2131624335;
-			
-			// aapt resource value: 0x7F0E00AB
-			public const int Platform_AppCompat = 2131624107;
-			
-			// aapt resource value: 0x7F0E00AC
-			public const int Platform_AppCompat_Light = 2131624108;
-			
-			// aapt resource value: 0x7F0E00AD
-			public const int Platform_ThemeOverlay_AppCompat = 2131624109;
-			
-			// aapt resource value: 0x7F0E00AE
-			public const int Platform_ThemeOverlay_AppCompat_Dark = 2131624110;
-			
-			// aapt resource value: 0x7F0E00AF
-			public const int Platform_ThemeOverlay_AppCompat_Light = 2131624111;
-			
-			// aapt resource value: 0x7F0E00B0
-			public const int Platform_V11_AppCompat = 2131624112;
-			
-			// aapt resource value: 0x7F0E00B1
-			public const int Platform_V11_AppCompat_Light = 2131624113;
-			
-			// aapt resource value: 0x7F0E00B2
-			public const int Platform_V14_AppCompat = 2131624114;
-			
-			// aapt resource value: 0x7F0E00B3
-			public const int Platform_V14_AppCompat_Light = 2131624115;
-			
-			// aapt resource value: 0x7F0E00B4
-			public const int Platform_V21_AppCompat = 2131624116;
-			
-			// aapt resource value: 0x7F0E00B5
-			public const int Platform_V21_AppCompat_Light = 2131624117;
-			
-			// aapt resource value: 0x7F0E00B6
-			public const int Platform_V25_AppCompat = 2131624118;
-			
-			// aapt resource value: 0x7F0E00B7
-			public const int Platform_V25_AppCompat_Light = 2131624119;
-			
-			// aapt resource value: 0x7F0E00B8
-			public const int Platform_Widget_AppCompat_Spinner = 2131624120;
-			
-			// aapt resource value: 0x7F0E00B9
-			public const int RtlOverlay_DialogWindowTitle_AppCompat = 2131624121;
-			
-			// aapt resource value: 0x7F0E00BA
-			public const int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem = 2131624122;
-			
-			// aapt resource value: 0x7F0E00BB
-			public const int RtlOverlay_Widget_AppCompat_DialogTitle_Icon = 2131624123;
-			
-			// aapt resource value: 0x7F0E00BC
-			public const int RtlOverlay_Widget_AppCompat_PopupMenuItem = 2131624124;
-			
-			// aapt resource value: 0x7F0E00BD
-			public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup = 2131624125;
-			
-			// aapt resource value: 0x7F0E00BE
-			public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_Text = 2131624126;
-			
-			// aapt resource value: 0x7F0E00C4
-			public const int RtlOverlay_Widget_AppCompat_SearchView_MagIcon = 2131624132;
-			
-			// aapt resource value: 0x7F0E00BF
-			public const int RtlOverlay_Widget_AppCompat_Search_DropDown = 2131624127;
-			
-			// aapt resource value: 0x7F0E00C0
-			public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 = 2131624128;
-			
-			// aapt resource value: 0x7F0E00C1
-			public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 = 2131624129;
-			
-			// aapt resource value: 0x7F0E00C2
-			public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Query = 2131624130;
-			
-			// aapt resource value: 0x7F0E00C3
-			public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Text = 2131624131;
-			
-			// aapt resource value: 0x7F0E00C5
-			public const int RtlUnderlay_Widget_AppCompat_ActionButton = 2131624133;
-			
-			// aapt resource value: 0x7F0E00C6
-			public const int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow = 2131624134;
-			
-			// aapt resource value: 0x7F0E00C7
-			public const int TextAppearance_AppCompat = 2131624135;
-			
-			// aapt resource value: 0x7F0E00C8
-			public const int TextAppearance_AppCompat_Body1 = 2131624136;
-			
-			// aapt resource value: 0x7F0E00C9
-			public const int TextAppearance_AppCompat_Body2 = 2131624137;
-			
-			// aapt resource value: 0x7F0E00CA
-			public const int TextAppearance_AppCompat_Button = 2131624138;
-			
-			// aapt resource value: 0x7F0E00CB
-			public const int TextAppearance_AppCompat_Caption = 2131624139;
-			
-			// aapt resource value: 0x7F0E00CC
-			public const int TextAppearance_AppCompat_Display1 = 2131624140;
-			
-			// aapt resource value: 0x7F0E00CD
-			public const int TextAppearance_AppCompat_Display2 = 2131624141;
-			
-			// aapt resource value: 0x7F0E00CE
-			public const int TextAppearance_AppCompat_Display3 = 2131624142;
-			
-			// aapt resource value: 0x7F0E00CF
-			public const int TextAppearance_AppCompat_Display4 = 2131624143;
-			
-			// aapt resource value: 0x7F0E00D0
-			public const int TextAppearance_AppCompat_Headline = 2131624144;
-			
-			// aapt resource value: 0x7F0E00D1
-			public const int TextAppearance_AppCompat_Inverse = 2131624145;
-			
-			// aapt resource value: 0x7F0E00D2
-			public const int TextAppearance_AppCompat_Large = 2131624146;
-			
-			// aapt resource value: 0x7F0E00D3
-			public const int TextAppearance_AppCompat_Large_Inverse = 2131624147;
-			
-			// aapt resource value: 0x7F0E00D4
-			public const int TextAppearance_AppCompat_Light_SearchResult_Subtitle = 2131624148;
-			
-			// aapt resource value: 0x7F0E00D5
-			public const int TextAppearance_AppCompat_Light_SearchResult_Title = 2131624149;
-			
-			// aapt resource value: 0x7F0E00D6
-			public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131624150;
-			
-			// aapt resource value: 0x7F0E00D7
-			public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131624151;
-			
-			// aapt resource value: 0x7F0E00D8
-			public const int TextAppearance_AppCompat_Medium = 2131624152;
-			
-			// aapt resource value: 0x7F0E00D9
-			public const int TextAppearance_AppCompat_Medium_Inverse = 2131624153;
-			
-			// aapt resource value: 0x7F0E00DA
-			public const int TextAppearance_AppCompat_Menu = 2131624154;
-			
-			// aapt resource value: 0x7F0E00DB
-			public const int TextAppearance_AppCompat_Notification = 2131624155;
-			
-			// aapt resource value: 0x7F0E00DC
-			public const int TextAppearance_AppCompat_Notification_Info = 2131624156;
-			
-			// aapt resource value: 0x7F0E00DD
-			public const int TextAppearance_AppCompat_Notification_Info_Media = 2131624157;
-			
-			// aapt resource value: 0x7F0E00DE
-			public const int TextAppearance_AppCompat_Notification_Line2 = 2131624158;
-			
-			// aapt resource value: 0x7F0E00DF
-			public const int TextAppearance_AppCompat_Notification_Line2_Media = 2131624159;
-			
-			// aapt resource value: 0x7F0E00E0
-			public const int TextAppearance_AppCompat_Notification_Media = 2131624160;
-			
-			// aapt resource value: 0x7F0E00E1
-			public const int TextAppearance_AppCompat_Notification_Time = 2131624161;
-			
-			// aapt resource value: 0x7F0E00E2
-			public const int TextAppearance_AppCompat_Notification_Time_Media = 2131624162;
-			
-			// aapt resource value: 0x7F0E00E3
-			public const int TextAppearance_AppCompat_Notification_Title = 2131624163;
-			
-			// aapt resource value: 0x7F0E00E4
-			public const int TextAppearance_AppCompat_Notification_Title_Media = 2131624164;
-			
-			// aapt resource value: 0x7F0E00E5
-			public const int TextAppearance_AppCompat_SearchResult_Subtitle = 2131624165;
-			
-			// aapt resource value: 0x7F0E00E6
-			public const int TextAppearance_AppCompat_SearchResult_Title = 2131624166;
-			
-			// aapt resource value: 0x7F0E00E7
-			public const int TextAppearance_AppCompat_Small = 2131624167;
-			
-			// aapt resource value: 0x7F0E00E8
-			public const int TextAppearance_AppCompat_Small_Inverse = 2131624168;
-			
-			// aapt resource value: 0x7F0E00E9
-			public const int TextAppearance_AppCompat_Subhead = 2131624169;
-			
-			// aapt resource value: 0x7F0E00EA
-			public const int TextAppearance_AppCompat_Subhead_Inverse = 2131624170;
-			
-			// aapt resource value: 0x7F0E00EB
-			public const int TextAppearance_AppCompat_Title = 2131624171;
-			
-			// aapt resource value: 0x7F0E00EC
-			public const int TextAppearance_AppCompat_Title_Inverse = 2131624172;
-			
-			// aapt resource value: 0x7F0E00ED
-			public const int TextAppearance_AppCompat_Tooltip = 2131624173;
-			
-			// aapt resource value: 0x7F0E00EE
-			public const int TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131624174;
-			
-			// aapt resource value: 0x7F0E00EF
-			public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131624175;
-			
-			// aapt resource value: 0x7F0E00F0
-			public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131624176;
-			
-			// aapt resource value: 0x7F0E00F1
-			public const int TextAppearance_AppCompat_Widget_ActionBar_Title = 2131624177;
-			
-			// aapt resource value: 0x7F0E00F2
-			public const int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131624178;
-			
-			// aapt resource value: 0x7F0E00F3
-			public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131624179;
-			
-			// aapt resource value: 0x7F0E00F4
-			public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse = 2131624180;
-			
-			// aapt resource value: 0x7F0E00F5
-			public const int TextAppearance_AppCompat_Widget_ActionMode_Title = 2131624181;
-			
-			// aapt resource value: 0x7F0E00F6
-			public const int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse = 2131624182;
-			
-			// aapt resource value: 0x7F0E00F7
-			public const int TextAppearance_AppCompat_Widget_Button = 2131624183;
-			
-			// aapt resource value: 0x7F0E00F8
-			public const int TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131624184;
-			
-			// aapt resource value: 0x7F0E00F9
-			public const int TextAppearance_AppCompat_Widget_Button_Colored = 2131624185;
-			
-			// aapt resource value: 0x7F0E00FA
-			public const int TextAppearance_AppCompat_Widget_Button_Inverse = 2131624186;
-			
-			// aapt resource value: 0x7F0E00FB
-			public const int TextAppearance_AppCompat_Widget_DropDownItem = 2131624187;
-			
-			// aapt resource value: 0x7F0E00FC
-			public const int TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131624188;
-			
-			// aapt resource value: 0x7F0E00FD
-			public const int TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131624189;
-			
-			// aapt resource value: 0x7F0E00FE
-			public const int TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131624190;
-			
-			// aapt resource value: 0x7F0E00FF
-			public const int TextAppearance_AppCompat_Widget_Switch = 2131624191;
-			
-			// aapt resource value: 0x7F0E0100
-			public const int TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131624192;
-			
-			// aapt resource value: 0x7F0E0101
-			public const int TextAppearance_Compat_Notification = 2131624193;
-			
-			// aapt resource value: 0x7F0E0102
-			public const int TextAppearance_Compat_Notification_Info = 2131624194;
-			
-			// aapt resource value: 0x7F0E0103
-			public const int TextAppearance_Compat_Notification_Info_Media = 2131624195;
-			
-			// aapt resource value: 0x7F0E0104
-			public const int TextAppearance_Compat_Notification_Line2 = 2131624196;
-			
-			// aapt resource value: 0x7F0E0105
-			public const int TextAppearance_Compat_Notification_Line2_Media = 2131624197;
-			
-			// aapt resource value: 0x7F0E0106
-			public const int TextAppearance_Compat_Notification_Media = 2131624198;
-			
-			// aapt resource value: 0x7F0E0107
-			public const int TextAppearance_Compat_Notification_Time = 2131624199;
-			
-			// aapt resource value: 0x7F0E0108
-			public const int TextAppearance_Compat_Notification_Time_Media = 2131624200;
-			
-			// aapt resource value: 0x7F0E0109
-			public const int TextAppearance_Compat_Notification_Title = 2131624201;
-			
-			// aapt resource value: 0x7F0E010A
-			public const int TextAppearance_Compat_Notification_Title_Media = 2131624202;
-			
-			// aapt resource value: 0x7F0E010B
-			public const int TextAppearance_Design_CollapsingToolbar_Expanded = 2131624203;
-			
-			// aapt resource value: 0x7F0E010C
-			public const int TextAppearance_Design_Counter = 2131624204;
-			
-			// aapt resource value: 0x7F0E010D
-			public const int TextAppearance_Design_Counter_Overflow = 2131624205;
-			
-			// aapt resource value: 0x7F0E010E
-			public const int TextAppearance_Design_Error = 2131624206;
-			
-			// aapt resource value: 0x7F0E010F
-			public const int TextAppearance_Design_Hint = 2131624207;
-			
-			// aapt resource value: 0x7F0E0110
-			public const int TextAppearance_Design_Snackbar_Message = 2131624208;
-			
-			// aapt resource value: 0x7F0E0111
-			public const int TextAppearance_Design_Tab = 2131624209;
-			
-			// aapt resource value: 0x7F0E0112
-			public const int TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131624210;
-			
-			// aapt resource value: 0x7F0E0113
-			public const int TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131624211;
-			
-			// aapt resource value: 0x7F0E0114
-			public const int TextAppearance_Widget_AppCompat_Toolbar_Title = 2131624212;
-			
-			// aapt resource value: 0x7F0E0131
-			public const int ThemeOverlay_AppCompat = 2131624241;
-			
-			// aapt resource value: 0x7F0E0132
-			public const int ThemeOverlay_AppCompat_ActionBar = 2131624242;
-			
-			// aapt resource value: 0x7F0E0133
-			public const int ThemeOverlay_AppCompat_Dark = 2131624243;
-			
-			// aapt resource value: 0x7F0E0134
-			public const int ThemeOverlay_AppCompat_Dark_ActionBar = 2131624244;
-			
-			// aapt resource value: 0x7F0E0135
-			public const int ThemeOverlay_AppCompat_Dialog = 2131624245;
-			
-			// aapt resource value: 0x7F0E0136
-			public const int ThemeOverlay_AppCompat_Dialog_Alert = 2131624246;
-			
-			// aapt resource value: 0x7F0E0137
-			public const int ThemeOverlay_AppCompat_Light = 2131624247;
-			
-			// aapt resource value: 0x7F0E0115
-			public const int Theme_AppCompat = 2131624213;
-			
-			// aapt resource value: 0x7F0E0116
-			public const int Theme_AppCompat_CompactMenu = 2131624214;
-			
-			// aapt resource value: 0x7F0E0117
-			public const int Theme_AppCompat_DayNight = 2131624215;
-			
-			// aapt resource value: 0x7F0E0118
-			public const int Theme_AppCompat_DayNight_DarkActionBar = 2131624216;
-			
-			// aapt resource value: 0x7F0E0119
-			public const int Theme_AppCompat_DayNight_Dialog = 2131624217;
-			
-			// aapt resource value: 0x7F0E011C
-			public const int Theme_AppCompat_DayNight_DialogWhenLarge = 2131624220;
-			
-			// aapt resource value: 0x7F0E011A
-			public const int Theme_AppCompat_DayNight_Dialog_Alert = 2131624218;
-			
-			// aapt resource value: 0x7F0E011B
-			public const int Theme_AppCompat_DayNight_Dialog_MinWidth = 2131624219;
-			
-			// aapt resource value: 0x7F0E011D
-			public const int Theme_AppCompat_DayNight_NoActionBar = 2131624221;
-			
-			// aapt resource value: 0x7F0E011E
-			public const int Theme_AppCompat_Dialog = 2131624222;
-			
-			// aapt resource value: 0x7F0E0121
-			public const int Theme_AppCompat_DialogWhenLarge = 2131624225;
-			
-			// aapt resource value: 0x7F0E011F
-			public const int Theme_AppCompat_Dialog_Alert = 2131624223;
-			
-			// aapt resource value: 0x7F0E0120
-			public const int Theme_AppCompat_Dialog_MinWidth = 2131624224;
-			
-			// aapt resource value: 0x7F0E0122
-			public const int Theme_AppCompat_Light = 2131624226;
-			
-			// aapt resource value: 0x7F0E0123
-			public const int Theme_AppCompat_Light_DarkActionBar = 2131624227;
-			
-			// aapt resource value: 0x7F0E0124
-			public const int Theme_AppCompat_Light_Dialog = 2131624228;
-			
-			// aapt resource value: 0x7F0E0127
-			public const int Theme_AppCompat_Light_DialogWhenLarge = 2131624231;
-			
-			// aapt resource value: 0x7F0E0125
-			public const int Theme_AppCompat_Light_Dialog_Alert = 2131624229;
-			
-			// aapt resource value: 0x7F0E0126
-			public const int Theme_AppCompat_Light_Dialog_MinWidth = 2131624230;
-			
-			// aapt resource value: 0x7F0E0128
-			public const int Theme_AppCompat_Light_NoActionBar = 2131624232;
-			
-			// aapt resource value: 0x7F0E0129
-			public const int Theme_AppCompat_NoActionBar = 2131624233;
-			
-			// aapt resource value: 0x7F0E012A
-			public const int Theme_BiometricPromptDialog = 2131624234;
-			
-			// aapt resource value: 0x7F0E012B
-			public const int Theme_Design = 2131624235;
-			
-			// aapt resource value: 0x7F0E012C
-			public const int Theme_Design_BottomSheetDialog = 2131624236;
-			
-			// aapt resource value: 0x7F0E012D
-			public const int Theme_Design_Light = 2131624237;
-			
-			// aapt resource value: 0x7F0E012E
-			public const int Theme_Design_Light_BottomSheetDialog = 2131624238;
-			
-			// aapt resource value: 0x7F0E012F
-			public const int Theme_Design_Light_NoActionBar = 2131624239;
-			
-			// aapt resource value: 0x7F0E0130
-			public const int Theme_Design_NoActionBar = 2131624240;
-			
-			// aapt resource value: 0x7F0E0138
-			public const int Widget_AppCompat_ActionBar = 2131624248;
-			
-			// aapt resource value: 0x7F0E0139
-			public const int Widget_AppCompat_ActionBar_Solid = 2131624249;
-			
-			// aapt resource value: 0x7F0E013A
-			public const int Widget_AppCompat_ActionBar_TabBar = 2131624250;
-			
-			// aapt resource value: 0x7F0E013B
-			public const int Widget_AppCompat_ActionBar_TabText = 2131624251;
-			
-			// aapt resource value: 0x7F0E013C
-			public const int Widget_AppCompat_ActionBar_TabView = 2131624252;
-			
-			// aapt resource value: 0x7F0E013D
-			public const int Widget_AppCompat_ActionButton = 2131624253;
-			
-			// aapt resource value: 0x7F0E013E
-			public const int Widget_AppCompat_ActionButton_CloseMode = 2131624254;
-			
-			// aapt resource value: 0x7F0E013F
-			public const int Widget_AppCompat_ActionButton_Overflow = 2131624255;
-			
-			// aapt resource value: 0x7F0E0140
-			public const int Widget_AppCompat_ActionMode = 2131624256;
-			
-			// aapt resource value: 0x7F0E0141
-			public const int Widget_AppCompat_ActivityChooserView = 2131624257;
-			
-			// aapt resource value: 0x7F0E0142
-			public const int Widget_AppCompat_AutoCompleteTextView = 2131624258;
-			
-			// aapt resource value: 0x7F0E0143
-			public const int Widget_AppCompat_Button = 2131624259;
-			
-			// aapt resource value: 0x7F0E0149
-			public const int Widget_AppCompat_ButtonBar = 2131624265;
-			
-			// aapt resource value: 0x7F0E014A
-			public const int Widget_AppCompat_ButtonBar_AlertDialog = 2131624266;
-			
-			// aapt resource value: 0x7F0E0144
-			public const int Widget_AppCompat_Button_Borderless = 2131624260;
-			
-			// aapt resource value: 0x7F0E0145
-			public const int Widget_AppCompat_Button_Borderless_Colored = 2131624261;
-			
-			// aapt resource value: 0x7F0E0146
-			public const int Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131624262;
-			
-			// aapt resource value: 0x7F0E0147
-			public const int Widget_AppCompat_Button_Colored = 2131624263;
-			
-			// aapt resource value: 0x7F0E0148
-			public const int Widget_AppCompat_Button_Small = 2131624264;
-			
-			// aapt resource value: 0x7F0E014B
-			public const int Widget_AppCompat_CompoundButton_CheckBox = 2131624267;
-			
-			// aapt resource value: 0x7F0E014C
-			public const int Widget_AppCompat_CompoundButton_RadioButton = 2131624268;
-			
-			// aapt resource value: 0x7F0E014D
-			public const int Widget_AppCompat_CompoundButton_Switch = 2131624269;
-			
-			// aapt resource value: 0x7F0E014E
-			public const int Widget_AppCompat_DrawerArrowToggle = 2131624270;
-			
-			// aapt resource value: 0x7F0E014F
-			public const int Widget_AppCompat_DropDownItem_Spinner = 2131624271;
-			
-			// aapt resource value: 0x7F0E0150
-			public const int Widget_AppCompat_EditText = 2131624272;
-			
-			// aapt resource value: 0x7F0E0151
-			public const int Widget_AppCompat_ImageButton = 2131624273;
-			
-			// aapt resource value: 0x7F0E0152
-			public const int Widget_AppCompat_Light_ActionBar = 2131624274;
-			
-			// aapt resource value: 0x7F0E0153
-			public const int Widget_AppCompat_Light_ActionBar_Solid = 2131624275;
-			
-			// aapt resource value: 0x7F0E0154
-			public const int Widget_AppCompat_Light_ActionBar_Solid_Inverse = 2131624276;
-			
-			// aapt resource value: 0x7F0E0155
-			public const int Widget_AppCompat_Light_ActionBar_TabBar = 2131624277;
-			
-			// aapt resource value: 0x7F0E0156
-			public const int Widget_AppCompat_Light_ActionBar_TabBar_Inverse = 2131624278;
-			
-			// aapt resource value: 0x7F0E0157
-			public const int Widget_AppCompat_Light_ActionBar_TabText = 2131624279;
-			
-			// aapt resource value: 0x7F0E0158
-			public const int Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131624280;
-			
-			// aapt resource value: 0x7F0E0159
-			public const int Widget_AppCompat_Light_ActionBar_TabView = 2131624281;
-			
-			// aapt resource value: 0x7F0E015A
-			public const int Widget_AppCompat_Light_ActionBar_TabView_Inverse = 2131624282;
-			
-			// aapt resource value: 0x7F0E015B
-			public const int Widget_AppCompat_Light_ActionButton = 2131624283;
-			
-			// aapt resource value: 0x7F0E015C
-			public const int Widget_AppCompat_Light_ActionButton_CloseMode = 2131624284;
-			
-			// aapt resource value: 0x7F0E015D
-			public const int Widget_AppCompat_Light_ActionButton_Overflow = 2131624285;
-			
-			// aapt resource value: 0x7F0E015E
-			public const int Widget_AppCompat_Light_ActionMode_Inverse = 2131624286;
-			
-			// aapt resource value: 0x7F0E015F
-			public const int Widget_AppCompat_Light_ActivityChooserView = 2131624287;
-			
-			// aapt resource value: 0x7F0E0160
-			public const int Widget_AppCompat_Light_AutoCompleteTextView = 2131624288;
-			
-			// aapt resource value: 0x7F0E0161
-			public const int Widget_AppCompat_Light_DropDownItem_Spinner = 2131624289;
-			
-			// aapt resource value: 0x7F0E0162
-			public const int Widget_AppCompat_Light_ListPopupWindow = 2131624290;
-			
-			// aapt resource value: 0x7F0E0163
-			public const int Widget_AppCompat_Light_ListView_DropDown = 2131624291;
-			
-			// aapt resource value: 0x7F0E0164
-			public const int Widget_AppCompat_Light_PopupMenu = 2131624292;
-			
-			// aapt resource value: 0x7F0E0165
-			public const int Widget_AppCompat_Light_PopupMenu_Overflow = 2131624293;
-			
-			// aapt resource value: 0x7F0E0166
-			public const int Widget_AppCompat_Light_SearchView = 2131624294;
-			
-			// aapt resource value: 0x7F0E0167
-			public const int Widget_AppCompat_Light_Spinner_DropDown_ActionBar = 2131624295;
-			
-			// aapt resource value: 0x7F0E0168
-			public const int Widget_AppCompat_ListMenuView = 2131624296;
-			
-			// aapt resource value: 0x7F0E0169
-			public const int Widget_AppCompat_ListPopupWindow = 2131624297;
-			
-			// aapt resource value: 0x7F0E016A
-			public const int Widget_AppCompat_ListView = 2131624298;
-			
-			// aapt resource value: 0x7F0E016B
-			public const int Widget_AppCompat_ListView_DropDown = 2131624299;
-			
-			// aapt resource value: 0x7F0E016C
-			public const int Widget_AppCompat_ListView_Menu = 2131624300;
-			
-			// aapt resource value: 0x7F0E016D
-			public const int Widget_AppCompat_PopupMenu = 2131624301;
-			
-			// aapt resource value: 0x7F0E016E
-			public const int Widget_AppCompat_PopupMenu_Overflow = 2131624302;
-			
+
+			// aapt resource value: 0x7f0b009d
+			public const int AlertDialog_AppCompat = 2131427485;
+
+			// aapt resource value: 0x7f0b009e
+			public const int AlertDialog_AppCompat_Light = 2131427486;
+
+			// aapt resource value: 0x7f0b009f
+			public const int Animation_AppCompat_Dialog = 2131427487;
+
+			// aapt resource value: 0x7f0b00a0
+			public const int Animation_AppCompat_DropDownUp = 2131427488;
+
+			// aapt resource value: 0x7f0b00a1
+			public const int Animation_AppCompat_Tooltip = 2131427489;
+
+			// aapt resource value: 0x7f0b0169
+			public const int Animation_Design_BottomSheetDialog = 2131427689;
+
+			// aapt resource value: 0x7f0b00a2
+			public const int Base_AlertDialog_AppCompat = 2131427490;
+
+			// aapt resource value: 0x7f0b00a3
+			public const int Base_AlertDialog_AppCompat_Light = 2131427491;
+
+			// aapt resource value: 0x7f0b00a4
+			public const int Base_Animation_AppCompat_Dialog = 2131427492;
+
+			// aapt resource value: 0x7f0b00a5
+			public const int Base_Animation_AppCompat_DropDownUp = 2131427493;
+
+			// aapt resource value: 0x7f0b00a6
+			public const int Base_Animation_AppCompat_Tooltip = 2131427494;
+
+			// aapt resource value: 0x7f0b00a7
+			public const int Base_DialogWindowTitle_AppCompat = 2131427495;
+
+			// aapt resource value: 0x7f0b00a8
+			public const int Base_DialogWindowTitleBackground_AppCompat = 2131427496;
+
+			// aapt resource value: 0x7f0b0039
+			public const int Base_TextAppearance_AppCompat = 2131427385;
+
+			// aapt resource value: 0x7f0b003a
+			public const int Base_TextAppearance_AppCompat_Body1 = 2131427386;
+
+			// aapt resource value: 0x7f0b003b
+			public const int Base_TextAppearance_AppCompat_Body2 = 2131427387;
+
+			// aapt resource value: 0x7f0b0027
+			public const int Base_TextAppearance_AppCompat_Button = 2131427367;
+
+			// aapt resource value: 0x7f0b003c
+			public const int Base_TextAppearance_AppCompat_Caption = 2131427388;
+
+			// aapt resource value: 0x7f0b003d
+			public const int Base_TextAppearance_AppCompat_Display1 = 2131427389;
+
+			// aapt resource value: 0x7f0b003e
+			public const int Base_TextAppearance_AppCompat_Display2 = 2131427390;
+
+			// aapt resource value: 0x7f0b003f
+			public const int Base_TextAppearance_AppCompat_Display3 = 2131427391;
+
+			// aapt resource value: 0x7f0b0040
+			public const int Base_TextAppearance_AppCompat_Display4 = 2131427392;
+
+			// aapt resource value: 0x7f0b0041
+			public const int Base_TextAppearance_AppCompat_Headline = 2131427393;
+
+			// aapt resource value: 0x7f0b000b
+			public const int Base_TextAppearance_AppCompat_Inverse = 2131427339;
+
+			// aapt resource value: 0x7f0b0042
+			public const int Base_TextAppearance_AppCompat_Large = 2131427394;
+
+			// aapt resource value: 0x7f0b000c
+			public const int Base_TextAppearance_AppCompat_Large_Inverse = 2131427340;
+
+			// aapt resource value: 0x7f0b0043
+			public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131427395;
+
+			// aapt resource value: 0x7f0b0044
+			public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131427396;
+
+			// aapt resource value: 0x7f0b0045
+			public const int Base_TextAppearance_AppCompat_Medium = 2131427397;
+
+			// aapt resource value: 0x7f0b000d
+			public const int Base_TextAppearance_AppCompat_Medium_Inverse = 2131427341;
+
+			// aapt resource value: 0x7f0b0046
+			public const int Base_TextAppearance_AppCompat_Menu = 2131427398;
+
+			// aapt resource value: 0x7f0b00a9
+			public const int Base_TextAppearance_AppCompat_SearchResult = 2131427497;
+
+			// aapt resource value: 0x7f0b0047
+			public const int Base_TextAppearance_AppCompat_SearchResult_Subtitle = 2131427399;
+
+			// aapt resource value: 0x7f0b0048
+			public const int Base_TextAppearance_AppCompat_SearchResult_Title = 2131427400;
+
+			// aapt resource value: 0x7f0b0049
+			public const int Base_TextAppearance_AppCompat_Small = 2131427401;
+
+			// aapt resource value: 0x7f0b000e
+			public const int Base_TextAppearance_AppCompat_Small_Inverse = 2131427342;
+
+			// aapt resource value: 0x7f0b004a
+			public const int Base_TextAppearance_AppCompat_Subhead = 2131427402;
+
+			// aapt resource value: 0x7f0b000f
+			public const int Base_TextAppearance_AppCompat_Subhead_Inverse = 2131427343;
+
+			// aapt resource value: 0x7f0b004b
+			public const int Base_TextAppearance_AppCompat_Title = 2131427403;
+
+			// aapt resource value: 0x7f0b0010
+			public const int Base_TextAppearance_AppCompat_Title_Inverse = 2131427344;
+
+			// aapt resource value: 0x7f0b00aa
+			public const int Base_TextAppearance_AppCompat_Tooltip = 2131427498;
+
+			// aapt resource value: 0x7f0b008e
+			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131427470;
+
+			// aapt resource value: 0x7f0b004c
+			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131427404;
+
+			// aapt resource value: 0x7f0b004d
+			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131427405;
+
+			// aapt resource value: 0x7f0b004e
+			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title = 2131427406;
+
+			// aapt resource value: 0x7f0b004f
+			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131427407;
+
+			// aapt resource value: 0x7f0b0050
+			public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131427408;
+
+			// aapt resource value: 0x7f0b0051
+			public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Title = 2131427409;
+
+			// aapt resource value: 0x7f0b0052
+			public const int Base_TextAppearance_AppCompat_Widget_Button = 2131427410;
+
+			// aapt resource value: 0x7f0b0095
+			public const int Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131427477;
+
+			// aapt resource value: 0x7f0b0096
+			public const int Base_TextAppearance_AppCompat_Widget_Button_Colored = 2131427478;
+
+			// aapt resource value: 0x7f0b008f
+			public const int Base_TextAppearance_AppCompat_Widget_Button_Inverse = 2131427471;
+
+			// aapt resource value: 0x7f0b00ab
+			public const int Base_TextAppearance_AppCompat_Widget_DropDownItem = 2131427499;
+
+			// aapt resource value: 0x7f0b0053
+			public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131427411;
+
+			// aapt resource value: 0x7f0b0054
+			public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131427412;
+
+			// aapt resource value: 0x7f0b0055
+			public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131427413;
+
+			// aapt resource value: 0x7f0b0056
+			public const int Base_TextAppearance_AppCompat_Widget_Switch = 2131427414;
+
+			// aapt resource value: 0x7f0b0057
+			public const int Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131427415;
+
+			// aapt resource value: 0x7f0b00ac
+			public const int Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131427500;
+
+			// aapt resource value: 0x7f0b0058
+			public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131427416;
+
+			// aapt resource value: 0x7f0b0059
+			public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Title = 2131427417;
+
+			// aapt resource value: 0x7f0b005a
+			public const int Base_Theme_AppCompat = 2131427418;
+
+			// aapt resource value: 0x7f0b00ad
+			public const int Base_Theme_AppCompat_CompactMenu = 2131427501;
+
+			// aapt resource value: 0x7f0b0011
+			public const int Base_Theme_AppCompat_Dialog = 2131427345;
+
+			// aapt resource value: 0x7f0b0012
+			public const int Base_Theme_AppCompat_Dialog_Alert = 2131427346;
+
+			// aapt resource value: 0x7f0b00ae
+			public const int Base_Theme_AppCompat_Dialog_FixedSize = 2131427502;
+
+			// aapt resource value: 0x7f0b0013
+			public const int Base_Theme_AppCompat_Dialog_MinWidth = 2131427347;
+
+			// aapt resource value: 0x7f0b0001
+			public const int Base_Theme_AppCompat_DialogWhenLarge = 2131427329;
+
+			// aapt resource value: 0x7f0b005b
+			public const int Base_Theme_AppCompat_Light = 2131427419;
+
+			// aapt resource value: 0x7f0b00af
+			public const int Base_Theme_AppCompat_Light_DarkActionBar = 2131427503;
+
+			// aapt resource value: 0x7f0b0014
+			public const int Base_Theme_AppCompat_Light_Dialog = 2131427348;
+
+			// aapt resource value: 0x7f0b0015
+			public const int Base_Theme_AppCompat_Light_Dialog_Alert = 2131427349;
+
+			// aapt resource value: 0x7f0b00b0
+			public const int Base_Theme_AppCompat_Light_Dialog_FixedSize = 2131427504;
+
+			// aapt resource value: 0x7f0b0016
+			public const int Base_Theme_AppCompat_Light_Dialog_MinWidth = 2131427350;
+
+			// aapt resource value: 0x7f0b0002
+			public const int Base_Theme_AppCompat_Light_DialogWhenLarge = 2131427330;
+
+			// aapt resource value: 0x7f0b00b1
+			public const int Base_ThemeOverlay_AppCompat = 2131427505;
+
+			// aapt resource value: 0x7f0b00b2
+			public const int Base_ThemeOverlay_AppCompat_ActionBar = 2131427506;
+
+			// aapt resource value: 0x7f0b00b3
+			public const int Base_ThemeOverlay_AppCompat_Dark = 2131427507;
+
+			// aapt resource value: 0x7f0b00b4
+			public const int Base_ThemeOverlay_AppCompat_Dark_ActionBar = 2131427508;
+
+			// aapt resource value: 0x7f0b0017
+			public const int Base_ThemeOverlay_AppCompat_Dialog = 2131427351;
+
+			// aapt resource value: 0x7f0b0018
+			public const int Base_ThemeOverlay_AppCompat_Dialog_Alert = 2131427352;
+
+			// aapt resource value: 0x7f0b00b5
+			public const int Base_ThemeOverlay_AppCompat_Light = 2131427509;
+
+			// aapt resource value: 0x7f0b0019
+			public const int Base_V11_Theme_AppCompat_Dialog = 2131427353;
+
+			// aapt resource value: 0x7f0b001a
+			public const int Base_V11_Theme_AppCompat_Light_Dialog = 2131427354;
+
+			// aapt resource value: 0x7f0b001b
+			public const int Base_V11_ThemeOverlay_AppCompat_Dialog = 2131427355;
+
+			// aapt resource value: 0x7f0b0023
+			public const int Base_V12_Widget_AppCompat_AutoCompleteTextView = 2131427363;
+
+			// aapt resource value: 0x7f0b0024
+			public const int Base_V12_Widget_AppCompat_EditText = 2131427364;
+
+			// aapt resource value: 0x7f0b016a
+			public const int Base_V14_Widget_Design_AppBarLayout = 2131427690;
+
+			// aapt resource value: 0x7f0b005c
+			public const int Base_V21_Theme_AppCompat = 2131427420;
+
+			// aapt resource value: 0x7f0b005d
+			public const int Base_V21_Theme_AppCompat_Dialog = 2131427421;
+
+			// aapt resource value: 0x7f0b005e
+			public const int Base_V21_Theme_AppCompat_Light = 2131427422;
+
+			// aapt resource value: 0x7f0b005f
+			public const int Base_V21_Theme_AppCompat_Light_Dialog = 2131427423;
+
+			// aapt resource value: 0x7f0b0060
+			public const int Base_V21_ThemeOverlay_AppCompat_Dialog = 2131427424;
+
+			// aapt resource value: 0x7f0b0166
+			public const int Base_V21_Widget_Design_AppBarLayout = 2131427686;
+
+			// aapt resource value: 0x7f0b008c
+			public const int Base_V22_Theme_AppCompat = 2131427468;
+
+			// aapt resource value: 0x7f0b008d
+			public const int Base_V22_Theme_AppCompat_Light = 2131427469;
+
+			// aapt resource value: 0x7f0b0090
+			public const int Base_V23_Theme_AppCompat = 2131427472;
+
+			// aapt resource value: 0x7f0b0091
+			public const int Base_V23_Theme_AppCompat_Light = 2131427473;
+
+			// aapt resource value: 0x7f0b0099
+			public const int Base_V26_Theme_AppCompat = 2131427481;
+
+			// aapt resource value: 0x7f0b009a
+			public const int Base_V26_Theme_AppCompat_Light = 2131427482;
+
+			// aapt resource value: 0x7f0b009b
+			public const int Base_V26_Widget_AppCompat_Toolbar = 2131427483;
+
+			// aapt resource value: 0x7f0b0168
+			public const int Base_V26_Widget_Design_AppBarLayout = 2131427688;
+
+			// aapt resource value: 0x7f0b00b6
+			public const int Base_V7_Theme_AppCompat = 2131427510;
+
+			// aapt resource value: 0x7f0b00b7
+			public const int Base_V7_Theme_AppCompat_Dialog = 2131427511;
+
+			// aapt resource value: 0x7f0b00b8
+			public const int Base_V7_Theme_AppCompat_Light = 2131427512;
+
+			// aapt resource value: 0x7f0b00b9
+			public const int Base_V7_Theme_AppCompat_Light_Dialog = 2131427513;
+
+			// aapt resource value: 0x7f0b00ba
+			public const int Base_V7_ThemeOverlay_AppCompat_Dialog = 2131427514;
+
+			// aapt resource value: 0x7f0b00bb
+			public const int Base_V7_Widget_AppCompat_AutoCompleteTextView = 2131427515;
+
+			// aapt resource value: 0x7f0b00bc
+			public const int Base_V7_Widget_AppCompat_EditText = 2131427516;
+
+			// aapt resource value: 0x7f0b00bd
+			public const int Base_V7_Widget_AppCompat_Toolbar = 2131427517;
+
+			// aapt resource value: 0x7f0b00be
+			public const int Base_Widget_AppCompat_ActionBar = 2131427518;
+
+			// aapt resource value: 0x7f0b00bf
+			public const int Base_Widget_AppCompat_ActionBar_Solid = 2131427519;
+
+			// aapt resource value: 0x7f0b00c0
+			public const int Base_Widget_AppCompat_ActionBar_TabBar = 2131427520;
+
+			// aapt resource value: 0x7f0b0061
+			public const int Base_Widget_AppCompat_ActionBar_TabText = 2131427425;
+
+			// aapt resource value: 0x7f0b0062
+			public const int Base_Widget_AppCompat_ActionBar_TabView = 2131427426;
+
+			// aapt resource value: 0x7f0b0063
+			public const int Base_Widget_AppCompat_ActionButton = 2131427427;
+
+			// aapt resource value: 0x7f0b0064
+			public const int Base_Widget_AppCompat_ActionButton_CloseMode = 2131427428;
+
+			// aapt resource value: 0x7f0b0065
+			public const int Base_Widget_AppCompat_ActionButton_Overflow = 2131427429;
+
+			// aapt resource value: 0x7f0b00c1
+			public const int Base_Widget_AppCompat_ActionMode = 2131427521;
+
+			// aapt resource value: 0x7f0b00c2
+			public const int Base_Widget_AppCompat_ActivityChooserView = 2131427522;
+
+			// aapt resource value: 0x7f0b0025
+			public const int Base_Widget_AppCompat_AutoCompleteTextView = 2131427365;
+
+			// aapt resource value: 0x7f0b0066
+			public const int Base_Widget_AppCompat_Button = 2131427430;
+
+			// aapt resource value: 0x7f0b0067
+			public const int Base_Widget_AppCompat_Button_Borderless = 2131427431;
+
+			// aapt resource value: 0x7f0b0068
+			public const int Base_Widget_AppCompat_Button_Borderless_Colored = 2131427432;
+
+			// aapt resource value: 0x7f0b00c3
+			public const int Base_Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131427523;
+
+			// aapt resource value: 0x7f0b0092
+			public const int Base_Widget_AppCompat_Button_Colored = 2131427474;
+
+			// aapt resource value: 0x7f0b0069
+			public const int Base_Widget_AppCompat_Button_Small = 2131427433;
+
+			// aapt resource value: 0x7f0b006a
+			public const int Base_Widget_AppCompat_ButtonBar = 2131427434;
+
+			// aapt resource value: 0x7f0b00c4
+			public const int Base_Widget_AppCompat_ButtonBar_AlertDialog = 2131427524;
+
+			// aapt resource value: 0x7f0b006b
+			public const int Base_Widget_AppCompat_CompoundButton_CheckBox = 2131427435;
+
+			// aapt resource value: 0x7f0b006c
+			public const int Base_Widget_AppCompat_CompoundButton_RadioButton = 2131427436;
+
+			// aapt resource value: 0x7f0b00c5
+			public const int Base_Widget_AppCompat_CompoundButton_Switch = 2131427525;
+
+			// aapt resource value: 0x7f0b0000
+			public const int Base_Widget_AppCompat_DrawerArrowToggle = 2131427328;
+
+			// aapt resource value: 0x7f0b00c6
+			public const int Base_Widget_AppCompat_DrawerArrowToggle_Common = 2131427526;
+
+			// aapt resource value: 0x7f0b006d
+			public const int Base_Widget_AppCompat_DropDownItem_Spinner = 2131427437;
+
+			// aapt resource value: 0x7f0b0026
+			public const int Base_Widget_AppCompat_EditText = 2131427366;
+
+			// aapt resource value: 0x7f0b006e
+			public const int Base_Widget_AppCompat_ImageButton = 2131427438;
+
+			// aapt resource value: 0x7f0b00c7
+			public const int Base_Widget_AppCompat_Light_ActionBar = 2131427527;
+
+			// aapt resource value: 0x7f0b00c8
+			public const int Base_Widget_AppCompat_Light_ActionBar_Solid = 2131427528;
+
+			// aapt resource value: 0x7f0b00c9
+			public const int Base_Widget_AppCompat_Light_ActionBar_TabBar = 2131427529;
+
+			// aapt resource value: 0x7f0b006f
+			public const int Base_Widget_AppCompat_Light_ActionBar_TabText = 2131427439;
+
+			// aapt resource value: 0x7f0b0070
+			public const int Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131427440;
+
+			// aapt resource value: 0x7f0b0071
+			public const int Base_Widget_AppCompat_Light_ActionBar_TabView = 2131427441;
+
+			// aapt resource value: 0x7f0b0072
+			public const int Base_Widget_AppCompat_Light_PopupMenu = 2131427442;
+
+			// aapt resource value: 0x7f0b0073
+			public const int Base_Widget_AppCompat_Light_PopupMenu_Overflow = 2131427443;
+
+			// aapt resource value: 0x7f0b00ca
+			public const int Base_Widget_AppCompat_ListMenuView = 2131427530;
+
+			// aapt resource value: 0x7f0b0074
+			public const int Base_Widget_AppCompat_ListPopupWindow = 2131427444;
+
+			// aapt resource value: 0x7f0b0075
+			public const int Base_Widget_AppCompat_ListView = 2131427445;
+
+			// aapt resource value: 0x7f0b0076
+			public const int Base_Widget_AppCompat_ListView_DropDown = 2131427446;
+
+			// aapt resource value: 0x7f0b0077
+			public const int Base_Widget_AppCompat_ListView_Menu = 2131427447;
+
+			// aapt resource value: 0x7f0b0078
+			public const int Base_Widget_AppCompat_PopupMenu = 2131427448;
+
+			// aapt resource value: 0x7f0b0079
+			public const int Base_Widget_AppCompat_PopupMenu_Overflow = 2131427449;
+
+			// aapt resource value: 0x7f0b00cb
+			public const int Base_Widget_AppCompat_PopupWindow = 2131427531;
+
+			// aapt resource value: 0x7f0b001c
+			public const int Base_Widget_AppCompat_ProgressBar = 2131427356;
+
+			// aapt resource value: 0x7f0b001d
+			public const int Base_Widget_AppCompat_ProgressBar_Horizontal = 2131427357;
+
+			// aapt resource value: 0x7f0b007a
+			public const int Base_Widget_AppCompat_RatingBar = 2131427450;
+
+			// aapt resource value: 0x7f0b0093
+			public const int Base_Widget_AppCompat_RatingBar_Indicator = 2131427475;
+
+			// aapt resource value: 0x7f0b0094
+			public const int Base_Widget_AppCompat_RatingBar_Small = 2131427476;
+
+			// aapt resource value: 0x7f0b00cc
+			public const int Base_Widget_AppCompat_SearchView = 2131427532;
+
+			// aapt resource value: 0x7f0b00cd
+			public const int Base_Widget_AppCompat_SearchView_ActionBar = 2131427533;
+
+			// aapt resource value: 0x7f0b007b
+			public const int Base_Widget_AppCompat_SeekBar = 2131427451;
+
+			// aapt resource value: 0x7f0b00ce
+			public const int Base_Widget_AppCompat_SeekBar_Discrete = 2131427534;
+
+			// aapt resource value: 0x7f0b007c
+			public const int Base_Widget_AppCompat_Spinner = 2131427452;
+
+			// aapt resource value: 0x7f0b0003
+			public const int Base_Widget_AppCompat_Spinner_Underlined = 2131427331;
+
+			// aapt resource value: 0x7f0b007d
+			public const int Base_Widget_AppCompat_TextView_SpinnerItem = 2131427453;
+
+			// aapt resource value: 0x7f0b009c
+			public const int Base_Widget_AppCompat_Toolbar = 2131427484;
+
+			// aapt resource value: 0x7f0b007e
+			public const int Base_Widget_AppCompat_Toolbar_Button_Navigation = 2131427454;
+
+			// aapt resource value: 0x7f0b0167
+			public const int Base_Widget_Design_AppBarLayout = 2131427687;
+
+			// aapt resource value: 0x7f0b016b
+			public const int Base_Widget_Design_TabLayout = 2131427691;
+
+			// aapt resource value: 0x7f0b018a
+			public const int BottomSheetDialogAnimation = 2131427722;
+
+			// aapt resource value: 0x7f0b018f
+			public const int MyTheme = 2131427727;
+
+			// aapt resource value: 0x7f0b001e
+			public const int Platform_AppCompat = 2131427358;
+
+			// aapt resource value: 0x7f0b001f
+			public const int Platform_AppCompat_Light = 2131427359;
+
+			// aapt resource value: 0x7f0b007f
+			public const int Platform_ThemeOverlay_AppCompat = 2131427455;
+
+			// aapt resource value: 0x7f0b0080
+			public const int Platform_ThemeOverlay_AppCompat_Dark = 2131427456;
+
+			// aapt resource value: 0x7f0b0081
+			public const int Platform_ThemeOverlay_AppCompat_Light = 2131427457;
+
+			// aapt resource value: 0x7f0b0020
+			public const int Platform_V11_AppCompat = 2131427360;
+
+			// aapt resource value: 0x7f0b0021
+			public const int Platform_V11_AppCompat_Light = 2131427361;
+
+			// aapt resource value: 0x7f0b0028
+			public const int Platform_V14_AppCompat = 2131427368;
+
+			// aapt resource value: 0x7f0b0029
+			public const int Platform_V14_AppCompat_Light = 2131427369;
+
+			// aapt resource value: 0x7f0b0082
+			public const int Platform_V21_AppCompat = 2131427458;
+
+			// aapt resource value: 0x7f0b0083
+			public const int Platform_V21_AppCompat_Light = 2131427459;
+
+			// aapt resource value: 0x7f0b0097
+			public const int Platform_V25_AppCompat = 2131427479;
+
+			// aapt resource value: 0x7f0b0098
+			public const int Platform_V25_AppCompat_Light = 2131427480;
+
+			// aapt resource value: 0x7f0b0022
+			public const int Platform_Widget_AppCompat_Spinner = 2131427362;
+
+			// aapt resource value: 0x7f0b002b
+			public const int RtlOverlay_DialogWindowTitle_AppCompat = 2131427371;
+
+			// aapt resource value: 0x7f0b002c
+			public const int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem = 2131427372;
+
+			// aapt resource value: 0x7f0b002d
+			public const int RtlOverlay_Widget_AppCompat_DialogTitle_Icon = 2131427373;
+
+			// aapt resource value: 0x7f0b002e
+			public const int RtlOverlay_Widget_AppCompat_PopupMenuItem = 2131427374;
+
+			// aapt resource value: 0x7f0b002f
+			public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup = 2131427375;
+
+			// aapt resource value: 0x7f0b0030
+			public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_Text = 2131427376;
+
+			// aapt resource value: 0x7f0b0031
+			public const int RtlOverlay_Widget_AppCompat_Search_DropDown = 2131427377;
+
+			// aapt resource value: 0x7f0b0032
+			public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 = 2131427378;
+
+			// aapt resource value: 0x7f0b0033
+			public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 = 2131427379;
+
+			// aapt resource value: 0x7f0b0034
+			public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Query = 2131427380;
+
+			// aapt resource value: 0x7f0b0035
+			public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Text = 2131427381;
+
+			// aapt resource value: 0x7f0b0036
+			public const int RtlOverlay_Widget_AppCompat_SearchView_MagIcon = 2131427382;
+
+			// aapt resource value: 0x7f0b0037
+			public const int RtlUnderlay_Widget_AppCompat_ActionButton = 2131427383;
+
+			// aapt resource value: 0x7f0b0038
+			public const int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow = 2131427384;
+
+			// aapt resource value: 0x7f0b00cf
+			public const int TextAppearance_AppCompat = 2131427535;
+
+			// aapt resource value: 0x7f0b00d0
+			public const int TextAppearance_AppCompat_Body1 = 2131427536;
+
+			// aapt resource value: 0x7f0b00d1
+			public const int TextAppearance_AppCompat_Body2 = 2131427537;
+
+			// aapt resource value: 0x7f0b00d2
+			public const int TextAppearance_AppCompat_Button = 2131427538;
+
+			// aapt resource value: 0x7f0b00d3
+			public const int TextAppearance_AppCompat_Caption = 2131427539;
+
+			// aapt resource value: 0x7f0b00d4
+			public const int TextAppearance_AppCompat_Display1 = 2131427540;
+
+			// aapt resource value: 0x7f0b00d5
+			public const int TextAppearance_AppCompat_Display2 = 2131427541;
+
+			// aapt resource value: 0x7f0b00d6
+			public const int TextAppearance_AppCompat_Display3 = 2131427542;
+
+			// aapt resource value: 0x7f0b00d7
+			public const int TextAppearance_AppCompat_Display4 = 2131427543;
+
+			// aapt resource value: 0x7f0b00d8
+			public const int TextAppearance_AppCompat_Headline = 2131427544;
+
+			// aapt resource value: 0x7f0b00d9
+			public const int TextAppearance_AppCompat_Inverse = 2131427545;
+
+			// aapt resource value: 0x7f0b00da
+			public const int TextAppearance_AppCompat_Large = 2131427546;
+
+			// aapt resource value: 0x7f0b00db
+			public const int TextAppearance_AppCompat_Large_Inverse = 2131427547;
+
+			// aapt resource value: 0x7f0b00dc
+			public const int TextAppearance_AppCompat_Light_SearchResult_Subtitle = 2131427548;
+
+			// aapt resource value: 0x7f0b00dd
+			public const int TextAppearance_AppCompat_Light_SearchResult_Title = 2131427549;
+
+			// aapt resource value: 0x7f0b00de
+			public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131427550;
+
+			// aapt resource value: 0x7f0b00df
+			public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131427551;
+
+			// aapt resource value: 0x7f0b00e0
+			public const int TextAppearance_AppCompat_Medium = 2131427552;
+
+			// aapt resource value: 0x7f0b00e1
+			public const int TextAppearance_AppCompat_Medium_Inverse = 2131427553;
+
+			// aapt resource value: 0x7f0b00e2
+			public const int TextAppearance_AppCompat_Menu = 2131427554;
+
+			// aapt resource value: 0x7f0b0084
+			public const int TextAppearance_AppCompat_Notification = 2131427460;
+
+			// aapt resource value: 0x7f0b0085
+			public const int TextAppearance_AppCompat_Notification_Info = 2131427461;
+
+			// aapt resource value: 0x7f0b0086
+			public const int TextAppearance_AppCompat_Notification_Info_Media = 2131427462;
+
+			// aapt resource value: 0x7f0b00e3
+			public const int TextAppearance_AppCompat_Notification_Line2 = 2131427555;
+
+			// aapt resource value: 0x7f0b00e4
+			public const int TextAppearance_AppCompat_Notification_Line2_Media = 2131427556;
+
+			// aapt resource value: 0x7f0b0087
+			public const int TextAppearance_AppCompat_Notification_Media = 2131427463;
+
+			// aapt resource value: 0x7f0b0088
+			public const int TextAppearance_AppCompat_Notification_Time = 2131427464;
+
+			// aapt resource value: 0x7f0b0089
+			public const int TextAppearance_AppCompat_Notification_Time_Media = 2131427465;
+
+			// aapt resource value: 0x7f0b008a
+			public const int TextAppearance_AppCompat_Notification_Title = 2131427466;
+
+			// aapt resource value: 0x7f0b008b
+			public const int TextAppearance_AppCompat_Notification_Title_Media = 2131427467;
+
+			// aapt resource value: 0x7f0b00e5
+			public const int TextAppearance_AppCompat_SearchResult_Subtitle = 2131427557;
+
+			// aapt resource value: 0x7f0b00e6
+			public const int TextAppearance_AppCompat_SearchResult_Title = 2131427558;
+
+			// aapt resource value: 0x7f0b00e7
+			public const int TextAppearance_AppCompat_Small = 2131427559;
+
+			// aapt resource value: 0x7f0b00e8
+			public const int TextAppearance_AppCompat_Small_Inverse = 2131427560;
+
+			// aapt resource value: 0x7f0b00e9
+			public const int TextAppearance_AppCompat_Subhead = 2131427561;
+
+			// aapt resource value: 0x7f0b00ea
+			public const int TextAppearance_AppCompat_Subhead_Inverse = 2131427562;
+
+			// aapt resource value: 0x7f0b00eb
+			public const int TextAppearance_AppCompat_Title = 2131427563;
+
+			// aapt resource value: 0x7f0b00ec
+			public const int TextAppearance_AppCompat_Title_Inverse = 2131427564;
+
+			// aapt resource value: 0x7f0b002a
+			public const int TextAppearance_AppCompat_Tooltip = 2131427370;
+
+			// aapt resource value: 0x7f0b00ed
+			public const int TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131427565;
+
+			// aapt resource value: 0x7f0b00ee
+			public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131427566;
+
+			// aapt resource value: 0x7f0b00ef
+			public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131427567;
+
+			// aapt resource value: 0x7f0b00f0
+			public const int TextAppearance_AppCompat_Widget_ActionBar_Title = 2131427568;
+
+			// aapt resource value: 0x7f0b00f1
+			public const int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131427569;
+
+			// aapt resource value: 0x7f0b00f2
+			public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131427570;
+
+			// aapt resource value: 0x7f0b00f3
+			public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse = 2131427571;
+
+			// aapt resource value: 0x7f0b00f4
+			public const int TextAppearance_AppCompat_Widget_ActionMode_Title = 2131427572;
+
+			// aapt resource value: 0x7f0b00f5
+			public const int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse = 2131427573;
+
+			// aapt resource value: 0x7f0b00f6
+			public const int TextAppearance_AppCompat_Widget_Button = 2131427574;
+
+			// aapt resource value: 0x7f0b00f7
+			public const int TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131427575;
+
+			// aapt resource value: 0x7f0b00f8
+			public const int TextAppearance_AppCompat_Widget_Button_Colored = 2131427576;
+
+			// aapt resource value: 0x7f0b00f9
+			public const int TextAppearance_AppCompat_Widget_Button_Inverse = 2131427577;
+
+			// aapt resource value: 0x7f0b00fa
+			public const int TextAppearance_AppCompat_Widget_DropDownItem = 2131427578;
+
+			// aapt resource value: 0x7f0b00fb
+			public const int TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131427579;
+
+			// aapt resource value: 0x7f0b00fc
+			public const int TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131427580;
+
+			// aapt resource value: 0x7f0b00fd
+			public const int TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131427581;
+
+			// aapt resource value: 0x7f0b00fe
+			public const int TextAppearance_AppCompat_Widget_Switch = 2131427582;
+
+			// aapt resource value: 0x7f0b00ff
+			public const int TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131427583;
+
+			// aapt resource value: 0x7f0b0183
+			public const int TextAppearance_Compat_Notification = 2131427715;
+
+			// aapt resource value: 0x7f0b0184
+			public const int TextAppearance_Compat_Notification_Info = 2131427716;
+
+			// aapt resource value: 0x7f0b0160
+			public const int TextAppearance_Compat_Notification_Info_Media = 2131427680;
+
+			// aapt resource value: 0x7f0b0189
+			public const int TextAppearance_Compat_Notification_Line2 = 2131427721;
+
+			// aapt resource value: 0x7f0b0164
+			public const int TextAppearance_Compat_Notification_Line2_Media = 2131427684;
+
+			// aapt resource value: 0x7f0b0161
+			public const int TextAppearance_Compat_Notification_Media = 2131427681;
+
+			// aapt resource value: 0x7f0b0185
+			public const int TextAppearance_Compat_Notification_Time = 2131427717;
+
+			// aapt resource value: 0x7f0b0162
+			public const int TextAppearance_Compat_Notification_Time_Media = 2131427682;
+
+			// aapt resource value: 0x7f0b0186
+			public const int TextAppearance_Compat_Notification_Title = 2131427718;
+
+			// aapt resource value: 0x7f0b0163
+			public const int TextAppearance_Compat_Notification_Title_Media = 2131427683;
+
+			// aapt resource value: 0x7f0b016c
+			public const int TextAppearance_Design_CollapsingToolbar_Expanded = 2131427692;
+
+			// aapt resource value: 0x7f0b016d
+			public const int TextAppearance_Design_Counter = 2131427693;
+
+			// aapt resource value: 0x7f0b016e
+			public const int TextAppearance_Design_Counter_Overflow = 2131427694;
+
+			// aapt resource value: 0x7f0b016f
+			public const int TextAppearance_Design_Error = 2131427695;
+
+			// aapt resource value: 0x7f0b0170
+			public const int TextAppearance_Design_Hint = 2131427696;
+
+			// aapt resource value: 0x7f0b0171
+			public const int TextAppearance_Design_Snackbar_Message = 2131427697;
+
+			// aapt resource value: 0x7f0b0172
+			public const int TextAppearance_Design_Tab = 2131427698;
+
+			// aapt resource value: 0x7f0b0100
+			public const int TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131427584;
+
+			// aapt resource value: 0x7f0b0101
+			public const int TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131427585;
+
+			// aapt resource value: 0x7f0b0102
+			public const int TextAppearance_Widget_AppCompat_Toolbar_Title = 2131427586;
+
+			// aapt resource value: 0x7f0b0103
+			public const int Theme_AppCompat = 2131427587;
+
+			// aapt resource value: 0x7f0b0104
+			public const int Theme_AppCompat_CompactMenu = 2131427588;
+
+			// aapt resource value: 0x7f0b0004
+			public const int Theme_AppCompat_DayNight = 2131427332;
+
+			// aapt resource value: 0x7f0b0005
+			public const int Theme_AppCompat_DayNight_DarkActionBar = 2131427333;
+
+			// aapt resource value: 0x7f0b0006
+			public const int Theme_AppCompat_DayNight_Dialog = 2131427334;
+
+			// aapt resource value: 0x7f0b0007
+			public const int Theme_AppCompat_DayNight_Dialog_Alert = 2131427335;
+
+			// aapt resource value: 0x7f0b0008
+			public const int Theme_AppCompat_DayNight_Dialog_MinWidth = 2131427336;
+
+			// aapt resource value: 0x7f0b0009
+			public const int Theme_AppCompat_DayNight_DialogWhenLarge = 2131427337;
+
+			// aapt resource value: 0x7f0b000a
+			public const int Theme_AppCompat_DayNight_NoActionBar = 2131427338;
+
+			// aapt resource value: 0x7f0b0105
+			public const int Theme_AppCompat_Dialog = 2131427589;
+
+			// aapt resource value: 0x7f0b0106
+			public const int Theme_AppCompat_Dialog_Alert = 2131427590;
+
+			// aapt resource value: 0x7f0b0107
+			public const int Theme_AppCompat_Dialog_MinWidth = 2131427591;
+
+			// aapt resource value: 0x7f0b0108
+			public const int Theme_AppCompat_DialogWhenLarge = 2131427592;
+
+			// aapt resource value: 0x7f0b0109
+			public const int Theme_AppCompat_Light = 2131427593;
+
+			// aapt resource value: 0x7f0b010a
+			public const int Theme_AppCompat_Light_DarkActionBar = 2131427594;
+
+			// aapt resource value: 0x7f0b010b
+			public const int Theme_AppCompat_Light_Dialog = 2131427595;
+
+			// aapt resource value: 0x7f0b010c
+			public const int Theme_AppCompat_Light_Dialog_Alert = 2131427596;
+
+			// aapt resource value: 0x7f0b010d
+			public const int Theme_AppCompat_Light_Dialog_MinWidth = 2131427597;
+
+			// aapt resource value: 0x7f0b010e
+			public const int Theme_AppCompat_Light_DialogWhenLarge = 2131427598;
+
+			// aapt resource value: 0x7f0b010f
+			public const int Theme_AppCompat_Light_NoActionBar = 2131427599;
+
+			// aapt resource value: 0x7f0b0110
+			public const int Theme_AppCompat_NoActionBar = 2131427600;
+
+			// aapt resource value: 0x7f0b018b
+			public const int Theme_BiometricPromptDialog = 2131427723;
+
+			// aapt resource value: 0x7f0b0173
+			public const int Theme_Design = 2131427699;
+
+			// aapt resource value: 0x7f0b0174
+			public const int Theme_Design_BottomSheetDialog = 2131427700;
+
+			// aapt resource value: 0x7f0b0175
+			public const int Theme_Design_Light = 2131427701;
+
+			// aapt resource value: 0x7f0b0176
+			public const int Theme_Design_Light_BottomSheetDialog = 2131427702;
+
+			// aapt resource value: 0x7f0b0177
+			public const int Theme_Design_Light_NoActionBar = 2131427703;
+
+			// aapt resource value: 0x7f0b0178
+			public const int Theme_Design_NoActionBar = 2131427704;
+
+			// aapt resource value: 0x7f0b0111
+			public const int ThemeOverlay_AppCompat = 2131427601;
+
+			// aapt resource value: 0x7f0b0112
+			public const int ThemeOverlay_AppCompat_ActionBar = 2131427602;
+
+			// aapt resource value: 0x7f0b0113
+			public const int ThemeOverlay_AppCompat_Dark = 2131427603;
+
+			// aapt resource value: 0x7f0b0114
+			public const int ThemeOverlay_AppCompat_Dark_ActionBar = 2131427604;
+
+			// aapt resource value: 0x7f0b0115
+			public const int ThemeOverlay_AppCompat_Dialog = 2131427605;
+
+			// aapt resource value: 0x7f0b0116
+			public const int ThemeOverlay_AppCompat_Dialog_Alert = 2131427606;
+
+			// aapt resource value: 0x7f0b0117
+			public const int ThemeOverlay_AppCompat_Light = 2131427607;
+
+			// aapt resource value: 0x7f0b0118
+			public const int Widget_AppCompat_ActionBar = 2131427608;
+
+			// aapt resource value: 0x7f0b0119
+			public const int Widget_AppCompat_ActionBar_Solid = 2131427609;
+
+			// aapt resource value: 0x7f0b011a
+			public const int Widget_AppCompat_ActionBar_TabBar = 2131427610;
+
+			// aapt resource value: 0x7f0b011b
+			public const int Widget_AppCompat_ActionBar_TabText = 2131427611;
+
+			// aapt resource value: 0x7f0b011c
+			public const int Widget_AppCompat_ActionBar_TabView = 2131427612;
+
+			// aapt resource value: 0x7f0b011d
+			public const int Widget_AppCompat_ActionButton = 2131427613;
+
+			// aapt resource value: 0x7f0b011e
+			public const int Widget_AppCompat_ActionButton_CloseMode = 2131427614;
+
+			// aapt resource value: 0x7f0b011f
+			public const int Widget_AppCompat_ActionButton_Overflow = 2131427615;
+
+			// aapt resource value: 0x7f0b0120
+			public const int Widget_AppCompat_ActionMode = 2131427616;
+
+			// aapt resource value: 0x7f0b0121
+			public const int Widget_AppCompat_ActivityChooserView = 2131427617;
+
+			// aapt resource value: 0x7f0b0122
+			public const int Widget_AppCompat_AutoCompleteTextView = 2131427618;
+
+			// aapt resource value: 0x7f0b0123
+			public const int Widget_AppCompat_Button = 2131427619;
+
+			// aapt resource value: 0x7f0b0124
+			public const int Widget_AppCompat_Button_Borderless = 2131427620;
+
+			// aapt resource value: 0x7f0b0125
+			public const int Widget_AppCompat_Button_Borderless_Colored = 2131427621;
+
+			// aapt resource value: 0x7f0b0126
+			public const int Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131427622;
+
+			// aapt resource value: 0x7f0b0127
+			public const int Widget_AppCompat_Button_Colored = 2131427623;
+
+			// aapt resource value: 0x7f0b0128
+			public const int Widget_AppCompat_Button_Small = 2131427624;
+
+			// aapt resource value: 0x7f0b0129
+			public const int Widget_AppCompat_ButtonBar = 2131427625;
+
+			// aapt resource value: 0x7f0b012a
+			public const int Widget_AppCompat_ButtonBar_AlertDialog = 2131427626;
+
+			// aapt resource value: 0x7f0b012b
+			public const int Widget_AppCompat_CompoundButton_CheckBox = 2131427627;
+
+			// aapt resource value: 0x7f0b012c
+			public const int Widget_AppCompat_CompoundButton_RadioButton = 2131427628;
+
+			// aapt resource value: 0x7f0b012d
+			public const int Widget_AppCompat_CompoundButton_Switch = 2131427629;
+
+			// aapt resource value: 0x7f0b012e
+			public const int Widget_AppCompat_DrawerArrowToggle = 2131427630;
+
+			// aapt resource value: 0x7f0b012f
+			public const int Widget_AppCompat_DropDownItem_Spinner = 2131427631;
+
+			// aapt resource value: 0x7f0b0130
+			public const int Widget_AppCompat_EditText = 2131427632;
+
+			// aapt resource value: 0x7f0b0131
+			public const int Widget_AppCompat_ImageButton = 2131427633;
+
+			// aapt resource value: 0x7f0b0132
+			public const int Widget_AppCompat_Light_ActionBar = 2131427634;
+
+			// aapt resource value: 0x7f0b0133
+			public const int Widget_AppCompat_Light_ActionBar_Solid = 2131427635;
+
+			// aapt resource value: 0x7f0b0134
+			public const int Widget_AppCompat_Light_ActionBar_Solid_Inverse = 2131427636;
+
+			// aapt resource value: 0x7f0b0135
+			public const int Widget_AppCompat_Light_ActionBar_TabBar = 2131427637;
+
+			// aapt resource value: 0x7f0b0136
+			public const int Widget_AppCompat_Light_ActionBar_TabBar_Inverse = 2131427638;
+
+			// aapt resource value: 0x7f0b0137
+			public const int Widget_AppCompat_Light_ActionBar_TabText = 2131427639;
+
+			// aapt resource value: 0x7f0b0138
+			public const int Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131427640;
+
+			// aapt resource value: 0x7f0b0139
+			public const int Widget_AppCompat_Light_ActionBar_TabView = 2131427641;
+
+			// aapt resource value: 0x7f0b013a
+			public const int Widget_AppCompat_Light_ActionBar_TabView_Inverse = 2131427642;
+
+			// aapt resource value: 0x7f0b013b
+			public const int Widget_AppCompat_Light_ActionButton = 2131427643;
+
+			// aapt resource value: 0x7f0b013c
+			public const int Widget_AppCompat_Light_ActionButton_CloseMode = 2131427644;
+
+			// aapt resource value: 0x7f0b013d
+			public const int Widget_AppCompat_Light_ActionButton_Overflow = 2131427645;
+
+			// aapt resource value: 0x7f0b013e
+			public const int Widget_AppCompat_Light_ActionMode_Inverse = 2131427646;
+
+			// aapt resource value: 0x7f0b013f
+			public const int Widget_AppCompat_Light_ActivityChooserView = 2131427647;
+
+			// aapt resource value: 0x7f0b0140
+			public const int Widget_AppCompat_Light_AutoCompleteTextView = 2131427648;
+
+			// aapt resource value: 0x7f0b0141
+			public const int Widget_AppCompat_Light_DropDownItem_Spinner = 2131427649;
+
+			// aapt resource value: 0x7f0b0142
+			public const int Widget_AppCompat_Light_ListPopupWindow = 2131427650;
+
+			// aapt resource value: 0x7f0b0143
+			public const int Widget_AppCompat_Light_ListView_DropDown = 2131427651;
+
+			// aapt resource value: 0x7f0b0144
+			public const int Widget_AppCompat_Light_PopupMenu = 2131427652;
+
+			// aapt resource value: 0x7f0b0145
+			public const int Widget_AppCompat_Light_PopupMenu_Overflow = 2131427653;
+
+			// aapt resource value: 0x7f0b0146
+			public const int Widget_AppCompat_Light_SearchView = 2131427654;
+
+			// aapt resource value: 0x7f0b0147
+			public const int Widget_AppCompat_Light_Spinner_DropDown_ActionBar = 2131427655;
+
+			// aapt resource value: 0x7f0b0148
+			public const int Widget_AppCompat_ListMenuView = 2131427656;
+
+			// aapt resource value: 0x7f0b0149
+			public const int Widget_AppCompat_ListPopupWindow = 2131427657;
+
+			// aapt resource value: 0x7f0b014a
+			public const int Widget_AppCompat_ListView = 2131427658;
+
+			// aapt resource value: 0x7f0b014b
+			public const int Widget_AppCompat_ListView_DropDown = 2131427659;
+
+			// aapt resource value: 0x7f0b014c
+			public const int Widget_AppCompat_ListView_Menu = 2131427660;
+
+			// aapt resource value: 0x7f0b014d
+			public const int Widget_AppCompat_PopupMenu = 2131427661;
+
+			// aapt resource value: 0x7f0b014e
+			public const int Widget_AppCompat_PopupMenu_Overflow = 2131427662;
+
+			// aapt resource value: 0x7f0b014f
+			public const int Widget_AppCompat_PopupWindow = 2131427663;
+
+			// aapt resource value: 0x7f0b0150
+			public const int Widget_AppCompat_ProgressBar = 2131427664;
+
+			// aapt resource value: 0x7f0b0151
+			public const int Widget_AppCompat_ProgressBar_Horizontal = 2131427665;
+
+			// aapt resource value: 0x7f0b0152
+			public const int Widget_AppCompat_RatingBar = 2131427666;
+
+			// aapt resource value: 0x7f0b0153
+			public const int Widget_AppCompat_RatingBar_Indicator = 2131427667;
+
+			// aapt resource value: 0x7f0b0154
+			public const int Widget_AppCompat_RatingBar_Small = 2131427668;
+
+			// aapt resource value: 0x7f0b0155
+			public const int Widget_AppCompat_SearchView = 2131427669;
+
+			// aapt resource value: 0x7f0b0156
+			public const int Widget_AppCompat_SearchView_ActionBar = 2131427670;
+
+			// aapt resource value: 0x7f0b0157
+			public const int Widget_AppCompat_SeekBar = 2131427671;
+
+			// aapt resource value: 0x7f0b0158
+			public const int Widget_AppCompat_SeekBar_Discrete = 2131427672;
+
+			// aapt resource value: 0x7f0b0159
+			public const int Widget_AppCompat_Spinner = 2131427673;
+
+			// aapt resource value: 0x7f0b015a
+			public const int Widget_AppCompat_Spinner_DropDown = 2131427674;
+
+			// aapt resource value: 0x7f0b015b
+			public const int Widget_AppCompat_Spinner_DropDown_ActionBar = 2131427675;
+
+			// aapt resource value: 0x7f0b015c
+			public const int Widget_AppCompat_Spinner_Underlined = 2131427676;
+
+			// aapt resource value: 0x7f0b015d
+			public const int Widget_AppCompat_TextView_SpinnerItem = 2131427677;
+
+			// aapt resource value: 0x7f0b015e
+			public const int Widget_AppCompat_Toolbar = 2131427678;
+
+			// aapt resource value: 0x7f0b015f
+			public const int Widget_AppCompat_Toolbar_Button_Navigation = 2131427679;
+
+			// aapt resource value: 0x7f0b0187
+			public const int Widget_Compat_NotificationActionContainer = 2131427719;
+
+			// aapt resource value: 0x7f0b0188
+			public const int Widget_Compat_NotificationActionText = 2131427720;
+
+			// aapt resource value: 0x7f0b0179
+			public const int Widget_Design_AppBarLayout = 2131427705;
+
+			// aapt resource value: 0x7f0b017a
+			public const int Widget_Design_BottomNavigationView = 2131427706;
+
+			// aapt resource value: 0x7f0b017b
+			public const int Widget_Design_BottomSheet_Modal = 2131427707;
+
+			// aapt resource value: 0x7f0b017c
+			public const int Widget_Design_CollapsingToolbar = 2131427708;
+
+			// aapt resource value: 0x7f0b017d
+			public const int Widget_Design_CoordinatorLayout = 2131427709;
+
+			// aapt resource value: 0x7f0b017e
+			public const int Widget_Design_FloatingActionButton = 2131427710;
+
+			// aapt resource value: 0x7f0b017f
+			public const int Widget_Design_NavigationView = 2131427711;
+
+			// aapt resource value: 0x7f0b0180
+			public const int Widget_Design_ScrimInsetsFrameLayout = 2131427712;
+
+			// aapt resource value: 0x7f0b0181
+			public const int Widget_Design_Snackbar = 2131427713;
+
+			// aapt resource value: 0x7f0b0165
+			public const int Widget_Design_TabLayout = 2131427685;
+
+			// aapt resource value: 0x7f0b0182
+			public const int Widget_Design_TextInputLayout = 2131427714;
+
+			// aapt resource value: 0x7f0b018c
+			public const int custom_dialog2 = 2131427724;
+
+			// aapt resource value: 0x7f0b018d
+			public const int picker_view_scale_anim = 2131427725;
+
+			// aapt resource value: 0x7f0b018e
+			public const int picker_view_slide_anim = 2131427726;
+
 			// aapt resource value: 0x7F0E016F
 			public const int Widget_AppCompat_PopupWindow = 2131624303;
-			
+
 			// aapt resource value: 0x7F0E0170
 			public const int Widget_AppCompat_ProgressBar = 2131624304;
-			
-			// aapt resource value: 0x7F0E0171
-			public const int Widget_AppCompat_ProgressBar_Horizontal = 2131624305;
-			
-			// aapt resource value: 0x7F0E0172
-			public const int Widget_AppCompat_RatingBar = 2131624306;
-			
+
+			// aapt resource value: 0x7f070000
+			public const int file_paths = 2131165184;
+
+			// aapt resource value: 0x7f070001
+			public const int hdl_filepaths = 2131165185;
+
 			// aapt resource value: 0x7F0E0173
 			public const int Widget_AppCompat_RatingBar_Indicator = 2131624307;
-			
+
 			// aapt resource value: 0x7F0E0174
 			public const int Widget_AppCompat_RatingBar_Small = 2131624308;
-			
+
 			// aapt resource value: 0x7F0E0175
 			public const int Widget_AppCompat_SearchView = 2131624309;
-			
+
 			// aapt resource value: 0x7F0E0176
 			public const int Widget_AppCompat_SearchView_ActionBar = 2131624310;
-			
+
 			// aapt resource value: 0x7F0E0177
 			public const int Widget_AppCompat_SeekBar = 2131624311;
-			
+
 			// aapt resource value: 0x7F0E0178
 			public const int Widget_AppCompat_SeekBar_Discrete = 2131624312;
-			
+
 			// aapt resource value: 0x7F0E0179
 			public const int Widget_AppCompat_Spinner = 2131624313;
-			
+
 			// aapt resource value: 0x7F0E017A
 			public const int Widget_AppCompat_Spinner_DropDown = 2131624314;
-			
+
 			// aapt resource value: 0x7F0E017B
 			public const int Widget_AppCompat_Spinner_DropDown_ActionBar = 2131624315;
-			
+
 			// aapt resource value: 0x7F0E017C
 			public const int Widget_AppCompat_Spinner_Underlined = 2131624316;
-			
+
 			// aapt resource value: 0x7F0E017D
 			public const int Widget_AppCompat_TextView_SpinnerItem = 2131624317;
-			
+
 			// aapt resource value: 0x7F0E017E
 			public const int Widget_AppCompat_Toolbar = 2131624318;
-			
+
 			// aapt resource value: 0x7F0E017F
 			public const int Widget_AppCompat_Toolbar_Button_Navigation = 2131624319;
-			
+
 			// aapt resource value: 0x7F0E0180
 			public const int Widget_Compat_NotificationActionContainer = 2131624320;
-			
+
 			// aapt resource value: 0x7F0E0181
 			public const int Widget_Compat_NotificationActionText = 2131624321;
-			
+
 			// aapt resource value: 0x7F0E0182
 			public const int Widget_Design_AppBarLayout = 2131624322;
-			
+
 			// aapt resource value: 0x7F0E0183
 			public const int Widget_Design_BottomNavigationView = 2131624323;
-			
+
 			// aapt resource value: 0x7F0E0184
 			public const int Widget_Design_BottomSheet_Modal = 2131624324;
-			
+
 			// aapt resource value: 0x7F0E0185
 			public const int Widget_Design_CollapsingToolbar = 2131624325;
-			
+
 			// aapt resource value: 0x7F0E0186
 			public const int Widget_Design_CoordinatorLayout = 2131624326;
-			
+
 			// aapt resource value: 0x7F0E0187
 			public const int Widget_Design_FloatingActionButton = 2131624327;
-			
+
 			// aapt resource value: 0x7F0E0188
 			public const int Widget_Design_NavigationView = 2131624328;
-			
+
 			// aapt resource value: 0x7F0E0189
 			public const int Widget_Design_ScrimInsetsFrameLayout = 2131624329;
-			
+
 			// aapt resource value: 0x7F0E018A
 			public const int Widget_Design_Snackbar = 2131624330;
-			
+
 			// aapt resource value: 0x7F0E018B
 			public const int Widget_Design_TabLayout = 2131624331;
-			
+
 			// aapt resource value: 0x7F0E018C
 			public const int Widget_Design_TextInputLayout = 2131624332;
-			
+
 			static Style()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Style()
 			{
 			}
 		}
-		
+
 		public partial class Styleable
 		{
-			
+
 			// aapt resource value: { 0x7F040042,0x7F040043,0x7F040044,0x7F040072,0x7F040073,0x7F040074,0x7F040075,0x7F040076,0x7F040077,0x7F040083,0x7F040087,0x7F040088,0x7F040093,0x7F0400B4,0x7F0400B5,0x7F0400B9,0x7F0400BA,0x7F0400BB,0x7F0400C0,0x7F0400C6,0x7F0400E3,0x7F0400EC,0x7F0400FC,0x7F040100,0x7F040101,0x7F040168,0x7F04016B,0x7F040197,0x7F0401A1 }
 			public static int[] ActionBar = new int[] {
 					2130968642,
@@ -5488,112 +5836,112 @@
 					2130968939,
 					2130968983,
 					2130968993};
-			
+
 			// aapt resource value: { 0x10100B3 }
 			public static int[] ActionBarLayout = new int[] {
 					16842931};
-			
+
 			// aapt resource value: 0
 			public const int ActionBarLayout_android_layout_gravity = 0;
-			
+
 			// aapt resource value: 0
 			public const int ActionBar_background = 0;
-			
+
 			// aapt resource value: 1
 			public const int ActionBar_backgroundSplit = 1;
-			
+
 			// aapt resource value: 2
 			public const int ActionBar_backgroundStacked = 2;
-			
+
 			// aapt resource value: 3
 			public const int ActionBar_contentInsetEnd = 3;
-			
+
 			// aapt resource value: 4
 			public const int ActionBar_contentInsetEndWithActions = 4;
-			
+
 			// aapt resource value: 5
 			public const int ActionBar_contentInsetLeft = 5;
-			
+
 			// aapt resource value: 6
 			public const int ActionBar_contentInsetRight = 6;
-			
+
 			// aapt resource value: 7
 			public const int ActionBar_contentInsetStart = 7;
-			
+
 			// aapt resource value: 8
 			public const int ActionBar_contentInsetStartWithNavigation = 8;
-			
+
 			// aapt resource value: 9
 			public const int ActionBar_customNavigationLayout = 9;
-			
+
 			// aapt resource value: 10
 			public const int ActionBar_displayOptions = 10;
-			
+
 			// aapt resource value: 11
 			public const int ActionBar_divider = 11;
-			
+
 			// aapt resource value: 12
 			public const int ActionBar_elevation = 12;
-			
+
 			// aapt resource value: 13
 			public const int ActionBar_height = 13;
-			
+
 			// aapt resource value: 14
 			public const int ActionBar_hideOnContentScroll = 14;
-			
+
 			// aapt resource value: 15
 			public const int ActionBar_homeAsUpIndicator = 15;
-			
+
 			// aapt resource value: 16
 			public const int ActionBar_homeLayout = 16;
-			
+
 			// aapt resource value: 17
 			public const int ActionBar_icon = 17;
-			
+
 			// aapt resource value: 18
 			public const int ActionBar_indeterminateProgressStyle = 18;
-			
+
 			// aapt resource value: 19
 			public const int ActionBar_itemPadding = 19;
-			
+
 			// aapt resource value: 20
 			public const int ActionBar_logo = 20;
-			
+
 			// aapt resource value: 21
 			public const int ActionBar_navigationMode = 21;
-			
+
 			// aapt resource value: 22
 			public const int ActionBar_popupTheme = 22;
-			
+
 			// aapt resource value: 23
 			public const int ActionBar_progressBarPadding = 23;
-			
+
 			// aapt resource value: 24
 			public const int ActionBar_progressBarStyle = 24;
-			
+
 			// aapt resource value: 25
 			public const int ActionBar_subtitle = 25;
-			
+
 			// aapt resource value: 26
 			public const int ActionBar_subtitleTextStyle = 26;
-			
+
 			// aapt resource value: 27
 			public const int ActionBar_title = 27;
-			
+
 			// aapt resource value: 28
 			public const int ActionBar_titleTextStyle = 28;
-			
+
 			// aapt resource value: { 0x101013F }
 			public static int[] ActionMenuItemView = new int[] {
 					16843071};
-			
+
 			// aapt resource value: 0
 			public const int ActionMenuItemView_android_minWidth = 0;
-			
+
 			// aapt resource value: { 0xFFFFFFFF }
 			public static int[] ActionMenuView = new int[] {
 					-1};
-			
+
 			// aapt resource value: { 0x7F040042,0x7F040043,0x7F040060,0x7F0400B4,0x7F04016B,0x7F0401A1 }
 			public static int[] ActionMode = new int[] {
 					2130968642,
@@ -5602,36 +5950,36 @@
 					2130968756,
 					2130968939,
 					2130968993};
-			
+
 			// aapt resource value: 0
 			public const int ActionMode_background = 0;
-			
+
 			// aapt resource value: 1
 			public const int ActionMode_backgroundSplit = 1;
-			
+
 			// aapt resource value: 2
 			public const int ActionMode_closeItemLayout = 2;
-			
+
 			// aapt resource value: 3
 			public const int ActionMode_height = 3;
-			
+
 			// aapt resource value: 4
 			public const int ActionMode_subtitleTextStyle = 4;
-			
+
 			// aapt resource value: 5
 			public const int ActionMode_titleTextStyle = 5;
-			
+
 			// aapt resource value: { 0x7F040096,0x7F0400C1 }
 			public static int[] ActivityChooserView = new int[] {
 					2130968726,
 					2130968769};
-			
+
 			// aapt resource value: 0
 			public const int ActivityChooserView_expandActivityOverflowButtonDrawable = 0;
-			
+
 			// aapt resource value: 1
 			public const int ActivityChooserView_initialActivityCount = 1;
-			
+
 			// aapt resource value: { 0x10100F2,0x7F040058,0x7F0400DA,0x7F0400DB,0x7F0400E9,0x7F040117,0x7F040118 }
 			public static int[] AlertDialog = new int[] {
 					16842994,
@@ -5641,28 +5989,28 @@
 					2130968809,
 					2130968855,
 					2130968856};
-			
+
 			// aapt resource value: 0
 			public const int AlertDialog_android_layout = 0;
-			
+
 			// aapt resource value: 1
 			public const int AlertDialog_buttonPanelSideLayout = 1;
-			
+
 			// aapt resource value: 2
 			public const int AlertDialog_listItemLayout = 2;
-			
+
 			// aapt resource value: 3
 			public const int AlertDialog_listLayout = 3;
-			
+
 			// aapt resource value: 4
 			public const int AlertDialog_multiChoiceItemLayout = 4;
-			
+
 			// aapt resource value: 5
 			public const int AlertDialog_showTitle = 5;
-			
+
 			// aapt resource value: 6
 			public const int AlertDialog_singleChoiceItemLayout = 6;
-			
+
 			// aapt resource value: { 0x10100D4,0x101048F,0x1010540,0x7F040093,0x7F040097 }
 			public static int[] AppBarLayout = new int[] {
 					16842964,
@@ -5670,82 +6018,112 @@
 					16844096,
 					2130968723,
 					2130968727};
-			
+
 			// aapt resource value: { 0x7F040162,0x7F040163 }
 			public static int[] AppBarLayoutStates = new int[] {
 					2130968930,
 					2130968931};
-			
+
 			// aapt resource value: 0
 			public const int AppBarLayoutStates_state_collapsed = 0;
-			
+
 			// aapt resource value: 1
 			public const int AppBarLayoutStates_state_collapsible = 1;
-			
+
 			// aapt resource value: 0
 			public const int AppBarLayout_android_background = 0;
-			
+
 			// aapt resource value: 2
 			public const int AppBarLayout_android_keyboardNavigationCluster = 2;
-			
+
 			// aapt resource value: 1
 			public const int AppBarLayout_android_touchscreenBlocksFocus = 1;
-			
+
 			// aapt resource value: 3
 			public const int AppBarLayout_elevation = 3;
-			
+
 			// aapt resource value: 4
 			public const int AppBarLayout_expanded = 4;
-			
-			// aapt resource value: { 0x7F0400D4,0x7F0400D5 }
+
+			public static int[] AppBarLayout = new int[] {
+					16842964,
+					16843919,
+					16844096,
+					2130772005,
+					2130772223};
+
+			// aapt resource value: 0
+			public const int AppBarLayout_android_background = 0;
+
+			// aapt resource value: 2
+			public const int AppBarLayout_android_keyboardNavigationCluster = 2;
+
+			// aapt resource value: 1
+			public const int AppBarLayout_android_touchscreenBlocksFocus = 1;
+
+			// aapt resource value: 3
+			public const int AppBarLayout_elevation = 3;
+
+			// aapt resource value: 4
+			public const int AppBarLayout_expanded = 4;
+
+			public static int[] AppBarLayoutStates = new int[] {
+					2130772224,
+					2130772225};
+
+			// aapt resource value: 0
+			public const int AppBarLayoutStates_state_collapsed = 0;
+
+			// aapt resource value: 1
+			public const int AppBarLayoutStates_state_collapsible = 1;
+
 			public static int[] AppBarLayout_Layout = new int[] {
-					2130968788,
-					2130968789};
-			
+					2130772226,
+					2130772227};
+
 			// aapt resource value: 0
 			public const int AppBarLayout_Layout_layout_scrollFlags = 0;
-			
+
 			// aapt resource value: 1
 			public const int AppBarLayout_Layout_layout_scrollInterpolator = 1;
-			
-			// aapt resource value: { 0x1010119,0x7F04011E,0x7F040195,0x7F040196 }
+
 			public static int[] AppCompatImageView = new int[] {
 					16843033,
 					2130968862,
 					2130968981,
 					2130968982};
-			
+
 			// aapt resource value: 0
 			public const int AppCompatImageView_android_src = 0;
-			
+
 			// aapt resource value: 1
 			public const int AppCompatImageView_srcCompat = 1;
-			
+
 			// aapt resource value: 2
 			public const int AppCompatImageView_tint = 2;
-			
+
 			// aapt resource value: 3
 			public const int AppCompatImageView_tintMode = 3;
-			
+
 			// aapt resource value: { 0x1010142,0x7F040192,0x7F040193,0x7F040194 }
 			public static int[] AppCompatSeekBar = new int[] {
 					16843074,
 					2130968978,
 					2130968979,
 					2130968980};
-			
+
 			// aapt resource value: 0
 			public const int AppCompatSeekBar_android_thumb = 0;
-			
+
 			// aapt resource value: 1
 			public const int AppCompatSeekBar_tickMark = 1;
-			
+
 			// aapt resource value: 2
 			public const int AppCompatSeekBar_tickMarkTint = 2;
-			
+
 			// aapt resource value: 3
 			public const int AppCompatSeekBar_tickMarkTintMode = 3;
-			
+
 			// aapt resource value: { 0x1010034,0x101016D,0x101016E,0x101016F,0x1010170,0x1010392,0x1010393 }
 			public static int[] AppCompatTextHelper = new int[] {
 					16842804,
@@ -5755,28 +6133,28 @@
 					16843120,
 					16843666,
 					16843667};
-			
+
 			// aapt resource value: 2
 			public const int AppCompatTextHelper_android_drawableBottom = 2;
-			
+
 			// aapt resource value: 6
 			public const int AppCompatTextHelper_android_drawableEnd = 6;
-			
+
 			// aapt resource value: 3
 			public const int AppCompatTextHelper_android_drawableLeft = 3;
-			
+
 			// aapt resource value: 4
 			public const int AppCompatTextHelper_android_drawableRight = 4;
-			
+
 			// aapt resource value: 5
 			public const int AppCompatTextHelper_android_drawableStart = 5;
-			
+
 			// aapt resource value: 1
 			public const int AppCompatTextHelper_android_drawableTop = 1;
-			
+
 			// aapt resource value: 0
 			public const int AppCompatTextHelper_android_textAppearance = 0;
-			
+
 			// aapt resource value: { 0x1010034,0x7F04003D,0x7F04003E,0x7F04003F,0x7F040040,0x7F040041,0x7F0400A6,0x7F040181 }
 			public static int[] AppCompatTextView = new int[] {
 					16842804,
@@ -5787,31 +6165,31 @@
 					2130968641,
 					2130968742,
 					2130968961};
-			
+
 			// aapt resource value: 0
 			public const int AppCompatTextView_android_textAppearance = 0;
-			
+
 			// aapt resource value: 1
 			public const int AppCompatTextView_autoSizeMaxTextSize = 1;
-			
+
 			// aapt resource value: 2
 			public const int AppCompatTextView_autoSizeMinTextSize = 2;
-			
+
 			// aapt resource value: 3
 			public const int AppCompatTextView_autoSizePresetSizes = 3;
-			
+
 			// aapt resource value: 4
 			public const int AppCompatTextView_autoSizeStepGranularity = 4;
-			
+
 			// aapt resource value: 5
 			public const int AppCompatTextView_autoSizeTextType = 5;
-			
+
 			// aapt resource value: 6
 			public const int AppCompatTextView_fontFamily = 6;
-			
+
 			// aapt resource value: 7
 			public const int AppCompatTextView_textAllCaps = 7;
-			
+
 			// aapt resource value: { 0x1010057,0x10100AE,0x7F040000,0x7F040001,0x7F040002,0x7F040003,0x7F040004,0x7F040005,0x7F040006,0x7F040007,0x7F040008,0x7F040009,0x7F04000A,0x7F04000B,0x7F04000C,0x7F04000E,0x7F04000F,0x7F040010,0x7F040011,0x7F040012,0x7F040013,0x7F040014,0x7F040015,0x7F040016,0x7F040017,0x7F040018,0x7F040019,0x7F04001A,0x7F04001B,0x7F04001C,0x7F04001D,0x7F04001E,0x7F040021,0x7F040022,0x7F040023,0x7F040024,0x7F040025,0x7F04003C,0x7F04004F,0x7F040052,0x7F040053,0x7F040054,0x7F040055,0x7F040056,0x7F040059,0x7F04005A,0x7F04005D,0x7F04005E,0x7F040066,0x7F040067,0x7F040068,0x7F040069,0x7F04006A,0x7F04006B,0x7F04006C,0x7F04006D,0x7F04006E,0x7F04006F,0x7F040079,0x7F040085,0x7F040086,0x7F040089,0x7F04008B,0x7F04008E,0x7F04008F,0x7F040090,0x7F040091,0x7F040092,0x7F0400B9,0x7F0400BF,0x7F0400D8,0x7F0400D9,0x7F0400DC,0x7F0400DD,0x7F0400DE,0x7F0400DF,0x7F0400E0,0x7F0400E1,0x7F0400E2,0x7F0400F3,0x7F0400F4,0x7F0400F5,0x7F0400FB,0x7F0400FD,0x7F040104,0x7F040105,0x7F040106,0x7F040107,0x7F04010E,0x7F040111,0x7F040112,0x7F040113,0x7F04011B,0x7F04011C,0x7F04016F,0x7F040182,0x7F040183,0x7F040184,0x7F040185,0x7F040186,0x7F040187,0x7F040188,0x7F040189,0x7F04018A,0x7F04018C,0x7F0401A3,0x7F0401A4,0x7F0401A5,0x7F0401A6,0x7F0401B8,0x7F0401B9,0x7F0401BA,0x7F0401BB,0x7F0401BC,0x7F0401BD,0x7F0401BE,0x7F0401BF,0x7F0401C0,0x7F0401C1 }
 			public static int[] AppCompatTheme = new int[] {
 					16842839,
@@ -5933,605 +6311,605 @@
 					2130969023,
 					2130969024,
 					2130969025};
-			
+
 			// aapt resource value: 2
 			public const int AppCompatTheme_actionBarDivider = 2;
-			
+
 			// aapt resource value: 3
 			public const int AppCompatTheme_actionBarItemBackground = 3;
-			
+
 			// aapt resource value: 4
 			public const int AppCompatTheme_actionBarPopupTheme = 4;
-			
+
 			// aapt resource value: 5
 			public const int AppCompatTheme_actionBarSize = 5;
-			
+
 			// aapt resource value: 6
 			public const int AppCompatTheme_actionBarSplitStyle = 6;
-			
+
 			// aapt resource value: 7
 			public const int AppCompatTheme_actionBarStyle = 7;
-			
+
 			// aapt resource value: 8
 			public const int AppCompatTheme_actionBarTabBarStyle = 8;
-			
+
 			// aapt resource value: 9
 			public const int AppCompatTheme_actionBarTabStyle = 9;
-			
+
 			// aapt resource value: 10
 			public const int AppCompatTheme_actionBarTabTextStyle = 10;
-			
+
 			// aapt resource value: 11
 			public const int AppCompatTheme_actionBarTheme = 11;
-			
+
 			// aapt resource value: 12
 			public const int AppCompatTheme_actionBarWidgetTheme = 12;
-			
+
 			// aapt resource value: 13
 			public const int AppCompatTheme_actionButtonStyle = 13;
-			
+
 			// aapt resource value: 14
 			public const int AppCompatTheme_actionDropDownStyle = 14;
-			
+
 			// aapt resource value: 15
 			public const int AppCompatTheme_actionMenuTextAppearance = 15;
-			
+
 			// aapt resource value: 16
 			public const int AppCompatTheme_actionMenuTextColor = 16;
-			
+
 			// aapt resource value: 17
 			public const int AppCompatTheme_actionModeBackground = 17;
-			
+
 			// aapt resource value: 18
 			public const int AppCompatTheme_actionModeCloseButtonStyle = 18;
-			
+
 			// aapt resource value: 19
 			public const int AppCompatTheme_actionModeCloseDrawable = 19;
-			
+
 			// aapt resource value: 20
 			public const int AppCompatTheme_actionModeCopyDrawable = 20;
-			
+
 			// aapt resource value: 21
 			public const int AppCompatTheme_actionModeCutDrawable = 21;
-			
+
 			// aapt resource value: 22
 			public const int AppCompatTheme_actionModeFindDrawable = 22;
-			
+
 			// aapt resource value: 23
 			public const int AppCompatTheme_actionModePasteDrawable = 23;
-			
+
 			// aapt resource value: 24
 			public const int AppCompatTheme_actionModePopupWindowStyle = 24;
-			
+
 			// aapt resource value: 25
 			public const int AppCompatTheme_actionModeSelectAllDrawable = 25;
-			
+
 			// aapt resource value: 26
 			public const int AppCompatTheme_actionModeShareDrawable = 26;
-			
+
 			// aapt resource value: 27
 			public const int AppCompatTheme_actionModeSplitBackground = 27;
-			
+
 			// aapt resource value: 28
 			public const int AppCompatTheme_actionModeStyle = 28;
-			
+
 			// aapt resource value: 29
 			public const int AppCompatTheme_actionModeWebSearchDrawable = 29;
-			
+
 			// aapt resource value: 30
 			public const int AppCompatTheme_actionOverflowButtonStyle = 30;
-			
+
 			// aapt resource value: 31
 			public const int AppCompatTheme_actionOverflowMenuStyle = 31;
-			
+
 			// aapt resource value: 32
 			public const int AppCompatTheme_activityChooserViewStyle = 32;
-			
+
 			// aapt resource value: 33
 			public const int AppCompatTheme_alertDialogButtonGroupStyle = 33;
-			
+
 			// aapt resource value: 34
 			public const int AppCompatTheme_alertDialogCenterButtons = 34;
-			
+
 			// aapt resource value: 35
 			public const int AppCompatTheme_alertDialogStyle = 35;
-			
+
 			// aapt resource value: 36
 			public const int AppCompatTheme_alertDialogTheme = 36;
-			
+
 			// aapt resource value: 1
 			public const int AppCompatTheme_android_windowAnimationStyle = 1;
-			
+
 			// aapt resource value: 0
 			public const int AppCompatTheme_android_windowIsFloating = 0;
-			
+
 			// aapt resource value: 37
 			public const int AppCompatTheme_autoCompleteTextViewStyle = 37;
-			
+
 			// aapt resource value: 38
 			public const int AppCompatTheme_borderlessButtonStyle = 38;
-			
+
 			// aapt resource value: 39
 			public const int AppCompatTheme_buttonBarButtonStyle = 39;
-			
+
 			// aapt resource value: 40
 			public const int AppCompatTheme_buttonBarNegativeButtonStyle = 40;
-			
+
 			// aapt resource value: 41
 			public const int AppCompatTheme_buttonBarNeutralButtonStyle = 41;
-			
+
 			// aapt resource value: 42
 			public const int AppCompatTheme_buttonBarPositiveButtonStyle = 42;
-			
+
 			// aapt resource value: 43
 			public const int AppCompatTheme_buttonBarStyle = 43;
-			
+
 			// aapt resource value: 44
 			public const int AppCompatTheme_buttonStyle = 44;
-			
+
 			// aapt resource value: 45
 			public const int AppCompatTheme_buttonStyleSmall = 45;
-			
+
 			// aapt resource value: 46
 			public const int AppCompatTheme_checkboxStyle = 46;
-			
+
 			// aapt resource value: 47
 			public const int AppCompatTheme_checkedTextViewStyle = 47;
-			
+
 			// aapt resource value: 48
 			public const int AppCompatTheme_colorAccent = 48;
-			
+
 			// aapt resource value: 49
 			public const int AppCompatTheme_colorBackgroundFloating = 49;
-			
+
 			// aapt resource value: 50
 			public const int AppCompatTheme_colorButtonNormal = 50;
-			
+
 			// aapt resource value: 51
 			public const int AppCompatTheme_colorControlActivated = 51;
-			
+
 			// aapt resource value: 52
 			public const int AppCompatTheme_colorControlHighlight = 52;
-			
+
 			// aapt resource value: 53
 			public const int AppCompatTheme_colorControlNormal = 53;
-			
+
 			// aapt resource value: 54
 			public const int AppCompatTheme_colorError = 54;
-			
+
 			// aapt resource value: 55
 			public const int AppCompatTheme_colorPrimary = 55;
-			
+
 			// aapt resource value: 56
 			public const int AppCompatTheme_colorPrimaryDark = 56;
-			
+
 			// aapt resource value: 57
 			public const int AppCompatTheme_colorSwitchThumbNormal = 57;
-			
+
 			// aapt resource value: 58
 			public const int AppCompatTheme_controlBackground = 58;
-			
+
 			// aapt resource value: 59
 			public const int AppCompatTheme_dialogPreferredPadding = 59;
-			
+
 			// aapt resource value: 60
 			public const int AppCompatTheme_dialogTheme = 60;
-			
+
 			// aapt resource value: 61
 			public const int AppCompatTheme_dividerHorizontal = 61;
-			
+
 			// aapt resource value: 62
 			public const int AppCompatTheme_dividerVertical = 62;
-			
+
 			// aapt resource value: 64
 			public const int AppCompatTheme_dropdownListPreferredItemHeight = 64;
-			
+
 			// aapt resource value: 63
 			public const int AppCompatTheme_dropDownListViewStyle = 63;
-			
+
 			// aapt resource value: 65
 			public const int AppCompatTheme_editTextBackground = 65;
-			
+
 			// aapt resource value: 66
 			public const int AppCompatTheme_editTextColor = 66;
-			
+
 			// aapt resource value: 67
 			public const int AppCompatTheme_editTextStyle = 67;
-			
+
 			// aapt resource value: 68
 			public const int AppCompatTheme_homeAsUpIndicator = 68;
-			
+
 			// aapt resource value: 69
 			public const int AppCompatTheme_imageButtonStyle = 69;
-			
+
 			// aapt resource value: 70
 			public const int AppCompatTheme_listChoiceBackgroundIndicator = 70;
-			
+
 			// aapt resource value: 71
 			public const int AppCompatTheme_listDividerAlertDialog = 71;
-			
+
 			// aapt resource value: 72
 			public const int AppCompatTheme_listMenuViewStyle = 72;
-			
+
 			// aapt resource value: 73
 			public const int AppCompatTheme_listPopupWindowStyle = 73;
-			
+
 			// aapt resource value: 74
 			public const int AppCompatTheme_listPreferredItemHeight = 74;
-			
+
 			// aapt resource value: 75
 			public const int AppCompatTheme_listPreferredItemHeightLarge = 75;
-			
+
 			// aapt resource value: 76
 			public const int AppCompatTheme_listPreferredItemHeightSmall = 76;
-			
+
 			// aapt resource value: 77
 			public const int AppCompatTheme_listPreferredItemPaddingLeft = 77;
-			
+
 			// aapt resource value: 78
 			public const int AppCompatTheme_listPreferredItemPaddingRight = 78;
-			
+
 			// aapt resource value: 79
 			public const int AppCompatTheme_panelBackground = 79;
-			
+
 			// aapt resource value: 80
 			public const int AppCompatTheme_panelMenuListTheme = 80;
-			
+
 			// aapt resource value: 81
 			public const int AppCompatTheme_panelMenuListWidth = 81;
-			
+
 			// aapt resource value: 82
 			public const int AppCompatTheme_popupMenuStyle = 82;
-			
+
 			// aapt resource value: 83
 			public const int AppCompatTheme_popupWindowStyle = 83;
-			
+
 			// aapt resource value: 84
 			public const int AppCompatTheme_radioButtonStyle = 84;
-			
+
 			// aapt resource value: 85
 			public const int AppCompatTheme_ratingBarStyle = 85;
-			
+
 			// aapt resource value: 86
 			public const int AppCompatTheme_ratingBarStyleIndicator = 86;
-			
+
 			// aapt resource value: 87
 			public const int AppCompatTheme_ratingBarStyleSmall = 87;
-			
+
 			// aapt resource value: 88
 			public const int AppCompatTheme_searchViewStyle = 88;
-			
+
 			// aapt resource value: 89
 			public const int AppCompatTheme_seekBarStyle = 89;
-			
+
 			// aapt resource value: 90
 			public const int AppCompatTheme_selectableItemBackground = 90;
-			
+
 			// aapt resource value: 91
 			public const int AppCompatTheme_selectableItemBackgroundBorderless = 91;
-			
+
 			// aapt resource value: 92
 			public const int AppCompatTheme_spinnerDropDownItemStyle = 92;
-			
+
 			// aapt resource value: 93
 			public const int AppCompatTheme_spinnerStyle = 93;
-			
+
 			// aapt resource value: 94
 			public const int AppCompatTheme_switchStyle = 94;
-			
+
 			// aapt resource value: 95
 			public const int AppCompatTheme_textAppearanceLargePopupMenu = 95;
-			
+
 			// aapt resource value: 96
 			public const int AppCompatTheme_textAppearanceListItem = 96;
-			
+
 			// aapt resource value: 97
 			public const int AppCompatTheme_textAppearanceListItemSecondary = 97;
-			
+
 			// aapt resource value: 98
 			public const int AppCompatTheme_textAppearanceListItemSmall = 98;
-			
+
 			// aapt resource value: 99
 			public const int AppCompatTheme_textAppearancePopupMenuHeader = 99;
-			
+
 			// aapt resource value: 100
 			public const int AppCompatTheme_textAppearanceSearchResultSubtitle = 100;
-			
+
 			// aapt resource value: 101
 			public const int AppCompatTheme_textAppearanceSearchResultTitle = 101;
-			
+
 			// aapt resource value: 102
 			public const int AppCompatTheme_textAppearanceSmallPopupMenu = 102;
-			
+
 			// aapt resource value: 103
 			public const int AppCompatTheme_textColorAlertDialogListItem = 103;
-			
+
 			// aapt resource value: 104
 			public const int AppCompatTheme_textColorSearchUrl = 104;
-			
+
 			// aapt resource value: 105
 			public const int AppCompatTheme_toolbarNavigationButtonStyle = 105;
-			
+
 			// aapt resource value: 106
 			public const int AppCompatTheme_toolbarStyle = 106;
-			
+
 			// aapt resource value: 107
 			public const int AppCompatTheme_tooltipForegroundColor = 107;
-			
+
 			// aapt resource value: 108
 			public const int AppCompatTheme_tooltipFrameBackground = 108;
-			
+
 			// aapt resource value: 109
 			public const int AppCompatTheme_windowActionBar = 109;
-			
+
 			// aapt resource value: 110
 			public const int AppCompatTheme_windowActionBarOverlay = 110;
-			
+
 			// aapt resource value: 111
 			public const int AppCompatTheme_windowActionModeOverlay = 111;
-			
+
 			// aapt resource value: 112
 			public const int AppCompatTheme_windowFixedHeightMajor = 112;
-			
+
 			// aapt resource value: 113
 			public const int AppCompatTheme_windowFixedHeightMinor = 113;
-			
+
 			// aapt resource value: 114
 			public const int AppCompatTheme_windowFixedWidthMajor = 114;
-			
+
 			// aapt resource value: 115
 			public const int AppCompatTheme_windowFixedWidthMinor = 115;
-			
+
 			// aapt resource value: 116
 			public const int AppCompatTheme_windowMinWidthMajor = 116;
-			
+
 			// aapt resource value: 117
 			public const int AppCompatTheme_windowMinWidthMinor = 117;
-			
+
 			// aapt resource value: 118
 			public const int AppCompatTheme_windowNoTitle = 118;
-			
+
 			// aapt resource value: { 0x7F040120,0x7F040121,0x7F040150 }
 			public static int[] BallPulseFooter = new int[] {
-					2130968864,
-					2130968865,
-					2130968912};
-			
+					2130772317,
+					2130772338,
+					2130772339};
+
+			// aapt resource value: 1
+			public const int BallPulseFooter_srlAnimatingColor = 1;
+
 			// aapt resource value: 0
 			public const int BallPulseFooter_srlAnimatingColor = 0;
-			
+
 			// aapt resource value: 1
 			public const int BallPulseFooter_srlClassicsSpinnerStyle = 1;
-			
+
 			// aapt resource value: 2
 			public const int BallPulseFooter_srlNormalColor = 2;
-			
+
 			// aapt resource value: { 0x7F04011F,0x7F040132,0x7F040151 }
 			public static int[] BezierRadarHeader = new int[] {
-					2130968863,
-					2130968882,
-					2130968913};
-			
+					2130772316,
+					2130772324,
+					2130772326};
+
 			// aapt resource value: 0
 			public const int BezierRadarHeader_srlAccentColor = 0;
-			
+
 			// aapt resource value: 1
 			public const int BezierRadarHeader_srlEnableHorizontalDrag = 1;
-			
+
 			// aapt resource value: 2
 			public const int BezierRadarHeader_srlPrimaryColor = 2;
-			
-			// aapt resource value: { 0x7F040093,0x7F0400C4,0x7F0400C5,0x7F0400C8,0x7F0400E8 }
+
 			public static int[] BottomNavigationView = new int[] {
-					2130968723,
-					2130968772,
-					2130968773,
-					2130968776,
-					2130968808};
-			
+					2130772005,
+					2130772266,
+					2130772267,
+					2130772268,
+					2130772269};
+
 			// aapt resource value: 0
 			public const int BottomNavigationView_elevation = 0;
-			
-			// aapt resource value: 1
-			public const int BottomNavigationView_itemBackground = 1;
-			
+
+			// aapt resource value: 4
+			public const int BottomNavigationView_itemBackground = 4;
+
 			// aapt resource value: 2
 			public const int BottomNavigationView_itemIconTint = 2;
-			
+
 			// aapt resource value: 3
 			public const int BottomNavigationView_itemTextColor = 3;
-			
-			// aapt resource value: 4
-			public const int BottomNavigationView_menu = 4;
-			
-			// aapt resource value: { 0x7F040049,0x7F04004B,0x7F04004C }
-			public static int[] BottomSheetBehavior_Layout = new int[] {
-					2130968649,
-					2130968651,
-					2130968652};
-			
-			// aapt resource value: 0
-			public const int BottomSheetBehavior_Layout_behavior_hideable = 0;
-			
+
 			// aapt resource value: 1
-			public const int BottomSheetBehavior_Layout_behavior_peekHeight = 1;
-			
+			public const int BottomNavigationView_menu = 1;
+
+			public static int[] BottomSheetBehavior_Layout = new int[] {
+					2130772228,
+					2130772229,
+					2130772230};
+
+			// aapt resource value: 1
+			public const int BottomSheetBehavior_Layout_behavior_hideable = 1;
+
+			// aapt resource value: 0
+			public const int BottomSheetBehavior_Layout_behavior_peekHeight = 0;
+
 			// aapt resource value: 2
 			public const int BottomSheetBehavior_Layout_behavior_skipCollapsed = 2;
-			
-			// aapt resource value: { 0x7F040026 }
+
 			public static int[] ButtonBarLayout = new int[] {
 					2130968614};
-			
+
 			// aapt resource value: 0
 			public const int ButtonBarLayout_allowStacking = 0;
-			
+
 			// aapt resource value: { 0x7F04011F,0x7F040121,0x7F040125,0x7F040126,0x7F040127,0x7F040128,0x7F040129,0x7F04012A,0x7F040140,0x7F040151,0x7F040154,0x7F040155,0x7F040156,0x7F040157,0x7F040158,0x7F040159,0x7F04015A,0x7F04015D }
 			public static int[] ClassicsFooter = new int[] {
-					2130968863,
-					2130968865,
-					2130968869,
-					2130968870,
-					2130968871,
-					2130968872,
-					2130968873,
-					2130968874,
-					2130968896,
-					2130968913,
-					2130968916,
-					2130968917,
-					2130968918,
-					2130968919,
-					2130968920,
-					2130968921,
-					2130968922,
-					2130968925};
-			
+					2130772316,
+					2130772317,
+					2130772318,
+					2130772319,
+					2130772320,
+					2130772321,
+					2130772322,
+					2130772323,
+					2130772325,
+					2130772326,
+					2130772327,
+					2130772328,
+					2130772329,
+					2130772330,
+					2130772331,
+					2130772332,
+					2130772333,
+					2130772336};
+
 			// aapt resource value: 0
 			public const int ClassicsFooter_srlAccentColor = 0;
-			
+
 			// aapt resource value: 1
 			public const int ClassicsFooter_srlClassicsSpinnerStyle = 1;
-			
+
 			// aapt resource value: 2
 			public const int ClassicsFooter_srlDrawableArrow = 2;
-			
+
 			// aapt resource value: 3
 			public const int ClassicsFooter_srlDrawableArrowSize = 3;
-			
+
 			// aapt resource value: 4
 			public const int ClassicsFooter_srlDrawableMarginRight = 4;
-			
+
 			// aapt resource value: 5
 			public const int ClassicsFooter_srlDrawableProgress = 5;
-			
+
 			// aapt resource value: 6
 			public const int ClassicsFooter_srlDrawableProgressSize = 6;
-			
+
 			// aapt resource value: 7
 			public const int ClassicsFooter_srlDrawableSize = 7;
-			
+
 			// aapt resource value: 8
 			public const int ClassicsFooter_srlFinishDuration = 8;
-			
+
 			// aapt resource value: 9
 			public const int ClassicsFooter_srlPrimaryColor = 9;
-			
+
 			// aapt resource value: 10
 			public const int ClassicsFooter_srlTextFailed = 10;
-			
+
 			// aapt resource value: 11
 			public const int ClassicsFooter_srlTextFinish = 11;
-			
+
 			// aapt resource value: 12
 			public const int ClassicsFooter_srlTextLoading = 12;
-			
+
 			// aapt resource value: 13
 			public const int ClassicsFooter_srlTextNothing = 13;
-			
+
 			// aapt resource value: 14
 			public const int ClassicsFooter_srlTextPulling = 14;
-			
+
 			// aapt resource value: 15
 			public const int ClassicsFooter_srlTextRefreshing = 15;
-			
+
 			// aapt resource value: 16
 			public const int ClassicsFooter_srlTextRelease = 16;
-			
+
 			// aapt resource value: 17
 			public const int ClassicsFooter_srlTextSizeTitle = 17;
-			
+
 			// aapt resource value: { 0x7F04011F,0x7F040121,0x7F040125,0x7F040126,0x7F040127,0x7F040128,0x7F040129,0x7F04012A,0x7F040133,0x7F040140,0x7F040151,0x7F040154,0x7F040155,0x7F040156,0x7F040158,0x7F040159,0x7F04015A,0x7F04015B,0x7F04015C,0x7F04015D,0x7F04015E,0x7F04015F }
 			public static int[] ClassicsHeader = new int[] {
-					2130968863,
-					2130968865,
-					2130968869,
-					2130968870,
-					2130968871,
-					2130968872,
-					2130968873,
-					2130968874,
-					2130968883,
-					2130968896,
-					2130968913,
-					2130968916,
-					2130968917,
-					2130968918,
-					2130968920,
-					2130968921,
-					2130968922,
-					2130968923,
-					2130968924,
-					2130968925,
-					2130968926,
-					2130968927};
-			
+					2130772316,
+					2130772317,
+					2130772318,
+					2130772319,
+					2130772320,
+					2130772321,
+					2130772322,
+					2130772323,
+					2130772325,
+					2130772326,
+					2130772327,
+					2130772328,
+					2130772329,
+					2130772331,
+					2130772332,
+					2130772333,
+					2130772334,
+					2130772335,
+					2130772336,
+					2130772337,
+					2130772340,
+					2130772341};
+
 			// aapt resource value: 0
 			public const int ClassicsHeader_srlAccentColor = 0;
-			
+
 			// aapt resource value: 1
 			public const int ClassicsHeader_srlClassicsSpinnerStyle = 1;
-			
+
 			// aapt resource value: 2
 			public const int ClassicsHeader_srlDrawableArrow = 2;
-			
+
 			// aapt resource value: 3
 			public const int ClassicsHeader_srlDrawableArrowSize = 3;
-			
+
 			// aapt resource value: 4
 			public const int ClassicsHeader_srlDrawableMarginRight = 4;
-			
+
 			// aapt resource value: 5
 			public const int ClassicsHeader_srlDrawableProgress = 5;
-			
+
 			// aapt resource value: 6
 			public const int ClassicsHeader_srlDrawableProgressSize = 6;
-			
+
 			// aapt resource value: 7
 			public const int ClassicsHeader_srlDrawableSize = 7;
-			
+
 			// aapt resource value: 8
 			public const int ClassicsHeader_srlEnableLastTime = 8;
-			
+
 			// aapt resource value: 9
 			public const int ClassicsHeader_srlFinishDuration = 9;
-			
+
 			// aapt resource value: 10
 			public const int ClassicsHeader_srlPrimaryColor = 10;
-			
+
 			// aapt resource value: 11
 			public const int ClassicsHeader_srlTextFailed = 11;
-			
+
 			// aapt resource value: 12
 			public const int ClassicsHeader_srlTextFinish = 12;
-			
+
 			// aapt resource value: 13
 			public const int ClassicsHeader_srlTextLoading = 13;
-			
+
 			// aapt resource value: 14
 			public const int ClassicsHeader_srlTextPulling = 14;
-			
+
 			// aapt resource value: 15
 			public const int ClassicsHeader_srlTextRefreshing = 15;
-			
+
 			// aapt resource value: 16
 			public const int ClassicsHeader_srlTextRelease = 16;
-			
+
 			// aapt resource value: 17
 			public const int ClassicsHeader_srlTextSecondary = 17;
-			
+
 			// aapt resource value: 18
 			public const int ClassicsHeader_srlTextSizeTime = 18;
-			
+
 			// aapt resource value: 19
 			public const int ClassicsHeader_srlTextSizeTitle = 19;
-			
+
 			// aapt resource value: 20
 			public const int ClassicsHeader_srlTextTimeMarginTop = 20;
-			
+
 			// aapt resource value: 21
 			public const int ClassicsHeader_srlTextUpdate = 21;
-			
+
 			// aapt resource value: { 0x7F040063,0x7F040064,0x7F040078,0x7F040098,0x7F040099,0x7F04009A,0x7F04009B,0x7F04009C,0x7F04009D,0x7F04009E,0x7F04010A,0x7F04010B,0x7F040165,0x7F040197,0x7F040198,0x7F0401A2 }
 			public static int[] CollapsingToolbarLayout = new int[] {
 					2130968675,
@@ -6550,104 +6928,233 @@
 					2130968983,
 					2130968984,
 					2130968994};
-			
+
 			// aapt resource value: 0
 			public const int CollapsingToolbarLayout_collapsedTitleGravity = 0;
-			
+
 			// aapt resource value: 1
 			public const int CollapsingToolbarLayout_collapsedTitleTextAppearance = 1;
-			
+
 			// aapt resource value: 2
 			public const int CollapsingToolbarLayout_contentScrim = 2;
-			
+
 			// aapt resource value: 3
 			public const int CollapsingToolbarLayout_expandedTitleGravity = 3;
-			
+
 			// aapt resource value: 4
 			public const int CollapsingToolbarLayout_expandedTitleMargin = 4;
-			
+
 			// aapt resource value: 5
 			public const int CollapsingToolbarLayout_expandedTitleMarginBottom = 5;
-			
+
 			// aapt resource value: 6
 			public const int CollapsingToolbarLayout_expandedTitleMarginEnd = 6;
-			
+
 			// aapt resource value: 7
 			public const int CollapsingToolbarLayout_expandedTitleMarginStart = 7;
-			
+
 			// aapt resource value: 8
 			public const int CollapsingToolbarLayout_expandedTitleMarginTop = 8;
-			
+
 			// aapt resource value: 9
 			public const int CollapsingToolbarLayout_expandedTitleTextAppearance = 9;
-			
+
 			// aapt resource value: { 0x7F0400CF,0x7F0400D0 }
 			public static int[] CollapsingToolbarLayout_Layout = new int[] {
 					2130968783,
 					2130968784};
-			
+
 			// aapt resource value: 0
 			public const int CollapsingToolbarLayout_Layout_layout_collapseMode = 0;
-			
+
 			// aapt resource value: 1
 			public const int CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier = 1;
-			
+
 			// aapt resource value: 10
 			public const int CollapsingToolbarLayout_scrimAnimationDuration = 10;
-			
+
 			// aapt resource value: 11
 			public const int CollapsingToolbarLayout_scrimVisibleHeightTrigger = 11;
-			
+
 			// aapt resource value: 12
 			public const int CollapsingToolbarLayout_statusBarScrim = 12;
-			
+
 			// aapt resource value: 13
 			public const int CollapsingToolbarLayout_title = 13;
-			
+
 			// aapt resource value: 14
 			public const int CollapsingToolbarLayout_titleEnabled = 14;
-			
+
 			// aapt resource value: 15
 			public const int CollapsingToolbarLayout_toolbarId = 15;
-			
-			// aapt resource value: { 0x10101A5,0x101031F,0x7F040027 }
+
+			public static int[] CollapsingToolbarLayout = new int[] {
+					2130771980,
+					2130772231,
+					2130772232,
+					2130772233,
+					2130772234,
+					2130772235,
+					2130772236,
+					2130772237,
+					2130772238,
+					2130772239,
+					2130772240,
+					2130772241,
+					2130772242,
+					2130772243,
+					2130772244,
+					2130772245};
+
+			// aapt resource value: 13
+			public const int CollapsingToolbarLayout_collapsedTitleGravity = 13;
+
+			// aapt resource value: 7
+			public const int CollapsingToolbarLayout_collapsedTitleTextAppearance = 7;
+
+			// aapt resource value: 8
+			public const int CollapsingToolbarLayout_contentScrim = 8;
+
+			// aapt resource value: 14
+			public const int CollapsingToolbarLayout_expandedTitleGravity = 14;
+
+			// aapt resource value: 1
+			public const int CollapsingToolbarLayout_expandedTitleMargin = 1;
+
+			// aapt resource value: 5
+			public const int CollapsingToolbarLayout_expandedTitleMarginBottom = 5;
+
+			// aapt resource value: 4
+			public const int CollapsingToolbarLayout_expandedTitleMarginEnd = 4;
+
+			// aapt resource value: 2
+			public const int CollapsingToolbarLayout_expandedTitleMarginStart = 2;
+
+			// aapt resource value: 3
+			public const int CollapsingToolbarLayout_expandedTitleMarginTop = 3;
+
+			// aapt resource value: 6
+			public const int CollapsingToolbarLayout_expandedTitleTextAppearance = 6;
+
+			// aapt resource value: 12
+			public const int CollapsingToolbarLayout_scrimAnimationDuration = 12;
+
+			// aapt resource value: 11
+			public const int CollapsingToolbarLayout_scrimVisibleHeightTrigger = 11;
+
+			// aapt resource value: 9
+			public const int CollapsingToolbarLayout_statusBarScrim = 9;
+
+			// aapt resource value: 0
+			public const int CollapsingToolbarLayout_title = 0;
+
+			// aapt resource value: 15
+			public const int CollapsingToolbarLayout_titleEnabled = 15;
+
+			// aapt resource value: 10
+			public const int CollapsingToolbarLayout_toolbarId = 10;
+
+			public static int[] CollapsingToolbarLayout_Layout = new int[] {
+					2130772246,
+					2130772247};
+
+			// aapt resource value: 0
+			public const int CollapsingToolbarLayout_Layout_layout_collapseMode = 0;
+
+			// aapt resource value: 1
+			public const int CollapsingToolbarLayout_Layout_layout_collapseParallaxMultiplier = 1;
+
 			public static int[] ColorStateListItem = new int[] {
 					16843173,
 					16843551,
 					2130968615};
-			
+
 			// aapt resource value: 2
 			public const int ColorStateListItem_alpha = 2;
-			
+
 			// aapt resource value: 1
 			public const int ColorStateListItem_android_alpha = 1;
-			
+
 			// aapt resource value: 0
 			public const int ColorStateListItem_android_color = 0;
-			
+
 			// aapt resource value: { 0x1010107,0x7F04005B,0x7F04005C }
 			public static int[] CompoundButton = new int[] {
 					16843015,
 					2130968667,
 					2130968668};
-			
+
 			// aapt resource value: 0
 			public const int CompoundButton_android_button = 0;
-			
+
 			// aapt resource value: 1
 			public const int CompoundButton_buttonTint = 1;
-			
+
 			// aapt resource value: 2
 			public const int CompoundButton_buttonTintMode = 2;
-			
+
+			public static int[] CoordinatorLayout = new int[] {
+					2130772248,
+					2130772249};
+
+			// aapt resource value: 0
+			public const int CoordinatorLayout_keylines = 0;
+
+			// aapt resource value: 1
+			public const int CoordinatorLayout_statusBarBackground = 1;
+
+			public static int[] CoordinatorLayout_Layout = new int[] {
+					16842931,
+					2130772250,
+					2130772251,
+					2130772252,
+					2130772253,
+					2130772254,
+					2130772255};
+
+			// aapt resource value: 0
+			public const int CoordinatorLayout_Layout_android_layout_gravity = 0;
+
+			// aapt resource value: 2
+			public const int CoordinatorLayout_Layout_layout_anchor = 2;
+
+			// aapt resource value: 4
+			public const int CoordinatorLayout_Layout_layout_anchorGravity = 4;
+
+			// aapt resource value: 1
+			public const int CoordinatorLayout_Layout_layout_behavior = 1;
+
+			// aapt resource value: 6
+			public const int CoordinatorLayout_Layout_layout_dodgeInsetEdges = 6;
+
+			// aapt resource value: 5
+			public const int CoordinatorLayout_Layout_layout_insetEdge = 5;
+
+			// aapt resource value: 3
+			public const int CoordinatorLayout_Layout_layout_keyline = 3;
+
+			public static int[] DesignTheme = new int[] {
+					2130772256,
+					2130772257,
+					2130772258};
+
+			// aapt resource value: 0
+			public const int DesignTheme_bottomSheetDialogTheme = 0;
+
+			// aapt resource value: 1
+			public const int DesignTheme_bottomSheetStyle = 1;
+
+			// aapt resource value: 2
+			public const int DesignTheme_textColorError = 2;
+
 			// aapt resource value: { 0x7F0400C9,0x7F040164 }
 			public static int[] CoordinatorLayout = new int[] {
 					2130968777,
 					2130968932};
-			
+
 			// aapt resource value: 0
 			public const int CoordinatorLayout_keylines = 0;
-			
+
 			// aapt resource value: { 0x10100B3,0x7F0400CC,0x7F0400CD,0x7F0400CE,0x7F0400D1,0x7F0400D2,0x7F0400D3 }
 			public static int[] CoordinatorLayout_Layout = new int[] {
 					16842931,
@@ -6657,46 +7164,46 @@
 					2130968785,
 					2130968786,
 					2130968787};
-			
+
 			// aapt resource value: 0
 			public const int CoordinatorLayout_Layout_android_layout_gravity = 0;
-			
+
 			// aapt resource value: 1
 			public const int CoordinatorLayout_Layout_layout_anchor = 1;
-			
+
 			// aapt resource value: 2
 			public const int CoordinatorLayout_Layout_layout_anchorGravity = 2;
-			
+
 			// aapt resource value: 3
 			public const int CoordinatorLayout_Layout_layout_behavior = 3;
-			
+
 			// aapt resource value: 4
 			public const int CoordinatorLayout_Layout_layout_dodgeInsetEdges = 4;
-			
+
 			// aapt resource value: 5
 			public const int CoordinatorLayout_Layout_layout_insetEdge = 5;
-			
+
 			// aapt resource value: 6
 			public const int CoordinatorLayout_Layout_layout_keyline = 6;
-			
+
 			// aapt resource value: 1
 			public const int CoordinatorLayout_statusBarBackground = 1;
-			
+
 			// aapt resource value: { 0x7F040050,0x7F040051,0x7F04018B }
 			public static int[] DesignTheme = new int[] {
 					2130968656,
 					2130968657,
 					2130968971};
-			
+
 			// aapt resource value: 0
 			public const int DesignTheme_bottomSheetDialogTheme = 0;
-			
+
 			// aapt resource value: 1
 			public const int DesignTheme_bottomSheetStyle = 1;
-			
+
 			// aapt resource value: 2
 			public const int DesignTheme_textColorError = 2;
-			
+
 			// aapt resource value: { 0x7F04003A,0x7F04003B,0x7F040047,0x7F040065,0x7F04008C,0x7F0400B0,0x7F04011A,0x7F04018E }
 			public static int[] DrawerArrowToggle = new int[] {
 					2130968634,
@@ -6707,73 +7214,110 @@
 					2130968752,
 					2130968858,
 					2130968974};
-			
+
 			// aapt resource value: 0
 			public const int DrawerArrowToggle_arrowHeadLength = 0;
-			
+
 			// aapt resource value: 1
 			public const int DrawerArrowToggle_arrowShaftLength = 1;
-			
+
 			// aapt resource value: 2
 			public const int DrawerArrowToggle_barLength = 2;
-			
+
 			// aapt resource value: 3
 			public const int DrawerArrowToggle_color = 3;
-			
+
 			// aapt resource value: 4
 			public const int DrawerArrowToggle_drawableSize = 4;
-			
+
 			// aapt resource value: 5
 			public const int DrawerArrowToggle_gapBetweenBars = 5;
-			
+
 			// aapt resource value: 6
 			public const int DrawerArrowToggle_spinBars = 6;
-			
+
 			// aapt resource value: 7
 			public const int DrawerArrowToggle_thickness = 7;
-			
-			// aapt resource value: { 0x7F040045,0x7F040046,0x7F04004E,0x7F040093,0x7F04009F,0x7F0400FF,0x7F040109,0x7F0401AB }
+
 			public static int[] FloatingActionButton = new int[] {
-					2130968645,
-					2130968646,
-					2130968654,
-					2130968723,
-					2130968735,
-					2130968831,
-					2130968841,
-					2130969003};
-			
+					2130772005,
+					2130772221,
+					2130772222,
+					2130772259,
+					2130772260,
+					2130772261,
+					2130772262,
+					2130772263};
+
+			// aapt resource value: 1
+			public const int FloatingActionButton_backgroundTint = 1;
+
+			// aapt resource value: 2
+			public const int FloatingActionButton_backgroundTintMode = 2;
+
+			// aapt resource value: 6
+			public const int FloatingActionButton_borderWidth = 6;
+
+			// aapt resource value: 0
+			public const int FloatingActionButton_elevation = 0;
+
+			// aapt resource value: 4
+			public const int FloatingActionButton_fabSize = 4;
+
+			// aapt resource value: 5
+			public const int FloatingActionButton_pressedTranslationZ = 5;
+
+			// aapt resource value: 3
+			public const int FloatingActionButton_rippleColor = 3;
+
+			// aapt resource value: 7
+			public const int FloatingActionButton_useCompatPadding = 7;
+
+			public static int[] FloatingActionButton_Behavior_Layout = new int[] {
+					2130772264};
+
+			// aapt resource value: 0
+			public const int FloatingActionButton_Behavior_Layout_behavior_autoHide = 0;
+
+			public static int[] FontFamily = new int[] {
+					2130772305,
+					2130772306,
+					2130772307,
+					2130772308,
+					2130772309,
+					2130772310};
+
 			// aapt resource value: 0
 			public const int FloatingActionButton_backgroundTint = 0;
-			
+
 			// aapt resource value: 1
 			public const int FloatingActionButton_backgroundTintMode = 1;
-			
+
 			// aapt resource value: { 0x7F040048 }
 			public static int[] FloatingActionButton_Behavior_Layout = new int[] {
 					2130968648};
-			
+
 			// aapt resource value: 0
 			public const int FloatingActionButton_Behavior_Layout_behavior_autoHide = 0;
-			
+
 			// aapt resource value: 2
 			public const int FloatingActionButton_borderWidth = 2;
-			
+
 			// aapt resource value: 3
 			public const int FloatingActionButton_elevation = 3;
-			
+
 			// aapt resource value: 4
 			public const int FloatingActionButton_fabSize = 4;
-			
+
 			// aapt resource value: 5
 			public const int FloatingActionButton_pressedTranslationZ = 5;
-			
+
 			// aapt resource value: 6
 			public const int FloatingActionButton_rippleColor = 6;
-			
+
 			// aapt resource value: 7
 			public const int FloatingActionButton_useCompatPadding = 7;
-			
+
 			// aapt resource value: { 0x7F0400A7,0x7F0400A8,0x7F0400A9,0x7F0400AA,0x7F0400AB,0x7F0400AC }
 			public static int[] FontFamily = new int[] {
 					2130968743,
@@ -6782,55 +7326,89 @@
 					2130968746,
 					2130968747,
 					2130968748};
-			
+
 			// aapt resource value: { 0x7F0400A5,0x7F0400AD,0x7F0400AE }
 			public static int[] FontFamilyFont = new int[] {
-					2130968741,
-					2130968749,
-					2130968750};
-			
+					2130772311,
+					2130772312,
+					2130772313};
+
+			// aapt resource value: 1
+			public const int FontFamilyFont_font = 1;
+
 			// aapt resource value: 0
 			public const int FontFamilyFont_font = 0;
-			
+
 			// aapt resource value: 1
 			public const int FontFamilyFont_fontStyle = 1;
-			
+
 			// aapt resource value: 2
 			public const int FontFamilyFont_fontWeight = 2;
-			
+
+			public static int[] ForegroundLinearLayout = new int[] {
+					16843017,
+					16843264,
+					2130772265};
+
 			// aapt resource value: 0
-			public const int FontFamily_fontProviderAuthority = 0;
-			
+			public const int ForegroundLinearLayout_android_foreground = 0;
+
+			// aapt resource value: 1
+			public const int ForegroundLinearLayout_android_foregroundGravity = 1;
+
+			// aapt resource value: 2
+			public const int ForegroundLinearLayout_foregroundInsidePadding = 2;
+
+			public static int[] HDLArcSeekBar = new int[] {
+					2130772382,
+					2130772383,
+					2130772384,
+					2130772385,
+					2130772386,
+					2130772387,
+					2130772388,
+					2130772389,
+					2130772390,
+					2130772391,
+					2130772392,
+					2130772393,
+					2130772394,
+					2130772395,
+					2130772396,
+					2130772397,
+					2130772398,
+					2130772399};
+
 			// aapt resource value: 1
 			public const int FontFamily_fontProviderCerts = 1;
-			
+
 			// aapt resource value: 2
 			public const int FontFamily_fontProviderFetchStrategy = 2;
-			
+
 			// aapt resource value: 3
 			public const int FontFamily_fontProviderFetchTimeout = 3;
-			
+
 			// aapt resource value: 4
 			public const int FontFamily_fontProviderPackage = 4;
-			
+
 			// aapt resource value: 5
 			public const int FontFamily_fontProviderQuery = 5;
-			
+
 			// aapt resource value: { 0x1010109,0x1010200,0x7F0400AF }
 			public static int[] ForegroundLinearLayout = new int[] {
 					16843017,
 					16843264,
 					2130968751};
-			
+
 			// aapt resource value: 0
 			public const int ForegroundLinearLayout_android_foreground = 0;
-			
+
 			// aapt resource value: 1
 			public const int ForegroundLinearLayout_android_foregroundGravity = 1;
-			
+
 			// aapt resource value: 2
 			public const int ForegroundLinearLayout_foregroundInsidePadding = 2;
-			
+
 			// aapt resource value: { 0x7F040029,0x7F04002A,0x7F04002B,0x7F04002C,0x7F04002D,0x7F04002E,0x7F04002F,0x7F040030,0x7F040031,0x7F040032,0x7F040033,0x7F040034,0x7F040035,0x7F040036,0x7F040037,0x7F040038,0x7F040039,0x7F0400B2 }
 			public static int[] HDLArcSeekBar = new int[] {
 					2130968617,
@@ -6851,115 +7429,112 @@
 					2130968632,
 					2130968633,
 					2130968754};
-			
+
 			// aapt resource value: 0
 			public const int HDLArcSeekBar_arc_border_color = 0;
-			
+
 			// aapt resource value: 1
 			public const int HDLArcSeekBar_arc_border_width = 1;
-			
+
 			// aapt resource value: 2
 			public const int HDLArcSeekBar_arc_colors = 2;
-			
+
 			// aapt resource value: 3
 			public const int HDLArcSeekBar_arc_max = 3;
-			
+
 			// aapt resource value: 4
 			public const int HDLArcSeekBar_arc_min = 4;
-			
+
 			// aapt resource value: 5
 			public const int HDLArcSeekBar_arc_open_angle = 5;
-			
+
 			// aapt resource value: 6
 			public const int HDLArcSeekBar_arc_progress = 6;
-			
+
 			// aapt resource value: 7
 			public const int HDLArcSeekBar_arc_progress_bar_color = 7;
-			
+
 			// aapt resource value: 8
 			public const int HDLArcSeekBar_arc_progress_bar_text_unit = 8;
-			
+
 			// aapt resource value: 9
 			public const int HDLArcSeekBar_arc_rotate_angle = 9;
-			
+
 			// aapt resource value: 10
 			public const int HDLArcSeekBar_arc_shadow_radius = 10;
-			
+
 			// aapt resource value: 11
 			public const int HDLArcSeekBar_arc_thumb_color = 11;
-			
+
 			// aapt resource value: 12
 			public const int HDLArcSeekBar_arc_thumb_radius = 12;
-			
+
 			// aapt resource value: 13
 			public const int HDLArcSeekBar_arc_thumb_shadow_color = 13;
-			
+
 			// aapt resource value: 14
 			public const int HDLArcSeekBar_arc_thumb_shadow_radius = 14;
-			
+
 			// aapt resource value: 15
 			public const int HDLArcSeekBar_arc_thumb_width = 15;
-			
+
 			// aapt resource value: 16
 			public const int HDLArcSeekBar_arc_width = 16;
-			
+
 			// aapt resource value: 17
 			public const int HDLArcSeekBar_hdl_arc_thumb_mode = 17;
-			
+
 			// aapt resource value: { 0x7F04007E,0x7F04007F,0x7F040080,0x7F040081,0x7F040082,0x7F04010F }
 			public static int[] HDLCurtainSeekBar = new int[] {
-					2130968702,
-					2130968703,
-					2130968704,
-					2130968705,
-					2130968706,
-					2130968847};
-			
+					2130772400,
+					2130772401,
+					2130772402,
+					2130772403,
+					2130772404,
+					2130772405};
+
 			// aapt resource value: 0
 			public const int HDLCurtainSeekBar_curtain_bar_bg_color = 0;
-			
+
 			// aapt resource value: 1
 			public const int HDLCurtainSeekBar_curtain_bar_border_color = 1;
-			
+
 			// aapt resource value: 2
 			public const int HDLCurtainSeekBar_curtain_bar_color = 2;
-			
+
 			// aapt resource value: 3
 			public const int HDLCurtainSeekBar_curtain_bar_height = 3;
-			
+
 			// aapt resource value: 4
 			public const int HDLCurtainSeekBar_curtain_bar_width = 4;
-			
+
 			// aapt resource value: 5
 			public const int HDLCurtainSeekBar_second_curtain_bar_color = 5;
-			
+
 			// aapt resource value: { 0x7F040110,0x7F0401AD,0x7F0401AE,0x7F0401AF,0x7F0401B0,0x7F0401B1 }
 			public static int[] HDLWaveSeekBar = new int[] {
-					2130968848,
-					2130969005,
-					2130969006,
-					2130969007,
-					2130969008,
-					2130969009};
-			
-			// aapt resource value: 0
-			public const int HDLWaveSeekBar_second_wave_color = 0;
-			
+					2130772406,
+					2130772407,
+					2130772408,
+					2130772409,
+					2130772410,
+					2130772411};
+
 			// aapt resource value: 1
 			public const int HDLWaveSeekBar_wave_bg_color = 1;
-			
+
 			// aapt resource value: 2
 			public const int HDLWaveSeekBar_wave_border_color = 2;
-			
+
 			// aapt resource value: 3
 			public const int HDLWaveSeekBar_wave_color = 3;
-			
+
 			// aapt resource value: 4
 			public const int HDLWaveSeekBar_wave_height = 4;
-			
+
 			// aapt resource value: 5
 			public const int HDLWaveSeekBar_wave_width = 5;
-			
+
 			// aapt resource value: { 0x10100AF,0x10100C4,0x1010126,0x1010127,0x1010128,0x7F040088,0x7F04008A,0x7F0400E7,0x7F040115 }
 			public static int[] LinearLayoutCompat = new int[] {
 					16842927,
@@ -6971,64 +7546,64 @@
 					2130968714,
 					2130968807,
 					2130968853};
-			
+
 			// aapt resource value: 2
 			public const int LinearLayoutCompat_android_baselineAligned = 2;
-			
+
 			// aapt resource value: 3
 			public const int LinearLayoutCompat_android_baselineAlignedChildIndex = 3;
-			
+
 			// aapt resource value: 0
 			public const int LinearLayoutCompat_android_gravity = 0;
-			
+
 			// aapt resource value: 1
 			public const int LinearLayoutCompat_android_orientation = 1;
-			
+
 			// aapt resource value: 4
 			public const int LinearLayoutCompat_android_weightSum = 4;
-			
+
 			// aapt resource value: 5
 			public const int LinearLayoutCompat_divider = 5;
-			
+
 			// aapt resource value: 6
 			public const int LinearLayoutCompat_dividerPadding = 6;
-			
+
 			// aapt resource value: { 0x10100B3,0x10100F4,0x10100F5,0x1010181 }
 			public static int[] LinearLayoutCompat_Layout = new int[] {
 					16842931,
 					16842996,
 					16842997,
 					16843137};
-			
+
 			// aapt resource value: 0
 			public const int LinearLayoutCompat_Layout_android_layout_gravity = 0;
-			
+
 			// aapt resource value: 2
 			public const int LinearLayoutCompat_Layout_android_layout_height = 2;
-			
+
 			// aapt resource value: 3
 			public const int LinearLayoutCompat_Layout_android_layout_weight = 3;
-			
+
 			// aapt resource value: 1
 			public const int LinearLayoutCompat_Layout_android_layout_width = 1;
-			
+
 			// aapt resource value: 7
 			public const int LinearLayoutCompat_measureWithLargestChild = 7;
-			
+
 			// aapt resource value: 8
 			public const int LinearLayoutCompat_showDividers = 8;
-			
+
 			// aapt resource value: { 0x10102AC,0x10102AD }
 			public static int[] ListPopupWindow = new int[] {
 					16843436,
 					16843437};
-			
+
 			// aapt resource value: 0
 			public const int ListPopupWindow_android_dropDownHorizontalOffset = 0;
-			
+
 			// aapt resource value: 1
 			public const int ListPopupWindow_android_dropDownVerticalOffset = 1;
-			
+
 			// aapt resource value: { 0x101000E,0x10100D0,0x1010194,0x10101DE,0x10101DF,0x10101E0 }
 			public static int[] MenuGroup = new int[] {
 					16842766,
@@ -7037,25 +7612,25 @@
 					16843230,
 					16843231,
 					16843232};
-			
+
 			// aapt resource value: 5
 			public const int MenuGroup_android_checkableBehavior = 5;
-			
+
 			// aapt resource value: 0
 			public const int MenuGroup_android_enabled = 0;
-			
+
 			// aapt resource value: 1
 			public const int MenuGroup_android_id = 1;
-			
+
 			// aapt resource value: 3
 			public const int MenuGroup_android_menuCategory = 3;
-			
+
 			// aapt resource value: 4
 			public const int MenuGroup_android_orderInCategory = 4;
-			
+
 			// aapt resource value: 2
 			public const int MenuGroup_android_visible = 2;
-			
+
 			// aapt resource value: { 0x1010002,0x101000E,0x10100D0,0x1010106,0x1010194,0x10101DE,0x10101DF,0x10101E1,0x10101E2,0x10101E3,0x10101E4,0x10101E5,0x101026F,0x7F04000D,0x7F04001F,0x7F040020,0x7F040028,0x7F040071,0x7F0400BC,0x7F0400BD,0x7F0400ED,0x7F040114,0x7F0401A7 }
 			public static int[] MenuItem = new int[] {
 					16842754,
@@ -7081,76 +7656,76 @@
 					2130968813,
 					2130968852,
 					2130968999};
-			
+
 			// aapt resource value: 13
 			public const int MenuItem_actionLayout = 13;
-			
+
 			// aapt resource value: 14
 			public const int MenuItem_actionProviderClass = 14;
-			
+
 			// aapt resource value: 15
 			public const int MenuItem_actionViewClass = 15;
-			
+
 			// aapt resource value: 16
 			public const int MenuItem_alphabeticModifiers = 16;
-			
+
 			// aapt resource value: 9
 			public const int MenuItem_android_alphabeticShortcut = 9;
-			
+
 			// aapt resource value: 11
 			public const int MenuItem_android_checkable = 11;
-			
+
 			// aapt resource value: 3
 			public const int MenuItem_android_checked = 3;
-			
+
 			// aapt resource value: 1
 			public const int MenuItem_android_enabled = 1;
-			
+
 			// aapt resource value: 0
 			public const int MenuItem_android_icon = 0;
-			
+
 			// aapt resource value: 2
 			public const int MenuItem_android_id = 2;
-			
+
 			// aapt resource value: 5
 			public const int MenuItem_android_menuCategory = 5;
-			
+
 			// aapt resource value: 10
 			public const int MenuItem_android_numericShortcut = 10;
-			
+
 			// aapt resource value: 12
 			public const int MenuItem_android_onClick = 12;
-			
+
 			// aapt resource value: 6
 			public const int MenuItem_android_orderInCategory = 6;
-			
+
 			// aapt resource value: 7
 			public const int MenuItem_android_title = 7;
-			
+
 			// aapt resource value: 8
 			public const int MenuItem_android_titleCondensed = 8;
-			
+
 			// aapt resource value: 4
 			public const int MenuItem_android_visible = 4;
-			
+
 			// aapt resource value: 17
 			public const int MenuItem_contentDescription = 17;
-			
+
 			// aapt resource value: 18
 			public const int MenuItem_iconTint = 18;
-			
+
 			// aapt resource value: 19
 			public const int MenuItem_iconTintMode = 19;
-			
+
 			// aapt resource value: 20
 			public const int MenuItem_numericModifiers = 20;
-			
+
 			// aapt resource value: 21
 			public const int MenuItem_showAsAction = 21;
-			
+
 			// aapt resource value: 22
 			public const int MenuItem_tooltipText = 22;
-			
+
 			// aapt resource value: { 0x10100AE,0x101012C,0x101012D,0x101012E,0x101012F,0x1010130,0x1010131,0x7F0400FE,0x7F040166 }
 			public static int[] MenuView = new int[] {
 					16842926,
@@ -7162,137 +7737,108 @@
 					16843057,
 					2130968830,
 					2130968934};
-			
+
 			// aapt resource value: 4
 			public const int MenuView_android_headerBackground = 4;
-			
+
 			// aapt resource value: 2
 			public const int MenuView_android_horizontalDivider = 2;
-			
+
 			// aapt resource value: 5
 			public const int MenuView_android_itemBackground = 5;
-			
+
 			// aapt resource value: 6
 			public const int MenuView_android_itemIconDisabledAlpha = 6;
-			
+
 			// aapt resource value: 1
 			public const int MenuView_android_itemTextAppearance = 1;
-			
+
 			// aapt resource value: 3
 			public const int MenuView_android_verticalDivider = 3;
-			
+
 			// aapt resource value: 0
 			public const int MenuView_android_windowAnimationStyle = 0;
-			
+
 			// aapt resource value: 7
 			public const int MenuView_preserveIconSpacing = 7;
-			
+
 			// aapt resource value: 8
 			public const int MenuView_subMenuArrow = 8;
-			
-			// aapt resource value: { 0x10100D4,0x10100DD,0x101011F,0x7F040093,0x7F0400B3,0x7F0400C4,0x7F0400C5,0x7F0400C7,0x7F0400C8,0x7F0400E8 }
+
 			public static int[] NavigationView = new int[] {
 					16842964,
 					16842973,
 					16843039,
-					2130968723,
-					2130968755,
-					2130968772,
-					2130968773,
-					2130968775,
-					2130968776,
-					2130968808};
-			
+					2130772005,
+					2130772266,
+					2130772267,
+					2130772268,
+					2130772269,
+					2130772270,
+					2130772271};
+
 			// aapt resource value: 0
 			public const int NavigationView_android_background = 0;
-			
+
 			// aapt resource value: 1
 			public const int NavigationView_android_fitsSystemWindows = 1;
-			
+
 			// aapt resource value: 2
 			public const int NavigationView_android_maxWidth = 2;
-			
+
 			// aapt resource value: 3
 			public const int NavigationView_elevation = 3;
-			
-			// aapt resource value: 4
-			public const int NavigationView_headerLayout = 4;
-			
-			// aapt resource value: 5
-			public const int NavigationView_itemBackground = 5;
-			
-			// aapt resource value: 6
-			public const int NavigationView_itemIconTint = 6;
-			
-			// aapt resource value: 7
-			public const int NavigationView_itemTextAppearance = 7;
-			
-			// aapt resource value: 8
-			public const int NavigationView_itemTextColor = 8;
-			
+
 			// aapt resource value: 9
-			public const int NavigationView_menu = 9;
-			
-			// aapt resource value: { 0x7F0401B2,0x7F0401B3,0x7F0401B4,0x7F0401B5,0x7F0401B6,0x7F0401B7 }
-			public static int[] pickerview = new int[] {
-					2130969010,
-					2130969011,
-					2130969012,
-					2130969013,
-					2130969014,
-					2130969015};
-			
-			// aapt resource value: 0
-			public const int pickerview_wheelview_dividerColor = 0;
-			
-			// aapt resource value: 1
-			public const int pickerview_wheelview_gravity = 1;
-			
-			// aapt resource value: 2
-			public const int pickerview_wheelview_lineSpacingMultiplier = 2;
-			
-			// aapt resource value: 3
-			public const int pickerview_wheelview_textColorCenter = 3;
-			
-			// aapt resource value: 4
-			public const int pickerview_wheelview_textColorOut = 4;
-			
+			public const int NavigationView_headerLayout = 9;
+
+			// aapt resource value: 7
+			public const int NavigationView_itemBackground = 7;
+
 			// aapt resource value: 5
-			public const int pickerview_wheelview_textSize = 5;
-			
-			// aapt resource value: { 0x1010176,0x10102C9,0x7F0400EE }
+			public const int NavigationView_itemIconTint = 5;
+
+			// aapt resource value: 8
+			public const int NavigationView_itemTextAppearance = 8;
+
+			// aapt resource value: 6
+			public const int NavigationView_itemTextColor = 6;
+
+			// aapt resource value: 4
+			public const int NavigationView_menu = 4;
+
 			public static int[] PopupWindow = new int[] {
 					16843126,
 					16843465,
 					2130968814};
-			
+
 			// aapt resource value: { 0x7F040161 }
 			public static int[] PopupWindowBackgroundState = new int[] {
 					2130968929};
-			
+
 			// aapt resource value: 0
 			public const int PopupWindowBackgroundState_state_above_anchor = 0;
-			
+
 			// aapt resource value: 1
 			public const int PopupWindow_android_popupAnimationStyle = 1;
-			
+
 			// aapt resource value: 0
 			public const int PopupWindow_android_popupBackground = 0;
-			
+
 			// aapt resource value: 2
 			public const int PopupWindow_overlapAnchor = 2;
-			
+
 			// aapt resource value: { 0x7F0400EF,0x7F0400F2 }
 			public static int[] RecycleListView = new int[] {
 					2130968815,
 					2130968818};
-			
+
 			// aapt resource value: 0
 			public const int RecycleListView_paddingBottomNoButtons = 0;
-			
+
 			// aapt resource value: 1
 			public const int RecycleListView_paddingTopNoTitle = 1;
-			
+
 			// aapt resource value: { 0x10100C4,0x10100F1,0x7F0400A0,0x7F0400A1,0x7F0400A2,0x7F0400A3,0x7F0400A4,0x7F0400CB,0x7F040108,0x7F040119,0x7F040160 }
 			public static int[] RecyclerView = new int[] {
 					16842948,
@@ -7306,55 +7852,66 @@
 					2130968840,
 					2130968857,
 					2130968928};
-			
+
 			// aapt resource value: 1
 			public const int RecyclerView_android_descendantFocusability = 1;
-			
+
 			// aapt resource value: 0
 			public const int RecyclerView_android_orientation = 0;
-			
+
 			// aapt resource value: 2
 			public const int RecyclerView_fastScrollEnabled = 2;
-			
+
 			// aapt resource value: 3
 			public const int RecyclerView_fastScrollHorizontalThumbDrawable = 3;
-			
+
 			// aapt resource value: 4
 			public const int RecyclerView_fastScrollHorizontalTrackDrawable = 4;
-			
+
 			// aapt resource value: 5
 			public const int RecyclerView_fastScrollVerticalThumbDrawable = 5;
-			
+
 			// aapt resource value: 6
 			public const int RecyclerView_fastScrollVerticalTrackDrawable = 6;
-			
+
 			// aapt resource value: 7
 			public const int RecyclerView_layoutManager = 7;
-			
+
 			// aapt resource value: 8
 			public const int RecyclerView_reverseLayout = 8;
-			
+
 			// aapt resource value: 9
 			public const int RecyclerView_spanCount = 9;
-			
+
 			// aapt resource value: 10
 			public const int RecyclerView_stackFromEnd = 10;
-			
+
 			// aapt resource value: { 0x7F0400C2 }
 			public static int[] ScrimInsetsFrameLayout = new int[] {
 					2130968770};
-			
+
 			// aapt resource value: 0
 			public const int ScrimInsetsFrameLayout_insetForeground = 0;
-			
+
 			// aapt resource value: { 0x7F04004A }
 			public static int[] ScrollingViewBehavior_Layout = new int[] {
 					2130968650};
-			
+
 			// aapt resource value: 0
 			public const int ScrollingViewBehavior_Layout_behavior_overlapTop = 0;
-			
-			// aapt resource value: { 0x10100DA,0x101011F,0x1010220,0x1010264,0x7F04005F,0x7F040070,0x7F040084,0x7F0400B1,0x7F0400BE,0x7F0400CA,0x7F040102,0x7F040103,0x7F04010C,0x7F04010D,0x7F040167,0x7F04016C,0x7F0401AC }
+
+			public static int[] ScrimInsetsFrameLayout = new int[] {
+					2130772272};
+
+			// aapt resource value: 0
+			public const int ScrimInsetsFrameLayout_insetForeground = 0;
+
+			public static int[] ScrollingViewBehavior_Layout = new int[] {
+					2130772273};
+
+			// aapt resource value: 0
+			public const int ScrollingViewBehavior_Layout_behavior_overlapTop = 0;
+
 			public static int[] SearchView = new int[] {
 					16842970,
 					16843039,
@@ -7373,258 +7930,272 @@
 					2130968935,
 					2130968940,
 					2130969004};
-			
+
 			// aapt resource value: 0
 			public const int SearchView_android_focusable = 0;
-			
+
 			// aapt resource value: 3
 			public const int SearchView_android_imeOptions = 3;
-			
+
 			// aapt resource value: 2
 			public const int SearchView_android_inputType = 2;
-			
+
 			// aapt resource value: 1
 			public const int SearchView_android_maxWidth = 1;
-			
+
 			// aapt resource value: 4
 			public const int SearchView_closeIcon = 4;
-			
+
 			// aapt resource value: 5
 			public const int SearchView_commitIcon = 5;
-			
+
 			// aapt resource value: 6
 			public const int SearchView_defaultQueryHint = 6;
-			
+
 			// aapt resource value: 7
 			public const int SearchView_goIcon = 7;
-			
+
 			// aapt resource value: 8
 			public const int SearchView_iconifiedByDefault = 8;
-			
+
 			// aapt resource value: 9
 			public const int SearchView_layout = 9;
-			
+
 			// aapt resource value: 10
 			public const int SearchView_queryBackground = 10;
-			
+
 			// aapt resource value: 11
 			public const int SearchView_queryHint = 11;
-			
+
 			// aapt resource value: 12
 			public const int SearchView_searchHintIcon = 12;
-			
+
 			// aapt resource value: 13
 			public const int SearchView_searchIcon = 13;
-			
+
 			// aapt resource value: 14
 			public const int SearchView_submitBackground = 14;
-			
+
 			// aapt resource value: 15
 			public const int SearchView_suggestionRowLayout = 15;
-			
+
 			// aapt resource value: 16
 			public const int SearchView_voiceIcon = 16;
-			
+
 			// aapt resource value: { 0x10100EA,0x10100EB,0x7F04011F,0x7F040122,0x7F040123,0x7F040124,0x7F04012B,0x7F04012C,0x7F04012D,0x7F04012E,0x7F04012F,0x7F040130,0x7F040131,0x7F040134,0x7F040135,0x7F040136,0x7F040137,0x7F040138,0x7F040139,0x7F04013B,0x7F04013C,0x7F04013D,0x7F04013E,0x7F040141,0x7F040142,0x7F040145,0x7F040146,0x7F040147,0x7F040148,0x7F040149,0x7F04014A,0x7F04014B,0x7F04014C,0x7F04014D,0x7F04014E,0x7F040151,0x7F040152 }
 			public static int[] SmartRefreshLayout = new int[] {
 					16842986,
 					16842987,
-					2130968863,
-					2130968866,
-					2130968867,
-					2130968868,
-					2130968875,
-					2130968876,
-					2130968877,
-					2130968878,
-					2130968879,
-					2130968880,
-					2130968881,
-					2130968884,
-					2130968885,
-					2130968886,
-					2130968887,
-					2130968888,
-					2130968889,
-					2130968891,
-					2130968892,
-					2130968893,
-					2130968894,
-					2130968897,
-					2130968898,
-					2130968901,
-					2130968902,
-					2130968903,
-					2130968904,
-					2130968905,
-					2130968906,
-					2130968907,
-					2130968908,
-					2130968909,
-					2130968910,
-					2130968913,
-					2130968914};
-			
+					2130772316,
+					2130772326,
+					2130772342,
+					2130772343,
+					2130772344,
+					2130772345,
+					2130772346,
+					2130772347,
+					2130772348,
+					2130772349,
+					2130772350,
+					2130772351,
+					2130772352,
+					2130772353,
+					2130772354,
+					2130772355,
+					2130772356,
+					2130772357,
+					2130772358,
+					2130772359,
+					2130772360,
+					2130772361,
+					2130772362,
+					2130772363,
+					2130772364,
+					2130772365,
+					2130772366,
+					2130772367,
+					2130772368,
+					2130772369,
+					2130772370,
+					2130772371,
+					2130772372,
+					2130772373,
+					2130772374};
+
 			// aapt resource value: 0
 			public const int SmartRefreshLayout_android_clipChildren = 0;
-			
+
 			// aapt resource value: 1
 			public const int SmartRefreshLayout_android_clipToPadding = 1;
-			
+
 			// aapt resource value: { 0x7F0400D6,0x7F0400D7 }
 			public static int[] SmartRefreshLayout_Layout = new int[] {
 					2130968790,
 					2130968791};
-			
+
 			// aapt resource value: 0
 			public const int SmartRefreshLayout_Layout_layout_srlBackgroundColor = 0;
-			
+
 			// aapt resource value: 1
 			public const int SmartRefreshLayout_Layout_layout_srlSpinnerStyle = 1;
-			
+
 			// aapt resource value: 2
 			public const int SmartRefreshLayout_srlAccentColor = 2;
-			
+
 			// aapt resource value: 3
 			public const int SmartRefreshLayout_srlDisableContentWhenLoading = 3;
-			
+
 			// aapt resource value: 4
 			public const int SmartRefreshLayout_srlDisableContentWhenRefresh = 4;
-			
+
 			// aapt resource value: 5
 			public const int SmartRefreshLayout_srlDragRate = 5;
-			
+
 			// aapt resource value: 6
 			public const int SmartRefreshLayout_srlEnableAutoLoadMore = 6;
-			
+
 			// aapt resource value: 7
 			public const int SmartRefreshLayout_srlEnableClipFooterWhenFixedBehind = 7;
-			
+
 			// aapt resource value: 8
 			public const int SmartRefreshLayout_srlEnableClipHeaderWhenFixedBehind = 8;
-			
+
 			// aapt resource value: 9
 			public const int SmartRefreshLayout_srlEnableFooterFollowWhenLoadFinished = 9;
-			
+
 			// aapt resource value: 10
 			public const int SmartRefreshLayout_srlEnableFooterFollowWhenNoMoreData = 10;
-			
+
 			// aapt resource value: 11
 			public const int SmartRefreshLayout_srlEnableFooterTranslationContent = 11;
-			
+
 			// aapt resource value: 12
 			public const int SmartRefreshLayout_srlEnableHeaderTranslationContent = 12;
-			
+
 			// aapt resource value: 13
 			public const int SmartRefreshLayout_srlEnableLoadMore = 13;
-			
+
 			// aapt resource value: 14
 			public const int SmartRefreshLayout_srlEnableLoadMoreWhenContentNotFull = 14;
-			
+
 			// aapt resource value: 15
 			public const int SmartRefreshLayout_srlEnableNestedScrolling = 15;
-			
+
 			// aapt resource value: 16
 			public const int SmartRefreshLayout_srlEnableOverScrollBounce = 16;
-			
+
 			// aapt resource value: 17
 			public const int SmartRefreshLayout_srlEnableOverScrollDrag = 17;
-			
+
 			// aapt resource value: 18
 			public const int SmartRefreshLayout_srlEnablePreviewInEditMode = 18;
-			
+
 			// aapt resource value: 19
 			public const int SmartRefreshLayout_srlEnablePureScrollMode = 19;
-			
+
 			// aapt resource value: 20
 			public const int SmartRefreshLayout_srlEnableRefresh = 20;
-			
+
 			// aapt resource value: 21
 			public const int SmartRefreshLayout_srlEnableScrollContentWhenLoaded = 21;
-			
+
 			// aapt resource value: 22
 			public const int SmartRefreshLayout_srlEnableScrollContentWhenRefreshed = 22;
-			
+
 			// aapt resource value: 23
 			public const int SmartRefreshLayout_srlFixedFooterViewId = 23;
-			
+
 			// aapt resource value: 24
 			public const int SmartRefreshLayout_srlFixedHeaderViewId = 24;
-			
+
 			// aapt resource value: 25
 			public const int SmartRefreshLayout_srlFooterHeight = 25;
-			
+
 			// aapt resource value: 26
 			public const int SmartRefreshLayout_srlFooterInsetStart = 26;
-			
+
 			// aapt resource value: 27
 			public const int SmartRefreshLayout_srlFooterMaxDragRate = 27;
-			
+
 			// aapt resource value: 28
 			public const int SmartRefreshLayout_srlFooterTranslationViewId = 28;
-			
+
 			// aapt resource value: 29
 			public const int SmartRefreshLayout_srlFooterTriggerRate = 29;
-			
+
 			// aapt resource value: 30
 			public const int SmartRefreshLayout_srlHeaderHeight = 30;
-			
+
 			// aapt resource value: 31
 			public const int SmartRefreshLayout_srlHeaderInsetStart = 31;
-			
+
 			// aapt resource value: 32
 			public const int SmartRefreshLayout_srlHeaderMaxDragRate = 32;
-			
+
 			// aapt resource value: 33
 			public const int SmartRefreshLayout_srlHeaderTranslationViewId = 33;
-			
+
 			// aapt resource value: 34
 			public const int SmartRefreshLayout_srlHeaderTriggerRate = 34;
-			
+
 			// aapt resource value: 35
 			public const int SmartRefreshLayout_srlPrimaryColor = 35;
-			
+
 			// aapt resource value: 36
 			public const int SmartRefreshLayout_srlReboundDuration = 36;
-			
+
 			// aapt resource value: { 0x101011F,0x7F040093,0x7F0400E5 }
 			public static int[] SnackbarLayout = new int[] {
 					16843039,
 					2130968723,
 					2130968805};
-			
-			// aapt resource value: 0
-			public const int SnackbarLayout_android_maxWidth = 0;
-			
+
+			public static int[] SmartRefreshLayout_Layout = new int[] {
+					2130772315,
+					2130772375};
+
 			// aapt resource value: 1
 			public const int SnackbarLayout_elevation = 1;
-			
+
 			// aapt resource value: 2
 			public const int SnackbarLayout_maxActionInlineWidth = 2;
-			
-			// aapt resource value: { 0x10100B2,0x1010176,0x101017B,0x1010262,0x7F0400FC }
+
+			public static int[] SnackbarLayout = new int[] {
+					16843039,
+					2130772005,
+					2130772274};
+
+			// aapt resource value: 0
+			public const int SnackbarLayout_android_maxWidth = 0;
+
+			// aapt resource value: 1
+			public const int SnackbarLayout_elevation = 1;
+
+			// aapt resource value: 2
+			public const int SnackbarLayout_maxActionInlineWidth = 2;
+
 			public static int[] Spinner = new int[] {
 					16842930,
 					16843126,
 					16843131,
 					16843362,
 					2130968828};
-			
+
 			// aapt resource value: 3
 			public const int Spinner_android_dropDownWidth = 3;
-			
+
 			// aapt resource value: 0
 			public const int Spinner_android_entries = 0;
-			
+
 			// aapt resource value: 1
 			public const int Spinner_android_popupBackground = 1;
-			
+
 			// aapt resource value: 2
 			public const int Spinner_android_prompt = 2;
-			
+
 			// aapt resource value: 4
 			public const int Spinner_popupTheme = 4;
-			
+
 			// aapt resource value: { 0x1010124,0x1010125,0x1010142,0x7F040116,0x7F04011D,0x7F04016D,0x7F04016E,0x7F040170,0x7F04018F,0x7F040190,0x7F040191,0x7F0401A8,0x7F0401A9,0x7F0401AA }
 			public static int[] SwitchCompat = new int[] {
 					16843044,
@@ -7641,64 +8212,64 @@
 					2130969000,
 					2130969001,
 					2130969002};
-			
+
 			// aapt resource value: 1
 			public const int SwitchCompat_android_textOff = 1;
-			
+
 			// aapt resource value: 0
 			public const int SwitchCompat_android_textOn = 0;
-			
+
 			// aapt resource value: 2
 			public const int SwitchCompat_android_thumb = 2;
-			
+
 			// aapt resource value: 3
 			public const int SwitchCompat_showText = 3;
-			
+
 			// aapt resource value: 4
 			public const int SwitchCompat_splitTrack = 4;
-			
+
 			// aapt resource value: 5
 			public const int SwitchCompat_switchMinWidth = 5;
-			
+
 			// aapt resource value: 6
 			public const int SwitchCompat_switchPadding = 6;
-			
+
 			// aapt resource value: 7
 			public const int SwitchCompat_switchTextAppearance = 7;
-			
+
 			// aapt resource value: 8
 			public const int SwitchCompat_thumbTextPadding = 8;
-			
+
 			// aapt resource value: 9
 			public const int SwitchCompat_thumbTint = 9;
-			
+
 			// aapt resource value: 10
 			public const int SwitchCompat_thumbTintMode = 10;
-			
+
 			// aapt resource value: 11
 			public const int SwitchCompat_track = 11;
-			
+
 			// aapt resource value: 12
 			public const int SwitchCompat_trackTint = 12;
-			
+
 			// aapt resource value: 13
 			public const int SwitchCompat_trackTintMode = 13;
-			
+
 			// aapt resource value: { 0x1010002,0x10100F2,0x101014F }
 			public static int[] TabItem = new int[] {
 					16842754,
 					16842994,
 					16843087};
-			
+
 			// aapt resource value: 0
 			public const int TabItem_android_icon = 0;
-			
+
 			// aapt resource value: 1
 			public const int TabItem_android_layout = 1;
-			
+
 			// aapt resource value: 2
 			public const int TabItem_android_text = 2;
-			
+
 			// aapt resource value: { 0x7F040171,0x7F040172,0x7F040173,0x7F040174,0x7F040175,0x7F040176,0x7F040177,0x7F040178,0x7F040179,0x7F04017A,0x7F04017B,0x7F04017C,0x7F04017D,0x7F04017E,0x7F04017F,0x7F040180 }
 			public static int[] TabLayout = new int[] {
 					2130968945,
@@ -7717,56 +8288,120 @@
 					2130968958,
 					2130968959,
 					2130968960};
-			
+
 			// aapt resource value: 0
 			public const int TabLayout_tabBackground = 0;
-			
+
 			// aapt resource value: 1
 			public const int TabLayout_tabContentStart = 1;
-			
+
 			// aapt resource value: 2
 			public const int TabLayout_tabGravity = 2;
-			
+
 			// aapt resource value: 3
 			public const int TabLayout_tabIndicatorColor = 3;
-			
+
 			// aapt resource value: 4
 			public const int TabLayout_tabIndicatorHeight = 4;
-			
+
 			// aapt resource value: 5
 			public const int TabLayout_tabMaxWidth = 5;
-			
+
 			// aapt resource value: 6
 			public const int TabLayout_tabMinWidth = 6;
-			
+
 			// aapt resource value: 7
 			public const int TabLayout_tabMode = 7;
-			
+
 			// aapt resource value: 8
 			public const int TabLayout_tabPadding = 8;
-			
+
 			// aapt resource value: 9
 			public const int TabLayout_tabPaddingBottom = 9;
-			
+
 			// aapt resource value: 10
 			public const int TabLayout_tabPaddingEnd = 10;
-			
+
+			public static int[] TabItem = new int[] {
+					16842754,
+					16842994,
+					16843087};
+
+			// aapt resource value: 0
+			public const int TabItem_android_icon = 0;
+
+			// aapt resource value: 1
+			public const int TabItem_android_layout = 1;
+
+			// aapt resource value: 2
+			public const int TabItem_android_text = 2;
+
+			public static int[] TabLayout = new int[] {
+					2130772275,
+					2130772276,
+					2130772277,
+					2130772278,
+					2130772279,
+					2130772280,
+					2130772281,
+					2130772282,
+					2130772283,
+					2130772284,
+					2130772285,
+					2130772286,
+					2130772287,
+					2130772288,
+					2130772289,
+					2130772290};
+
+			// aapt resource value: 3
+			public const int TabLayout_tabBackground = 3;
+
+			// aapt resource value: 2
+			public const int TabLayout_tabContentStart = 2;
+
+			// aapt resource value: 5
+			public const int TabLayout_tabGravity = 5;
+
+			// aapt resource value: 0
+			public const int TabLayout_tabIndicatorColor = 0;
+
+			// aapt resource value: 1
+			public const int TabLayout_tabIndicatorHeight = 1;
+
+			// aapt resource value: 7
+			public const int TabLayout_tabMaxWidth = 7;
+
+			// aapt resource value: 6
+			public const int TabLayout_tabMinWidth = 6;
+
+			// aapt resource value: 4
+			public const int TabLayout_tabMode = 4;
+
+			// aapt resource value: 15
+			public const int TabLayout_tabPadding = 15;
+
+			// aapt resource value: 14
+			public const int TabLayout_tabPaddingBottom = 14;
+
+			// aapt resource value: 13
+			public const int TabLayout_tabPaddingEnd = 13;
+
 			// aapt resource value: 11
 			public const int TabLayout_tabPaddingStart = 11;
-			
+
 			// aapt resource value: 12
 			public const int TabLayout_tabPaddingTop = 12;
-			
-			// aapt resource value: 13
-			public const int TabLayout_tabSelectedTextColor = 13;
-			
-			// aapt resource value: 14
-			public const int TabLayout_tabTextAppearance = 14;
-			
-			// aapt resource value: 15
-			public const int TabLayout_tabTextColor = 15;
-			
-			// aapt resource value: { 0x1010095,0x1010096,0x1010097,0x1010098,0x101009A,0x101009B,0x1010161,0x1010162,0x1010163,0x1010164,0x10103AC,0x7F0400A6,0x7F040181 }
+
+			// aapt resource value: 10
+			public const int TabLayout_tabSelectedTextColor = 10;
+
+			// aapt resource value: 8
+			public const int TabLayout_tabTextAppearance = 8;
+
+			// aapt resource value: 9
+			public const int TabLayout_tabTextColor = 9;
+
 			public static int[] TextAppearance = new int[] {
 					16842901,
 					16842902,
@@ -7781,46 +8416,46 @@
 					16843692,
 					2130968742,
 					2130968961};
-			
+
 			// aapt resource value: 10
 			public const int TextAppearance_android_fontFamily = 10;
-			
+
 			// aapt resource value: 6
 			public const int TextAppearance_android_shadowColor = 6;
-			
+
 			// aapt resource value: 7
 			public const int TextAppearance_android_shadowDx = 7;
-			
+
 			// aapt resource value: 8
 			public const int TextAppearance_android_shadowDy = 8;
-			
+
 			// aapt resource value: 9
 			public const int TextAppearance_android_shadowRadius = 9;
-			
+
 			// aapt resource value: 3
 			public const int TextAppearance_android_textColor = 3;
-			
+
 			// aapt resource value: 4
 			public const int TextAppearance_android_textColorHint = 4;
-			
+
 			// aapt resource value: 5
 			public const int TextAppearance_android_textColorLink = 5;
-			
+
 			// aapt resource value: 0
 			public const int TextAppearance_android_textSize = 0;
-			
+
 			// aapt resource value: 2
 			public const int TextAppearance_android_textStyle = 2;
-			
+
 			// aapt resource value: 1
 			public const int TextAppearance_android_typeface = 1;
-			
+
 			// aapt resource value: 11
 			public const int TextAppearance_fontFamily = 11;
-			
+
 			// aapt resource value: 12
 			public const int TextAppearance_textAllCaps = 12;
-			
+
 			// aapt resource value: { 0x101009A,0x1010150,0x7F04007A,0x7F04007B,0x7F04007C,0x7F04007D,0x7F040094,0x7F040095,0x7F0400B6,0x7F0400B7,0x7F0400B8,0x7F0400F6,0x7F0400F7,0x7F0400F8,0x7F0400F9,0x7F0400FA }
 			public static int[] TextInputLayout = new int[] {
 					16842906,
@@ -7839,56 +8474,115 @@
 					2130968824,
 					2130968825,
 					2130968826};
-			
+
 			// aapt resource value: 1
 			public const int TextInputLayout_android_hint = 1;
-			
+
 			// aapt resource value: 0
 			public const int TextInputLayout_android_textColorHint = 0;
-			
+
 			// aapt resource value: 2
 			public const int TextInputLayout_counterEnabled = 2;
-			
+
 			// aapt resource value: 3
 			public const int TextInputLayout_counterMaxLength = 3;
-			
+
 			// aapt resource value: 4
 			public const int TextInputLayout_counterOverflowTextAppearance = 4;
-			
+
 			// aapt resource value: 5
 			public const int TextInputLayout_counterTextAppearance = 5;
-			
+
 			// aapt resource value: 6
 			public const int TextInputLayout_errorEnabled = 6;
-			
+
 			// aapt resource value: 7
 			public const int TextInputLayout_errorTextAppearance = 7;
-			
+
 			// aapt resource value: 8
 			public const int TextInputLayout_hintAnimationEnabled = 8;
-			
+
 			// aapt resource value: 9
 			public const int TextInputLayout_hintEnabled = 9;
-			
+
 			// aapt resource value: 10
 			public const int TextInputLayout_hintTextAppearance = 10;
-			
+
 			// aapt resource value: 11
 			public const int TextInputLayout_passwordToggleContentDescription = 11;
-			
+
 			// aapt resource value: 12
 			public const int TextInputLayout_passwordToggleDrawable = 12;
-			
+
 			// aapt resource value: 13
 			public const int TextInputLayout_passwordToggleEnabled = 13;
-			
+
+			public static int[] TextInputLayout = new int[] {
+					16842906,
+					16843088,
+					2130772291,
+					2130772292,
+					2130772293,
+					2130772294,
+					2130772295,
+					2130772296,
+					2130772297,
+					2130772298,
+					2130772299,
+					2130772300,
+					2130772301,
+					2130772302,
+					2130772303,
+					2130772304};
+
+			// aapt resource value: 1
+			public const int TextInputLayout_android_hint = 1;
+
+			// aapt resource value: 0
+			public const int TextInputLayout_android_textColorHint = 0;
+
+			// aapt resource value: 6
+			public const int TextInputLayout_counterEnabled = 6;
+
+			// aapt resource value: 7
+			public const int TextInputLayout_counterMaxLength = 7;
+
+			// aapt resource value: 9
+			public const int TextInputLayout_counterOverflowTextAppearance = 9;
+
+			// aapt resource value: 8
+			public const int TextInputLayout_counterTextAppearance = 8;
+
+			// aapt resource value: 4
+			public const int TextInputLayout_errorEnabled = 4;
+
+			// aapt resource value: 5
+			public const int TextInputLayout_errorTextAppearance = 5;
+
+			// aapt resource value: 10
+			public const int TextInputLayout_hintAnimationEnabled = 10;
+
+			// aapt resource value: 3
+			public const int TextInputLayout_hintEnabled = 3;
+
+			// aapt resource value: 2
+			public const int TextInputLayout_hintTextAppearance = 2;
+
+			// aapt resource value: 13
+			public const int TextInputLayout_passwordToggleContentDescription = 13;
+
+			// aapt resource value: 12
+			public const int TextInputLayout_passwordToggleDrawable = 12;
+
+			// aapt resource value: 11
+			public const int TextInputLayout_passwordToggleEnabled = 11;
+
 			// aapt resource value: 14
 			public const int TextInputLayout_passwordToggleTint = 14;
-			
+
 			// aapt resource value: 15
 			public const int TextInputLayout_passwordToggleTintMode = 15;
-			
-			// aapt resource value: { 0x10100AF,0x1010140,0x7F040057,0x7F040061,0x7F040062,0x7F040072,0x7F040073,0x7F040074,0x7F040075,0x7F040076,0x7F040077,0x7F0400E3,0x7F0400E4,0x7F0400E6,0x7F0400EA,0x7F0400EB,0x7F0400FC,0x7F040168,0x7F040169,0x7F04016A,0x7F040197,0x7F040199,0x7F04019A,0x7F04019B,0x7F04019C,0x7F04019D,0x7F04019E,0x7F04019F,0x7F0401A0 }
+
 			public static int[] Toolbar = new int[] {
 					16842927,
 					16843072,
@@ -7919,94 +8613,99 @@
 					2130968990,
 					2130968991,
 					2130968992};
-			
+
 			// aapt resource value: 0
 			public const int Toolbar_android_gravity = 0;
-			
+
 			// aapt resource value: 1
 			public const int Toolbar_android_minHeight = 1;
-			
+
 			// aapt resource value: 2
 			public const int Toolbar_buttonGravity = 2;
-			
+
 			// aapt resource value: 3
 			public const int Toolbar_collapseContentDescription = 3;
-			
+
 			// aapt resource value: 4
 			public const int Toolbar_collapseIcon = 4;
-			
+
 			// aapt resource value: 5
 			public const int Toolbar_contentInsetEnd = 5;
-			
+
 			// aapt resource value: 6
 			public const int Toolbar_contentInsetEndWithActions = 6;
-			
+
 			// aapt resource value: 7
 			public const int Toolbar_contentInsetLeft = 7;
-			
+
 			// aapt resource value: 8
 			public const int Toolbar_contentInsetRight = 8;
-			
+
 			// aapt resource value: 9
 			public const int Toolbar_contentInsetStart = 9;
-			
+
 			// aapt resource value: 10
 			public const int Toolbar_contentInsetStartWithNavigation = 10;
-			
+
 			// aapt resource value: 11
 			public const int Toolbar_logo = 11;
-			
+
 			// aapt resource value: 12
 			public const int Toolbar_logoDescription = 12;
-			
+
 			// aapt resource value: 13
 			public const int Toolbar_maxButtonHeight = 13;
-			
+
 			// aapt resource value: 14
 			public const int Toolbar_navigationContentDescription = 14;
-			
+
 			// aapt resource value: 15
 			public const int Toolbar_navigationIcon = 15;
-			
+
 			// aapt resource value: 16
 			public const int Toolbar_popupTheme = 16;
-			
+
 			// aapt resource value: 17
 			public const int Toolbar_subtitle = 17;
-			
+
 			// aapt resource value: 18
 			public const int Toolbar_subtitleTextAppearance = 18;
-			
+
 			// aapt resource value: 19
 			public const int Toolbar_subtitleTextColor = 19;
-			
+
 			// aapt resource value: 20
 			public const int Toolbar_title = 20;
-			
-			// aapt resource value: 21
-			public const int Toolbar_titleMargin = 21;
-			
+
+			public static int[] TwoLevelHeader = new int[] {
+					2130772376,
+					2130772377,
+					2130772378,
+					2130772379,
+					2130772380,
+					2130772381};
+
 			// aapt resource value: 22
 			public const int Toolbar_titleMarginBottom = 22;
-			
+
 			// aapt resource value: 23
 			public const int Toolbar_titleMarginEnd = 23;
-			
+
 			// aapt resource value: 26
 			public const int Toolbar_titleMargins = 26;
-			
+
 			// aapt resource value: 24
 			public const int Toolbar_titleMarginStart = 24;
-			
+
 			// aapt resource value: 25
 			public const int Toolbar_titleMarginTop = 25;
-			
+
 			// aapt resource value: 27
 			public const int Toolbar_titleTextAppearance = 27;
-			
+
 			// aapt resource value: 28
 			public const int Toolbar_titleTextColor = 28;
-			
+
 			// aapt resource value: { 0x7F04013A,0x7F04013F,0x7F040143,0x7F040144,0x7F04014F,0x7F040153 }
 			public static int[] TwoLevelHeader = new int[] {
 					2130968890,
@@ -8015,25 +8714,25 @@
 					2130968900,
 					2130968911,
 					2130968915};
-			
+
 			// aapt resource value: 0
 			public const int TwoLevelHeader_srlEnablePullToCloseTwoLevel = 0;
-			
+
 			// aapt resource value: 1
 			public const int TwoLevelHeader_srlEnableTwoLevel = 1;
-			
+
 			// aapt resource value: 2
 			public const int TwoLevelHeader_srlFloorDuration = 2;
-			
+
 			// aapt resource value: 3
 			public const int TwoLevelHeader_srlFloorRage = 3;
-			
+
 			// aapt resource value: 4
 			public const int TwoLevelHeader_srlMaxRage = 4;
-			
+
 			// aapt resource value: 5
 			public const int TwoLevelHeader_srlRefreshRage = 5;
-			
+
 			// aapt resource value: { 0x1010000,0x10100DA,0x7F0400F0,0x7F0400F1,0x7F04018D }
 			public static int[] View = new int[] {
 					16842752,
@@ -8041,76 +8740,84 @@
 					2130968816,
 					2130968817,
 					2130968973};
-			
+
 			// aapt resource value: { 0x10100D4,0x7F040045,0x7F040046 }
 			public static int[] ViewBackgroundHelper = new int[] {
 					16842964,
 					2130968645,
 					2130968646};
-			
+
 			// aapt resource value: 0
 			public const int ViewBackgroundHelper_android_background = 0;
-			
+
 			// aapt resource value: 1
 			public const int ViewBackgroundHelper_backgroundTint = 1;
-			
+
 			// aapt resource value: 2
 			public const int ViewBackgroundHelper_backgroundTintMode = 2;
-			
+
 			// aapt resource value: { 0x10100D0,0x10100F2,0x10100F3 }
 			public static int[] ViewStubCompat = new int[] {
 					16842960,
 					16842994,
 					16842995};
-			
+
 			// aapt resource value: 0
 			public const int ViewStubCompat_android_id = 0;
-			
+
 			// aapt resource value: 2
 			public const int ViewStubCompat_android_inflatedId = 2;
-			
+
 			// aapt resource value: 1
 			public const int ViewStubCompat_android_layout = 1;
-			
-			// aapt resource value: 1
-			public const int View_android_focusable = 1;
-			
+
+			public static int[] pickerview = new int[] {
+					2130772412,
+					2130772413,
+					2130772414,
+					2130772415,
+					2130772416,
+					2130772417};
+
+			// aapt resource value: 4
+			public const int pickerview_wheelview_dividerColor = 4;
+
 			// aapt resource value: 0
 			public const int View_android_theme = 0;
-			
+
 			// aapt resource value: 2
 			public const int View_paddingEnd = 2;
-			
+
 			// aapt resource value: 3
 			public const int View_paddingStart = 3;
-			
+
 			// aapt resource value: 4
 			public const int View_theme = 4;
-			
+
 			static Styleable()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Styleable()
 			{
 			}
 		}
-		
+
 		public partial class Xml
 		{
-			
+
 			// aapt resource value: 0x7F100000
 			public const int file_paths = 2131755008;
-			
+
 			// aapt resource value: 0x7F100001
 			public const int hdl_filepaths = 2131755009;
-			
+
 			static Xml()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
 			}
-			
+
 			private Xml()
 			{
 			}
diff --git a/ZigbeeApp/Home.Ios/AppDelegate.cs b/ZigbeeApp/Home.Ios/AppDelegate.cs
index d9396e2..51a85b9 100644
--- a/ZigbeeApp/Home.Ios/AppDelegate.cs
+++ b/ZigbeeApp/Home.Ios/AppDelegate.cs
@@ -27,6 +27,7 @@
         {
             //base.FinishedLaunching(application, launchOptions);
             Shared.Application.FontSize = 12;
+            Shared.Application.IsUsePingFang = true;
             Window = new UIWindow(UIScreen.MainScreen.Bounds);
             rootViewController = new UINavigationController(new GateWay.Ios.MainViewController()) { NavigationBarHidden = true };
             Window.RootViewController = rootViewController;
diff --git a/ZigbeeApp/Home.Ios/Home.IOS.csproj b/ZigbeeApp/Home.Ios/Home.IOS.csproj
index c478203..b388f7a 100644
--- a/ZigbeeApp/Home.Ios/Home.IOS.csproj
+++ b/ZigbeeApp/Home.Ios/Home.IOS.csproj
@@ -51,6 +51,7 @@
         <MtouchDebug>true</MtouchDebug>
         <MtouchExtraArgs>-gcc_flags -dead_strip</MtouchExtraArgs>
         <MtouchI18n>cjk</MtouchI18n>
+<CodesignProvision>Home_Dev</CodesignProvision>
     </PropertyGroup>
     <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
         <DebugType>none</DebugType>
@@ -184,6 +185,7 @@
       <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\2688X1242.png" />
     </ItemGroup>
     <ItemGroup>
+      <BundleResource Include="Resources\Language.ini" />
       <BundleResource Include="Resources\Phone\Guide\RightIcon.png" />
       <BundleResource Include="Resources\Phone\Guide\LeftIcon.png" />
       <BundleResource Include="Resources\Phone\Guide\Finger.png" />
@@ -214,6 +216,7 @@
       <BundleResource Include="Resources\Phone\Instruct\AirSwitchCloudContr.png" />
       <BundleResource Include="Resources\Phone\Instruct\SensorTemperatureHumidity.png" />
       <BundleResource Include="Resources\Phone\Instruct\PanelFangyueTwoButton.png" />
+      <BundleResource Include="Resources\Phone\Instruct\PanelCurtain.png" />
       <BundleResource Include="Resources\Phone\Instruct\PanelFangyueFourButton.png" />
       <BundleResource Include="Resources\Phone\Instruct\PanelFourButton.png" />
       <BundleResource Include="Resources\Phone\Instruct\AirConditionerZbGateway.png" />
@@ -314,6 +317,11 @@
       <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_5.png" />
       <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_4.png" />
       <BundleResource Include="Resources\Phone\MenuGroud\TopRightMenu2_6.png" />
+      <BundleResource Include="Resources\Phone\DeviceItem\PanelFangyueTwoButtonTable.png" />
+      <BundleResource Include="Resources\Phone\DeviceItem\PanelTable.png" />
+      <BundleResource Include="Resources\Phone\DeviceItem\PanelFangyueEightButtonTable.png" />
+      <BundleResource Include="Resources\Phone\DeviceItem\ButtonPanelFangyueEnvironmentBigPic.png" />
+      <BundleResource Include="Resources\Phone\DeviceItem\PanelFangyueFourButtonTable.png" />
       <BundleResource Include="Resources\Phone\Center\Abount.png" />
       <BundleResource Include="Resources\Phone\Center\ResidenceManagement.png" />
       <BundleResource Include="Resources\Phone\Center\Backup.png" />
@@ -353,6 +361,7 @@
       <BundleResource Include="Resources\Phone\SceneIcon\0.jpg" />
       <BundleResource Include="Resources\Phone\BindPic\BindEmptyPic.png" />
       <BundleResource Include="Resources\Phone\BindPic\BindLeft.png" />
+      <BundleResource Include="Resources\Phone\BindPic\FreshAirIcon.png" />
       <BundleResource Include="Resources\Phone\BindPic\BindAdd.png" />
       <BundleResource Include="Resources\Phone\BindPic\BindDown.png" />
       <BundleResource Include="Resources\Phone\BindPic\BindRoomColor.png" />
@@ -360,23 +369,31 @@
       <BundleResource Include="Resources\Phone\BindPic\BindRoomColorOn.png" />
       <BundleResource Include="Resources\Phone\DoorLock\DistributeUnlockIcon.png" />
       <BundleResource Include="Resources\Phone\DoorLock\TypeIcon.png" />
+      <BundleResource Include="Resources\Phone\DoorLock\LowPower.png" />
       <BundleResource Include="Resources\Phone\DoorLock\TemPasswordInvisiable.png" />
+      <BundleResource Include="Resources\Phone\DoorLock\NormallyOpenOffline.png" />
       <BundleResource Include="Resources\Phone\DoorLock\UnLockButton.png" />
       <BundleResource Include="Resources\Phone\DoorLock\AddFailedPic.png" />
       <BundleResource Include="Resources\Phone\DoorLock\SelectedIcon.png" />
       <BundleResource Include="Resources\Phone\DoorLock\Fingerprint207.png" />
+      <BundleResource Include="Resources\Phone\DoorLock\VolumeIconOn.png" />
       <BundleResource Include="Resources\Phone\DoorLock\DoorLockPicClose.png" />
       <BundleResource Include="Resources\Phone\DoorLock\TempPasswordBackground.png" />
       <BundleResource Include="Resources\Phone\DoorLock\AddFingerprintTipPic.png" />
       <BundleResource Include="Resources\Phone\DoorLock\FavoriteIcon.png" />
       <BundleResource Include="Resources\Phone\DoorLock\RightIcon.png" />
       <BundleResource Include="Resources\Phone\DoorLock\ShareIcon.png" />
+      <BundleResource Include="Resources\Phone\DoorLock\NormallyOpen.png" />
       <BundleResource Include="Resources\Phone\DoorLock\DateIcon.png" />
       <BundleResource Include="Resources\Phone\DoorLock\DoorLockOpen.png" />
       <BundleResource Include="Resources\Phone\DoorLock\UnlockSuccess.png" />
       <BundleResource Include="Resources\Phone\DoorLock\DoorLockClose.png" />
+      <BundleResource Include="Resources\Phone\DoorLock\Power60.png" />
       <BundleResource Include="Resources\Phone\DoorLock\UnLockBlankPic.png" />
+      <BundleResource Include="Resources\Phone\DoorLock\Power100.png" />
       <BundleResource Include="Resources\Phone\DoorLock\DelIcon.png" />
+      <BundleResource Include="Resources\Phone\DoorLock\PowerOffline.png" />
+      <BundleResource Include="Resources\Phone\DoorLock\ProgressBackground.png" />
       <BundleResource Include="Resources\Phone\DoorLock\CancelIcon.png" />
       <BundleResource Include="Resources\Phone\DoorLock\TemPasswordVisiable.png" />
       <BundleResource Include="Resources\Phone\DoorLock\proximityCard.png" />
@@ -394,15 +411,19 @@
       <BundleResource Include="Resources\Phone\DoorLock\Switch.png" />
       <BundleResource Include="Resources\Phone\DoorLock\AddIcon.png" />
       <BundleResource Include="Resources\Phone\DoorLock\DoorLockUserPic.png" />
+      <BundleResource Include="Resources\Phone\DoorLock\Power40.png" />
       <BundleResource Include="Resources\Phone\DoorLock\AllMethod.png" />
       <BundleResource Include="Resources\Phone\DoorLock\RecordIcon.png" />
       <BundleResource Include="Resources\Phone\DoorLock\FingerprintOn.png" />
       <BundleResource Include="Resources\Phone\DoorLock\VisitorIcon.png" />
+      <BundleResource Include="Resources\Phone\DoorLock\Power80.png" />
       <BundleResource Include="Resources\Phone\DoorLock\TempPasswordBackground1.png" />
       <BundleResource Include="Resources\Phone\DoorLock\DoorlockPicture.png" />
       <BundleResource Include="Resources\Phone\DoorLock\UnlockFailed.png" />
       <BundleResource Include="Resources\Phone\DoorLock\AddPasswordTicPic.png" />
       <BundleResource Include="Resources\Phone\DoorLock\AllMethodOn.png" />
+      <BundleResource Include="Resources\Phone\DoorLock\NormallyOpenOn.png" />
+      <BundleResource Include="Resources\Phone\DoorLock\VolumeIcon.png" />
       <BundleResource Include="Resources\Phone\DoorLock\SettingIcon.png" />
       <BundleResource Include="Resources\Phone\DoorLock\DoorlockIcon.png" />
       <BundleResource Include="Resources\Phone\DoorLock\SideslipPic.png" />
@@ -625,37 +646,58 @@
       <BundleResource Include="Resources\Phone\ZigeeLogic\sensor42.png" />
       <BundleResource Include="Resources\Phone\Device\DimmableLightSelected.png" />
       <BundleResource Include="Resources\Phone\Device\CurtainSiphonate.png" />
+      <BundleResource Include="Resources\Phone\Device\Socket1Selected2.png" />
       <BundleResource Include="Resources\Phone\Device\DimmableLight.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelTwo.png" />
+      <BundleResource Include="Resources\Phone\Device\RelayEpointSelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\ConverterZb485Selected2.png" />
+      <BundleResource Include="Resources\Phone\Device\DimmableLightSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\SensorPir.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorFireSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEnvironmentSelected.png" />
       <BundleResource Include="Resources\Phone\Device\LightSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\RelaySelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorWaterSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\SensorHumiditySelected.png" />
       <BundleResource Include="Resources\Phone\Device\RelayThreeLoad.png" />
       <BundleResource Include="Resources\Phone\Device\CurtainAutoOpen.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorTemperatureSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\IntelligentLocksH06CSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\CurtainSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\Relay.png" />
       <BundleResource Include="Resources\Phone\Device\SensorWaterSelected.png" />
       <BundleResource Include="Resources\Phone\Device\SensorInfrared.png" />
       <BundleResource Include="Resources\Phone\Device\Curtain.png" />
+      <BundleResource Include="Resources\Phone\Device\SwitchSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\AirSwitchCloudContr.png" />
       <BundleResource Include="Resources\Phone\Device\Socket1.png" />
+      <BundleResource Include="Resources\Phone\Device\AirConditionerSelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\RelayThreeLoadSelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\SensorCarbonMonoxideSelected.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelFour.png" />
       <BundleResource Include="Resources\Phone\Device\RelayEpointSelected.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelSelected.png" />
       <BundleResource Include="Resources\Phone\Device\SensorTemperatureHumidity.png" />
+      <BundleResource Include="Resources\Phone\Device\RepeaterZigbeeSelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelCurtainSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorDoorWindowSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\RelayThreeLoadSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\DryContactSelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelCurtain.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorCarbonMonoxideSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\ConverterZb485.png" />
       <BundleResource Include="Resources\Phone\Device\PanelFangyueTwoButtonTable.png" />
       <BundleResource Include="Resources\Phone\Device\Repeater.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFour.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorInfraredSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\SensorHumidity.png" />
       <BundleResource Include="Resources\Phone\Device\AirConditionerEpointSelected.png" />
       <BundleResource Include="Resources\Phone\Device\CurtainAutoOpenSelected.png" />
-      <BundleResource Include="Resources\Phone\Device\PanelTable.png" />
       <BundleResource Include="Resources\Phone\Device\Sensor.png" />
       <BundleResource Include="Resources\Phone\Device\RepeaterSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\AirSwitchSelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\ConverterSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\AirSwitchSelected.png" />
       <BundleResource Include="Resources\Phone\Device\IntelligentLocksSelected.png" />
       <BundleResource Include="Resources\Phone\Device\RelaySelected.png" />
@@ -665,16 +707,20 @@
       <BundleResource Include="Resources\Phone\Device\ColorLightSelected.png" />
       <BundleResource Include="Resources\Phone\Device\SensorEmergencyButton.png" />
       <BundleResource Include="Resources\Phone\Device\AirSwitch.png" />
+      <BundleResource Include="Resources\Phone\Device\IntelligentLocksH06CSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\SwitchSelected.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelTwoSelected.png" />
       <BundleResource Include="Resources\Phone\Device\SensorDoorWindowSelected.png" />
       <BundleResource Include="Resources\Phone\Device\Light.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueTwoSelected.png" />
       <BundleResource Include="Resources\Phone\Device\ThirdPartyDevice.png" />
+      <BundleResource Include="Resources\Phone\Device\AirConditionerZbGatewaySelected2.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEightSelected.png" />
-      <BundleResource Include="Resources\Phone\Device\SensorMotion.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEnvironment.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelOneSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\AirConditionerEpoint.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorTemperatureHumiditySelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\AirConditionerEpointSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\DryContactSelected.png" />
       <BundleResource Include="Resources\Phone\Device\CurtainSelected.png" />
       <BundleResource Include="Resources\Phone\Device\Converter.png" />
@@ -685,38 +731,55 @@
       <BundleResource Include="Resources\Phone\Device\Switch.png" />
       <BundleResource Include="Resources\Phone\Device\AirConditionerSelected.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanel.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelTwoSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\AirConditionerZbGateway.png" />
       <BundleResource Include="Resources\Phone\Device\DryContact.png" />
+      <BundleResource Include="Resources\Phone\Device\AirSwitchCloudContrSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelFourSelected.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelOneSelected.png" />
       <BundleResource Include="Resources\Phone\Device\SensorPirSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\CurtainSiphonateSelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\LightSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelThreeSelected.png" />
       <BundleResource Include="Resources\Phone\Device\IntelligentLocksH06C.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEightSelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\IntelligentLocksSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\CurtainSiphonateSelected.png" />
       <BundleResource Include="Resources\Phone\Device\SensorDoorWindow.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelOne.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEight.png" />
+      <BundleResource Include="Resources\Phone\Device\CurtainAutoOpenSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFourSelected.png" />
-      <BundleResource Include="Resources\Phone\Device\PanelFangyueEightButtonTable.png" />
+      <BundleResource Include="Resources\Phone\Device\ThirdPartyDeviceSelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\ThirdPartyDeviceSelected.png" />
       <BundleResource Include="Resources\Phone\Device\SensorTemperature.png" />
       <BundleResource Include="Resources\Phone\Device\SensorFire.png" />
       <BundleResource Include="Resources\Phone\Device\DimmableLightOneLoadSelected.png" />
       <BundleResource Include="Resources\Phone\Device\SensorTemperatureSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueTwoSelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\ColorLightSelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\DimmableLightOneLoadSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelThree.png" />
       <BundleResource Include="Resources\Phone\Device\SensorInfraredSelected.png" />
+      <BundleResource Include="Resources\Phone\Device\RepeaterSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\ConverterSelected.png" />
       <BundleResource Include="Resources\Phone\Device\RepeaterZigbeeSelected.png" />
-      <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEnvironmentBigPic.png" />
       <BundleResource Include="Resources\Phone\Device\SensorCarbonMonoxide.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelFourSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\DimmableLightOneLoad.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorHumiditySelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorPirSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\AirSwitchCloudContrSelected.png" />
       <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueTwo.png" />
       <BundleResource Include="Resources\Phone\Device\RelayEpoint.png" />
+      <BundleResource Include="Resources\Phone\Device\SensorSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\RepeaterZigbee.png" />
       <BundleResource Include="Resources\Phone\Device\SensorWater.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelThreeSelected2.png" />
       <BundleResource Include="Resources\Phone\Device\SensorSelected.png" />
       <BundleResource Include="Resources\Phone\Device\SensorTemperatureHumiditySelected.png" />
-      <BundleResource Include="Resources\Phone\Device\PanelFangyueFourButtonTable.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueFourSelected2.png" />
+      <BundleResource Include="Resources\Phone\Device\ButtonPanelFangyueEnvironmentSelected2.png" />
       <BundleResource Include="Resources\Phone\Light\DeskLampSelected.png" />
       <BundleResource Include="Resources\Phone\Light\ON.png" />
       <BundleResource Include="Resources\Phone\Light\Plug.png" />
@@ -774,44 +837,88 @@
       <BundleResource Include="Resources\Phone\Scene\Background.png" />
       <BundleResource Include="Resources\Phone\Scene\SceneIcon.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\17Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\5IconSelected2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\11IconSelected2.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\4Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\28Icon.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\16IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\6IconSelected.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\24IconSelected2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\24IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\9IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\19IconSelected.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\21Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\23IconSelected.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\20IconSelected2.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\20Icon.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\16Icon.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\1IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\11IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\5Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\1IconSelected2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\15IconSelected2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\22Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\10IconSelected2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\22IconSelected.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\4IconSelected2.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\7Icon.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\10IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\14Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\25IconSelected2.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\6Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\21IconSelected2.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\15Icon.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\17IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\7IconSelected.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\14IconSelected2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\25IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\8IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\18IconSelected.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\23Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\26Icon.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\20IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\19Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\18IconSelected2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\26IconSelected2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\13IconSelected2.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\3Icon.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\10Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\7IconSelected2.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\12IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\2IconSelected.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\28IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\5IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\15IconSelected.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\17IconSelected2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\3IconSelected2.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\2Icon.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\11Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\27Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\8IconSelected2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\22IconSelected2.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\18Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\27IconSelected.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\19IconSelected2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\27IconSelected2.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\4IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\14IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\13Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\6IconSelected2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\25Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\12IconSelected2.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\9Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\26IconSelected.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\21IconSelected.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\24Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\2IconSelected2.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\8Icon.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\28IconSelected2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\16IconSelected2.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\23IconSelected2.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\12Icon.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\13IconSelected.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\3IconSelected.png" />
+      <BundleResource Include="Resources\Phone\FunctionIcon\9IconSelected2.png" />
       <BundleResource Include="Resources\Phone\FunctionIcon\1Icon.png" />
       <BundleResource Include="Resources\Phone\RealDevice\CurtainSiphonate.png" />
       <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelTwo.png" />
@@ -822,6 +929,7 @@
       <BundleResource Include="Resources\Phone\RealDevice\SensorInfrared.png" />
       <BundleResource Include="Resources\Phone\RealDevice\AirSwitchCloudContr.png" />
       <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFour.png" />
+      <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelCurtain.png" />
       <BundleResource Include="Resources\Phone\RealDevice\Repeater.png" />
       <BundleResource Include="Resources\Phone\RealDevice\SensorTemperatrueHumidity.png" />
       <BundleResource Include="Resources\Phone\RealDevice\ButtonPanelFangyueFour.png" />
@@ -849,10 +957,7 @@
       <BundleResource Include="Resources\Phone\Gateway\WiredGateway.png" />
       <BundleResource Include="Resources\Phone\Gateway\WirelessGateway.png" />
       <BundleResource Include="Resources\Phone\Gateway\AddGatewaySuccess.png" />
-      <BundleResource Include="Resources\Language.ini" />
-      <BundleResource Include="Resources\Phone\Item\C_Panel.png" />
-      <BundleResource Include="Resources\Phone\Item\selected_Panel.png" />
     </ItemGroup>
     <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" />
     <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
-</Project>
\ No newline at end of file
+</Project>
diff --git a/ZigbeeApp/Home.Ios/Info.plist b/ZigbeeApp/Home.Ios/Info.plist
index abb8a0f..5b348d2 100755
--- a/ZigbeeApp/Home.Ios/Info.plist
+++ b/ZigbeeApp/Home.Ios/Info.plist
@@ -55,7 +55,7 @@
 		<string>remote-notification</string>
 	</array>
 	<key>CFBundleShortVersionString</key>
-	<string>1.0.19080501</string>
+	<string>1.0.20031601</string>
 	<key>CFBundleVersion</key>
 	<string>2</string>
 	<key>CFBundleURLTypes</key>
diff --git a/ZigbeeApp/Home.Ios/Resources/Language.ini b/ZigbeeApp/Home.Ios/Resources/Language.ini
index 4534637..236e0ca 100755
--- a/ZigbeeApp/Home.Ios/Resources/Language.ini
+++ b/ZigbeeApp/Home.Ios/Resources/Language.ini
@@ -234,139 +234,44 @@
 228=纭
 229=鍒嗛厤鎴愬姛
 230=纭畾瑕佸皢璇ヨ处鎴疯В鍐伙紵
-548=鎻愰啋璁剧疆
-550=鏂板鐢ㄦ埛
-551=澶村儚
-552=宸茬紪杈�
-553=鎸囩汗鍒楄〃
-554=鏈紪杈戝瘑鐮�
-555=鏈紪杈戞劅搴斿崱
-556=鍦烘櫙缂栬緫
-557=鏈紪杈戝満鏅�
-558=鏂板悕瀛�
-559=鍘熷悕瀛�
-560=绯荤粺璁剧疆
-561=瀵嗙爜鍒楄〃
-562=淇敼澶囨敞
-563=涓存椂瀵嗙爜
-564=鎰熷簲鍗�
-565=澶囨敞涓虹┖
-566=楠岃瘉鎴愬姛
-567=楠岃瘉棰戠箒锛岃5绉掑悗閲嶆柊鎿嶄綔
-568=鏈夋晥娆℃暟涓嶈秴杩�15娆�
-569=鏈夋晥鏃舵:
-570=鏈夋晥娆℃暟:
-571=鏃跺埢
-572= 娆�
-573=璇ヤ复鏃跺瘑鐮佹湁鏁�2娆�
-574=鐢熸垚涓存椂瀵嗙爜
-575=鏃�  鏈�
-576=鍒囨崲妯″紡浼氭竻闄ゆ寜閿腑鎵�鏈夌殑鐩爣锛岀‘瀹氳鍒囨崲鍚�
-577=鐭鏃堕棿
-578=鑷姩鐭鏃堕棿
-579=鎵嬪姩鐭鏃堕棿
-580=鍒�
-581=璁剧疆鎴愬姛
-582=璁剧疆澶辫触
-583=鍔ㄦ�佸瘑鐮�
-584=纭畾瑕侀噸鏂扮敓鎴愪复鏃跺姩鎬佸瘑鐮佸悧
-585=鎵�鏈夐�氱煡鎻愰啋
-586=寮�鍏抽棬鎻愰啋
-587=浣庣數鍘嬫姤璀�
-588=闃叉挰鎶ヨ
-589=闂ㄦ湭鍏虫姤璀�
-590=閿欒鎶ヨ
-591=閫氱煡鎻愰啋
-592=鎵嬫満鎺ㄩ�佹姤璀︿俊鎭�
-593=涓嶉�氱煡
-594=绫诲瀷
-595=鐢ㄦ埛
-596=鎸囩汗
-597=瀵嗙爜
-598=IC鍗�
-599=閽ュ寵
-600=杩滅▼
-601=涓存椂瀵嗙爜
-602=閽ュ寵
-603=瀵嗙爜閿欒
-604=闂ㄦ湭閿佸ソ
-605=鍔寔
-606=鐢甸噺涓嶈冻
-607=鎸囩汗閿欒
-608=鍗$墖閿欒
-609=寮�閿侊細
-610=鎶ヨ锛�
-611=寮�閿侀�氱煡
-612=淇℃伅鏇存敼
-614=鍙�夊満鏅�
-615=鍦烘櫙涓病鏈夌洰鏍囷紝鎺у埗澶辫触
-616=鐩爣閰嶇疆涓�
-617=鐩爣閰嶇疆鎴愬姛
-618=鎶ヨ鍦烘櫙璁剧疆
-619=璇疯緭鍏�6浣嶆暟瀛楀瘑鐮�
-620=璁剧疆瀵嗙爜闇�瑕佹寜璁惧鎸夐敭
-621=璇疯緭鍏�6浣嶅瘑鐮�
-622=瀵嗙爜鍙戦�佸け璐�
-623=鏇存敼瀵嗙爜鏃跺厛鍦ㄨ緭鍏ュ師瀵嗙爜
-624=璁剧疆瀵嗙爜闇�瑕佹寜璁惧閿�5s
-625=鏇存敼瀵嗙爜鏃跺厛杈撳叆鍘熷瘑鐮佺劧鍚庨暱鎸夎澶囨寜閿�5s鎵嶈兘鏇存敼瀵嗙爜
-626=鏃堕棿璁剧疆
-627=楠岃瘉棰戠箒锛岃15绉掑悗鍐嶆搷浣�
-628=璁惧涓嶅湪绾�
-629=璁剧疆瀵嗙爜
-630=鐢ㄦ埛鍚�
-631=鎵�鏈夐棬閿�
-632=瀵嗙爜涓嶅瓨鍦ㄣ�傚缓璁缃柊瀵嗙爜
-633=纭畾瑕佹洿鏀瑰瘑鐮佸悧
-634=鎵�鏈夊巻鍙茶褰�
-635=璁剧疆瀵嗙爜
-636=鎵惧洖瀵嗙爜
-637=璐︽埛瀵嗙爜
-638=璐︽埛瀵嗙爜閿欒
-639=鎵�鏈夎褰�
-640=杩滅▼寮�閿佸瘑鐮佽缃�/鏇存敼
-641=杩樻病璁剧疆瀵嗙爜
-642= 杩滅▼寮�閿佸瘑鐮佸凡缁忚缃�
-643= 娆㈣繋浣跨敤杩滅▼寮�閿�
-644=棣栨浣跨敤璇疯缃繙绋嬪紑閿佸瘑鐮�
-645=鐜板湪璁剧疆
-646=绋嶅悗璁剧疆
-647=绋嶅悗璇峰墠寰�绯荤粺璁剧疆涓缃垨鑰呮洿鏀瑰瘑鐮�
-648=璁剧疆6浣嶅瘑鐮�
-649=璇疯缃�6浣嶆柊瀵嗙爜
-650=璐︽埛瀵嗙爜涓虹┖
-651=鍦烘櫙鎶ヨ璁剧疆
-652=璁剧疆鐩爣澶辫触锛岃鍦ㄥ満鏅腑娣诲姞閫昏緫妯″潡
-653=鎺у埗澶辫触
-654=鏈煡鎸囩汗
-655=璇锋鏌ョ綉缁�
-656=鏈煡IC鍗�
-657=纭畾鎵撳紑鎶ヨ鎻愰啋?
-658=纭畾鍏抽棴鎶ヨ鎻愰啋锛�
-659=鎸囩汗璁板綍
-660=瀵嗙爜璁板綍
-661=IC鍗¤褰�
-662=杩滅▼璁板綍
-663=鎺ㄩ��
-664=鐢ㄦ埛
-665=璇疯緭鍏ユ帹閫佸唴瀹�
-666=褰撳墠宸茬粡閰嶇疆浜嗗満鏅紝纭畾瑕佹浛鎹㈠悧锛�
-667=鏀瑰満鏅凡缁忛�変腑
-668=娌℃湁鍙戠幇缃戝叧
-669=鍚屾閫氱煡鎴愬姛
-670=鍚屾閫氱煡澶辫触
-671=纭畾鍙戦�侀�氱煡鍚楋紵
-672=鎵撳紑闂ㄩ攣鎶ヨ鎴愬姛
-673=鎵撳紑闂ㄩ攣鎶ヨ澶辫触
-674=鍏抽棴闂ㄩ攣鎶ヨ鎴愬姛
-675=鍏抽棴闂ㄩ攣鎶ヨ澶辫触
-676=鍙戦�侀�氱煡鎴愬姛
-677=鍙戦�侀�氱煡澶辫触
-678=鎶ヨ閫氱煡
-679=宸茬粡缂栬緫鍦烘櫙
-680=鏈煡瀵嗙爜
-
-
+231=鎺ヨ繎鎰熷簲
+232=鎺ヨ繎鎰熷簲鍔熻兘璁剧疆缃け璐�
+233=鑾峰彇鎺ヨ繎鎰熷簲鍔熻兘澶辫触
+234=鏂规偊鏂伴灏忔ā鍧�
+235=鎸変綇闈㈡澘妯″紡锛圡ode)鍜岄閫燂紙Fan)鎸夐敭{0}缁胯壊鎸囩ず鐏寒璧枫�傚垯閰嶇綉鎴愬姛
+;涓夋寜閿潰鏉垮叆缃戞搷浣滄寚绀�
+236=缁胯壊鎸囩ず鐏棯鐑�
+237=鎸囩ず鐏�
+238=闀挎寜5绉掞紙鎸夐敭锛�
+239=闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝鎸囩ず鐏彉缁裤�侀棯鐑亄0}杩涘叆閰嶇綉鐘舵�併�傜豢鐏唲鐏垯閰嶇綉鎴愬姛
+;涓夋寜閿潰鏉垮叆缃戞搷浣滄寚绀�
+240= S-one
+241=璁剧疆甯稿紑妯″紡鍚庯紝鎮ㄧ殑闂ㄩ攣灏嗗缁坽0}澶勪簬鎵撳紑鐘舵�侊紝纭寮�鍚紵
+242=鐢甸噺
+243=甯稿紑妯″紡宸插紑鍚�
+244=澶辨晥璁剧疆
+245=鑷姩鍖�
+246=闂ㄩ攣濮嬬粓鎵撳紑{0}灏忔椂
+247=褰撳墠鏃跺尯
+248=鍙栨秷甯稿紑
+249=鎮ㄧ殑甯稿紑妯″紡灏嗚鍙栨秷
+250=淇濇寔甯稿紑
+251=纭鍙栨秷
+252=(鏈鎿嶄綔浠呬负鍗曟鍙栨秷锛岃嫢闇�瑕佸仠姝㈡墽琛岃嚜鍔ㄥ寲锛岃閫夋嫨鍒嗙被-鑷姩鍖栬繘琛岃缃�)
+253=鑾峰彇闂ㄩ攣甯稿紑妯″紡澶辫触
+254=鎵撳紑闂ㄩ攣甯稿紑妯″紡鎴愬姛
+255=鎵撳紑闂ㄩ攣甯稿紑妯″紡澶辫触
+256=鍏抽棴闂ㄩ攣甯稿紑妯″紡鎴愬姛
+257=鍏抽棴闂ㄩ攣甯稿紑妯″紡鎴愬姛
+258=甯稿紑妯″紡涓嬫棤娉曟搷浣�
+259=澶辨晥鏃堕棿涓嶅悎娉曪紝璇烽噸鍐欒缃�
+260=闊抽噺璁剧疆澶辫触
+261=闊抽噺璁剧疆鎴愬姛
+262=褰撳墠鏃跺尯
+263=鍖�
+264=涓�
+265=瑗�
+266=褰撳墠璁惧涓嶆敮鎸佽鍔熻兘
 
 5097=鍙栨秷
 5098=纭畾
@@ -1831,6 +1736,7 @@
 16071=绾�
 16072=鑳屽厜鐏寒搴�
 16073=鎵撳紑
+16074=鏃ョ珛绌鸿皟妯″潡
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄帴鍙g殑杩斿洖淇℃伅缈昏瘧,浠�18000寮�濮嬧槄鈽呪槄鈽�
 18004=鎸囧畾缃戝叧宸茬粡琚粦瀹�
@@ -1913,6 +1819,8 @@
 21020=鎸変綇闈㈡澘宸︿笂瑙掓寜閿紝鎵�鏈夋寜閿寚绀虹伅{0}浜捣锛屽垯閰嶇綉鎴愬姛
 ;鏂规偊鐜闈㈡澘鍏ョ綉鎿嶄綔鎸囩ず
 21021=鎸変綇闈㈡澘鍔熻兘(function)鎸夐敭锛屾墍鏈夋寜閿畕0}鎸囩ず鐏寒璧凤紝鍒欓厤缃戞垚鍔�
+;绐楀笜闈㈡澘鐨勫叆缃戞搷浣滄寚绀�
+21022=闀挎寜闈㈡澘宸︿笂瑙掓寜閿紝鎵�鏈夋寜閿畕0}鎸囩ず鐏寒璧凤紝鍒欓厤缃戞垚鍔�
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄ā鍧桰D鐨勭炕璇戝悕瀛�,浠�30000寮�濮嬧槄鈽呪槄鈽�
 30000=绱ф�ユ寜閽�
@@ -1951,6 +1859,7 @@
 30033=鏂规偊鐜闈㈡澘
 30034=绠�绾�4鎸夐敭鍦烘櫙闈㈡澘
 30035=绠�绾�2璺獥甯橀潰鏉�
+30036=鏂规偊/2璺獥甯橀潰鏉�-Z
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄澶囨墍灞炵绫荤殑缈昏瘧鍚嶅瓧,浠�40000寮�濮嬧槄鈽呪槄鈽�
 40000=閬槼
@@ -1967,4 +1876,4 @@
 40011=娓╂箍搴︿紶鎰熷櫒
 40012=娓╁害浼犳劅鍣�
 40013=婀垮害浼犳劅鍣�
-40014=骞叉帴鐐�
\ No newline at end of file
+40014=骞叉帴鐐�
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/BindPic/FreshAirIcon.png b/ZigbeeApp/Home.Ios/Resources/Phone/BindPic/FreshAirIcon.png
new file mode 100755
index 0000000..7dcb24c
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/BindPic/FreshAirIcon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerEpointSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerEpointSelected2.png
new file mode 100755
index 0000000..b01d55f
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerEpointSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerSelected2.png
new file mode 100755
index 0000000..0915084
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerZbGatewaySelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerZbGatewaySelected2.png
new file mode 100755
index 0000000..0915084
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirConditionerZbGatewaySelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchCloudContrSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchCloudContrSelected2.png
new file mode 100755
index 0000000..f6bd66e
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchCloudContrSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchSelected2.png
new file mode 100755
index 0000000..f6bd66e
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/AirSwitchSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelCurtain.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelCurtain.png
new file mode 100755
index 0000000..a0e87e6
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelCurtain.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelCurtainSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelCurtainSelected.png
new file mode 100755
index 0000000..af7c7f8
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelCurtainSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueEightSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueEightSelected2.png
new file mode 100755
index 0000000..d452d06
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueEightSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueEnvironmentSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueEnvironmentSelected2.png
new file mode 100755
index 0000000..b01a740
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueEnvironmentSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueFourSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueFourSelected2.png
new file mode 100755
index 0000000..37ae231
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueFourSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueTwoSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueTwoSelected2.png
new file mode 100755
index 0000000..74d7490
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFangyueTwoSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFourSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFourSelected2.png
new file mode 100755
index 0000000..202bc47
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelFourSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelOneSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelOneSelected2.png
new file mode 100755
index 0000000..cd553a1
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelOneSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelSelected2.png
new file mode 100755
index 0000000..202bc47
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelThreeSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelThreeSelected2.png
new file mode 100755
index 0000000..4dccc79
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelThreeSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelTwoSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelTwoSelected2.png
new file mode 100755
index 0000000..f916586
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ButtonPanelTwoSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ColorLightSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ColorLightSelected2.png
new file mode 100755
index 0000000..ebfa875
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ColorLightSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/Converter.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/Converter.png
index b0e9c11..0785b95 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/Device/Converter.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/Converter.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterSelected2.png
new file mode 100755
index 0000000..27d83fa
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterZb485.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterZb485.png
index b0e9c11..0785b95 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterZb485.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterZb485.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterZb485Selected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterZb485Selected2.png
new file mode 100755
index 0000000..27d83fa
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ConverterZb485Selected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainAutoOpenSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainAutoOpenSelected2.png
new file mode 100755
index 0000000..79b2cdc
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainAutoOpenSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSelected2.png
new file mode 100755
index 0000000..79b2cdc
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSiphonateSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSiphonateSelected2.png
new file mode 100755
index 0000000..79b2cdc
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/CurtainSiphonateSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightOneLoadSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightOneLoadSelected2.png
new file mode 100755
index 0000000..30c23a0
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightOneLoadSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightSelected2.png
new file mode 100755
index 0000000..30c23a0
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/DimmableLightSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/DryContactSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/DryContactSelected2.png
new file mode 100755
index 0000000..4e40bb1
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/DryContactSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksH06CSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksH06CSelected2.png
new file mode 100755
index 0000000..7c8e31b
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksH06CSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksSelected2.png
new file mode 100755
index 0000000..7c8e31b
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/IntelligentLocksSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/LightSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/LightSelected2.png
new file mode 100755
index 0000000..ebfa875
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/LightSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayEpointSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayEpointSelected2.png
new file mode 100755
index 0000000..fc7cea3
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayEpointSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelaySelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelaySelected2.png
new file mode 100755
index 0000000..951d3cb
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelaySelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayThreeLoadSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayThreeLoadSelected2.png
new file mode 100755
index 0000000..951d3cb
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RelayThreeLoadSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterSelected2.png
new file mode 100755
index 0000000..e313935
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterZigbeeSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterZigbeeSelected2.png
new file mode 100755
index 0000000..e313935
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/RepeaterZigbeeSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorCarbonMonoxideSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorCarbonMonoxideSelected2.png
new file mode 100755
index 0000000..5394ed4
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorCarbonMonoxideSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorDoorWindowSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorDoorWindowSelected2.png
new file mode 100755
index 0000000..1bcd0d2
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorDoorWindowSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorFireSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorFireSelected2.png
new file mode 100755
index 0000000..5801d33
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorFireSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorHumiditySelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorHumiditySelected2.png
new file mode 100755
index 0000000..3687727
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorHumiditySelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorInfraredSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorInfraredSelected2.png
new file mode 100755
index 0000000..43c9a9e
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorInfraredSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorMotion.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorMotion.png
deleted file mode 100755
index 464710f..0000000
--- a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorMotion.png
+++ /dev/null
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPirSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPirSelected2.png
new file mode 100755
index 0000000..7f1aa90
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorPirSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorSelected2.png
new file mode 100755
index 0000000..5e800e7
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureHumiditySelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureHumiditySelected2.png
new file mode 100755
index 0000000..51855c1
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureHumiditySelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureSelected2.png
new file mode 100755
index 0000000..a5dc658
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorTemperatureSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorWaterSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorWaterSelected2.png
new file mode 100755
index 0000000..4ecffea
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SensorWaterSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/Socket1Selected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/Socket1Selected2.png
new file mode 100755
index 0000000..f73889c
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/Socket1Selected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/SwitchSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SwitchSelected2.png
new file mode 100755
index 0000000..f6bd66e
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/SwitchSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ThirdPartyDevice.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ThirdPartyDevice.png
index cf45a1f..c1770a3 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ThirdPartyDevice.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ThirdPartyDevice.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ThirdPartyDeviceSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ThirdPartyDeviceSelected.png
new file mode 100755
index 0000000..ec90708
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ThirdPartyDeviceSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/ThirdPartyDeviceSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ThirdPartyDeviceSelected2.png
new file mode 100755
index 0000000..9c4c795
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Device/ThirdPartyDeviceSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/ButtonPanelFangyueEnvironmentBigPic.png b/ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/ButtonPanelFangyueEnvironmentBigPic.png
new file mode 100755
index 0000000..f118ea7
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/ButtonPanelFangyueEnvironmentBigPic.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelFangyueEightButtonTable.png b/ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelFangyueEightButtonTable.png
new file mode 100755
index 0000000..bb8788a
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelFangyueEightButtonTable.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelFangyueFourButtonTable.png b/ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelFangyueFourButtonTable.png
new file mode 100755
index 0000000..0a98fbd
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelFangyueFourButtonTable.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelFangyueTwoButtonTable.png b/ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelFangyueTwoButtonTable.png
new file mode 100755
index 0000000..8ebc156
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelFangyueTwoButtonTable.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Device/PanelTable.png b/ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelTable.png
similarity index 100%
rename from ZigbeeApp/Home.Ios/Resources/Phone/Device/PanelTable.png
rename to ZigbeeApp/Home.Ios/Resources/Phone/DeviceItem/PanelTable.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/LowPower.png b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/LowPower.png
new file mode 100755
index 0000000..2b4273a
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/LowPower.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/NormallyOpen.png b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/NormallyOpen.png
new file mode 100755
index 0000000..c2c9532
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/NormallyOpen.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/NormallyOpenOffline.png b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/NormallyOpenOffline.png
new file mode 100755
index 0000000..209bbc6
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/NormallyOpenOffline.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/NormallyOpenOn.png b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/NormallyOpenOn.png
new file mode 100755
index 0000000..8fb7203
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/NormallyOpenOn.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power100.png b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power100.png
new file mode 100755
index 0000000..e0097f1
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power100.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power40.png b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power40.png
new file mode 100755
index 0000000..a4533fb
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power40.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power60.png b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power60.png
new file mode 100755
index 0000000..b0e81f9
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power60.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power80.png b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power80.png
new file mode 100755
index 0000000..cf297c0
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/Power80.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/PowerOffline.png b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/PowerOffline.png
new file mode 100755
index 0000000..3ca528d
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/PowerOffline.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/ProgressBackground.png b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/ProgressBackground.png
new file mode 100755
index 0000000..da1d1b2
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/ProgressBackground.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/VolumeIcon.png b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/VolumeIcon.png
new file mode 100755
index 0000000..49f76cf
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/VolumeIcon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/VolumeIconOn.png b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/VolumeIconOn.png
new file mode 100755
index 0000000..ec361fb
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/DoorLock/VolumeIconOn.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/10Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/10Icon.png
index 31b4257..54c9dec 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/10Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/10Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/10IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/10IconSelected.png
index 8430524..27d15e2 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/10IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/10IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/10IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/10IconSelected2.png
new file mode 100755
index 0000000..8a9f054
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/10IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/11Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/11Icon.png
index 0c0b4ee..87557ba 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/11Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/11Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/11IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/11IconSelected.png
index 2d565dc..d1145ad 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/11IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/11IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/11IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/11IconSelected2.png
new file mode 100755
index 0000000..9c26005
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/11IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/12Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/12Icon.png
index 841ed27..82b9b40 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/12Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/12Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/12IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/12IconSelected.png
index f0abca5..d86edbe 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/12IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/12IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/12IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/12IconSelected2.png
new file mode 100755
index 0000000..31f4853
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/12IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/13Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/13Icon.png
index f2b75da..ea10304 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/13Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/13Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/13IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/13IconSelected.png
index 2228105..758d770 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/13IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/13IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/13IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/13IconSelected2.png
new file mode 100755
index 0000000..82f7ac3
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/13IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/14IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/14IconSelected2.png
new file mode 100755
index 0000000..f4bd614
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/14IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/15Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/15Icon.png
index a749360..10604dd 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/15Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/15Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/15IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/15IconSelected.png
index 4faa3e1..b39cf98 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/15IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/15IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/15IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/15IconSelected2.png
new file mode 100755
index 0000000..3ee6200
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/15IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/16Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/16Icon.png
index e652a11..b20c8b8 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/16Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/16Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/16IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/16IconSelected.png
index 01699e8..5dcb7f2 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/16IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/16IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/16IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/16IconSelected2.png
new file mode 100755
index 0000000..ec24db4
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/16IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/17Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/17Icon.png
index b20c8b8..82024d9 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/17Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/17Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/17IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/17IconSelected.png
index 5dcb7f2..a4f18d5 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/17IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/17IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/17IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/17IconSelected2.png
new file mode 100755
index 0000000..f544d34
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/17IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/18Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/18Icon.png
index 39a1287..a1ce50c 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/18Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/18Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/18IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/18IconSelected.png
index 4ea13da..937ae2a 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/18IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/18IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/18IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/18IconSelected2.png
new file mode 100755
index 0000000..bc27876
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/18IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/19Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/19Icon.png
index c6dad69..d18c088 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/19Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/19Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/19IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/19IconSelected.png
index 208edca..e9d54d9 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/19IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/19IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/19IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/19IconSelected2.png
new file mode 100755
index 0000000..ecb3778
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/19IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/1Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/1Icon.png
index 28ac0a9..78d6483 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/1Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/1Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/1IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/1IconSelected.png
index ac6ce6c..adfd844 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/1IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/1IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/1IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/1IconSelected2.png
new file mode 100755
index 0000000..cf38e61
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/1IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/20Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/20Icon.png
index d18c088..5b08b41 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/20Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/20Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/20IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/20IconSelected.png
index e9d54d9..9a3bdd9 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/20IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/20IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/20IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/20IconSelected2.png
new file mode 100755
index 0000000..15344d7
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/20IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/21Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/21Icon.png
new file mode 100755
index 0000000..b2b7706
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/21Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/21IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/21IconSelected.png
new file mode 100755
index 0000000..8c8ae39
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/21IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/21IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/21IconSelected2.png
new file mode 100755
index 0000000..f601398
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/21IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/22Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/22Icon.png
new file mode 100755
index 0000000..fb5c77a
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/22Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/22IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/22IconSelected.png
new file mode 100755
index 0000000..25ed769
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/22IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/22IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/22IconSelected2.png
new file mode 100755
index 0000000..fafddac
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/22IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/23Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/23Icon.png
new file mode 100755
index 0000000..81ad331
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/23Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/23IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/23IconSelected.png
new file mode 100755
index 0000000..1827473
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/23IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/23IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/23IconSelected2.png
new file mode 100755
index 0000000..96ffb78
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/23IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/24Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/24Icon.png
new file mode 100755
index 0000000..8324db8
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/24Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/24IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/24IconSelected.png
new file mode 100755
index 0000000..575b2f5
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/24IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/24IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/24IconSelected2.png
new file mode 100755
index 0000000..42f3819
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/24IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/25Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/25Icon.png
new file mode 100755
index 0000000..d5bc294
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/25Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/25IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/25IconSelected.png
new file mode 100755
index 0000000..1dcd4c5
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/25IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/25IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/25IconSelected2.png
new file mode 100755
index 0000000..c6014ab
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/25IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/26Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/26Icon.png
new file mode 100755
index 0000000..c4e0d1e
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/26Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/26IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/26IconSelected.png
new file mode 100755
index 0000000..a5b4a71
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/26IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/26IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/26IconSelected2.png
new file mode 100755
index 0000000..863388e
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/26IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/27Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/27Icon.png
new file mode 100755
index 0000000..07c53a2
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/27Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/27IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/27IconSelected.png
new file mode 100755
index 0000000..8d01e8f
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/27IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/27IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/27IconSelected2.png
new file mode 100755
index 0000000..7d6782a
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/27IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/28Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/28Icon.png
new file mode 100755
index 0000000..17c9898
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/28Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/28IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/28IconSelected.png
new file mode 100755
index 0000000..db47a3c
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/28IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/28IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/28IconSelected2.png
new file mode 100755
index 0000000..46606b4
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/28IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/2Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/2Icon.png
index 59a5ad9..a7eadb4 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/2Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/2Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/2IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/2IconSelected.png
index 34011fb..4c98a55 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/2IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/2IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/2IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/2IconSelected2.png
new file mode 100755
index 0000000..61d3db8
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/2IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/3Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/3Icon.png
index e19bb68..f2521ac 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/3Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/3Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/3IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/3IconSelected.png
index 9be55b9..7c37e9b 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/3IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/3IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/3IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/3IconSelected2.png
new file mode 100755
index 0000000..674d06f
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/3IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/4Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/4Icon.png
index 7d4c142..09559e3 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/4Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/4Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/4IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/4IconSelected.png
index bd02961..1b952d6 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/4IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/4IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/4IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/4IconSelected2.png
new file mode 100755
index 0000000..e6940df
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/4IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/5Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/5Icon.png
index aa55690..f3c7b17 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/5Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/5Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/5IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/5IconSelected.png
index 3f9b64a..d3c1005 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/5IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/5IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/5IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/5IconSelected2.png
new file mode 100755
index 0000000..d402904
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/5IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/6Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/6Icon.png
index 92c63e4..88d8280 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/6Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/6Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/6IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/6IconSelected.png
index b48c0fd..ae4dd06 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/6IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/6IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/6IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/6IconSelected2.png
new file mode 100755
index 0000000..ee38c4f
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/6IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/7Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/7Icon.png
index 48a6e27..a4f26c2 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/7Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/7Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/7IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/7IconSelected.png
index 2a26207..c5e5db8 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/7IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/7IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/7IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/7IconSelected2.png
new file mode 100755
index 0000000..19d5db3
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/7IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/8Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/8Icon.png
index 4a3bbef..b82afcf 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/8Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/8Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/8IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/8IconSelected.png
index d11557c..8ede4b8 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/8IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/8IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/8IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/8IconSelected2.png
new file mode 100755
index 0000000..687ea40
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/8IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/9Icon.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/9Icon.png
index f178284..d8b35dc 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/9Icon.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/9Icon.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/9IconSelected.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/9IconSelected.png
index f095bfb..38e9ca2 100755
--- a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/9IconSelected.png
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/9IconSelected.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/9IconSelected2.png b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/9IconSelected2.png
new file mode 100755
index 0000000..86adf04
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/FunctionIcon/9IconSelected2.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/Instruct/PanelCurtain.png b/ZigbeeApp/Home.Ios/Resources/Phone/Instruct/PanelCurtain.png
new file mode 100755
index 0000000..a68129c
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/Instruct/PanelCurtain.png
Binary files differ
diff --git a/ZigbeeApp/Home.Ios/Resources/Phone/RealDevice/ButtonPanelCurtain.png b/ZigbeeApp/Home.Ios/Resources/Phone/RealDevice/ButtonPanelCurtain.png
new file mode 100755
index 0000000..ae97ad5
--- /dev/null
+++ b/ZigbeeApp/Home.Ios/Resources/Phone/RealDevice/ButtonPanelCurtain.png
Binary files differ
diff --git a/ZigbeeApp/Shared/Common/CommonPage.cs b/ZigbeeApp/Shared/Common/CommonPage.cs
index a46fe5e..e4507bc 100755
--- a/ZigbeeApp/Shared/Common/CommonPage.cs
+++ b/ZigbeeApp/Shared/Common/CommonPage.cs
@@ -43,11 +43,6 @@
             Application.MainPage.AddChidren(Loading);
             //}
             Phone.UserView.HomePage.Instance.InitPage();
-
-            var roomList = new Shared.Phone.Device.Room.RoomManagement();
-
-            Instance.AddLeftView(roomList);
-            roomList.Show();
         }
 
         public static string SoftTitle = "ZigBee";
@@ -62,7 +57,7 @@
         /// <summary>
         /// 鐗堟湰鍙�
         /// </summary>
-        public static string CodeIDString = "1.0.20030601";
+        public static string CodeIDString = "1.0.20032001";
         /// <summary>
         /// 娉ㄥ唽鏉ユ簮(0:HDL On 1:Zigbee)
         /// </summary>
diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs
index cdc9c4d..e46a0f5 100755
--- a/ZigbeeApp/Shared/Common/Device.cs
+++ b/ZigbeeApp/Shared/Common/Device.cs
@@ -115,7 +115,7 @@
             {
                 CommonDevice device = null;
                 //鍙嶅簭鍒楀寲涓烘寚瀹氱殑绫伙紝涓嶇劧鏁版嵁浼氫涪澶辫�屽鑷存棤娉曞己杞�
-                try 
+                try
                 {
                     device = CommonDevice.CommonDeviceByFilePath(file);
                 }
@@ -271,7 +271,7 @@
                 //娣诲姞缂撳瓨
                 this.AddDeviceToMemory(ref device);
 
-                //绉婚櫎瀛樺湪鐨勮澶囧唴瀛� 
+                //绉婚櫎瀛樺湪鐨勮澶囧唴瀛�
                 string maikey = this.GetDeviceMainKeys(device);
                 if (dicExist.ContainsKey(maikey) == true)
                 {
@@ -475,9 +475,28 @@
                 //澶囦唤鏁版嵁
                 await HdlGatewayLogic.Current.UpLoadDeviceBackupDataToGateway(device, GatewayBackupEnum.AMac鍚嶇О, newMacName);
                 //濡傛灉瀹冨彧鏈変竴涓洖璺�,鍒欐洿鏀圭鐐瑰悕瀛�
-                if (this.dicDeviceEpoint.ContainsKey(device.DeviceAddr) == true && this.dicDeviceEpoint[device.DeviceAddr].Count == 1)
+                if (this.dicDeviceEpoint.ContainsKey(device.DeviceAddr) == true)
                 {
-                    return await this.ReName(device, newMacName);
+                    //鍙湁涓�涓鐐�
+                    if (this.dicDeviceEpoint[device.DeviceAddr].Count == 1)
+                    {
+                        return await this.ReName(device, newMacName);
+                    }
+                    //濡傛灉瀹冩湁涓や釜绔偣鏃�,pir浼犳劅鍣ㄧ壒娈婂鐞�
+                    else if (this.dicDeviceEpoint[device.DeviceAddr].Count == 2)
+                    {
+                        var myType = this.GetMyDeviceEnumInfo(listDevice);
+                        if (myType.ConcreteType == DeviceConcreteType.Sensor_Pir)
+                        {
+                            foreach (var myDevice in listDevice)
+                            {
+                                if (myDevice.Type == DeviceType.IASZone)
+                                {
+                                    return await this.ReName(myDevice, newMacName);
+                                }
+                            }
+                        }
+                    }
                 }
             }
             return true;
@@ -1145,6 +1164,33 @@
         }
 
         /// <summary>
+        /// 璁剧疆璁惧銆愬浘鏍囥�戝埌鎸囧畾鐨勬帶浠�(娉ㄦ剰,姝ゅ嚱鏁拌缃殑閫夋嫨鐘舵�佺殑鍥剧墖鏄櫧鑹茬殑)
+        /// </summary>
+        /// <param name="btnIcon">鎺т欢瀵硅薄</param>
+        /// <param name="device">璁惧瀵硅薄</param>
+        /// <returns></returns>
+        public void SetDeviceIconToControl2(Button btnIcon, CommonDevice device)
+        {
+            if (device == null)
+            {
+                btnIcon.UnSelectedImagePath = "Device/ThirdPartyDevice.png";
+                return;
+            }
+            string unSelectFilePath = device.IconPath;
+            string selectFilePath = unSelectFilePath.Replace(".png", "Selected2.png");
+
+            //鑾峰彇璁惧銆愬浘鏍囥��
+            if (btnIcon.UnSelectedImagePath != unSelectFilePath)
+            {
+                btnIcon.UnSelectedImagePath = unSelectFilePath;
+            }
+            if (btnIcon.SelectedImagePath != selectFilePath)
+            {
+                btnIcon.SelectedImagePath = selectFilePath;
+            }
+        }
+
+        /// <summary>
         /// 鑾峰彇璁惧銆愬浘鏍囥��
         /// </summary>
         /// <param name="listdevice">璁惧瀵硅薄</param>
@@ -1397,6 +1443,9 @@
                 return null;
             }
             string modelKeys = device.ModelIdentifier;
+            //浜ゆ崲涓�涓嬫ā鍧桰D(楹︿箰鍏嬮偅杈圭殑浼犳劅鍣�)
+            this.ChangedDeviceModeId(ref modelKeys);
+
             if (this.dicDeviceModelIdEnum.ContainsKey(modelKeys) == false)
             {
                 //娌℃湁鍖归厤鍒版ā鍧桰D锛屽垯鐩存帴璧扮涓夋柟璁惧鐨勫垽鏂�
@@ -1814,6 +1863,80 @@
                 return null;
             }
             return HdlRoomLogic.Current.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
+        }
+
+        #endregion
+
+        #region 鈻� 璁惧鎺掑簭___________________________
+
+        /// <summary>
+        /// 璁惧鎺掑簭
+        /// </summary>
+        /// <param name="i_listDevice">璇风‘淇濊繖涓笢瑗垮凡缁忔寜mac鍜岀鐐规帓搴忎簡</param>
+        /// <returns></returns>
+        public List<CommonDevice> SortDeviceByBelongType(List<CommonDevice> i_listDevice)
+        {
+            //鑾峰彇鎺掑簭瑙勫垯
+            var listRule = this.GetBelongTypeSortRule();
+            var dicDevice = new Dictionary<DeviceBeloneType, List<CommonDevice>>();
+            dicDevice[DeviceBeloneType.A鏈煡璁惧] = new List<CommonDevice>();
+
+            foreach (var device in i_listDevice)
+            {
+                //鑾峰彇鎵�灞炵被鍨�
+                var typeInfo = this.GetDeviceBelongEnumInfo(device);
+                if (listRule.Contains(typeInfo.BeloneType) == false)
+                {
+                    //涓嶅湪鎺掑簭鑼冨洿鍐�,閮戒涪鍦ㄦ渶鍚庨潰
+                    dicDevice[DeviceBeloneType.A鏈煡璁惧].Add(device);
+                    continue;
+                }
+                if (dicDevice.ContainsKey(typeInfo.BeloneType) == false)
+                {
+                    dicDevice[typeInfo.BeloneType] = new List<CommonDevice>();
+                }
+                dicDevice[typeInfo.BeloneType].Add(device);
+            }
+
+            var listSort = new List<CommonDevice>();
+            foreach (var myType in listRule)
+            {
+                //鏍规嵁瑙勫垯椤哄簭,娣诲姞璁惧
+                if (dicDevice.ContainsKey(myType) == false || dicDevice[myType].Count == 0)
+                {
+                    continue;
+                }
+                listSort.AddRange(dicDevice[myType]);
+            }
+
+            return listSort;
+        }
+
+        /// <summary>
+        /// 鑾峰彇璁惧鎵�灞炵被鍨嬬殑鐨勬帓搴忚鍒�
+        /// </summary>
+        /// <returns></returns>
+        public HashSet<DeviceBeloneType> GetBelongTypeSortRule()
+        {
+            //璋佸湪鍓嶉潰,璋佸氨浼樺厛鏄剧ず
+            var list = new HashSet<DeviceBeloneType>();
+            list.Add(DeviceBeloneType.A鐏厜);
+            list.Add(DeviceBeloneType.A褰╃伅);
+            list.Add(DeviceBeloneType.A寮�鍏�);
+            list.Add(DeviceBeloneType.A鎻掑骇);
+            list.Add(DeviceBeloneType.A璋冨厜鍣�);
+            list.Add(DeviceBeloneType.A绐楀笜);
+            list.Add(DeviceBeloneType.A绌鸿皟);
+            list.Add(DeviceBeloneType.A缁х數鍣�);
+            list.Add(DeviceBeloneType.A骞叉帴鐐�);
+            list.Add(DeviceBeloneType.A鏅鸿兘闂ㄩ攣);
+            list.Add(DeviceBeloneType.A鏅鸿兘绌哄紑);
+            list.Add(DeviceBeloneType.A浼犳劅鍣�);
+
+            //鍏朵粬鐨勭湅鐫�鍔炲憲,閮芥槸鎺掑湪鍚庨潰鐨�,閮藉綊涓鸿繖涓睘鎬�
+            list.Add(DeviceBeloneType.A鏈煡璁惧);
+
+            return list;
         }
 
         #endregion
@@ -2261,7 +2384,7 @@
             //1銆佸湪杩欓噷濉啓涓婃ā鍧桰D锛岀劧鍚庢槸 DeviceConcreteType 锛岀劧鍚庢槸 DeviceBeloneType
             //2銆佺劧鍚庡湪鏈�涓嬮潰鐨勩�愯嚜瀹氫箟璁惧绫诲瀷銆戞姌鍙犳爮閲屾坊鍔犮�愯澶囩殑鍏蜂綋绫诲瀷銆戯紝銆愯澶囩殑鎵�灞炵被鍨嬨��
             //3銆佷互璁惧鐨勫叿浣撶被鍨嬩负鍚嶅瓧(鍘绘帀銆�-銆�)娣诲姞璁惧鐨勩�愭墍灞炲浘鐗囥�戯紝銆愮湡瀹炵墿鐞嗗浘鐗囥�戙�傚洖璺浘鐗囬渶瑕佺壒娈婂鐞�
-            //4銆佹坊鍔燫鏂囦欢,娣诲姞Language鏂囦欢
+            //4銆佹坊鍔燫鏂囦欢(uDeviceModelId),娣诲姞Language鏂囦欢
             //5銆佸鏋滈渶瑕佸叡鏈夊浘鐗�,鍒欏湪杩欎釜鍑芥暟鐨勬渶搴曚笅娣诲姞
             //*********************************************************************
 
@@ -2285,6 +2408,7 @@
             this.dicDeviceModelIdEnum["MP8B/TILE-ZB.18"] = "242-200";//鏂规偊鍥涘紑鍏帶闈㈡澘
             this.dicDeviceModelIdEnum["MPFA/TILE-ZB.18"] = "250-200";//鏂规偊鏂伴闈㈡澘
             this.dicDeviceModelIdEnum["MPTE3/TILE-ZB.18"] = "253-200";//鏂规偊鐜闈㈡澘
+            this.dicDeviceModelIdEnum["MP2W/TILE-ZB.18"] = "256-200";//绐楀笜闈㈡澘
 
             //=========鈽呪槄PIR浼犳劅鍣ㄧ被(1200-1299)鈽呪槄=========
             this.dicDeviceModelIdEnum["MSPIR01-ZB.10"] = "1200-1200";//pir浼犳劅鍣�220
@@ -2299,12 +2423,14 @@
 
             //=========鈽呪槄缁х數鍣ㄧ被(2300-2499)鈽呪槄=========
             this.dicDeviceModelIdEnum["MPR0310-ZB.10"] = "2300-2300";//3璺户鐢靛櫒灏忔ā鍧�
+            this.dicDeviceModelIdEnum["MFA01-ZB1.0"] = "2310-2300";//鏂规偊鏂伴灏忔ā鍧�
 
             //=========鈽呪槄璋冨厜鍣ㄧ被(2500-2799)鈽呪槄=========
             this.dicDeviceModelIdEnum["MPD0101-ZB.10"] = "2500-2500";//1璺皟鍏夊櫒灏忔ā鍧�
 
             //=========鈽呪槄鏅鸿兘闂ㄩ攣绫�(2800-????)鈽呪槄=========
             this.dicDeviceModelIdEnum["H06C"] = "2800-2800";//鏅鸿兘闂ㄩ攣(H06C)
+            this.dicDeviceModelIdEnum["S-one"] = "2802-2800";//鏅鸿兘闂ㄩ攣(S-one)
 
             //=========鈽呪槄绌鸿皟绫�(3600-3899)鈽呪槄=========
             this.dicDeviceModelIdEnum["MAC/GW-ZB.10"] = "3600-3600";//zigbee绌鸿皟缃戝叧妯″潡
@@ -2340,6 +2466,8 @@
             this.dicPictrueShard["ButtonPanel_SimpleFour"] = "ButtonPanel_Four";//绠�绾�4鎸夐敭闈㈡澘 娌跨敤 4鎸夐敭鐨勫浘鏍�
             this.dicPictrueShard["ButtonPanel_SimpleThree"] = "ButtonPanel_Three";//绠�绾�3鎸夐敭闈㈡澘 娌跨敤 3鎸夐敭鐨勫浘鏍�
             this.dicPictrueShard["ButtonPanel_SimpleTwo"] = "ButtonPanel_Two";//绠�绾�2鎸夐敭闈㈡澘 娌跨敤 2鎸夐敭鐨勫浘鏍�
+            this.dicPictrueShard["IntelligentLocks_Sone"] = "IntelligentLocks_H06C";//S-one鐨勯棬閿佸浘鐗囨部鐢℉06C鐨勫浘鏍�
+
         }
 
         #endregion
@@ -2434,11 +2562,15 @@
         /// <summary>
         /// 鏂规偊鏂伴闈㈡澘 闀滃儚id锛�250
         /// </summary>
-        ButtonPanel_FangyueNewWind = 250,
+        ButtonPanel_FangyueFreshAir = 250,
         /// <summary>
         /// 鏂规偊鐜闈㈡澘 闀滃儚id锛�253
         /// </summary>
         ButtonPanel_FangyueEnvironment = 253,
+        /// <summary>
+        /// 绐楀笜闈㈡澘 闀滃儚id锛�256
+        /// </summary>
+        ButtonPanel_Curtain = 256,
 
         //=========鈽呪槄PIR浼犳劅鍣ㄧ被(1200-1299)鈽呪槄=========
         /// <summary>
@@ -2505,6 +2637,10 @@
         /// 涓夎矾缁х數鍣� 闀滃儚id锛�2300
         /// </summary>
         Relay_ThreeLoad = 2300,
+        /// <summary>
+        /// 鏂规偊鏂伴灏忔ā鍧� 闀滃儚id锛�2310
+        /// </summary>
+        Relay_FangyueFreshAirModul = 2310,
 
         //=========鈽呪槄璋冨厜鍣ㄧ被(2500-2799)鈽呪槄=========
         /// <summary>
@@ -2525,6 +2661,10 @@
         /// H06C
         /// </summary>
         IntelligentLocks_H06C = 2800,
+        /// <summary>
+        /// S-one
+        /// </summary>
+        IntelligentLocks_Sone = 2802,
 
         //=========鈽呪槄褰╃伅绫�(????-????)鈽呪槄=========
         /// <summary>
diff --git a/ZigbeeApp/Shared/Common/House.cs b/ZigbeeApp/Shared/Common/House.cs
index 7da0b22..0f8ae04 100755
--- a/ZigbeeApp/Shared/Common/House.cs
+++ b/ZigbeeApp/Shared/Common/House.cs
@@ -70,7 +70,7 @@
         /// <summary>
         /// 褰撳墠妤煎眰Id
         /// </summary>
-        public string CurrentFloorId;
+        public string CurrentFloorId = string.Empty;
 
         /// <summary>
         /// 鍏ㄥ眬鍦烘櫙璺緞鍒楄〃---澶囩敤
diff --git a/ZigbeeApp/Shared/Common/SceneUI.cs b/ZigbeeApp/Shared/Common/SceneUI.cs
index fa908a3..6a671f9 100755
--- a/ZigbeeApp/Shared/Common/SceneUI.cs
+++ b/ZigbeeApp/Shared/Common/SceneUI.cs
@@ -11,7 +11,7 @@
     [System.Serializable]
     public class SceneUI : ZigBee.Device.CommonDevice
     {
-        #region 鈻� 鍙橀噺澹版槑___________________________
+        #region 鈻� 鍙橀噺澹版槑_________________________
         /// <summary>
         /// 鍦烘櫙鏂囦欢
         /// </summary>
@@ -60,6 +60,11 @@
         [Newtonsoft.Json.JsonIgnore]
         public int RemainTime;
         /// <summary>
+        /// 寤舵椂鏃堕棿绾跨▼鏄惁杩愯
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public bool RemainThreadAction = false;
+        /// <summary>
         /// 鍦烘櫙鎵ц鐩爣
         /// </summary>
         public List<ZigBee.Device.Scene.AddSceneMemberData> AddSceneMemberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData> { };
@@ -79,9 +84,8 @@
             {
                 HdlAutoBackupLogic.AddOrEditorFile(FileName);
             }
-        }
-
+        }
+
         #endregion
-
     }
 }
diff --git a/ZigbeeApp/Shared/Common/ZigbeeColor.cs b/ZigbeeApp/Shared/Common/ZigbeeColor.cs
index 8dbf2d7..89495ea 100644
--- a/ZigbeeApp/Shared/Common/ZigbeeColor.cs
+++ b/ZigbeeApp/Shared/Common/ZigbeeColor.cs
@@ -45,6 +45,24 @@
         public uint XMTitleLine = 0x40000000;
         public uint XMInVisibleLine = 0x00000000;
         public uint XMRowLine = 0x66CCCCCC;
+        /// <summary>
+        /// 0xFF232323
+        /// </summary>
+        public uint XMSeekBarBackgroundColor = 0xFF232323;
+        /// <summary>
+        /// 0xFFECECEC
+        /// </summary>
+        public uint XMProgressBarColor = 0xFFECECEC;
+        /// <summary>
+        /// 0xFFF5F6FA
+        /// </summary>
+        public uint XMPEditTextBackground = 0xFFF5F6FA;
+        /// <summary>
+        /// 0xFFF5F6FA
+        /// </summary>
+        public uint XMAlarmText = 0xFFF75858;
+
+
         #endregion
 
 
@@ -349,7 +367,7 @@
         public uint LogicListWeekTextColor = 0xFF666666;
 
         #endregion
-      
+
 
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
new file mode 100644
index 0000000..f582b6d
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Category/CategoryMainForm.cs
@@ -0,0 +1,1472 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Shared.Common;
+using Shared.Phone.UserView;
+using Shared.R;
+using Shared.Phone.Device.CommonForm;
+using Shared.Phone.UserCenter;
+using ZigBee.Device;
+
+namespace Shared.Phone.Category
+{
+    /// <summary>
+    /// 鍒嗙被鐨勪富鐣岄潰
+    /// </summary>
+    public class CategoryMainForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// The instance.
+        /// </summary>
+        public static CategoryMainForm instance;
+        /// <summary>
+        /// 鍦烘櫙鍔熻兘涓儴鑳屾櫙bodyView(楂樺害涓鸿澶囪彍鍗曠殑閭d釜鐧借壊鑳屾櫙鐨勪笂閮ㄥ埌灞忓箷搴曢儴)
+        /// </summary>
+        public FrameLayout functionSceneBodyView;
+        /// <summary>
+        /// 涓儴鑳屾櫙bodyView(楂樺害涓哄満鏅姛鑳藉垏鎹㈡帶浠剁殑搴曢儴鍒板睆骞曞簳閮�)
+        /// </summary>
+        public FrameLayout functionSceneAutoBodyView;
+        /// <summary>
+        /// 鍙充笂瑙掓坊鍔犳寜閽�
+        /// </summary>
+        private IconViewControl btnTopRightAdd = null;
+        /// <summary>
+        /// 妤煎眰鎺т欢
+        /// </summary>
+        private NormalViewControl btnFloorName = null;
+        /// <summary>
+        /// 妤煎眰鍥炬爣鎺т欢
+        /// </summary>
+        private IconViewControl btnFloorIcon = null;
+        /// <summary>
+        /// 璁惧琛屾帶浠�
+        /// </summary>
+        private Dictionary<string, Controls.DeviceRowCommon> dicDeviceRowControl = new Dictionary<string, Controls.DeviceRowCommon>();
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鏋勯�犳柟娉�
+        /// </summary>
+        public CategoryMainForm()
+        {
+            BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
+            instance = this;
+        }
+
+        /// <summary>
+        /// 鏄剧ず鐣岄潰--榛樿鍦烘櫙鐣岄潰
+        /// </summary>
+        public void ShowForm()
+        {
+            //鍏堟竻闄ゅ惂
+            this.RemoveAll();
+            //鍒濆鍖栧ご閮ㄦ帶浠�
+            this.InitTopControl();
+            //鍒濆鍖栦腑闂存帶浠�
+            this.InitMidControls();
+            //娣诲姞璁惧鐘舵�佷笂鎶ヤ簨浠�
+            this.AddNormalDeviceReportEvent();
+            //娣诲姞浼犳劅鍣ㄧ姸鎬佷笂鎶ヤ簨浠�
+            this.AddSensorDeviceReportEvent();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栧ご閮ㄦ帶浠�
+        /// </summary>
+        private void InitTopControl()
+        {
+            //澶撮儴FrameLayout
+            this.topFrameLayout = new FrameLayout();
+            topFrameLayout.Y = Application.GetRealHeight(104);
+            topFrameLayout.Height = Application.GetRealHeight(127);
+            topFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
+            this.AddChidren(topFrameLayout);
+            //鏍囬鍒嗙被
+            var btnTitle = new NormalViewControl(300, 95, true);
+            btnTitle.X = ControlCommonResourse.XXLeft;
+            btnTitle.Gravity = Gravity.CenterVertical;
+            btnTitle.TextID = R.MyInternationalizationString.Category;
+            btnTitle.TextSize = 24;
+            btnTitle.TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor;
+            btnTitle.IsBold = true;
+            topFrameLayout.AddChidren(btnTitle);
+
+            //鍙充笂瑙掓坊鍔犳寜閽�
+            this.btnTopRightAdd = new IconViewControl(104);
+            btnTopRightAdd.X = Application.GetRealWidth(953);
+            btnTopRightAdd.Gravity = Gravity.CenterVertical;
+            btnTopRightAdd.UnSelectedImagePath = "Item/Add_Category.png";
+            topFrameLayout.AddChidren(btnTopRightAdd);
+            btnTopRightAdd.ButtonClickEvent += (sender, e) =>
+            {
+                if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 0)
+                {
+                    //娣诲姞鍦烘櫙
+                    Add_Scene();
+                }
+                else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 2)
+                {
+                    //娣诲姞鑷姩鍖�
+                    Add_Automation();
+                }
+            };
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑闂存帶浠�
+        /// </summary>
+        private void InitMidControls()
+        {
+            //搴旇鏄痓ody鍚�
+            this.bodyFrameLayout = new FrameLayout();
+            bodyFrameLayout.Y = topFrameLayout.Bottom;
+            bodyFrameLayout.Height = Application.GetRealHeight(1549);
+            bodyFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
+            this.AddChidren(bodyFrameLayout);
+
+            //鍦烘櫙,鍔熻兘,鑷姩鍖栫殑鍒囨崲鎺т欢鐨勫鍣�
+            var frameSwitchBack = new FrameLayout();
+            frameSwitchBack.Height = Application.GetRealHeight(127);
+            bodyFrameLayout.AddChidren(frameSwitchBack);
+
+            //鎷ユ湁妤煎眰鏃�
+            this.btnFloorName = null;
+            this.btnFloorIcon = null;
+            if (Config.Instance.Home.FloorDics.Count > 0)
+            {
+                //妤煎眰鍚�
+                this.btnFloorName = new NormalViewControl(200, 69, true);
+                btnFloorName.X = frameSwitchBack.Width - Application.GetRealWidth(200 + 120);
+                btnFloorName.Y = Application.GetRealHeight(17);
+                btnFloorName.TextAlignment = TextAlignment.CenterRight;
+                btnFloorName.IsBold = true;
+                btnFloorName.Text = HdlResidenceLogic.Current.GetFloorNameById(Config.Instance.Home.CurrentFloorId);
+                frameSwitchBack.AddChidren(btnFloorName);
+                btnFloorName.ButtonClickEvent += (sender, e) =>
+                {
+                    var floors = new Device.Category.SelectFloor();
+                    AddChidren(floors);
+                    floors.Init(580, 330, Direction.Right);
+                    floors.changeFloor = true;
+                    floors.FloorAction += (floorId) =>
+                    {
+                        btnFloorName.Text = Config.Instance.Home.GetFloorNameById(floorId);
+                        HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom();
+                        //鍒锋柊bodyView
+                        this.RefreshBodyView();
+                    };
+                };
+                //妤煎眰鍥炬爣
+                this.btnFloorIcon = new IconViewControl(69);
+                btnFloorIcon.X = Application.GetRealWidth(950);
+                btnFloorIcon.Y = btnFloorName.Y;
+                btnFloorIcon.UnSelectedImagePath = "Item/Drop_Down.png";
+                frameSwitchBack.AddChidren(btnFloorIcon);
+                btnFloorIcon.ButtonClickEvent += (sender, e) =>
+                {
+                    btnFloorName.ButtonClickEvent?.Invoke(sender, e);
+                };
+            }
+
+            //鐩墠涓嶇煡閬撻儹闆煄鐨勮繖涓叿浣撴斁鍦ㄥ摢涓殑浣嶇疆
+            this.functionSceneAutoBodyView = new FrameLayout();
+            functionSceneAutoBodyView.Y = frameSwitchBack.Bottom;
+            functionSceneAutoBodyView.Height = Application.GetRealHeight(1423);
+            bodyFrameLayout.AddChidren(functionSceneAutoBodyView);
+
+            //鍦烘櫙,鍔熻兘,鑷姩鍖栫殑鍒囨崲鎺т欢
+            var switchContr = new SceneFunctionSwitchControl();
+            switchContr.Width = Application.GetRealWidth(650);
+            switchContr.Gravity = Gravity.CenterVertical;
+            frameSwitchBack.AddChidren(switchContr);
+            var listTitle = new List<string>();
+            listTitle.Add(Language.StringByID(R.MyInternationalizationString.uScence));
+            listTitle.Add(Language.StringByID(R.MyInternationalizationString.uFunction));
+            if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
+            {
+                //鎴愬憳娌℃湁鑷姩鍖�
+                listTitle.Add(Language.StringByID(R.MyInternationalizationString.Automation));
+            }
+            //璁剧疆鍒濆鍊�
+            switchContr.SetDefultIndex(UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex);
+            //閫夋嫨浜嬩欢
+            switchContr.SelectTabEvent += (selectIndex) =>
+            {
+                UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex = selectIndex;
+                //鍒锋柊bodyView
+                this.RefreshBodyView();
+            };
+            //寮�濮嬪垵濮嬪寲
+            switchContr.InitControl(listTitle);
+        }
+
+        /// <summary>
+        /// 鍒锋柊bodyView
+        /// </summary>
+        public void RefreshBodyView()
+        {
+            this.functionSceneAutoBodyView.RemoveAll();
+
+            HdlThreadLogic.Current.RunMainInThread(() =>
+            {
+                bool floorVisible = true;
+                //鍦烘櫙
+                if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 0)
+                {
+                    //鍒濆鍖栨埧闂磋彍鍗�
+                    this.InitRoomMenuControl();
+                    //鏄剧ず鍙充笂瑙掔殑鍔犲彿
+                    this.btnTopRightAdd.Visible = true;
+                }
+                //鍔熻兘
+                else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 1)
+                {
+                    //鍒濆鍖栨埧闂磋彍鍗�
+                    this.InitRoomMenuControl();
+                    //闅愯棌鍙充笂瑙掔殑鍔犲彿
+                    this.btnTopRightAdd.Visible = false;
+                }
+                //鑷姩鍖�
+                else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 2)
+                {
+                    this.ShowAutotion();
+                    //闅愯棌妤煎眰
+                    floorVisible = false;
+                    //鏄剧ず鍙充笂瑙掔殑鍔犲彿
+                    this.btnTopRightAdd.Visible = true;
+                }
+
+                //淇敼妤煎眰鐨勬樉绀烘晥鏋�
+                if (this.btnFloorName != null)
+                {
+                    this.btnFloorName.Visible = floorVisible;
+                    this.btnFloorIcon.Visible = floorVisible;
+                }
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鎴块棿鑿滃崟鎺т欢_______________________
+
+        /// <summary>
+        /// 鍒濆鍖栨埧闂磋彍鍗曟帶浠�
+        /// </summary>
+        private void InitRoomMenuControl()
+        {
+            //褰撳墠妤煎眰鐨勫叏閮ㄦ埧闂�
+            var lisrRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
+            //鎴块棿鑿滃崟鎺т欢
+            var roomSwitchContr = new RoomDeviceGroupMenuControl(lisrRoom);
+            roomSwitchContr.Y = Application.GetRealHeight(-55);
+            this.functionSceneAutoBodyView.AddChidren(roomSwitchContr);
+            //璁剧疆鍒濆鍊�
+            roomSwitchContr.SetDefultIndex(HdlRoomLogic.Current.CurrentRoom.Id);
+            //閫夋嫨浜嬩欢
+            roomSwitchContr.SelectRoomEvent += (selectRoom) =>
+            {
+                HdlRoomLogic.Current.CurrentRoom = selectRoom;
+                //鍦烘櫙
+                if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 0)
+                {
+                    //鍦ㄥ闈㈡竻绌�(鐗规晥鐨勯棶棰�)
+                    this.functionSceneBodyView.RemoveAll();
+                    HdlThreadLogic.Current.RunMainInThread(() =>
+                    {
+                        //鍒锋柊鍦烘櫙鍒嗘敮鎺т欢
+                        this.RefreshSceneView(selectRoom);
+                    });
+                }
+                //鍔熻兘
+                else if (UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex == 1)
+                {
+                    //鍦ㄥ闈㈡竻绌�(鐗规晥鐨勯棶棰�)
+                    this.functionSceneBodyView.RemoveAll();
+                    HdlThreadLogic.Current.RunMainInThread(() =>
+                    {
+                        //鍒锋柊璁惧鍒嗘敮鎺т欢
+                        this.RefreshFunctionView(selectRoom);
+                    });
+                }
+            };
+
+            //鍔熻兘鍜屽満鏅痓odyView
+            this.functionSceneBodyView = new FrameLayout();
+            functionSceneBodyView.Y = roomSwitchContr.Bottom;
+            functionSceneBodyView.Height = functionSceneAutoBodyView.Height - roomSwitchContr.Bottom;
+            functionSceneAutoBodyView.AddChidren(functionSceneBodyView);
+
+            //鎵ц鍒濆鍖� 
+            roomSwitchContr.InitControl();
+        }
+
+        #endregion
+
+        #region 鈻� 鍔熻兘鍒嗘敮___________________________
+
+        /// <summary>
+        /// 鍒锋柊鍔熻兘鍒嗘敮鎺т欢
+        /// </summary>
+        /// <param name="room"></param>
+        private void RefreshFunctionView(Common.Room room)
+        {
+            //鑾峰彇鍒嗙粍鍚庣殑璁惧
+            var dicGroupDevice = this.GetAllGroupDevice(room);
+            if (dicGroupDevice.Count == 0)
+            {
+                this.ShowNoFunctionTip();
+                return;
+            }
+
+            //璁惧鑿滃崟鐨勭櫧鑹茶儗鏅�
+            var functionBack1 = new FrameLayout();
+            functionBack1.X = ControlCommonResourse.XXLeft;
+            functionBack1.Height = Application.GetRealHeight(160);
+            functionBack1.Width = Application.GetRealWidth(1028);
+            functionBack1.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            functionSceneBodyView.AddChidren(functionBack1);
+            functionBack1.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft);
+            var functionBack2 = new FrameLayout();
+            functionBack2.X = ControlCommonResourse.XXLeft;
+            functionBack2.Y = functionBack1.Bottom - Application.GetRealHeight(50);
+            functionBack2.Height = Application.GetRealHeight(279 - 160 + 50);
+            functionBack2.Width = Application.GetRealWidth(1028);
+            functionBack2.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            functionSceneBodyView.AddChidren(functionBack2);
+            functionBack2.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
+
+            //璁惧鑿滃崟鐨勫乏鍙虫粦鍔ㄧ殑鎺т欢
+            var HorizontalView = new HorizontalScrolViewLayout();
+            HorizontalView.X = Application.GetRealWidth(CommonFormResouce.X_Left);
+            HorizontalView.Height = Application.GetRealHeight(279);
+            HorizontalView.Width = Application.GetRealWidth(1028);
+            functionSceneBodyView.AddChidren(HorizontalView);
+
+            //璁惧鐨勮儗鏅鍣�
+            var frameDeviceBack = new FrameLayout();
+            frameDeviceBack.X = ControlCommonResourse.XXLeft;
+            frameDeviceBack.Y = HorizontalView.Bottom + Application.GetRealHeight(35);
+            frameDeviceBack.BackgroundColor = UserCenterColor.Current.White;
+            frameDeviceBack.Width = bodyFrameLayout.Width;
+            frameDeviceBack.Height = functionSceneBodyView.Height - HorizontalView.Bottom - Application.GetRealHeight(35);
+            frameDeviceBack.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
+            functionSceneBodyView.AddChidren(frameDeviceBack);
+
+            //璁惧鍒楄〃鎺т欢
+            var listDeviceView = new VerticalListControl(35);
+            listDeviceView.Y = Application.GetRealHeight(11);
+            listDeviceView.Width = Application.GetRealWidth(1022);
+            listDeviceView.Height = frameDeviceBack.Height - Application.GetRealHeight(11);
+            listDeviceView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
+            frameDeviceBack.AddChidren(listDeviceView);
+
+            //涓婁竴娆¢�夋嫨鐨勮彍鍗�
+            MainPage.Controls.DeviceFunctionUnallocatedControl oldSelectContr = null;
+            DeviceRowInfo nowSelectDeviceInfo = null;
+            foreach (int Textid in dicGroupDevice.Keys)
+            {
+                var rowInfo = dicGroupDevice[Textid];
+
+                //璁惧绫诲瀷鐨勫鍣�
+                var devieFrame = new FrameLayout();
+                devieFrame.Width = Application.GetRealWidth(220);
+                HorizontalView.AddChidren(devieFrame);
+
+                //鑿滃崟鍥剧墖鎺т欢
+                var deviceObjContr = new MainPage.Controls.DeviceFunctionUnallocatedControl();
+                devieFrame.AddChidren(deviceObjContr);
+                deviceObjContr.InitControl(Language.StringByID(Textid), rowInfo.IconPath, rowInfo.IconPathSelected, rowInfo.listDeviceKeys);
+                deviceObjContr.ButtonClickEvent += (sender, e) =>
+                {
+                    //閫夋嫨鐨勬槸鍚屼竴涓笢瑗跨殑璇�,涓嶅鐞�
+                    if (nowSelectDeviceInfo.TextId != rowInfo.TextId)
+                    {
+                        //涓婁竴娆$殑鑿滃崟鍙栨秷,鏈鑿滃崟閫夋嫨
+                        oldSelectContr.SetSelectStatu(false);
+                        deviceObjContr.SetSelectStatu(true);
+                        oldSelectContr = deviceObjContr;
+
+                        nowSelectDeviceInfo = rowInfo;
+                        HdlThreadLogic.Current.RunMainInThread(() =>
+                        {
+                            //鍒濆鍖栬澶囧垪琛ㄦ帶浠�
+                            this.InitListDeviceControls(listDeviceView, rowInfo);
+                        });
+                    }
+                };
+
+                if (nowSelectDeviceInfo == null)
+                {
+                    //璁剧疆鍒濆閫夋嫨
+                    nowSelectDeviceInfo = rowInfo;
+                    //璁板綍鍒濆閫夋嫨鐨勮彍鍗曟帶浠�
+                    oldSelectContr = deviceObjContr;
+                    deviceObjContr.SetSelectStatu(true);
+                }
+            }
+            if (nowSelectDeviceInfo != null)
+            {
+                //鍒濆鍖栭粯璁ょ殑璁惧鍒楄〃鎺т欢
+                this.InitListDeviceControls(listDeviceView, nowSelectDeviceInfo);
+            }
+        }
+
+        /// <summary>
+        /// 鎻愮ず娌℃湁鍔熻兘
+        /// </summary>
+        private void ShowNoFunctionTip()
+        {
+            var noFunction = new Button()
+            {
+                Y = Application.GetRealHeight(320),
+                Width = Application.GetMinRealAverage(757),
+                Height = Application.GetMinRealAverage(435),
+                UnSelectedImagePath = "Item/NoFunction.png",
+                Gravity = Gravity.CenterHorizontal
+            };
+            functionSceneBodyView.AddChidren(noFunction);
+
+            var noFunctionTip = new Button()
+            {
+                Y = noFunction.Bottom + Application.GetRealHeight(32),
+                Height = Application.GetRealHeight(200),
+                Width = Application.GetRealWidth(700),
+                Gravity = Gravity.CenterHorizontal,
+                Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}", "\r\n"),
+                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
+                TextAlignment = TextAlignment.Center,
+                IsMoreLines = true
+            };
+            functionSceneBodyView.AddChidren(noFunctionTip);
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖栬澶囧垪琛ㄦ帶浠禵________________
+
+        /// <summary>
+        /// 鍒濆鍖栬澶囧垪琛ㄦ帶浠�
+        /// </summary>
+        /// <param name="listView"></param>
+        /// <param name="rowInfo"></param>
+        private void InitListDeviceControls(VerticalListControl listView, DeviceRowInfo rowInfo)
+        {
+            //鍏堟竻绌�
+            listView.RemoveAll();
+
+            var listDevice = new List<CommonDevice>();
+            foreach (var mainkeys in rowInfo.listDeviceKeys)
+            {
+                var device = LocalDevice.Current.GetDevice(mainkeys);
+                if (device != null)
+                {
+                    listDevice.Add(device);
+                }
+            }
+
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                var listContr = new List<Controls.DeviceRowCommon>();
+                foreach (var device in listDevice)
+                {
+                    Controls.DeviceRowCommon cardContr = null;
+                    //绐楀笜
+                    if (device.Type == DeviceType.WindowCoveringDevice)
+                    {
+                        cardContr = new Controls.DeviceCurtainRowControl(listView.rowSpace / 2);
+                    }
+                    //缁х數鍣�
+                    else if (device.Type == DeviceType.OnOffOutput)
+                    {
+                        cardContr = new Controls.DeviceRelayRowControl(listView.rowSpace / 2);
+                    }
+                    //绌烘皵寮�鍏�
+                    else if (device.Type == DeviceType.AirSwitch)
+                    {
+                        cardContr = new Controls.DeviceAirSwitchRowControl(listView.rowSpace / 2);
+                    }
+                    //绌鸿皟
+                    else if (device.Type == DeviceType.Thermostat)
+                    {
+                        cardContr = new Controls.DeviceAcRowControl(listView.rowSpace / 2);
+                    }
+                    //褰╃伅(璋冨厜鍣�)
+                    else if (device.Type == DeviceType.DimmableLight)
+                    {
+                        cardContr = new Controls.DeviceColorLightRowControl(listView.rowSpace / 2);
+                    }
+                    //浼犳劅鍣�
+                    else if (device.Type == DeviceType.IASZone)
+                    {
+                        cardContr = new Controls.DeviceSensorRowControl(listView.rowSpace / 2);
+                    }
+                    //娓╂箍搴�
+                    else if (device.Type == DeviceType.TemperatureSensor)
+                    {
+                        cardContr = new Controls.DeviceTemperatureRowControl(listView.rowSpace / 2);
+                    }
+                    //闂ㄩ攣
+                    else if (device.Type == DeviceType.DoorLock)
+                    {
+                        cardContr = new Controls.DeviceDoorLockRowControl(listView.rowSpace / 2);
+                    }
+                    //鏃犳硶璇嗗埆
+                    else
+                    {
+                        cardContr = new Controls.DeviceRowCommon(listView.rowSpace / 2);
+                        //娌℃湁鐘舵�佸姛鑳�
+                        cardContr.hadStatuFunction = false;
+                    }
+
+                    //鍒濆鍖栧崱鐗�
+                    listView.AddChidren(cardContr);
+                    cardContr.InitControl(device);
+                    //鎺т欢璁板綍鍒扮紦瀛樹腑
+                    this.dicDeviceRowControl[LocalDevice.Current.GetDeviceMainKeys(device)] = cardContr;
+                    //鍔犵紦瀛�,鐒跺悗鍙戝懡浠�
+                    listContr.Add(cardContr);
+                }
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    for (int i = 0; i < listContr.Count; i++)
+                    {
+                        if (listView.Parent == null)
+                        {
+                            return;
+                        }
+                        System.Threading.Thread.Sleep(20);
+                        //鍙戦�佽幏鍙栫姸鎬佺殑鍛戒护
+                        listContr[i].SendStatuComand();
+                    }
+
+                }, ShowErrorMode.NO);
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鍦烘櫙鍒嗘敮___________________________
+
+        /// <summary>
+        /// 鍒锋柊鍦烘櫙鍒嗘敮鎺т欢
+        /// </summary>
+        /// <param name="room"></param>
+        private void RefreshSceneView(Room room)
+        {
+            var listScene = new List<SceneUI>();
+            foreach (var sceneId in room.ListSceneId)
+            {
+                var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId);
+                if (scene != null)
+                {
+                    listScene.Add(scene);
+                }
+            }
+            if (listScene.Count == 0)
+            {
+                this.ShowNoSceneTip();
+                return;
+            }
+
+            var dicSceneContr = new Dictionary<int, SceneCategoryView>();
+            var listview = new VerticalListControl();
+            functionSceneBodyView.AddChidren(listview);
+            foreach (var scene in listScene)
+            {
+                //鍦烘櫙鍗$墖鎺т欢
+                var sceneView = new SceneCategoryView();
+                listview.AddChidren(sceneView);
+                sceneView.InitControl(scene, room);
+
+                dicSceneContr[scene.Id] = sceneView;
+            }
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //鑾峰彇鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
+                this.GetAllDelayScene(dicSceneContr, listview);
+            }, ShowErrorMode.NO);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍏ㄩ儴鍦烘櫙鐨勫欢鏃舵椂闂�
+        /// </summary>
+        /// <param name="dicSceneContr"></param>
+        private async void GetAllDelayScene(Dictionary<int, SceneCategoryView> dicSceneContr, VerticalListControl listview)
+        {
+            //璇诲彇鍏ㄩ儴鐨勫欢鏃舵椂闂�
+            var result = await Scene.CatDelaySceneAsync();
+            if (result == null || result.catDelaySceneResponseData == null ||
+                result.catDelaySceneResponseData.DelayScenesList.Count == 0)
+            {
+                //鍑洪敊涓嶉笩瀹�
+                return;
+            }
+
+            string hourText = Language.StringByID(R.MyInternationalizationString.Hour);
+            string minuText = Language.StringByID(R.MyInternationalizationString.Minute);
+            string secondText = Language.StringByID(R.MyInternationalizationString.Second);
+
+            foreach (var data in result.catDelaySceneResponseData.DelayScenesList)
+            {
+                if (dicSceneContr.ContainsKey(data.ScenesId) == false)
+                {
+                    //褰撳墠鐨勭晫闈㈡病鏈夋樉绀鸿繖涓満鏅�
+                    continue;
+                }
+                var seceneContr = dicSceneContr[data.ScenesId];
+                //淇濆瓨缂撳瓨鏃堕棿
+                seceneContr.scene.RemainTime = data.RemainTime;
+                int remainTime = data.RemainTime;
+                if (remainTime <= 0)
+                {
+                    continue;
+                }
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
+                    HdlSceneLogic.Current.StartDelayTimeThread(seceneContr.scene);
+                    while (remainTime > 0 && this.Parent != null)
+                    {
+                        System.Threading.Thread.Sleep(1000);
+                        Application.RunOnMainThread(() =>
+                        {
+                            seceneContr.SetTimeText(this.GetTimeString(remainTime, hourText, minuText, secondText));
+                        });
+                        remainTime--;
+                    }
+                    Application.RunOnMainThread(() =>
+                    {
+                        if (listview.Parent != null)
+                        {
+                            seceneContr.SetTimeImage();
+                            //寮�鍚疞oading鐗规晥
+                            seceneContr.StartLoadingApreal();
+                        }
+                    });
+                });
+            }
+        }
+
+        /// <summary>
+        /// 鏄剧ず娌℃湁鍦烘櫙
+        /// </summary>
+        private void ShowNoSceneTip()
+        {
+            var noFunction = new Button()
+            {
+                Y = Application.GetRealHeight(320),
+                Width = Application.GetMinRealAverage(757),
+                Height = Application.GetMinRealAverage(435),
+                UnSelectedImagePath = "Item/NoFunction.png",
+                Gravity = Gravity.CenterHorizontal
+            };
+            functionSceneBodyView.AddChidren(noFunction);
+
+            var noScenceTip = new Button()
+            {
+                Y = noFunction.Bottom + Application.GetRealHeight(32),
+                Height = Application.GetRealHeight(200),
+                Width = Application.GetRealWidth(700),
+                Gravity = Gravity.CenterHorizontal,
+                Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}", "\r\n"),
+                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
+                TextAlignment = TextAlignment.Center,
+                IsMoreLines = true
+            };
+            functionSceneBodyView.AddChidren(noScenceTip);
+        }
+
+
+        #endregion
+
+        #region 鈻� 涓�鑸澶囩姸鎬佷笂鎶__________________
+
+        /// <summary>
+        /// 娣诲姞涓�鑸澶囩姸鎬佷笂鎶ヤ簨浠�
+        /// </summary>
+        private void AddNormalDeviceReportEvent()
+        {
+            //璁惧灞炴�т笂鎶�(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
+            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceStatus", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (report) =>
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //澶勭悊涓�鑸澶囩殑涓婃姤鏁版嵁
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
+                    if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
+                    {
+                        //鍒锋柊鍗$墖淇℃伅
+                        var locadevice = LocalDevice.Current.GetDevice(mainKeys);
+                        this.dicDeviceRowControl[mainKeys].RefreshControlInfo(locadevice);
+                    }
+                }, ShowErrorMode.NO);
+            });
+
+            //璁惧鍦ㄧ嚎涓婃姤(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
+            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceOnline", ReceiveComandDiv.A璁惧鍦ㄧ嚎涓婃姤, (report) =>
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
+                    if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
+                    {
+                        //鍒锋柊鍗$墖鐘舵��
+                        this.dicDeviceRowControl[mainKeys].SetRowOnlineStatu(report.IsOnline == 1);
+                        return;
+                    }
+
+                }, ShowErrorMode.NO);
+            });
+
+            //璁惧鎺у埗鍙嶉涓婃姤
+            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceRespone", ReceiveComandDiv.A鑺傜偣鎺у埗鍙嶉, (report) =>
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
+                    if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
+                    {
+                        //璁惧鍗$墖
+                        var deviceCardContr = this.dicDeviceRowControl[mainKeys];
+                        //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
+                        deviceCardContr.SetHadGetResponeResultStatu();
+                    }
+
+                }, ShowErrorMode.NO);
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 浼犳劅鍣ㄧ姸鎬佷笂鎶____________________
+
+        /// <summary>
+        /// 娣诲姞浼犳劅鍣ㄧ姸鎬佷笂鎶ヤ簨浠�
+        /// </summary>
+        private void AddSensorDeviceReportEvent()
+        {
+            //浼犳劅鍣ㄤ笂鎶�(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
+            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewSensor", ReceiveComandDiv.A浼犳劅鍣ㄤ笂鎶�, (report) =>
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //澶勭悊浼犳劅鍣ㄤ笂鎶ユ暟鎹�
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
+                    if (this.dicDeviceRowControl.ContainsKey(mainKeys) == true)
+                    {
+                        //鏈湴璁惧瀵硅薄
+                        var locadevice = LocalDevice.Current.GetDevice(mainKeys);
+                        //鍒锋柊鍗$墖淇℃伅
+                        this.dicDeviceRowControl[mainKeys].RefreshControlInfo(locadevice);
+                    }
+
+                }, ShowErrorMode.NO);
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鏁村悎璁惧___________________________
+
+        /// <summary>
+        /// 鑾峰彇鍒嗙粍鍚庣殑璁惧
+        /// </summary>
+        /// <returns></returns>
+        private Dictionary<int, DeviceRowInfo> GetAllGroupDevice(Common.Room room)
+        {
+            //鍏ㄩ儴鐨勮澶�
+            var listDevice = HdlRoomLogic.Current.GetRoomListDevice(room);
+            //鏍规嵁璁惧鎵�灞炵被鍨嬫帓搴�
+            listDevice = LocalDevice.Current.SortDeviceByBelongType(listDevice);
+            var dic = new Dictionary<int, DeviceRowInfo>();
+            foreach (var device in listDevice)
+            {
+                var typeInfo = LocalDevice.Current.GetDeviceBelongEnumInfo(device);
+                //鎸夋墍灞濱D鍒嗙粍
+                if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
+                {
+                    dic[typeInfo.BeloneTextId] = new DeviceRowInfo();
+                    string path1 = string.Empty;
+                    string path2 = string.Empty;
+                    //鑾峰彇鍥剧墖
+                    LocalDevice.Current.GetDeviceObjectIcon(typeInfo.ConcreteType, ref path1, ref path2);
+                    dic[typeInfo.BeloneTextId].IconPath = path1;
+                    dic[typeInfo.BeloneTextId].IconPathSelected = path2;
+                    dic[typeInfo.BeloneTextId].TextId = typeInfo.BeloneTextId;
+                }
+                dic[typeInfo.BeloneTextId].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device));
+            }
+            return dic;
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰鍏抽棴___________________________
+
+        /// <summary>
+        /// 鐣岄潰鍏抽棴
+        /// </summary>
+        public override void CloseFormBefore()
+        {
+            //鎶婇潤鎬佸彉閲忕殑杩欎釜涓滆タ缃┖
+            instance = null;
+
+            base.CloseFormBefore();
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 鑾峰彇鏃堕棿鐨勭炕璇戞枃鏈�
+        /// </summary>
+        /// <param name="second"></param>
+        /// <param name="hourText">灏忔椂鐨勬枃鏈�</param>
+        /// <param name="minuText">鍒嗙殑鏂囨湰</param>
+        /// <param name="secondText">绉掔殑鏂囨湰</param>
+        /// <returns></returns>
+        private string GetTimeString(int second, string hourText, string minuText, string secondText)
+        {
+            string timeStr = string.Empty;
+            int hour = second / 3600;
+            int minu = second % 3600 / 60;
+            int sec = second % 60;
+            if (hour > 0)
+            {
+                timeStr += hour + hourText;
+            }
+            if (minu > 0)
+            {
+                timeStr += minu + minuText;
+            }
+            if (sec > 0)
+            {
+                timeStr += sec + secondText;
+            }
+            return timeStr;
+        }
+
+        /// <summary>
+        /// 娣诲姞鍦烘櫙(閮洩鍩庣殑浠g爜)
+        /// </summary>
+        private void Add_Scene()
+        {
+            var scene = new Device.Category.CategoryAddScene();
+            UserView.HomePage.Instance.AddChidren(scene);
+            UserView.HomePage.Instance.PageIndex += 1;
+            scene.Show();
+            scene.AddAction = () =>
+            {
+                //鍒锋柊bodyView
+                this.RefreshBodyView();
+            };
+        }
+
+        /// <summary>
+        /// 娣诲姞鑷姩鍖�(閮洩鍩庣殑浠g爜)
+        /// </summary>
+        private void Add_Automation()
+        {
+            //new涓�涓柊閫昏緫瀵硅薄锛�
+            Common.Logic.CurrentLogic = new Common.Logic();
+            Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑
+            Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.automation1);
+            var addLogicPage = new Shared.Phone.Device.Logic.AddLogicPage();
+            UserView.HomePage.Instance.AddChidren(addLogicPage);
+            UserView.HomePage.Instance.PageIndex += 1;
+            addLogicPage.Show();
+        }
+
+        #endregion
+
+        #region 鈻� 缁撴瀯浣揰____________________________
+
+        /// <summary>
+        /// 璁惧琛屼俊鎭�
+        /// </summary>
+        private class DeviceRowInfo
+        {
+            /// <summary>
+            /// 鏂囨湰ID,鐩墠鐢ㄦ潵鍋氫富閿�
+            /// </summary>
+            public int TextId = 0;
+            /// <summary>
+            /// 鍥炬爣
+            /// </summary>
+            public string IconPath = string.Empty;
+            /// <summary>
+            /// 鍥炬爣
+            /// </summary>
+            public string IconPathSelected = string.Empty;
+            /// <summary>
+            /// 璁惧鍥炶矾涓婚敭
+            /// </summary>
+            public List<string> listDeviceKeys = new List<string>();
+        }
+
+        #endregion
+
+        #region 鈼� 鑷姩鍖朹_________________________
+
+        /// <summary>
+        /// 鑷姩鍖栧姛鑳戒唬鐮佸叆鍙�
+        /// </summary>
+        private void ShowAutotion()
+        {
+            // functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+            #region   ---鎺ㄨ崘妯℃澘鐨勭粍浠�
+            //鎺ㄨ崘妯℃澘鑳屾櫙鎺т欢
+            var bjFrameLayout = new FrameLayout
+            {
+                Width = Application.GetRealWidth(1080 - 58),
+                Height = Application.GetRealHeight(170),
+                BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+                X = Application.GetRealWidth(58),
+                //Radius = (uint)Application.GetRealHeight(50),
+                Y = Application.GetRealHeight(30),
+
+            };
+            functionSceneAutoBodyView.AddChidren(bjFrameLayout);
+            bjFrameLayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
+            //鍥炬爣鎺т欢
+            var sigBtn = new Button
+            {
+                Width = Application.GetMinRealAverage(84),
+                Height = Application.GetMinRealAverage(84),
+                UnSelectedImagePath = "ZigeeLogic/sign.png",
+                X = Application.GetRealWidth(58),
+                Gravity = Gravity.CenterVertical,
+            };
+            bjFrameLayout.AddChidren(sigBtn);
+            //鎺ㄨ崘妯℃澘鏂囨湰鎺т欢
+            var recommendtextBtn = new Button
+            {
+                Width = Application.GetMinRealAverage(300),
+                Height = Application.GetMinRealAverage(84),
+                X = sigBtn.Right + Application.GetRealWidth(35),
+                TextAlignment = TextAlignment.CenterLeft,
+                //Text = "鎺ㄨ崘妯℃澘",
+                TextID = MyInternationalizationString.logictemplate,
+                Gravity = Gravity.CenterVertical,
+                TextColor = ZigbeeColor.Current.LogicBtnSelectedColor,
+                TextSize = 15,
+            };
+            bjFrameLayout.AddChidren(recommendtextBtn);
+            //鎺ㄨ崘妯℃澘寮�鍏虫帶浠�
+            var recommendswitchBtn = new Button
+            {
+                Width = Application.GetRealWidth(104),
+                Height = Application.GetRealHeight(63),
+                UnSelectedImagePath = "ZigeeLogic/logicclose.png",
+                SelectedImagePath = "ZigeeLogic/logicopen.png",
+                X = bjFrameLayout.Width - Application.GetRealWidth(104 + 58),
+                Gravity = Gravity.CenterVertical,
+            };
+            bjFrameLayout.AddChidren(recommendswitchBtn);
+            #endregion
+            //榛樿鎺ㄨ崘妯℃澘宸﹀彸鍙粦鎺т欢
+            var scenehorizontalScrol = new HorizontalScrolViewLayout
+            {
+                Width = Application.GetRealWidth(1080 - 58),
+                X = Application.GetRealWidth(58),
+                Y = bjFrameLayout.Bottom + Application.GetRealHeight(30),
+                Height = Application.GetRealHeight(0),
+            };
+            functionSceneAutoBodyView.AddChidren(scenehorizontalScrol);
+            //鏄剧ず鑷姩鍖栧垪琛ㄤ笂涓嬪彲婊戞帶浠�
+            var logicScrolView = new VerticalRefreshLayout//VerticalScrolViewLayout
+            {
+                Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30),
+                //BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,/
+                X = Application.GetRealWidth(58),
+                Y = scenehorizontalScrol.Bottom,
+            };
+            functionSceneAutoBodyView.AddChidren(logicScrolView);
+            logicScrolView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
+            bool no = false;
+            //鏄剧ず榛樿妯℃澘鐨勭晫闈簨浠�
+            recommendswitchBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                int Yheight = 0;
+                recommendswitchBtn.IsSelected = !recommendswitchBtn.IsSelected;
+                scenehorizontalScrol.RemoveAll();
+                if (recommendswitchBtn.IsSelected)
+                {
+                    no = true;
+                    scenehorizontalScrol.Height = Application.GetRealHeight(246);
+                    Yheight = 20;
+                    for (int i = 1; i < 4; i++)
+                    {
+
+                        var frameLayout = new FrameLayout
+                        {
+                            Width = Application.GetMinRealAverage(369 + 46),
+                            Height = Application.GetMinRealAverage(246),
+                        };
+                        scenehorizontalScrol.AddChidren(frameLayout);
+                        var logiciocnBtn = new Button
+                        {
+                            Width = Application.GetMinRealAverage(369),
+                            Height = Application.GetMinRealAverage(246),
+                            UnSelectedImagePath = "ZigeeLogic/" + i + ".png",
+                            Tag = i,
+                        };
+                        frameLayout.AddChidren(logiciocnBtn);
+
+                        var logicnameBtn = new Button
+                        {
+                            Width = Application.GetMinRealAverage(250),
+                            Height = Application.GetMinRealAverage(80),
+                            X = Application.GetRealWidth(23),
+                            Y = Application.GetRealHeight(246 - 23 - 80),
+                            TextAlignment = TextAlignment.CenterLeft,
+                            TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
+                            TextSize = 14,
+                        };
+                        frameLayout.AddChidren(logicnameBtn);
+
+                        if (i == 1)
+                        {
+                            logicnameBtn.Text = Language.StringByID(MyInternationalizationString.onlight);
+                        }
+                        else if (i == 2)
+                        {
+                            logicnameBtn.Text = Language.StringByID(MyInternationalizationString.offlight);
+                        }
+                        else if (i == 3)
+                        {
+                            logicnameBtn.Text = Language.StringByID(MyInternationalizationString.automation1);
+                        }
+
+
+                        EventHandler<MouseEventArgs> iconclick = (sender1, e1) =>
+                        {
+                            Common.Logic.CurrentLogic = new Common.Logic();
+                            Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑
+                            if (logiciocnBtn.Tag.ToString() == "3")
+                            {
+                                Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text;
+                                //Common.Logic.CurrentLogic.LogicCustomPushText = Common.Logic.CurrentLogic.LogicName + Language.StringByID(MyInternationalizationString.defaulttext);
+                                var addLogicPage = new Device.Logic.AddLogicPage();
+                                HomePage.Instance.AddChidren(addLogicPage);
+                                HomePage.Instance.PageIndex += 1;
+                                addLogicPage.Show();
+                            }
+                            else
+                            {
+
+                                Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text;
+                                //Common.Logic.CurrentLogic.LogicCustomPushText = Common.Logic.CurrentLogic.LogicName + Language.StringByID(MyInternationalizationString.defaulttext);
+                                Device.Logic.TemplatePage templatePage = new Device.Logic.TemplatePage();
+                                Device.Logic.TemplatePage.s = logiciocnBtn.Tag.ToString();
+                                HomePage.Instance.AddChidren(templatePage);
+                                HomePage.Instance.PageIndex += 1;
+                                templatePage.Show();
+                            }
+                        };
+                        logiciocnBtn.MouseUpEventHandler += iconclick;
+                        logicnameBtn.MouseUpEventHandler += iconclick;
+                    }
+                }
+                else
+                {
+                    no = false;
+                    scenehorizontalScrol.Height = Application.GetRealHeight(0);
+                    Yheight = 0;
+                }
+                logicScrolView.Y = scenehorizontalScrol.Bottom + Yheight;
+                logicScrolView.Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30) - Yheight;
+                Automationview(logicScrolView, no);
+            };
+            //涓嬫媺鍒锋柊鑷姩鍖栧垪琛ㄧ殑浜嬩欢
+            logicScrolView.BeginHeaderRefreshingAction += () =>
+            {
+                //閲嶆柊鍒锋柊logic鍒楄〃
+                Common.Logic.LogicList.Clear();
+                Read(logicScrolView, no);
+                //鍏抽棴鍒锋柊View锛�
+                logicScrolView.EndHeaderRefreshing();
+            };
+
+            Read(logicScrolView, no);
+
+        }
+        /// <summary>
+        /// 璇诲彇鑷姩鍖栧垪琛ㄦ暟鎹紱
+        /// </summary>
+        /// <param name="logicScrolView"></param>
+        private async void Read(VerticalRefreshLayout logicScrolView, bool no)
+        {
+            CommonPage.Loading.Start();
+            if (Common.Logic.LogicList.Count == 0)
+            {
+                var Idlist = await Device.Logic.Send.GetLogicId(0);
+                if (Idlist.Count != 0)
+                {
+                    var listlogic = await Device.Logic.Send.ReadList(Idlist.Count, 0);
+                    //foreach鍙兘闆嗗悎宸茶淇敼,鏋氫妇鎿嶄綔鍙兘涓嶄細鎵ц,鍙兘鍑虹幇宕╂簝(寤鸿for)銆�
+                    for (int j = 0; j < listlogic.Count; j++)
+                    {
+                        var logic = listlogic[j];
+                        if (logic.LogicType != 0)
+                        {
+                            continue;
+                        }
+                        Common.Logic.LogicList.Add(logic);
+                    }
+                }
+            }
+            //鑷姩鍖�
+            Automationview(logicScrolView, no);
+            CommonPage.Loading.Hide();
+        }
+        /// <summary>
+        /// 鍔犺浇鑷姩鍖栧垪琛ㄧ晫闈�
+        /// </summary>
+        /// <param name="refresview">Refresview.</param>
+        private async void Automationview(VerticalRefreshLayout refresview, bool no)
+        {
+            refresview.RemoveAll();
+            if (Common.Logic.LogicList.Count == 0 && no == false)
+            {
+                //灏辨槸涓轰簡鏄剧ず寮曞娣诲姞鍥炬爣;
+                refresview.BackgroundColor = 0x00000000;
+                var noFrameLayout = new FrameLayout
+                {
+                    Height = Application.GetRealHeight(434 + 200 + 32 + 160),
+                    //BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+                };
+                refresview.AddChidren(noFrameLayout);
+
+
+                var noIconBtn = new Button
+                {
+                    Y = Application.GetRealHeight(160),
+                    Width = Application.GetMinRealAverage(756),
+                    Height = Application.GetMinRealAverage(434),
+                    UnSelectedImagePath = "Item/NoFunction.png",
+                    X = Application.GetRealWidth(104),
+                };
+                noFrameLayout.AddChidren(noIconBtn);
+
+                var noTextBtn = new Button()
+                {
+                    Y = noIconBtn.Bottom,
+                    Height = Application.GetRealHeight(200) + Application.GetRealHeight(32),
+                    Width = Application.GetRealWidth(700),
+                    //Gravity = Gravity.CenterHorizontal,
+                    Text = Language.StringByID(MyInternationalizationString.automationaddtext).Replace("{\\r\\n}", "\r\n"),
+                    TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
+                    TextAlignment = TextAlignment.Center,
+                    IsMoreLines = true,
+                    X = Application.GetRealWidth(190 - 58),
+                };
+                noFrameLayout.AddChidren(noTextBtn);
+
+            }
+            else
+            {
+
+                if (Common.Logic.LogicList.Count == 0 && no == true)
+                {
+                    ///鏀瑰彉婊戝姩view鐨勯鑹诧紱
+                    refresview.BackgroundColor = 0x00000000;
+                }
+                else
+                {
+                    refresview.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
+                }
+            }
+
+            foreach (var logic in Common.Logic.LogicList)
+            {
+                var fLayout = new FrameLayout
+                {
+                    Height = Application.GetRealHeight(190 + 30),
+                    Width = Application.GetRealWidth(1080 - 58),
+                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+                };
+                refresview.AddChidren(fLayout);
+
+                var logicRowlayout = new RowLayout
+                {
+                    Height = Application.GetRealHeight(190 + 30),
+                    Width = Application.GetRealWidth(1080 - 58),
+                    LineColor = ZigbeeColor.Current.LogicBackgroundColor,
+                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+                    SubViewWidth = Application.GetRealWidth(184),//鏀瑰彉缂栬緫鎺т欢瀹藉害澶氬皯锛�
+
+                };
+                fLayout.AddChidren(logicRowlayout);
+
+                var logicnameBtn = new Button
+                {
+                    Height = Application.GetRealHeight(58),
+                    Width = Application.GetRealWidth(350),
+                    Text = logic.LogicName,
+                    X = Application.GetRealWidth(12 + 46),
+                    Y = Application.GetRealHeight(30),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    TextSize = 14,
+                };
+                logicRowlayout.AddChidren(logicnameBtn);
+
+                var logicswitchBtn = new Button
+                {
+                    Width = Application.GetRealWidth(104),
+                    Height = Application.GetRealHeight(63),
+                    UnSelectedImagePath = "ZigeeLogic/logicclose.png",
+                    SelectedImagePath = "ZigeeLogic/logicopen.png",
+                    X = logicRowlayout.Width - Application.GetRealWidth(104 + 58),
+                    Y = Application.GetRealHeight(58 + 30 + 9 + 30),
+
+                };
+                logicRowlayout.AddChidren(logicswitchBtn);
+
+                logicswitchBtn.MouseUpEventHandler += (sender1, e1) =>
+                {
+                    logicswitchBtn.IsSelected = !logicswitchBtn.IsSelected;
+                    if (logicswitchBtn.IsSelected)
+                    {
+                        //閫昏緫寮�
+                        logic.IsEnable = 1;
+                        StatusColor(logic, logicRowlayout, 1);
+                    }
+                    else
+                    {
+                        //閫昏緫鍏�
+                        logic.IsEnable = 0;
+                        StatusColor(logic, logicRowlayout, 0);
+                    }
+                    Device.Logic.Send.LogicControlSwitch(logic);
+                    //Logic.Send.AddModifyLogic(logic);
+                };
+                if (logic.IsEnable == 1)
+                {
+                    logicswitchBtn.IsSelected = true;
+                    StatusColor(logic, logicRowlayout, 1);
+                }
+                else if (logic.IsEnable == 0)
+                {
+                    logicswitchBtn.IsSelected = false;
+                    StatusColor(logic, logicRowlayout, 0);
+                }
+                ///缂栬緫
+                var edit = new Button
+                {
+                    BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1,
+                    Text = Language.StringByID(MyInternationalizationString.edit),
+                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
+                };
+                logicRowlayout.AddRightView(edit);
+                edit.MouseUpEventHandler += (sender, e) =>
+                {
+                    Common.Logic.CurrentLogic = logic;
+                    var logicCommunalPage = new Device.Logic.LogicCommunalPage();
+                    HomePage.Instance.AddChidren(logicCommunalPage);
+                    HomePage.Instance.PageIndex += 1;
+                    logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview, no); });
+
+                };
+
+                ///鍒犻櫎
+                var del = new Button
+                {
+                    BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1,
+                    Text = Language.StringByID(MyInternationalizationString.del),
+                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
+                };
+                logicRowlayout.AddRightView(del);
+                del.MouseUpEventHandler += (sender, e) =>
+                {
+                    var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete),
+                                             Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim));
+                    alert.ResultEventHandler += (sender1, e1) =>
+                    {
+                        if (e1)
+                        {
+                            Common.Logic.LogicList.Remove(logic);
+                            Automationview(refresview, no);
+                            Device.Logic.Send.DelLogic(logic.LogicId);
+                        }
+                    };
+                    alert.Show();
+
+                };
+                var line = new Button
+                {
+                    Y = fLayout.Height - 1,
+                    Height = 1,
+                    X = Application.GetRealWidth(58),
+                    Width = Application.GetRealWidth(1080 - 58),
+                    BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+                };
+                fLayout.AddChidren(line);
+            }
+
+        }
+        /// <summary>
+        /// 鏄剧ず鑷姩鍖栬緭鍑哄姛鑳芥ā鍧楀浘鏍囩殑棰滆壊
+        /// </summary>
+        /// <param name="logic"></param>
+        /// <param name="logicRowlayout"></param>
+        /// <param name="intvalue"></param>
+        private void StatusColor(Common.Logic logic, RowLayout logicRowlayout, int intvalue)
+        {
+
+            var logictimeBtn = new Button
+            {
+                Height = Application.GetRealHeight(58),
+                Width = logicRowlayout.Width - Application.GetRealWidth(58 + 12 + 350),
+                Y = Application.GetRealHeight(30),
+                X = Application.GetRealWidth(365),
+                TextAlignment = TextAlignment.CenterRight,
+                TextColor = ZigbeeColor.Current.LogicListWeekTextColor,
+            };
+            logicRowlayout.AddChidren(logictimeBtn);
+
+            ///鏄剧ず鎵ц鍛ㄦ湡
+            Device.Logic.Method.UpdateWeek(logictimeBtn, logic);
+
+
+            List<string> indexlist = new List<string>();
+            List<string> iconIndexlist = new List<string>();
+            for (int i = 0; i < logic.Actions.Count; i++)
+            {
+                var linkType = logic.Actions[i]["LinkType"].ToString();
+                var d = indexlist.Find((value) => { return value == linkType; });
+                if (d == null)
+                {
+                    indexlist.Add(linkType);
+                }
+            }
+            if (indexlist.Contains("0"))
+            {
+                iconIndexlist.Add("0");
+            }
+            if (indexlist.Contains("2"))
+            {
+                iconIndexlist.Add("2");
+            }
+            if (indexlist.Contains("6"))
+            {
+                iconIndexlist.Add("6");
+            }
+            if (indexlist.Contains("7"))
+            {
+                iconIndexlist.Add("7");
+            }
+            for (int i = 0; i < iconIndexlist.Count; i++)
+            {
+                var iconindex = iconIndexlist[i];
+                var typebjBtn = new FrameLayout
+                {
+                    Width = Application.GetMinRealAverage(82),
+                    Height = Application.GetMinRealAverage(82),
+                    X = Application.GetRealWidth(58) + Application.GetRealWidth(12 + (12 + 82 + 45 + 12) * i),
+                    Y = Application.GetRealHeight(58 + 30 + 30),
+                    Radius = (uint)Application.GetRealHeight(41),
+                    BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+                };
+                logicRowlayout.AddChidren(typebjBtn);
+
+                var typeIconBtn = new Button
+                {
+                    Width = Application.GetMinRealAverage(58),
+                    Height = Application.GetMinRealAverage(58),
+                    Gravity = Gravity.Center,
+
+                };
+                typebjBtn.AddChidren(typeIconBtn);
+
+                var connectIconBtn = new Button
+                {
+                    Y = typebjBtn.Y + Application.GetRealHeight(35),
+                    X = Application.GetRealWidth(58) + Application.GetRealWidth((12 + 82 + 12) + (12 + 45 + 82 + 12) * i),
+                    Width = Application.GetRealWidth(48),
+                    Height = Application.GetRealHeight(15),
+                    UnSelectedImagePath = "ZigeeLogic/connect.png",
+                };
+                logicRowlayout.AddChidren(connectIconBtn);
+                if (iconIndexlist.Count - 1 == i)
+                {
+                    connectIconBtn.Visible = false;
+                }
+                switch (iconindex)
+                {
+                    case "0":
+                        {
+                            if (intvalue == 1)
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/function1.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicFunction1Color;
+                            }
+                            else
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nofunction.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+                            }
+                        }
+                        break;
+                    case "2":
+                        {
+
+                            if (intvalue == 1)
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/scene1.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicScene1Color;
+                            }
+                            else
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/noscene.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+                            }
+
+                        }
+                        break;
+                    case "6":
+                        {
+                            if (intvalue == 1)
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/security1.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicSecurity1Color;
+
+                            }
+                            else
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nosecurity.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+                            }
+
+                        }
+                        break;
+                    case "7":
+                        {
+                            if (intvalue == 1)
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/delay1.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicDelay1Color;
+                            }
+                            else
+                            {
+                                typeIconBtn.UnSelectedImagePath = "ZigeeLogic/nodelay.png";
+                                typebjBtn.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+                            }
+
+                        }
+                        break;
+
+                }
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/Base/DeviceRowCommon.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/Base/DeviceRowCommon.cs
new file mode 100755
index 0000000..89f1059
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/Base/DeviceRowCommon.cs
@@ -0,0 +1,455 @@
+锘縰sing Shared.Phone.UserCenter;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.Category.Controls
+{
+    /// <summary>
+    /// 鍒嗙被鐨勮澶囪鎺т欢搴曞眰鍏遍��
+    /// </summary>
+    public class DeviceRowCommon : RowLayoutControl
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鏄惁鎷ユ湁鐘舵�佸姛鑳�(榛樿鎷ユ湁)
+        /// </summary>
+        public bool hadStatuFunction = true;
+        /// <summary>
+        /// 鎺т欢闇�瑕佽绉婚櫎鐨勪簨浠�
+        /// </summary>
+        public Action RowNeedRemoveEvent = null;
+        /// <summary>
+        /// 璁惧瀵硅薄
+        /// </summary>
+        public CommonDevice device;
+        /// <summary>
+        /// 璁惧鍥炬爣鑳屾櫙鎺т欢
+        /// </summary>
+        private FrameLayout frameIconBackGroud = null;
+        /// <summary>
+        /// 璁惧鍥炬爣鎺т欢
+        /// </summary>
+        private IconViewControl btnDeviceIcon = null;
+        /// <summary>
+        /// 璁惧鍚嶅瓧鎺т欢
+        /// </summary>
+        private NormalViewControl btnDeviceName = null;
+        /// <summary>
+        /// 鐘舵�佹帶浠�
+        /// </summary>
+        private NormalViewControl btnStatu = null;
+        /// <summary>
+        /// 寮�鍏虫帶浠�
+        /// </summary>
+        private MostRightIconControl btnSwitch = null;
+        /// <summary>
+        /// 鏄惁鑾峰彇缃戝叧鍙嶉鐨勭粨鏋�  0:娌℃湁鑾峰彇寰楀埌  1:宸茬粡鑾峰彇寰楀埌
+        /// </summary>
+        private int ResponeResult = 0;
+        /// <summary>
+        /// 鍒ゆ柇鏄惁鏈夊紑鍏冲姛鑳�
+        /// </summary>
+        private bool isHadOpenSwitch = true;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鏈垎閰嶇晫闈㈢殑璁惧閫夋嫨鎺т欢
+        /// </summary>
+        /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(鐪熷疄鍊�,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)</param>
+        public DeviceRowCommon(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+        {
+            this.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
+            this.Width = Application.GetRealWidth(1022);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�
+        /// </summary>
+        /// <param name="i_device">璁惧瀵硅薄</param>
+        public virtual void InitControl(CommonDevice i_device)
+        {
+            this.device = i_device;
+            //璁惧鍥炬爣鑳屾櫙鎺т欢
+            this.frameIconBackGroud = new FrameLayout();
+            frameIconBackGroud.Height = Application.GetMinRealAverage(112);
+            frameIconBackGroud.Width = Application.GetMinRealAverage(112);
+            frameIconBackGroud.Gravity = Gravity.CenterVertical;
+            frameIconBackGroud.X = Application.GetRealWidth(46);
+            frameIconBackGroud.Radius = (uint)Application.GetMinRealAverage(112 / 2);
+            frameIconBackGroud.BackgroundColor = Common.ZigbeeColor.Current.GXCGrayBackgroundColor;
+            this.frameTable.AddChidren(frameIconBackGroud, ChidrenBindMode.NotBind);
+            if (chidrenYaxis != 0)
+            {
+                frameIconBackGroud.Y += chidrenYaxis;
+            }
+
+            //璁惧鍥炬爣鎺т欢
+            this.btnDeviceIcon = new IconViewControl(78);
+            btnDeviceIcon.Gravity = Gravity.Center;
+            Common.LocalDevice.Current.SetDeviceIconToControl(btnDeviceIcon, i_device);
+            frameIconBackGroud.AddChidren(btnDeviceIcon);
+            //閲嶆柊缁戝畾浜嬩欢
+            this.frameTable.ChangedChidrenBindMode(frameIconBackGroud, ChidrenBindMode.BindEventOnly);
+
+            //璁惧鍚嶅瓧
+            this.btnDeviceName = new NormalViewControl(600, 60, true);
+            btnDeviceName.X = Application.GetRealWidth(181);
+            btnDeviceName.Y = Application.GetRealHeight(16) + this.chidrenYaxis;
+            btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceEpointName(i_device);
+            btnDeviceName.SelectedTextColor = Common.ZigbeeColor.Current.GXCTextSelectedColor;
+            this.frameTable.AddChidren(btnDeviceName, ChidrenBindMode.BindEventOnly);
+            
+            if (this.hadStatuFunction == false)
+            {
+                //娌℃湁鐘舵�佸姛鑳�,鍒欐妸璁惧鍚嶅瓧鎺т欢涓�
+                this.btnDeviceName.Gravity = Gravity.CenterVertical;
+            }
+            //鎷ユ湁鐘舵�佸姛鑳�
+            if (this.hadStatuFunction == true)
+            {
+                //鐘舵��
+                this.btnStatu = new NormalViewControl(600, 50, true);
+                btnStatu.X = Application.GetRealWidth(181);
+                btnStatu.Y = Application.GetRealHeight(70) + this.chidrenYaxis;
+                btnStatu.TextSize = 10;
+                btnStatu.TextColor = UserCenterColor.Current.TextGrayColor1;
+                this.frameTable.AddChidren(btnStatu, ChidrenBindMode.BindEventOnly);
+            }
+
+            //搴曠嚎
+            var btnBottomLine = new NormalViewControl(Application.GetRealWidth(841), ControlCommonResourse.BottomLineHeight, false);
+            btnBottomLine.X = Application.GetRealWidth(181);
+            btnBottomLine.Y = this.Height - ControlCommonResourse.BottomLineHeight;
+            btnBottomLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
+            this.frameTable.AddChidren(btnBottomLine, ChidrenBindMode.NotBind);
+
+            //寮�鍏虫帶浠�(鏆傛椂涓嶅姞鍏ョ埗鎺т欢)
+            this.btnSwitch = new MostRightIconControl(69, 69);
+            btnSwitch.UnSelectedImagePath = "Item/Switch.png";
+            btnSwitch.SelectedImagePath = "Item/SwitchSelected.png";
+
+            //鍒嗕韩鐨勬埧闂�,鍒欎笉鑳界紪杈戝拰鍒犻櫎
+            if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false)
+            {
+                //缂栬緫
+                var btnEditor = this.AddEditorControl();
+                btnEditor.ButtonClickEvent += (sender, e) =>
+                {
+                    //鍏抽棴宸︽粦鑿滃崟
+                    this.HideMenu();
+                    var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
+                    UserView.HomePage.Instance.AddChidren(detailInfo);
+                    UserView.HomePage.Instance.PageIndex += 1;
+                    detailInfo.Show(i_device, HdlRoomLogic.Current.CurrentRoom);
+                    detailInfo.EditAction += (curDevice, curRoom) =>
+                    {
+                        if (HdlRoomLogic.Current.CurrentRoom.IsLove == true)
+                        {
+                            //褰撳墠鏄枩鐖辨埧闂存椂
+                            if (HdlRoomLogic.Current.IsCollectInRoom(this.device) == false)
+                            {
+                                //鎴块棿鏀瑰彉浜�
+                                this.RemoveFromParent();
+                                //鍥炶皟鎺т欢琚Щ闄ょ殑浜嬩欢
+                                this.RowNeedRemoveEvent?.Invoke();
+                                return;
+                            }
+                        }
+                        else if (HdlRoomLogic.Current.CurrentRoom.Id != curRoom.Id)
+                        {
+                            //鎴块棿鏀瑰彉浜�
+                            this.RemoveFromParent();
+                            //鍥炶皟鎺т欢琚Щ闄ょ殑浜嬩欢
+                            this.RowNeedRemoveEvent?.Invoke();
+                            return;
+                        }
+                        //鍒锋柊鎺т欢鐘舵��
+                        this.RefreshControlInfo(i_device);
+                    };
+                };
+                //鍒犻櫎
+                var btnDelete = this.AddDeleteControl();
+                btnDelete.ButtonClickEvent += (sender, e) =>
+                {
+                    //纭畾瑕佺Щ闄よ鍔熻兘锛�
+                    var alert = new ShowMsgControl(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.DeleteFunction));
+                    alert.Show();
+                    alert.ConfirmClickEvent += () =>
+                    {
+                        //绉婚櫎鏀惰棌(涓嶇浠�涔堟儏鍐�,鏀惰棌閮借绉婚櫎)
+                        HdlRoomLogic.Current.DeleteLoveDevice(i_device);
+                        if (HdlRoomLogic.Current.CurrentRoom.IsLove == false)
+                        {
+                            //浠庢埧闂翠腑绉婚櫎
+                            HdlRoomLogic.Current.DeleteDevice(i_device);
+                        }
+                        this.RemoveFromParent();
+                        //鍥炶皟鎺т欢琚Щ闄ょ殑浜嬩欢
+                        this.RowNeedRemoveEvent?.Invoke();
+                    };
+                };
+            }
+            //鍒锋柊鎺т欢鐘舵��
+            this.RefreshControlInfo(i_device);
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞寮�鍏虫帶浠禵______________________
+
+        /// <summary>
+        /// 娣诲姞寮�鍏虫帶浠�
+        /// </summary>
+        /// <returns></returns>
+        public MostRightIconControl AddSwitchControl()
+        {
+            this.frameTable.AddChidren(this.btnSwitch, ChidrenBindMode.NotBind);
+            btnSwitch.InitControl();
+            btnSwitch.X -= ControlCommonResourse.XXLeft;
+            btnSwitch.Y += this.chidrenYaxis;
+
+            return btnSwitch;
+        }
+
+        #endregion
+
+        #region 鈻� 鍒锋柊鎺т欢鐘舵�乢______________________
+
+        /// <summary>
+        /// 鍒锋柊鎺т欢鐘舵��
+        /// </summary>
+        /// <param name="i_device">璁惧瀵硅薄,涓嶆槸鎺ㄩ�佺殑閭d釜</param>
+        public virtual void RefreshControlInfo(CommonDevice i_device)
+        {
+            //璁惧鍥炬爣涔熷埛鏂�
+            Common.LocalDevice.Current.SetDeviceIconToControl(btnDeviceIcon, i_device);
+            //璁惧鍚嶅瓧
+            this.btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceEpointName(i_device);
+            //妫�娴嬭澶囨槸鍚︽槸鎵撳紑鐘舵��
+            bool isOpen = this.CheckIsOpenStatu(i_device);
+            this.SetRowOpenStatu(isOpen);
+        }
+
+        /// <summary>
+        /// 璁剧疆琛屾帶浠剁殑鎵撳紑鎴栬�呭叧闂殑鐘舵��
+        /// </summary>
+        /// <param name="isOpen"></param>
+        public void SetRowOpenStatu(bool isOpen)
+        {
+            //璁惧鐘舵�佸繀椤诲埛鏂�
+            if (this.btnStatu != null)
+            {
+                this.btnStatu.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device);
+            }
+
+            if (this.btnDeviceName.IsSelected == isOpen)
+            {
+                //鐘舵�佷竴鏍�,鍒欎笉闇�瑕佸鐞�
+                return;
+            }
+            //璁惧鍚嶇О鎺т欢
+            this.btnDeviceName.IsSelected = isOpen;
+            this.btnDeviceName.IsBold = isOpen;
+            //璁惧鐨勮儗鏅渾鍦堝浘
+            if (isOpen == true)
+            {
+                this.frameIconBackGroud.BackgroundColor = Common.ZigbeeColor.Current.GXCSelectedBackgroundColor;
+            }
+            else
+            {
+                this.frameIconBackGroud.BackgroundColor = Common.ZigbeeColor.Current.GXCGrayBackgroundColor;
+            }
+            //璁惧鍥炬爣鎺т欢
+            this.btnDeviceIcon.IsSelected = isOpen;
+            //寮�鍏虫帶浠�
+            if (this.btnSwitch != null)
+            {
+                this.btnSwitch.IsSelected = isOpen;
+            }
+        }
+
+        /// <summary>
+        /// 璁剧疆琛屾帶浠剁殑鍦ㄧ嚎鐘舵��
+        /// </summary>
+        /// <param name="isOnline">鍦ㄧ嚎</param>
+        public void SetRowOnlineStatu(bool isOnline)
+        {
+            if (this.isHadOpenSwitch == true)
+            {
+                //濡傛灉杩欎釜璁惧鏈夊紑鍏冲姛鑳�,鍒欏湪绾跨姸鎬佷笉浼氭敼鍙樼姸鎬�
+                return;
+            }
+            this.SetRowOpenStatu(isOnline);
+        }
+
+        /// <summary>
+        /// 璁剧疆璁惧鐨勭姸鎬佹枃鏈�
+        /// </summary>
+        /// <param name="i_Text">鐘舵�佹枃鏈�</param>
+        public void SetDeviceStatuText(string i_Text)
+        {
+            if (this.btnStatu != null)
+            {
+                this.btnStatu.Text = i_Text;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佽幏鍙栫姸鎬佸懡浠__________________
+
+        /// <summary>
+        /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
+        /// </summary>
+        public virtual void SendStatuComand()
+        {
+            return;
+        }
+
+        #endregion
+
+        #region 鈻� 妫�娴嬭澶囨墦寮�鐘舵�乢__________________
+
+        /// <summary>
+        /// 妫�娴嬭澶囨槸鍚︽槸鎵撳紑鐘舵��
+        /// </summary>
+        /// <param name="i_device"></param>
+        /// <returns></returns>
+        public virtual bool CheckIsOpenStatu(CommonDevice i_device)
+        {
+            //濡傛灉杩欎釜鍑芥暟琚噸鍐欑殑璇�,鍒欎唬琛ㄨ繖涓澶囨湁寮�鍏冲姛鑳�
+            this.isHadOpenSwitch = false;
+            //榛樿鐢ㄥ湪绾跨姸鎬佹潵鍒ゆ柇
+            return i_device.IsOnline == 1;
+        }
+
+
+        #endregion
+
+        #region 鈻� 娣卞害鍗$墖淇℃伅鐨勮繑鍥炰簨浠禵____________
+
+        /// <summary>
+        /// 娣卞害鍗$墖淇℃伅鐨勮繑鍥炰簨浠�(搴曞眰涓撶敤)
+        /// </summary>
+        /// <param name="device">璁惧</param>
+        /// <param name="room">鎴块棿</param>
+        public void CardDetailInfoBackEvent(CommonDevice device, Common.Room room)
+        {
+            if (HdlRoomLogic.Current.CurrentRoom.IsLove == true)
+            {
+                //宸茬粡鍙栨秷鐨勬敹钘�
+                if (HdlRoomLogic.Current.IsCollectInRoom(device) == false)
+                {
+                    //绉婚櫎杩欎釜鎺т欢
+                    this.RemoveFromParent();
+                    return;
+                }
+            }
+            else
+            {   
+                //濡傛灉杩欎釜璁惧鏀瑰彉浜嗘埧闂寸殑璇�,鍥炶皟鍗$墖琚垹闄ょ殑鍑芥暟
+                var nowRoom = HdlRoomLogic.Current.GetRoomByDevice(device);
+                if (nowRoom == null || nowRoom.Id != HdlRoomLogic.Current.CurrentRoom.Id)
+                {
+                    //绉婚櫎杩欎釜鎺т欢
+                    this.RemoveFromParent();
+                    return;
+                }
+            }
+            //濡傛灉瀹冭繕鍦ㄨ繖涓埧闂寸殑璇�,鍒锋柊鍗$墖淇℃伅
+            this.RefreshControlInfo(device);
+        }
+
+        #endregion
+
+        #region 鈻� 鏄惁鑾峰彇缃戝叧鍙嶉鐨勭粨鏋淿____________
+
+        /// <summary>
+        /// <para>妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅</para>
+        /// <para>鑾峰彇鍒板洖澶嶇粨鏋滀箣鍚�,璁板緱璋冪敤SetHadGetResponeResultStatu()鍑芥暟璁剧疆鐘舵��</para>
+        /// </summary>
+        /// <param name="oldOpenStatu">璁惧鐩墠鐨勫紑鍏崇姸鎬�</param>
+        public void StartCheckResponeResult(bool oldOpenStatu)
+        {
+            this.ResponeResult = 0;
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                int waitime = 30;
+                while (waitime > 0)
+                {
+                    System.Threading.Thread.Sleep(100);
+                    if (this.ResponeResult == 1)
+                    {
+                        //宸茬粡鑾峰彇寰楀埌鏁版嵁
+                        break;
+                    }
+                    waitime--;
+                }
+                if (waitime <= 0)
+                {
+                    //娌℃湁鑾峰彇寰楀埌缁撴灉
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        var msgContr = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.FAIL));
+                        msgContr.Show();
+                        //鍙樻洿鍥炲師鏉ョ殑鐘舵��
+                        this.SetRowOpenStatu(oldOpenStatu);
+                    });
+                }
+            });
+        }
+
+        /// <summary>
+        /// 璁剧疆宸茬粡鑾峰彇鍒扮綉鍏崇殑鍙嶉缁撴灉
+        /// </summary>
+        public void SetHadGetResponeResultStatu()
+        {
+            this.ResponeResult = 1;
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+        /// </summary>
+        /// <returns></returns>
+        public bool CheckCanSendStatuComand()
+        {
+            if (this.device.HadReadDeviceStatu == false)
+            {
+                //杩樻病鏈夎鍙栬繃鏁版嵁
+                return true;
+            }
+            if ((DateTime.Now - this.device.LastDateTime).TotalMinutes >= 10)
+            {
+                //10鍒嗛挓鍚庡彲浠ュ啀娆¤幏鍙�
+                return true;
+            }
+            return false;
+        }
+
+        #endregion
+
+        #region 鈻� 鎺т欢鎽ф瘉___________________________
+
+        /// <summary>
+        /// 鎺т欢鎽ф瘉
+        /// </summary>
+        public override void RemoveFromParent()
+        {
+            this.RowNeedRemoveEvent = null;
+
+            base.RemoveFromParent();
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAcRowControl.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAcRowControl.cs
new file mode 100755
index 0000000..60a2c59
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAcRowControl.cs
@@ -0,0 +1,113 @@
+锘縰sing Shared.Phone.UserCenter;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.Category.Controls
+{
+    /// <summary>
+    /// 鍒嗙被鐣岄潰鐨勭┖璋冭澶囪鎺т欢
+    /// </summary>
+    public class DeviceAcRowControl : DeviceRowCommon
+    {
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍒嗙被鐣岄潰鐨勭┖璋冭澶囪鎺т欢
+        /// </summary>
+        /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(鐪熷疄鍊�,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)</param>
+        public DeviceAcRowControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+        {
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�
+        /// </summary>
+        /// <param name="i_device"></param>
+        public override void InitControl(CommonDevice i_device)
+        {
+            base.InitControl(i_device);
+
+            //娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
+            this.AddDetailInfoEvent(i_device);
+
+            //娣诲姞寮�鍏虫帶浠�
+            var btnSwitch = this.AddSwitchControl();
+            btnSwitch.ButtonClickEvent += (sender, e) =>
+            {
+                bool setStatu = !btnSwitch.IsSelected;
+                //鍙樻洿鍗$墖鐘舵��
+                this.SetRowOpenStatu(setStatu);
+                //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅
+                this.StartCheckResponeResult(!setStatu);
+
+                if (setStatu == true)
+                {
+                    //鎵撳紑
+                    this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1));
+                    (i_device as AC).Open();
+                }
+                else
+                {
+                    //鍏抽棴
+                    this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.Close));
+                    (i_device as AC).Close();
+                }
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 娣卞害鍗$墖淇℃伅_______________________
+
+        /// <summary>
+        /// 娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
+        /// </summary>
+        private void AddDetailInfoEvent(CommonDevice i_device)
+        {
+            //娣卞害鍗$墖淇℃伅
+            this.frameTable.ButtonClickEvent += (sender, e) =>
+            {
+                var acControl = new Phone.Device.AC.ACControl();
+                UserView.HomePage.Instance.AddChidren(acControl);
+                UserView.HomePage.Instance.PageIndex += 1;
+                UserView.HomePage.Instance.ScrollEnabled = false;
+                acControl.Show(i_device, UserCenter.HdlRoomLogic.Current.CurrentRoom);
+                acControl.action += this.CardDetailInfoBackEvent;
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 妫�娴嬭澶囨墦寮�鐘舵�乢__________________
+
+        /// <summary>
+        /// 妫�娴嬭澶囨墦寮�鐘舵��
+        /// </summary>
+        /// <param name="i_device"></param>
+        /// <returns></returns>
+        public override bool CheckIsOpenStatu(CommonDevice i_device)
+        {
+            return ((AC)i_device).currentSystemMode != 0;
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佽幏鍙栫姸鎬佸懡浠__________________
+
+        /// <summary>
+        /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
+        /// </summary>
+        public override void SendStatuComand()
+        {
+            //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+            if (this.CheckCanSendStatuComand() == true)
+            {
+                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendACStatuComand(this.device);
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAirSwitchRowControl.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAirSwitchRowControl.cs
new file mode 100755
index 0000000..8577c0e
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceAirSwitchRowControl.cs
@@ -0,0 +1,111 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.Category.Controls
+{
+    /// <summary>
+    /// 鍒嗙被鐣岄潰鐨勭┖姘斿紑鍏宠澶囪鎺т欢
+    /// </summary>
+    public class DeviceAirSwitchRowControl : DeviceRowCommon
+    {
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍒嗙被鐣岄潰鐨勭┖姘斿紑鍏宠澶囪鎺т欢
+        /// </summary>
+        /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(鐪熷疄鍊�,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)</param>
+        public DeviceAirSwitchRowControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+        {
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�
+        /// </summary>
+        /// <param name="i_device"></param>
+        public override void InitControl(CommonDevice i_device)
+        {
+            base.InitControl(i_device);
+
+            //娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
+            this.AddDetailInfoEvent(i_device);
+
+            //娣诲姞寮�鍏虫帶浠�
+            var btnSwitch = this.AddSwitchControl();
+            btnSwitch.ButtonClickEvent += (sender, e) =>
+            {
+                bool setStatu = !btnSwitch.IsSelected;
+                //鍙樻洿鍗$墖鐘舵��
+                this.SetRowOpenStatu(setStatu);
+                //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅
+                this.StartCheckResponeResult(!setStatu);
+
+                if (setStatu == true)
+                {
+                    //鎵撳紑
+                    this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1));
+                    i_device.SwitchControl(1);
+                }
+                else
+                {
+                    //鍏抽棴
+                    this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.Close));
+                    i_device.SwitchControl(0);
+                }
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 娣卞害鍗$墖淇℃伅_______________________
+
+        /// <summary>
+        /// 娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
+        /// </summary>
+        private void AddDetailInfoEvent(CommonDevice i_device)
+        {
+            //娣卞害鍗$墖淇℃伅
+            this.frameTable.ButtonClickEvent += (sender, e) =>
+            {
+                var lightControl = new Device.Light.AirSwitchControl();
+                UserView.HomePage.Instance.AddChidren(lightControl);
+                UserView.HomePage.Instance.PageIndex += 1;
+                lightControl.Show(i_device, UserCenter.HdlRoomLogic.Current.CurrentRoom);
+                lightControl.action += this.CardDetailInfoBackEvent;
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 妫�娴嬭澶囨墦寮�鐘舵�乢__________________
+
+        /// <summary>
+        /// 妫�娴嬭澶囨墦寮�鐘舵��
+        /// </summary>
+        /// <param name="i_device"></param>
+        /// <returns></returns>
+        public override bool CheckIsOpenStatu(CommonDevice i_device)
+        {
+            return ((LightBase)i_device).OnOffStatus == 1;
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佽幏鍙栫姸鎬佸懡浠__________________
+
+        /// <summary>
+        /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
+        /// </summary>
+        public override void SendStatuComand()
+        {
+            //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+            if (this.CheckCanSendStatuComand() == true)
+            {
+                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendLightStatuComand(this.device);
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceColorLightRowControl.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceColorLightRowControl.cs
new file mode 100755
index 0000000..b1a3dad
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceColorLightRowControl.cs
@@ -0,0 +1,112 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.Category.Controls
+{
+    /// <summary>
+    /// 鍒嗙被鐣岄潰鐨勫僵鐏�(璋冨厜鍣�)璁惧琛屾帶浠�
+    /// </summary>
+    public class DeviceColorLightRowControl : DeviceRowCommon
+    {
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍒嗙被鐣岄潰鐨勫僵鐏�(璋冨厜鍣�)璁惧琛屾帶浠�
+        /// </summary>
+        /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(鐪熷疄鍊�,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)</param>
+        public DeviceColorLightRowControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+        {
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�
+        /// </summary>
+        /// <param name="i_device"></param>
+        public override void InitControl(CommonDevice i_device)
+        {
+            base.InitControl(i_device);
+
+            //娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
+            this.AddDetailInfoEvent(i_device);
+
+            //娣诲姞寮�鍏虫帶浠�
+            var btnSwitch = this.AddSwitchControl();
+            btnSwitch.ButtonClickEvent += (sender, e) =>
+            {
+                bool setStatu = !btnSwitch.IsSelected;
+                //鍙樻洿鍗$墖鐘舵��
+                this.SetRowOpenStatu(setStatu);
+                //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅
+                this.StartCheckResponeResult(!setStatu);
+
+                if (setStatu == true)
+                {
+                    //鎵撳紑
+                    this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1));
+                    i_device.SwitchControl(1);
+                }
+                else
+                {
+                    //鍏抽棴
+                    this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.Close));
+                    i_device.SwitchControl(0);
+                }
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 娣卞害鍗$墖淇℃伅_______________________
+
+        /// <summary>
+        /// 娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
+        /// </summary>
+        private void AddDetailInfoEvent(CommonDevice i_device)
+        {
+            //娣卞害鍗$墖淇℃伅
+            this.frameTable.ButtonClickEvent += (sender, e) =>
+            {
+                var dimmableLightControl = new Phone.Device.Light.DimmableLightControl();
+                UserView.HomePage.Instance.AddChidren(dimmableLightControl);
+                UserView.HomePage.Instance.PageIndex += 1;
+                UserView.HomePage.Instance.ScrollEnabled = false;
+                dimmableLightControl.Show(i_device, UserCenter.HdlRoomLogic.Current.CurrentRoom);
+                dimmableLightControl.action += this.CardDetailInfoBackEvent;
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 妫�娴嬭澶囨墦寮�鐘舵�乢__________________
+
+        /// <summary>
+        /// 妫�娴嬭澶囨墦寮�鐘舵��
+        /// </summary>
+        /// <param name="i_device"></param>
+        /// <returns></returns>
+        public override bool CheckIsOpenStatu(CommonDevice i_device)
+        {
+            return ((LightBase)i_device).OnOffStatus == 1;
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佽幏鍙栫姸鎬佸懡浠__________________
+
+        /// <summary>
+        /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
+        /// </summary>
+        public override void SendStatuComand()
+        {
+            //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+            if (this.CheckCanSendStatuComand() == true)
+            {
+                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendLightStatuComand(this.device);
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceCurtainRowControl.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceCurtainRowControl.cs
new file mode 100755
index 0000000..ef83e6e
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceCurtainRowControl.cs
@@ -0,0 +1,204 @@
+锘縰sing Shared.Phone.UserCenter;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.Category.Controls
+{
+    /// <summary>
+    /// 鍒嗙被鐣岄潰鐨勭獥甯樿澶囪鎺т欢
+    /// </summary>
+    public class DeviceCurtainRowControl : DeviceRowCommon
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鎵撳紑鎺т欢
+        /// </summary>
+        private MostRightIconControl btnOpen = null;
+        /// <summary>
+        /// 鍋滄鎺т欢
+        /// </summary>
+        private MostRightIconControl btnStop = null;
+        /// <summary>
+        /// 鍏抽棴鎺т欢
+        /// </summary>
+        private MostRightIconControl btnClose = null;
+        /// <summary>
+        /// 绐楀笜绫诲瀷 4锛氬紑鍚堝笜 0锛氬嵎甯�
+        /// </summary>
+        private int WcdType = -2;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍒嗙被鐣岄潰鐨勭獥甯樿澶囪鎺т欢
+        /// </summary>
+        /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(鐪熷疄鍊�,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)</param>
+        public DeviceCurtainRowControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+        {
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�
+        /// </summary>
+        /// <param name="i_device"></param>
+        public override void InitControl(CommonDevice i_device)
+        {
+            base.InitControl(i_device);
+
+            //娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
+            this.AddDetailInfoEvent(i_device);
+
+            //鎵撳紑鎺т欢
+            this.btnOpen = new MostRightIconControl(69, 69);
+            btnOpen.btnIcon.UseClickStatu = true;
+            this.frameTable.AddChidren(btnOpen, ChidrenBindMode.NotBind);
+            btnOpen.InitControl();
+            btnOpen.X = Application.GetRealWidth(625) - btnOpen.XOffset;
+            btnOpen.ButtonClickEvent += (sender, e) =>
+            {
+                ((Rollershade)i_device).CurtainUpDownStopControl(0);
+            };
+
+            //鍋滄鎺т欢
+            this.btnStop = new MostRightIconControl(69, 69);
+            btnStop.btnIcon.UseClickStatu = true;
+            btnStop.UnSelectedImagePath = "RollerShade/Stop.png";
+            btnStop.SelectedImagePath = "RollerShade/StopSelected.png";
+            this.frameTable.AddChidren(btnStop, ChidrenBindMode.NotBind);
+            btnStop.InitControl();
+            btnStop.X = Application.GetRealWidth(769) - btnOpen.XOffset;
+            btnStop.ButtonClickEvent += (sender, e) =>
+            {
+                ((Rollershade)i_device).CurtainUpDownStopControl(2);
+            };
+
+            //鍏抽棴
+            this.btnClose = new MostRightIconControl(69, 69);
+            btnClose.btnIcon.UseClickStatu = true;
+            this.frameTable.AddChidren(btnClose, ChidrenBindMode.NotBind);
+            btnClose.InitControl();
+            btnClose.X = Application.GetRealWidth(896) - btnOpen.XOffset;
+            btnClose.ButtonClickEvent += (sender, e) =>
+            {
+                ((Rollershade)i_device).CurtainUpDownStopControl(1);
+            };
+
+            //鍒锋柊鍥炬爣鎺т欢鐨勫浘鏍�
+            this.RefreshIconControlImage(i_device);
+        }
+
+        #endregion
+
+        #region 鈻� 娣卞害鍗$墖淇℃伅_______________________
+
+        /// <summary>
+        /// 娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
+        /// </summary>
+        private void AddDetailInfoEvent(CommonDevice i_device)
+        {
+            //娣卞害鍗$墖淇℃伅
+            this.frameTable.ButtonClickEvent += (sender, e) =>
+            {
+                var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl();
+                UserView.HomePage.Instance.AddChidren(rollerShadeControl);
+                UserView.HomePage.Instance.PageIndex += 1;
+                UserView.HomePage.Instance.ScrollEnabled = false;
+                rollerShadeControl.Show(i_device, UserCenter.HdlRoomLogic.Current.CurrentRoom);
+                rollerShadeControl.action += this.CardDetailInfoBackEvent;
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 妫�娴嬭澶囨墦寮�鐘舵�乢__________________
+
+        /// <summary>
+        /// 妫�娴嬭澶囨墦寮�鐘舵��
+        /// </summary>
+        /// <param name="i_device"></param>
+        /// <returns></returns>
+        public override bool CheckIsOpenStatu(CommonDevice i_device)
+        {
+            return ((Rollershade)i_device).WcdCurrentPositionLiftPercentage > 10;
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佽幏鍙栫姸鎬佸懡浠__________________
+
+        /// <summary>
+        /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
+        /// </summary>
+        public override void SendStatuComand()
+        {
+            //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+            if (this.CheckCanSendStatuComand() == true)
+            {
+                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(this.device);
+            }
+            if (((Rollershade)this.device).WcdType == -1)
+            {
+                //璇诲彇绐楀笜绫诲瀷
+                ((Rollershade)this.device).ReadWcdType();
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鍒锋柊鎺т欢鐘舵�乢______________________
+
+        /// <summary>
+        /// 鍒锋柊鎺т欢鐘舵��
+        /// </summary>
+        /// <param name="i_device"></param>
+        public override void RefreshControlInfo(CommonDevice i_device)
+        {
+            //鍒锋柊鍥炬爣鎺т欢鐨勫浘鏍�
+            this.RefreshIconControlImage(i_device);
+
+            base.RefreshControlInfo(i_device);
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 鍒锋柊鍥炬爣鎺т欢鐨勫浘鏍�
+        /// </summary>
+        /// <param name="i_device"></param>
+        private void RefreshIconControlImage(CommonDevice i_device)
+        {
+            //杩樻病鏈夊垵濮嬪寲瀹屾垚
+            if (btnOpen == null) { return; }
+
+            int wcdType = ((Rollershade)i_device).WcdType;
+            if (this.WcdType == wcdType)
+            {
+                //鏃犻渶鍙樻洿
+                return;
+            }
+            if (this.WcdType == 0)
+            {
+                btnOpen.UnSelectedImagePath = "RollerShade/Up.png";
+                btnOpen.SelectedImagePath = "RollerShade/UpSelected.png";
+                btnClose.UnSelectedImagePath = "RollerShade/Down.png";
+                btnClose.SelectedImagePath = "RollerShade/DownSelected.png";
+            }
+            else
+            {
+                btnOpen.UnSelectedImagePath = "RollerShade/Open.png";
+                btnOpen.SelectedImagePath = "RollerShade/OpenSelected.png";
+                btnClose.UnSelectedImagePath = "RollerShade/Close.png";
+                btnClose.SelectedImagePath = "RollerShade/CloseSelected.png";
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceDoorLockRowControl.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceDoorLockRowControl.cs
new file mode 100755
index 0000000..52175d5
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceDoorLockRowControl.cs
@@ -0,0 +1,66 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.Category.Controls
+{
+    /// <summary>
+    /// 鍒嗙被鐣岄潰鐨勯棬閿佽澶囪鎺т欢
+    /// </summary>
+    public class DeviceDoorLockRowControl : DeviceRowCommon
+    {
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍒嗙被鐣岄潰鐨勯棬閿佽澶囪鎺т欢
+        /// </summary>
+        /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(鐪熷疄鍊�,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)</param>
+        public DeviceDoorLockRowControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+        {
+            //闂ㄩ攣鏆傛椂娌℃湁鐘舵�佸姛鑳�
+            this.hadStatuFunction = false;
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�
+        /// </summary>
+        /// <param name="i_device"></param>
+        public override void InitControl(CommonDevice i_device)
+        {
+            base.InitControl(i_device);
+
+            //娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
+            this.AddDetailInfoEvent(i_device);
+        }
+
+        #endregion
+
+        #region 鈻� 娣卞害鍗$墖淇℃伅_______________________
+
+        /// <summary>
+        /// 娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
+        /// </summary>
+        private void AddDetailInfoEvent(CommonDevice i_device)
+        {
+            //娣卞害鍗$墖淇℃伅
+            this.frameTable.ButtonClickEvent += (sender, e) =>
+            {
+                var userDoorLockPage = new UserCenter.DoorLock.UserDoorLockPage(UserCenter.HdlRoomLogic.Current.CurrentRoom, i_device);
+                UserView.HomePage.Instance.AddChidren(userDoorLockPage);
+                UserView.HomePage.Instance.PageIndex += 1;
+                userDoorLockPage.Show();
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 妫�娴嬭澶囨墦寮�鐘舵�乢__________________
+
+        #endregion
+
+        #region 鈻� 鍙戦�佽幏鍙栫姸鎬佸懡浠__________________
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceRelayRowControl.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceRelayRowControl.cs
new file mode 100755
index 0000000..30bc99c
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceRelayRowControl.cs
@@ -0,0 +1,111 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.Category.Controls
+{
+    /// <summary>
+    /// 鍒嗙被鐣岄潰鐨勭户鐢靛櫒璁惧琛屾帶浠�
+    /// </summary>
+    public class DeviceRelayRowControl : DeviceRowCommon
+    {
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍒嗙被鐣岄潰鐨勭户鐢靛櫒璁惧琛屾帶浠�
+        /// </summary>
+        /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(鐪熷疄鍊�,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)</param>
+        public DeviceRelayRowControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+        {
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�
+        /// </summary>
+        /// <param name="i_device"></param>
+        public override void InitControl(CommonDevice i_device)
+        {
+            base.InitControl(i_device);
+
+            //娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
+            this.AddDetailInfoEvent(i_device);
+
+            //娣诲姞寮�鍏虫帶浠�
+            var btnSwitch = this.AddSwitchControl();
+            btnSwitch.ButtonClickEvent += (sender, e) =>
+            {
+                bool setStatu = !btnSwitch.IsSelected;
+                //鍙樻洿鍗$墖鐘舵��
+                this.SetRowOpenStatu(setStatu);
+                //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅
+                this.StartCheckResponeResult(!setStatu);
+
+                if (setStatu == true)
+                {
+                    //鎵撳紑
+                    this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1));
+                    i_device.SwitchControl(1);
+                }
+                else
+                {
+                    //鍏抽棴
+                    this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.Close));
+                    i_device.SwitchControl(0);
+                }
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 娣卞害鍗$墖淇℃伅_______________________
+
+        /// <summary>
+        /// 娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
+        /// </summary>
+        private void AddDetailInfoEvent(CommonDevice i_device)
+        {
+            //娣卞害鍗$墖淇℃伅
+            this.frameTable.ButtonClickEvent += (sender, e) =>
+            {
+                var lightControl = new Phone.Device.Light.OnOffControl();
+                UserView.HomePage.Instance.AddChidren(lightControl);
+                UserView.HomePage.Instance.PageIndex += 1;
+                lightControl.Show(i_device, UserCenter.HdlRoomLogic.Current.CurrentRoom);
+                lightControl.action += this.CardDetailInfoBackEvent;
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 妫�娴嬭澶囨墦寮�鐘舵�乢__________________
+
+        /// <summary>
+        /// 妫�娴嬭澶囨墦寮�鐘舵��
+        /// </summary>
+        /// <param name="i_device"></param>
+        /// <returns></returns>
+        public override bool CheckIsOpenStatu(CommonDevice i_device)
+        {
+            return ((LightBase)i_device).OnOffStatus == 1;
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佽幏鍙栫姸鎬佸懡浠__________________
+
+        /// <summary>
+        /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
+        /// </summary>
+        public override void SendStatuComand()
+        {
+            //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+            if (this.CheckCanSendStatuComand() == true)
+            {
+                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendLightStatuComand(this.device);
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceSensorRowControl.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceSensorRowControl.cs
new file mode 100755
index 0000000..ef2d347
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceSensorRowControl.cs
@@ -0,0 +1,25 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.Category.Controls
+{
+    /// <summary>
+    /// 鍒嗙被鐣岄潰鐨勪紶鎰熷櫒璁惧琛屾帶浠�
+    /// </summary>
+    public class DeviceSensorRowControl : DeviceRowCommon
+    {
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍒嗙被鐣岄潰鐨勪紶鎰熷櫒璁惧琛屾帶浠�
+        /// </summary>
+        /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(鐪熷疄鍊�,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)</param>
+        public DeviceSensorRowControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+        {
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceTemperatureRowControl.cs b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceTemperatureRowControl.cs
new file mode 100755
index 0000000..ac16b4d
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Category/Controls/DeviceRow/DeviceTemperatureRowControl.cs
@@ -0,0 +1,41 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.Category.Controls
+{
+    /// <summary>
+    /// 鍒嗙被鐣岄潰鐨勬俯婀垮害浼犳劅鍣ㄨ澶囪鎺т欢
+    /// </summary>
+    public class DeviceTemperatureRowControl : DeviceRowCommon
+    {
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍒嗙被鐣岄潰鐨勬俯婀垮害浼犳劅鍣ㄨ澶囪鎺т欢
+        /// </summary>
+        /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(鐪熷疄鍊�,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)</param>
+        public DeviceTemperatureRowControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+        {
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佽幏鍙栫姸鎬佸懡浠__________________
+
+        /// <summary>
+        /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
+        /// </summary>
+        public override void SendStatuComand()
+        {
+            //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+            if (this.CheckCanSendStatuComand() == true)
+            {
+                (this.device as TemperatureSensor).ReadTemperatureOrHumidity();
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/CommonForm/EditorCommonForm.cs b/ZigbeeApp/Shared/Phone/CommonForm/EditorCommonForm.cs
index 3d4ef08..cc8fe56 100755
--- a/ZigbeeApp/Shared/Phone/CommonForm/EditorCommonForm.cs
+++ b/ZigbeeApp/Shared/Phone/CommonForm/EditorCommonForm.cs
@@ -134,7 +134,7 @@
             txttitle.Name = "txtTitle";
             txttitle.TextSize = 17;
             txttitle.X = Application.GetRealWidth(161);
-            txttitle.Height = Application.GetRealHeight(69);
+            txttitle.Height = Application.GetRealHeight(75);
             txttitle.Width = Application.GetRealWidth(850);
             txttitle.Gravity = Gravity.CenterVertical;
             txttitle.TextColor = UserCenterColor.Current.TopLayoutTitleText;
@@ -408,6 +408,16 @@
             back?.RemoveFromParent();
         }
 
+        /// <summary>
+        /// 鑾峰彇杩斿洖閿�
+        /// </summary>
+        public BackViewControl GetBackButton()
+        {
+            //绉婚櫎杩斿洖閿�
+            var back = (BackViewControl)topFrameLayout.GetTagByKey("btnBack");
+            return back;
+        }
+
         #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/AC/ACControl.cs b/ZigbeeApp/Shared/Phone/Device/AC/ACControl.cs
index f2442bc..04908bc 100755
--- a/ZigbeeApp/Shared/Phone/Device/AC/ACControl.cs
+++ b/ZigbeeApp/Shared/Phone/Device/AC/ACControl.cs
@@ -125,15 +125,7 @@
         #endregion
 
         #region 鈼� 鎺ュ彛___________________________
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
 
-        }
         /// <summary>
         /// 璁惧鐘舵�佹洿鏂版帴鍙�
         /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para>
@@ -313,22 +305,7 @@
                 });
             }
         }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-            //throw new NotImplementedException();
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-            //throw new NotImplementedException();
-        }
+
         #endregion
 
         #region 鈼� 鏋勯�犳柟娉昣_______________________
diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
index 32de9d4..a770748 100644
--- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -126,30 +126,7 @@
         #endregion
 
         #region 鈼� 鎺ュ彛____________________________
-        /// <summary>
-        /// 璇ユ帴鍙e皢寮冪敤 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
 
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-
-        }
         /// <summary>
         /// 璁惧鐘舵�佹洿鏂版帴鍙�
         /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para>
@@ -1958,11 +1935,11 @@
                 functionSceneBodyView.AddChidren(sceneScrolView);
                 foreach (var scene in sceneList)
                 {
-                    var sceneView = new SceneCategoryView(0, 0);
+                    var sceneView = new SceneCategoryView();
                     sceneScrolView.AddChidren(sceneView);
-                    sceneView.Init(scene, room);
-                    GetDelayScene(sceneScrolView);
-                }
+                    sceneView.InitControl(scene, room);
+                }
+                GetDelayScene(sceneScrolView);
             }
         }
 
@@ -2017,6 +1994,10 @@
             for (int i = 0; scrolViewLayout != null && i < scrolViewLayout.ChildrenCount; i++)
             {
                 var sceneView = scrolViewLayout.GetChildren(i) as SceneCategoryView;
+                if (sceneView == null)
+                {
+                    continue;
+                }
                 foreach (var delayScenesListResponseInfo in delayList)
                 {
                     if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id)
@@ -2024,21 +2005,26 @@
                         sceneView.scene.RemainTime = delayScenesListResponseInfo.RemainTime;
                         var remainTime = delayScenesListResponseInfo.RemainTime;
                         if (remainTime > 0)
-                        {
+                        {
+                            //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
+                            HdlSceneLogic.Current.StartDelayTimeThread(sceneView.scene);
                             new System.Threading.Thread(() =>
                             {
-                                while (remainTime-- > 0)
+                                while (remainTime > 0 && this.Parent != null)
                                 {
                                     System.Threading.Thread.Sleep(1000);
                                     Application.RunOnMainThread(() =>
                                     {
                                         sceneView.SetTimeText(CommonFormResouce.GetTimeString(remainTime));
                                     });
+                                    remainTime--;
                                 }
                                 Application.RunOnMainThread(() =>
                                 {
-                                    sceneView.scene.RemainTime = 0;
-                                    sceneView.SetTimeImage();
+                                    if (this.Parent != null)
+                                    {
+                                        sceneView.SetTimeImage();
+                                    }
                                 });
                             })
                             { IsBackground = true }.Start();
@@ -2047,32 +2033,19 @@
                     }
                 }
             }
-        }
-
-        /// <summary>
-        /// GetExecScene
-        /// </summary>
-        /// <param name="scrolViewLayout"></param>
-        private void GetExecScene(VerticalScrolViewLayout scrolViewLayout)
-        {
-            new System.Threading.Thread(() =>
-            {
-
-            })
-            { IsBackground = true }.Start();
-        }
+        }
+
         #endregion
-
+
         #region 鈼� 鑷姩鍖朹_________________________
-
+
         /// <summary>
         /// 鑷姩鍖栧姛鑳戒唬鐮佸叆鍙�
         /// </summary>
         private void ShowAutotion()
-        {
-            // functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
-            #region   ---鎺ㄨ崘妯℃澘鐨勭粍浠�
-            //鎺ㄨ崘妯℃澘鑳屾櫙鎺т欢
+        {
+            // functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+
             var bjFrameLayout = new FrameLayout
             {
                 Width = Application.GetRealWidth(1080 - 58),
@@ -2244,6 +2217,16 @@
                 //鍏抽棴鍒锋柊View锛�
                 logicScrolView.EndHeaderRefreshing();
             };
+            logicScrolView.BeginHeaderRefreshingAction += () =>
+            {
+                //閲嶆柊鍒锋柊logic鍒楄〃
+                Common.Logic.LogicList.Clear();
+                Read(logicScrolView, no);
+                //鍏抽棴鍒锋柊View锛�
+                logicScrolView.EndHeaderRefreshing();
+            };
+
+            Read(logicScrolView, no);
 
             Read(logicScrolView, no);
 
@@ -2334,7 +2317,7 @@
                     refresview.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                 }
             }
-          
+
             foreach (var logic in Common.Logic.LogicList)
             {
                 var fLayout = new FrameLayout
@@ -2448,7 +2431,6 @@
                             Logic.Send.DelLogic(logic.LogicId);
                         }
                     };
-                    alert.Show();
 
                 };
                 var line = new Button
@@ -2688,10 +2670,10 @@
             {
                 commonDeviceList.Add(common);
             }
-        }
-
+        }
+
         #endregion
-
-   
+
+
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/CommonFormResouce.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/CommonFormResouce.cs
index cb59ba2..2addb77 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/CommonFormResouce.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/CommonFormResouce.cs
@@ -54,13 +54,13 @@
         /// </summary>
         public const int TopFrameLayout_Height = 184;
         /// <summary>
-        /// topview 鐘舵�佹爮楂樺害 60
+        /// topview 鐘舵�佹爮楂樺害 74
         /// </summary>
-        public const int TopStatuFrameLayout_Height = 60;
+        public const int TopStatuFrameLayout_Height = 74;
         /// <summary>
-        /// topview 鐘舵�佹爮楂樺害 124
+        /// topview 鐘舵�佹爮楂樺害 110
         /// </summary>
-        public const int Topview_Height = 124;
+        public const int Topview_Height = 110;
 
         /// <summary>
         /// 鏍囬澶у皬 17
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs
index f1d948a..61ad11a 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/RoomView.cs
@@ -13,10 +13,6 @@
         /// Room
         /// </summary>
         private Common.Room room;
-        /// <summary>
-        /// action
-        /// </summary>
-        public Action action;
 
         FrameLayout roomNameBackground;
 
@@ -33,31 +29,7 @@
         CommonDevice humidDevice;
 
         #region 鈼� 鎺ュ彛__________________________
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
 
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-            //throw new NotImplementedException();
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-            //throw new NotImplementedException();
-        }
         /// <summary>
         /// 璁惧鐘舵�佹洿鏂版帴鍙�
         /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para>
@@ -180,11 +152,13 @@
         /// <param name="r"></param>
         public void Init(Common.Room r)
         {
+            this.RemoveAll();
+
             this.room = r;
 
-            this.temperDevice= Common.LocalDevice.Current.GetDevice(room.TemperatrueDevice);
+            this.temperDevice = Common.LocalDevice.Current.GetDevice(room.TemperatrueDevice);
 
-            this.humidDevice= Common.LocalDevice.Current.GetDevice(room.HumidityDevice);
+            this.humidDevice = Common.LocalDevice.Current.GetDevice(room.HumidityDevice);
 
             var roomBackView = new FrameLayout()
             {
@@ -327,7 +301,8 @@
                 form.AddForm(room);
                 form.FinishEditorEvent += (roomName2) =>
                 {
-                    action?.Invoke();
+                    //閲嶆柊鍒锋柊鎺т欢
+                    this.Init(this.room);
                 };
             };
         }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
index d8341ed..f94a50e 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
@@ -6,8 +6,10 @@
 
 namespace Shared.Phone.Device.CommonForm
 {
-    public class SceneCategoryView : FrameLayout
-    {
+    public class SceneCategoryView : RowLayout
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
         /// <summary>
         /// scene
         /// </summary>
@@ -15,174 +17,121 @@
         /// <summary>
         /// room
         /// </summary>
-        public Shared.Common.Room room;
+        private Common.Room room;
         /// <summary>
-        /// delayTimeBtn
+        /// 寤舵椂鏃堕棿
         /// </summary>
-        private Button delayTimeBtn;
+        private NormalViewControl btnDelayTime;
         /// <summary>
-        /// delayImgBtn
+        /// 寤舵椂鍥炬爣
         /// </summary>
-        private Button delayImgBtn;
-        /// <summary>
-        /// sceneImg
-        /// </summary>
-        private ImageView sceneImg;
-
+        private IconViewControl btnDelayIcon;
+        /// <summary>
+        /// 鍦烘櫙鍥剧墖鎺т欢
+        /// </summary>
+        private ScenePictrueControl sceneContr = null;
+        /// <summary>
+        /// 鏄惁宸茬粡瀹屾垚鎺т欢鍒濆鍖栫粨鏉�
+        /// </summary>
+        private bool isInitControlFinish = false;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
         /// <summary>
         /// SceneCategoryView
         /// </summary>
-        /// <param name="x"></param>
-        /// <param name="y"></param>
-        public SceneCategoryView(int x, int y)
+        public SceneCategoryView()
         {
-            X = Application.GetRealWidth(x);
-            Y = Application.GetRealHeight(y);
-            Width = Application.GetRealWidth(1080);
-            Height = Application.GetRealHeight(397 + 46);
-            BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
-        }
-
-        /// <summary>
-        /// init
-        /// </summary>
-        public void Init(SceneUI sceneUI,Common.Room curRoom)
-        {
-            this.scene = sceneUI;
-            this.room = curRoom;
-
-            InitFrame();
-        }
-
-        /// <summary>
-        /// InitFrame
-        /// </summary>
-        private void InitFrame()
-        {
-            RemoveAll();
-            var sceneRowLayout = new RowLayout
-            {
-                Height = Application.GetRealHeight(440),
-                LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
-                Tag = scene
+            this.Width = Application.GetRealWidth(1080);
+            this.Height = Application.GetRealHeight(397 + 46);
+            this.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
+            this.IsUseSameSubViewWidth = false;
+        }
+
+        /// <summary>
+        /// 鍒濆鍖�
+        /// </summary>
+        /// <param name="i_scene"></param>
+        public void InitControl(SceneUI i_scene, Common.Room i_room)
+        {
+            this.RemoveAll();
+
+            this.LineColor = UserCenterColor.Current.Transparent;
+
+            this.scene = i_scene;
+            this.room = i_room;
+
+            //鑷畾涔夌殑鍦烘櫙鍥剧墖鎺т欢
+            this.sceneContr = new ScenePictrueControl();
+            this.AddChidren(sceneContr);
+            sceneContr.InitControl(this.scene);
+
+            //鍦烘櫙鐐瑰嚮
+            sceneContr.ButtonClickEvent += (sender, e) =>
+            {
+                this.SceneUpHandler();
             };
-            AddChidren(sceneRowLayout);
 
-            sceneImg = new ImageView()
-            {
-                X = Application.GetRealWidth(179),
-                Width = Application.GetRealWidth(844),
-                Height = Application.GetRealHeight(397),
-                ImagePath = scene.IconPathType == 0 ? scene.IconPath : System.IO.Path.Combine(Config.Instance.FullPath, scene.IconPath),
-                Radius = (uint)Application.GetRealHeight(17)
-            };
-            sceneRowLayout.AddChidren(sceneImg);
-            //闃村奖
-            var btnShadow = new PicViewControl(sceneImg.Width + Application.GetRealWidth(14 * 2), sceneImg.Height + Application.GetRealHeight(43), false);
-            btnShadow.X = sceneImg.X - Application.GetRealWidth(14);
-            btnShadow.UnSelectedImagePath = "Scene/SceneShadow.png";
-            sceneRowLayout.AddChidren(btnShadow);
-            btnShadow.ButtonClickEvent += this.SceneUpHandler;
-
-            var leftFL = new FrameLayout
-            {
-                X = Application.GetRealWidth(CommonFormResouce.X_Left),
-                Y = Application.GetRealHeight(58),
-                Width = Application.GetRealWidth(251),
-                Height = Application.GetRealHeight(282),
-                BackgroundColor = 0xd6333333,
-                Radius = (uint)Application.GetRealHeight(17)
-            };
-            sceneRowLayout.AddChidren(leftFL);
-
-            var collectionBtn = new Button
-            {
-                X = Application.GetRealWidth(23),
-                Y = Application.GetRealHeight(23),
-                Width = Application.GetMinRealAverage(65),
-                Height = Application.GetMinRealAverage(65),
-                UnSelectedImagePath = "Item/Collection.png",
-                SelectedImagePath = "Item/CollectionSelected.png",
-                IsSelected = HdlRoomLogic.Current.IsCollectInRoom(scene),
-                Tag = scene
-            };
-            leftFL.AddChidren(collectionBtn);
-
-            var sceneNameBtn = new Button()
-            {
-                Width = Application.GetRealWidth(176),
-                Height = Application.GetRealHeight(150),
-                TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
-                Text = scene.Name,
-                Gravity = Gravity.Center,
-                IsMoreLines = true
-            };
-            leftFL.AddChidren(sceneNameBtn);
-
-            var collection = new Button
-            {
-                Tag = scene
-            };
-            leftFL.AddChidren(collection);
-            collection.MouseUpEventHandler += (sender, e) =>
-            {
+            //鏀惰棌
+            sceneContr.AddCollectionControl();
+            sceneContr.CollectEvent += (collect) =>
+            {
                 if (room.IsLove)
                 {
-                    HdlSceneLogic.Current.DeleteScene(HdlRoomLogic.Current.GetLoveRoom(), scene);
-                    RemoveViewByTag(collectionBtn.Tag);
-                }
-                else
-                {
-                    collectionBtn.IsSelected = !collectionBtn.IsSelected;
-                    if (collectionBtn.IsSelected)
-                    {
-                        HdlSceneLogic.Current.AddScene(HdlRoomLogic.Current.GetLoveRoom(), scene);
-                    }
-                    else
-                    {
-                        HdlSceneLogic.Current.DeleteScene(HdlRoomLogic.Current.GetLoveRoom(), scene);
-                    }
-                }
+                    this.RemoveFromParent();
+                }
             };
 
-            delayTimeBtn = new Button
-            {
-                X = Application.GetRealWidth(780),
-                Y = Application.GetRealHeight(317),
-                Width = Application.GetRealWidth(200),
-                Height = Application.GetRealHeight(58),
-                Text = CommonFormResouce.GetTimeString(scene.SceneDelayTime),
-                TextAlignment = TextAlignment.CenterRight,
-                TextColor = ZigbeeColor.Current.GXCTextSelectedColor3
-            };
-            sceneRowLayout.AddChidren(delayTimeBtn);
+            //寤舵椂鏃堕棿
+            this.btnDelayTime = new NormalViewControl(200, 58, true);
+            btnDelayTime.X = Application.GetRealWidth(780);
+            btnDelayTime.Y = Application.GetRealHeight(317);
+            btnDelayTime.Text = CommonFormResouce.GetTimeString(scene.SceneDelayTime);
+            btnDelayTime.TextAlignment = TextAlignment.CenterRight;
+            btnDelayTime.TextColor = ZigbeeColor.Current.GXCTextSelectedColor3;
+            btnDelayTime.IsBold = true;
+            this.AddChidren(btnDelayTime);
 
-            delayImgBtn = new Button
-            {
-                X = Application.GetRealWidth(900),
-                Y = Application.GetRealHeight(30),
-                Width = Application.GetMinRealAverage(52),
-                Height = Application.GetMinRealAverage(52),
-                UnSelectedImagePath = "Scene/Delaying.png",
-                Visible=false
-            };
-            sceneRowLayout.AddChidren(delayImgBtn);
+            //寤舵椂鍥炬爣
+            this.btnDelayIcon = new IconViewControl(52);
+            btnDelayIcon.X = Application.GetRealWidth(900);
+            btnDelayIcon.Y = Application.GetRealHeight(30);
+            btnDelayIcon.Width = Application.GetMinRealAverage(52);
+            btnDelayIcon.Height = Application.GetMinRealAverage(52);
+            btnDelayIcon.UnSelectedImagePath = "Scene/Delaying.png";
+            this.AddChidren(btnDelayIcon);
+            btnDelayIcon.Visible = false;
 
-            sceneRowLayout.SubViewWidth = Application.GetRealWidth(199);
+            if (isInitControlFinish == true)
+            {
+                //缂栬緫鍦烘櫙鐨勫洖璋冨嚱鏁颁細閲嶆柊鍒锋柊鎺т欢
+                //鎵�浠ヨ繖閲屼笉鍐嶅垵濮嬪寲
+                return;
+            }
+            this.isInitControlFinish = true;
+
+            //娣诲姞宸﹁竟鐨勭┖鐧藉尯鍩�
+            var btnTemp1 = new NormalViewControl(Application.GetRealWidth(58), sceneContr.btnScenePic.Height, false);
+            this.AddLeftView(btnTemp1);
             //瀹氭椂
-            var btnDelay = new NormalViewControl(Application.GetRealWidth(199), sceneRowLayout.Height, false);
+            var btnDelay = new NormalViewControl(Application.GetRealWidth(199), sceneContr.btnScenePic.Height, false);
             btnDelay.BackgroundColor = ZigbeeColor.Current.GXCTextSelectedColor;
             btnDelay.TextID = R.MyInternationalizationString.Delay;
             btnDelay.TextColor = ZigbeeColor.Current.GXCTextWhiteColor;
             btnDelay.TextAlignment = TextAlignment.Center;
             btnDelay.Tag = scene.SceneDelayTime;
             btnDelay.Radius = (uint)Application.GetRealHeight(17);
-            sceneRowLayout.AddLeftView(btnDelay);
+            btnDelay.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight |
+                HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
+            this.AddLeftView(btnDelay);
             //鍙樻洿鎸夐挳鐨勯珮搴�
-            btnDelay.Height = sceneImg.Height;
+            btnDelay.Height = sceneContr.btnScenePic.Height;
+            btnDelay.Y = 0;
 
-             //缂栬緫
-             var btnEditor = new NormalViewControl(Application.GetRealWidth(199), sceneImg.Height, false);
+            //缂栬緫
+            var btnEditor = new NormalViewControl(Application.GetRealWidth(199), sceneContr.btnScenePic.Height, false);
             btnEditor.BackgroundColor = ZigbeeColor.Current.GXCEditBackGroundColor;
             btnEditor.TextID = R.MyInternationalizationString.Edit;
             btnEditor.TextColor = ZigbeeColor.Current.GXCTextWhiteColor;
@@ -191,22 +140,27 @@
             btnEditor.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerTopLeft);
 
             //鍒犻櫎
-            var btnDelete = new NormalViewControl(Application.GetRealWidth(199), sceneImg.Height, false);
+            var btnDelete = new NormalViewControl(Application.GetRealWidth(199), sceneContr.btnScenePic.Height, false);
             btnDelete.Tag = scene;
             btnDelete.BackgroundColor = ZigbeeColor.Current.GXCRedColor;
             btnDelete.TextID = R.MyInternationalizationString.Delete;
             btnDelete.TextColor = ZigbeeColor.Current.GXCTextWhiteColor;
             btnDelete.TextAlignment = TextAlignment.Center;
-            btnDelete.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight);
-            
+            btnDelete.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight);
+
             if (room.IsSharedRoom == false && room.IsLove == false)
             {
                 //涓嶆槸鍒嗕韩,骞朵笖涓嶆槸鏀惰棌
-                sceneRowLayout.AddRightView(btnEditor);
-                sceneRowLayout.AddRightView(btnDelete);
+                this.AddRightView(btnEditor);
+                this.AddRightView(btnDelete);
                 //鍙樻洿鎸夐挳鐨勯珮搴�
-                btnEditor.Height = sceneImg.Height;
-                btnDelete.Height = sceneImg.Height;
+                btnEditor.Height = sceneContr.btnScenePic.Height;
+                btnEditor.Y = 0;
+                btnDelete.Height = sceneContr.btnScenePic.Height;
+                btnDelete.Y = 0;
+                //娣诲姞鍙宠竟绌虹櫧鍖哄煙
+                var btnTemp2 = new NormalViewControl(Application.GetRealWidth(58), sceneContr.btnScenePic.Height, false);
+                this.AddRightView(btnTemp2);
             }
 
             //鍒犻櫎鍦烘櫙
@@ -253,6 +207,8 @@
             {
                 try
                 {
+                    //鍏抽棴宸︽粦鑿滃崟
+                    this.HideMenu();
                     var targetList = new List<SceneTargetDeviceUI> { };
                     CommonPage.Loading.Start();
                     //浠庣綉鍏充腑鍙嶅簭鍒楀寲鍑哄搴旂殑鎴块棿璁惧
@@ -261,8 +217,8 @@
                     {
                         CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheMainGatewayIsNotOnLine));
                         return;
-                    }
-                   
+                    }
+
                     if (sceneDeviceList.getSceneDeviceListInfo != null)
                     {
                         var deviceList = sceneDeviceList.getSceneDeviceListInfo.DeviceList;
@@ -339,6 +295,30 @@
                         }
                         else
                         {
+                            this.InitControl(s, r);
+                        }
+                    }
+                    else
+                    {
+                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain));
+                    }
+
+                    var sceneView = new CategoryAddScene();
+                    Phone.UserView.HomePage.Instance.AddChidren(sceneView);
+                    Phone.UserView.HomePage.Instance.PageIndex += 1;
+                    sceneView.isModify = true;
+                    sceneView.modifyRoom = room;
+                    sceneView.modifySceneUI = scene;
+                    sceneView.modifySceneTargetDevicesList = targetList;
+                    sceneView.Show();
+                    sceneView.EditorAction = (s, r) =>
+                    {
+                        if (r.Id != room.Id)
+                        {
+                            RemoveFromParent();
+                        }
+                        else
+                        {
                             Init(s, r);
                         }
                     };
@@ -366,63 +346,64 @@
                 timeSelect.Init();
                 timeSelect.TimeAction = (t) =>
                 {
+                    //闅愯棌鍙冲垝鑿滃崟
+                    this.HideMenu();
                     scene.SceneDelayTime = t;
-                    delayTimeBtn.Text = CommonFormResouce.GetTimeString(t);
+                    btnDelayTime.Text = CommonFormResouce.GetTimeString(t);
                 };
-            };
-        }
+            };
+        }
+
+        #endregion
 
-        /// <summary>
-        /// SceneUpHandler
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="args"></param>
-        private async void SceneUpHandler(object sender, MouseEventArgs args)
+        /// <summary>
+        ///
+        /// </summary>
+        /// <param name="btnScenePic"></param>
+        /// <param name="btnSceneName"></param>
+        private async void SceneUpHandler()
         {
-            if (scene.RemainTime > 0 && scene.SceneDelayTime == 0)
-            {
-                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneIsDelaying));
-                return;
+            if (scene.SceneDelayTime <= 0 && scene.RemainTime <= 0)
+            {
+                //濡傛灉娌℃湁寤惰繜鐨勮瘽,鐩存帴寮�鍚疞oading鐗规晥
+                this.StartLoadingApreal();
             }
-            //1鎴愬姛 0澶辫触
-            //鍚庨潰琛ヤ笂鐩稿叧鎻愮ず
-            // Error鍙傛暟鍚箟
-            //<para>1锛氱綉鍏虫棤娉曡В鏋愬懡浠ゆ暟鎹��</para>
-            //<para>2锛氬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁
-            //<para>3锛氭搷浣滆澶�/缁�/鍦烘櫙涓嶅瓨鍦�</para>
-            //<para>4锛氬叾浠栭敊璇�</para>
-            //<para>5锛氭暟鎹紶杈撻敊璇紙鍦ㄦ煇娆″鎴风鍚戠綉鍏冲彂閫佹暟鎹殑杩囩▼涓紝缃戝叧鍦ㄥ悎鐞嗘椂闂磋寖鍥村唴鎺ユ敹瀹㈡埛绔暟鎹笉瀹屾暣瀵艰嚧璇ラ敊璇彂鐢熴�傚瀹㈡埛绔悜缃戝叧涓�娆″彂閫�100涓瓧鑺傜殑鏁版嵁锛屼絾缃戝叧绛夊緟鎺ユ敹浜嗕竴绉掑彧鎺ユ敹浜�80涓瓧鑺傘�傚彂鐢熻閿欒锛岀綉鍏冲皢涓诲姩鍏抽棴瀹㈡埛绔繛鎺ワ級</para>
-            var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime);
-
-            if (sceneOpenAllData == null || sceneOpenAllData.sceneOpenData == null)
+            //璋冪敤鍦烘櫙
+            var result = await HdlSceneLogic.Current.ControlScene(scene);
+            if (result == false)
             {
                 return;
-            }
-            if (sceneOpenAllData.sceneOpenData.Result == 0)
-            {
-                if (sceneOpenAllData.errorResponData == null)
-                {
-                    return;
-                }
-                CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.ControlSceneFail));
             }
 
             scene.RemainTime = scene.SceneDelayTime;
             scene.SceneDelayTime = 0;
+            if (scene.RemainTime <= 0)
+            {
+                return;
+            }
+            int myRemainTime = scene.RemainTime;
+            //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
+            HdlSceneLogic.Current.StartDelayTimeThread(scene);
+
             new System.Threading.Thread(() =>
             {
-                while (scene.RemainTime > 0)
+                while (myRemainTime > 0 && this.Parent != null)
                 {
                     System.Threading.Thread.Sleep(1000);
                     Application.RunOnMainThread(() =>
                     {
                         SetTimeText(CommonFormResouce.GetTimeString(scene.RemainTime));
                     });
-                    scene.RemainTime -= 1;
+                    myRemainTime--;
                 }
                 Application.RunOnMainThread(() =>
                 {
-                    SetTimeImage();
+                    if (this.Parent != null)
+                    {
+                        SetTimeImage();
+                        //鐩存帴寮�鍚疞oading鐗规晥
+                        this.StartLoadingApreal();
+                    }
                 });
             })
             { IsBackground = true }.Start();
@@ -434,8 +415,8 @@
         /// <param name="name"></param>
         public void SetTimeText(string name)
         {
-            delayImgBtn.Visible = true;
-            delayTimeBtn.Text = name;
+            btnDelayIcon.Visible = true;
+            btnDelayTime.Text = name;
         }
 
         /// <summary>
@@ -443,8 +424,65 @@
         /// </summary>
         public void SetTimeImage()
         {
-            delayImgBtn.Visible = false;
-            delayTimeBtn.Text = string.Empty;
+            btnDelayIcon.Visible = false;
+            btnDelayTime.Text = string.Empty;
+        }
+
+        /// <summary>
+        /// 寮�鍚疞oading鐗规晥
+        /// </summary>
+        public void StartLoadingApreal()
+        {
+            //寮勪釜閬僵閬綇
+            var frameBack1 = new FrameLayout();
+            frameBack1.Y = sceneContr.btnScenePic.Y;
+            frameBack1.X = sceneContr.btnScenePic.X;
+            frameBack1.Width = sceneContr.btnScenePic.Width;
+            frameBack1.Height = sceneContr.btnScenePic.Height;
+            frameBack1.Radius = (uint)Application.GetRealHeight(17);
+            frameBack1.BackgroundColor = 0xb3000000;
+            this.AddChidren(frameBack1);
+
+            var frameBack2 = new FrameLayout();
+            frameBack2.Y = sceneContr.btnSceneName.Y;
+            frameBack2.X = sceneContr.btnSceneName.X;
+            frameBack2.Width = sceneContr.btnSceneName.Width;
+            frameBack2.Height = sceneContr.btnSceneName.Height;
+            frameBack2.Radius = (uint)Application.GetRealHeight(17);
+            frameBack2.BackgroundColor = 0xb3000000;
+            this.AddChidren(frameBack2);
+
+            //鍐嶅姞涓浆鍦堢殑
+            var loadContr = new MyProgressLoading();
+            loadContr.LoadingBackgroundColor = UserCenterColor.Current.Transparent;
+            frameBack1.AddChidren(loadContr);
+            loadContr.StartLoading(1000);
+            loadContr.DisponeEvent += () =>
+            {
+                frameBack1.RemoveFromParent();
+                frameBack2.RemoveFromParent();
+            };
+        }
+
+        /// <summary>
+        /// 鑷畾涔夋帶浠�(闇�瑕佺殑瀹冪Щ闄や簨浠�)
+        /// </summary>
+        private class MyProgressLoading : ProgressLoading
+        {
+            /// <summary>
+            /// 鎺т欢閿�姣佺殑浜嬩欢
+            /// </summary>
+            public Action DisponeEvent = null;
+            /// <summary>
+            /// 鎺т欢閿�姣�
+            /// </summary>
+            public override void RemoveFromParent()
+            {
+                base.RemoveFromParent();
+
+                this.DisponeEvent?.Invoke();
+                this.DisponeEvent = null;
+            }
         }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/TopFrameLayout.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/TopFrameLayout.cs
index a9624fe..9c161ec 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/TopFrameLayout.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/TopFrameLayout.cs
@@ -9,7 +9,7 @@
         /// <summary>
         /// 杩斿洖閿�
         /// </summary>
-        public BackButton backButton;
+        public UserCenter.BackViewControl backButton;
         /// <summary>
         /// 鐘舵�佹爮-楂樺害涓�80
         /// </summary>
@@ -88,8 +88,11 @@
         /// <returns>The back button.</returns>
         private void AddBackBtn()
         {
-            backButton = new BackButton { };
-            topView.AddChidren(backButton);
+            backButton = new UserCenter.BackViewControl();
+            topView.AddChidren(backButton);
+            backButton.InitControl();
+            //鍚庣画鍐嶈皟鏁�
+            backButton.Y = backButton.Y - Application.GetRealHeight(4);
         }
 
         #endregion
@@ -116,17 +119,16 @@
         /// 鏍囬
         /// </summary>
         private void AddTitle()
-        {
-            topTitle = new Button
-            {
-                X = Application.GetRealWidth(164),
-                Height = Application.GetRealHeight(CommonFormResouce.TopFrameLayout_Height - CommonFormResouce.TopStatuFrameLayout_Height),
-                Width = Application.GetRealWidth(CommonFormResouce.TopTitle_Width),
-                TextSize = CommonFormResouce.TopTitle_TextSize,
-                TextColor = ZigbeeColor.Current.GXCTitleBlackTitle,
-                TextAlignment = TextAlignment.CenterLeft,
-                IsBold = true,
-            };
+        {
+            topTitle = new Button();
+            topTitle.TextSize = 17;
+            topTitle.X = Application.GetRealWidth(161);
+            topTitle.Height = Application.GetRealHeight(75);
+            topTitle.Width = Application.GetRealWidth(850);
+            topTitle.Gravity = Gravity.CenterVertical;
+            topTitle.TextColor = UserCenter.UserCenterColor.Current.TopLayoutTitleText;
+            topTitle.TextAlignment = TextAlignment.CenterLeft;
+            topTitle.IsBold = true;
 
             topView.AddChidren(topTitle);
         }
diff --git a/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs b/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs
index ff4d23b..514f172 100755
--- a/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs
@@ -96,15 +96,7 @@
         #endregion
 
         #region 鈼� 鎺ュ彛___________________________
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
 
-        }
         /// <summary>
         /// 璁惧鐘舵�佹洿鏂版帴鍙�
         /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para>
@@ -206,22 +198,7 @@
                 });
             }
         }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-            //throw new NotImplementedException();
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-            //throw new NotImplementedException();
-        }
+
         #endregion
 
         #region 鈼� 鏋勯�犳柟娉昣_______________________
diff --git a/ZigbeeApp/Shared/Phone/Device/Light/AirSwitchControl.cs b/ZigbeeApp/Shared/Phone/Device/Light/AirSwitchControl.cs
index 7f279dc..80e09a6 100755
--- a/ZigbeeApp/Shared/Phone/Device/Light/AirSwitchControl.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Light/AirSwitchControl.cs
@@ -78,31 +78,7 @@
         #endregion
 
         #region 鈼� 鎺ュ彛__________________________
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
 
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-            //throw new NotImplementedException();
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-            //throw new NotImplementedException();
-        }
         /// <summary>
         /// 璁惧鐘舵�佹洿鏂版帴鍙�
         /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para>
diff --git a/ZigbeeApp/Shared/Phone/Device/Light/DimmableLightControl.cs b/ZigbeeApp/Shared/Phone/Device/Light/DimmableLightControl.cs
index c0f6072..381e64b 100755
--- a/ZigbeeApp/Shared/Phone/Device/Light/DimmableLightControl.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Light/DimmableLightControl.cs
@@ -79,31 +79,7 @@
         #endregion
 
         #region 鈼� 鎺ュ彛__________________________
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
 
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-            //throw new NotImplementedException();
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-            //throw new NotImplementedException();
-        }
         /// <summary>
         /// 璁惧鐘舵�佹洿鏂版帴鍙�
         /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para>
diff --git a/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs b/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs
index b08c627..504214d 100755
--- a/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs
@@ -70,31 +70,7 @@
         #endregion
 
         #region 鈼� 鎺ュ彛__________________________
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-            //throw new NotImplementedException();
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-            //throw new NotImplementedException();
-        }
+        
         /// <summary>
         /// 璁惧鐘舵�佹洿鏂版帴鍙�
         /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para>
diff --git a/ZigbeeApp/Shared/Phone/Device/Light/OnOffControl.cs b/ZigbeeApp/Shared/Phone/Device/Light/OnOffControl.cs
index 9baac28..bb3e05b 100755
--- a/ZigbeeApp/Shared/Phone/Device/Light/OnOffControl.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Light/OnOffControl.cs
@@ -78,31 +78,7 @@
         #endregion
 
         #region 鈼� 鎺ュ彛__________________________
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-            //throw new NotImplementedException();
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-            //throw new NotImplementedException();
-        }
+        
         /// <summary>
         /// 璁惧鐘舵�佹洿鏂版帴鍙�
         /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para>
diff --git a/ZigbeeApp/Shared/Phone/Device/Light/PlugControl.cs b/ZigbeeApp/Shared/Phone/Device/Light/PlugControl.cs
index 6ef1e93..50969c8 100755
--- a/ZigbeeApp/Shared/Phone/Device/Light/PlugControl.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Light/PlugControl.cs
@@ -71,31 +71,7 @@
         #endregion
 
         #region 鈼� 鎺ュ彛__________________________
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-            //throw new NotImplementedException();
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-            //throw new NotImplementedException();
-        }
+        
         /// <summary>
         /// 璁惧鐘舵�佹洿鏂版帴鍙�
         /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para>
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs
index 29cb893..8ac599e 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs
@@ -240,7 +240,7 @@
                     string state = "";
                     switch (linkType)
                     {
-                        
+
                         case 0:
                         case 8:
                             {
@@ -604,7 +604,7 @@
             Method.Push(middle);
             #endregion
 
-       
+
             saveBtn.clickviewBtn.MouseUpEventHandler += (sender, e) =>
            {
                var name = logicTextBox.Text.Trim();
@@ -619,7 +619,7 @@
             UserView.HomePage.Instance.AddChidren(addCondition);
             UserView.HomePage.Instance.PageIndex += 1;
             addCondition.Show();
-      
+
         }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/RoomAndDeviceView.cs b/ZigbeeApp/Shared/Phone/Device/Logic/RoomAndDeviceView.cs
index 5b5bf36..b98bc7c 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/RoomAndDeviceView.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/RoomAndDeviceView.cs
@@ -343,7 +343,7 @@
                     TextSize = 10,
                 };
                 deviceRowLayout.AddChidren(devicetypename);
-               
+
                 EventHandler<MouseEventArgs> devicetypeclick = (sender13, e13) =>
                 {
                     devicetypeButton.IsSelected = false;
@@ -458,6 +458,6 @@
                 devicename.MouseUpEventHandler += devicclick;
             }
         }
-        
+
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/Room/AddRoomSelectPicByLocal.cs b/ZigbeeApp/Shared/Phone/Device/Room/AddRoomSelectPicByLocal.cs
index 6a7e5bc..de1c241 100755
--- a/ZigbeeApp/Shared/Phone/Device/Room/AddRoomSelectPicByLocal.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Room/AddRoomSelectPicByLocal.cs
@@ -33,9 +33,10 @@
             };
             topView.AddChidren(title);
 
-            var back = new Device.CommonForm.BackButton() { };鈥�            topView.AddChidren(back);
+            var back = new UserCenter.BackViewControl();鈥�            topView.AddChidren(back);
+            back.InitControl();
 
-            back.MouseUpEventHandler += (sender, e) =>
+            back.ButtonClickEvent += (sender, e) =>
             {
                 this.RemoveFromParent();
             };
diff --git a/ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs b/ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs
index e5f57fc..5e7c293 100755
--- a/ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs
@@ -57,31 +57,7 @@
         #endregion
 
         #region 鈼� 鎺ュ彛__________________________
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
 
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-            //throw new NotImplementedException();
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-            //throw new NotImplementedException();
-        }
         /// <summary>
         /// 璁惧鐘舵�佹洿鏂版帴鍙�
         /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para>
diff --git a/ZigbeeApp/Shared/Phone/Login/AccountLogin.cs b/ZigbeeApp/Shared/Phone/Login/AccountLogin.cs
index 8027fc8..bf17f89 100644
--- a/ZigbeeApp/Shared/Phone/Login/AccountLogin.cs
+++ b/ZigbeeApp/Shared/Phone/Login/AccountLogin.cs
@@ -28,9 +28,13 @@
         /// </summary>
         private EmailLoginRowForm emailRow;
         /// <summary>
-        /// pwdRow
+        /// phonePwdRow
         /// </summary>
-        private PwdLoginRowForm pwdRow;
+        private PwdLoginRowForm phonePwdRow;
+        /// <summary>
+        /// emailPwdRow
+        /// </summary>
+        private PwdLoginRowForm emailPwdRow;
 
         /// <summary>
         /// 璐﹀彿瀵嗙爜fl
@@ -57,14 +61,6 @@
         /// </summary>
         private Button registerBtn;
         /// <summary>
-        /// 璐﹀彿
-        /// </summary>
-        private string account;
-        /// <summary>
-        /// 瀵嗙爜
-        /// </summary>
-        private string password;
-        /// <summary>
         /// wechat
         /// </summary>
         private Button wechatBtn;
@@ -72,7 +68,10 @@
         /// qq
         /// </summary>
         private Button qqBtn;
-
+        /// <summary>
+        /// 杈撳叆鐨勭櫥闄嗚处鍙�(閲嶆柊鐧婚檰鏃朵娇鐢�)
+        /// </summary>
+        private string oldInputAccount = string.Empty;
 
         #endregion
 
@@ -110,7 +109,7 @@
             }
             else
             {
-                LoginViewShow(account, password);
+                LoginViewShow(account);
             }
         }
 
@@ -118,11 +117,12 @@
         /// Logins the view show.
         /// </summary>
         /// <param name="account">Account.</param>
-        /// <param name="password">Password.</param>
-        public void LoginViewShow(string account = "", string password = "")
+        public void LoginViewShow(string account = "")
         {
-            this.account = account;
-            this.password = password;
+            //璁剧疆涓�涓嬪垵濮嬪��
+            if (account.Contains("@") == true) { this.oldInputAccount = account; }
+            else { this.oldInputAccount = account; }
+
             #region midFrameLayout
             midFrameLayout = new FrameLayout()
             {
@@ -229,8 +229,7 @@
                 SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonBlackSelectedColor,
                 BackgroundColor = ZigbeeColor.Current.GXCButtonUnSelectedColor,
                 Radius = (uint)Application.GetRealHeight(127 / 2),
-                Enable = !string.IsNullOrEmpty(pwdRow.PasswrodET?.Text),
-                IsSelected = !string.IsNullOrEmpty(pwdRow.PasswrodET?.Text),
+                Enable = false,
                 IsBold=true
             };
             midFrameLayout.AddChidren(loginBtn);
@@ -286,14 +285,9 @@
 
             BindEvent();
 
-            if (string.IsNullOrEmpty(account) == false && AccountLogic.Instance.CheckEmail(account) == true)
+            if (account.Contains("@") == true)
             {
                 SelectPhoneOrEmail_MouseUpEvent(phoneEmailForm.SelectedEmail, null);
-                this.account = string.Empty;
-            }
-            else
-            {
-                this.account = string.Empty;
             }
         }
 
@@ -336,11 +330,11 @@
         {
             if (phoneEmailForm.SelectedPhone.IsSelected)
             {
-                Login(phoneRow.AccountET.Text.Trim(), pwdRow.PasswrodET.Text.Trim());
+                Login(phoneRow.AccountET.Text.Trim(), phonePwdRow.PasswrodET.Text.Trim());
             }
             else
             {
-                Login(emailRow.AccountET.Text.Trim(), pwdRow.PasswrodET.Text.Trim());
+                Login(emailRow.AccountET.Text.Trim(), emailPwdRow.PasswrodET.Text.Trim());
             }
 
         }
@@ -351,124 +345,124 @@
         /// <param name="accountStr">Account.</param>
         /// <param name="passwordStr">Password.</param>
         private void Login(string accountStr, string passwordStr)
-        {
+        {
             //Application.RunOnMainThread( () =>
             //{
             Action action = async () =>
             {
                 try
                 {
-                    if(CheckAccount(accountStr)==false)
-                    {
-                        return;
-                    }
-
+                    if(CheckAccount(accountStr)==false)
+                    {
+                        return;
+                    }
+
                     CommonPage.Loading.Start(Language.StringByID(R.MyInternationalizationString.Logining));
 
-                    var requestObj = new SendDataToServer.LoginObj
-                    {
-                        Account = accountStr,
-                        Password = passwordStr,
-                        Source = CommonPage.Source,
-                        Company = CommonPage.Company
-                    };
-                    var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
-                    var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/Login", System.Text.Encoding.UTF8.GetBytes(requestJson));
-                    if (revertObj == null)
-                    {
-                        CommonPage.Instance.FailureToServer();
-                        CommonPage.Loading.Hide();
-                        return;
-                    }
-                    var stateCodeStr = revertObj.StateCode.ToUpper();
-                    //Error 涓嶈兘鐩存帴浠庢湇鍔″櫒鍙栵紝鍙兘鏍规嵁鐘舵�佺爜閫愪竴鍒ゆ柇
-                    if (stateCodeStr == "SUCCESS")
-                    {
-                        if (revertObj.ResponseData == null)
-                        {
-                            return;
-                        }
-
+                    var requestObj = new SendDataToServer.LoginObj
+                    {
+                        Account = accountStr,
+                        Password = passwordStr,
+                        Source = CommonPage.Source,
+                        Company = CommonPage.Company
+                    };
+                    var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
+                    var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/Login", System.Text.Encoding.UTF8.GetBytes(requestJson));
+                    if (revertObj == null)
+                    {
+                        CommonPage.Instance.FailureToServer();
+                        CommonPage.Loading.Hide();
+                        return;
+                    }
+                    var stateCodeStr = revertObj.StateCode.ToUpper();
+                    //Error 涓嶈兘鐩存帴浠庢湇鍔″櫒鍙栵紝鍙兘鏍规嵁鐘舵�佺爜閫愪竴鍒ゆ柇
+                    if (stateCodeStr == "SUCCESS")
+                    {
+                        if (revertObj.ResponseData == null)
+                        {
+                            return;
+                        }
+
                         HomePage.Instance.ShowLoginLoadView();
 
-                        new System.Threading.Thread(async () =>
-                        {
-                            //瀛樺偍鏁版嵁
-                            var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString());
-                            var revertData = responseDataObj;
-                            Config.ReFresh();
-                            Config.Instance.Account = revertData.Account;
+                        new System.Threading.Thread(async () =>
+                        {
+                            //瀛樺偍鏁版嵁
+                            var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString());
+                            var revertData = responseDataObj;
+                            Config.ReFresh();
+                            Config.Instance.Account = revertData.Account;
                             Config.Instance.Password = passwordStr;
                             Config.Instance.MD5PWD = revertData.MD5PWD;
-                            Config.Instance.Guid = revertData.Guid;
-                            Config.Instance.LoginDateTime = DateTime.Now;
-                            Config.Instance.LoginToken = revertData.Token;
-                            if (Config.Instance.AccountList.Find((obj) => obj == revertData.Account) == null)
-                            {
-                                Config.Instance.AccountList.Add(revertData.Account);
-                            }
-                            Config.Instance.Save();
-
-                            var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
-                            var homes = await House.GetHomeLists();
-                            //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
+                            Config.Instance.Guid = revertData.Guid;
+                            Config.Instance.LoginDateTime = DateTime.Now;
+                            Config.Instance.LoginToken = revertData.Token;
+                            if (Config.Instance.AccountList.Find((obj) => obj == revertData.Account) == null)
+                            {
+                                Config.Instance.AccountList.Add(revertData.Account);
+                            }
+                            Config.Instance.Save();
+
+                            var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
+                            var homes = await House.GetHomeLists();
+                            //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
                             await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
                             //鍚姩ZigBee
-                            ZigBee.Common.Application.Init();
-
-                            UserCenter.HdlRoomLogic.Current.InitAllRoom();
-                            Application.RunOnMainThread(() =>
-                            {
-                                CommonPage.Loading.Hide();
-                                this.RemoveFromParent();
+                            ZigBee.Common.Application.Init();
+
+                            UserCenter.HdlRoomLogic.Current.InitAllRoom();
+                            Application.RunOnMainThread(() =>
+                            {
+                                CommonPage.Loading.Hide();
+                                this.RemoveFromParent();
                                 CommonPage.Instance.RemoveViewByTag("Login");
-                                UserPage.Instance.Fresh();
-                            });
-                        })
-                        { IsBackground = true }.Start();
+                                UserPage.Instance.Fresh();
+                            });
+                        })
+                        { IsBackground = true }.Start();
+                    }
+                    else if (stateCodeStr == "NOTVERIFY")
+                    {
+                        CommonPage.Loading.Hide();
+                        //鏈縺娲�
+                        loginErrorBtn.TextID = R.MyInternationalizationString.NOTVERIFY;
+                    }
+                    else if (stateCodeStr == "NOTENABLE")
+                    {
+                        CommonPage.Loading.Hide();
+                        //璇ョ敤鎴峰睘浜庤皟璇曡处鍙凤紝骞舵湭鍚敤
+                        loginErrorBtn.TextID = R.MyInternationalizationString.NOTENABLE;
+                    }
+                    else if (stateCodeStr == "USERNAMEORPWDERROR")
+                    {
+                        CommonPage.Loading.Hide();
+                        //璐﹀彿鎴栧瘑鐮侀敊璇�
+                        loginErrorBtn.TextID = R.MyInternationalizationString.USERNAMEORPWDERROR;
+                    }
+                    else if (stateCodeStr == "ACCOUNTNOEXISTS")
+                    {
+                        CommonPage.Loading.Hide();
+                        //璐﹀彿涓嶅瓨鍦�
+                        loginErrorBtn.TextID = R.MyInternationalizationString.ACCOUNTNOEXISTS;
+                    }
+                    else if (stateCodeStr == "YOUDATANOISLOCALREGION")
+                    {
+                        CommonPage.Loading.Hide();
+                        //涓嶅湪鏈尯鍩燂紝闇�瑕侀噸瀹氬悜鍖哄煙鍚庡啀娆¤姹傜櫥褰�
+                        if (revertObj.ResponseData == null)
+                        {
+                            return;
+                        }
+                        var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginLocalRegionRes>(revertObj.ResponseData.ToString());
+                        CommonPage.RequestHttpsHost = responseDataObj.RegionServer;
+                        //鍐嶆鐧诲綍
+                        Login(accountStr, passwordStr);
+                    }
+                    else
+                    {
+                        loginErrorBtn.TextID = R.MyInternationalizationString.RequestServerFailed;
                     }
-                    else if (stateCodeStr == "NOTVERIFY")
-                    {
-                        CommonPage.Loading.Hide();
-                        //鏈縺娲�
-                        loginErrorBtn.TextID = R.MyInternationalizationString.NOTVERIFY;
-                    }
-                    else if (stateCodeStr == "NOTENABLE")
-                    {
-                        CommonPage.Loading.Hide();
-                        //璇ョ敤鎴峰睘浜庤皟璇曡处鍙凤紝骞舵湭鍚敤
-                        loginErrorBtn.TextID = R.MyInternationalizationString.NOTENABLE;
-                    }
-                    else if (stateCodeStr == "USERNAMEORPWDERROR")
-                    {
-                        CommonPage.Loading.Hide();
-                        //璐﹀彿鎴栧瘑鐮侀敊璇�
-                        loginErrorBtn.TextID = R.MyInternationalizationString.USERNAMEORPWDERROR;
-                    }
-                    else if (stateCodeStr == "ACCOUNTNOEXISTS")
-                    {
-                        CommonPage.Loading.Hide();
-                        //璐﹀彿涓嶅瓨鍦�
-                        loginErrorBtn.TextID = R.MyInternationalizationString.ACCOUNTNOEXISTS;
-                    }
-                    else if (stateCodeStr == "YOUDATANOISLOCALREGION")
-                    {
-                        CommonPage.Loading.Hide();
-                        //涓嶅湪鏈尯鍩燂紝闇�瑕侀噸瀹氬悜鍖哄煙鍚庡啀娆¤姹傜櫥褰�
-                        if (revertObj.ResponseData == null)
-                        {
-                            return;
-                        }
-                        var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginLocalRegionRes>(revertObj.ResponseData.ToString());
-                        CommonPage.RequestHttpsHost = responseDataObj.RegionServer;
-                        //鍐嶆鐧诲綍
-                        Login(accountStr, passwordStr);
-                    }
-                    else
-                    {
-                        loginErrorBtn.TextID = R.MyInternationalizationString.RequestServerFailed;
-                    }
-                }
+                }
                 catch (Exception ex)
                 {
                     System.Console.WriteLine($"鐧诲綍澶辫触--{ex.Message}");
@@ -550,14 +544,14 @@
                         else
                         {
                             new System.Threading.Thread(async () =>
-                            {
+                            {
                                 var re = await isBindAuthAsync(authStr);
                                 if (re)
                                 {
-                                    Application.RunOnMainThread(() =>
+                                    Application.RunOnMainThread(() =>
                                     {
                                         //鐩存帴鐧诲綍
-                                        HomePage.Instance.ShowLoginLoadView();
+                                        HomePage.Instance.ShowLoginLoadView();
                                     });
                                     var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
                                     var homes = await House.GetHomeLists();
@@ -738,24 +732,56 @@
         /// <param name="phoneOrEmail"></param>
         private void AddPhoneOrEmailFL(FrameLayout accountPwdFrameLayout,string phoneOrEmail)
         {
-            accountPwdFrameLayout.RemoveAll();
-
             if (phoneOrEmail == "Phone")
             {
+                if (phoneRow != null)
+                {
+                    phoneRow.Visible = true;
+                    phonePwdRow.Visible = true;
+                    if (emailRow != null)
+                    {
+                        emailRow.Visible = false;
+                        emailPwdRow.Visible = false;
+                    }
+                    this.Pwd_TextChange(phonePwdRow);
+                    return;
+                }
                 phoneRow = new PhoneLoginRowForm();
-                phoneRow.Init(accountPwdFrameLayout, this, this.account, 29, 29);
-                phoneRow.AccountET.TextChangeEventHandler += Account_TextChange;
+                phoneRow.Init(accountPwdFrameLayout, this, this.oldInputAccount, 29, 29);
+                phoneRow.AccountET.TextChangeEventHandler += Account_TextChange;
+
+                phonePwdRow = new PwdLoginRowForm();
+                phonePwdRow.Init(accountPwdFrameLayout, 29, 225);
+                phonePwdRow.PasswrodET.TextChangeEventHandler += (sender, e) =>
+                {
+                    this.Pwd_TextChange(phonePwdRow);
+                };
             }
             else
             {
+                if (emailRow != null)
+                {
+                    emailRow.Visible = true;
+                    emailPwdRow.Visible = true;
+                    if (phoneRow != null)
+                    {
+                        phoneRow.Visible = false;
+                        phonePwdRow.Visible = false;
+                    }
+                    this.Pwd_TextChange(emailPwdRow);
+                    return;
+                }
                 emailRow = new EmailLoginRowForm();
-                emailRow.Init(accountPwdFrameLayout, this.account, 29, 29);
-                emailRow.AccountET.TextChangeEventHandler += Account_TextChange;
+                emailRow.Init(accountPwdFrameLayout, this.oldInputAccount, 29, 29);
+                emailRow.AccountET.TextChangeEventHandler += Account_TextChange;
+
+                emailPwdRow = new PwdLoginRowForm();
+                emailPwdRow.Init(accountPwdFrameLayout, 29, 225);
+                emailPwdRow.PasswrodET.TextChangeEventHandler += (sender, e) =>
+                {
+                    this.Pwd_TextChange(emailPwdRow);
+                };
             }
-
-            pwdRow = new PwdLoginRowForm();
-            pwdRow.Init(accountPwdFrameLayout, 29, 225);
-            pwdRow.PasswrodET.TextChangeEventHandler += Pwd_TextChange;
         }
         #endregion
 
@@ -803,23 +829,22 @@
         /// <summary>
         /// 瀵嗙爜鐩戝惉浜嬩欢
         /// </summary>
-        /// <param name="sender">Sender.</param>
-        /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
-        private void Pwd_TextChange(object sender,string mouseEventArgs)
+        /// <param name="pwdRow">Sender.</param>
+        private void Pwd_TextChange(PwdLoginRowForm pwdRow)
         {
             loginErrorBtn.Text = string.Empty;
-            if (1 <= pwdRow.PasswrodET.Text.Trim().Length && pwdRow.PasswrodET.Text.Trim().Length <= 16 && (phoneRow.AccountET.Text.Trim().Length > 0 || emailRow?.AccountET.Text.Trim().Length>0))
+            string pswText = pwdRow.PasswrodET.Text.Trim();
+            if (1 <= pswText.Length && pswText.Length <= 16 && (phoneRow.AccountET.Text.Trim().Length > 0 || emailRow?.AccountET.Text.Trim().Length>0))
             {
                 loginBtn.Enable = loginBtn.IsSelected = true;
             }
-            else if (pwdRow.PasswrodET.Text.Trim().Length > 16)
+            else if (pswText.Length > 16)
             {
-                pwdRow.PasswrodET.Text = mouseEventArgs.Remove(16);
-            }
-            else if (pwdRow.PasswrodET.Text.Trim().Length > 16 && (phoneRow.AccountET.Text.Trim().Length > 0 || emailRow?.AccountET.Text.Trim().Length > 0))
-            {
-                loginBtn.Enable = loginBtn.IsSelected = true;
-                pwdRow.PasswrodET.Text = mouseEventArgs.Remove(16);
+                pwdRow.PasswrodET.Text = pswText.Substring(0, 16);
+                if (phoneRow.AccountET.Text.Trim().Length > 0 || emailRow?.AccountET.Text.Trim().Length > 0)
+                {
+                    loginBtn.Enable = loginBtn.IsSelected = true;
+                }
             }
             else
             {
diff --git a/ZigbeeApp/Shared/Phone/Login/AccountLoginByCode.cs b/ZigbeeApp/Shared/Phone/Login/AccountLoginByCode.cs
index 86ea6d0..3cc962f 100644
--- a/ZigbeeApp/Shared/Phone/Login/AccountLoginByCode.cs
+++ b/ZigbeeApp/Shared/Phone/Login/AccountLoginByCode.cs
@@ -303,7 +303,7 @@
                 if (CheckAccount(account) == false)
                 {
                     return;
-                }
+                }
                 var reqLoginByCode = new SendDataToServer.LoginValidCodeOBJ()
                 {
                     Account = account,
@@ -311,7 +311,7 @@
                     Language = CommonPage.ZigBeeLanguage,
                     AreaCode = int.Parse(CommonPage.PhoneZoneStr)
                 };
-                var requestRevetLoginCodeOBJ = await CommonFormResouce.LoginByCode(reqLoginByCode);
+                var requestRevetLoginCodeOBJ = await CommonFormResouce.LoginByCode(reqLoginByCode);
                 if (requestRevetLoginCodeOBJ == null)
                 {
                     CommonPage.Instance.FailureToServer();
@@ -346,7 +346,7 @@
                         Config.Instance.Save();
                         var resultRegID = await CommonPage.Instance.PushRegID();
                         var homes = await House.GetHomeLists();
-    
+
                         //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
                         await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
                         //鍚姩ZigBee
@@ -512,14 +512,14 @@
                 else
                 {
                     new System.Threading.Thread(async () =>
-                    {
-                        var re = await isBindAuthAsync(authStr);
+                    {
+                        var re = await isBindAuthAsync(authStr);
                         if (re)
-                        {
-                            Application.RunOnMainThread(() =>
-                            {
-                                //鐩存帴鐧诲綍
-                                HomePage.Instance.ShowLoginLoadView();
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                //鐩存帴鐧诲綍
+                                HomePage.Instance.ShowLoginLoadView();
                             });
                             var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
                             var homes = await House.GetHomeLists();
diff --git a/ZigbeeApp/Shared/Phone/Login/AccountRegisterSuccess.cs b/ZigbeeApp/Shared/Phone/Login/AccountRegisterSuccess.cs
index 6818f7f..d0e6db7 100755
--- a/ZigbeeApp/Shared/Phone/Login/AccountRegisterSuccess.cs
+++ b/ZigbeeApp/Shared/Phone/Login/AccountRegisterSuccess.cs
@@ -107,7 +107,7 @@
 
                         CommonPage.Loading.Start(Language.StringByID(R.MyInternationalizationString.Logining));
                         Action action = async () => {
-                            var loginSuccess = await HomePage.Instance.LoginByPWDAsync(account, password);
+                            var loginSuccess = await HomePage.Instance.LoginByPWDAsync(account, password);
                             if (loginSuccess==1)
                             {
                                 new System.Threading.Thread(async () =>
@@ -145,7 +145,7 @@
                                 Config.Instance.Save();
                                 var login = new AccountLogin { };
                                 CommonPage.Instance.AddChidren(login);
-                                login.Show(account, password);
+                                login.Show(account);
                             }
                         };
                         action();
diff --git a/ZigbeeApp/Shared/Phone/Login/PhoneEmailForm.cs b/ZigbeeApp/Shared/Phone/Login/PhoneEmailForm.cs
index 24ca941..96c8331 100755
--- a/ZigbeeApp/Shared/Phone/Login/PhoneEmailForm.cs
+++ b/ZigbeeApp/Shared/Phone/Login/PhoneEmailForm.cs
@@ -145,18 +145,19 @@
                 TextSize = CommonFormResouce.TextSize
             };
             accountFL.AddChidren(PhoneZoneBtn);
-            PhoneZoneBtn.MouseUpEventHandler += (sender, e) =>
-            {
-                var form = new AreaCodeSelectForm();
-                parFL.AddChidren(form);
-                form.InitForm();
-                form.ShowForm();
-                form.FinishSelectEvent += (code) =>
-                {
-                    (sender as Button).Text = "+" + code;
-                    CommonPage.PhoneZoneStr = code;
-                };
-            };
+            //鐩墠鍙拡瀵�+86
+            //PhoneZoneBtn.MouseUpEventHandler += (sender, e) =>
+            //{
+            //    var form = new AreaCodeSelectForm();
+            //    parFL.AddChidren(form);
+            //    form.InitForm();
+            //    form.ShowForm();
+            //    form.FinishSelectEvent += (code) =>
+            //    {
+            //        (sender as Button).Text = "+" + code;
+            //        CommonPage.PhoneZoneStr = code;
+            //    };
+            //};
 
             AccountET = new EditText()
             {
@@ -226,16 +227,13 @@
         /// <param name="frameLayout"></param>
         /// <param name="account"></param>
         public void Init(FrameLayout frameLayout, FrameLayout parFL, string account, int x, int y)
-        {
-            var accountFL = new FrameLayout()
-            {
-                X = Application.GetRealWidth(x),
-                Y = Application.GetRealHeight(y),
-                Width = Application.GetRealWidth(CommonFormResouce.Row_Width),
-                Height = Application.GetRealHeight(CommonFormResouce.Row_Height),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            frameLayout.AddChidren(accountFL);
+        {
+            this.X = Application.GetRealWidth(x);
+            this.Y = Application.GetRealHeight(y);
+            this.Width = Application.GetRealWidth(CommonFormResouce.Row_Width);
+            this.Height = Application.GetRealHeight(CommonFormResouce.Row_Height);
+            this.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            frameLayout.AddChidren(this);
 
             var accountBtn = new Button()
             {
@@ -245,7 +243,7 @@
                 Gravity = Gravity.CenterVertical,
                 UnSelectedImagePath = "Account/Account.png"
             };
-            accountFL.AddChidren(accountBtn);
+            this.AddChidren(accountBtn);
 
             AccountET = new EditText()
             {
@@ -258,9 +256,10 @@
                 TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                 Text = account,
                 TextAlignment = TextAlignment.CenterLeft,
-                TextSize = CommonFormResouce.PlaceHolderTextSize
+                TextSize = CommonFormResouce.PlaceHolderTextSize,
+                IsNumberKeyboardType = true
             };
-            accountFL.AddChidren(AccountET);
+            this.AddChidren(AccountET);
 
             accountLine = new Button()
             {
@@ -269,7 +268,7 @@
                 Height = 1,
                 BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor
             };
-            accountFL.AddChidren(accountLine);
+            this.AddChidren(accountLine);
 
             AccountET.FoucsChanged += Text_FoucesChangeEvent;
 
@@ -407,16 +406,13 @@
         /// <param name="frameLayout"></param>
         /// <param name="account"></param>
         public void Init(FrameLayout frameLayout, string account, int x, int y)
-        {
-            var accountFL = new FrameLayout()
-            {
-                X = Application.GetRealWidth(x),
-                Y = Application.GetRealHeight(y),
-                Width = Application.GetRealWidth(CommonFormResouce.Row_Width),
-                Height = Application.GetRealHeight(CommonFormResouce.Row_Height),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            frameLayout.AddChidren(accountFL);
+        {
+            this.X = Application.GetRealWidth(x);
+            this.Y = Application.GetRealHeight(y);
+            this.Width = Application.GetRealWidth(CommonFormResouce.Row_Width);
+            this.Height = Application.GetRealHeight(CommonFormResouce.Row_Height);
+            this.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            frameLayout.AddChidren(this);
 
             var accountBtn = new Button()
             {
@@ -426,7 +422,7 @@
                 Gravity = Gravity.CenterVertical,
                 UnSelectedImagePath = "Account/Account.png"
             };
-            accountFL.AddChidren(accountBtn);
+            this.AddChidren(accountBtn);
 
             AccountET = new EditText()
             {
@@ -441,7 +437,7 @@
                 TextAlignment = TextAlignment.CenterLeft,
                 TextSize = CommonFormResouce.PlaceHolderTextSize
             };
-            accountFL.AddChidren(AccountET);
+            this.AddChidren(AccountET);
 
             accountLine = new Button()
             {
@@ -450,7 +446,7 @@
                 Height = 1,
                 BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor
             };
-            accountFL.AddChidren(accountLine);
+            this.AddChidren(accountLine);
 
             AccountET.FoucsChanged += Text_FoucesChangeEvent;
         }
@@ -828,16 +824,13 @@
         /// <param name="x"></param>
         /// <param name="y"></param>
         public void Init(FrameLayout frameLayout, int x, int y, string password = "")
-        {
-            var pwdFL = new FrameLayout()
-            {
-                X = Application.GetRealWidth(x),
-                Y = Application.GetRealHeight(y),
-                Width = Application.GetRealWidth(CommonFormResouce.Row_Width),
-                Height = Application.GetRealHeight(CommonFormResouce.Row_Height),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-            };
-            frameLayout.AddChidren(pwdFL);
+        {
+            this.X = Application.GetRealWidth(x);
+            this.Y = Application.GetRealHeight(y);
+            this.Width = Application.GetRealWidth(CommonFormResouce.Row_Width);
+            this.Height = Application.GetRealHeight(CommonFormResouce.Row_Height);
+            this.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            frameLayout.AddChidren(this);
 
             var passwordBtn = new Button()
             {
@@ -847,7 +840,7 @@
                 Gravity = Gravity.CenterVertical,
                 UnSelectedImagePath = "Account/Password.png"
             };
-            pwdFL.AddChidren(passwordBtn);
+            this.AddChidren(passwordBtn);
 
             PasswrodET = new EditText()
             {
@@ -863,7 +856,7 @@
                 TextSize = CommonFormResouce.PlaceHolderTextSize,
                 SecureTextEntry = true
             };
-            pwdFL.AddChidren(PasswrodET);
+            this.AddChidren(PasswrodET);
 
             hidenPWDbtn = new Button()
             {
@@ -875,7 +868,7 @@
                 UnSelectedImagePath = "Account/UnhidePwd.png",
                 IsSelected = true
             };
-            pwdFL.AddChidren(hidenPWDbtn);
+            this.AddChidren(hidenPWDbtn);
 
             hidenPWDbtn.MouseUpEventHandler += (sender, e) =>
             {
@@ -890,7 +883,7 @@
                 Height = 1,
                 BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor
             };
-            pwdFL.AddChidren(pwdLine);
+            this.AddChidren(pwdLine);
 
             PasswrodET.FoucsChanged += Text_FoucesChangeEvent;
         }
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/Base/DeviceCardCommon.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/Base/DeviceCardCommon.cs
index ecd5188..9ecbb97 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/Base/DeviceCardCommon.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/Base/DeviceCardCommon.cs
@@ -14,6 +14,10 @@
         #region 鈻� 鍙橀噺澹版槑___________________________
 
         /// <summary>
+        /// 璁惧瀵硅薄
+        /// </summary>
+        public CommonDevice device = null;
+        /// <summary>
         /// 鍗$墖闇�瑕佽绉婚櫎鐨勪簨浠�
         /// </summary>
         public Action CardNeedRemoveEvent = null;
@@ -28,7 +32,7 @@
         /// <summary>
         /// 璁惧鐨勮儗鏅渾鍦堝浘鎺т欢
         /// </summary>
-        private NormalViewControl btnDeviceRound = null;
+        private FrameLayout fraDeviceRound = null;
         /// <summary>
         /// 璁惧鍥炬爣鎺т欢
         /// </summary>
@@ -42,9 +46,17 @@
         /// </summary>
         private PicViewControl btnSwitch = null;
         /// <summary>
+        /// 鏀堕泦鎺т欢
+        /// </summary>
+        private IconViewControl btnCollect = null;
+        /// <summary>
         /// 鏄惁鑾峰彇缃戝叧鍙嶉鐨勭粨鏋�  0:娌℃湁鑾峰彇寰楀埌  1:宸茬粡鑾峰彇寰楀埌
         /// </summary>
         private int ResponeResult = 0;
+        /// <summary>
+        /// 鍒ゆ柇鏄惁鏈夊紑鍏冲姛鑳�
+        /// </summary>
+        private bool isHadOpenSwitch = true;
 
         #endregion
 
@@ -69,6 +81,7 @@
         /// <param name="i_device">鎸囧畾璁惧</param>
         public virtual void InitControl(CommonDevice i_device)
         {
+            this.device = i_device;
             //鑳屾櫙鍥剧墖
             this.btnBackGroud = new PicViewControl(this.Width, this.Height, false);
             btnBackGroud.UnSelectedImagePath = "Item/FunctionCardView.png";
@@ -87,7 +100,7 @@
             this.AddChidren(btnDeviceName, ChidrenBindMode.BindEventOnly);
 
             //鏀堕泦鎺т欢
-            var btnCollect = new IconViewControl(107);
+            this.btnCollect = new IconViewControl(107);
             btnCollect.X = Application.GetMinRealAverage(350);
             btnCollect.Y = Application.GetMinRealAverage(12);
             btnCollect.UnSelectedImagePath = "Item/Collection1.png";
@@ -116,19 +129,20 @@
             };
 
             //璁惧鐨勮儗鏅渾鍦堝浘
-            this.btnDeviceRound = new NormalViewControl(Application.GetMinRealAverage(124), Application.GetMinRealAverage(124), false);
-            btnDeviceRound.Radius = (uint)Application.GetMinRealAverage(124) / 2;
-            btnDeviceRound.X = Application.GetMinRealAverage(44);
-            btnDeviceRound.Y = Application.GetMinRealAverage(101);
-            btnDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionUnSelectedBackgroundColor;
-            btnDeviceRound.SelectedBackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionBackgroundColor;
-            this.AddChidren(btnDeviceRound, ChidrenBindMode.BindEventOnly);
+            this.fraDeviceRound = new FrameLayout();
+            fraDeviceRound.Width = Application.GetMinRealAverage(124);
+            fraDeviceRound.Height = Application.GetMinRealAverage(124);
+            fraDeviceRound.Radius = (uint)Application.GetMinRealAverage(124) / 2;
+            fraDeviceRound.X = Application.GetMinRealAverage(44);
+            fraDeviceRound.Y = Application.GetMinRealAverage(101);
+            fraDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionUnSelectedBackgroundColor;
+            this.AddChidren(fraDeviceRound, ChidrenBindMode.BindEventOnly);
 
             //璁惧鍥炬爣鎺т欢
             this.btnDeviceIcon = new IconViewControl(86);
-            btnDeviceIcon.X = Application.GetMinRealAverage(63);
-            btnDeviceIcon.Y = Application.GetMinRealAverage(121);
-            this.AddChidren(btnDeviceIcon, ChidrenBindMode.BindEventOnly);
+            btnDeviceIcon.Gravity = Gravity.Center;
+            fraDeviceRound.AddChidren(btnDeviceIcon);
+            this.ChangedChidrenBindMode(fraDeviceRound, ChidrenBindMode.BindEventOnly);
 
             //鐘舵�佹枃鏈帶浠�
             this.btnStatu = new NormalViewControl(Application.GetMinRealAverage(280), Application.GetMinRealAverage(63), false);
@@ -145,8 +159,6 @@
             btnSwitch.Y = Application.GetMinRealAverage(202);
             btnSwitch.UnSelectedImagePath = "Item/Switch1.png";
             btnSwitch.SelectedImagePath = "Item/SwitchSelected1.png";
-            this.AddChidren(this.btnSwitch, ChidrenBindMode.NotBind);
-            btnSwitch.Visible = false;
 
             //鍒锋柊淇℃伅
             this.RefreshControlInfo(i_device);
@@ -162,7 +174,7 @@
         /// <returns></returns>
         public PicViewControl AddSwitchControl()
         {
-            btnSwitch.Visible = true;
+            this.AddChidren(this.btnSwitch, ChidrenBindMode.NotBind);
             return btnSwitch;
         }
 
@@ -176,21 +188,27 @@
         /// <param name="i_device">璁惧瀵硅薄,涓嶆槸鎺ㄩ�佺殑閭d釜</param>
         public void RefreshControlInfo(CommonDevice i_device)
         {
-            //璁惧鐘舵�佸繀椤诲埛鏂�
-            this.btnStatu.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(i_device);
+            bool collect = HdlRoomLogic.Current.IsCollectInRoom(i_device);
+            if (btnCollect.IsSelected != collect)
+            {
+                btnCollect.IsSelected = collect;
+            }
             //璁惧鍥炬爣涔熷埛鏂�
-            Common.LocalDevice.Current.SetDeviceIconToControl(btnDeviceIcon, i_device);
+            Common.LocalDevice.Current.SetDeviceIconToControl2(btnDeviceIcon, i_device);
             //妫�娴嬭澶囨槸鍚︽槸鎵撳紑鐘舵��
             bool isOpen = this.CheckIsOpenStatu(i_device);
-            this.SetCardStatu(isOpen);
+            this.SetCardOpenStatu(isOpen);
         }
 
         /// <summary>
         /// 璁剧疆鍗$墖鐘舵��
         /// </summary>
         /// <param name="isOpen"></param>
-        public void SetCardStatu(bool isOpen)
+        public void SetCardOpenStatu(bool isOpen)
         {
+            //璁惧鐘舵�佸繀椤诲埛鏂�
+            this.btnStatu.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device);
+
             if (this.btnBackGroud.IsSelected == isOpen)
             {
                 //鐘舵�佷竴鏍�,鍒欎笉闇�瑕佸鐞�
@@ -202,13 +220,37 @@
             this.btnDeviceName.IsSelected = isOpen;
             this.btnDeviceName.IsBold = isOpen;
             //璁惧鐨勮儗鏅渾鍦堝浘
-            this.btnDeviceRound.IsSelected = isOpen;
+            if (isOpen == true)
+            {
+                fraDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionBackgroundColor;
+            }
+            else
+            {
+                fraDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionUnSelectedBackgroundColor;
+            }
             //璁惧鍥炬爣鎺т欢
             this.btnDeviceIcon.IsSelected = isOpen;
             //鐘舵�佹枃鏈帶浠�
             this.btnStatu.IsSelected = isOpen;
             //寮�鍏虫帶浠�
-            this.btnSwitch.IsSelected = isOpen;
+            if (btnSwitch != null)
+            {
+                this.btnSwitch.IsSelected = isOpen;
+            }
+        }
+
+        /// <summary>
+        /// 璁剧疆鍗$墖鐨勫湪绾跨姸鎬�
+        /// </summary>
+        /// <param name="isOnline">鍦ㄧ嚎</param>
+        public void SetCardOnlineStatu(bool isOnline)
+        {
+            if (this.isHadOpenSwitch == true)
+            {
+                //濡傛灉杩欎釜璁惧鏈夊紑鍏冲姛鑳�,鍒欏湪绾跨姸鎬佷笉浼氭敼鍙樼姸鎬�
+                return;
+            }
+            this.SetCardOpenStatu(isOnline);
         }
 
         /// <summary>
@@ -227,8 +269,7 @@
         /// <summary>
         /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
         /// </summary>
-        /// <param name="i_device"></param>
-        public virtual void SendStatuComand(CommonDevice i_device)
+        public virtual void SendStatuComand()
         {
             return;
         }
@@ -244,6 +285,8 @@
         /// <returns></returns>
         public virtual bool CheckIsOpenStatu(CommonDevice i_device)
         {
+            //濡傛灉杩欎釜鍑芥暟琚噸鍐欑殑璇�,鍒欎唬琛ㄨ繖涓澶囨湁寮�鍏冲姛鑳�
+            this.isHadOpenSwitch = false;
             //榛樿鐢ㄥ湪绾跨姸鎬佹潵鍒ゆ柇
             return i_device.IsOnline == 1;
         }
@@ -290,9 +333,12 @@
         public void StartCheckResponeResult(bool oldOpenStatu)
         {
             this.ResponeResult = 0;
+            //寮�鍏虫寜閽笉鑳藉啀鐐瑰嚮
+            if (btnSwitch != null) { this.btnSwitch.CanClick = false; }
+
             HdlThreadLogic.Current.RunThread(() =>
             {
-                int waitime = 30 * 100;
+                int waitime = 30;
                 while (waitime > 0)
                 {
                     System.Threading.Thread.Sleep(100);
@@ -301,6 +347,7 @@
                         //宸茬粡鑾峰彇寰楀埌鏁版嵁
                         break;
                     }
+                    waitime--;
                 }
                 if (waitime <= 0)
                 {
@@ -310,9 +357,11 @@
                         var msgContr = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.FAIL));
                         msgContr.Show();
                         //鍙樻洿鍥炲師鏉ョ殑鐘舵��
-                        this.SetCardStatu(oldOpenStatu);
+                        this.SetCardOpenStatu(oldOpenStatu);
                     });
                 }
+                //寮�鍏虫寜閽笉鑳藉啀鐐瑰嚮
+                if (btnSwitch != null) { this.btnSwitch.CanClick = true; }
             });
         }
 
@@ -326,6 +375,29 @@
 
         #endregion
 
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+        /// </summary>
+        /// <returns></returns>
+        public bool CheckCanSendStatuComand()
+        {
+            if (this.device.HadReadDeviceStatu == false)
+            {
+                //杩樻病鏈夎鍙栬繃鏁版嵁
+                return true;
+            }
+            if ((DateTime.Now - this.device.LastDateTime).TotalMinutes >= 10)
+            {
+                //10鍒嗛挓鍚庡彲浠ュ啀娆¤幏鍙�
+                return true;
+            }
+            return false;
+        }
+
+        #endregion
+
         #region 鈻� 鎺т欢鎽ф瘉___________________________
 
         /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAcCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAcCardControl.cs
index 20ec7b1..343c2df 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAcCardControl.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAcCardControl.cs
@@ -29,7 +29,7 @@
             {
                 bool setStatu = !btnSwitch.IsSelected;
                 //鍙樻洿鍗$墖鐘舵��
-                this.SetCardStatu(setStatu);
+                this.SetCardOpenStatu(setStatu);
                 //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅
                 this.StartCheckResponeResult(!setStatu);
 
@@ -60,8 +60,6 @@
             //娣卞害鍗$墖淇℃伅
             this.ButtonClickEvent += (sender, e) =>
             {
-                Common.CommonPage.Instance.IsDrawerLockMode = true;
-
                 var lightControl = new Phone.Device.AC.ACControl();
                 UserView.HomePage.Instance.AddChidren(lightControl);
                 UserView.HomePage.Instance.PageIndex += 1;
@@ -92,10 +90,13 @@
         /// <summary>
         /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
         /// </summary>
-        /// <param name="i_device"></param>
-        public override void SendStatuComand(CommonDevice i_device)
+        public override void SendStatuComand()
         {
-            Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendACStatuComand(i_device);
+            //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+            if (this.CheckCanSendStatuComand() == true)
+            {
+                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendACStatuComand(this.device);
+            }
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAirSwitchCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAirSwitchCardControl.cs
index 5aaad31..c028337 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAirSwitchCardControl.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceAirSwitchCardControl.cs
@@ -29,7 +29,7 @@
             {
                 bool setStatu = !btnSwitch.IsSelected;
                 //鍙樻洿鍗$墖鐘舵��
-                this.SetCardStatu(setStatu);
+                this.SetCardOpenStatu(setStatu);
                 //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅
                 this.StartCheckResponeResult(!setStatu);
 
@@ -60,8 +60,6 @@
             //娣卞害鍗$墖淇℃伅
             this.ButtonClickEvent += (sender, e) =>
             {
-                Common.CommonPage.Instance.IsDrawerLockMode = true;
-
                 var lightControl = new Phone.Device.Light.AirSwitchControl();
                 UserView.HomePage.Instance.AddChidren(lightControl);
                 UserView.HomePage.Instance.PageIndex += 1;
@@ -92,10 +90,13 @@
         /// <summary>
         /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
         /// </summary>
-        /// <param name="i_device"></param>
-        public override void SendStatuComand(CommonDevice i_device)
+        public override void SendStatuComand()
         {
-            Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendLightStatuComand(i_device);
+            //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+            if (this.CheckCanSendStatuComand() == true)
+            {
+                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendLightStatuComand(this.device);
+            }
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs
index 0b2751f..f764ca3 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs
@@ -29,7 +29,7 @@
             {
                 bool setStatu = !btnSwitch.IsSelected;
                 //鍙樻洿鍗$墖鐘舵��
-                this.SetCardStatu(setStatu);
+                this.SetCardOpenStatu(setStatu);
                 //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅
                 this.StartCheckResponeResult(!setStatu);
 
@@ -60,8 +60,6 @@
             //娣卞害鍗$墖淇℃伅
             this.ButtonClickEvent += (sender, e) =>
             {
-                Common.CommonPage.Instance.IsDrawerLockMode = true;
-
                 var dimmableLightControl = new Phone.Device.Light.DimmableLightControl();
                 UserView.HomePage.Instance.AddChidren(dimmableLightControl);
                 UserView.HomePage.Instance.PageIndex += 1;
@@ -92,10 +90,13 @@
         /// <summary>
         /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
         /// </summary>
-        /// <param name="i_device"></param>
-        public override void SendStatuComand(CommonDevice i_device)
+        public override void SendStatuComand()
         {
-            Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(i_device);
+            //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+            if (this.CheckCanSendStatuComand() == true)
+            {
+                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(this.device);
+            }
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceCurtainCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceCurtainCardControl.cs
index 5ae5246..a5ac473 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceCurtainCardControl.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceCurtainCardControl.cs
@@ -29,7 +29,7 @@
             {
                 bool setStatu = !btnSwitch.IsSelected;
                 //鍙樻洿鍗$墖鐘舵��
-                this.SetCardStatu(setStatu);
+                this.SetCardOpenStatu(setStatu);
                 //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅
                 this.StartCheckResponeResult(!setStatu);
 
@@ -60,7 +60,6 @@
             //娣卞害鍗$墖淇℃伅
             this.ButtonClickEvent += (sender, e) =>
             {
-                Common.CommonPage.Instance.IsDrawerLockMode = true;
                 var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl();
                 UserView.HomePage.Instance.AddChidren(rollerShadeControl);
                 UserView.HomePage.Instance.PageIndex += 1;
@@ -92,10 +91,18 @@
         /// <summary>
         /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
         /// </summary>
-        /// <param name="i_device"></param>
-        public override void SendStatuComand(CommonDevice i_device)
+        public override void SendStatuComand()
         {
-            Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(i_device);
+            //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+            if (this.CheckCanSendStatuComand() == true)
+            {
+                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(this.device);
+            }
+            if (((Rollershade)this.device).WcdType == -1)
+            {
+                //璇诲彇绐楀笜绫诲瀷
+                ((Rollershade)this.device).ReadWcdType();
+            }
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceDoorLockCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceDoorLockCardControl.cs
index 914841c..b4c470e 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceDoorLockCardControl.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceDoorLockCardControl.cs
@@ -36,9 +36,8 @@
             //娣卞害鍗$墖淇℃伅
             this.ButtonClickEvent += (sender, e) =>
             {
-                Common.CommonPage.Instance.IsDrawerLockMode = true;
-
                 var userDoorLockPage = new UserCenter.DoorLock.UserDoorLockPage(UserCenter.HdlRoomLogic.Current.CurrentRoom, i_device);
+                userDoorLockPage.IsDrawerLockMode = true;
                 UserView.HomePage.Instance.AddChidren(userDoorLockPage);
                 UserView.HomePage.Instance.PageIndex += 1;
                 userDoorLockPage.Show();
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceDryContactCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceDryContactCardControl.cs
new file mode 100755
index 0000000..2b0ef1a
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceDryContactCardControl.cs
@@ -0,0 +1,77 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.MainPage.Controls
+{
+    /// <summary>
+    /// 骞叉帴鐐瑰崱鐗囨帶浠�(鏆傛椂搴熸)
+    /// </summary>
+    public class DeviceDryContactCardControl: DeviceCardCommon
+    {
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�
+        /// </summary>
+        /// <param name="i_device"></param>
+        public override void InitControl(CommonDevice i_device)
+        {
+            base.InitControl(i_device);
+
+            //娣诲姞寮�鍏虫帶浠�
+            var btnSwitch = this.AddSwitchControl();
+            btnSwitch.ButtonClickEvent += (sender, e) =>
+            {
+                bool setStatu = !btnSwitch.IsSelected;
+                //鍙樻洿鍗$墖鐘舵��
+                this.SetCardOpenStatu(setStatu);
+                //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅
+                this.StartCheckResponeResult(!setStatu);
+
+                if (setStatu == true)
+                {
+                    //鎵撳紑
+                    this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1));
+                    i_device.SwitchControl(1);
+                }
+                else
+                {
+                    //鍏抽棴
+                    this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.Close));
+                    i_device.SwitchControl(0);
+                }
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 妫�娴嬭澶囨墦寮�鐘舵�乢__________________
+
+        /// <summary>
+        /// 妫�娴嬭澶囨墦寮�鐘舵��
+        /// </summary>
+        /// <param name="i_device"></param>
+        /// <returns></returns>
+        public override bool CheckIsOpenStatu(CommonDevice i_device)
+        {
+            return true;
+            //return ((LightBase)i_device).OnOffStatus == 1;
+        }
+
+        #endregion
+
+        #region 鈻� 鍙戦�佽幏鍙栫姸鎬佸懡浠__________________
+
+        /// <summary>
+        /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
+        /// </summary>
+        public override void SendStatuComand()
+        {
+            Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendLightStatuComand(this.device);
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceRelayCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceRelayCardControl.cs
index 22bd1ae..82b698e 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceRelayCardControl.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceRelayCardControl.cs
@@ -29,7 +29,7 @@
             {
                 bool setStatu = !btnSwitch.IsSelected;
                 //鍙樻洿鍗$墖鐘舵��
-                this.SetCardStatu(setStatu);
+                this.SetCardOpenStatu(setStatu);
                 //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅
                 this.StartCheckResponeResult(!setStatu);
 
@@ -60,8 +60,6 @@
             //娣卞害鍗$墖淇℃伅
             this.ButtonClickEvent += (sender, e) =>
             {
-                Common.CommonPage.Instance.IsDrawerLockMode = true;
-
                 var lightControl = new Phone.Device.Light.OnOffControl();
                 UserView.HomePage.Instance.AddChidren(lightControl);
                 UserView.HomePage.Instance.PageIndex += 1;
@@ -92,10 +90,13 @@
         /// <summary>
         /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
         /// </summary>
-        /// <param name="i_device"></param>
-        public override void SendStatuComand(CommonDevice i_device)
+        public override void SendStatuComand()
         {
-            Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendLightStatuComand(i_device);
+            //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+            if (this.CheckCanSendStatuComand() == true)
+            {
+                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendLightStatuComand(this.device);
+            }
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceTemperatureCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceTemperatureCardControl.cs
index 60c97e1..b9b5160 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceTemperatureCardControl.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceTemperatureCardControl.cs
@@ -15,11 +15,13 @@
         /// <summary>
         /// 鍙戦�佽幏鍙栫姸鎬佸懡浠�
         /// </summary>
-        /// <param name="i_device"></param>
-        public override void SendStatuComand(CommonDevice i_device)
+        public override void SendStatuComand()
         {
-            (i_device as TemperatureSensor).ReadTemperatureOrHumidity();
-            Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(i_device);
+            //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
+            if (this.CheckCanSendStatuComand() == true)
+            {
+                (this.device as TemperatureSensor).ReadTemperatureOrHumidity();
+            }
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceFunctionUnallocatedControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceFunctionUnallocatedControl.cs
new file mode 100755
index 0000000..f23edeb
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceFunctionUnallocatedControl.cs
@@ -0,0 +1,98 @@
+锘縰sing Shared.Phone.UserCenter;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.MainPage.Controls
+{
+    /// <summary>
+    /// 鏈垎閰嶇晫闈㈢殑璁惧鍔熻兘鍥炬爣鎺т欢
+    /// </summary>
+    public class DeviceFunctionUnallocatedControl : FrameLayoutControl
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鑳屾櫙鎺т欢
+        /// </summary>
+        private PicViewControl btnBackGroud = null;
+        /// <summary>
+        /// 璁惧鍥炬爣鎺т欢
+        /// </summary>
+        private IconViewControl btnDeviceIcon = null;
+        /// <summary>
+        /// 鏂囨湰鎺т欢
+        /// </summary>
+        private NormalViewControl btnDeviceName = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鏈垎閰嶇晫闈㈢殑璁惧鍔熻兘鍥炬爣鎺т欢
+        /// </summary>
+        public DeviceFunctionUnallocatedControl()
+        {
+            this.Width = Application.GetRealWidth(220);
+            this.Height = Application.GetRealHeight(279);
+            this.UseClickStatu = false;
+        }
+
+        /// <summary>
+        /// 鍒濆鍖�
+        /// </summary>
+        /// <param name="text">鏄剧ず鐨勬枃鏈�</param>
+        /// <param name="unSelectPath">鍥剧墖1</param>
+        /// <param name="selectPath">鍥剧墖2</param>
+        /// <param name="listDevice">璁惧鍒楄〃</param>
+        public void InitControl(string text, string unSelectPath, string selectPath, List<string> listDevice)
+        {
+            //鑳屾櫙鎺т欢
+            this.btnBackGroud = new PicViewControl(150, 173);
+            btnBackGroud.Y = Application.GetRealHeight(35);
+            btnBackGroud.Gravity = Gravity.CenterHorizontal;
+            btnBackGroud.UnSelectedImagePath = "Item/Category_FunctionBG.png";
+            btnBackGroud.SelectedImagePath = "Item/Category_FunctionBGSelected.png";
+            this.AddChidren(btnBackGroud, ChidrenBindMode.BindEventOnly);
+
+            //璁惧鍥炬爣
+            this.btnDeviceIcon = new IconViewControl(84);
+            btnDeviceIcon.Y = Application.GetRealHeight(63);
+            btnDeviceIcon.UnSelectedImagePath = unSelectPath;
+            btnDeviceIcon.SelectedImagePath = selectPath;
+            btnDeviceIcon.Gravity = Gravity.CenterHorizontal;
+            this.AddChidren(btnDeviceIcon, ChidrenBindMode.BindEventOnly);
+
+            //鏂囨湰
+            this.btnDeviceName = new NormalViewControl(170, 60, true);
+            btnDeviceName.Y = Application.GetRealHeight(200);
+            btnDeviceName.Gravity = Gravity.CenterHorizontal;
+            btnDeviceName.TextColor = Common.ZigbeeColor.Current.GXCTextBlackColor;
+            btnDeviceName.SelectedTextColor = Common.ZigbeeColor.Current.GXCTextSelectedColor;
+            btnDeviceName.TextSize = 11;
+            btnDeviceName.Text = text;
+            btnDeviceName.TextAlignment = TextAlignment.Center;
+            this.AddChidren(btnDeviceName, ChidrenBindMode.BindEventOnly);
+        }
+
+        #endregion
+
+        #region 鈻� 璁剧疆鐘舵�乢__________________________
+
+        /// <summary>
+        /// 璁剧疆閫夋嫨鐘舵��
+        /// </summary>
+        /// <param name="isSelect"></param>
+        public void SetSelectStatu(bool isSelect)
+        {
+            this.btnBackGroud.IsSelected = isSelect;
+            this.btnDeviceIcon.IsSelected = isSelect;
+            this.btnDeviceName.IsSelected = isSelect;
+            this.btnDeviceName.IsBold = isSelect;
+        }
+
+        #endregion
+
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceSelectUnallocatedControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceSelectUnallocatedControl.cs
new file mode 100755
index 0000000..aafb758
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceSelectUnallocatedControl.cs
@@ -0,0 +1,176 @@
+锘縰sing Shared.Phone.UserCenter;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.MainPage.Controls
+{
+    /// <summary>
+    /// 鏈垎閰嶇晫闈㈢殑璁惧閫夋嫨鎺т欢
+    /// </summary>
+    public class DeviceSelectUnallocatedControl : FrameRowControl
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 璁惧瀵硅薄
+        /// </summary>
+        public CommonDevice device;
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        private StatuMode Statu = StatuMode.UN_SELECT;
+        /// <summary>
+        /// 鏄惁澶勪簬閫夋嫨鐘舵��
+        /// </summary>
+        public bool IsSelected
+        {
+            get { return Statu == StatuMode.SELECT; }
+            set
+            {
+                if (value == false)
+                {
+                    this.SetUnselectStatu();
+                }
+                else
+                {
+                    this.SetSelectStatu();
+                }
+            }
+        }
+
+        /// <summary>
+        /// 璁惧鍥炬爣鑳屾櫙鎺т欢
+        /// </summary>
+        private FrameLayout frameIconBackGroud = null;
+        /// <summary>
+        /// 璁惧鍥炬爣鎺т欢
+        /// </summary>
+        private IconViewControl btnDeviceIcon = null;
+        /// <summary>
+        /// 璁惧鍚嶅瓧鎺т欢
+        /// </summary>
+        private NormalViewControl btnDeviceName = null;
+        /// <summary>
+        /// 閫夋嫨鎺т欢
+        /// </summary>
+        private MostRightIconControl btnSelect = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鏈垎閰嶇晫闈㈢殑璁惧閫夋嫨鎺т欢
+        /// </summary>
+        /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(鐪熷疄鍊�,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)</param>
+        public DeviceSelectUnallocatedControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+        {
+            this.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�
+        /// </summary>
+        /// <param name="i_device">璁惧瀵硅薄</param>
+        public void InitControl(CommonDevice i_device)
+        {
+            this.device = i_device;
+            //璁惧鍥炬爣鑳屾櫙鎺т欢
+            this.frameIconBackGroud = new FrameLayout();
+            frameIconBackGroud.Height = Application.GetMinRealAverage(112);
+            frameIconBackGroud.Width = Application.GetMinRealAverage(112);
+            frameIconBackGroud.Gravity = Gravity.CenterVertical;
+            frameIconBackGroud.X = Application.GetRealWidth(46);
+            frameIconBackGroud.Radius = (uint)Application.GetMinRealAverage(112 / 2);
+            frameIconBackGroud.BackgroundColor = Common.ZigbeeColor.Current.GXCGrayBackgroundColor;
+            this.AddChidren(frameIconBackGroud, ChidrenBindMode.NotBind);
+            if (chidrenYaxis != 0)
+            {
+                frameIconBackGroud.Y += chidrenYaxis;
+            }
+
+            //璁惧鍥炬爣鎺т欢
+            this.btnDeviceIcon = new IconViewControl(78);
+            btnDeviceIcon.Gravity = Gravity.Center;
+            Common.LocalDevice.Current.SetDeviceIconToControl(btnDeviceIcon, i_device);
+            frameIconBackGroud.AddChidren(btnDeviceIcon);
+            //閲嶆柊缁戝畾浜嬩欢
+            this.ChangedChidrenBindMode(frameIconBackGroud, ChidrenBindMode.BindEventOnly);
+
+            //璁惧鍚嶅瓧
+            this.btnDeviceName = new NormalViewControl(Application.GetRealWidth(600), this.Height, false);
+            btnDeviceName.X = Application.GetRealWidth(181);
+            btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceEpointName(i_device);
+            btnDeviceName.SelectedTextColor = Common.ZigbeeColor.Current.GXCTextSelectedColor;
+            btnDeviceName.Gravity = Gravity.CenterVertical;
+            this.AddChidren(btnDeviceName, ChidrenBindMode.BindEventOnly);
+            if (chidrenYaxis != 0)
+            {
+                btnDeviceName.Y += chidrenYaxis;
+            }
+
+            //閫夋嫨鎺т欢
+            this.btnSelect = new MostRightIconControl(70, 70);
+            btnSelect.X = Application.GetRealWidth(895);
+            btnSelect.UseClickStatu = false;
+            btnSelect.UnSelectedImagePath = "Room/ItemUnSelected_Black.png";
+            btnSelect.SelectedImagePath = "Room/ItemSelected.png";
+            this.AddChidren(btnSelect, ChidrenBindMode.NotBind);
+            btnSelect.InitControl();
+            //澶嶅悎鎺т欢闇�瑕佺壒娈婂鐞�
+            this.ChangedChidrenBindMode(btnSelect, ChidrenBindMode.BindEventOnly);
+            if (chidrenYaxis != 0)
+            {
+                btnSelect.btnIcon.Y += chidrenYaxis;
+            }
+
+            //搴曠嚎
+            var btnBottomLine = new NormalViewControl(Application.GetRealWidth(835), ControlCommonResourse.BottomLineHeight, false);
+            btnBottomLine.X = Application.GetRealWidth(181);
+            btnBottomLine.Y = this.Height - ControlCommonResourse.BottomLineHeight;
+            btnBottomLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
+            this.AddChidren(btnBottomLine, ChidrenBindMode.NotBind);
+        }
+
+        #endregion
+
+        #region 鈻� 閫夋嫨鐘舵�乢__________________________
+
+        /// <summary>
+        /// 璁惧畾閫夋嫨鐘舵��
+        /// </summary>
+        private void SetSelectStatu()
+        {
+            if (Statu == StatuMode.SELECT)
+            {
+                return;
+            }
+            btnDeviceIcon.IsSelected = true;
+            btnDeviceName.IsSelected = true;
+            frameIconBackGroud.BackgroundColor = Common.ZigbeeColor.Current.GXCSelectedBackgroundColor;
+            btnSelect.IsSelected = true;
+            //鐘舵�佸彉鏇�
+            Statu = StatuMode.SELECT;
+        }
+
+        /// <summary>
+        /// 璁剧疆闈為�夋嫨鐘舵��
+        /// </summary>
+        private void SetUnselectStatu()
+        {
+            if (Statu == StatuMode.UN_SELECT)
+            {
+                return;
+            }
+            btnDeviceIcon.IsSelected = false;
+            btnDeviceName.IsSelected = false;
+            frameIconBackGroud.BackgroundColor = Common.ZigbeeColor.Current.GXCGrayBackgroundColor;
+            btnSelect.IsSelected = false;
+            //鐘舵�佸彉鏇�
+            Statu = StatuMode.UN_SELECT;
+        }
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/ListRoomCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/ListRoomCardControl.cs
new file mode 100755
index 0000000..d0773fd
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/ListRoomCardControl.cs
@@ -0,0 +1,125 @@
+锘縰sing Shared.Phone.UserCenter;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.MainPage.Controls
+{
+    /// <summary>
+    /// 宸︽粦鐨勬埧闂村垪琛ㄧ晫闈㈤噷闈㈢殑鎴块棿鍗$墖鎺т欢
+    /// </summary>
+    public class ListRoomCardControl : FrameLayoutControl
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鎴块棿ID
+        /// </summary>
+        private string roomId = string.Empty;
+        /// <summary>
+        /// 鎴块棿鍥剧墖鎺т欢
+        /// </summary>
+        private ImageView picRoom = null;
+        /// <summary>
+        /// 鎴块棿鍚嶇О鎺т欢
+        /// </summary>
+        private NormalViewControl btnRoomName = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 宸︽粦鐨勬埧闂村垪琛ㄧ晫闈㈤噷闈㈢殑鎴块棿鍗$墖鎺т欢
+        /// </summary>
+        public ListRoomCardControl()
+        {
+            this.Width = Application.GetRealWidth(495);
+            this.Height = Application.GetRealHeight(354);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨埧闂村崱鐗囨帶浠�
+        /// </summary>
+        /// <param name="room"></param>
+        public void InitControl(Common.Room room)
+        {
+            this.roomId = room.Id;
+
+            //鎴块棿搴曢儴闃村奖鏁堟灉
+            var btnRoomShadow = new NormalViewControl(this.Width, this.Height, false);
+            btnRoomShadow.UnSelectedImagePath = "Room/RoomCardView.png";
+            this.AddChidren(btnRoomShadow, ChidrenBindMode.NotBind);
+
+            //鎴块棿鍥剧墖
+            this.picRoom = new ImageView();
+            picRoom.Gravity = Gravity.CenterHorizontal;
+            picRoom.Width = Application.GetRealWidth(467);
+            picRoom.Height = Application.GetRealHeight(311);
+            picRoom.Radius = (uint)Application.GetRealHeight(29);
+            this.AddChidren(picRoom, ChidrenBindMode.NotBind);
+
+            //閬僵
+            var frameBack = new NormalViewControl(picRoom.Width, picRoom.Height, false);
+            frameBack.Gravity = picRoom.Gravity;
+            frameBack.Radius = picRoom.Radius;
+            frameBack.BackgroundColor = 0x33000000;
+            this.AddChidren(picRoom, ChidrenBindMode.BindEventOnly);
+
+            //鎴块棿鍚嶅瓧鐨勮儗鏅�
+            var btnRoomNameBackGroud = new NormalViewControl(Application.GetRealWidth(141), Application.GetRealHeight(84), false);
+            btnRoomNameBackGroud.X = Application.GetRealWidth(14);
+            btnRoomNameBackGroud.UnSelectedImagePath = "Room/RoomCardView_Name.png";
+            this.AddChidren(btnRoomNameBackGroud, ChidrenBindMode.BindEventOnly);
+
+            //鎴块棿鍚嶅瓧
+            this.btnRoomName = new NormalViewControl(btnRoomNameBackGroud.Width, btnRoomNameBackGroud.Height, false);
+            btnRoomName.X = Application.GetRealWidth(14);
+            btnRoomName.TextSize = 12;
+            btnRoomName.IsBold = true;
+            btnRoomName.TextAlignment = TextAlignment.Center;
+            btnRoomName.TextColor = UserCenterColor.Current.White;
+            this.AddChidren(btnRoomName, ChidrenBindMode.BindEventOnly);
+
+            //鍒锋柊鎺т欢淇℃伅
+            this.RefreshControl();
+        }
+
+        #endregion
+
+        #region 鈻� 鍒锋柊鎺т欢___________________________
+
+        /// <summary>
+        /// 鍒锋柊鎺т欢淇℃伅
+        /// </summary>
+        public void RefreshControl()
+        {
+            var room = HdlRoomLogic.Current.GetRoomById(this.roomId);
+            if (room != null)
+            {
+                //鍒锋柊鍚嶅瓧
+                btnRoomName.Text = room.Name;
+                if (btnRoomName.GetRealWidthByText() > Application.GetRealWidth(141))
+                {
+                    //瀛椾綋闀垮害瓒呰繃
+                    btnRoomName.TextAlignment = TextAlignment.CenterLeft;
+                }
+                else
+                {
+                    btnRoomName.TextAlignment = TextAlignment.Center;
+                }
+                //鍒锋柊鍥剧墖
+                if (room.BackgroundImageType == 0)
+                {
+                    picRoom.ImagePath = room.BackgroundImage;
+                }
+                else
+                {
+                    picRoom.ImagePath = System.IO.Path.Combine(Common.Config.Instance.FullPath, room.BackgroundImage);
+                }
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/SceneCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/SceneCardControl.cs
index def39fb..7290a4b 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/SceneCardControl.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/SceneCardControl.cs
@@ -59,8 +59,6 @@
 
             this.ButtonClickEvent += (sender, e) =>
             {
-                //寮�鍚疞oading鐗规晥
-                this.StartLoadingApreal();
                 //璋冪敤鍦烘櫙
                 this.SetSceneAction();
             };
@@ -73,6 +71,9 @@
         public void InitControl(Common.SceneUI i_scene)
         {
             this.SceneId = i_scene.Id;
+            string hourText = Language.StringByID(R.MyInternationalizationString.Hour);
+            string minuText = Language.StringByID(R.MyInternationalizationString.Minute);
+            string secondText = Language.StringByID(R.MyInternationalizationString.Second);
 
             //鍦烘櫙鍥剧墖鎺т欢
             this.btnScenePic = new ImageView();
@@ -93,6 +94,10 @@
             btnTimeView.Y = Application.GetMinRealAverage(10);
             btnTimeView.TextColor = 0xffffb400;
             btnTimeView.IsBold = true;
+            if (i_scene.SceneDelayTime > 0)
+            {
+                btnTimeView.Text= this.GetTimeString(i_scene.SceneDelayTime, hourText, minuText, secondText);
+            }
             this.AddChidren(btnTimeView, ChidrenBindMode.BindEventOnly);
 
             //鏃堕棿鍥炬爣鎺т欢
@@ -100,7 +105,34 @@
             btnTimeIcon.X = Application.GetMinRealAverage(37);
             btnTimeIcon.Y = Application.GetMinRealAverage(20);
             btnTimeIcon.UnSelectedImagePath = "Item/Time.png";
-            this.AddChidren(btnTimeIcon, ChidrenBindMode.BindEventOnly);
+            this.AddChidren(btnTimeIcon, ChidrenBindMode.NotBind);
+            if (i_scene.SceneDelayTime > 0)
+            {
+                btnTimeIcon.Visible = false;
+            }
+            btnTimeIcon.ButtonClickEvent += (sender, e) =>
+            {
+                if (i_scene.RemainTime > 0)
+                {
+                    //璇ュ満鏅鍦ㄥ欢鏃讹紝璇风◢鍚�
+                    var msgContr = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.TheSceneIsDelaying));
+                    msgContr.Show();
+                    return;
+                }
+                var timeSelect = new Device.CommonForm.SelectTime();
+                Common.CommonPage.Instance.AddChidren(timeSelect);
+                timeSelect.TempTime = i_scene.SceneDelayTime;
+                timeSelect.Init();
+                timeSelect.TimeAction = (time) =>
+                {
+                    i_scene.SceneDelayTime = time;
+
+                   //鏃堕棿鍥炬爣涓嶆樉绀�
+                   this.btnTimeIcon.Visible = false;
+                   //鏄剧ず鍓╀綑鐨勬椂闂�
+                   this.btnTimeView.Text = this.GetTimeString(time, hourText, minuText, secondText);
+                };
+            };
 
             //鏀惰棌鎺т欢
             var btnCollect = new IconViewControl(107);
@@ -154,38 +186,22 @@
         {
             //杩欎釜鍦烘櫙涓嶈鐨勬儏鍐靛簲璇ヤ笉鍙兘
             var scene = HdlSceneLogic.Current.GetSceneUIBySceneId(this.SceneId);
-            if (scene.RemainTime > 0 )
+            if (scene.SceneDelayTime <= 0 && scene.RemainTime <= 0)
             {
-                //璇ュ満鏅鍦ㄥ欢鏃讹紝璇风◢鍚�
-                var msgContr = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.TheSceneIsDelaying));
-                msgContr.Show();
-                return;
+                //濡傛灉娌℃湁寤惰繜鐨勮瘽,鐩存帴寮�鍚疞oading鐗规晥
+                this.StartLoadingApreal();
             }
             //鎵ц璋冪敤鍦烘櫙
-            var result = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime);
-            if (result == null || result.sceneOpenData == null)
+            var result = await HdlSceneLogic.Current.ControlScene(scene);
+            if (result == false)
             {
-                //鎺у埗鍦烘櫙澶辫触
-                string msg = Language.StringByID(R.MyInternationalizationString.ControlSceneFail);
-                //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg
-                msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, result);
-                var msgContr = new ShowMsgControl(ShowMsgType.Tip, msg);
-                msgContr.Show();
-                return;
-            }
-            if (result.sceneOpenData.Result == 0)
-            {
-                //鎺у埗鍦烘櫙澶辫触
-                string msg = Language.StringByID(R.MyInternationalizationString.ControlSceneFail);
-                var msgContr = new ShowMsgControl(ShowMsgType.Tip, msg);
-                msgContr.Show();
                 return;
             }
             //淇敼鏃堕棿
             scene.RemainTime = scene.SceneDelayTime;
             scene.SceneDelayTime = 0;
             //寮�鍚欢鏃跺�掕鏃剁壒鏁�
-            this.StartRemainTimeApreal(scene, true);
+            this.StartRemainTimeApreal(scene);
         }
 
         #endregion
@@ -218,7 +234,7 @@
             }
 
             //寮�鍚欢鏃跺�掕鏃剁壒鏁�
-            this.StartRemainTimeApreal(i_scene, false);
+            this.StartRemainTimeApreal(i_scene);
         }
 
         #endregion
@@ -229,8 +245,7 @@
         /// 寮�鍚欢鏃跺�掕鏃剁壒鏁�
         /// </summary>
         /// <param name="i_scene"></param>
-        /// <param name="setTime">鏄惁鏇存敼鍦烘櫙瀵硅薄閲岄潰鐨勯偅涓椂闂�,鏃ㄥ湪瀵瑰簲鍚屼竴涓満鏅湪澶氫釜鍦版柟鏄剧ず鐨勫悓姝ラ棶棰�</param>
-        private void StartRemainTimeApreal(Common.SceneUI i_scene, bool setTime)
+        private void StartRemainTimeApreal(Common.SceneUI i_scene)
         {
             if (i_scene.RemainTime <= 0)
             {
@@ -246,29 +261,27 @@
             //鏄剧ず鍓╀綑鐨勬椂闂�
             this.btnTimeView.Text = this.GetTimeString(i_scene.RemainTime, hourText, minuText, secondText);
 
+            //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
+            HdlSceneLogic.Current.StartDelayTimeThread(i_scene);
+
             new System.Threading.Thread(() =>
             {
-                while (remainTine > 0)
+                while (remainTine > 0 && this.Parent != null)
                 {
                     System.Threading.Thread.Sleep(1000);
                     Application.RunOnMainThread(() =>
                     {
                         this.btnTimeView.Text = this.GetTimeString(remainTine, hourText, minuText, secondText);
                     });
-                    if (setTime == true)
-                    {
-                        //瑕嗙洊鍓╀綑鏃堕棿
-                        i_scene.RemainTime = remainTine;
-                    }
+                    remainTine--;
                 }
                 Application.RunOnMainThread(() =>
                 {
-                    //鏃犳潯浠惰鐩栧墿浣欐椂闂�
-                    i_scene.RemainTime = 0;
-
                     //鍊掕鏃剁粨鏉熸椂锛屾椂闂村浘鏍囨樉绀�
                     this.btnTimeIcon.Visible = true;
                     this.btnTimeView.Text = string.Empty;
+                    //鐩存帴寮�鍚疞oading鐗规晥
+                    this.StartLoadingApreal();
                 });
             })
             { IsBackground = true }.Start();
@@ -291,7 +304,7 @@
             var loadContr = new MyProgressLoading();
             loadContr.LoadingBackgroundColor = UserCenterColor.Current.Transparent;
             frameBack.AddChidren(loadContr);
-            loadContr.StartLoading();
+            loadContr.StartLoading(1000);
             loadContr.DisponeEvent += () =>
             {
                 frameBack.RemoveFromParent();
@@ -330,7 +343,7 @@
             int hour = second / 3600;
             int minu = second % 3600 / 60;
             int sec = second % 60;
-            if (hour >= 0)
+            if (hour > 0)
             {
                 timeStr += hour + hourText;
             }
diff --git a/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs b/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
new file mode 100755
index 0000000..2dfd8a5
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/MainPage/HomeMainPageForm.cs
@@ -0,0 +1,1209 @@
+锘縰sing Shared.Common;
+using Shared.Phone.Device.CommonForm;
+using Shared.Phone.UserCenter;
+using System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.MainPage
+{
+    /// <summary>
+    /// 涓婚〉(娉ㄦ剰,BodyFrameLyout鏄満鏅拰鍔熻兘鐨勬甯�)
+    /// </summary>
+    public class HomeMainPageForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鎴块棿鐨勬粦鍔ㄥ鍣ㄦ帶浠�
+        /// </summary>
+        private HorizontalPages roomPageView = null;
+        /// <summary>
+        /// 璁惧鍗$墖鎺т欢(涓婚敭涓�:璁惧涓婚敭)
+        /// </summary>
+        private Dictionary<string, Controls.DeviceCardCommon> dicDeviceCardControl = new Dictionary<string, Controls.DeviceCardCommon>();
+        /// <summary>
+        /// 鍦烘櫙鍗$墖鎺т欢(涓婚敭涓�:鍦烘櫙ID)
+        /// </summary>
+        private Dictionary<int, Controls.SceneCardControl> dicSceneCardControl = new Dictionary<int, Controls.SceneCardControl>();
+        /// <summary>
+        /// 妤煎眰鍚嶅瓧鎺т欢
+        /// </summary>
+        private NormalViewControl btnFloorName = null;
+        /// <summary>
+        /// 鎴块棿姝e湪鍙樻洿涓�
+        /// </summary>
+        private bool isRoomChanging = false;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐣岄潰鏄剧ず
+        /// </summary>
+        public void ShowForm()
+        {
+            //鍏堝垵濮嬪寲宸︽粦鎴块棿鍒楄〃鐣岄潰
+            if (ListRoomViewFrom.Instance == null)
+            {
+                var roomList = new ListRoomViewFrom();
+                CommonPage.Instance.AddLeftView(roomList);
+                roomList.ShowForm();
+            }
+            this.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
+            //娓呴櫎鍏ㄩ儴
+            this.RemoveAll();
+
+            //鍒濆鍖栧ご閮ㄦ帶浠�
+            this.InitTopFrameLayoutControl();
+            //鍒濆鍖栦腑闂存帶浠�
+            this.InitMidFrameLayoutControl();
+            //娣诲姞璁惧鐘舵�佷笂鎶ヤ簨浠�
+            this.AddNormalDeviceReportEvent();
+            //娣诲姞浼犳劅鍣ㄧ姸鎬佷笂鎶ヤ簨浠�
+            this.AddSensorDeviceReportEvent();
+            //灏嗗綋鍓嶇殑鐢婚潰淇濆瓨鍒板唴瀛樺綋涓�
+            UserCenterLogic.AddActionForm(this);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栧ご閮ㄦ帶浠�
+        /// </summary>
+        private void InitTopFrameLayoutControl()
+        {
+            //澶撮儴瀹瑰櫒
+            base.topFrameLayout = new FrameLayout();
+            topFrameLayout.Y = Application.GetRealHeight(60);
+            topFrameLayout.Height = Application.GetRealHeight(127);
+            topFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor;
+            this.AddChidren(topFrameLayout);
+
+            //鎷ユ湁妤煎眰
+            this.btnFloorName = null;
+            if (Config.Instance.Home.FloorDics.Count > 0)
+            {
+                //妤煎眰鍥炬爣
+                var btnFloorIcon = new IconViewControl(69);
+                btnFloorIcon.X = ControlCommonResourse.XXLeft;
+                btnFloorIcon.Gravity = Gravity.CenterVertical;
+                btnFloorIcon.UnSelectedImagePath = "Item/Floor.png";
+                topFrameLayout.AddChidren(btnFloorIcon);
+                btnFloorIcon.ButtonClickEvent += (sender, e) =>
+                {
+                    //鏄剧ず閫夋嫨妤煎眰鐨勭晫闈�
+                    this.ShowSelectFloorForm(btnFloorName);
+                };
+                //妤煎眰鍚�
+                this.btnFloorName = new NormalViewControl(500, 100, true);
+                btnFloorName.X = btnFloorIcon.Right;
+                btnFloorName.Gravity = Gravity.CenterVertical;
+                btnFloorName.TextColor = ZigbeeColor.Current.GXCTextColor;
+                btnFloorName.Text = Config.Instance.Home.GetCurrentFloorName;
+                btnFloorName.IsBold = true;
+                btnFloorName.Width = btnFloorName.GetRealWidthByText() + Application.GetRealWidth(20);
+                topFrameLayout.AddChidren(btnFloorName);
+                btnFloorName.ButtonClickEvent += (sender, e) =>
+                {
+                    //鏄剧ず閫夋嫨妤煎眰鐨勭晫闈�
+                    this.ShowSelectFloorForm(btnFloorName);
+                };
+            }
+            //瀹夐槻蹇嵎鏂瑰紡
+            if (UserCenterResourse.ResidenceOption.SafetyShortcut)
+            {
+                var btnSafety = new Controls.SafetyShortcutControl();
+                btnSafety.X = Application.GetRealWidth(860);
+                btnSafety.Gravity = Gravity.CenterVertical;
+                topFrameLayout.AddChidren(btnSafety);
+            }
+            //娑堟伅鍥炬爣
+            var btnMessage = new MessageManagementControl();
+            btnMessage.X = Application.GetRealWidth(953);
+            btnMessage.Gravity = Gravity.CenterVertical;
+            btnMessage.UnSelectedImagePath = "Item/Message.png";
+            btnMessage.SelectedImagePath = "Item/MessageSelected.png";
+            topFrameLayout.AddChidren(btnMessage);
+
+            //浣忓畢鍚嶅瓧
+            var btnHouseName = new NormalViewControl(700, 95, true);
+            btnHouseName.X = ControlCommonResourse.XXLeft;
+            btnHouseName.Y = Application.GetRealHeight(161);
+            btnHouseName.TextSize = 24;
+            btnHouseName.TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor;
+            btnHouseName.IsBold = true;
+            btnHouseName.Text = Config.Instance.Home.Name;
+            btnHouseName.Width = btnHouseName.GetRealWidthByText();
+            this.AddChidren(btnHouseName);
+
+            //鍒囨崲浣忓畢
+            btnHouseName.MouseLongEventHandler += (sender, e) =>
+            {
+                if (Config.Instance.HomeFilePathList.Count == 0)
+                {
+                    //褰撳墠浣忓畢涓虹┖锛岃鍏堝缓绔嬩綇瀹�
+                    this.ShowMassage(ShowMsgType.Remind, Language.StringByID(R.MyInternationalizationString.CurrentlyTheUserIshHouseIsEmptyPleaseBuildANewHouseFirst));
+                }
+                else
+                {
+                    var selectHouse = new Device.Category.SelectHouse();
+                    selectHouse.Init();
+                    selectHouse.HouseAction = (houseId) =>
+                    {
+                        ChangeResidence(House.GetHouseByHouseId(houseId));
+                    };
+                }
+            };
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑闂存帶浠�
+        /// </summary>
+        private void InitMidFrameLayoutControl()
+        {
+            //妫�娴嬫槸鍚︾粦瀹氭湁缃戝叧
+            if (this.CheckHadBindGateway() == false)
+            {
+                //鏄剧ず娌℃湁缁戝畾杩囩綉鍏崇殑鐣岄潰
+                this.ShowNoGatewayTip();
+            }
+            else
+            {
+                //鍒濆鍖栧満鏅�,鍔熻兘鐨勫垏鎹㈡帶浠�
+                this.InitSceneFunctionSwitchControl();
+
+                //鍒濆鍖栨埧闂存粦鍔ㄦ帶浠�
+                this.InitRoomHorizontalPagesControl();
+            }
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栧満鏅�,鍔熻兘鐨勫垏鎹㈡帶浠�
+        /// </summary>
+        private void InitSceneFunctionSwitchControl()
+        {
+            //鍔熻兘鍜屽満鏅殑鑳屾櫙鍥�
+            var functionSceneView = new FrameLayout();
+            functionSceneView.Y = Application.GetRealHeight(861);
+            functionSceneView.Width = Application.GetRealWidth(832);
+            functionSceneView.Height = Application.GetRealHeight(167);
+            functionSceneView.Gravity = Gravity.CenterHorizontal;
+            functionSceneView.BackgroundImagePath = "Item/SceneFunctionBG.png";
+            this.AddChidren(functionSceneView);
+
+            //鍦烘櫙
+            var btnScene = new NormalViewControl(350, 100, true);
+            btnScene.X = Application.GetRealWidth(30);
+            btnScene.Y = Application.GetRealHeight(12);
+            btnScene.TextColor = ZigbeeColor.Current.GXCTextGrayColor3;
+            btnScene.SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor;
+            btnScene.TextID = R.MyInternationalizationString.Scence;
+            btnScene.TextSize = 15;
+            btnScene.TextAlignment = TextAlignment.Center;
+            functionSceneView.AddChidren(btnScene);
+
+            //鍔熻兘
+            var btnFunction = new NormalViewControl(360, 100, true);
+            btnFunction.X = Application.GetRealWidth(430);
+            btnFunction.Y = Application.GetRealHeight(12);
+            btnFunction.TextColor = ZigbeeColor.Current.GXCTextGrayColor3;
+            btnFunction.SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor;
+            btnFunction.TextSize = 15;
+            btnFunction.TextID = R.MyInternationalizationString.Function;
+            btnFunction.TextAlignment = TextAlignment.Center;
+            functionSceneView.AddChidren(btnFunction);
+            if (UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 1)
+            {
+                btnScene.IsSelected = true;
+                btnScene.TextSize = 16;
+                btnScene.IsBold = true;
+            }
+            else if (UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 2)
+            {
+                btnFunction.IsSelected = true;
+                btnFunction.TextSize = 16;
+                btnFunction.IsBold = true;
+            }
+
+            //鍔熻兘鍜屽満鏅痓odyView
+            this.bodyFrameLayout = new FrameLayout()
+            {
+                Y = functionSceneView.Bottom,
+                Height = Application.GetRealHeight(750),
+                Gravity = Gravity.CenterHorizontal,
+                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
+            };
+            this.AddChidren(bodyFrameLayout);
+
+            //閫夋嫨鍔熻兘鍒嗘爮
+            btnFunction.ButtonClickEvent += (sender, e) =>
+            {
+                if (btnFunction.IsSelected == true)
+                {
+                    return;
+                }
+                //鍔熻兘鍒嗘敮閫夋嫨
+                UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 2;
+
+                btnScene.IsSelected = false;
+                btnScene.TextSize = 15;
+                btnScene.IsBold = false;
+
+                btnFunction.IsSelected = true;
+                btnFunction.TextSize = 16;
+                btnFunction.IsBold = true;
+                //鍒锋柊璁惧妗屽竷鎺т欢
+                this.RefreshBodyView();
+            };
+            //閫夋嫨鍦烘櫙鍒嗘爮
+            btnScene.ButtonClickEvent += (sender, e) =>
+            {
+                if (btnScene.IsSelected == true)
+                {
+                    return;
+                }
+                //鍦烘櫙鍒嗘敮閫夋嫨
+                UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 1;
+
+                btnScene.IsSelected = true;
+                btnScene.TextSize = 16;
+                btnScene.IsBold = true;
+
+                btnFunction.IsSelected = false;
+                btnFunction.TextSize = 15;
+                btnFunction.IsBold = false;
+                //鍒锋柊璁惧妗屽竷鎺т欢
+                this.RefreshBodyView();
+            };
+        }
+
+        /// <summary>
+        /// 鎻愮ず鐢ㄦ埛娌℃湁缃戝叧锛屽苟蹇�熻烦杞埌娣诲姞缃戝叧鐣岄潰
+        /// </summary>
+        private void ShowNoGatewayTip()
+        {
+            var bg = new PicViewControl(717, 478);
+            bg.Y = Application.GetRealHeight(302);
+            bg.Gravity = Gravity.CenterHorizontal;
+            bg.UnSelectedImagePath = "Item/NoBindGW.png";
+            this.AddChidren(bg);
+
+            var tip = new NormalViewControl(Application.GetMinRealAverage(717), Application.GetMinRealAverage(58), false);
+            tip.Y = Application.GetRealHeight(815);
+            tip.Gravity = Gravity.CenterHorizontal;
+            tip.TextID = R.MyInternationalizationString.NewAccountNeedBingGW;
+            tip.TextColor = ZigbeeColor.Current.GXCTextGrayColor;
+            tip.TextAlignment = TextAlignment.Center;
+            this.AddChidren(tip);
+
+            var addBG = new PicViewControl(971, 366);
+            addBG.Y = Application.GetRealHeight(1048);
+            addBG.UnSelectedImagePath = "Item/VirtualFrame.png";
+            addBG.Gravity = Gravity.CenterHorizontal;
+            this.AddChidren(addBG);
+
+            var addGatewayBtn = new IconViewControl(89);
+            addGatewayBtn.Y = Application.GetRealHeight(1143);
+            addGatewayBtn.UnSelectedImagePath = "Item/Add_GW.png";
+            addGatewayBtn.Gravity = Gravity.CenterHorizontal;
+            this.AddChidren(addGatewayBtn);
+            addGatewayBtn.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new UserCenter.GatewayAdd.NewGateWayMenuSelectForm();
+                form.AddForm();
+            };
+
+            var addTip = new PicViewControl(717, 58);
+            addTip.Y = Application.GetRealHeight(1256);
+            addTip.Gravity = Gravity.CenterHorizontal;
+            addTip.TextID = R.MyInternationalizationString.AddSmartGW;
+            addTip.TextColor = ZigbeeColor.Current.GXCTextBlackColor;
+            addTip.TextAlignment = TextAlignment.Center;
+            AddChidren(addTip);
+
+            addTip.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new UserCenter.GatewayAdd.NewGateWayMenuSelectForm();
+                form.AddForm();
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖栨埧闂存粦鍔ㄦ帶浠禵________________
+
+        /// <summary>
+        /// 鍒濆鍖栨埧闂存粦鍔ㄦ帶浠�
+        /// </summary>
+        private void InitRoomHorizontalPagesControl()
+        {
+            //宸﹀彸婊戝姩鎺т欢鐨勮儗鏅鍣�
+            var frameBack = new FrameLayout();
+            frameBack.Y = Application.GetRealHeight(302);
+            frameBack.Width = Application.GetRealWidth(CommonPage.AppRealWidth);
+            frameBack.Height = Application.GetRealHeight(478);
+            this.AddChidren(frameBack);
+
+            this.roomPageView = new HorizontalPages();
+            roomPageView.Width = frameBack.Width;
+            roomPageView.Height = frameBack.Height;
+            frameBack.AddChidren(roomPageView);
+            //绐佸嚭杈硅窛
+            roomPageView.TCBJ = Application.GetRealWidth(124);
+            //涓や釜page涔嬮棿鐨勯棿璺�
+            roomPageView.JMBJ = Application.GetRealWidth(58);
+            //鍦ㄨ繖涓帶浠剁殑涓嬮潰娣诲姞闃村奖鏁堟灉
+            var btnRoomBottomShadow = new NormalViewControl(717, 81, true);
+            btnRoomBottomShadow.Y = frameBack.Bottom;
+            btnRoomBottomShadow.Gravity = Gravity.CenterHorizontal;
+            btnRoomBottomShadow.UnSelectedImagePath = "Room/RoomCardShadow.png";
+            this.AddChidren(btnRoomBottomShadow);
+
+            //褰撳墠鎴块棿
+            var listRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
+            var curIndex = 0;
+            for (int i = 0; i < listRoom.Count; i++)
+            {
+                var roomView = new RoomView(0, 0);
+                roomPageView.AddChidren(roomView);
+                roomView.Init(listRoom[i]);
+                
+                if (listRoom[i].Id == HdlRoomLogic.Current.CurrentRoom.Id)
+                {
+                    //褰撳墠鎴块棿,鍒欐樉绀洪偅浜涙暟鎹嚭鏉�
+                    roomView.HideName(false);
+                    //褰撳墠绱㈠紩
+                    curIndex = i;
+                }
+                else
+                {
+                    roomView.HideName(true);
+                }
+            }
+            //璁剧疆鎴块棿鐨勫垵濮嬮�夋嫨
+            roomPageView.PageIndex = curIndex;
+            //鎴块棿鑳藉婊戝姩鐨勬椂鍊欐墠鏄剧ず
+            FrameLayout btnRoomLeftShadow = null;
+            FrameLayout btnRoomRightShadow = null;
+            if (listRoom.Count > 1)
+            {
+                //鍦ㄦ埧闂村崱鐗囧乏杈规坊鍔犻伄缃�
+                btnRoomLeftShadow = new FrameLayout();
+                btnRoomLeftShadow.Width = Application.GetRealWidth(124);
+                btnRoomLeftShadow.Height = roomPageView.Height - roomPageView.JMBJ * 2;
+                btnRoomLeftShadow.Gravity = Gravity.CenterVertical;
+                btnRoomLeftShadow.BackgroundColor = 0x1c000000;
+                btnRoomLeftShadow.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight);
+                btnRoomLeftShadow.Visible = curIndex >= 1;
+                frameBack.AddChidren(btnRoomLeftShadow);
+
+                //鍦ㄦ埧闂村崱鐗囧彸杈规坊鍔犻伄缃�
+                btnRoomRightShadow = new FrameLayout();
+                btnRoomRightShadow.Width = btnRoomLeftShadow.Width;
+                btnRoomRightShadow.Height = btnRoomLeftShadow.Height;
+                btnRoomRightShadow.X = Application.GetRealWidth(956);
+                btnRoomRightShadow.Gravity = Gravity.CenterVertical;
+                btnRoomRightShadow.BackgroundColor = btnRoomLeftShadow.BackgroundColor;
+                btnRoomRightShadow.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerBottomLeft);
+                btnRoomRightShadow.Visible = curIndex < listRoom.Count - 1;
+                frameBack.AddChidren(btnRoomRightShadow);
+            }
+            //鎺т欢寮�濮嬫粦鍔ㄧ殑浜嬩欢
+            roomPageView.StartScrollAction += () =>
+            {
+                this.isRoomChanging = true;
+                //寮�濮嬫粦鍔ㄦ椂,闅愯棌褰撳墠鐨勬暟鎹樉绀�
+                (roomPageView.GetChildren(roomPageView.PageIndex) as RoomView).HideName(true);
+                if (btnRoomLeftShadow != null) { btnRoomLeftShadow.Visible = false; }
+                if (btnRoomRightShadow != null) { btnRoomRightShadow.Visible = false; }
+                btnRoomBottomShadow.Visible = false;
+            };
+            roomPageView.EndScrollAction += () =>
+            {
+                curIndex = roomPageView.PageIndex;
+                //鍓嶄竴寮犲崱鐗�
+                if (roomPageView.GetChildren(curIndex - 1) != null)
+                {
+                    (roomPageView.GetChildren(curIndex - 1) as RoomView).HideName(true);
+                }
+                //褰撳墠鍗$墖
+                if (roomPageView.GetChildren(curIndex) != null)
+                {
+                    (roomPageView.GetChildren(curIndex) as RoomView).HideName(false);
+                }
+                //涓嬩竴寮犲崱鐗�
+                if (roomPageView.GetChildren(curIndex + 1) != null)
+                {
+                    (roomPageView.GetChildren(curIndex + 1) as RoomView).HideName(true);
+                }
+
+                if (btnRoomLeftShadow != null) { btnRoomLeftShadow.Visible = curIndex >= 1; }
+                if (btnRoomRightShadow != null) { btnRoomRightShadow.Visible = curIndex < listRoom.Count - 1; }
+                btnRoomBottomShadow.Visible = true;
+                //鍒囨崲褰撳墠鎴块棿
+                HdlRoomLogic.Current.CurrentRoom = listRoom[curIndex];
+                //鍒锋柊璁惧妗屽竷鎺т欢
+                this.isRoomChanging = false;
+                this.RefreshBodyView();
+            };
+        }
+
+        /// <summary>
+        /// 璁剧疆鎴块棿鐨勬粦鍔ㄥ鍣ㄦ帶浠堕�夋嫨鎸囧畾鐨勬埧闂�(渚涘閮ㄨ皟鐢�)
+        /// </summary>
+        /// <param name="room"></param>
+        public void SetRoomPageViewSelect(Room room)
+        {
+            var listRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
+            for (int i = 0; i < listRoom.Count; i++)
+            {
+                if (room.Id == listRoom[i].Id)
+                {
+                    if (roomPageView.PageIndex != i)
+                    {
+                        //涓嶇浉鍚屾椂鎵嶅埛鏂�
+                        roomPageView.PageIndex = i;
+                    }
+                    break;
+                }
+            }
+            //閲嶇疆涓�涓嬫ゼ灞傚悕瀛�
+            if (this.btnFloorName != null)
+            {
+                btnFloorName.Text = HdlResidenceLogic.Current.GetFloorNameById(Config.Instance.Home.CurrentFloorId);
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鍔熻兘鍒嗘敮___________________________
+
+        /// <summary>
+        /// 鏄剧ず鍔熻兘
+        /// </summary>
+        private void ShowFunction()
+        {
+            //鍏堟竻绌虹紦瀛�
+            bodyFrameLayout.RemoveAll();
+            this.dicSceneCardControl.Clear();
+            this.dicDeviceCardControl.Clear();
+
+            var listDevice = new List<CommonDevice>();
+            foreach (var mainkeys in HdlRoomLogic.Current.CurrentRoom.ListDevice)
+            {
+                var device = LocalDevice.Current.GetDevice(mainkeys);
+                if (device == null
+                    || device.Type == DeviceType.OnOffSwitch)//骞叉帴鐐�
+                {
+                    //杩欎釜璁惧涓嶈浜�
+                    continue;
+                }
+                listDevice.Add(device);
+            }
+
+            //褰撳墠鎴块棿鐨勮澶囨暟
+            if (listDevice.Count == 0)
+            {
+                ShowNoFunctionTip();
+                return;
+            }
+            //鍒楄〃鎺т欢
+            var listView = new VerticalFrameControl();
+            listView.Height = bodyFrameLayout.Height;
+            bodyFrameLayout.AddChidren(listView);
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //鍒濆鍖栬澶囧崱鐗囧垪琛ㄦ帶浠�
+                this.InitDeviceListCardControl(listView, listDevice);
+            });
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栬澶囧崱鐗囧垪琛ㄦ帶浠�
+        /// </summary>
+        /// <param name="listView"></param>
+        private void InitDeviceListCardControl(VerticalFrameControl listView, List<CommonDevice> listDevice)
+        {
+            //璁惧璁℃暟
+            int contrCount = 0;
+            //X杞村潗鏍�(鍥剧墖宸﹁竟鏈変綑鐧�)
+            int XX = Application.GetMinRealAverage(44);
+            //Y杞村潗鏍�
+            int YY = 0;
+            var listContr = new List<Controls.DeviceCardCommon>();
+            foreach (var device in listDevice)
+            {
+                if (this.isRoomChanging == true || listView.Parent == null)
+                {
+                    //鏀惧純鍒濆鍖栨帶浠�
+                    return;
+                }
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    Controls.DeviceCardCommon cardContr = null;
+                    //绐楀笜
+                    if (device.Type == DeviceType.WindowCoveringDevice)
+                    {
+                        cardContr = new Controls.DeviceCurtainCardControl();
+                    }
+                    //缁х數鍣�
+                    else if (device.Type == DeviceType.OnOffOutput)
+                    {
+                        cardContr = new Controls.DeviceRelayCardControl();
+                    }
+                    //绌烘皵寮�鍏�
+                    else if (device.Type == DeviceType.AirSwitch)
+                    {
+                        cardContr = new Controls.DeviceAirSwitchCardControl();
+                    }
+                    //绌鸿皟
+                    else if (device.Type == DeviceType.Thermostat)
+                    {
+                        cardContr = new Controls.DeviceAcCardControl();
+                    }
+                    //褰╃伅(璋冨厜鍣�)
+                    else if (device.Type == DeviceType.DimmableLight)
+                    {
+                        cardContr = new Controls.DeviceColorLightCardControl();
+                    }
+                    //浼犳劅鍣�
+                    else if (device.Type == DeviceType.IASZone)
+                    {
+                        cardContr = new Controls.DeviceSensorCardControl();
+                    }
+                    //娓╂箍搴�
+                    else if (device.Type == DeviceType.TemperatureSensor)
+                    {
+                        cardContr = new Controls.DeviceTemperatureCardControl();
+                    }
+                    //闂ㄩ攣
+                    else if (device.Type == DeviceType.DoorLock)
+                    {
+                        cardContr = new Controls.DeviceDoorLockCardControl();
+                    }
+                    //鏃犳硶璇嗗埆
+                    else
+                    {
+                        cardContr = new Controls.DeviceCardCommon();
+                    }
+
+                    //鍒濆鍖栧崱鐗�
+                    cardContr.X = XX;
+                    cardContr.Y = YY;
+                    listView.frameTable.AddChidren(cardContr);
+                    cardContr.InitControl(device);
+                    //鍗$墖闇�瑕佽绉婚櫎鐨勪簨浠�
+                    cardContr.CardNeedRemoveEvent += () =>
+                    {
+                        //閲嶇疆璁惧鍗$墖鎺т欢鍧愭爣(鍗$墖闇�瑕佽鍒犻櫎涓撶敤)
+                        this.ResetDeviceCardControlLocation(LocalDevice.Current.GetDeviceMainKeys(device));
+                    };
+                    //璁惧璁℃暟
+                    contrCount++;
+                    //鍗$墖宸﹀彸涓よ竟鏈�14鐨勪綑鐧�,姣忎袱涓悗,X杞撮噸缃�
+                    XX = contrCount % 2 == 0 ? Application.GetMinRealAverage(44) : cardContr.Right + Application.GetMinRealAverage(20);
+                    if (contrCount % 2 == 0)
+                    {
+                        //娌′袱涓箣鍚�,Y杞撮�掑
+                        YY = cardContr.Bottom + Application.GetMinRealAverage(15);
+                    }
+                    //鎺т欢璁板綍鍒扮紦瀛樹腑
+                    this.dicDeviceCardControl[LocalDevice.Current.GetDeviceMainKeys(device)] = cardContr;
+                    //鍔犵紦瀛�,鐒跺悗鍙戝懡浠�
+                    listContr.Add(cardContr);
+
+                    if (contrCount == listDevice.Count)
+                    {
+                        //璋冩暣妗屽竷澶у皬
+                        listView.AdjustTableHeight();
+                        HdlThreadLogic.Current.RunThread(() =>
+                        {
+                            for (int i = 0; i < listContr.Count; i++)
+                            {
+                                if (listView.Parent == null)
+                                {
+                                    return;
+                                }
+                                System.Threading.Thread.Sleep(20);
+                                //鍙戦�佽幏鍙栫姸鎬佺殑鍛戒护
+                                listContr[i].SendStatuComand();
+                            }
+
+                        }, ShowErrorMode.NO);
+                    }
+                });
+
+                System.Threading.Thread.Sleep(50);
+            }
+        }
+
+        /// <summary>
+        /// 鏄剧ず娌℃湁鍔熻兘
+        /// </summary>
+        private void ShowNoFunctionTip()
+        {
+            var noFunction = new Button
+            {
+                Y = Application.GetRealHeight(69),
+                Width = Application.GetMinRealAverage(683),
+                Height = Application.GetMinRealAverage(392),
+                Gravity = Gravity.CenterHorizontal,
+                UnSelectedImagePath = "Item/NoFunction.png"
+            };
+            bodyFrameLayout.AddChidren(noFunction);
+
+            var noFunctionTip = new Button()
+            {
+                Y = noFunction.Bottom,
+                Height = Application.GetRealHeight(200),
+                Text = Language.StringByID(R.MyInternationalizationString.NoFunction_Tip).Replace("{\\r\\n}", "\r\n"),
+                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
+                TextAlignment = TextAlignment.Center,
+                IsMoreLines = true
+            };
+            bodyFrameLayout.AddChidren(noFunctionTip);
+        }
+
+        #endregion
+
+        #region 鈻� 閲嶇疆璁惧鍗$墖鎺т欢鍧愭爣_______________
+
+        /// <summary>
+        /// 閲嶇疆璁惧鍗$墖鎺т欢鍧愭爣(鍗$墖闇�瑕佽鍒犻櫎涓撶敤)
+        /// </summary>
+        /// <param name="deleteKey">闇�瑕佽鍒犻櫎鐨勫崱鐗囦富閿�</param>
+        private void ResetDeviceCardControlLocation(string deleteKey)
+        {
+            if (this.dicDeviceCardControl.ContainsKey(deleteKey) == false)
+            {
+                //濡傛灉鍒楄〃閲岄潰娌℃湁杩欎釜鎺т欢鐨勮瘽
+                return;
+            }
+            var deleteContr = this.dicDeviceCardControl[deleteKey];
+
+            //璁惧璁℃暟
+            int contrCount = 0;
+         
+            bool canMove = false;
+            int YY = 0;
+            foreach (var mainkey in this.dicDeviceCardControl.Keys)
+            {
+                if (deleteKey == mainkey)
+                {
+                    //濡傛灉宸茬粡鍒颁簡瑕佸垹闄ょ殑鍗$墖,鍒犻櫎鎺夊畠,鐒跺悗瀹冧箣鍚庣殑鍗$墖鍏ㄩ儴鍚戜笂绉诲姩
+                    canMove = true;
+                    continue;
+                }
+                //璁惧璁℃暟
+                contrCount++;
+                //鍗$墖宸﹀彸涓よ竟鏈�14鐨勪綑鐧�,姣忎袱涓悗,X杞撮噸缃�
+                int XX = 0;
+                if (contrCount % 2 == 1)
+                {
+                    //绗竴涓浐瀹�44
+                    XX = Application.GetMinRealAverage(44);
+                }
+                else
+                {
+                    //绗簩涓槸44+鎺т欢瀹藉害+20浣欑櫧
+                    XX = Application.GetMinRealAverage(44) + this.dicDeviceCardControl[mainkey].Width + Application.GetMinRealAverage(20);
+                }
+
+                //姣忎袱涓箣鍚�,骞朵笖鏄涓�涓殑鏃跺��,Y杞撮�掑
+                if (contrCount > 2 && contrCount % 2 == 1)
+                {
+                    //姹傚晢
+                    int value = contrCount / 2;
+                    //鎺т欢鐨勫簳閮ㄦ湁15鐨勯棿闅�
+                    YY = value * (this.dicDeviceCardControl[mainkey].Height + Application.GetMinRealAverage(15));
+                }
+                if (canMove == true)
+                {
+                    //绉诲姩鎺т欢
+                    this.dicDeviceCardControl[mainkey].X = XX;
+                    this.dicDeviceCardControl[mainkey].Y = YY;
+                }
+            }
+            //鍘绘壘涓�涓嬭繖涓帶浠剁殑鍒楄〃瀹瑰櫒
+            var listView = deleteContr.Parent.Parent as VerticalFrameControl;
+
+            //鍒犻櫎鎺夐偅寮犲崱鐗囩殑涓婚敭
+            deleteContr.RemoveFromParent();
+            this.dicDeviceCardControl.Remove(deleteKey);
+
+            //璋冩暣妗屽竷楂樺害
+            listView?.AdjustTableHeight();
+        }
+
+        #endregion
+
+        #region 鈻� 鍦烘櫙鍒嗘敮___________________________
+
+        /// <summary>
+        /// 鏄剧ず鍦烘櫙
+        /// </summary>
+        private void ShowScene()
+        {
+            //鍏堟竻绌虹紦瀛�
+            bodyFrameLayout.RemoveAll();
+            this.dicSceneCardControl.Clear();
+            this.dicDeviceCardControl.Clear();
+
+            var listScene = new List<SceneUI>();
+            foreach (int sceneId in HdlRoomLogic.Current.CurrentRoom.ListSceneId)
+            {
+                var sceneUi = HdlSceneLogic.Current.GetSceneUIBySceneId(sceneId);
+                if (sceneUi == null)
+                {
+                    //杩欎釜鍦烘櫙涓嶈浜�
+                    continue;
+                }
+                listScene.Add(sceneUi);
+            }
+
+            if (listScene.Count == 0)
+            {
+                //鏄剧ず娌″満鏅�
+                this.ShowNoSceneTip();
+                return;
+            }
+            //鍒楄〃鎺т欢
+            var listView = new VerticalFrameControl();
+            listView.Height = bodyFrameLayout.Height;
+            bodyFrameLayout.AddChidren(listView);
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //鍒濆鍖栬澶囧崱鐗囧垪琛ㄦ帶浠�
+                this.InitSceneListCardControl(listView, listScene);
+            });
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栧満鏅崱鐗囧垪琛ㄦ帶浠�
+        /// </summary>
+        /// <param name="listView"></param>
+        private void InitSceneListCardControl(VerticalFrameControl listView, List<SceneUI> listScene)
+        {
+            //鍦烘櫙璁℃暟
+            int contrCount = 0;
+            //X杞村潗鏍�(鍥剧墖宸﹁竟鏈変綑鐧�)
+            int XX = Application.GetMinRealAverage(44);
+            //Y杞村潗鏍�
+            int YY = 0;
+            foreach (var sceneUi in listScene)
+            {
+                if (this.isRoomChanging == true || listView.Parent == null)
+                {
+                    //鏀惧純鍒濆鍖栨帶浠�
+                    return;
+                }
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍒濆鍖栧崱鐗�
+                    var cardContr = new Controls.SceneCardControl();
+                    cardContr.X = XX;
+                    cardContr.Y = YY;
+                    listView.frameTable.AddChidren(cardContr);
+                    cardContr.InitControl(sceneUi);
+                    //鍗$墖闇�瑕佽绉婚櫎鐨勪簨浠�
+                    cardContr.CardNeedRemoveEvent += () =>
+                    {
+                        //閲嶇疆璁惧鍗$墖鎺т欢鍧愭爣(鍗$墖闇�瑕佽鍒犻櫎涓撶敤)
+                        this.ResetSceneCardControlLocation(sceneUi.Id);
+                    };
+                    //璁惧璁℃暟
+                    contrCount++;
+                    //姣忎袱涓悗,X杞撮噸缃�
+                    XX = contrCount % 2 == 0 ? Application.GetMinRealAverage(44) : cardContr.Right + Application.GetMinRealAverage(20);
+                    if (contrCount % 2 == 0)
+                    {
+                        //娌′袱涓箣鍚�,Y杞撮�掑
+                        YY = cardContr.Bottom + Application.GetMinRealAverage(15);
+                    }
+                    //鎺т欢璁板綍鍒扮紦瀛樹腑
+                    this.dicSceneCardControl[sceneUi.Id] = cardContr;
+                    if (contrCount == listScene.Count)
+                    {
+                        //璋冩暣妗屽竷楂樺害
+                        listView.AdjustTableHeight();
+                        HdlThreadLogic.Current.RunThread(() =>
+                        {
+                            //璁剧疆鐩墠鍦烘櫙鐨勫欢杩熺姸鎬�
+                            this.SetSceneDelayTime(listView);
+                        });
+                    }
+                });
+                System.Threading.Thread.Sleep(50);
+            }
+        }
+
+        /// <summary>
+        /// 鏄剧ず娌″満鏅�
+        /// </summary>
+        private void ShowNoSceneTip()
+        {
+            var noScene = new Button
+            {
+                Y = Application.GetRealHeight(69),
+                Width = Application.GetMinRealAverage(683),
+                Height = Application.GetMinRealAverage(392),
+                Gravity = Gravity.CenterHorizontal,
+                UnSelectedImagePath = "Item/NoFunction.png"
+            };
+            bodyFrameLayout.AddChidren(noScene);
+            var noScenceTip = new Button()
+            {
+                Y = noScene.Bottom,
+                Height = Application.GetRealHeight(200),
+                Text = Language.StringByID(R.MyInternationalizationString.NoScene_Tip).Replace("{\\r\\n}", "\r\n"),
+                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
+                TextAlignment = TextAlignment.Center,
+                IsMoreLines = true
+            };
+            bodyFrameLayout.AddChidren(noScenceTip);
+        }
+
+        /// <summary>
+        /// 璁剧疆鍦烘櫙鐨勫欢杩熺姸鎬�
+        /// </summary>
+        /// <param name="listView"></param>
+        private async void SetSceneDelayTime(VerticalFrameControl listView)
+        {
+            await System.Threading.Tasks.Task.Delay(1500);
+            if (listView.Parent == null)
+            {
+                //鎺т欢宸茬粡琚Щ闄�
+                return;
+            }
+            //绛夊緟1.5绉掍箣鍚�,鑾峰彇寤惰繜鐘舵��
+            var result = await Scene.CatDelaySceneAsync();
+            if (result == null || result.catDelaySceneResponseData == null)
+            {
+                return;
+            }
+            if (listView.Parent == null)
+            {
+                //鎺т欢宸茬粡琚Щ闄�
+                return;
+            }
+            foreach (var data in result.catDelaySceneResponseData.DelayScenesList)
+            {
+                var sceneUi = HdlSceneLogic.Current.GetSceneUIBySceneId(data.ScenesId);
+                if (sceneUi == null)
+                {
+                    continue;
+                }
+                if (this.dicSceneCardControl.ContainsKey(data.ScenesId) == false)
+                {
+                    continue;
+                }
+                //淇敼鍓╀綑寤惰繜鏃堕棿
+                sceneUi.RemainTime = data.RemainTime;
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍒锋柊鍗$墖淇℃伅
+                    this.dicSceneCardControl[data.ScenesId].RefreshControlInfo(sceneUi);
+                });
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 閲嶇疆鍦烘櫙鍗$墖鎺т欢鍧愭爣_______________
+
+        /// <summary>
+        /// 閲嶇疆鍦烘櫙鍗$墖鎺т欢鍧愭爣(鍗$墖闇�瑕佽鍒犻櫎涓撶敤)
+        /// </summary>
+        /// <param name="deleteKey">闇�瑕佽鍒犻櫎鐨勫崱鐗囦富閿�</param>
+        private void ResetSceneCardControlLocation(int deleteId)
+        {
+            if (this.dicSceneCardControl.ContainsKey(deleteId) == false)
+            {
+                //濡傛灉鍒楄〃閲岄潰娌℃湁杩欎釜鎺т欢鐨勮瘽
+                return;
+            }
+            var deleteContr = this.dicSceneCardControl[deleteId];
+            //璁惧璁℃暟
+            int contrCount = 0;
+
+            bool canMove = false;
+            int YY = 0;
+            foreach (var sceneId in this.dicSceneCardControl.Keys)
+            {
+                if (deleteId == sceneId)
+                {
+                    //濡傛灉宸茬粡鍒颁簡瑕佸垹闄ょ殑鍗$墖,鍒犻櫎鎺夊畠,鐒跺悗瀹冧箣鍚庣殑鍗$墖鍏ㄩ儴鍚戜笂绉诲姩
+                    canMove = true;
+                    continue;
+                }
+                //璁惧璁℃暟
+                contrCount++;
+                //姣忎袱涓悗,X杞撮噸缃�
+                int XX = 0;
+                if (contrCount % 2 == 1)
+                {
+                    //绗竴涓浐瀹�44
+                    XX = Application.GetMinRealAverage(44);
+                }
+                else
+                {
+                    //绗簩涓槸44+鎺т欢瀹藉害+20浣欑櫧
+                    XX = Application.GetMinRealAverage(44) + this.dicSceneCardControl[sceneId].Width + Application.GetMinRealAverage(20);
+                }
+
+                //姣忎袱涓箣鍚�,骞朵笖鏄涓�涓椂,Y杞撮�掑
+                if (contrCount > 2 && contrCount % 2 == 1)
+                {
+                    //姹傚晢
+                    int value = contrCount / 2;
+                    //鎺т欢鐨勫簳閮ㄦ湁15鐨勯棿闅�
+                    YY = value * (this.dicSceneCardControl[sceneId].Height + Application.GetMinRealAverage(15));
+                }
+                if (canMove == true)
+                {
+                    //绉诲姩鎺т欢
+                    this.dicSceneCardControl[sceneId].X = XX;
+                    this.dicSceneCardControl[sceneId].Y = YY;
+                }
+            }
+            //鍘绘壘涓�涓嬭繖涓帶浠剁殑鍒楄〃瀹瑰櫒
+            var listView = deleteContr.Parent.Parent as VerticalFrameControl;
+
+            //鍒犻櫎鎺夐偅寮犲崱鐗囩殑涓婚敭
+            deleteContr.RemoveFromParent();
+            this.dicSceneCardControl.Remove(deleteId);
+
+            //璋冩暣妗屽竷楂樺害
+            listView?.AdjustTableHeight();
+        }
+
+        #endregion
+
+        #region 鈻� 鍒锋柊妗屽竷鎺т欢_______________________
+
+        /// <summary>
+        /// 鍒锋柊璁惧妗屽竷鎺т欢
+        /// </summary>
+        public void RefreshBodyView()
+        {
+            bodyFrameLayout.RemoveAll();
+
+            //璁╃晫闈㈠埆闂儊
+            HdlThreadLogic.Current.RunMainInThread(() =>
+            {
+                if (UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex == 2)
+                {
+                    //鍔熻兘
+                    this.ShowFunction();
+                }
+                else
+                {
+                    //鍦烘櫙
+                    this.ShowScene();
+                }
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鍒囨崲浣忓畢___________________________
+        /// <summary>
+        /// 鍒囨崲浣忓畢
+        /// </summary>
+        /// <param name="home">Home.</param>
+        private void ChangeResidence(House home)
+        {
+            try
+            {
+                CommonPage.Loading.Start();
+                new System.Threading.Thread(async () =>
+                {
+                    Config.Instance.HomeId = home.Id;
+                    Config.Instance.Home = House.GetHouseByFilePath(home.FileName);
+                    Global.CreateHomeDirectory(home.Id);
+                    Config.Instance.Save();
+                    //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
+                    await UserCenterLogic.InitUserCenterMenmoryAndThread();
+                    //鍒濆鍖栧叏閮ㄦ埧闂�
+                    HdlRoomLogic.Current.InitAllRoom();
+
+                    Application.RunOnMainThread(() =>
+                    {
+                        ShowForm();
+                        CommonPage.Loading.Hide();
+                    });
+                })
+                { IsBackground = true }.Start();
+            }
+            catch (Exception ex)
+            {
+                Application.RunOnMainThread(() =>
+                {
+                    CommonPage.Loading.Hide();
+                    Console.WriteLine(ex.Message);
+                });
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸澶囩姸鎬佷笂鎶__________________
+
+        /// <summary>
+        /// 娣诲姞涓�鑸澶囩姸鎬佷笂鎶ヤ簨浠�
+        /// </summary>
+        private void AddNormalDeviceReportEvent()
+        {
+            //璁惧灞炴�т笂鎶�(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
+            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceStatus", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (report) =>
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //澶勭悊涓�鑸澶囩殑涓婃姤鏁版嵁
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
+                    if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
+                    {
+                        //鍒锋柊鍗$墖淇℃伅
+                        var locadevice = LocalDevice.Current.GetDevice(mainKeys);
+                        this.dicDeviceCardControl[mainKeys].RefreshControlInfo(locadevice);
+                    }
+                }, ShowErrorMode.NO);
+            });
+
+            //璁惧鍦ㄧ嚎涓婃姤(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
+            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceOnline", ReceiveComandDiv.A璁惧鍦ㄧ嚎涓婃姤, (report) =>
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
+                    if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
+                    {
+                        //鍒锋柊鍗$墖鐘舵��
+                        this.dicDeviceCardControl[mainKeys].SetCardOnlineStatu(report.IsOnline == 1);
+                        return;
+                    }
+
+                }, ShowErrorMode.NO);
+            });
+
+            //璁惧鎺у埗鍙嶉涓婃姤
+            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceRespone", ReceiveComandDiv.A鑺傜偣鎺у埗鍙嶉, (report) =>
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
+                    if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
+                    {
+                        //璁惧鍗$墖
+                        var deviceCardContr = this.dicDeviceCardControl[mainKeys];
+                        //宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍙嶉
+                        deviceCardContr.SetHadGetResponeResultStatu();
+                    }
+
+                }, ShowErrorMode.NO);
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 浼犳劅鍣ㄧ姸鎬佷笂鎶____________________
+
+        /// <summary>
+        /// 娣诲姞浼犳劅鍣ㄧ姸鎬佷笂鎶ヤ簨浠�
+        /// </summary>
+        private void AddSensorDeviceReportEvent()
+        {
+            //浼犳劅鍣ㄤ笂鎶�(缂撳瓨鐨勪慨鏀逛氦鐢� HdlGatewayReceiveLogic 澶勭悊)
+            HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewSensor", ReceiveComandDiv.A浼犳劅鍣ㄤ笂鎶�, (report) =>
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //澶勭悊浼犳劅鍣ㄤ笂鎶ユ暟鎹�
+                    string mainKeys = LocalDevice.Current.GetDeviceMainKeys(report);
+                    if (this.dicDeviceCardControl.ContainsKey(mainKeys) == true)
+                    {
+                        //鏈湴璁惧瀵硅薄
+                        var locadevice = LocalDevice.Current.GetDevice(mainKeys);
+                        //鍒锋柊鍗$墖淇℃伅
+                        this.dicDeviceCardControl[mainKeys].RefreshControlInfo(locadevice);
+                    }
+
+                }, ShowErrorMode.NO);
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鍒囨崲妤煎眰___________________________
+
+        /// <summary>
+        /// 鏄剧ず閫夋嫨妤煎眰鐨勭晫闈�
+        /// </summary>
+        private void ShowSelectFloorForm(NormalViewControl btnFloor)
+        {
+            var floorFL = new Device.Category.SelectFloor();
+            this.AddChidren(floorFL);
+            floorFL.Init(35, 153);
+            floorFL.changeFloor = true;
+            floorFL.FloorAction = (floorId) =>
+            {
+                btnFloor.Text = Config.Instance.Home.GetFloorNameById(floorId);
+                HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom();
+                this.ShowForm();
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰鍏抽棴___________________________
+
+        /// <summary>
+        /// 鐣岄潰鍏抽棴
+        /// </summary>
+        public override void CloseFormBefore()
+        {
+            HdlGatewayReceiveLogic.Current.RemoveEvent("UserHomeViewDeviceOnline");
+            HdlGatewayReceiveLogic.Current.RemoveEvent("UserHomeViewDeviceRespone");
+            HdlGatewayReceiveLogic.Current.RemoveEvent("UserHomeViewDeviceStatus");
+            HdlGatewayReceiveLogic.Current.RemoveEvent("UserHomeViewSensor");
+
+            base.CloseFormBefore();
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 妫�娴嬫槸鍚︾粦瀹氭湁缃戝叧
+        /// </summary>
+        private bool CheckHadBindGateway()
+        {
+            //鑾峰彇鏈湴宸茬粡缁戝畾鐨勭綉鍏�
+            var gatewayList = HdlGatewayLogic.Current.GetAllLocalGateway();
+            if (gatewayList.Count == 0)
+            {
+                return false;
+            }
+            return true;
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+        /// <summary>
+        /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
+        /// </summary>
+        public override int FormActionAgainEvent()
+        {
+            CommonPage.Instance.IsDrawerLockMode = false;
+            return 1;
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/MainPage/ListRoomViewFrom.cs b/ZigbeeApp/Shared/Phone/MainPage/ListRoomViewFrom.cs
new file mode 100755
index 0000000..f5d841a
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/MainPage/ListRoomViewFrom.cs
@@ -0,0 +1,289 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Shared.Common;
+using Shared.Phone.Device.Category;
+using Shared.Phone.Device.CommonForm;
+using Shared.Phone.UserCenter;
+using Shared.Phone.UserView;
+
+namespace Shared.Phone.MainPage
+{
+    /// <summary>
+    /// 宸︽粦鑿滃崟鐨勭殑鎴块棿鍒楄〃鐣岄潰
+    /// </summary>
+    public class ListRoomViewFrom : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        private static ListRoomViewFrom roomManagement = null;
+        /// <summary>
+        /// 宸︽粦鑿滃崟鐨勭殑鎴块棿瀵硅薄
+        /// </summary>
+        public static ListRoomViewFrom Instance
+        {
+            get
+            {
+                return roomManagement;
+            }
+        }
+
+        /// <summary>
+        /// 鏄惁鍙互瑙﹀彂鐐瑰嚮浜嬩欢--鏄惁鍙互璺宠浆涓婚〉鎴块棿
+        /// </summary>
+        public bool CanClick = true;
+        /// <summary>
+        /// 褰撳墠妤煎眰id
+        /// </summary>
+        private string curFloorId = string.Empty;
+        /// <summary>
+        /// 鍒楄〃鎺т欢
+        /// </summary>
+        private VerticalFrameControl listView = null;
+        /// <summary>
+        /// 鍗$墖鎺т欢闆嗗悎
+        /// </summary>
+        private Dictionary<string, Controls.ListRoomCardControl> dicCardControl = new Dictionary<string, Controls.ListRoomCardControl>();
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず
+        /// </summary>
+        public void ShowForm()
+        {
+            roomManagement = this;
+            //鍒濆鍖栧ご閮ㄤ俊鎭�
+            this.InitTopFrame();
+            //鍒濆鍖栦腑閮ㄦ帶浠�
+            this.InitBodyFrameLayout();
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.RoomList));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栧ご閮ㄤ俊鎭�
+        /// </summary>
+        private void InitTopFrame()
+        {
+            //鍒濆鍖栧ご閮ㄦ帶浠�
+            this.InitTopFrameLayout();
+            //閲嶇疆杩斿洖鎸夐敭鐨勪簨浠�
+            var btnBack = this.GetBackButton();
+            btnBack.ButtonClickEvent = null;
+            btnBack.ButtonClickEvent += (sender, e) =>
+            {
+                //鏀惰捣宸﹁彍鍗�
+                CommonPage.Instance.CloseLeftMenu();
+            };
+
+            //鑾峰彇妤煎眰
+            var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
+            if (dicFloor.Count == 0)
+            {
+                return;
+            }
+            this.curFloorId = Config.Instance.Home.CurrentFloorId;
+            //妤煎眰鍥炬爣
+            var btnIconContr = new MostRightIconControl(69, 69);
+            btnIconContr.UnSelectedImagePath = "Item/Drop_Down.png";
+            topFrameLayout.AddChidren(btnIconContr);
+            btnIconContr.InitControl();
+            //妤煎眰鍚�
+            var btnFloor = new NormalViewControl(200, 69, true);
+            btnFloor.Gravity = Gravity.CenterVertical;
+            btnFloor.X = btnIconContr.X + btnIconContr.btnIcon.X - Application.GetRealWidth(200);
+            btnFloor.TextAlignment = TextAlignment.CenterRight;
+            btnFloor.Text = HdlResidenceLogic.Current.GetFloorNameById(this.curFloorId);
+            topFrameLayout.AddChidren(btnFloor);
+
+            btnIconContr.ButtonClickEvent += (sender, e) =>
+            {
+                //妤煎眰鑿滃崟
+                var floors = new SelectFloor();
+                AddChidren(floors);
+                floors.changeFloor = false;
+                floors.CurFloorId = curFloorId;
+                floors.Init(599, 161, Direction.Right);
+                floors.FloorAction += (floorId) =>
+                {
+                    this.curFloorId = floorId;
+                    btnFloor.Text = dicFloor[floorId];
+                    //鍒锋柊鎴块棿鍒楄〃
+                    this.RefreshListRoom();
+                };
+            };
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            this.listView = new VerticalFrameControl();
+            listView.Height = bodyFrameLayout.Height;
+            listView.Width = bodyFrameLayout.Width;
+            bodyFrameLayout.AddChidren(listView);
+            //鍒锋柊鎴块棿鍒楄〃
+            this.RefreshListRoom();
+        }
+
+        #endregion
+
+        #region 鈻� 鍒锋柊鎴块棿鍒楄〃_______________________
+
+        /// <summary>
+        /// 鍒锋柊鎴块棿鍒楄〃
+        /// </summary>
+        public void RefreshListRoom()
+        {
+            //鍏堟竻绌�
+            this.listView.frameTable.RemoveAll();
+            this.listView.frameTable.Height = Application.GetRealHeight(100);
+            this.dicCardControl.Clear();
+
+            var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(curFloorId);
+            //杩藉姞鎴戠殑鍠滅埍
+            listRoom.Insert(0, HdlRoomLogic.Current.GetLoveRoom());
+
+            //X杞�
+            int XX = Application.GetRealWidth(43);
+            //Y杞�
+            int YY = Application.GetRealWidth(58);
+            //鎴块棿璁℃暟
+            int roomCount = 0;
+            foreach (var room in listRoom)
+            {
+                roomCount++;
+                //鍒濆鍖栧崱鐗囨帶浠�
+                var contr = new Controls.ListRoomCardControl();
+                contr.X = XX;
+                contr.Y = YY;
+                listView.frameTable.AddChidren(contr);
+                contr.InitControl(room);
+                //鍔犵紦瀛�
+                this.dicCardControl[room.Id] = contr;
+                //姣忎袱涓噸缃甔杞�
+                XX = roomCount % 2 == 0 ? Application.GetRealWidth(43) : contr.Right + Application.GetRealWidth(3);
+                //姣忎袱涓疮鍔燳杞�
+                if (roomCount >= 2 && roomCount % 2 == 0)
+                {
+                    YY = contr.Bottom + Application.GetRealHeight(14);
+                }
+                contr.ButtonClickEvent += (sender, e) =>
+                {
+                    if (CanClick == false)
+                    {
+                        return;
+                    }
+                    string oldFloorId = Config.Instance.Home.CurrentFloorId;
+                    CommonPage.Instance.CloseLeftMenu();
+                    HdlRoomLogic.Current.CurrentRoom = room;
+
+                    HdlThreadLogic.Current.RunThread(() =>
+                    {
+                        //绛夊緟鎺т欢鍚戝乏绉诲姩缁撴潫
+                        System.Threading.Thread.Sleep(300);
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            //鐐瑰嚮鐨勬槸鏀惰棌鎴块棿鐨勮瘽,涓嶅彉鏇村綋鍓嶆ゼ灞俰d
+                            if (room.FloorId != string.Empty)
+                            {
+                                Config.Instance.Home.CurrentFloorId = room.FloorId;
+                                if (oldFloorId != room.FloorId)
+                                {
+                                    //妤煎眰閮藉垏鎹㈢殑璇�,鍒锋柊鏁翠釜涓婚〉
+                                    UserPage.Instance.Fresh();
+                                    return;
+                                }
+                            }
+                            //濡傛灉鍙槸鍒囨崲褰撳墠妤煎眰鐨勫叾浠栨埧闂�,鍒欏彧婊戝姩涓婚〉鐨勬粦鍔ㄦ帶浠�
+                            this.LoadFormMethodByName("HomeMainPageForm", "SetRoomPageViewSelect", room);
+                        });
+                    });
+                };
+            }
+            //鍒濆鍖栨湭鍒嗛厤鍗$墖
+            this.InitRoomCardControl(XX, YY);
+            //璋冩暣妗屽竷楂樺害
+            this.listView.AdjustTableHeight();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨湭鍒嗛厤鍗$墖
+        /// </summary>
+        private void InitRoomCardControl(int XX, int YY)
+        {
+            //妗屽竷鎺т欢
+            var frameBack = new FrameLayoutControl();
+            frameBack.X = XX;
+            frameBack.Y = YY;
+            frameBack.Width = Application.GetRealWidth(495);
+            frameBack.Height = Application.GetRealHeight(354);
+            listView.frameTable.AddChidren(frameBack);
+
+            //搴曢儴闃村奖鏁堟灉
+            var btnShadow = new NormalViewControl(frameBack.Width, frameBack.Height, false);
+            btnShadow.UnSelectedImagePath = "Room/RoomCardView.png";
+            frameBack.AddChidren(btnShadow, ChidrenBindMode.NotBind);
+
+            //鑳屾櫙鎺т欢
+            var picBackGroud = new NormalViewControl(467, 311, true);
+            picBackGroud.Gravity = Gravity.CenterHorizontal;
+            picBackGroud.Radius = (uint)Application.GetRealHeight(29);
+            picBackGroud.BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor3;
+            frameBack.AddChidren(picBackGroud, ChidrenBindMode.BindEventOnly);
+
+            //鏈垎閰嶅浘鏍�
+            var btnIcon = new PicViewControl(92, 72);
+            btnIcon.X = Application.GetRealWidth(129);
+            btnIcon.Y = Application.GetRealHeight(141);
+            btnIcon.UnSelectedImagePath = "Room/NoNameRoom.png";
+            frameBack.AddChidren(btnIcon, ChidrenBindMode.BindEventOnly);
+
+            //鏈垎閰�
+            var btnName = new NormalViewControl(141, 84, true);
+            btnName.X = Application.GetRealWidth(244);
+            btnName.Y = Application.GetRealHeight(131);
+            btnName.IsBold = true;
+            btnName.TextColor = UserCenterColor.Current.White;
+            btnName.TextID = R.MyInternationalizationString.Unallocated;
+            frameBack.AddChidren(btnName, ChidrenBindMode.BindEventOnly);
+            frameBack.ButtonClickEvent += (sender, e) =>
+            {
+                if (this.CanClick == false)
+                {
+                    return;
+                }
+                //鏈垎閰�
+                var unalloctedRoom = new UnallocatedRoomForm();
+                this.AddChidren(unalloctedRoom);
+                unalloctedRoom.ShowForm();
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鍒锋柊鎸囧畾鎴块棿_______________________
+
+        /// <summary>
+        /// 鍒锋柊鎸囧畾鎴块棿
+        /// </summary>
+        /// <param name="room"></param>
+        public void RefreshRoomInfo(Room room)
+        {
+            if (this.dicCardControl.ContainsKey(room.Id) == true)
+            {
+                //鍒锋柊鍗$墖淇℃伅
+                this.dicCardControl[room.Id].RefreshControl();
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs b/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs
new file mode 100755
index 0000000..451e58f
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/MainPage/UnallocatedRoomForm.cs
@@ -0,0 +1,765 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Shared.Common;
+using Shared.Phone.Device.Category;
+using Shared.Phone.Device.CommonForm;
+using Shared.Phone.UserCenter;
+using Shared.Phone.UserView;
+using ZigBee.Device;
+
+namespace Shared.Phone.MainPage
+{
+    /// <summary>
+    /// 鏈垎閰嶇殑绠$悊鐣岄潰
+    /// </summary>
+    public class UnallocatedRoomForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 娣诲姞鍒� 鐨勮儗鏅浘鎺т欢
+        /// </summary>
+        private FrameLayoutControl frameAddBackGroud = null;
+        /// <summary>
+        /// 鍔熻兘鐨勬甯冩帶浠�
+        /// </summary>
+        private FrameLayout DeviceBodyTableControl = null;
+        /// <summary>
+        /// 鍦烘櫙鐨勫垪琛ㄦ帶浠�
+        /// </summary>
+        private VerticalFrameControl listSceneView = null;
+        /// <summary>
+        /// 璁惧鐨勫垪琛ㄦ帶浠�
+        /// </summary>
+        private VerticalListControl listDeviceView = null;
+        /// <summary>
+        /// 鍦烘櫙鐨勬甯冩帶浠�
+        /// </summary>
+        private FrameLayout SceneBodyTableControl = null;
+        /// <summary>
+        /// 鍏ㄩ�夋帶浠�
+        /// </summary>
+        private NormalViewControl btnAllSelect = null;
+        /// <summary>
+        /// 閫夋嫨鐨勫満鏅�
+        /// </summary>
+        private Dictionary<int, SceneUI> dicSelectScene = new Dictionary<int, SceneUI>();
+        /// <summary>
+        /// 閫夋嫨鐨勮澶�
+        /// </summary>
+        private Dictionary<string, CommonDevice> dicSelectDevice = new Dictionary<string, CommonDevice>();
+        /// <summary>
+        /// 褰撳墠閫夋嫨鐨勮澶囩被鍨嬩俊鎭�(涓轰簡澶勭悊閫熷害浣跨敤)
+        /// </summary>
+        private DeviceRowInfo nowSelectDeviceInfo = null;
+        /// <summary>
+        /// 鍏ㄩ儴鍒嗙粍鐨勮澶囦俊鎭�
+        /// </summary>
+        private Dictionary<int, DeviceRowInfo> dicGroupDevice = null;
+        /// <summary>
+        /// 鏄惁宸茬粡鏀瑰彉浜嗘暟鎹�
+        /// </summary>
+        private bool dataHadChanged = false;
+        /// <summary>
+        /// 鑳藉惁鍏ㄩ�夌殑鐘舵��
+        /// </summary>
+        private bool canSelectAll = true;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
+        {
+            //鍒濆鍖栧ご閮ㄦ帶浠�
+            this.InitTopFrameLayout();
+            //鍒濆鍖栦腑閮ㄦ帶浠�
+            this.InitBodyFrameLayout();
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.Unallocated));
+
+            //鍒濆鍖栧叏閫夋帶浠�
+            this.InitAllSelectControl();
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            var tabControl = new SceneFunctionSwitchControl();
+            tabControl.Y = Application.GetRealHeight(40);
+            bodyFrameLayout.AddChidren(tabControl);
+
+            //鍒濆鍖栧満鏅甯�
+            this.SceneBodyTableControl = new FrameLayout();
+            SceneBodyTableControl.Y = tabControl.Bottom;
+            SceneBodyTableControl.Height = bodyFrameLayout.Height - tabControl.Bottom;
+            bodyFrameLayout.AddChidren(SceneBodyTableControl);
+            //鍒濆鍖栬澶囨甯�
+            this.DeviceBodyTableControl = new FrameLayout();
+            DeviceBodyTableControl.Y = tabControl.Bottom;
+            DeviceBodyTableControl.Height = bodyFrameLayout.Height - tabControl.Bottom;
+            bodyFrameLayout.AddChidren(DeviceBodyTableControl);
+
+            tabControl.SelectTabEvent += (index) =>
+            {
+                //鍦烘櫙
+                if (index == 0)
+                {
+                    //鍒濆鍖栧満鏅垎鏀殑鎺т欢
+                    this.InitSceneCaseControl();
+                    //妫�娴嬪悇鎺т欢鐘舵��
+                    this.CheckControlsStatu(null);
+                }
+                //鍔熻兘
+                else
+                {
+                    //鍒濆鍖栧姛鑳藉垎鏀殑鎺т欢
+                    this.InitDeviceCaseControl();
+                    //妫�娴嬪悇鎺т欢鐘舵��
+                    this.CheckControlsStatu(this.nowSelectDeviceInfo);
+                }
+            };
+
+            //寮�濮嬪垵濮嬪寲鍦烘櫙鍔熻兘鍒囨崲鎺т欢
+            var listTitle = new List<string>();
+            listTitle.Add(Language.StringByID(R.MyInternationalizationString.uScence));
+            listTitle.Add(Language.StringByID(R.MyInternationalizationString.uFunction));
+            //浠栦細鑷姩鍥炶皟浜嬩欢
+            tabControl.InitControl(listTitle);
+        }
+
+        #endregion
+
+        #region 鈻� 鍦烘櫙鍒嗘敮___________________________
+
+        /// <summary>
+        /// 鍒濆鍖栧満鏅垎鏀殑鎺т欢
+        /// </summary>
+        private void InitSceneCaseControl()
+        {
+            //闅愯棌璁惧鍒楄〃
+            this.DeviceBodyTableControl.Visible = false;
+            //鏄剧ず鍦烘櫙
+            this.SceneBodyTableControl.Visible = true;
+            if (this.SceneBodyTableControl.Name == "Scene")
+            {
+                //宸茬粡鍒濆鍖栬繃
+                return;
+            }
+            //鎵撲釜鏍囪瘑鑰屽凡
+            this.SceneBodyTableControl.Name = "Scene";
+            //寮�濮嬫墽琛屽垵濮嬪寲鍦烘櫙鍒嗘敮鐨勬帶浠�
+            this.DoInitSceneCaseControl();
+        }
+
+        /// <summary>
+        /// 寮�濮嬫墽琛屽垵濮嬪寲鍦烘櫙鍒嗘敮鐨勬帶浠�
+        /// </summary>
+        private void DoInitSceneCaseControl()
+        {
+            HdlThreadLogic.Current.RunMainInThread(() =>
+            {
+                //娓呯┖妗屽竷
+                this.SceneBodyTableControl.RemoveAll();
+
+                this.listSceneView = new VerticalFrameControl(3);
+                listSceneView.Y = Application.GetRealHeight(53);
+                listSceneView.Height = SceneBodyTableControl.Height;
+                SceneBodyTableControl.AddChidren(listSceneView);
+
+                var listScene = HdlSceneLogic.Current.GetUnalloctedScenes();
+                if (listScene == null || listScene.Count == 0) { return; }
+
+                foreach (var data in listScene)
+                {
+                    //鍦烘櫙鍥剧墖
+                    var frameContr = new ScenePictrueControl();
+                    listSceneView.AddChidrenFrame(frameContr);
+                    frameContr.InitControl(data);
+
+                    //娣诲姞閫夋嫨鎺т欢
+                    frameContr.AddSelectControl();
+
+                    //鏀惰棌
+                    frameContr.AddCollectionControl();
+                    frameContr.CollectEvent += (collect) =>
+                    {
+                        //濡傛灉褰撳墠鏄敹钘忔埧闂�,鍒欓渶瑕佸埛鏂颁富椤�
+                        if (HdlRoomLogic.Current.CurrentRoom.IsLove == true)
+                        {
+                            this.dataHadChanged = true;
+                        }
+                    };
+  
+                    frameContr.ButtonClickEvent += (sender, e) =>
+                    {
+                        //閫夋嫨
+                        frameContr.IsSelected = !frameContr.IsSelected;
+                        if (frameContr.IsSelected == true)
+                        {
+                            dicSelectScene[data.Id] = data;
+                        }
+                        else
+                        {
+                            dicSelectScene.Remove(data.Id);
+                        }
+                        //妫�娴嬪悇鎺т欢鐘舵��
+                        this.CheckControlsStatu(null);
+                    };
+                }
+                //淇冧娇瀹冭秴杩囨椂,鑳藉寰�涓婃粦
+                var frameTemp = new FrameLayout();
+                frameTemp.Height = Application.GetRealHeight(202 + 23);
+                listSceneView.AddChidrenFrame(frameTemp);
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鍔熻兘鍒嗘敮___________________________
+
+        /// <summary>
+        /// 鍒濆鍖栧姛鑳藉垎鏀殑鎺т欢
+        /// </summary>
+        private void InitDeviceCaseControl()
+        {
+            //闅愯棌鍦烘櫙鍒楄〃
+            this.SceneBodyTableControl.Visible = false;
+            //鏄剧ず鍔熻兘
+            this.DeviceBodyTableControl.Visible = true;
+            if (this.DeviceBodyTableControl.Name == "Function")
+            {
+                //宸茬粡鍒濆鍖栬繃
+                return;
+            }
+            //鎵撲釜鏍囪瘑鑰屽凡
+            this.DeviceBodyTableControl.Name = "Function";
+            //寮�濮嬫墽琛屽垵濮嬪寲鍔熻兘鍒嗘敮鐨勬帶浠�
+            this.DoInitDeviceCaseControl();
+        }
+
+        /// <summary>
+        /// 寮�濮嬫墽琛屽垵濮嬪寲鍔熻兘鍒嗘敮鐨勬帶浠�
+        /// </summary>
+        private void DoInitDeviceCaseControl()
+        {
+            HdlThreadLogic.Current.RunMainInThread(() =>
+            {
+                //娓呯┖妗屽竷,涓嶆竻绌鸿繖涓殑璇�,瀹冮噷闈㈣繕鏈変笂涓�娆$殑涓滆タ
+                this.listDeviceView?.RemoveAll();
+                this.DeviceBodyTableControl.RemoveAll();
+
+                //鑾峰彇鍒嗙粍鍚庣殑璁惧鍒楄〃
+                this.dicGroupDevice = this.GetAllGroupDevice();
+                if (dicGroupDevice.Count == 0)
+                {
+                    this.listDeviceView = null;
+                    return;
+                }
+
+                //璁惧鐨勮儗鏅鍣�
+                var frameDeviceBack = new FrameLayout();
+                frameDeviceBack.X = ControlCommonResourse.XXLeft;
+                frameDeviceBack.Y = Application.GetRealHeight(369);
+                frameDeviceBack.BackgroundColor = UserCenterColor.Current.White;
+                frameDeviceBack.Width = bodyFrameLayout.Width;
+                frameDeviceBack.Height = Application.GetRealHeight(1236);
+                frameDeviceBack.Radius = (uint)Application.GetRealHeight(58);
+                DeviceBodyTableControl.AddChidren(frameDeviceBack);
+                //璁惧鍒楄〃鎺т欢
+                this.listDeviceView = new VerticalListControl(35);
+                listDeviceView.Y = Application.GetRealHeight(14);
+                listDeviceView.Height = Application.GetRealHeight(1236 - 14);
+                frameDeviceBack.AddChidren(listDeviceView);
+
+                //鍒濆鍖栬澶囩被鍨嬭彍鍗�
+                this.InitDeviceObjectMenu();
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖栬澶囩被鍨嬭彍鍗昣________________
+
+        /// <summary>
+        /// 鍒濆鍖栬澶囩被鍨嬭彍鍗�
+        /// </summary>
+        private void InitDeviceObjectMenu()
+        {
+            //澶撮儴鐨勭櫧鑹茶儗鏅�
+            var functionBack1 = new FrameLayout();
+            functionBack1.X = ControlCommonResourse.XXLeft;
+            functionBack1.Y = Application.GetRealHeight(55);
+            functionBack1.Height = Application.GetRealHeight(160);
+            functionBack1.Width = Application.GetRealWidth(1028);
+            functionBack1.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            DeviceBodyTableControl.AddChidren(functionBack1);
+            functionBack1.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft);
+            var functionBack2 = new FrameLayout();
+            functionBack2.X = ControlCommonResourse.XXLeft;
+            functionBack2.Y = functionBack1.Bottom - Application.GetRealHeight(50);
+            functionBack2.Height = Application.GetRealHeight(279 - 160 + 50);
+            functionBack2.Width = Application.GetRealWidth(1028);
+            functionBack2.BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            DeviceBodyTableControl.AddChidren(functionBack2);
+            functionBack2.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
+
+            //宸﹀彸婊戝姩鐨勬帶浠�
+            var HorizontalView = new HorizontalScrolViewLayout();
+            HorizontalView.X = Application.GetRealWidth(CommonFormResouce.X_Left);
+            HorizontalView.Y = Application.GetRealHeight(55);
+            HorizontalView.Height = Application.GetRealHeight(279);
+            HorizontalView.Width = Application.GetRealWidth(1028);
+            DeviceBodyTableControl.AddChidren(HorizontalView);
+
+            //涓婁竴娆¢�夋嫨鐨勮彍鍗�
+            Controls.DeviceFunctionUnallocatedControl oldSelectContr = null;
+            foreach (int Textid in this.dicGroupDevice.Keys)
+            {
+                var rowInfo = dicGroupDevice[Textid];
+
+                //璁惧绫诲瀷鐨勫鍣�
+                var devieFrame = new FrameLayout();
+                devieFrame.Width = Application.GetRealWidth(220);
+                HorizontalView.AddChidren(devieFrame);
+
+                //鑿滃崟鍥剧墖鎺т欢
+                var deviceObjContr = new Controls.DeviceFunctionUnallocatedControl();
+                devieFrame.AddChidren(deviceObjContr);
+                deviceObjContr.InitControl(Language.StringByID(Textid), rowInfo.IconPath, rowInfo.IconPathSelected, rowInfo.listDeviceKeys);
+                deviceObjContr.ButtonClickEvent += (sender, e) =>
+                {
+                    //閫夋嫨鐨勬槸鍚屼竴涓笢瑗跨殑璇�,涓嶅鐞�
+                    if (this.nowSelectDeviceInfo.TextId != rowInfo.TextId)
+                    {
+                        //涓婁竴娆$殑鑿滃崟鍙栨秷,鏈鑿滃崟閫夋嫨
+                        oldSelectContr.SetSelectStatu(false);
+                        deviceObjContr.SetSelectStatu(true);
+                        oldSelectContr = deviceObjContr;
+
+                        this.nowSelectDeviceInfo = rowInfo;
+                        HdlThreadLogic.Current.RunMainInThread(() =>
+                        {
+                            //鍒濆鍖栬澶囧垪琛ㄦ帶浠�
+                            this.InitListDeviceControls(rowInfo);
+                            //妫�娴嬪悇鎺т欢鐘舵��
+                            this.CheckControlsStatu(this.nowSelectDeviceInfo);
+                        });
+                    }
+                };
+
+                if (this.nowSelectDeviceInfo == null)
+                {
+                    //璁剧疆鍒濆閫夋嫨
+                    this.nowSelectDeviceInfo = rowInfo;
+                    //璁板綍鍒濆閫夋嫨鐨勮彍鍗曟帶浠�
+                    oldSelectContr = deviceObjContr;
+                    deviceObjContr.SetSelectStatu(true);
+                }
+            }
+            if (this.nowSelectDeviceInfo != null)
+            {
+                //鍒濆鍖栭粯璁ょ殑璁惧鍒楄〃鎺т欢
+                this.InitListDeviceControls(nowSelectDeviceInfo);
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖栬澶囧垪琛ㄦ帶浠禵________________
+
+        /// <summary>
+        /// 鍒濆鍖栬澶囧垪琛ㄦ帶浠�
+        /// </summary>
+        /// <param name="rowInfo"></param>
+        /// <param name="listView"></param>
+        private void InitListDeviceControls(DeviceRowInfo rowInfo)
+        {
+            this.listDeviceView.RemoveAll();
+            //鍒濆鍖栬澶囧垪琛ㄦ帶浠�
+            foreach (var deviceKey in rowInfo.listDeviceKeys)
+            {
+                var device = LocalDevice.Current.GetDevice(deviceKey);
+                var deviceRow = new Controls.DeviceSelectUnallocatedControl(listDeviceView.rowSpace / 2);
+                listDeviceView.AddChidren(deviceRow);
+                deviceRow.InitControl(device);
+
+                if (this.dicSelectDevice.ContainsKey(deviceKey) == true)
+                {
+                    //濡傛灉瀹冧箣鍓嶉�夋嫨浜嗙殑璇�
+                    deviceRow.IsSelected = true;
+                }
+                deviceRow.ButtonClickEvent += (sender, e) =>
+                {
+                    deviceRow.IsSelected = !deviceRow.IsSelected;
+                    //璁板綍缂撳瓨
+                    if (deviceRow.IsSelected == true)
+                    {
+                        this.dicSelectDevice[deviceKey] = device;
+                    }
+                    else
+                    {
+                        this.dicSelectDevice.Remove(deviceKey);
+                    }
+                    //妫�娴嬪悇鎺т欢鐘舵��
+                    this.CheckControlsStatu(rowInfo);
+                };
+            }
+            //淇冧娇瀹冭秴杩囨椂,鑳藉寰�涓婃粦
+            var frameTemp = new FrameLayout();
+            frameTemp.Height = Application.GetRealHeight(202 + 23);
+            listDeviceView.AddChidren(frameTemp);
+        }
+
+        #endregion
+
+        #region 鈻� 鍏ㄩ�夋帶浠禵__________________________
+
+        /// <summary>
+        /// 鍒濆鍖栧叏閫夋帶浠�
+        /// </summary>
+        private void InitAllSelectControl()
+        {
+            this.btnAllSelect = new NormalViewControl(150, 70, true);
+            btnAllSelect.TextAlignment = TextAlignment.CenterRight;
+            btnAllSelect.X = topFrameLayout.Width - Application.GetRealWidth(150 + 115);
+            btnAllSelect.Gravity = Gravity.CenterVertical;
+            btnAllSelect.TextID = R.MyInternationalizationString.AllSelect;
+            btnAllSelect.IsBold = true;
+            topFrameLayout.AddChidren(btnAllSelect);
+            btnAllSelect.ButtonClickEvent += (sender, e) =>
+            {
+                //鍦烘櫙鍒嗘敮
+                if (SceneBodyTableControl.Visible == true)
+                {
+                    if (listSceneView == null) { return; }
+                    for (int i = 0; ; i++)
+                    {
+                        var myContr = listSceneView.frameTable.GetChildren(i);
+                        if (myContr == null)
+                        {
+                            break;
+                        }
+                        if (myContr is ScenePictrueControl)
+                        {
+                            ((ScenePictrueControl)myContr).IsSelected = this.canSelectAll;
+                            var scene = ((ScenePictrueControl)myContr).scene;
+                            if (this.canSelectAll == true)
+                            {
+                                //娣诲姞缂撳瓨
+                                dicSelectScene[scene.Id] = scene;
+                            }
+                            else
+                            {
+                                //绉婚櫎缂撳瓨
+                                dicSelectScene.Remove(scene.Id);
+                            }
+                        }
+                    }
+                    //妫�娴嬪悇鎺т欢鐘舵��
+                    this.CheckControlsStatu(null);
+                }
+                //鍔熻兘鍒嗘敮
+                else
+                {
+                    if (listDeviceView == null) { return; }
+                    for (int i = 0; ; i++)
+                    {
+                        var myContr = listDeviceView.GetChildren(i);
+                        if (myContr == null)
+                        {
+                            break;
+                        }
+                        if (myContr is Controls.DeviceSelectUnallocatedControl)
+                        {
+                            ((Controls.DeviceSelectUnallocatedControl)myContr).IsSelected = this.canSelectAll;
+                            var device = ((Controls.DeviceSelectUnallocatedControl)myContr).device;
+                            if (this.canSelectAll == true)
+                            {
+                                //娣诲姞缂撳瓨
+                                dicSelectDevice[LocalDevice.Current.GetDeviceMainKeys(device)] = device;
+                            }
+                            else
+                            {
+                                //绉婚櫎缂撳瓨
+                                dicSelectDevice.Remove(LocalDevice.Current.GetDeviceMainKeys(device));
+                            }
+                        }
+                    }
+                    //妫�娴嬪悇鎺т欢鐘舵��
+                    this.CheckControlsStatu(this.nowSelectDeviceInfo);
+                }
+            };
+        }
+
+        #endregion
+
+        #region 鈻� [娣诲姞鍒癩鎺т欢_______________________
+
+        /// <summary>
+        /// 鍒濆鍖栨坊鍔犲埌鎺т欢
+        /// </summary>
+        private void InitAddToControl()
+        {
+            //娣诲姞鍒� 鐨勮儗鏅浘鎺т欢
+            this.frameAddBackGroud = new FrameLayoutControl();
+            frameAddBackGroud.UseClickStatu = false;
+            frameAddBackGroud.Height = Application.GetRealHeight(202);
+            frameAddBackGroud.Gravity = Gravity.BottomCenter;
+            frameAddBackGroud.BackgroundImagePath = "Room/AddBackground.png";
+            bodyFrameLayout.AddChidren(frameAddBackGroud);
+            frameAddBackGroud.Visible = false;
+
+            //娣诲姞鍒� 鎸夐挳
+            var btnAdd = new NormalViewControl(1034, 156, true);
+            btnAdd.Gravity = Gravity.Center;
+            btnAdd.BackgroundColor = UserCenterColor.Current.White;
+            btnAdd.TextColor = ZigbeeColor.Current.GXCTextSelectedColor4;
+            btnAdd.TextAlignment = TextAlignment.Center;
+            btnAdd.TextID = R.MyInternationalizationString.AddTo;
+            btnAdd.TextSize = 17;
+            btnAdd.Radius = (uint)Application.GetRealHeight(35);
+            frameAddBackGroud.AddChidren(btnAdd, ChidrenBindMode.BindEventOnly);
+            frameAddBackGroud.ButtonClickEvent += (sender, e) =>
+            {
+                var selectZone = new SelectZone();
+                selectZone.title = Language.StringByID(R.MyInternationalizationString.AddTo);
+                selectZone.Init();
+                selectZone.ZoneAction += (selectRoom) =>
+                {
+                    //鍙樻洿浜嗗綋鍓嶆埧闂寸殑涓滆タ,涓婚〉闇�瑕佸埛鏂�
+                    if (HdlRoomLogic.Current.CurrentRoom.Id == selectRoom.Id)
+                    {
+                        this.dataHadChanged = true;
+                    }
+                    //淇濆瓨閫夋嫨鐨勮澶囧拰鍦烘櫙
+                    this.SaveSelectDeviceAndScene(selectRoom);
+                };
+            };
+        }
+
+        /// <summary>
+        /// 淇濆瓨閫夋嫨鐨勮澶囧拰鍦烘櫙
+        /// </summary>
+        /// <param name="room"></param>
+        private void SaveSelectDeviceAndScene(Room room)
+        {
+            foreach (var deviceKey in this.dicSelectDevice.Keys)
+            {
+                //娣诲姞璁惧
+                HdlRoomLogic.Current.AddDevice(room, dicSelectDevice[deviceKey], true);
+                foreach (var rowInf in dicGroupDevice.Values)
+                {
+                    //绉婚櫎缂撳瓨
+                    if (rowInf.listDeviceKeys.Contains(deviceKey) == true)
+                    {
+                        rowInf.listDeviceKeys.Remove(deviceKey);
+                    }
+                }
+            }
+            foreach (var scene in this.dicSelectScene.Values)
+            {
+                //娣诲姞鍦烘櫙
+                HdlSceneLogic.Current.AddScene(room, scene);
+            }
+            //娓呯┖缂撳瓨
+            this.dicSelectScene.Clear();
+            this.dicSelectDevice.Clear();
+            //鍙充笂瑙掔殑鏂囧瓧鍒囨崲涓� 鍏ㄩ��
+            btnAllSelect.TextID = R.MyInternationalizationString.AllSelect;
+            this.canSelectAll = true;
+
+            //鍦烘櫙鍒嗘敮闇�瑕侀噸鏂板垵濮嬪寲
+            this.DoInitSceneCaseControl();
+
+            if (this.nowSelectDeviceInfo != null)
+            {
+               
+                bool allHadDevice = true;
+                foreach (var data in this.dicGroupDevice.Values)
+                {
+                    if (data.listDeviceKeys.Count == 0)
+                    {
+                        //鏈夊垎鏀凡缁忔病鏈夎澶囦簡
+                        allHadDevice = false;
+                        break;
+                    }
+                }
+                //濡傛灉鎵�鏈夊垎鏀兘杩樻湁璁惧鐨勮瘽,灏卞埛鏂板綋鍓嶇殑鍒楄〃鍗冲彲
+                if (allHadDevice == true)
+                {
+                    //鍒濆鍖栬澶囧垪琛ㄦ帶浠�
+                    this.InitListDeviceControls(this.nowSelectDeviceInfo);
+                }
+                else
+                {
+                    //濡傛灉瀛樺湪鍒嗘敮宸茬粡娌℃湁璁惧浜嗙殑璇�,閭d箞瀹冪殑鑿滃崟涔熼渶瑕佸垹闄ゆ帀,鎵�浠ラ渶瑕侀噸鏂板垵濮嬪寲
+                    this.nowSelectDeviceInfo = null;
+                    this.DoInitDeviceCaseControl();
+                }
+            }
+            //闅愯棌 娣诲姞鍒� 鎸夐挳
+            this.frameAddBackGroud.Visible = false;
+        }
+
+        #endregion
+
+        #region 鈻� 鏁村悎璁惧___________________________
+
+        /// <summary>
+        /// 鑾峰彇鍒嗙粍鍚庣殑璁惧
+        /// </summary>
+        /// <returns></returns>
+        private Dictionary<int, DeviceRowInfo> GetAllGroupDevice()
+        {
+            //鍏ㄩ儴鐨勮澶�
+            var listDevice = HdlRoomLogic.Current.GetUnalloctedDevice();
+            //鏍规嵁璁惧鎵�灞炵被鍨嬫帓搴�
+            listDevice = LocalDevice.Current.SortDeviceByBelongType(listDevice);
+            var dic = new Dictionary<int, DeviceRowInfo>();
+            foreach (var device in listDevice)
+            {
+                var typeInfo = LocalDevice.Current.GetDeviceBelongEnumInfo(device);
+                //鎸夋墍灞濱D鍒嗙粍
+                if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
+                {
+                    dic[typeInfo.BeloneTextId] = new DeviceRowInfo();
+                    string path1 = string.Empty;
+                    string path2 = string.Empty;
+                    //鑾峰彇鍥剧墖
+                    Common.LocalDevice.Current.GetDeviceObjectIcon(typeInfo.ConcreteType, ref path1, ref path2);
+                    dic[typeInfo.BeloneTextId].IconPath = path1;
+                    dic[typeInfo.BeloneTextId].IconPathSelected = path2;
+                    dic[typeInfo.BeloneTextId].TextId = typeInfo.BeloneTextId;
+                }
+                dic[typeInfo.BeloneTextId].listDeviceKeys.Add(LocalDevice.Current.GetDeviceMainKeys(device));
+            }
+            return dic;
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰鍏抽棴___________________________
+
+        /// <summary>
+        /// 鐣岄潰鍏抽棴
+        /// </summary>
+        public override void CloseFormBefore()
+        {
+            if (this.dataHadChanged == true)
+            {
+                HdlThreadLogic.Current.RunMainInThread(() =>
+                {
+                    //鍒锋柊涓婚〉
+                    this.LoadFormMethodByName("HomeMainPageForm", "RefreshBodyView");
+                });
+            }
+            base.CloseFormBefore();
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 妫�娴嬪悇鎺т欢鐘舵��
+        /// </summary>
+        private void CheckControlsStatu(DeviceRowInfo rowInfo)
+        {
+            if (this.frameAddBackGroud == null)
+            {
+                //鍒濆鍖栨坊鍔犲埌鎺т欢
+                this.InitAddToControl();
+            }
+
+            if (dicSelectScene.Count == 0 && dicSelectDevice.Count == 0)
+            {
+                //闅愯棌 娣诲姞鍒� 鎺т欢
+                if (frameAddBackGroud.Visible == true)
+                {
+                    frameAddBackGroud.Visible = false;
+                }
+            }
+            else
+            {
+                //鏄剧ず 娣诲姞鍒� 鎺т欢
+                if (frameAddBackGroud.Visible == false)
+                {
+                    frameAddBackGroud.Visible = true;
+                }
+            }
+            //褰撳墠閫夋嫨鐨勬槸鍦烘櫙鍒嗘敮
+            if (rowInfo == null)
+            {
+                if (this.dicSelectScene.Count > 0)
+                {
+                    //鍙充笂瑙掔殑鏂囧瓧鍒囨崲涓� 鍙栨秷
+                    btnAllSelect.TextID = R.MyInternationalizationString.Cancel;
+                    this.canSelectAll = false;
+                }
+                else
+                {
+                    //鍙充笂瑙掔殑鏂囧瓧鍒囨崲涓� 鍏ㄩ��
+                    btnAllSelect.TextID = R.MyInternationalizationString.AllSelect;
+                    this.canSelectAll = true;
+                }
+            }
+            //褰撳墠閫夋嫨鐨勬槸鍔熻兘鍒嗘敮
+            else
+            {
+                foreach (var deviceKey in rowInfo.listDeviceKeys)
+                {
+                    //濡傛灉褰撳墠鐨勮澶囩被鍨嬮�夋嫨鍒嗘敮涓嬶紝瀛樺湪涔嬪墠閫夋嫨鐨勮澶囩殑璇�
+                    if (this.dicSelectDevice.ContainsKey(deviceKey) == true)
+                    {
+                        //鍙充笂瑙掔殑鏂囧瓧鍒囨崲涓� 鍙栨秷
+                        btnAllSelect.TextID = R.MyInternationalizationString.Cancel;
+                        this.canSelectAll = false;
+                        return;
+                    }
+                }
+                //濡傛灉涓嶅瓨鍦ㄧ殑璇�,鍙充笂瑙掔殑鏂囧瓧鍒囨崲涓� 鍏ㄩ��
+                btnAllSelect.TextID = R.MyInternationalizationString.AllSelect;
+                this.canSelectAll = true;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 缁撴瀯浣揰____________________________
+
+        /// <summary>
+        /// 璁惧琛屼俊鎭�
+        /// </summary>
+        private class DeviceRowInfo
+        {
+            /// <summary>
+            /// 鏂囨湰ID,鐩墠鐢ㄦ潵鍋氫富閿�
+            /// </summary>
+            public int TextId = 0;
+            /// <summary>
+            /// 鍥炬爣
+            /// </summary>
+            public string IconPath = string.Empty;
+            /// <summary>
+            /// 鍥炬爣
+            /// </summary>
+            public string IconPathSelected = string.Empty;
+            /// <summary>
+            /// 璁惧鍥炶矾涓婚敭
+            /// </summary>
+            public List<string> listDeviceKeys = new List<string>();
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/GatewayBackupEnum.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/GatewayBackupEnum.cs
index c80de9c..a49de58 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/GatewayBackupEnum.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/GatewayBackupEnum.cs
@@ -61,5 +61,9 @@
         /// 绌鸿皟鎽嗛鍔熻兘
         /// </summary>
         A绌鸿皟鎽嗛鍔熻兘 = 13,
+        /// <summary>
+        /// 闈㈡澘鎺ヨ繎鎰熷簲鍔熻兘
+        /// </summary>
+        A闈㈡澘鎺ヨ繎鎰熷簲鍔熻兘 = 14,
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/ResidenceOption.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/ResidenceOption.cs
index 2461b93..18d80cf 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/ResidenceOption.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/ResidenceOption.cs
@@ -35,6 +35,16 @@
         /// </summary>
         [Newtonsoft.Json.JsonIgnore]
         public int DoorLockMaxAlarmMsgDay = 5;
+        /// <summary>
+        /// 褰撳墠涓婚〉,鍦烘櫙鍜屽姛鑳芥墍閫夋嫨鐨勫垎鏀� 1:鍦烘櫙 2:鍔熻兘
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public int HomeMainPageSwitchIndex = 1;
+        /// <summary>
+        /// 褰撳墠鍒嗙被,鍦烘櫙鍜屽姛鑳芥墍閫夋嫨鐨勫垎鏀� 0:鍦烘櫙 1:鍔熻兘 2:鑷姩鍖�
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public int CategoryPageSwitchIndex = 0;
 
         #endregion
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/InformationEditorControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/InformationEditorControl.cs
index fc1c8a2..cbae180 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/InformationEditorControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/InformationEditorControl.cs
@@ -19,24 +19,18 @@
         /// <returns>淇℃伅瀹瑰櫒鎺т欢</returns>
         public VerticalListControl InitControl(FrameLayout bodyFrameLayout, string title, int Y, int Height)
         {
-            //寮у害鐨勫渾鐨勪竴鍗婄殑楂樺害(鍥哄畾)
-            int halfRoundHeigth = Application.GetRealHeight(116) / 2;
-            //寮у害鐨勫渾
-            var btnRound = new NormalViewControl(bodyFrameLayout.Width, halfRoundHeigth * 2, false);
-            btnRound.Y = Application.GetRealHeight(Y);
-            btnRound.BackgroundColor = UserCenterColor.Current.White;
-            btnRound.Radius = (uint)halfRoundHeigth;
-            bodyFrameLayout.AddChidren(btnRound);
-            //鏄庣粏鍒楄〃鐨勬甯冿紝鐧借壊鑳屾櫙(瑕嗙洊寮у害鐨勫渾鐨勫崐杈�)
+            //鏄庣粏鍒楄〃鐨勬甯冿紝鐧借壊鑳屾櫙
             var detailBackFrame = new FrameLayout();
-            detailBackFrame.Y = btnRound.Bottom - btnRound.Height / 2;
-            detailBackFrame.Height = Application.GetRealHeight(Height);//楂樺害灏辨槸瑕佸畠瓒呰繃
+            detailBackFrame.Y = Application.GetRealHeight(Y);
+            detailBackFrame.Height = Application.GetRealHeight(Height + 100);//楂樺害灏辨槸瑕佸畠瓒呰繃
             detailBackFrame.BackgroundColor = UserCenterColor.Current.White;
+            detailBackFrame.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
             bodyFrameLayout.AddChidren(detailBackFrame);
 
             //淇℃伅缂栬緫
             var btnTile = new NormalViewControl(800, 60, true);
             btnTile.X = ControlCommonResourse.XXLeft;
+            btnTile.Y = Application.GetRealHeight(81);
             btnTile.TextSize = 15;
             btnTile.TextColor = UserCenterColor.Current.TextColor2;
             btnTile.Text = title;
@@ -44,7 +38,7 @@
 
             var listview = new VerticalListControl(12);
             listview.Y = btnTile.Bottom + Application.GetRealHeight(17);
-            listview.Height = Application.GetRealHeight(Height) - halfRoundHeigth - btnTile.Bottom - Application.GetRealHeight(17);
+            listview.Height = Application.GetRealHeight(Height) - btnTile.Bottom - Application.GetRealHeight(17);
             detailBackFrame.AddChidren(listview);
 
             return listview;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/ProgressFormBar.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/ProgressFormBar.cs
index 91b3a5f..539ff34 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/ProgressFormBar.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/ProgressFormBar.cs
@@ -93,12 +93,12 @@
             //瀹瑰櫒
             bodyFrameLayout = new FrameLayout();
             bodyFrameLayout.BackgroundColor = UserCenterColor.Current.DialogBackColor;
-
-            var nowForm = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
-            if (nowForm != null && (nowForm is ViewGroup) == true)
-            {
-                ((ViewGroup)nowForm).AddChidren(bodyFrameLayout);
-            }
+            Common.CommonPage.Instance.AddChidren(bodyFrameLayout);
+            //var nowForm = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
+            //if (nowForm != null && (nowForm is ViewGroup) == true)
+            //{
+            //    ((ViewGroup)nowForm).AddChidren(bodyFrameLayout);
+            //}
 
             var frameBack = new FrameLayout();
             frameBack.Width = Application.GetRealWidth(674);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs
index 056f16c..3412d86 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/RoomDeviceGroupMenuControl.cs
@@ -100,6 +100,7 @@
             frameTemp.Width = ControlCommonResourse.XXLeft / 2;
             scrolContr.AddChidren(frameTemp);
 
+            int defultIndex = 0;
             if (this.dicRoom != null)
             {
                 //鍒濆鍖栨埧闂存ā寮忕殑鎺т欢
@@ -109,6 +110,7 @@
                     {
                         //鍒濆鍊�
                         oldSelectKeys = keys;
+                        defultIndex = keys;
                     }
                     this.DoInitControl(scrolContr, keys, dicRoom[keys].Name);
                 }
@@ -116,16 +118,21 @@
             else
             {
                 //鍒濆鍖栬澶囨ā寮忕殑鎺т欢
+                int index = 0;
                 foreach (int keys in dicDevice.Keys)
                 {
                     if (oldSelectKeys == -1)
                     {
                         //鍒濆鍊�
                         oldSelectKeys = keys;
+                        defultIndex = index;
                     }
                     this.DoInitControl(scrolContr, keys, Language.StringByID(keys));
+                    index++;
                 }
             }
+            //璁╂帶浠舵粦鍔ㄥ埌鎸囧畾鐨勭储寮曚綅缃�
+            scrolContr.ScrollToViewIndex(defultIndex);
         }
 
         /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs
index 272203e..373ca78 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SceneFunctionSwitchControl.cs
@@ -49,6 +49,7 @@
         public SceneFunctionSwitchControl()
         {
             this.Height = Application.GetRealHeight(90);
+            this.Y = Application.GetRealHeight(40);
         }
 
         /// <summary>
@@ -66,7 +67,7 @@
             {
                 btnTemp.Text = listTitleText[i];
                 //寮�濮嬪垵濮嬪寲
-                XX = this.InitTitleTextControl(i, listTitleText[i], btnTemp.GetTextWidth(), XX);
+                XX = this.InitTitleTextControl(i, listTitleText[i], btnTemp.GetRealWidthByText(), XX);
             }
             //鍥炶皟鏂规硶
             this.frameDefult.ButtonClickEvent?.Invoke(null, null);
@@ -89,6 +90,7 @@
             //鍚嶇О
             var btnName = new NormalViewControl(frameBack.Width, Application.GetRealHeight(63), false);
             btnName.Text = titleText;
+            btnName.TextAlignment = TextAlignment.Center;
             if (m_nowSelectIndex == i_index)
             {
                 this.frameDefult = frameBack;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalFrameControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalFrameControl.cs
index 7f39997..b35a549 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalFrameControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalFrameControl.cs
@@ -117,10 +117,6 @@
             {
                 //璋冩暣妗屽竷楂樺害
                 this.m_frameTable.Height = child.Bottom;
-                //if (this.m_frameTable.Height < child.Bottom)
-                //{
-                //    this.m_frameTable.Height = child.Bottom;
-                //}
             }
         }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs
index c0fc2a1..908648b 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs
@@ -89,16 +89,10 @@
         /// </summary>
         private void InitMsgControl()
         {
-            //娣诲姞鐣岄潰
-            var nowForm = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
-            if (nowForm == null || (nowForm is ViewGroup) == false)
-            {
-                return;
-            }
             //涓绘帶浠�
             var frameMain = new FrameLayout();
             frameMain.BackgroundColor = UserCenterColor.Current.DialogBackColor;
-            ((ViewGroup)nowForm).AddChidren(frameMain);
+            Common.CommonPage.Instance.AddChidren(frameMain);
 
             //鐧借壊鑳屾櫙妗�
             var frameBack = new FrameLayout();
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/NormalControls/MostRightIconControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/NormalControls/MostRightIconControl.cs
index ff87091..c4b3515 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/NormalControls/MostRightIconControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/NormalControls/MostRightIconControl.cs
@@ -39,6 +39,14 @@
         }
 
         /// <summary>
+        /// X杞寸殑鐪熷疄鍋忕Щ閲�(璇风‘淇濆凡缁忓姞鍏ョ埗鎺т欢)
+        /// </summary>
+        public int XOffset
+        {
+            get { return (this.Width - btnIcon.Width) / 2; }
+        }
+
+        /// <summary>
         /// 鍋氭垚鏀惧湪鐢婚潰鍙宠竟鐨勭殑鍥炬爣鎺т欢(娉ㄦ剰,瀹冧笉鑳界敤鏉ュ仛銆愬悜鍙炽�戠殑鍥炬爣)
         /// </summary>
         /// <param name="i_width">鎺т欢绌哄害</param>
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/RowLayoutControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/RowLayoutControl.cs
index 380731e..c017895 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/RowLayoutControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/RowLayoutControl.cs
@@ -45,6 +45,7 @@
         public RowLayoutControl(int i_ChidrenYaxis = 0)
         {
             this.LineColor = UserCenterColor.Current.Transparent;
+            this.SubViewWidth = Application.GetRealWidth(184);
 
             this.chidrenYaxis = i_ChidrenYaxis;
             this.Height = ControlCommonResourse.ListViewRowHeight;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/ScenePictrueControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/ScenePictrueControl.cs
index 0e07a8a..d3448cd 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/ScenePictrueControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/ScenePictrueControl.cs
@@ -9,6 +9,45 @@
     /// </summary>
     public class ScenePictrueControl : FrameRowControl
     {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鍦烘櫙鍥剧墖鎺т欢
+        /// </summary>
+        public ImageView btnScenePic = null;
+        /// <summary>
+        /// 鍦烘櫙鍚嶅瓧鎺т欢
+        /// </summary>
+        public NormalViewControl btnSceneName = null;
+        /// <summary>
+        /// 鍦烘櫙瀵硅薄
+        /// </summary>
+        public Common.SceneUI scene = null;
+        /// <summary>
+        /// 鏀惰棌瑙﹀彂鐨勪簨浠� true:娣诲姞鏀惰棌 false:鍙栨秷鏀惰棌
+        /// </summary>
+        public Action<bool> CollectEvent = null;
+        /// <summary>
+        /// 閫夋嫨鎺т欢(璋冪敤AddSelectControl()鍑芥暟鍒濆鍖�)
+        /// </summary>
+        private IconViewControl btnSelect = null;
+
+        private bool m_IsSelected = false;
+        /// <summary>
+        /// 閫夋嫨鐘舵��
+        /// </summary>
+        public bool IsSelected
+        {
+            get { return m_IsSelected; }
+            set
+            {
+                m_IsSelected = value;
+                if (btnSelect != null) { btnSelect.IsSelected = m_IsSelected; }
+            }
+        }
+
+        #endregion
+
         #region 鈻� 鍒濆鍖朹____________________________
 
         /// <summary>
@@ -26,39 +65,105 @@
         /// <param name="sceneUI">鍦烘櫙鎺т欢</param>
         public void InitControl(Common.SceneUI sceneUI)
         {
+            this.scene = sceneUI;
             //鍦烘櫙鍥剧墖
-            var btnPic = new ImageView();
-            btnPic.X = Application.GetRealWidth(179);
-            btnPic.Width = Application.GetRealWidth(844);
-            btnPic.Height = Application.GetRealHeight(397);
+            this.btnScenePic = new ImageView();
+            btnScenePic.X = Application.GetRealWidth(179);
+            btnScenePic.Width = Application.GetRealWidth(844);
+            btnScenePic.Height = Application.GetRealHeight(397);
             if (sceneUI.IconPathType == 0)
             {
-                btnPic.ImagePath = sceneUI.IconPath;
+                btnScenePic.ImagePath = sceneUI.IconPath;
             }
             else if (Common.Global.IsExistsByHomeId(sceneUI.IconPath) == true)
             {
-                btnPic.ImageBytes = Common.Global.ReadFileByHomeId(sceneUI.IconPath);
+                btnScenePic.ImageBytes = Common.Global.ReadFileByHomeId(sceneUI.IconPath);
             }
-            btnPic.Radius = (uint)Application.GetRealHeight(17);
-            this.AddChidren(btnPic, ChidrenBindMode.NotBind);
+            btnScenePic.Radius = (uint)Application.GetRealHeight(17);
+            this.AddChidren(btnScenePic, ChidrenBindMode.NotBind);
 
             //闃村奖
-            var btnShadow = new PicViewControl(btnPic.Width + Application.GetRealWidth(14 * 2), btnPic.Height + Application.GetRealHeight(43), false);
-            btnShadow.X = btnPic.X - Application.GetRealWidth(14);
+            var btnShadow = new PicViewControl(btnScenePic.Width + Application.GetRealWidth(14 * 2), btnScenePic.Height + Application.GetRealHeight(43), false);
+            btnShadow.X = btnScenePic.X - Application.GetRealWidth(14);
             btnShadow.UnSelectedImagePath = "Scene/SceneShadow.png";
             this.AddChidren(btnShadow, ChidrenBindMode.BindEventOnly);
 
-            var btnName = new NormalViewControl(251, 282, true);
-            btnName.IsMoreLines = true;
-            btnName.X = ControlCommonResourse.XXLeft;
-            btnName.Y = Application.GetRealHeight(58);
-            btnName.BackgroundColor = 0xd6333333;
-            btnName.RadiusEx = 17;
-            btnName.Text = sceneUI.Name;
-            btnName.TextSize = 15;
-            btnName.TextColor = UserCenterColor.Current.White;
-            btnName.TextAlignment = TextAlignment.Center;
-            this.AddChidren(btnName, ChidrenBindMode.BindEventOnly);
+            this.btnSceneName = new NormalViewControl(251, 282, true);
+            btnSceneName.IsMoreLines = true;
+            btnSceneName.X = ControlCommonResourse.XXLeft;
+            btnSceneName.Y = Application.GetRealHeight(58);
+            btnSceneName.BackgroundColor = 0xd6333333;
+            btnSceneName.RadiusEx = 17;
+            btnSceneName.Text = sceneUI.Name;
+            btnSceneName.TextSize = 15;
+            btnSceneName.TextColor = UserCenterColor.Current.White;
+            btnSceneName.TextAlignment = TextAlignment.Center;
+            this.AddChidren(btnSceneName, ChidrenBindMode.NotBind);
+        }
+
+        #endregion
+
+        #region 鈻� 閫夋嫨鎺т欢___________________________
+
+        /// <summary>
+        /// 娣诲姞閫夋嫨鎺т欢
+        /// </summary>
+        public void AddSelectControl()
+        {
+            this.btnSelect = new IconViewControl(58);
+            btnSelect.UnSelectedImagePath = "Item/ItemUnSelected.png";
+            btnSelect.SelectedImagePath = "Item/ItemSelected.png";
+            btnSelect.X = Application.GetRealWidth(887);
+            btnSelect.Y = Application.GetRealHeight(35);
+            this.AddChidren(btnSelect, ChidrenBindMode.BindEventOnly);
+        }
+
+        #endregion
+
+        #region 鈻� 鏀惰棌鎺т欢___________________________
+
+        /// <summary>
+        /// 娣诲姞鏀惰棌鎺т欢(CollectEvent鏄敹钘忕殑鍥炶皟浜嬩欢)
+        /// </summary>
+        public void AddCollectionControl()
+        {
+            var btnCollection = new IconViewControl(65);
+            btnCollection.X = Application.GetRealWidth(81);
+            btnCollection.Y = Application.GetRealHeight(81);
+            btnCollection.UnSelectedImagePath = "Item/Collection.png";
+            btnCollection.SelectedImagePath = "Item/CollectionSelected.png";
+            if (HdlRoomLogic.Current.IsCollectInRoom(scene) == true)
+            {
+                btnCollection.IsSelected = true;
+            }
+            this.AddChidren(btnCollection, ChidrenBindMode.NotBind);
+            btnCollection.ButtonClickEvent += (sender, e) =>
+            {
+                btnCollection.IsSelected = !btnCollection.IsSelected;
+                if (btnCollection.IsSelected == true)
+                {
+                    HdlSceneLogic.Current.AddLoveScene(scene);
+                }
+                else
+                {
+                    HdlSceneLogic.Current.DeleteLoveScene(scene);
+                }
+                this.CollectEvent?.Invoke(btnCollection.IsSelected);
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鎺т欢鎽ф瘉___________________________
+
+        /// <summary>
+        /// 鎺т欢鎽ф瘉
+        /// </summary>
+        public override void RemoveFromParent()
+        {
+            this.CollectEvent = null;
+
+            base.RemoveFromParent();
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceCurtainLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceCurtainLogic.cs
index c7b8dc2..2f7a1b2 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceCurtainLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceCurtainLogic.cs
@@ -142,7 +142,7 @@
         public async Task<bool> CommitCurtainLimitPoint(Rollershade rollershade, Rollershade.CurtainPrivateInstalledLimi limiType, int upLimit, int downLimit)
         {
             CommonDevice.SetWritableValueResponAllData result = null;
-            if (upLimit == -1 && upLimit == -1)
+            if (upLimit == -1 && downLimit == -1)
             {
                 //杩欎釜鏄嵎甯�
                 result = await rollershade.SetCurtainInstalledLimitAsync(limiType);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceHardInfoLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceHardInfoLogic.cs
index b741e66..03de7f2 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceHardInfoLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceHardInfoLogic.cs
@@ -211,7 +211,17 @@
                     isRightData = true;
                     if (data.AttriButeDataHex.Length > 2)
                     {
-                        var value = UserCenterLogic.TranslateHexadecimalIntoText(data.AttriButeDataHex.Substring(2));
+                        string value;
+                        if (Common.LocalDevice.Current.IsHdlDevice(device) == false)
+                        {
+                            //绗笁鏂硅澶�
+                            value = data.AttriButeDataHex.Substring(2);
+                        }
+                        else
+                        {
+                            //娌充笢璁惧
+                            value = UserCenterLogic.TranslateHexadecimalIntoText(data.AttriButeDataHex.Substring(2));
+                        }
                         if (device.SerialNumber != value)
                         {
                             //灞炴�у彉鏇翠簡
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePanelLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePanelLogic.cs
index 8c56b72..90a72cc 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePanelLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDevicePanelLogic.cs
@@ -205,6 +205,87 @@
 
         #endregion
 
+        #region 鈻� 鎺ヨ繎鎰熷簲___________________________
+        /// <summary>
+        /// 鑾峰彇鎺ヨ繎鎰熷簲閰嶇疆锛坲i鍙帴杩戞劅搴�,浣跨敤杩斿洖鍊肩殑panelProximitySensorInfo锛�
+        /// </summary>
+        /// <param name="device">璁惧瀵硅薄</param>
+        /// <returns></returns>
+        public async Task<Panel.PanelProximitySensorInfo> GetDeviceProximitySensorsSettion(CommonDevice device)
+        {
+            //鍊熺敤瀹冪殑鍑芥暟
+            var panel = new Panel();
+            panel.DeviceAddr = device.DeviceAddr;
+            panel.DeviceEpoint = device.DeviceEpoint;
+            panel.CurrentGateWayId = device.CurrentGateWayId;
+
+            var result = await panel.GetProximitySensorAsync();
+            panel = null;
+            //鍏遍�氶敊璇娴�
+            string error = HdlCheckLogic.Current.CheckCommonErrorCode(result);
+            if (error != null)
+            {
+                this.ShowErrorMsg(error);
+                return null;
+            }
+            if (result == null || result.panelProximitySensorInfo == null || string.IsNullOrEmpty(result.errorMessageBase) == false)
+            {
+                //鑾峰彇鎺ヨ繎鎰熷簲淇℃伅澶辫触
+                string msg = Language.StringByID(R.MyInternationalizationString.GetPanelProximityFail);
+                this.ShowErrorMsg(msg);
+                return null;
+            }
+            return result.panelProximitySensorInfo;
+        }
+
+
+        /// <summary>
+        /// 閰嶇疆鎺ヨ繎浼犳劅
+        /// </summary>
+        /// <param name="device">璁惧瀵硅薄</param>
+        /// <para>sensorEnable:浼犳劅鍣ㄤ娇鑳�</para> 
+        /// <returns></returns>
+        public async Task<bool> SetProximitySensorStatus(CommonDevice device, bool sensorEnable)
+        {
+            //鍊熺敤瀹冪殑鍑芥暟
+            var panel = new Panel();
+            panel.DeviceAddr = device.DeviceAddr;
+            panel.DeviceEpoint = device.DeviceEpoint;
+            panel.CurrentGateWayId = device.CurrentGateWayId;
+
+            var result = await panel.SetProximitySensor(sensorEnable);
+            panel = null;
+
+            //鍏遍�氶敊璇娴�
+            string error = HdlCheckLogic.Current.CheckCommonErrorCode(result);
+            if (error != null)
+            {
+                this.ShowErrorMsg(error);
+                return false;
+            }
+
+            if (result == null || result.responseData == null)
+            {
+                //鎺ヨ繎浼犳劅閰嶇疆澶辫触
+                string msg = Language.StringByID(R.MyInternationalizationString.SetPannelProximityFail);
+                //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg
+                msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, result);
+
+                this.ShowTipMsg(msg);
+                return false;
+            }
+
+            // 澶囦唤璁惧
+            var backData = new Newtonsoft.Json.Linq.JObject
+            {
+                { "sensorEnable",sensorEnable }
+            };
+            //澶囦唤璁惧
+            await HdlGatewayLogic.Current.UpLoadDeviceBackupDataToGateway(device, GatewayBackupEnum.A闈㈡澘鎺ヨ繎鎰熷簲鍔熻兘, backData);
+            return true;
+        }
+        #endregion
+
         #region 鈻� 鑺傝兘妯″紡___________________________
         /// <summary>
         /// 鑾峰彇璁惧鑺傝兘妯″紡鐨勯厤缃姸鎬�(ui鍙妭鑳芥ā寮�)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
index aeffe47..d5f423f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
@@ -204,7 +204,13 @@
         /// <param name="zbGateway">缃戝叧</param>
         /// <param name="mode">鏄惁鏄剧ず閿欒</param>
         public async Task<bool> AddNewGateway(ZbGateway zbGateway, ShowErrorMode mode)
-        {
+        {
+            //璁剧疆缃戝叧鐨勭粡绾害
+            bool falge = this.SetGatewaySite(zbGateway, Common.Config.Instance.Home.Longitude, Common.Config.Instance.Home.Latitude, ShowErrorMode.NO);
+            if (falge == false)
+            {
+                return falge;
+            }
             //鎵ц娣诲姞缃戝叧鍒板唴瀛�
             var result = await this.DoAddGatewayToMemory(zbGateway, mode);
             //鍓嶇殑缃戝叧缁戝畾鍦ㄤ簡褰撳墠璐﹀彿涓嬬殑涓嶅悓浣忓畢閲岄潰
@@ -438,7 +444,7 @@
                 return -1;
             }
             //璁剧疆缃戝叧鐨勭粡绾害
-            bool falge = this.SetGatewaySite(zbGateway, Common.Config.Instance.Home.Longitude, Common.Config.Instance.Home.Latitude);
+            bool falge = this.SetGatewaySite(zbGateway, Common.Config.Instance.Home.Longitude, Common.Config.Instance.Home.Latitude, ShowErrorMode.YES);
             if (falge == false)
             {
                 return -1;
@@ -1342,7 +1348,7 @@
             }
             else
             {
-                //鑾峰彇鏈湴鐨勫睘鎬� 
+                //鑾峰彇鏈湴鐨勫睘鎬�
                 objValue = localWay.getGwInfo.GetType().InvokeMember(attributeName, System.Reflection.BindingFlags.GetField, null, localWay.getGwInfo, null);
             }
 
@@ -2209,15 +2215,19 @@
         /// <param name="gateway">缃戝叧瀵硅薄</param>
         /// <param name="Longitude">缁忓害</param>
         /// <param name="Latitude">缁村害</param>
+        /// <param name="mode">鏄剧ず閿欒</param>
         /// <returns></returns>
-        public bool SetGatewaySite(ZbGateway gateway, double Longitude, double Latitude)
+        public bool SetGatewaySite(ZbGateway gateway, double Longitude, double Latitude, ShowErrorMode mode)
         {
             ZbGateway realWay = null;
             if (this.GetRealGateway(ref realWay, gateway) == false)
             {
-                //閿欒:缃戝叧瀵硅薄涓㈠け
-                string msg = Language.StringByID(R.MyInternationalizationString.uErrorGatewayLostMsg);
-                this.ShowTipMsg(msg);
+                if (mode == ShowErrorMode.YES)
+                {
+                    //閿欒:缃戝叧瀵硅薄涓㈠け
+                    string msg = Language.StringByID(R.MyInternationalizationString.uErrorGatewayLostMsg);
+                    this.ShowTipMsg(msg);
+                }
                 return false;
             }
 
@@ -2262,13 +2272,16 @@
             realWay.Actions -= action;
             if (result != 0)
             {
-                //璁剧疆缃戝叧缁忕含搴﹀け璐�
-                string msg = Language.StringByID(R.MyInternationalizationString.uSetGatewaySiteFail);
-                if (result == -1)
+                if (mode == ShowErrorMode.YES)
                 {
-                    msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, null, "鍥炲瓒呮椂");
+                    //璁剧疆缃戝叧缁忕含搴﹀け璐�
+                    string msg = Language.StringByID(R.MyInternationalizationString.uSetGatewaySiteFail);
+                    if (result == -1)
+                    {
+                        msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, null, "鍥炲瓒呮椂");
+                    }
+                    this.ShowTipMsg(msg);
                 }
-                this.ShowTipMsg(msg);
                 return false;
             }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
index 619dd26..4cab21b 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
@@ -194,10 +194,207 @@
             var deviceAddr = receiveData.Value<string>("DeviceAddr");
             var deviceEpoint = receiveData.Value<int>("Epoint");
 
-            var tempDevice = new CommonDevice { DeviceAddr = deviceAddr, DeviceEpoint = deviceEpoint };
-            tempDevice.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.DeviceStatusReportData>(receiveData["Data"].ToString());
+            var report = new CommonDevice { DeviceAddr = deviceAddr, DeviceEpoint = deviceEpoint };
+            report.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.DeviceStatusReportData>(receiveData["Data"].ToString());
+            if (report.DeviceStatusReport.AttriBute.Count == 0)
+            {
+                //缃戝叧鏈変簺濂囪懇锛屾病鏈夊睘鎬у畠涔熶細鍙戣繃鏉�
+                return;
+            }
 
-            this.DeviceReportPush(tempDevice, ReceiveComandDiv.A璁惧灞炴�т笂鎶�);
+            //澶勭悊缃戝叧涓婃姤鐨勬暟鎹�,鐒跺悗鍙樻洿鏈湴缂撳瓨
+            var locadevice = Common.LocalDevice.Current.GetDevice(deviceAddr, deviceEpoint);
+            if (locadevice != null)
+            {
+                //鏈夊弽棣�,杩欎釜璁惧鑲畾鏄湪绾跨殑
+                locadevice.IsOnline = 1;
+                locadevice.LastDateTime = DateTime.Now;
+
+                #region 鈻� 寮�鍏冲姛鑳�
+                //寮�鍏冲姛鑳�
+                if (report.DeviceStatusReport.CluterID == 6)
+                {
+                    if (locadevice is LightBase)
+                    {
+                        locadevice.DeviceStatusReport = report.DeviceStatusReport;
+                        ((LightBase)locadevice).OnOffStatus = report.DeviceStatusReport.AttriBute[0].AttriButeData;
+                        //宸茬粡鎺ユ敹鍒扮姸鎬�
+                        locadevice.HadReadDeviceStatu = true;
+                    }
+                }
+                #endregion
+
+                #region 鈻� 绐楀笜鏁版嵁
+                //绐楀笜鏁版嵁
+                else if (report.DeviceStatusReport.CluterID == 258)
+                {
+                    //绐楀笜绫诲瀷
+                    if (report.DeviceStatusReport.AttriBute[0].AttributeId == 0)
+                    {
+                        locadevice.DeviceStatusReport = report.DeviceStatusReport;
+                        ((Rollershade)locadevice).WcdType = report.DeviceStatusReport.AttriBute[0].AttriButeData;
+                        //杩欎釜涓滆タ瑕佷繚瀛�
+                        locadevice.ReSave();
+                    }
+                    //绐楀笜鐧惧垎姣�
+                    else if (report.DeviceStatusReport.AttriBute[0].AttributeId == 8)
+                    {
+                        locadevice.DeviceStatusReport = report.DeviceStatusReport;
+                        ((Rollershade)locadevice).WcdCurrentPositionLiftPercentage = report.DeviceStatusReport.AttriBute[0].AttriButeData;
+                        //宸茬粡鎺ユ敹鍒扮姸鎬�
+                        locadevice.HadReadDeviceStatu = true;
+                    }
+                }
+                #endregion
+
+                #region 鈻� 绌鸿皟鏁版嵁
+                //绌鸿皟鏁版嵁
+                else if (report.DeviceStatusReport.CluterID == 513)
+                {
+                    locadevice.DeviceStatusReport = report.DeviceStatusReport;
+                    foreach (var attData in report.DeviceStatusReport.AttriBute)
+                    {
+                        var curTemp = attData.AttriButeData / 100;
+                        if (attData.AttributeId == 0)
+                        {
+                            //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝
+                            ((AC)locadevice).currentLocalTemperature = curTemp;
+                            //宸茬粡鎺ユ敹鍒扮姸鎬�
+                            locadevice.HadReadDeviceStatu = true;
+                        }
+                        else if (attData.AttributeId == 17)
+                        {
+                            //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝
+                            ((AC)locadevice).currentCoolingSetpoint = curTemp;
+                            //宸茬粡鎺ユ敹鍒扮姸鎬�
+                            locadevice.HadReadDeviceStatu = true;
+                        }
+                        else if (attData.AttributeId == 18)
+                        {
+                            //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鐑俯搴︼紝瀹為檯娓╁害涓衡�淗eatingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆�
+                            ((AC)locadevice).currentHeatingSetpoint = curTemp;
+                            //宸茬粡鎺ユ敹鍒扮姸鎬�
+                            locadevice.HadReadDeviceStatu = true;
+                        }
+                        else if (attData.AttributeId == 28)
+                        {
+                            //姝ゅ睘鎬ф弿杩版亽娓╄澶囨澶勪簬鍝妯″紡
+                            ((AC)locadevice).currentSystemMode = attData.AttriButeData;
+                            //宸茬粡鎺ユ敹鍒扮姸鎬�
+                            locadevice.HadReadDeviceStatu = true;
+                        }
+                        else if (attData.AttributeId == 4096)
+                        {
+                            //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勮嚜鍔ㄦ俯搴︼紝瀹為檯娓╁害涓衡�淎utoSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆�
+                            ((AC)locadevice).currentAutoSetpoint = curTemp;
+                            //宸茬粡鎺ユ敹鍒扮姸鎬�
+                            locadevice.HadReadDeviceStatu = true;
+                        }
+                    }
+                }
+                //绌鸿皟鏁版嵁
+                else if (report.DeviceStatusReport.CluterID == 514)
+                {
+                    locadevice.DeviceStatusReport = report.DeviceStatusReport;
+                    foreach (var attData in report.DeviceStatusReport.AttriBute)
+                    {
+                        if (attData.AttributeId == 0)
+                        {
+                            //椋庢墖妯″紡
+                            ((AC)locadevice).currentFanMode = attData.AttriButeData;
+                            //宸茬粡鎺ユ敹鍒扮姸鎬�
+                            locadevice.HadReadDeviceStatu = true;
+                        }
+                        else if (attData.AttributeId == 4096)
+                        {
+                            //椋庢墖鎵
+                            ((AC)locadevice).currentFanSwingMode = attData.AttriButeData;
+                            //宸茬粡鎺ユ敹鍒扮姸鎬�
+                            locadevice.HadReadDeviceStatu = true;
+                        }
+                    }
+                }
+                #endregion
+
+                #region 鈻� 浜害鏁版嵁
+                //浜害鏁版嵁
+                else if (report.DeviceStatusReport.CluterID == 8)
+                {
+                    locadevice.DeviceStatusReport = report.DeviceStatusReport;
+                    if (report.DeviceStatusReport.AttriBute[0].AttributeId == 0)
+                    {
+                        //姝ゅ睘鎬ц〃鏄庡綋鍓嶄寒搴︾▼搴�
+                        ((DimmableLight)locadevice).Level = report.DeviceStatusReport.AttriBute[0].AttriButeData;
+                        //宸茬粡鎺ユ敹鍒扮姸鎬�
+                        locadevice.HadReadDeviceStatu = true;
+                    }
+                }
+                #endregion
+
+                #region 鈻� 娓╁害鏁版嵁
+                //娓╁害鏁版嵁
+                else if (report.DeviceStatusReport.CluterID == 1026)
+                {
+                    foreach (var attData in report.DeviceStatusReport.AttriBute)
+                    {
+                        //娓╁害
+                        if (attData.AttributeId == (int)AttriButeId.MeasuredValue)
+                        {
+                            if (attData.AttriButeData == 0)
+                            {
+                                ((TemperatureSensor)locadevice).Temperatrue = 0;
+                            }
+                            else if (attData.AttriButeData > 32767)
+                            {
+                                //璐熸暟(鐗规畩澶勭悊)
+                                string strValue = (attData.AttriButeData - 65536).ToString();
+                                //灏忔暟鐐归渶瑕佷竴浣�
+                                strValue = strValue.Substring(0, strValue.Length - 1);
+                                ((TemperatureSensor)locadevice).Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+                            }
+                            else
+                            {
+                                //灏忔暟鐐归渶瑕佷竴浣�
+                                string strValue = attData.AttriButeData.ToString();
+                                strValue = strValue.Substring(0, strValue.Length - 1);
+                                ((TemperatureSensor)locadevice).Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+                            }
+                            //宸茬粡鎺ユ敹鍒扮姸鎬�
+                            locadevice.HadReadDeviceStatu = true;
+                        }
+                    }
+                }
+                #endregion
+
+                #region 鈻� 婀垮害鏁版嵁
+                //婀垮害鏁版嵁
+                else if (report.DeviceStatusReport.CluterID == 1029)
+                {
+                    foreach (var attData in report.DeviceStatusReport.AttriBute)
+                    {
+                        //婀垮害
+                        if (attData.AttributeId == (int)AttriButeId.MeasuredValue)
+                        {
+                            if (attData.AttriButeData == 0)
+                            {
+                                ((TemperatureSensor)locadevice).Humidity = 0;
+                            }
+                            else
+                            {
+                                //灏忔暟鐐归渶瑕佷竴浣�(婀垮害娌℃湁璐熸暟)
+                                string strValue = attData.AttriButeData.ToString();
+                                strValue = strValue.Substring(0, strValue.Length - 1);
+                                ((TemperatureSensor)locadevice).Humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+                            }
+                        }
+                        //宸茬粡鎺ユ敹鍒扮姸鎬�
+                        locadevice.HadReadDeviceStatu = true;
+                    }
+                }
+                #endregion
+            }
+
+            this.DeviceReportPush(report, ReceiveComandDiv.A璁惧灞炴�т笂鎶�);
         }
 
         #endregion
@@ -218,6 +415,15 @@
             {
                 //淇濆瓨瀹夐槻鎶ヨ淇℃伅鍒版湰鍦�
                 HdlAlarmsLogic.Current.SaveSafeguardAlarmInfo(ias);
+            }
+
+            //澶勭悊缃戝叧涓婃姤鐨勬暟鎹�,鐒跺悗鍙樻洿鏈湴缂撳瓨
+            var locadevice = Common.LocalDevice.Current.GetDevice(ias.DeviceAddr, ias.DeviceEpoint);
+            if (locadevice != null)
+            {
+                ((IASZone)locadevice).iASInfo = ias.iASInfo;
+                //璁板綍鍥炲鏃堕棿
+                locadevice.LastDateTime = DateTime.Now;
             }
 
             this.DeviceReportPush(ias, ReceiveComandDiv.A浼犳劅鍣ㄤ笂鎶�);
@@ -260,7 +466,17 @@
             }
             var tempDevice = new CommonDevice() { DeviceAddr = receiveData.Value<string>("DeviceAddr"), DeviceEpoint = receiveData.Value<int>("Epoint") };
             tempDevice.IsOnline = Convert.ToInt32(receiveData["Data"]["IsOnline"].ToString());
-            
+
+            //澶勭悊缃戝叧涓婃姤鐨勬暟鎹�,鐒跺悗鍙樻洿鏈湴缂撳瓨
+            var locadevice = Common.LocalDevice.Current.GetDevice(tempDevice.DeviceAddr, tempDevice.DeviceEpoint);
+            if (locadevice != null)
+            {
+                locadevice.IsOnline = tempDevice.IsOnline;
+                //璁板綍鍥炲鏃堕棿
+                locadevice.LastDateTime = DateTime.Now;
+                locadevice.ReSave();
+            }
+
             this.DeviceReportPush(tempDevice, ReceiveComandDiv.A璁惧鍦ㄧ嚎涓婃姤);
         }
 
@@ -517,11 +733,11 @@
         #region 鈻� 涓�鑸柟娉昣__________________________
 
         /// <summary>
-        /// 璁惧涓婃姤鎺ㄩ��
+        /// 璁惧涓婃姤鎺ㄩ��(璋冪敤姝ゆ柟娉�,浠栦細鎺ㄩ�佸埌鍚勮嚜鐨勭晫闈�)
         /// </summary>
         /// <param name="common"></param>
         /// <param name="comand"></param>
-        private void DeviceReportPush(CommonDevice common, ReceiveComandDiv comand)
+        public void DeviceReportPush(CommonDevice common, ReceiveComandDiv comand)
         {
             if (this.dicDeviceEvent.Count == 0)
             {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs
index a44eb08..f173892 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlRoomLogic.cs
@@ -76,7 +76,7 @@
             this.dicRooms.Clear();
             //妫�娴嬫垜鐨勫枩鐖辫繖涓埧闂村璞�
             this.CheckLoveRoom();
-            
+
             foreach (var roomId in Config.Instance.Home.ListRooms)
             {
                 //浠庢枃浠堕噷闈㈣幏鍙栨埧闂村璞�
@@ -136,7 +136,7 @@
         {
             Application.RunOnMainThread(() =>
             {
-                Phone.Device.Room.RoomManagement.Instance.Show();
+                MainPage.ListRoomViewFrom.Instance?.ShowForm();
             });
         }
 
@@ -683,12 +683,28 @@
         /// <returns></returns>
         public List<CommonDevice> GetRoomListDevice(Room i_room)
         {
-            var listDevice = new List<CommonDevice>();
+            var dicSort = new Dictionary<string, List<int>>();
             foreach (var mainKeys in i_room.ListDevice)
             {
                 var device = LocalDevice.Current.GetDevice(mainKeys);
                 if (device != null)
                 {
+                    if (dicSort.ContainsKey(device.DeviceAddr) == false)
+                    {
+                        dicSort[device.DeviceAddr] = new List<int>();
+                    }
+                    dicSort[device.DeviceAddr].Add(device.DeviceEpoint);
+                }
+            }
+            var listDevice = new List<CommonDevice>();
+            foreach (var strMac in dicSort.Keys)
+            {
+                var listEpont = dicSort[strMac];
+                //鎺掑簭
+                listEpont.Sort();
+                for (int i = 0; i < listEpont.Count; i++)
+                {
+                    var device = LocalDevice.Current.GetDevice(strMac, listEpont[i]);
                     listDevice.Add(device);
                 }
             }
@@ -766,10 +782,6 @@
                     listDevice.Add(device);
                 }
             }
-            if (listDevice.Count == 0)
-            {
-                return null;
-            }
             return listDevice;
         }
 
@@ -825,7 +837,7 @@
         #region 鈻� 妤煎眰鍜屾埧闂撮『搴忕浉鍏砡________________
 
         /// <summary>
-        /// 鏍规嵁妤煎眰鐨勪富閿幏鍙栨帓搴忓悗鐨勬埧闂村垪琛�
+        /// 鏍规嵁妤煎眰鐨勪富閿幏鍙栨帓搴忓悗鐨勬埧闂村垪琛�(鏀寔鏃犳ゼ灞傛ā寮�)
         /// </summary>
         /// <param name="i_floorKeys">妤煎眰鐨勪富閿�</param>
         /// <param name="getShard">鍒嗕韩鐨勬埧闂存槸鍚︿篃鑾峰彇</param>
@@ -854,11 +866,16 @@
             var dicRoom = new Dictionary<string, Common.Room>();
             foreach (var room in this.dicRooms.Values)
             {
-                if (room.FloorId != i_floorKeys || room.IsLove == true)
+                if (room.FloorId != i_floorKeys && i_floorKeys != string.Empty)
                 {
                     //涓嶆槸鍚屼竴涓ゼ灞�
                     continue;
                 }
+                if (room.IsLove == true)
+                {
+                    //涓嶈鎴戠殑鍠滅埍
+                    continue;
+                }
                 if (listRoomSort.Contains(room.Id) == false)
                 {
                     //鏂版坊鍔犵殑鎴块棿
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs
index 23e7d57..1ec286d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs
@@ -234,7 +234,7 @@
             //澶勭悊璁惧
             foreach (var data2 in allData.DeviceList)
             {
-                string mainKey = data2.MacAddr + data2.Epoint;
+                string mainKey = LocalDevice.Current.GetDeviceMainKeys(data2.MacAddr, data2.Epoint);
                 //浼犳劅鍣ㄨ澶囦俊鎭�
                 var Deviceinfo = new Safeguard.ZoneDeviceListData();
                 Deviceinfo.IsBypass = data2.IsBypass;
@@ -295,7 +295,7 @@
                 if (data.Type == 0)
                 {
                     //鏈湴鏄惁鏈夎繖涓澶�
-                    string mainKey = data.DeviceAddr + data.Epoint;
+                    string mainKey = LocalDevice.Current.GetDeviceMainKeys(data.DeviceAddr, data.Epoint);
                     //鎶ヨ淇℃伅
                     zoneInfo.dicAlarmDevice[mainKey] = data;
                     CommonDevice device = LocalDevice.Current.GetDevice(mainKey);
@@ -559,7 +559,7 @@
                 //涓�鎵硅澶囬噷闈紝鎴愬姛娣诲姞鐨�
                 if (data.Status == 0)
                 {
-                    listSuccess.Add(data.MacAddr + data.Epoint);
+                    listSuccess.Add(LocalDevice.Current.GetDeviceMainKeys(data.MacAddr, data.Epoint));
                 }
                 else if (data.Status == 1)
                 {
@@ -745,7 +745,7 @@
             {
                 if (data.Status == 0)
                 {
-                    listKeys.Add(data.MacAddr + data.Epoint);
+                    listKeys.Add(LocalDevice.Current.GetDeviceMainKeys(data.MacAddr, data.Epoint));
                 }
             }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs
index ff5759c..c0945ed 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSceneLogic.cs
@@ -469,7 +469,7 @@
                     }
                 }
             }
-            
+
             return sceneUIs;
         }
 
@@ -493,6 +493,85 @@
 
         #endregion
 
+        #region 鈻� 璋冪敤鍦烘櫙___________________________
+
+        /// <summary>
+        /// 璋冪敤鍦烘櫙
+        /// </summary>
+        /// <param name="scene"></param>
+        /// <returns></returns>
+        public async Task<bool> ControlScene(SceneUI scene)
+        {
+            if (scene.RemainTime > 0)
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //璇ュ満鏅鍦ㄥ欢鏃讹紝璇风◢鍚�
+                    var msgContr = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.TheSceneIsDelaying));
+                    msgContr.Show();
+                });
+                return false;
+            }
+            //鎵ц璋冪敤鍦烘櫙
+            var result = await Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime);
+            if (result == null || result.sceneOpenData == null)
+            {
+                //鎺у埗鍦烘櫙澶辫触
+                string msg = Language.StringByID(R.MyInternationalizationString.ControlSceneFail);
+                //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg
+                msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, result);
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //璇ュ満鏅鍦ㄥ欢鏃讹紝璇风◢鍚�
+                    var msgContr = new ShowMsgControl(ShowMsgType.Tip, msg);
+                    msgContr.Show();
+                });
+                return false;
+            }
+            if (result.sceneOpenData.Result == 0)
+            {
+                //鎺у埗鍦烘櫙澶辫触
+                string msg = Language.StringByID(R.MyInternationalizationString.ControlSceneFail);
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //璇ュ満鏅鍦ㄥ欢鏃讹紝璇风◢鍚�
+                    var msgContr = new ShowMsgControl(ShowMsgType.Tip, msg);
+                    msgContr.Show();
+                });
+                return false;
+            }
+            return true;
+        }
+
+        #endregion
+
+        #region 鈻� 寤舵椂鏃堕棿绾跨▼_______________________
+
+        /// <summary>
+        /// 寮�鍚欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾)
+        /// </summary>
+        public void StartDelayTimeThread(SceneUI i_scene)
+        {
+            if (i_scene.RemainThreadAction == true)
+            {
+                //绾跨▼鍦ㄨ繍琛屼腑
+                return;
+            }
+            i_scene.RemainThreadAction = true;
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                while (i_scene.RemainTime > 0)
+                {
+                    System.Threading.Thread.Sleep(1000);
+                    i_scene.RemainTime--;
+                }
+                i_scene.RemainThreadAction = false;
+            });
+        }
+
+        #endregion
+
         #region 鈻� 涓�鑸柟娉昣__________________________
 
         /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
index 26f82ee..97d8067 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
@@ -428,74 +428,17 @@
                         var actionForm = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
                         if (actionForm != null && actionForm is CommonFormBase)
                         {
-                            //璁剧疆褰撳墠婵�娲荤殑鐢婚潰ID
-                            UserCenterResourse.NowActionFormID = UserCenterResourse.listActionFormId[index];
-                            //杩藉姞鏉′欢涓�:鍏抽棴鐨勭晫闈负EditorCommonForm鐨勬椂鍊欐墠澶勭悊
-                            if ((form is EditorCommonForm) && UserCenterResourse.DicActionForm.ContainsKey(UserCenterResourse.NowActionFormID) == true)
-                            {
-                                try
-                                {
-                                    EditorCommonForm Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID] as EditorCommonForm;
-                                    if (Myform != null)
-                                    {
-                                        //閲嶇疆宸︽粦浣胯兘
-                                        Myform.ScrollEnabled = Myform.ScrollEnabled;
-                                        //瑙﹀彂鐣岄潰鍐嶆婵�娲荤殑浜嬩欢
-                                        int value = Myform.FormActionAgainEvent();
-                                        if (value == 1)
-                                        {
-                                            //Log鍑哄姏
-                                            HdlLogLogic.Current.WriteLog(1, Myform.FormID + " 琚縺娲�");
-                                        }
-                                    }
-                                }
-                                catch (Exception ex)
-                                {
-                                    //鍑虹幇鏈煡閿欒,鏁版嵁涓㈠け
-                                    var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
-                                    alert.Show();
-
-                                    //Log鍑哄姏
-                                    HdlLogLogic.Current.WriteLog(ex);
-                                }
-                            }
+                            //璋冪敤鐣岄潰閲嶆柊婵�娲荤殑鍑芥暟
+                            CallFormActionAgainEvent(form, index);
                         }
                         else if (actionForm != null && actionForm is UserView.UserPage)
                         {
-                            //杩欓噷瀹冨凡缁忛��鍒颁富椤典簡,濡傛灉瀹冨寘鍚釜浜轰腑蹇冧富椤电殑璇�
-                            if (UserCenterResourse.listActionFormId.Contains("UserMainForm") == true)
+                            //杩欓噷瀹冨凡缁忛��鍒颁富椤典簡
+                            if (UserCenterResourse.listActionFormId.Contains("UserMainForm") == true//涓汉涓績
+                                || UserCenterResourse.listActionFormId.Contains("HomeMainPageForm") == true)//
                             {
-                                //璁剧疆褰撳墠婵�娲荤殑鐢婚潰ID
-                                UserCenterResourse.NowActionFormID = UserCenterResourse.listActionFormId[index];
-                                //杩藉姞鏉′欢涓�:鍏抽棴鐨勭晫闈负EditorCommonForm鐨勬椂鍊欐墠澶勭悊
-                                if ((form is EditorCommonForm) && UserCenterResourse.DicActionForm.ContainsKey(UserCenterResourse.NowActionFormID) == true)
-                                {
-                                    try
-                                    {
-                                        EditorCommonForm Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID] as EditorCommonForm;
-                                        if (Myform != null)
-                                        {
-                                            //閲嶇疆宸︽粦浣胯兘
-                                            Myform.ScrollEnabled = Myform.ScrollEnabled;
-                                            //瑙﹀彂鐣岄潰鍐嶆婵�娲荤殑浜嬩欢
-                                            int value = Myform.FormActionAgainEvent();
-                                            if (value == 1)
-                                            {
-                                                //Log鍑哄姏
-                                                HdlLogLogic.Current.WriteLog(1, Myform.FormID + " 琚縺娲�");
-                                            }
-                                        }
-                                    }
-                                    catch (Exception ex)
-                                    {
-                                        //鍑虹幇鏈煡閿欒,鏁版嵁涓㈠け
-                                        var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
-                                        alert.Show();
-
-                                        //Log鍑哄姏
-                                        HdlLogLogic.Current.WriteLog(ex);
-                                    }
-                                }
+                                //璋冪敤鐣岄潰閲嶆柊婵�娲荤殑鍑芥暟
+                                CallFormActionAgainEvent(form, index);
                             }
                         }
                     }
@@ -504,6 +447,43 @@
                 UserCenterResourse.listActionFormId.Remove(UserCenterResourse.DicActionForm[formName].FormID);
                 //绉婚櫎鐢婚潰
                 UserCenterResourse.DicActionForm.Remove(formName);
+            }
+        }
+
+        /// <summary>
+        /// 璋冪敤鐣岄潰閲嶆柊婵�娲荤殑鍑芥暟
+        /// </summary>
+        /// <param name="form">鍏抽棴鐨勭晫闈㈠璞�</param>
+        /// <param name="index">褰撳墠闇�瑕侀噸鏂版縺娲荤晫闈㈢殑绱㈠紩</param>
+        private static void CallFormActionAgainEvent(CommonFormBase form, int index)
+        {
+            //璁剧疆褰撳墠婵�娲荤殑鐢婚潰ID
+            UserCenterResourse.NowActionFormID = UserCenterResourse.listActionFormId[index];
+            //杩藉姞鏉′欢涓�:鍏抽棴鐨勭晫闈负EditorCommonForm鐨勬椂鍊欐墠澶勭悊
+            if ((form is EditorCommonForm) && UserCenterResourse.DicActionForm.ContainsKey(UserCenterResourse.NowActionFormID) == true)
+            {
+                try
+                {
+                    var Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID] as EditorCommonForm;
+                    //閲嶇疆宸︽粦浣胯兘
+                    Myform.ScrollEnabled = Myform.ScrollEnabled;
+                    //瑙﹀彂鐣岄潰鍐嶆婵�娲荤殑浜嬩欢
+                    int value = Myform.FormActionAgainEvent();
+                    if (value == 1)
+                    {
+                        //Log鍑哄姏
+                        HdlLogLogic.Current.WriteLog(1, Myform.FormID + " 琚縺娲�");
+                    }
+                }
+                catch (Exception ex)
+                {
+                    //鍑虹幇鏈煡閿欒,鏁版嵁涓㈠け
+                    var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
+                    alert.Show();
+
+                    //Log鍑哄姏
+                    HdlLogLogic.Current.WriteLog(ex, "鐣岄潰閲嶆柊婵�娲诲紓甯�");
+                }
             }
         }
 
@@ -701,6 +681,13 @@
             while (UserView.HomePage.Instance.ChildrenCount > 0)
             {
                 var view = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
+                //(鍥犲簳灞傛帶浠朵慨鏀逛簡, 鐖舵帶浠剁Щ闄ゆ椂, 涓嶈Е鍙戝瓙鎺т欢鐨勭Щ闄や簨浠�)
+                if (view is ViewGroup)
+                {
+                    //鍏抽棴鍔犺浇鍦╒iewGroup閲岄潰鐨勮嚜瀹氫箟鐣岄潰Form
+                    CloseViewGroupChildren((ViewGroup)view);
+                }
+
                 if (view is CommonFormBase)
                 {
                     if (((CommonFormBase)view).FormID == tagetFrom)
@@ -717,6 +704,23 @@
                 else
                 {
                     view.RemoveFromParent();
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鍏抽棴鍔犺浇鍦╒iewGroup閲岄潰鐨勮嚜瀹氫箟鐣岄潰Form(鍥犲簳灞傛帶浠朵慨鏀逛簡,鐖舵帶浠剁Щ闄ゆ椂,涓嶈Е鍙戝瓙鎺т欢鐨勭Щ闄や簨浠�)
+        /// </summary>
+        /// <param name="group"></param>
+        private static void CloseViewGroupChildren(ViewGroup group)
+        {
+            for (int i = 0; i < group.ChildrenCount; i++)
+            {
+                var view = group.GetChildren(i);
+                if (view is CommonFormBase)
+                {
+                    ((CommonFormBase)view).CloseForm();
+                    i--;
                 }
             }
         }
@@ -841,7 +845,7 @@
         {
             //APP缂撳瓨鍔犺浇寮�濮�
             UserCenterResourse.AccountOption.AppCanSignout = false;
-            //杩樺師杩滅▼杩炴帴鍙橀噺
+            //杩樺師杩滅▼杩炴帴鏉冮檺鍙橀噺
             ZigBee.Device.ZbGateway.AllowRemoteCtrl = true;
 
             //鍙湁鍦ㄤ綇瀹匢D涓嶄竴鏍风殑鏃跺�欐墠鍋氳繖涓搷浣�
@@ -855,17 +859,8 @@
                 }
                 catch { }
 
-                //娑堟伅璁板綍閲嶆柊璇诲彇鍙婃娴�
-                ControlCommonResourse.ReadMessageAgain = true;
-                ControlCommonResourse.HadNewMessage = false;
-                HdlThreadLogic.Current.RunMain(() =>
-                {
-                    for (int i = 0; i < ControlCommonResourse.listMessageManaContr.Count; i++)
-                    {
-                        //鏄剧ず瑙掓爣鐗规晥
-                        ControlCommonResourse.listMessageManaContr[i].IsSelected = false;
-                    }
-                });
+                //娓呯┖鎵�鏈夋垚鍛樼紦瀛�
+                ClearAllMemberMemory();
 
                 //鍔犺浇璐﹀彿閰嶇疆淇℃伅
                 var optionInfo = UserCenterResourse.AccountOption.Load();
@@ -943,6 +938,29 @@
             return true;
         }
 
+        /// <summary>
+        /// 娓呯┖鎵�鏈夋垚鍛樼紦瀛�
+        /// </summary>
+        private static void ClearAllMemberMemory()
+        {
+            //娑堟伅璁板綍閲嶆柊璇诲彇鍙婃娴�
+            ControlCommonResourse.ReadMessageAgain = true;
+            ControlCommonResourse.HadNewMessage = false;
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                for (int i = 0; i < ControlCommonResourse.listMessageManaContr.Count; i++)
+                {
+                    //鏄剧ず瑙掓爣鐗规晥
+                    ControlCommonResourse.listMessageManaContr[i].IsSelected = false;
+                }
+            });
+
+            //褰撳墠涓婚〉,鍦烘櫙鍜屽姛鑳芥墍閫夋嫨鐨勫垎鏀� 1:鍦烘櫙 2:鍔熻兘
+            UserCenterResourse.ResidenceOption.HomeMainPageSwitchIndex = 1;
+            //褰撳墠鍒嗙被,鍦烘櫙鍜屽姛鑳芥墍閫夋嫨鐨勫垎鏀� 0:鍦烘櫙 1:鍔熻兘 2:鑷姩鍖�
+            UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex = 0;
+        }
+
         #endregion
 
         #region 鈻� 鍒濆鍖栫櫥闄嗚处鍙风殑淇℃伅_______________
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs
index aef3ae0..2680692 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/ACZbGatewayModuleUpdateForm.cs
@@ -170,6 +170,11 @@
                 //閲嶅伐绌鸿皟妯″潡
                 textView = Language.StringByID(R.MyInternationalizationString.uHicAirConditioningModule);
             }
+            else if (info.Name.Contains("IRACC_HITACHI") == true)
+            {
+                //鏃ョ珛绌鸿皟妯″潡
+                textView = Language.StringByID(R.MyInternationalizationString.uHitachiAirConditioningModule);
+            }
             else
             {
                 //绌鸿皟鍗囩骇妯″潡
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs
index 4c2bb2d..954cb27 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs
@@ -8,19 +8,8 @@
 using static ZigBee.Device.Panel;
 namespace Shared.Phone.UserCenter.DeviceBind
 {
-    public class AddDevicePage : BindCommonLayout, ZigBee.Common.IStatus
+    public class AddDevicePage : BindCommonLayout
     {
-        /// <summary>
-        /// 鎸夐敭妯″紡鎺ユ敹
-        /// </summary>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-            Shared.Application.RunOnMainThread(() =>
-            {
-            });
-        }
-
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="doorLock"></param>
@@ -330,7 +319,7 @@
                     chooseKeyModePage.action += action;
                 }
             };
-            #endregion 
+            #endregion
         }
 
         /// <summary>
@@ -629,6 +618,7 @@
                     TextColor = Shared.Common.ZigbeeColor.Current.TextBlack,
                     TextAlignment = TextAlignment.CenterLeft,
                     Tag = device.DeviceEpointName,
+                    Text = Common.LocalDevice.Current.GetDeviceEpointName(device),
                     TextSize = 15,
                 };
                 rowLayout.AddChidren(btnBindName);
@@ -701,14 +691,6 @@
                 btnBindName.MouseUpEventHandler += hander;
                 btnChoose.MouseUpEventHandler += hander;
 
-                if (string.IsNullOrEmpty(device.DeviceEpointName))
-                {
-                    btnBindName.Text = device.DeviceAddr + "_" + device.DeviceEpoint;
-                }
-                else
-                {
-                    btnBindName.Text = device.DeviceEpointName;
-                }
                 foreach (var bindedDev in targetList)
                 {
                     var id = device.DeviceAddr + device.DeviceEpoint;
@@ -877,18 +859,6 @@
                 rowFrameLayout.MouseUpEventHandler += hander;
                 btnMethodText.MouseUpEventHandler += hander;
             }
-        }
-
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-
-        public void ChangedISceneStatus(Scene scene)
-        {
         }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
index 7098e3d..4b368a9 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
@@ -10,19 +10,8 @@
 
 namespace Shared.Phone.UserCenter.DeviceBind
 {
-    public class AddScenePage : BindCommonLayout, ZigBee.Common.IStatus
+    public class AddScenePage : BindCommonLayout
     {
-        /// <summary>
-        /// 鎸夐敭妯″紡鎺ユ敹
-        /// </summary>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-            Shared.Application.RunOnMainThread(() =>
-            {
-            });
-        }
-
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="doorLock"></param>
@@ -181,7 +170,7 @@
             bottomFrameLayout.AddChidren(btnFinifh);
             #endregion
 
-            #region 鏁版嵁澶勭悊  
+            #region 鏁版嵁澶勭悊
             //鑾峰彇妤煎眰
             dicFloor = HdlRoomLogic.Current.GetFloorSortList();
             currentKey.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId();
@@ -919,7 +908,7 @@
         List<SceneUI> GetALlDispalyRoomSceneList()
         {
             currentKeyAllRoomSceneList.Clear();
-            // 鑾峰彇鎵�鏈夋埧闂� 
+            // 鑾峰彇鎵�鏈夋埧闂�
             var listAllRoom = HdlRoomLogic.Current.GetAllListRooms();
             foreach (var room in listAllRoom)
             {
@@ -968,18 +957,6 @@
                 }
             }
             return tempSceneUIList;
-        }
-
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-
-        public void ChangedISceneStatus(Scene scene)
-        {
         }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
index b6a7c54..eaf2ba3 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
@@ -11,19 +11,8 @@
     /// <summary>
     /// 鎸夐敭绠$悊
     /// </summary>
-    public class BindTargetsPage : BindCommonLayout, ZigBee.Common.IStatus
+    public class BindTargetsPage : BindCommonLayout
     {
-        /// <summary>
-        /// 鎸夐敭妯″紡鎺ユ敹
-        /// </summary>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-            Shared.Application.RunOnMainThread(() =>
-            {
-            });
-        }
-
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="doorLock"></param>
@@ -66,7 +55,7 @@
         /// </summary>
         private System.Collections.Generic.List<CommonDevice> localDeviceList = new System.Collections.Generic.List<CommonDevice>();
         /// <summary>
-        /// 鏈湴鍦烘櫙鍒楄〃 
+        /// 鏈湴鍦烘櫙鍒楄〃
         /// </summary>
         private System.Collections.Generic.List<SceneUI> scList = new System.Collections.Generic.List<SceneUI> { };
         /// <summary>
@@ -107,11 +96,15 @@
                     //鑾峰彇鏈湴鍦烘櫙鍒楄〃
                     scList = HdlSceneLogic.Current.GetAllRoomSceneList();
                     //鑾峰彇缃戝叧鍦烘櫙琛�
-                    var gwSceneObj = await currentKey.GetSceneInfoAsync();
-                    if (gwSceneObj != null && gwSceneObj.getSceneInfo != null)
+                    if (gwScenesList.Count == 0)
                     {
-                        gwScenesList = gwSceneObj.getSceneInfo.ScenesList;
+                        var gwSceneObj = await currentKey.GetSceneInfoAsync();
+                        if (gwSceneObj != null && gwSceneObj.getSceneInfo != null)
+                        {
+                            gwScenesList = gwSceneObj.getSceneInfo.ScenesList;
+                        }
                     }
+
                     //鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被
                     typeModeList = await GetTypeMode();
                     #region 璇诲彇闈㈡澘褰撳墠妯″紡
@@ -187,6 +180,7 @@
                                     Application.RunOnMainThread(() =>
                                     {
                                         CommonPage.Loading.Hide();
+                                        midVerticalRefreshLayout.EndHeaderRefreshing();
                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                                         return;
                                     });
@@ -212,11 +206,12 @@
                             }
                             currentKey.ReSave();
                         }
-                        #endregion 
+                        #endregion
                         Application.RunOnMainThread(() =>
                         {
                             RefreshList();
                             CommonPage.Loading.Hide();
+                            midVerticalRefreshLayout.EndHeaderRefreshing();
                         });
                     }
                     else
@@ -224,6 +219,7 @@
                         Application.RunOnMainThread(() =>
                         {
                             CommonPage.Loading.Hide();
+                            midVerticalRefreshLayout.EndHeaderRefreshing();
                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                         });
                         return;
@@ -370,7 +366,6 @@
                 midVerticalRefreshLayout.BeginHeaderRefreshing();
                 IsRead = true;
                 InitListInfo();
-                midVerticalRefreshLayout.EndHeaderRefreshing();
             };
 
             BlankPicUI();
@@ -408,13 +403,13 @@
         }
         /// <summary>
         /// 鎸夐敭缁戝畾琛ㄦ樉绀�
-        /// </summary> 
+        /// </summary>
         async void RefreshList()
         {
             midVerticalRefreshLayout.RemoveAll();
             this.midFrameLayout.RemoveAll();
             middleFrameLayout();
-            #region 鏁版嵁澶勭悊 
+            #region 鏁版嵁澶勭悊
             if (currentKey.bindList.Count == 0)
             {
                 entryStatusPic.Height = Application.GetRealHeight(556);
@@ -453,6 +448,7 @@
                     midVerticalRefreshLayout.AddChidrenRow(rowLayout);
                     rowLayout.frameTable.UseClickStatu = false;
                     var devicePic = rowLayout.frameTable.AddLeftIcon();
+                    devicePic.Y = Application.GetRealHeight(49);
                     devicePic.UnSelectedImagePath = "DoorLock/DoorLockUserPic.png";
 
                     #region 缁戝畾鏁版嵁澶勭悊
@@ -524,7 +520,6 @@
                                 }
 
                                 devicePic.UnSelectedImagePath = tempDev.IconPath;
-                                devicePic.Width = Application.GetRealWidth(110);
                                 devicePic.Text = "";
 
                                 if (string.IsNullOrEmpty(tempDev.DeviceEpointName))
@@ -539,7 +534,6 @@
                             else
                             {
                                 btnBindNameText = bindDevice.BindMacAddr + "_" + bindDevice.BindEpoint;
-                                devicePic.Width = Application.GetMinRealAverage(200);
                                 devicePic.TextAlignment = TextAlignment.CenterLeft;
                                 devicePic.TextColor = UserCenterColor.Current.Gray;
                                 devicePic.Text = Language.StringByID(R.MyInternationalizationString.uOffLine);
@@ -1284,18 +1278,5 @@
             scList.Clear();
             base.RemoveFromParent();
         }
-
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-
-        public void ChangedISceneStatus(Scene scene)
-        {
-        }
     }
 }
-
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
index 8230911..f1bafaf 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
@@ -5,19 +5,8 @@
 using static ZigBee.Device.BindObj;
 namespace Shared.Phone.UserCenter.DeviceBind
 {
-    public class ChooseKeyModePage : BindCommonLayout, ZigBee.Common.IStatus
+    public class ChooseKeyModePage : BindCommonLayout
     {
-        /// <summary>
-        /// 鎸夐敭妯″紡鎺ユ敹
-        /// </summary>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-            Shared.Application.RunOnMainThread(() =>
-            {
-            });
-        }
-
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="doorLock"></param>
@@ -361,7 +350,7 @@
                     btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                 }
             };
-            #endregion 
+            #endregion
         }
 
         /// <summary>
@@ -1106,19 +1095,6 @@
                 btnChoose.MouseUpEventHandler += hander;
                 i++;
             }
-        }
-
-
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-
-        public void ChangedISceneStatus(Scene scene)
-        {
         }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs
index cd6cbe0..de7b257 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs
@@ -252,6 +252,8 @@
             frameBack.AddChidren(btnProgressView);
 
             int progressValue = (int)(curtainData.OpenLimitValue / (curtainData.CurtainLength * 1.0) * 100);
+            //璁剧疆鐧惧垎姣旂殑鍒濆鍊�
+            curtainData.OpenLimitPersent = progressValue;
             var btnProgress1 = new NormalViewControl(200, 50, true);
             btnProgress1.X = Application.GetRealWidth(200);
             btnProgress1.Y = btnProgressView.Y;
@@ -422,6 +424,8 @@
             frameBack.AddChidren(btnProgressView);
 
             int progressValue = (int)(curtainData.CloseLimitValue / (curtainData.CurtainLength * 1.0) * 100);
+            //璁剧疆鐧惧垎姣旂殑鍒濆鍊�
+            curtainData.CloseLimitPersent = progressValue;
             var btnProgress1 = new NormalViewControl(200, 50, true);
             btnProgress1.X = Application.GetRealWidth(200);
             btnProgress1.Y = btnProgressView.Y;
@@ -655,7 +659,7 @@
             this.receiveCloseLimit = false;
             this.sendDiv = 0;
 
-            bool receiptData = false;
+            int receiptDataCount = 0;
             string mainkeys = LocalDevice.Current.GetDeviceMainKeys(curtainDevice);
             HdlGatewayReceiveLogic.Current.AddAttributeEvent("CurtainDeviceAttribute", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (device) =>
             {
@@ -679,23 +683,25 @@
                             //姝e悜
                             curtainData.Direction = false;
                         }
+                        receiptDataCount++;
                     }
                     else if (attriBute.AttributeId == 1)
                     {
                         //绐楀笜鎬婚暱
                         curtainData.CurtainLength = attriBute.AttriButeData;
+                        receiptDataCount++;
                     }
                     else if (attriBute.AttributeId == 16)
                     {
                         //寮�闄愪綅
                         curtainData.OpenLimitValue = attriBute.AttriButeData;
+                        receiptDataCount++;
                     }
                     else if (attriBute.AttributeId == 17)
                     {
                         //鍚堥檺浣�
                         curtainData.CloseLimitValue = attriBute.AttriButeData;
-                        //鏁版嵁鎺ユ敹缁撴潫
-                        receiptData = true;
+                        receiptDataCount++;
                     }
                 }
             });
@@ -703,7 +709,7 @@
             HdlDeviceCurtainLogic.Current.SetGetCurtainLimitSettionComand(curtainDevice);
 
             int timeCount = 30;
-            while (receiptData == false && timeCount >= 0)
+            while (receiptDataCount != 4 && timeCount >= 0)
             {
                 System.Threading.Thread.Sleep(100);
                 timeCount--;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
index 4d7cdf6..7e06c98 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
@@ -242,17 +242,6 @@
             }
             //鏇存敼杩囦竴娆′箣鍚庯紝鍒欑晫闈㈠叧闂悗涓嶅啀鏇存敼
             this.saveDefultName = string.Empty;
-
-            //濡傛灉瀹冪殑鍥炶矾鍙湁涓�涓殑璇濓紝鍒欏湪璁惧涓婃姤鐨勬椂鍊欙紝淇敼MAC鍚嶅瓧涔嬪悗锛岃繛鍚岀鐐瑰悕瀛椾篃涓�璧蜂慨鏀�
-            if (this.listNewDevice.Count == 1 && (this.listNewDevice[0] is OTADevice) == false)
-            {
-                //淇敼绔偣鍚嶅瓧
-                result = await Common.LocalDevice.Current.ReName(this.listNewDevice[0], deviceName, mode);
-                if (result == false)
-                {
-                    return;
-                }
-            }
         }
 
         /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
index fe01496..a80cecc 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceListMainForm.cs
@@ -418,7 +418,7 @@
                 form.AddForm(device, true);
             }
             //鏂伴闈㈡澘
-            else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueNewWind)
+            else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
             {
                 var form = new DeviceFunctionSettionForm();
                 form.AddForm(device, true);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index 6997bc6..083edd8 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -233,8 +233,13 @@
                     //娣诲姞銆愭寜閿缃�戣(闈㈡澘涓撶敤)
                     this.AddPanelSettionRow();
                 }
-                //娣诲姞銆愬姛鑳借缃�戣
-                this.AddFunctionSettionRow();
+
+                if (this.IsFangyueFreshaAirPanel() == false)
+                {
+                    //娣诲姞銆愬姛鑳借缃�戣
+                    this.AddFunctionSettionRow();
+                }
+
                 //娣诲姞銆愬共鎺ョ偣璁剧疆銆戣
                 this.AddDryContactSettionRow();
             }
@@ -494,7 +499,7 @@
                 || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour
                 || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight
                 || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment
-                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueNewWind)
+                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
             {
                 //鎸夐敭璁剧疆
                 string caption = Language.StringByID(R.MyInternationalizationString.uPanelSettion);
@@ -511,7 +516,7 @@
                     || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour
                     || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight)
                     {
-                        //鏂规偊闈㈡澘鐨勬寜閿厤缃�
+                        //鏂规偊鎸夐敭闈㈡澘[鍗曞紑鍙屾帶/鍙屽紑鍥涙帶/鍥涘紑鍏帶]閰嶇疆
                         var form = new DevicePanel.PanelFangyueButtonSettionForm();
                         form.AddForm(listNewDevice[0]);
                     }
@@ -524,8 +529,26 @@
                     else
                     {
                         //鏂规偊鏂伴闈㈡澘鐨勬寜閿厤缃�
+                        var form = new DevicePanel.PanelFangyueFreshAirButtonSettionForm();
+                        form.AddForm(listNewDevice[0]);
                     }
                 };
+                return true;
+            }
+            return false;
+        }
+
+        #endregion
+
+        #region 鈻� 鎸夐敭璁剧疆(鏂规偊)_____________________
+
+        /// <summary>
+        /// 鏄惁鏄柟鎮︽柊椋庨潰鏉�
+        /// </summary>
+        private bool IsFangyueFreshaAirPanel()
+        {
+            if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
+            {
                 return true;
             }
             return false;
@@ -642,7 +665,7 @@
                 return;
             }
             if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEnvironment
-                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueNewWind)
+                || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir)
             {
                 //鐜闈㈡澘娌℃湁鍔熻兘璁剧疆
                 return;
@@ -773,10 +796,11 @@
             btnSwitch.ButtonClickEvent += async (sender, e) =>
             {
                 //鍒囨崲妯″紡
-                var result = await HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, !btnSwitch.IsSelected);
+                bool statu = !btnSwitch.IsSelected;
+                var result = await HdlDeviceCurtainLogic.Current.SetHandPullControl(deviceCurtain, statu);
                 if (result == true)
                 {
-                    btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                    btnSwitch.IsSelected = statu;
                 }
             };
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs
index a32c91a..4102a31 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs
@@ -60,6 +60,10 @@
         /// 杩涘害鍊肩殑鏄剧ず鏂囨湰
         /// </summary>
         private NormalViewControl btnProgressView = null;
+        /// <summary>
+        /// 缃戝叧鏄惁鍏佽鍏ョ綉鐨勬爣璇�
+        /// </summary>
+        private bool gatewayCanAddDevice = false;
 
         #endregion
 
@@ -138,20 +142,8 @@
             btnProgressView.Text = "0%";
             frameProgress.AddChidren(btnProgressView);
 
-            HdlThreadLogic.Current.RunThread(() =>
-            {
-                //钃濇墠鍒氳鏈夋椂鍊欑綉鍏充細鏀朵笉鍒板叆缃戠殑鍛戒护,鎵�浠ュ彂涓夋
-                for (int i = 0; i < 3; i++)
-                {
-                    if (this.Parent == null)
-                    {
-                        return;
-                    }
-                    //璁╃綉鍏冲厑璁稿叆缃�
-                    this.realGateway.AddNewDeviceToGateway(180);
-                    System.Threading.Thread.Sleep(1000);
-                }
-            });
+            //鍏佽璁惧鍏ョ綉
+            this.StartDeviceCanAddToGateway(false);
 
             //娣诲姞鐩戣璁惧鏂颁笂鎶ョ殑浜嬩欢
             this.realGateway.GwResDataAction += this.AdjustGatewayResultData;
@@ -343,12 +335,18 @@
                 while (this.Parent != null)
                 {
                     System.Threading.Thread.Sleep(500);
-                    timeCount++;
-                    if (timeCount >= 240)
+
+                    //缃戝叧鍏佽璁惧鍏ョ綉鍚庢墠寮�濮嬭鏃�
+                    if (this.gatewayCanAddDevice == true)
                     {
-                        //120绉掑悗,鍐嶆鍙戦�佺綉鍏宠澶囧叆缃戝懡浠�
-                        this.realGateway.AddNewDeviceToGateway(180);
-                        timeCount = 0;
+                        timeCount++;
+                        if (timeCount >= 360)
+                        {
+                            this.gatewayCanAddDevice = false;
+                            //鍐嶆鍙戦�佸厑璁歌澶囧叆缃�
+                            this.StartDeviceCanAddToGateway(true);
+                            timeCount = 0;
+                        }
                     }
                     Application.RunOnMainThread(() =>
                     {
@@ -378,15 +376,34 @@
         /// <returns></returns>
         private int CheckIsDeviceComming(string topic, string resultData)
         {
-            if (topic == gatewayId + "/Device/DeviceAnnounce_Respon")
+            if (topic == gatewayId + "/Device/SearchNewDevice")
+            {
+                //缃戝叧鍥炲璁惧宸茬粡鍙互鍏ョ綉
+                var jobject = Newtonsoft.Json.Linq.JObject.Parse(resultData);
+                var info = Newtonsoft.Json.JsonConvert.DeserializeObject<SearchNewDeviceResult>(jobject["Data"].ToString());
+                if (info.time > 0)
+                {
+                    this.gatewayCanAddDevice = true;
+                }
+                return 0;
+            }
+            else if (topic == gatewayId + "/Device/DeviceAnnounce_Respon")
             {
                 this.topTimeOut = topMaxTime;
+
+                var jobject = Newtonsoft.Json.Linq.JObject.Parse(resultData);
+                var info = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceAnnounceInfo>(jobject["Data"].ToString());
+                if (info.IsNew == 6 || info.IsNew == 7)
+                {
+                    return 0;
+                }
                 //缃戝叧鍛婄煡瀹㈡埛绔湁璁惧澹版槑
                 this.SetDeviceProgressValue(1);
                 return 2;
             }
             else if (topic == gatewayId + "/Device/DeviceGetActiveEP_Respon")
             {
+                this.topTimeOut = topMaxTime;
                 //缃戝叧鍛婄煡瀹㈡埛绔幏鍙栬澶囨椿鍔ㄧ鐐逛俊鎭�
                 var jobject = Newtonsoft.Json.Linq.JObject.Parse(resultData);
                 var info = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceResultInfo>(jobject["Data"].ToString());
@@ -397,13 +414,13 @@
                     HdlLogLogic.Current.WriteLog(-1, resultData);
                     return 2;
                 }
-                this.topTimeOut = topMaxTime;
                 //璁剧疆杩涘害鍊�
                 this.SetDeviceProgressValue(2);
                 return 2;
             }
             else if (topic == gatewayId + "/Device/DeviceGetActiveEPSimpleDesc_Respon")
             {
+                this.topTimeOut = topMaxTime;
                 //缃戝叧鍛婄煡瀹㈡埛绔幏鍙栬澶囨墍鏈夋椿鍔ㄧ鐐圭畝鍗曟弿杩扮淇℃伅
                 var jobject = Newtonsoft.Json.Linq.JObject.Parse(resultData);
                 var info = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceResultInfo>(jobject["Data"].ToString());
@@ -414,13 +431,13 @@
                     HdlLogLogic.Current.WriteLog(-1, resultData);
                     return 2;
                 }
-                this.topTimeOut = topMaxTime;
                 //璁剧疆杩涘害鍊�
                 this.SetDeviceProgressValue(3);
                 return 2;
             }
             else if (topic == gatewayId + "/Device/DeviceGetDefaultBind_Respon")
             {
+                this.topTimeOut = topMaxTime;
                 //缃戝叧鍛婄煡瀹㈡埛绔幏鍙栬澶囬粯璁ょ粦瀹氳〃淇℃伅
                 var jobject = Newtonsoft.Json.Linq.JObject.Parse(resultData);
                 var info = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceResultInfo>(jobject["Data"].ToString());
@@ -431,13 +448,13 @@
                     HdlLogLogic.Current.WriteLog(-1, resultData);
                     return 2;
                 }
-                this.topTimeOut = topMaxTime;
                 //璁剧疆杩涘害鍊�
                 this.SetDeviceProgressValue(4);
                 return 2;
             }
             else if (topic == gatewayId + "/Device/DeviceAutoBindZBCoord_Respon")
             {
+                this.topTimeOut = topMaxTime;
                 //缃戝叧鍛婄煡瀹㈡埛绔澶囪嚜鍔ㄧ粦瀹氬崗璋冨櫒淇℃伅
                 var jobject = Newtonsoft.Json.Linq.JObject.Parse(resultData);
                 var info = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceResultInfo>(jobject["Data"].ToString());
@@ -448,7 +465,6 @@
                     HdlLogLogic.Current.WriteLog(-1, resultData);
                     return 2;
                 }
-                this.topTimeOut = topMaxTime;
                 //璁剧疆杩涘害鍊�
                 this.SetDeviceProgressValue(5);
                 return 2;
@@ -521,6 +537,33 @@
 
         #endregion
 
+        #region 鈻� 鍏佽璁惧鍏ョ綉_______________________
+
+        /// <summary>
+        /// 鍏佽璁惧鍏ョ綉
+        /// </summary>
+        /// <param name="close"></param>
+        private void StartDeviceCanAddToGateway(bool close)
+        {
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                if (close == true)
+                {
+                    //鍏抽棴鍏ョ綉妯″紡
+                    this.realGateway.AddNewDeviceToGateway(0);
+                    System.Threading.Thread.Sleep(2000);
+                }
+                while (gatewayCanAddDevice == false && this.Parent != null)
+                {
+                    //璁╃綉鍏冲厑璁稿叆缃�
+                    this.realGateway.AddNewDeviceToGateway(180);
+                    System.Threading.Thread.Sleep(6000);
+                }
+            });
+        }
+
+        #endregion
+
         #region 鈻� 鐢婚潰鍏抽棴___________________________
 
         /// <summary>
@@ -555,6 +598,28 @@
             public int Result = -1;
         }
 
+        /// <summary>
+        /// 缃戝叧鍛婄煡瀹㈡埛绔湁璁惧澹版槑
+        /// </summary>
+        private class DeviceAnnounceInfo
+        {
+            /// <summary>
+            /// 钃濇墠鍒氳 6鍜�7 杩欎袱涓槸璁惧閲嶅惎涓婃姤鐨勶紝鐩墠鏆傛椂涓嶈兘鏄剧ず鍒板叆缃戞楠ら偅閲岀殑
+            /// </summary>
+            public int IsNew = -1;
+        }
+
+        /// <summary>
+        /// 缃戝叧鍥炲鍏佽璁惧鍏ョ綉
+        /// </summary>
+        private class SearchNewDeviceResult
+        {
+            /// <summary>
+            /// 鍏佽璁惧鍏ョ綉鐨勬椂闂�
+            /// </summary>
+            public int time = 0;
+        }
+
         #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs
index 4775048..06e5310 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AddDeviceTypeListForm.cs
@@ -91,7 +91,12 @@
             //鏂规偊鐜闈㈡澘
             objectText = Language.StringByID(R.MyInternationalizationString.uDeviceModelId253);
             unSelectPic = "Device/ButtonPanelFangyueEnvironment.png";
-            this.AddMenuRow(objectText, unSelectPic, "PanelFangyueEnvironmentDirectionForm");
+            this.AddMenuRow(objectText, unSelectPic, "PanelFangyueEnvironmentDirectionForm");
+
+            //绐楀笜闈㈡澘
+            objectText = "绐楀笜闈㈡澘";
+            unSelectPic = "Device/ButtonPanelCurtain.png";
+            this.AddMenuRow(objectText, unSelectPic, "PanelCurtainDirectionForm");
 
             //3璺户鐢靛櫒灏忔ā鍧�
             objectText = Language.StringByID(R.MyInternationalizationString.uDeviceModelId2300);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelCurtainDirectionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelCurtainDirectionForm.cs
new file mode 100755
index 0000000..dd721fa
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelCurtainDirectionForm.cs
@@ -0,0 +1,84 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter.DeviceDirection
+{
+    /// <summary>
+    /// 绐楀笜闈㈡澘鐨勬坊鍔犳楠ょ晫闈�
+    /// </summary>
+    public class PanelCurtainDirectionForm : DirectionCommonForm
+    {
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
+        {
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddDevice));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //鍥剧墖
+            var framePic = new FrameLayout();
+            framePic.Width = Application.GetMinRealAverage(835);
+            framePic.Height = Application.GetMinRealAverage(711);
+            framePic.Gravity = Gravity.CenterHorizontal;
+            framePic.Y = Application.GetRealHeight(115);
+            bodyFrameLayout.AddChidren(framePic);
+            var btnPic = new PicViewControl(framePic.Width, framePic.Height, false);
+            btnPic.UnSelectedImagePath = "Instruct/PanelCurtain.png";
+            framePic.AddChidren(btnPic);
+
+            //鎸夐敭鎸囩ず鐏寒璧�
+            var btnGreanLinght = new NormalViewControl(Application.GetMinRealAverage(463), Application.GetMinRealAverage(45), false);
+            btnGreanLinght.X = Application.GetMinRealAverage(372);
+            btnGreanLinght.Y = Application.GetMinRealAverage(258);
+            btnGreanLinght.TextAlignment = TextAlignment.Center;
+            btnGreanLinght.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnGreanLinght.TextSize = 10;
+            btnGreanLinght.TextID = R.MyInternationalizationString.uKeyIndicatorLightsUp;
+            framePic.AddChidren(btnGreanLinght);
+
+            //鎸変綇姝ゆ寜閿�
+            var btnPress = new NormalViewControl(Application.GetMinRealAverage(400), Application.GetMinRealAverage(45), false);
+            btnPress.X = Application.GetMinRealAverage(144);
+            btnPress.Y = Application.GetMinRealAverage(275);
+            btnPress.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnPress.TextSize = 10;
+            btnPress.TextID = R.MyInternationalizationString.uPressAndHoldThisKey;
+            framePic.AddChidren(btnPress);
+
+            //闀挎寜闈㈡澘宸︿笂瑙掓寜閿紝鎵�鏈夋寜閿�
+            //鎸囩ず鐏寒璧凤紝鍒欓厤缃戞垚鍔� 
+            string[] msgArry = Language.StringByID(R.MyInternationalizationString.uAddCurtaunPanelMsg).Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
+
+            var msg1 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
+            msg1.Y = Application.GetRealHeight(1037);
+            msg1.Text = msgArry[0];
+            msg1.TextColor = UserCenterColor.Current.TextGrayColor3;
+            msg1.TextAlignment = TextAlignment.Center;
+            bodyFrameLayout.AddChidren(msg1);
+            var msg2 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
+            msg2.Y = msg1.Bottom;
+            if (msgArry.Length > 1)
+            {
+                msg2.Text = msgArry[1];
+            }
+            msg2.TextColor = UserCenterColor.Current.TextGrayColor3;
+            msg2.TextAlignment = TextAlignment.Center;
+            bodyFrameLayout.AddChidren(msg2);
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelFangyueFreshAirDirectionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelFangyueFreshAirDirectionForm.cs
new file mode 100755
index 0000000..4470e76
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelFangyueFreshAirDirectionForm.cs
@@ -0,0 +1,76 @@
+锘縰sing System;
+namespace Shared.Phone.UserCenter.DeviceDirection
+{
+    public class PanelFangyueFreshAirDirectionForm : DirectionCommonForm
+    {
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
+        {
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddDevice));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //鍥剧墖
+            var framePic = new FrameLayout();
+            framePic.Width = Application.GetMinRealAverage(835);
+            framePic.Height = Application.GetMinRealAverage(711);
+            framePic.Gravity = Gravity.CenterHorizontal;
+            framePic.Y = Application.GetRealHeight(144);
+            bodyFrameLayout.AddChidren(framePic);
+            var btnPic = new PicViewControl(framePic.Width, framePic.Height, false);
+            btnPic.UnSelectedImagePath = "Instruct/PanelFreshAir.png";
+            framePic.AddChidren(btnPic);
+
+            var btnGreanLinght = new NormalViewControl(Application.GetMinRealAverage(455), Application.GetMinRealAverage(45), false);
+            btnGreanLinght.X = Application.GetMinRealAverage(374);
+            btnGreanLinght.Y = Application.GetMinRealAverage(319);
+            btnGreanLinght.TextAlignment = TextAlignment.Center;
+            btnGreanLinght.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnGreanLinght.TextSize = 10;
+            btnGreanLinght.TextID = R.MyInternationalizationString.uKeyIndicatorLightsUp;
+            framePic.AddChidren(btnGreanLinght);
+
+            //鎸変綇姝ゆ寜閿�
+            var btnSecond = new NormalViewControl(Application.GetMinRealAverage(400), Application.GetMinRealAverage(45), false);
+            btnSecond.X = Application.GetMinRealAverage(441);
+            btnSecond.Y = Application.GetMinRealAverage(583);
+            btnSecond.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnSecond.TextSize = 10;
+            btnSecond.TextID = R.MyInternationalizationString.uPressAndHoldThisKey;
+            framePic.AddChidren(btnSecond);
+
+            //闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝鎸囩ず鐏彉缁裤�侀棯鐑�
+            //杩涘叆閰嶇綉鐘舵�併�傜豢鐏揩闂�3绉掑垯閰嶇綉鎴愬姛
+            string[] msgArry = Language.StringByID(R.MyInternationalizationString.AddFreshAirPanelMsg).Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
+
+            var msg1 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
+            msg1.Y = Application.GetRealHeight(1037);
+            msg1.Text = msgArry[0];
+            msg1.TextColor = UserCenterColor.Current.TextGrayColor3;
+            msg1.TextAlignment = TextAlignment.Center;
+            bodyFrameLayout.AddChidren(msg1);
+            var msg2 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
+            msg2.Y = msg1.Bottom;
+            if (msgArry.Length > 1)
+            {
+                msg2.Text = msgArry[1];
+            }
+            msg2.TextColor = UserCenterColor.Current.TextGrayColor3;
+            msg2.TextAlignment = TextAlignment.Center;
+            bodyFrameLayout.AddChidren(msg2);
+        }
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelFangyueFreshAirModulDirectionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelFangyueFreshAirModulDirectionForm.cs
new file mode 100755
index 0000000..f191903
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/PanelFangyueFreshAirModulDirectionForm.cs
@@ -0,0 +1,93 @@
+锘縰sing System;
+using Shared.Phone.UserCenter.DeviceDirection;
+
+namespace Shared.Phone.UserCenter.DeviceDirection
+{
+    public class PanelFangyueFreshAirModulDirectionForm : DirectionCommonForm
+    {
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
+        {
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddDevice));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //鍥剧墖 
+            var framePic = new FrameLayout();
+            framePic.Width = Application.GetMinRealAverage(873);
+            framePic.Height = Application.GetMinRealAverage(665);
+            framePic.Gravity = Gravity.CenterHorizontal;
+            framePic.Y = Application.GetRealHeight(144);
+            bodyFrameLayout.AddChidren(framePic);
+            var btnPic = new PicViewControl(framePic.Width, framePic.Height, false);
+            btnPic.UnSelectedImagePath = "Instruct/PanelFreshAirModul.png";
+            framePic.AddChidren(btnPic);
+
+            //缁胯壊鎸囩ず鐏棯鐑� 
+            var btnGreanLinght = new NormalViewControl(Application.GetMinRealAverage(360), Application.GetMinRealAverage(45), false);
+            btnGreanLinght.X = Application.GetMinRealAverage(442);
+            btnGreanLinght.Y = Application.GetMinRealAverage(368);
+            btnGreanLinght.TextAlignment = TextAlignment.Center;
+            btnGreanLinght.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnGreanLinght.TextSize = 10;
+            btnGreanLinght.TextID = R.MyInternationalizationString.GreenLightLighting;
+            framePic.AddChidren(btnGreanLinght);
+
+            //鎸囩ず鐏�  
+            var btnLinght = new NormalViewControl(Application.GetMinRealAverage(250), Application.GetMinRealAverage(45), false);
+            btnLinght.X = Application.GetMinRealAverage(340);
+            btnLinght.Y = Application.GetMinRealAverage(514);
+            btnLinght.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnLinght.TextSize = 10;
+            btnLinght.TextID = R.MyInternationalizationString.uPilotLamp;
+            framePic.AddChidren(btnLinght);
+
+            //浠绘剰鎸夐敭闀挎寜5绉�
+            string textMsg = Language.StringByID(R.MyInternationalizationString.LongPressFiveSecond);
+            if (textMsg.Contains("{0}") == true)
+            {
+                textMsg = string.Format(textMsg, "5");
+            }
+            var btnSecond = new NormalViewControl(Application.GetMinRealAverage(400), Application.GetMinRealAverage(45), false);
+            btnSecond.X = Application.GetMinRealAverage(518);
+            btnSecond.Y = Application.GetMinRealAverage(545);
+            btnSecond.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnSecond.TextSize = 10;
+            btnSecond.Text = textMsg;
+            framePic.AddChidren(btnSecond);
+
+            //闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝鎸囩ず鐏彉缁裤�侀棯鐑�
+            //杩涘叆閰嶇綉鐘舵�併�傜豢鐏揩闂�3绉掑垯閰嶇綉鎴愬姛
+            string[] msgArry = Language.StringByID(R.MyInternationalizationString.uAddTwoButtonPanelMsg).Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
+
+            var msg1 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
+            msg1.Y = Application.GetRealHeight(1037);
+            msg1.Text = msgArry[0];
+            msg1.TextColor = UserCenterColor.Current.TextGrayColor3;
+            msg1.TextAlignment = TextAlignment.Center;
+            bodyFrameLayout.AddChidren(msg1);
+            var msg2 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
+            msg2.Y = msg1.Bottom;
+            if (msgArry.Length > 1)
+            {
+                msg2.Text = msgArry[1];
+            }
+            msg2.TextColor = UserCenterColor.Current.TextGrayColor3;
+            msg2.TextAlignment = TextAlignment.Center;
+            bodyFrameLayout.AddChidren(msg2);
+        }
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs
index bb36178..1e3e308 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockHistoryLogForm.cs
@@ -486,8 +486,8 @@
                 {
                     return null;
                 }
-                var dataInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<MessageCentetInfo>(result);
-                foreach (var myInfo in dataInfo.PageData)
+                var dataInfo2 = Newtonsoft.Json.JsonConvert.DeserializeObject<MessageCentetInfo>(result);
+                foreach (var myInfo in dataInfo2.PageData)
                 {
                     var data = new HistoryInfo();
                     if (dic.ContainsKey(myInfo.CreatedOnUtc) == false)
@@ -495,7 +495,7 @@
                         dic[myInfo.CreatedOnUtc] = new List<HistoryInfo>();
                         listSort.Add(myInfo.CreatedOnUtc);
                     }
-                  
+
                     //璁惧瀵硅薄
                     var jobject = Newtonsoft.Json.Linq.JObject.Parse(myInfo.PayloadJson);
                     data.DeviceMac = jobject.Value<string>("DeviceAddr");
@@ -631,7 +631,7 @@
             pra.DoorLockId = this.DeviceDoor.DeviceAddr + "_" + this.DeviceDoor.DeviceEpoint;
             pra.CloudAccountIdArr = listUser;
             pra.OpenLockModeArr = listLock;
-            pra.UnlockTimeBegin = dateFrom.ToUniversalTime().ToString(); 
+            pra.UnlockTimeBegin = dateFrom.ToUniversalTime().ToString();
             pra.UnlockTimeEnd = dateTo.ToUniversalTime().ToString();
             return pra;
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLighWithSensorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLighWithSensorForm.cs
new file mode 100755
index 0000000..870a8e0
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLighWithSensorForm.cs
@@ -0,0 +1,644 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading.Tasks;
+using ZigBee.Device;
+namespace Shared.Phone.UserCenter.DevicePanel
+{
+    public class PanelBackLighWithSensorForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________ 
+        /// <summary>
+        /// 鍒楄〃鎺т欢
+        /// </summary>
+        private VerticalScrolViewLayout listview = null;
+
+        /// <summary>
+        /// 闈㈡澘鐨勫洖璺�
+        /// </summary>
+        private Panel panelDevice = null;
+        /// <summary>
+        /// 浜害璋冭妭鐨勪俊鎭�
+        /// </summary>
+        private Panel.PanelSwitchLevelInfo linghtLevelInfo = null;
+        /// <summary>
+        /// 浜害璋冭妭鐨勪俊鎭�
+        /// </summary>
+        private Panel.PanelProximitySensorInfo proximitySensorsInfo = null;
+        /// <summary>
+        /// 鑺傝兘妯″紡
+        /// </summary>
+        private Panel.PanelSaveEnergyModeInfo energyModeInfo = null;
+        /// <summary>
+        /// 鎸夐敭鐨勯鑹叉暟鎹�
+        /// </summary>
+        private Panel.KeyColorData keyColorData = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_listdevice">闈㈡澘璁惧鐨勫叏閮ㄥ洖璺�</param>
+        public void ShowForm(Panel i_panel)
+        {
+            this.ScrollEnabled = false;
+
+            this.panelDevice = i_panel;
+
+            //璁剧疆鏍囬淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uBackLight));
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //鍒濆鍖栦腑閮ㄦ帶浠�
+                this.InitMiddleFrame();
+            });
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private async void InitMiddleFrame()
+        {
+            //鑾峰彇璁惧鍒濆鏁版嵁
+            var result = await this.GetDeviceDefultData();
+            if (result == false)
+            {
+                return;
+            }
+
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            listview = new VerticalScrolViewLayout();
+            listview.Height = Application.GetRealHeight(1981 - 184);
+            bodyFrameLayout.AddChidren(listview);
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                //娣诲姞鑺傝兘妯″紡
+                this.AddEnergyConservationRow();
+                //娣诲姞鐐瑰嚮鍓嶏紝浜害杩涘害鏉�
+                this.AddBeforeClickProgress();
+                //娣诲姞鐐瑰嚮鍚庯紝浜害杩涘害鏉�
+                this.AddAfterClickProgress();
+            });
+            //瀹瑰櫒琛ュ厖
+            FinishInitControl(listview);
+            //淇濆瓨
+            var btnSave = new BottomClickButton();
+            btnSave.TextID = R.MyInternationalizationString.uSave;
+            bodyFrameLayout.AddChidren(btnSave);
+            btnSave.ButtonClickEvent += (sender, e) =>
+            {
+                //淇濆瓨闈㈡澘鏁版嵁
+                this.SavePanelData();
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鑺傝兘妯″紡琛宊________________________ 
+        /// <summary>
+        ///  娣诲姞鑺傝兘妯″紡琛�
+        /// </summary>
+        /// <param name="frameLinght">鍚勭鑳屽厜鐏殑瀹瑰櫒(鎺т欢浼哥缉浣跨敤)</param>
+        private void AddEnergyConservationRow()
+        {
+            //缂╁皬:170  鎵╁ぇ:429
+            var frameBack = new FrameRowControl();
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            frameBack.UseClickStatu = false;
+            frameBack.Height = Application.GetRealHeight(170);
+            listview.AddChidren(frameBack);
+
+            //鑺傝兘妯″紡
+            frameBack.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uEnergyConservationMode), 400);
+            //寮�鍏虫帶浠�
+            var btnSwitch = frameBack.AddMostRightSwitchIcon();
+            btnSwitch.ButtonClickEvent += (sender, e) =>
+            {
+                btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                energyModeInfo.enable = btnSwitch.IsSelected;
+                //灞曞紑鎴栬�呯缉灏忕殑楂樺害
+                var value = Application.GetRealHeight(443);
+                if (btnSwitch.IsSelected == true)
+                {
+                    frameBack.Height += value;
+                }
+                else
+                {
+                    frameBack.Height -= value;
+                }
+                //瀹瑰櫒琛ュ厖
+                this.FinishInitControl(listview, energyModeInfo.enable);
+            };
+            if (energyModeInfo.enable == true)
+            {
+                btnSwitch.IsSelected = true;
+            }
+
+            //褰撳墠浜害
+            var btnProgressView1 = new NormalViewControl(200, 49, true);
+            btnProgressView1.X = ControlCommonResourse.XXLeft;
+            btnProgressView1.Y = Application.GetRealHeight(164);
+            btnProgressView1.TextSize = 12;
+            btnProgressView1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnProgressView1.TextID = R.MyInternationalizationString.uNowLuminance;
+            frameBack.AddChidren(btnProgressView1);
+            var btnProgress1 = new NormalViewControl(200, 49, true);
+            btnProgress1.X = Application.GetRealWidth(222);
+            btnProgress1.Y = Application.GetRealHeight(164);
+            btnProgress1.TextSize = 12;
+            btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnProgress1.Text = energyModeInfo.level + "%";
+            frameBack.AddChidren(btnProgress1);
+
+            //杩涘害鏉�
+            var seekBar1 = new SeekBarControl();
+            seekBar1.Y = Application.GetRealHeight(253);
+            seekBar1.ProgressBarColor = 0xff3e99f4;
+            frameBack.AddChidren(seekBar1);
+            seekBar1.ProgressChangedEvent += (div, value) =>
+            {
+                btnProgress1.Text = value + "%";
+                //鏁版嵁鍙樻洿
+                energyModeInfo.level = value;
+            };
+            seekBar1.Progress = energyModeInfo.level;
+
+            var btnTemp1 = new NormalViewControl(200, 49, true);
+            btnTemp1.X = ControlCommonResourse.XXLeft;
+            btnTemp1.Y = Application.GetRealHeight(325);
+            btnTemp1.TextSize = 12;
+            btnTemp1.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnTemp1.Text = "0%";
+            frameBack.AddChidren(btnTemp1);
+
+            var btnTemp2 = new NormalViewControl(200, 49, true);
+            btnTemp2.X = listview.Width - Application.GetRealWidth(200 + 49);
+            btnTemp2.Y = Application.GetRealHeight(325);
+            btnTemp2.TextAlignment = TextAlignment.CenterRight;
+            btnTemp2.TextSize = 12;
+            btnTemp2.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnTemp2.Text = "100%";
+            frameBack.AddChidren(btnTemp2);
+
+            if (energyModeInfo.enable == true)
+            {
+                //灞曞紑鎴栬�呯缉灏忕殑楂樺害
+                var value = Application.GetRealHeight(443);
+                frameBack.Height += value;
+                //娣诲姞鎺ヨ繎鎰熷簲
+                this.AddProximitySensorsRow(frameBack);
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鎺ヨ繎鎰熷簲___________________________
+
+        /// <summary>
+        /// 鎺ヨ繎鎰熷簲琛�
+        /// </summary>
+        private void AddProximitySensorsRow(FrameRowControl frameRowControl)
+        {
+            //鎺ヨ繎鎰熷簲琛�
+            var frameBack = new FrameRowControl();
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            frameBack.UseClickStatu = false;
+            frameBack.Y = Application.GetRealHeight(443);
+            frameBack.Height = Application.GetRealHeight(170);
+            frameRowControl.AddChidren(frameBack);
+
+            //鎺ヨ繎鎰熷簲
+            frameBack.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.ProximitySensors), 400);
+            //寮�鍏虫帶浠�
+            var btnSwitch = frameBack.AddMostRightSwitchIcon();
+
+            btnSwitch.ButtonClickEvent += (sender, e) =>
+            {
+                btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                proximitySensorsInfo.enable = btnSwitch.IsSelected;
+            };
+            if (proximitySensorsInfo.enable == true)
+            {
+                btnSwitch.IsSelected = true;
+            }
+        }
+        #endregion
+
+        #region 鈻� 鐐瑰嚮鍓峗____________________________
+
+        /// <summary>
+        ///  娣诲姞鐐瑰嚮鍓嶇殑鑳屽厜鐏繘搴︽潯
+        /// </summary>
+        /// <param name="frameLinght">鍚勭鑳屽厜鐏殑瀹瑰櫒</param>
+        private void AddBeforeClickProgress()
+        {
+            //鐐瑰嚮鍓�
+            var btnClick = new NormalViewControl(600, 107, true);
+            btnClick.X = ControlCommonResourse.XXLeft;
+            btnClick.TextSize = 12;
+            btnClick.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnClick.TextID = R.MyInternationalizationString.uBeforeClick;
+            listview.AddChidren(btnClick);
+            //鑳屾櫙
+            var frameBack = new FrameLayout();
+            frameBack.Y = Application.GetRealHeight(107);
+            frameBack.Height = Application.GetRealHeight(395);
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            listview.AddChidren(frameBack);
+            //褰撳墠浜害
+            var btnProgressView1 = new NormalViewControl(200, 49, true);
+            btnProgressView1.X = ControlCommonResourse.XXLeft;
+            btnProgressView1.Y = Application.GetRealHeight(52);
+            btnProgressView1.TextSize = 12;
+            btnProgressView1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnProgressView1.TextID = R.MyInternationalizationString.uNowLuminance;
+            frameBack.AddChidren(btnProgressView1);
+            var btnProgress1 = new NormalViewControl(200, 49, true);
+            btnProgress1.X = Application.GetRealWidth(222);
+            btnProgress1.Y = Application.GetRealHeight(52);
+            btnProgress1.TextSize = 12;
+            btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnProgress1.Text = linghtLevelInfo.panelBacklightLevel + "%";
+            frameBack.AddChidren(btnProgress1);
+
+            //杩涘害鏉�
+            var seekBar1 = new SeekBarControl();
+            seekBar1.Y = Application.GetRealHeight(147);
+            frameBack.AddChidren(seekBar1);
+            seekBar1.ProgressChangedEvent += (div, value) =>
+            {
+                btnProgress1.Text = value + "%";
+                //鏁版嵁鍙樻洿
+                linghtLevelInfo.panelBacklightLevel = value;
+            };
+            seekBar1.Progress = linghtLevelInfo.panelBacklightLevel;
+
+            var btnTemp1 = new NormalViewControl(200, 49, true);
+            btnTemp1.X = ControlCommonResourse.XXLeft;
+            btnTemp1.Y = Application.GetRealHeight(216);
+            btnTemp1.TextSize = 12;
+            btnTemp1.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnTemp1.Text = "0%";
+            frameBack.AddChidren(btnTemp1);
+
+            var btnTemp2 = new NormalViewControl(200, 49, true);
+            btnTemp2.X = listview.Width - Application.GetRealWidth(200 + 49);
+            btnTemp2.Y = Application.GetRealHeight(216);
+            btnTemp2.TextAlignment = TextAlignment.CenterRight;
+            btnTemp2.TextSize = 12;
+            btnTemp2.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnTemp2.Text = "100%";
+            frameBack.AddChidren(btnTemp2);
+
+            var frameColor = new FrameLayoutControl();
+            frameColor.UseClickStatu = false;
+            frameColor.Width = Application.GetRealHeight(262);
+            frameColor.Height = Application.GetMinRealAverage(79);
+            frameColor.Y = Application.GetRealHeight(26);
+            frameColor.X = listview.Width - ControlCommonResourse.XXLeft - Application.GetRealHeight(262);
+            frameBack.AddChidren(frameColor);
+
+            //棰滆壊
+            var btnColorView = new NormalViewControl(Application.GetRealHeight(110), Application.GetMinRealAverage(49), false);
+            btnColorView.Gravity = Gravity.CenterVertical;
+            btnColorView.TextAlignment = TextAlignment.CenterRight;
+            btnColorView.TextSize = 12;
+            btnColorView.Y = Application.GetRealHeight(5);
+            btnColorView.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnColorView.TextID = R.MyInternationalizationString.uColor;
+            frameColor.AddChidren(btnColorView, ChidrenBindMode.BindEventOnly);
+
+            int R1 = Convert.ToInt32(this.keyColorData.CloseColorR, 16);
+            int G1 = Convert.ToInt32(this.keyColorData.CloseColorG, 16);
+            int B1 = Convert.ToInt32(this.keyColorData.CloseColorB, 16);
+            uint backColor = this.GetColorByRGB((byte)R1, (byte)G1, (byte)B1);
+
+            //棰滆壊澶栨 
+            var btnColorLine = new FrameLayoutControl();
+            btnColorLine.Width = Application.GetRealHeight(79);
+            btnColorLine.Height = Application.GetMinRealAverage(79);
+            btnColorLine.X = btnColorView.Right + Application.GetRealHeight(18);
+            btnColorLine.Radius = (uint)Application.GetMinRealAverage(79) / 2;
+            btnColorLine.BorderWidth = 1;
+            btnColorLine.BorderColor = 0xffcccccc;
+            frameColor.AddChidren(btnColorLine, ChidrenBindMode.BindEventOnly);
+
+            var btnColor = new NormalViewControl(Application.GetMinRealAverage(69), Application.GetMinRealAverage(69), false);
+            btnColor.Gravity = Gravity.Center;
+            btnColor.Radius = (uint)Application.GetMinRealAverage(69) / 2;
+            btnColor.BackgroundColor = backColor;
+            btnColorLine.AddChidren(btnColor, ChidrenBindMode.BindEventOnly);
+
+            //鍙樻洿婊戝姩鏉$殑棰滆壊
+            seekBar1.ProgressBarColor = backColor;
+
+            var btnRight = new NormalViewControl(Application.GetMinRealAverage(58), Application.GetMinRealAverage(58), false);
+            btnRight.UnSelectedImagePath = "Item/RightNext.png";
+            btnRight.Y = Application.GetRealHeight(5);
+            btnRight.X = frameColor.Width - Application.GetMinRealAverage(58);
+            frameColor.AddChidren(btnRight, ChidrenBindMode.BindEventOnly);
+            btnRight.Y += Application.GetMinRealAverage(8);
+
+            frameColor.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new PanelColorSelectForm();
+                form.AddForm(R1, G1, B1);
+                form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) =>
+                {
+                    R1 = Rcolor;
+                    G1 = Gcolor;
+                    B1 = Bcolor;
+
+                    this.keyColorData.CloseColorR = Convert.ToString(Rcolor, 16);
+                    this.keyColorData.CloseColorG = Convert.ToString(Gcolor, 16);
+                    this.keyColorData.CloseColorB = Convert.ToString(Bcolor, 16);
+
+                    btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor);
+                    //鍙樻洿婊戝姩鏉$殑棰滆壊
+                    seekBar1.ProgressBarColor = btnColor.BackgroundColor;
+                };
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鐐瑰嚮鍚巁____________________________
+
+        /// <summary>
+        /// 娣诲姞鐐瑰嚮鍚庣殑鑳屽厜鐏繘搴︽潯
+        /// </summary>
+        /// <param name="frameLinght">鍚勭鑳屽厜鐏殑瀹瑰櫒</param>
+        private void AddAfterClickProgress()
+        {
+            //鐐瑰嚮鍚�
+            var btnClick = new NormalViewControl(600, 107, true);
+            btnClick.X = ControlCommonResourse.XXLeft;
+            btnClick.TextSize = 12;
+            btnClick.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnClick.TextID = R.MyInternationalizationString.uAfterClick;
+            listview.AddChidren(btnClick);
+            //鑳屾櫙
+            var frameBack = new FrameLayout();
+            frameBack.Y = Application.GetRealHeight(608);
+            frameBack.Height = Application.GetRealHeight(395);
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            listview.AddChidren(frameBack);
+            //褰撳墠浜害
+            var btnProgressView1 = new NormalViewControl(200, 49, true);
+            btnProgressView1.X = ControlCommonResourse.XXLeft;
+            btnProgressView1.Y = Application.GetRealHeight(52);
+            btnProgressView1.TextSize = 12;
+            btnProgressView1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnProgressView1.TextID = R.MyInternationalizationString.uNowLuminance;
+            frameBack.AddChidren(btnProgressView1);
+            var btnProgress1 = new NormalViewControl(200, 49, true);
+            btnProgress1.X = Application.GetRealWidth(222);
+            btnProgress1.Y = Application.GetRealHeight(52);
+            btnProgress1.TextSize = 12;
+            btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnProgress1.Text = linghtLevelInfo.panelDirectionsLevel + "%";
+            frameBack.AddChidren(btnProgress1);
+
+            //杩涘害鏉�
+            var seekBar1 = new SeekBarControl();
+            seekBar1.Y = Application.GetRealHeight(147);
+            frameBack.AddChidren(seekBar1);
+            seekBar1.ProgressChangedEvent += (div, value) =>
+            {
+                btnProgress1.Text = value + "%";
+                //鏁版嵁鍙樻洿
+                linghtLevelInfo.panelDirectionsLevel = value;
+            };
+            seekBar1.Progress = linghtLevelInfo.panelDirectionsLevel;
+
+            var btnTemp1 = new NormalViewControl(200, 49, true);
+            btnTemp1.X = ControlCommonResourse.XXLeft;
+            btnTemp1.Y = Application.GetRealHeight(216);
+            btnTemp1.TextSize = 12;
+            btnTemp1.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnTemp1.Text = "0%";
+            frameBack.AddChidren(btnTemp1);
+
+            var btnTemp2 = new NormalViewControl(200, 49, true);
+            btnTemp2.X = listview.Width - Application.GetRealWidth(200 + 49);
+            btnTemp2.Y = Application.GetRealHeight(216);
+            btnTemp2.TextAlignment = TextAlignment.CenterRight;
+            btnTemp2.TextSize = 12;
+            btnTemp2.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnTemp2.Text = "100%";
+            frameBack.AddChidren(btnTemp2);
+
+            var frameColor = new FrameLayoutControl();
+            frameColor.UseClickStatu = false;
+            frameColor.Width = Application.GetRealHeight(262);
+            frameColor.Height = Application.GetMinRealAverage(79);
+            frameColor.Y = Application.GetRealHeight(26);
+            frameColor.X = listview.Width - ControlCommonResourse.XXLeft - Application.GetRealHeight(262);
+            frameBack.AddChidren(frameColor);
+
+            //棰滆壊
+            var btnColorView = new NormalViewControl(Application.GetRealHeight(110), Application.GetMinRealAverage(49), false);
+            btnColorView.Gravity = Gravity.CenterVertical;
+            btnColorView.TextAlignment = TextAlignment.CenterRight;
+            btnColorView.TextSize = 12;
+            btnColorView.Y = Application.GetRealHeight(5);
+            btnColorView.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnColorView.TextID = R.MyInternationalizationString.uColor;
+            frameColor.AddChidren(btnColorView, ChidrenBindMode.BindEventOnly);
+
+            int R1 = Convert.ToInt32(this.keyColorData.OpenColorR, 16);
+            int G1 = Convert.ToInt32(this.keyColorData.OpenColorG, 16);
+            int B1 = Convert.ToInt32(this.keyColorData.OpenColorB, 16);
+            uint backColor = this.GetColorByRGB((byte)R1, (byte)G1, (byte)B1);
+
+            //棰滆壊澶栨
+            var btnColorLine = new FrameLayoutControl();
+            btnColorLine.Width = Application.GetRealHeight(79);
+            btnColorLine.Height = Application.GetMinRealAverage(79);
+            btnColorLine.X = btnColorView.Right + Application.GetRealHeight(18);
+            btnColorLine.Radius = (uint)Application.GetMinRealAverage(79) / 2;
+            btnColorLine.BorderWidth = 1;
+            btnColorLine.BorderColor = 0xffcccccc;
+            frameColor.AddChidren(btnColorLine, ChidrenBindMode.BindEventOnly);
+
+            var btnColor = new NormalViewControl(Application.GetMinRealAverage(69), Application.GetMinRealAverage(69), false);
+            btnColor.Gravity = Gravity.Center;
+            btnColor.Radius = (uint)Application.GetMinRealAverage(69) / 2;
+            btnColor.BackgroundColor = backColor;
+            btnColorLine.AddChidren(btnColor, ChidrenBindMode.BindEventOnly);
+
+            //鍙樻洿婊戝姩鏉$殑棰滆壊
+            seekBar1.ProgressBarColor = backColor;
+
+            var btnRight = new NormalViewControl(Application.GetMinRealAverage(58), Application.GetMinRealAverage(58), false);
+            btnRight.UnSelectedImagePath = "Item/RightNext.png";
+            btnRight.Y = Application.GetRealHeight(5);
+            btnRight.X = frameColor.Width - Application.GetMinRealAverage(58);
+            frameColor.AddChidren(btnRight, ChidrenBindMode.BindEventOnly);
+            btnRight.Y += Application.GetMinRealAverage(8);
+
+            frameColor.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new PanelColorSelectForm();
+                form.AddForm(R1, G1, B1);
+                form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) =>
+                {
+                    R1 = Rcolor;
+                    G1 = Gcolor;
+                    B1 = Bcolor;
+
+                    this.keyColorData.OpenColorR = Convert.ToString(Rcolor, 16);
+                    this.keyColorData.OpenColorG = Convert.ToString(Gcolor, 16);
+                    this.keyColorData.OpenColorB = Convert.ToString(Bcolor, 16);
+
+                    btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor);
+                    //鍙樻洿婊戝姩鏉$殑棰滆壊
+                    seekBar1.ProgressBarColor = btnColor.BackgroundColor;
+                };
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鑾峰彇鍒濆鏁版嵁_______________________
+
+        /// <summary>
+        /// 鑾峰彇璁惧鍒濆鏁版嵁
+        /// </summary>
+        /// <returns></returns>
+        private async Task<bool> GetDeviceDefultData()
+        {
+            //寮�鍚繘搴︽潯
+            this.ShowProgressBar();
+            //浜害璋冭妭(浠栦滑璇撮殢渚挎嬁涓�璺洖璺氨琛屼簡)
+            linghtLevelInfo = await HdlDevicePanelLogic.Current.GetDeviceLightSettion(panelDevice);
+            if (linghtLevelInfo == null)
+            {
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar(ShowReLoadMode.YES);
+                return false;
+            }
+            //鎺ヨ繎鎰熷簲(浠栦滑璇撮殢渚挎嬁涓�璺洖璺氨琛屼簡)
+            proximitySensorsInfo = await HdlDevicePanelLogic.Current.GetDeviceProximitySensorsSettion(panelDevice);
+            if (proximitySensorsInfo == null)
+            {
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar(ShowReLoadMode.YES);
+                return false;
+            }
+            //鑺傝兘妯″紡(浠栦滑璇撮殢渚挎嬁涓�璺洖璺氨琛屼簡)
+            energyModeInfo = await HdlDevicePanelLogic.Current.GetDeviceEnergyConservationMode(panelDevice);
+            if (energyModeInfo == null)
+            {
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar(ShowReLoadMode.YES);
+                return false;
+            }
+            keyColorData = await HdlDevicePanelLogic.Current.GetPanelEpointColorInfo(panelDevice);
+            if (this.keyColorData == null)
+            {
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar(ShowReLoadMode.YES);
+                return false;
+            }
+            //鍏抽棴杩涘害鏉�
+            this.CloseProgressBar();
+
+            return true;
+        }
+
+        #endregion
+
+        #region 鈻� 淇濆瓨鏁版嵁___________________________
+
+        /// <summary>
+        /// 淇濆瓨闈㈡澘鏁版嵁
+        /// </summary>
+        private async void SavePanelData()
+        {
+            this.ShowProgressBar();
+            //浜害璋冭妭鏇存敼(浠栦滑璇撮殢渚夸竴涓洖璺氨琛�)
+            var result = await HdlDevicePanelLogic.Current.SetDeviceLightSettion(panelDevice, linghtLevelInfo.panelDirectionsLevel, linghtLevelInfo.panelBacklightLevel);
+            if (result == false)
+            {
+                this.CloseProgressBar();
+                return;
+            }
+
+            //鑺傝兘妯″紡淇敼(浠栦滑璇撮殢渚夸竴涓洖璺氨琛�)
+            //璁惧鍚屼簨璇撮粯璁ゅ幓绉掓椂闂达紝杩欐牱鎺ヨ繎鎰熷簲鍔熻兘鎵嶅悎鐞�
+            energyModeInfo.time = 1;
+            result = await HdlDevicePanelLogic.Current.SetDeviceEnergyConservationMode(panelDevice, energyModeInfo.enable, energyModeInfo.time, energyModeInfo.level);
+            if (result == false)
+            {
+                this.CloseProgressBar();
+                return;
+            }
+            //鎺ヨ繎淇敼(浠栦滑璇撮殢渚夸竴涓洖璺氨琛�)
+            result = await HdlDevicePanelLogic.Current.SetProximitySensorStatus(panelDevice, proximitySensorsInfo.enable);
+            if (result == false)
+            {
+                this.CloseProgressBar();
+                return;
+            }
+            //璁剧疆鎸夐敭闈㈡澘鎸囧畾绔偣鐨勩�愭寚绀虹伅寮�鍏抽鑹层�戠殑淇℃伅
+            result = await HdlDevicePanelLogic.Current.SetPanelEpointColorInfo(panelDevice, this.keyColorData);
+            this.CloseProgressBar();
+            if (result == false)
+            {
+                return;
+            }
+            //鍏抽棴鑷韩
+            this.CloseForm();
+        }
+
+        #endregion
+
+        #region 鈻� 琛ュ厖瀹瑰櫒___________________________ 
+        /// <summary>
+        /// 琛屾暟瓒呰繃瀹瑰櫒鏃讹紝琛ヤ竴涓┖鐧紽rameLayout锛屼娇涔嬭兘婊戝姩
+        /// </summary>
+        /// <param name="listview">褰撳墠婊戝姩椤佃寖鍥�</param>
+        /// <param name="enable">鏄惁娣诲姞瀹瑰櫒</param>
+        public void FinishInitControl(VerticalScrolViewLayout listview, bool enable = false)
+        {
+            //淇冧娇琚尅浣忕殑鑿滃崟鑳藉鍚戜笂婊戝姩
+            var frameTemp = new FrameLayout();
+            listview.AddChidren(frameTemp);
+            frameTemp.Tag = "绉婚櫎瀹瑰櫒";
+            if (enable == true)
+            {
+                listview.ScrollEnabled = true;
+                frameTemp.Height = Application.GetRealHeight(2212 - 1921 + 173);
+            }
+            else
+            {
+                listview.RemoveViewByTag("绉婚櫎瀹瑰櫒");
+                listview.ScrollEnabled = false;
+            }
+        }
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 灏哛GB杞崲涓洪鑹�
+        /// </summary>
+        /// <param name="R"></param>
+        /// <param name="G"></param>
+        /// <param name="B"></param>
+        /// <returns></returns>
+        private uint GetColorByRGB(byte R, byte G, byte B)
+        {
+            return (uint)(0xFF000000 + R * 256 * 256 + G * 256 + B);
+        }
+
+        #endregion 
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs
index d5851af..37de610 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs
@@ -437,7 +437,7 @@
             bodyFrameLayout.AddChidren(frameBorder);
 
             var btnPic = new PicViewControl(frameBorder.Width, frameBorder.Height, false);
-            btnPic.UnSelectedImagePath = "Device/PanelTable.png";
+            btnPic.UnSelectedImagePath = "DeviceItem/PanelTable.png";
             frameBorder.AddChidren(btnPic);
 
             if (listOffSwitch.Count == 4)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueButtonSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueButtonSettionForm.cs
index f381cb9..a48f08e 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueButtonSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueButtonSettionForm.cs
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing Shared.Common;
+using System;
 using System.Collections.Generic;
 using System.Text;
 using ZigBee.Device;
@@ -173,8 +174,6 @@
             this.AddBindRow();
             //娣诲姞鑳屽厜鐏
             this.AddBackLightRow();
-            //娣诲姞鎺ヨ繎鎰熷簲琛�
-            this.AddProximityInductionRow();
 
             //鍒濆鍖栨甯冨畬鎴�
             tableContr.FinishInitControl(bodyFrameLayout, this.listview);
@@ -273,34 +272,25 @@
                 btnLight.AddRightArrow();
                 btnLight.ButtonClickEvent += (sender, e) =>
                 {
-                    var form = new PanelBackLightSettionForm();
-                    form.AddForm((Panel)nowSelectDevice);
+                    List<CommonDevice> listNewDevice = new List<CommonDevice> { };
+                    listNewDevice.Add((Panel)nowSelectDevice);
+                    var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listNewDevice);
+                    //濡傛灉璁惧鏄柟鎮﹀紑鎺ц澶囷紝鑳屽厜鐏〉闇�瑕佹粦鍔ㄤ笖鏈夋帴杩戞劅搴斿姛鑳�
+                    if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueTwo
+                       || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFour
+                       || deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueEight)
+                    {
+                        var form = new PanelBackLighWithSensorForm();
+                        form.AddForm((Panel)nowSelectDevice);
+                    }
+                    else
+                    {
+                        //涓嶅甫鎺ヨ繎鎰熷簲鐨�
+                        var form = new PanelBackLightSettionForm();
+                        form.AddForm((Panel)nowSelectDevice);
+                    }
                 };
             }
-        }
-
-        #endregion
-
-        #region 鈻� 鎺ヨ繎鎰熷簲___________________________
-
-        /// <summary>
-        /// 娣诲姞鎺ヨ繎鎰熷簲琛�
-        /// </summary>
-        private void AddProximityInductionRow()
-        {
-            //鎺ヨ繎鎰熷簲
-            var rowContr = new FrameRowControl(listview.rowSpace / 2);
-            rowContr.UseClickStatu = false;
-            listview.AddChidren(rowContr);
-            rowContr.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uProximityInduction), 600);
-            //搴曠嚎
-            rowContr.AddBottomLine();
-            //寮�鍏�
-            var btnSwitch = rowContr.AddMostRightSwitchIcon();
-            btnSwitch.ButtonClickEvent += (sender, e) =>
-            {
-                btnSwitch.IsSelected = !btnSwitch.IsSelected;
-            };
         }
 
         #endregion
@@ -351,25 +341,25 @@
             bodyFrameLayout.AddChidren(frameBorder);
 
             var btnPic = new PicViewControl(frameBorder.Width, frameBorder.Height, false);
-           
+
             frameBorder.AddChidren(btnPic);
 
             if (listOffSwitch.Count == 8)
             {
                 //鍏寜閿潰鏉�
-                btnPic.UnSelectedImagePath = "Device/PanelFangyueEightButtonTable.png";
+                btnPic.UnSelectedImagePath = "DeviceItem/PanelFangyueEightButtonTable.png";
                 this.InitEightButtonPanelIcon(frameBorder, listOffSwitch);
             }
             else if (listOffSwitch.Count == 4)
             {
                 //鍥涙寜閿潰鏉�
-                btnPic.UnSelectedImagePath = "Device/PanelFangyueFourButtonTable.png";
+                btnPic.UnSelectedImagePath = "DeviceItem/PanelFangyueFourButtonTable.png";
                 this.InitFourButtonPanelIcon(frameBorder, listOffSwitch);
             }
             else
             {
                 //浜屾寜閿潰鏉�
-                btnPic.UnSelectedImagePath = "Device/PanelFangyueTwoButtonTable.png";
+                btnPic.UnSelectedImagePath = "DeviceItem/PanelFangyueTwoButtonTable.png";
                 this.InitTwoButtonPanelIcon(frameBorder, listOffSwitch);
             }
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueEnvironmentButtonSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueEnvironmentButtonSettionForm.cs
index 88ebf68..ffaf75f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueEnvironmentButtonSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueEnvironmentButtonSettionForm.cs
@@ -54,7 +54,7 @@
             //鍥剧墖
             var btnPic = new PicViewControl(426, 426);
             btnPic.Y = Application.GetRealHeight(150);
-            btnPic.UnSelectedImagePath = "Device/ButtonPanelFangyueEnvironmentBigPic.png";
+            btnPic.UnSelectedImagePath = "DeviceItem/ButtonPanelFangyueEnvironmentBigPic.png";
             btnPic.Gravity = Gravity.CenterHorizontal;
             bodyFrameLayout.AddChidren(btnPic);
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs
new file mode 100755
index 0000000..cb4f3ab
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirBackLightSettionForm.cs
@@ -0,0 +1,591 @@
+锘縰sing System;
+using System.Threading.Tasks;
+using ZigBee.Device;
+namespace Shared.Phone.UserCenter.DevicePanel
+{
+    public class PanelFangyueFreshAirBackLightSettionForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+        /// <summary>
+        /// 鍒楄〃鎺т欢
+        /// </summary>
+        private VerticalScrolViewLayout listview = null;
+        /// <summary>
+        /// 闈㈡澘鐨勫洖璺�
+        /// </summary>
+        private Panel panelDevice;
+        /// <summary>
+        /// 浜害璋冭妭鐨勪俊鎭�
+        /// </summary>
+        private Panel.PanelSwitchLevelInfo linghtLevelInfo = null;
+        /// <summary>
+        /// 浜害璋冭妭鐨勪俊鎭�
+        /// </summary>
+        private Panel.PanelProximitySensorInfo proximitySensorsInfo = null;
+        /// <summary>
+        /// 鑺傝兘妯″紡
+        /// </summary>
+        private Panel.PanelSaveEnergyModeInfo energyModeInfo = null;
+        /// <summary>
+        /// 鎸夐敭鐨勯鑹叉暟鎹�
+        /// </summary>
+        private Panel.KeyColorData keyColorData = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_device">璁惧鐨勬煇涓�鍥炶矾</param>
+        public void ShowForm(Panel i_panel)
+        {
+            //宸︽粦浣胯兘涓嶅彲
+            this.ScrollEnabled = false;
+            this.panelDevice = i_panel;
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uLightRegulation));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private async void InitMiddleFrame()
+        {
+            //鑾峰彇璁惧鍒濆鏁版嵁
+            var result = await this.GetDeviceDefultData();
+            if (result == false)
+            {
+                return;
+            }
+
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            listview = new VerticalScrolViewLayout();
+            listview.Height = Application.GetRealHeight(1981 - 184);
+            bodyFrameLayout.AddChidren(listview);
+
+            HdlThreadLogic.Current.RunMain(() =>
+            {
+                //娣诲姞鑺傝兘妯″紡鎺т欢
+                this.AddEnergyConservationRow();
+                //娣诲姞灞忓箷浜害绾у埆鎺т欢
+                this.AddScreenBrightnesLevelControl();
+                //娣诲姞鑳屽厜鐏寒搴︽帶浠�
+                this.AddBackLightControl();
+            });
+
+            //瀹瑰櫒琛ュ厖
+            FinishInitControl(listview);
+
+            //淇濆瓨
+            var btnSave = new BottomClickButton();
+            btnSave.TextID = R.MyInternationalizationString.uSave;
+            bodyFrameLayout.AddChidren(btnSave);
+            btnSave.ButtonClickEvent += (sender, e) =>
+            {
+                //淇濆瓨闈㈡澘鏁版嵁
+                this.SavePanelData();
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 灞忓箷浜害绾у埆_______________________
+
+        /// <summary>
+        /// 娣诲姞灞忓箷浜害绾у埆鎺т欢
+        /// </summary>
+        private void AddScreenBrightnesLevelControl()
+        {
+            var frameBack = new FrameLayout();
+            frameBack.Height = Application.GetRealHeight(429);
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            listview.AddChidren(frameBack);
+
+            //灞忓箷浜害绾у埆
+            var btnLevelView = new NormalViewControl(400, 60, true);
+            btnLevelView.X = ControlCommonResourse.XXLeft;
+            btnLevelView.Y = Application.GetRealHeight(54);
+            btnLevelView.TextID = R.MyInternationalizationString.uScreenBrightnesLevel;
+            frameBack.AddChidren(btnLevelView);
+
+            //?绾�
+            string strRank = Language.StringByID(R.MyInternationalizationString.uRank);
+            var btnLevel = new NormalViewControl(167, 60, true);
+            btnLevel.X = Application.GetRealWidth(855);
+            btnLevel.Y = Application.GetRealHeight(54);
+            btnLevel.TextAlignment = TextAlignment.CenterRight;
+            btnLevel.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnLevel.Text = "3" + strRank;
+            frameBack.AddChidren(btnLevel);
+
+            //褰撳墠浜害
+            var btnProgressView1 = new NormalViewControl(200, 50, true);
+            btnProgressView1.X = ControlCommonResourse.XXLeft;
+            btnProgressView1.Y = Application.GetRealHeight(157);
+            btnProgressView1.TextSize = 12;
+            btnProgressView1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnProgressView1.TextID = R.MyInternationalizationString.uNowLuminance;
+            frameBack.AddChidren(btnProgressView1);
+            var btnProgress1 = new NormalViewControl(200, 50, true);
+            btnProgress1.X = Application.GetRealWidth(222);
+            btnProgress1.Y = Application.GetRealHeight(157);
+            btnProgress1.TextSize = 12;
+            btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnProgress1.Text = "4";
+            frameBack.AddChidren(btnProgress1);
+
+            //杩涘害鏉�
+            var seekBar1 = new SeekBarControl();
+            seekBar1.MaxValue = 5;
+            seekBar1.ProgressBarColor = 0xff3e99f4;
+            seekBar1.Y = Application.GetRealHeight(253);
+            frameBack.AddChidren(seekBar1);
+            seekBar1.ProgressChangedEvent += (div, value) =>
+            {
+                btnProgress1.Text = value.ToString();
+                //鏁版嵁鍙樻洿
+            };
+            //seekBar1.Progress = linghtLevelInfo.panelBacklightLevel;
+
+            var btnTemp1 = new NormalViewControl(200, 50, true);
+            btnTemp1.X = ControlCommonResourse.XXLeft;
+            btnTemp1.Y = Application.GetRealHeight(322);
+            btnTemp1.TextSize = 12;
+            btnTemp1.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnTemp1.Text = "0";
+            frameBack.AddChidren(btnTemp1);
+
+            var btnTemp2 = new NormalViewControl(100, 50, true);
+            btnTemp2.X = frameBack.Width - ControlCommonResourse.XXLeft - Application.GetRealWidth(100);
+            btnTemp2.Y = Application.GetRealHeight(322);
+            btnTemp2.TextAlignment = TextAlignment.CenterRight;
+            btnTemp2.TextSize = 12;
+            btnTemp2.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnTemp2.Text = "5";
+            frameBack.AddChidren(btnTemp2);
+        }
+
+        #endregion
+
+        #region 鈻� 鑳屽厜鐏寒搴________________________
+
+        /// <summary>
+        /// 娣诲姞鑳屽厜鐏寒搴︽帶浠�
+        /// </summary>
+        private void AddBackLightControl()
+        {
+            //鑳屾櫙
+            var frameBack = new FrameLayout();
+            frameBack.Y = Application.GetRealHeight(490);
+            frameBack.Height = Application.GetRealHeight(429);
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            listview.AddChidren(frameBack);
+
+            //鑳屽厜鐏寒搴�
+            var btnLevelView = new NormalViewControl(400, 60, true);
+            btnLevelView.X = ControlCommonResourse.XXLeft;
+            btnLevelView.Y = Application.GetRealHeight(54);
+            btnLevelView.TextID = R.MyInternationalizationString.uBacklightBrightness;
+            frameBack.AddChidren(btnLevelView);
+
+            //褰撳墠浜害
+            var btnProgressView1 = new NormalViewControl(200, 50, true);
+            btnProgressView1.X = ControlCommonResourse.XXLeft;
+            btnProgressView1.Y = Application.GetRealHeight(157);
+            btnProgressView1.TextSize = 12;
+            btnProgressView1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnProgressView1.TextID = R.MyInternationalizationString.uNowLuminance;
+            frameBack.AddChidren(btnProgressView1);
+            var btnProgress1 = new NormalViewControl(200, 50, true);
+            btnProgress1.X = Application.GetRealWidth(222);
+            btnProgress1.Y = Application.GetRealHeight(157);
+            btnProgress1.TextSize = 12;
+            btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnProgress1.Text = "70%";
+            frameBack.AddChidren(btnProgress1);
+
+            //杩涘害鏉�
+            var seekBar1 = new SeekBarControl();
+            seekBar1.Y = Application.GetRealHeight(253);
+            frameBack.AddChidren(seekBar1);
+            seekBar1.ProgressChangedEvent += (div, value) =>
+            {
+                btnProgress1.Text = value + "%";
+                //鏁版嵁鍙樻洿
+            };
+            //seekBar1.Progress = linghtLevelInfo.panelBacklightLevel;
+
+            var btnTemp1 = new NormalViewControl(200, 50, true);
+            btnTemp1.X = ControlCommonResourse.XXLeft;
+            btnTemp1.Y = Application.GetRealHeight(322);
+            btnTemp1.TextSize = 12;
+            btnTemp1.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnTemp1.Text = "0%";
+            frameBack.AddChidren(btnTemp1);
+
+            var btnTemp2 = new NormalViewControl(200, 50, true);
+            btnTemp2.X = frameBack.Width - ControlCommonResourse.XXLeft - Application.GetRealWidth(200);
+            btnTemp2.Y = Application.GetRealHeight(322);
+            btnTemp2.TextAlignment = TextAlignment.CenterRight;
+            btnTemp2.TextSize = 12;
+            btnTemp2.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnTemp2.Text = "100%";
+            frameBack.AddChidren(btnTemp2);
+
+            var frameColor = new FrameLayoutControl();
+            frameColor.UseClickStatu = false;
+            frameColor.Width = Application.GetRealHeight(262);
+            frameColor.Height = Application.GetMinRealAverage(79);
+            frameColor.Y = Application.GetRealHeight(26);
+            frameColor.X = frameBack.Width - ControlCommonResourse.XXLeft - Application.GetRealHeight(262);
+            frameBack.AddChidren(frameColor);
+            //棰滆壊
+            var btnColorView = new NormalViewControl(Application.GetRealHeight(110), Application.GetMinRealAverage(50), false);
+            btnColorView.Gravity = Gravity.CenterVertical;
+            btnColorView.TextAlignment = TextAlignment.CenterRight;
+            btnColorView.TextSize = 12;
+            btnColorView.Y = Application.GetRealHeight(5);
+            btnColorView.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnColorView.TextID = R.MyInternationalizationString.uColor;
+            frameColor.AddChidren(btnColorView, ChidrenBindMode.BindEventOnly);
+
+            int R1 = Convert.ToInt32("d8", 16);
+            int G1 = Convert.ToInt32("95", 16);
+            int B1 = Convert.ToInt32("e3", 16);
+            uint backColor = this.GetColorByRGB((byte)R1, (byte)G1, (byte)B1);
+
+            //棰滆壊澶栨
+            var btnColorLine = new NormalViewControl(Application.GetMinRealAverage(79), Application.GetMinRealAverage(79), false);
+            btnColorLine.X = btnColorView.Right + Application.GetRealHeight(18);
+            btnColorLine.Radius = (uint)Application.GetMinRealAverage(79) / 2;
+            btnColorLine.BorderWidth = 1;
+            btnColorLine.BorderColor = 0xff666666;
+            frameColor.AddChidren(btnColorLine, ChidrenBindMode.BindEventOnly);
+
+            var btnColor = new NormalViewControl(Application.GetMinRealAverage(69), Application.GetMinRealAverage(69), false);
+            btnColor.Y = Application.GetRealHeight(5);
+            btnColor.X = btnColorView.Right + Application.GetRealHeight(23);
+            btnColor.Radius = (uint)Application.GetMinRealAverage(69) / 2;
+            btnColor.BackgroundColor = UserCenterColor.Current.ErrorColor;
+            frameColor.AddChidren(btnColor, ChidrenBindMode.BindEventOnly);
+
+            //鍙樻洿婊戝姩鏉$殑棰滆壊
+            seekBar1.ProgressBarColor = backColor;
+
+            var btnRight = new NormalViewControl(Application.GetMinRealAverage(58), Application.GetMinRealAverage(58), false);
+            btnRight.UnSelectedImagePath = "Item/RightNext.png";
+            btnRight.Y = Application.GetRealHeight(5);
+            btnRight.X = frameColor.Width - Application.GetMinRealAverage(58);
+            frameColor.AddChidren(btnRight, ChidrenBindMode.BindEventOnly);
+            btnRight.Y += Application.GetMinRealAverage(8);
+
+            frameColor.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new PanelColorSelectForm();
+                form.AddForm(R1, G1, B1);
+                form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) =>
+                {
+                    R1 = Rcolor;
+                    G1 = Gcolor;
+                    B1 = Bcolor;
+
+                    //this.keyColorData.CloseColorR = Convert.ToString(Rcolor, 16);
+                    //this.keyColorData.CloseColorG = Convert.ToString(Gcolor, 16);
+                    //this.keyColorData.CloseColorB = Convert.ToString(Bcolor, 16);
+
+                    btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor);
+                    //鍙樻洿婊戝姩鏉$殑棰滆壊
+                    seekBar1.ProgressBarColor = btnColor.BackgroundColor;
+                };
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鑺傝兘妯″紡琛宊________________________
+
+        /// <summary>
+        ///  娣诲姞鑺傝兘妯″紡琛�
+        /// </summary>
+        /// <param name="frameLinght">鍚勭鑳屽厜鐏殑瀹瑰櫒(鎺т欢浼哥缉浣跨敤)</param>
+        private void AddEnergyConservationRow()
+        {
+            //缂╁皬:170  鎵╁ぇ:429
+            var frameBack = new FrameRowControl();
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            frameBack.UseClickStatu = false;
+            frameBack.Height = Application.GetRealHeight(170);
+            listview.AddChidren(frameBack);
+
+            //鑺傝兘妯″紡
+            frameBack.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uEnergyConservationMode), 400);
+            //寮�鍏虫帶浠�
+            var btnSwitch = frameBack.AddMostRightSwitchIcon();
+            btnSwitch.ButtonClickEvent += (sender, e) =>
+            {
+                btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                energyModeInfo.enable = btnSwitch.IsSelected;
+                //灞曞紑鎴栬�呯缉灏忕殑楂樺害
+                var value = Application.GetRealHeight(443);
+                if (btnSwitch.IsSelected == true)
+                {
+                    frameBack.Height += value;
+                }
+                else
+                {
+                    frameBack.Height -= value;
+                }
+                //瀹瑰櫒琛ュ厖
+                this.FinishInitControl(listview, energyModeInfo.enable);
+            };
+            if (energyModeInfo.enable == true)
+            {
+                btnSwitch.IsSelected = true;
+            }
+
+            //褰撳墠浜害
+            var btnProgressView1 = new NormalViewControl(200, 49, true);
+            btnProgressView1.X = ControlCommonResourse.XXLeft;
+            btnProgressView1.Y = Application.GetRealHeight(164);
+            btnProgressView1.TextSize = 12;
+            btnProgressView1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnProgressView1.TextID = R.MyInternationalizationString.uNowLuminance;
+            frameBack.AddChidren(btnProgressView1);
+            var btnProgress1 = new NormalViewControl(200, 49, true);
+            btnProgress1.X = Application.GetRealWidth(222);
+            btnProgress1.Y = Application.GetRealHeight(164);
+            btnProgress1.TextSize = 12;
+            btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnProgress1.Text = energyModeInfo.level + "%";
+            frameBack.AddChidren(btnProgress1);
+
+            //杩涘害鏉�
+            var seekBar1 = new SeekBarControl();
+            seekBar1.Y = Application.GetRealHeight(253);
+            seekBar1.ProgressBarColor = 0xff3e99f4;
+            frameBack.AddChidren(seekBar1);
+            seekBar1.ProgressChangedEvent += (div, value) =>
+            {
+                btnProgress1.Text = value + "%";
+                //鏁版嵁鍙樻洿
+                energyModeInfo.level = value;
+            };
+            seekBar1.Progress = energyModeInfo.level;
+
+            var btnTemp1 = new NormalViewControl(200, 49, true);
+            btnTemp1.X = ControlCommonResourse.XXLeft;
+            btnTemp1.Y = Application.GetRealHeight(325);
+            btnTemp1.TextSize = 12;
+            btnTemp1.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnTemp1.Text = "0%";
+            frameBack.AddChidren(btnTemp1);
+
+            var btnTemp2 = new NormalViewControl(200, 49, true);
+            btnTemp2.X = listview.Width - Application.GetRealWidth(200 + 49);
+            btnTemp2.Y = Application.GetRealHeight(325);
+            btnTemp2.TextAlignment = TextAlignment.CenterRight;
+            btnTemp2.TextSize = 12;
+            btnTemp2.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnTemp2.Text = "100%";
+            frameBack.AddChidren(btnTemp2);
+
+            if (energyModeInfo.enable == true)
+            {
+                //灞曞紑鎴栬�呯缉灏忕殑楂樺害
+                var value = Application.GetRealHeight(443);
+                frameBack.Height += value;
+                //娣诲姞鎺ヨ繎鎰熷簲
+                this.AddProximitySensorsRow(frameBack);
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鎺ヨ繎鎰熷簲___________________________
+
+        /// <summary>
+        /// 鎺ヨ繎鎰熷簲琛�
+        /// </summary>
+        private void AddProximitySensorsRow(FrameRowControl frameRowControl)
+        {
+            //鎺ヨ繎鎰熷簲琛�
+            var frameBack = new FrameRowControl();
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            frameBack.UseClickStatu = false;
+            frameBack.Y = Application.GetRealHeight(443);
+            frameBack.Height = Application.GetRealHeight(170);
+            frameRowControl.AddChidren(frameBack);
+
+            //鎺ヨ繎鎰熷簲
+            frameBack.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.ProximitySensors), 400);
+            //寮�鍏虫帶浠�
+            var btnSwitch = frameBack.AddMostRightSwitchIcon();
+
+            btnSwitch.ButtonClickEvent += (sender, e) =>
+            {
+                btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                proximitySensorsInfo.enable = btnSwitch.IsSelected;
+            };
+            if (proximitySensorsInfo.enable == true)
+            {
+                btnSwitch.IsSelected = true;
+            }
+        }
+        #endregion
+
+        #region 鈻� 鑾峰彇鍒濆鏁版嵁_______________________
+
+        /// <summary>
+        /// 鑾峰彇璁惧鍒濆鏁版嵁
+        /// </summary>
+        /// <returns></returns>
+        private async Task<bool> GetDeviceDefultData()
+        {
+            //寮�鍚繘搴︽潯
+            this.ShowProgressBar();
+            //浜害璋冭妭(浠栦滑璇撮殢渚挎嬁涓�璺洖璺氨琛屼簡)
+            linghtLevelInfo = await HdlDevicePanelLogic.Current.GetDeviceLightSettion(panelDevice);
+            if (linghtLevelInfo == null)
+            {
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar(ShowReLoadMode.YES);
+                return false;
+            }
+            //鎺ヨ繎鎰熷簲(浠栦滑璇撮殢渚挎嬁涓�璺洖璺氨琛屼簡)
+            proximitySensorsInfo = await HdlDevicePanelLogic.Current.GetDeviceProximitySensorsSettion(panelDevice);
+            if (proximitySensorsInfo == null)
+            {
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar(ShowReLoadMode.YES);
+                return false;
+            }
+            //鑺傝兘妯″紡(浠栦滑璇撮殢渚挎嬁涓�璺洖璺氨琛屼簡)
+            energyModeInfo = await HdlDevicePanelLogic.Current.GetDeviceEnergyConservationMode(panelDevice);
+            if (energyModeInfo == null)
+            {
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar(ShowReLoadMode.YES);
+                return false;
+            }
+            keyColorData = await HdlDevicePanelLogic.Current.GetPanelEpointColorInfo(panelDevice);
+            if (this.keyColorData == null)
+            {
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar(ShowReLoadMode.YES);
+                return false;
+            }
+            //鍏抽棴杩涘害鏉�
+            this.CloseProgressBar();
+
+            return true;
+        }
+
+        #endregion
+
+        #region 鈻� 淇濆瓨鏁版嵁___________________________
+
+        /// <summary>
+        /// 淇濆瓨闈㈡澘鏁版嵁
+        /// </summary>
+        private async void SavePanelData()
+        {
+            this.ShowProgressBar();
+            //浜害璋冭妭鏇存敼(浠栦滑璇撮殢渚夸竴涓洖璺氨琛�)
+            var result = await HdlDevicePanelLogic.Current.SetDeviceLightSettion(panelDevice, linghtLevelInfo.panelDirectionsLevel, linghtLevelInfo.panelBacklightLevel);
+            if (result == false)
+            {
+                this.CloseProgressBar();
+                return;
+            }
+
+            //鑺傝兘妯″紡淇敼(浠栦滑璇撮殢渚夸竴涓洖璺氨琛�)
+            //璁惧鍚屼簨璇撮粯璁ゅ幓绉掓椂闂达紝杩欐牱鎺ヨ繎鎰熷簲鍔熻兘鎵嶅悎鐞�
+            energyModeInfo.time = 1;
+            result = await HdlDevicePanelLogic.Current.SetDeviceEnergyConservationMode(panelDevice, energyModeInfo.enable, energyModeInfo.time, energyModeInfo.level);
+            if (result == false)
+            {
+                this.CloseProgressBar();
+                return;
+            }
+            //鎺ヨ繎淇敼(浠栦滑璇撮殢渚夸竴涓洖璺氨琛�)
+            result = await HdlDevicePanelLogic.Current.SetProximitySensorStatus(panelDevice, proximitySensorsInfo.enable);
+            if (result == false)
+            {
+                this.CloseProgressBar();
+                return;
+            }
+            //璁剧疆鎸夐敭闈㈡澘鎸囧畾绔偣鐨勩�愭寚绀虹伅寮�鍏抽鑹层�戠殑淇℃伅
+            result = await HdlDevicePanelLogic.Current.SetPanelEpointColorInfo(panelDevice, this.keyColorData);
+            this.CloseProgressBar();
+            if (result == false)
+            {
+                return;
+            }
+            //鍏抽棴鑷韩
+            this.CloseForm();
+        }
+
+        #endregion
+
+        #region 鈻� 淇濆瓨閰嶇疆___________________________
+
+        /// <summary>
+        /// 淇濆瓨閰嶇疆
+        /// </summary>
+        private void SaveSettionData()
+        {
+            this.CloseForm();
+        }
+
+        #endregion
+
+        #region 鈻� 琛ュ厖瀹瑰櫒___________________________ 
+        /// <summary>
+        /// 琛屾暟瓒呰繃瀹瑰櫒鏃讹紝琛ヤ竴涓┖鐧紽rameLayout锛屼娇涔嬭兘婊戝姩
+        /// </summary>
+        /// <param name="listview">褰撳墠婊戝姩椤佃寖鍥�</param>
+        /// <param name="enable">鏄惁娣诲姞瀹瑰櫒</param>
+        public void FinishInitControl(VerticalScrolViewLayout listview, bool enable = false)
+        {
+            //淇冧娇琚尅浣忕殑鑿滃崟鑳藉鍚戜笂婊戝姩
+            var frameTemp = new FrameLayout();
+            listview.AddChidren(frameTemp);
+            frameTemp.Tag = "绉婚櫎瀹瑰櫒";
+            if (enable == true)
+            {
+                listview.ScrollEnabled = true;
+                frameTemp.Height = Application.GetRealHeight(2212 - 1921 + 173);
+            }
+            else
+            {
+                listview.RemoveViewByTag("绉婚櫎瀹瑰櫒");
+                listview.ScrollEnabled = false;
+            }
+        }
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 灏哛GB杞崲涓洪鑹�
+        /// </summary>
+        /// <param name="R"></param>
+        /// <param name="G"></param>
+        /// <param name="B"></param>
+        /// <returns></returns>
+        private uint GetColorByRGB(byte R, byte G, byte B)
+        {
+            return (uint)(0xFF000000 + R * 256 * 256 + G * 256 + B);
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs
new file mode 100755
index 0000000..17e698e
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirButtonSettionForm.cs
@@ -0,0 +1,162 @@
+锘縰sing System;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.DevicePanel
+{
+    /// <summary>
+    /// 鏂规偊鏂伴闈㈡澘鐨勬寜閿厤缃晫闈�
+    /// </summary>
+    public class PanelFangyueFreshAirButtonSettionForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鍒楄〃鎺т欢
+        /// </summary>
+        private VerticalListControl listview = null;
+        /// <summary>
+        /// 璁惧鐨勬煇涓�鍥炶矾
+        /// </summary>
+        private CommonDevice deviceObj = null;
+
+        #endregion
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_device">璁惧鐨勬煇涓�鍥炶矾</param>
+        public void ShowForm(CommonDevice i_device)
+        {
+            this.deviceObj = i_device;
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uPanelSettion));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+
+            //鍒濆鍖栧彸涓婅鑿滃崟
+            this.InitTopRightMenu();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            //鍥剧墖
+            var btnPic = new PicViewControl(426, 426);
+            btnPic.Y = Application.GetRealHeight(150);
+            btnPic.UnSelectedImagePath = "RealDevice/ButtonPanelFangyueFreshAir.png";
+            btnPic.Gravity = Gravity.CenterHorizontal;
+            bodyFrameLayout.AddChidren(btnPic);
+
+            //鍒濆鍖栨甯�
+            var tableContr = new InformationEditorControl();
+            this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 708, 1028);
+
+            //鍒濆鍖栬彍鍗曡
+            this.InitMenuRow();
+
+            //鍒濆鍖栨甯冨畬鎴�
+            tableContr.FinishInitControl(bodyFrameLayout, this.listview);
+            tableContr = null;
+
+            //淇濆瓨
+            var btnFinish = new BottomClickButton();
+            btnFinish.TextID = R.MyInternationalizationString.uSave;
+            bodyFrameLayout.AddChidren(btnFinish);
+            btnFinish.ButtonClickEvent += (sender, e) =>
+            {
+                //鍏抽棴鑷韩
+                this.CloseForm();
+            };
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栬彍鍗曡
+        /// </summary>
+        private void InitMenuRow()
+        {
+            this.listview.RemoveAll();
+
+            //鏂伴鐩爣
+            var rowNewWind = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(rowNewWind);
+            rowNewWind.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uNewWindTarget), 600);
+            //搴曠嚎
+            rowNewWind.AddBottomLine();
+            //鍙崇澶�
+            rowNewWind.AddRightArrow();
+            var btnNewWindStatu = rowNewWind.AddMostRightView("鏂伴1", 700);
+            rowNewWind.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new PanelFangyueEnvironmentTargetForm();
+                form.AddForm(this.deviceObj, string.Empty, 3);
+            };
+
+            //浜害璋冭妭
+            var rowLight = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(rowLight);
+            rowLight.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uLightRegulation), 600);
+            //搴曠嚎
+            rowLight.AddBottomLine();
+            //鍙崇澶�
+            rowLight.AddRightArrow();
+            rowLight.ButtonClickEvent += (sender, e) =>
+            {
+                //缁欐柊椋庨潰鏉垮缓绔嬩竴涓柊鐨勬敮鎸侀潰鏉垮璞★紝鐢�200绔偣璁剧疆
+                var panel = new Panel();
+                panel.DeviceAddr = this.deviceObj.DeviceAddr;
+                panel.DeviceEpoint = 200;
+                panel.CurrentGateWayId = this.deviceObj.CurrentGateWayId;
+                var form = new PanelFangyueFreshAirBackLightSettionForm();
+                form.AddForm(panel);
+            };
+        }
+        #endregion
+
+        #region 鈻� 鍙充笂瑙掕彍鍗昣________________________ 
+        /// <summary>
+        /// 鍒濆鍖栧彸涓婅鑿滃崟
+        /// </summary>
+        private void InitTopRightMenu()
+        {
+            //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
+            if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(deviceObj) == false)
+            {
+                return;
+            }
+            var btnIcon = new MostRightIconControl(69, 69);
+            btnIcon.UnSelectedImagePath = "Item/More.png";
+            topFrameLayout.AddChidren(btnIcon);
+            btnIcon.InitControl();
+            btnIcon.ButtonClickEvent += ((sender, e) =>
+            {
+                //鏄剧ず鍙充笂瑙掕彍鍗曠晫闈�
+                this.ShowTopRightMenu();
+            });
+        }
+
+        /// <summary>
+        /// 鏄剧ず鍙充笂瑙掕彍鍗曠晫闈�
+        /// </summary>
+        private void ShowTopRightMenu()
+        {
+            var frame = new TopRightMenuControl(1, 1);
+            //瀹氫綅
+            string deviceMenu = Language.StringByID(R.MyInternationalizationString.uFixedPosition);
+            frame.AddRowMenu(deviceMenu, "Item/FixedPosition.png", "Item/FixedPositionSelected.png", () =>
+            {
+                //鍙戦�佸畾浣嶅姛鑳�
+                Common.LocalDevice.Current.SetFixedPositionCommand(deviceObj);
+            });
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFunctionSettionForm.cs
index 6354ba4..4bfeba7 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFunctionSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFunctionSettionForm.cs
@@ -407,19 +407,19 @@
             if (listSort.Count == 8)
             {
                 //鍏寜閿潰鏉�
-                btnPic.UnSelectedImagePath = "Device/PanelFangyueEightButtonTable.png";
+                btnPic.UnSelectedImagePath = "DeviceItem/PanelFangyueEightButtonTable.png";
                 this.InitEightButtonPanelIcon(frameBorder, listSort);
             }
             else if (listSort.Count == 4)
             {
                 //鍥涙寜閿潰鏉�
-                btnPic.UnSelectedImagePath = "Device/PanelFangyueFourButtonTable.png";
+                btnPic.UnSelectedImagePath = "DeviceItem/PanelFangyueFourButtonTable.png";
                 this.InitFourButtonPanelIcon(frameBorder, listSort);
             }
             else
             {
                 //浜屾寜閿潰鏉�
-                btnPic.UnSelectedImagePath = "Device/PanelFangyueTwoButtonTable.png";
+                btnPic.UnSelectedImagePath = "DeviceItem/PanelFangyueTwoButtonTable.png";
                 this.InitTwoButtonPanelIcon(frameBorder, listSort);
             }
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs
index 933a9be..afd919d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs
@@ -401,7 +401,7 @@
             bodyFrameLayout.AddChidren(frameBorder);
 
             var btnPic = new PicViewControl(frameBorder.Width, frameBorder.Height, false);
-            btnPic.UnSelectedImagePath = "Device/PanelTable.png";
+            btnPic.UnSelectedImagePath = "DeviceItem/PanelTable.png";
             frameBorder.AddChidren(btnPic);
 
             if (listSort.Count == 4)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorBindTargetSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorBindTargetSettionForm.cs
index 0a4211b..29fe305 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorBindTargetSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorBindTargetSettionForm.cs
@@ -370,7 +370,11 @@
             }
 
             //寤舵椂
-            string strMinute = pirConfigure.transitionTime / 60 + Language.StringByID(R.MyInternationalizationString.uMinute);
+            string strMinute = string.Empty;
+            if (pirConfigure.transitionTime / 60 > 0)
+            {
+                strMinute = pirConfigure.transitionTime / 60 + Language.StringByID(R.MyInternationalizationString.uMinute);
+            }
             string strSecond = pirConfigure.transitionTime % 60 + Language.StringByID(R.MyInternationalizationString.uSecond);
             var rowDelay = new FrameRowControl(listView.rowSpace / 2);
             rowDelay.LeftOffset = Application.GetRealWidth(138) - ControlCommonResourse.XXLeft;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethod.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethod.cs
index 2a6aae0..b19becf 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethod.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethod.cs
@@ -3,7 +3,7 @@
 
 namespace Shared.Phone.UserCenter.DoorLock
 {
-    public class AddUnLockMethod : DoorLockCommonLayout, ZigBee.Common.IStatus
+    public class AddUnLockMethod : DoorLockCommonLayout
     {
         /// 鏋勯�犲嚱鏁�
         /// </summary>
@@ -27,7 +27,7 @@
         #endregion
 
         /// <summary>
-        /// UI鏄剧ず 
+        /// UI鏄剧ず
         /// </summary>
         public void Show()
         {
@@ -43,7 +43,7 @@
 
             MidFrameLayoutContent();
         }
-       
+
         /// <summary>
         /// 涓儴甯冨眬
         /// </summary>
@@ -147,38 +147,5 @@
                 btnText.MouseUpEventHandler += eHandler;
             }
         }
-
-        #region 鎺ュ彛瀹炵幇
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        { 
-        }
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢
-        /// </summary>
-        /// <param name="common"></param>
-        /// <param name="typeTag"></param>
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-        }
-        #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethodTip.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethodTip.cs
index 07ff554..92bd56f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethodTip.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/AddUnLockMethodTip.cs
@@ -5,7 +5,7 @@
 
 namespace Shared.Phone.UserCenter.DoorLock
 {
-    public class AddUnLockMethodTip : DoorLockCommonLayout, ZigBee.Common.IStatus
+    public class AddUnLockMethodTip : DoorLockCommonLayout
     {
         /// 鏋勯�犲嚱鏁�
         /// </summary>
@@ -39,7 +39,7 @@
         #endregion
 
         /// <summary>
-        /// UI鏄剧ず 
+        /// UI鏄剧ず
         /// </summary>
         public void Show()
         {
@@ -74,7 +74,6 @@
         /// </summary>
         public override void RemoveFromParent()
         {
-            ZbGateway.StatusList.Remove(this);
             if (doorLock.Gateway != null || doorLock.Gateway.GwResDataAction != null)
             {
                 doorLock.Gateway.GwResDataAction -= action;
@@ -291,40 +290,5 @@
                 entryStatusPage.Show();
             };
         }
-
-
-        #region 鎺ュ彛瀹炵幇
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-
-        }
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢
-        /// </summary>
-        /// <param name="common"></param>
-        /// <param name="typeTag"></param>
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-        }
-        #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
index 50f9bfe..d89ee5c 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Runtime.CompilerServices;
 using System.Runtime.InteropServices;
+using Shared.Common;
 using ZigBee.Device;
 
 namespace Shared.Phone.UserCenter.DoorLock
@@ -9,6 +10,14 @@
     public class DoorLockCommonInfo : CommonDevice
     {
         #region  鏈湴鍙橀噺
+        /// <summary>
+        /// 鏄惁甯稿紑妯″紡[褰撴暟鎹幏鍙栧け璐ワ紝杩斿洖绌篯
+        /// </summary>
+        public static bool? IsDoorLockNormallyMode = new bool?();
+        /// <summary>
+        /// 甯稿紑妯″紡鏃堕棿
+        /// </summary>
+        public static int NormallyOpenModeInvalidTime = 12;
         /// <summary>
         /// 鏄惁鏀寔淇敼
         /// </summary>
@@ -67,6 +76,69 @@
         public static int InValidDateSecond = 0;
         #endregion
 
+        /// <summary>
+        /// 鑾峰彇褰撳墠闂ㄩ攣鐨勫父寮�妯″紡
+        /// </summary>
+        /// <param name="doorLock:褰撳墠闂ㄩ攣"></param>
+        /// <returns></returns>
+        public static async System.Threading.Tasks.Task<bool?> GetNormallyOpenMode(ZigBee.Device.DoorLock doorLock)
+        {
+            var result = await doorLock.ReadNormallyOpenModeFuncAsync();
+            //鍏遍�氶敊璇娴�
+            string error = HdlCheckLogic.Current.CheckCommonErrorCode(result);
+
+            if (result == null || result.errorMessageBase != null || result.errorResponData != null)
+            {
+                IsDoorLockNormallyMode = null;
+            }
+
+            if (result.command == "10")
+            {
+                IsDoorLockNormallyMode = true;
+            }
+            if (result.command == "11")
+            {
+                IsDoorLockNormallyMode = false;
+            }
+
+            return IsDoorLockNormallyMode;
+        }
+
+        /// <summary>
+        /// 闂ㄩ攣鏄惁鏀寔甯稿紑[杩欓噷鏆傛椂鍙湁S-One闂ㄩ攣鏀寔锛孒06C涓嶆敮鎸�, 鍚庢湡閫氳繃鑳藉姏鍊兼敮鎸乚
+        /// </summary>
+        /// <param name="doorLock:褰撳墠闂ㄩ攣"></param>
+        /// <returns></returns>
+        public static bool CanNormallyOpen(ZigBee.Device.DoorLock doorLock)
+        {
+            var listDevice = new List<CommonDevice> { };
+            listDevice.Add(doorLock);
+            var devTemp = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
+            if (devTemp.ConcreteType == DeviceConcreteType.IntelligentLocks_Sone)
+            {
+                return true;
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// 闂ㄩ攣鏄惁鏀寔闊抽噺[杩欓噷鏆傛椂鍙湁S-One闂ㄩ攣鏀寔锛孒06C涓嶆敮鎸侊紝鍚庢湡閫氳繃鑳藉姏鍊兼敮鎸乚
+        /// </summary>
+        /// <param name="doorLock:褰撳墠闂ㄩ攣"></param>
+        /// <returns></returns>
+        public static bool CanVolume(ZigBee.Device.DoorLock doorLock)
+        {
+            var listDevice = new List<CommonDevice> { };
+            listDevice.Add(doorLock);
+            var devTemp = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
+            if (devTemp.ConcreteType == DeviceConcreteType.IntelligentLocks_Sone)
+            {
+                return true;
+            }
+            return false;
+        }
+
+        #region 浠庝簯绔幏鍙栫殑鏂规硶
         /// <summary>
         /// 鑾峰彇褰撳墠璐︽埛闂ㄩ攣鎿嶄綔鏉冮檺锛堟槸鍚﹁鍐荤粨锛�
         /// </summary>
@@ -218,7 +290,7 @@
                     }
 
 
-                    //2銆佽鍙栦簯绔棬閿佷俊鎭�  
+                    //2銆佽鍙栦簯绔棬閿佷俊鎭�
                     var getDoorLockInfoAllList = new List<ZigBee.Device.DoorLock.CloudDoorLockObj> { };
                     var getDoorLockInfoList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAccountInfolist(doorLock);
                     if (getDoorLockInfoList != null)
@@ -520,24 +592,32 @@
                 }
 
                 var getDoorLockInfoList = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj);
-                if (getDoorLockInfoList != null)
+
+                if (getDoorLockInfoList == null)
                 {
-                    if (getDoorLockInfoList.PageData.Count != 0)
-                    {
-                        getDoorLockInfoAllList.Add(getDoorLockInfoList);
-                    }
+                    getDoorLockInfoAllList = null;
                 }
-                if (getDoorLockInfoList.TotalPages > 1)
+                else
                 {
-                    for (int j = 1; j < getDoorLockInfoList.TotalPages; j++)
+                    if (getDoorLockInfoList != null)
                     {
-                        var pageSetting = new ZigBee.Device.DoorLock.PageSetting() { };
-                        pageSetting.Page = j + 1;
-                        localDoorLockObj.pageSetting = pageSetting;
-                        var getDoorLockInfoListTemp = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj);
-                        if (getDoorLockInfoListTemp != null)
+                        if (getDoorLockInfoList.PageData.Count != 0)
                         {
-                            getDoorLockInfoAllList.Add(getDoorLockInfoListTemp);
+                            getDoorLockInfoAllList.Add(getDoorLockInfoList);
+                        }
+                    }
+                    if (getDoorLockInfoList.TotalPages > 1)
+                    {
+                        for (int j = 1; j < getDoorLockInfoList.TotalPages; j++)
+                        {
+                            var pageSetting = new ZigBee.Device.DoorLock.PageSetting() { };
+                            pageSetting.Page = j + 1;
+                            localDoorLockObj.pageSetting = pageSetting;
+                            var getDoorLockInfoListTemp = await ZigBee.Device.DoorLock.GetDoorLockInfoFromServer("DoorLock/GetDoorLockPager", localDoorLockObj);
+                            if (getDoorLockInfoListTemp != null)
+                            {
+                                getDoorLockInfoAllList.Add(getDoorLockInfoListTemp);
+                            }
                         }
                     }
                 }
@@ -727,5 +807,36 @@
             /// </summary>
             public string PrimaryId = "";
         }
+
+        #endregion
+
+        #region 涓�鑸柟娉�
+        /// <summary>
+        /// 鏄剧ず閿欒淇℃伅绐楀彛
+        /// </summary>
+        /// <param name="msg"></param>
+        private void ShowErrorMsg(string msg)
+        {
+            Application.RunOnMainThread(() =>
+            {
+                var contr = new ShowMsgControl(ShowMsgType.Error, msg);
+                contr.Show();
+            });
+        }
+
+        /// <summary>
+        /// 鏄剧ずTip淇℃伅绐楀彛
+        /// </summary>
+        /// <param name="msg"></param>
+        private void ShowTipMsg(string msg)
+        {
+            Application.RunOnMainThread(() =>
+            {
+                var contr = new ShowMsgControl(ShowMsgType.Tip, msg);
+                contr.Show();
+            });
+        }
+
+        #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs
index 1577b96..84714f2 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs
@@ -247,7 +247,7 @@
             DateTime oldTime = DateTime.MaxValue;
             doorDialog.dialogBtnConfirm.MouseUpEventHandler += async (sender1, e1) =>
             {
-                Application.RunOnMainThread(() => { CommonPage.Loading.Start("Loading..."); });
+                Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
                 if (DateTime.Now < ZigBee.Device.DoorLock.minValue)
                 {
                     CommonPage.Loading.Hide();
@@ -340,7 +340,7 @@
         /// 瀹夊叏楠岃瘉
         /// </summary>
         /// <param name="doorLock">闂ㄩ攣璁惧</param>
-        /// <param name="action">浜屾楠岃瘉鐨勭粨鏋滄垚鍔熷悗鐨勯�氱煡</param> 
+        /// <param name="action">浜屾楠岃瘉鐨勭粨鏋滄垚鍔熷悗鐨勯�氱煡</param>
         public static void SecurityRequest(ZigBee.Device.DoorLock doorLock, Action action)
         {
             string msg = Language.StringByID(R.MyInternationalizationString.GoPersonalCenter).Replace("{0}", "\r\n");
@@ -348,6 +348,52 @@
             alert.Show();
             //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁�
             alert.ConfirmClickEvent += () =>
+            {
+                var form = new UserCenter.UserMain.SecondAuthenticationForm();
+                form.AddForm();
+            };
+        }
+
+        /// <summary>
+        /// 缁戝畾杩滅▼寮�閿佹潈闄愮獥鍙�
+        /// </summary>
+        /// <param name="doorLock"></param>
+        /// <param name="btnDoorLockTitle"></param>
+        public void BindRemoteUnlockDoorlock(ZigBee.Device.DoorLock doorLock, Button btnDoorLockTitle = null)
+        {
+            string msgRemoteUnlockRequest = Language.StringByID(R.MyInternationalizationString.BindRemoteUnlockDoorlock);
+            var alertRemoteUnlockRequest = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msgRemoteUnlockRequest, Language.StringByID(R.MyInternationalizationString.GoSetting));
+            alertRemoteUnlockRequest.Show();
+            //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁�
+            alertRemoteUnlockRequest.ConfirmClickEvent += () =>
+            {
+                var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(doorLock);
+                Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
+                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                functionSetting.Show();
+                functionSetting.devicNameAction += (deviceRename) =>
+                {
+                    if (!string.IsNullOrEmpty(deviceRename))
+                    {
+                        if (btnDoorLockTitle != null)
+                        {
+                            btnDoorLockTitle.Text = deviceRename;
+                        }
+                    }
+                };
+            };
+        }
+
+        /// <summary>
+        /// 绯荤粺浜屾纭绐楀彛
+        /// </summary>
+        public void SystemSecondAuthentication()
+        {
+            string msgDoorUnLockByRemote = Language.StringByID(R.MyInternationalizationString.GoPersonalCenter).Replace("{0}", "\r\n");
+            var alertDoorUnLockByRemote = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msgDoorUnLockByRemote, Language.StringByID(R.MyInternationalizationString.GoSetting));
+            alertDoorUnLockByRemote.Show();
+            //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁�
+            alertDoorUnLockByRemote.ConfirmClickEvent += () =>
             {
                 var form = new UserCenter.UserMain.SecondAuthenticationForm();
                 form.AddForm();
@@ -365,41 +411,13 @@
         {
             if (string.IsNullOrEmpty(doorLock.RemoteUnlockPassword))
             {
-                string msgRemoteUnlockRequest = Language.StringByID(R.MyInternationalizationString.BindRemoteUnlockDoorlock);
-                var alertRemoteUnlockRequest = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msgRemoteUnlockRequest, Language.StringByID(R.MyInternationalizationString.GoSetting));
-                alertRemoteUnlockRequest.Show();
-                //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁�
-                alertRemoteUnlockRequest.ConfirmClickEvent += () =>
-                {
-                    var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(doorLock);
-                    Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
-                    Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                    functionSetting.Show();
-                    functionSetting.devicNameAction += (deviceRename) =>
-                    {
-                        if (!string.IsNullOrEmpty(deviceRename))
-                        {
-                            if (btnDoorLockTitle != null)
-                            {
-                                btnDoorLockTitle.Text = deviceRename;
-                            }
-                        }
-                    };
-                };
+                BindRemoteUnlockDoorlock(doorLock, btnDoorLockTitle);
                 return;
             }
 
             if (!UserCenterResourse.AccountOption.DoorUnLockByRemote)
             {
-                string msgDoorUnLockByRemote = Language.StringByID(R.MyInternationalizationString.GoPersonalCenter).Replace("{0}", "\r\n");
-                var alertDoorUnLockByRemote = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msgDoorUnLockByRemote, Language.StringByID(R.MyInternationalizationString.GoSetting));
-                alertDoorUnLockByRemote.Show();
-                //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁�
-                alertDoorUnLockByRemote.ConfirmClickEvent += () =>
-                {
-                    var form = new UserCenter.UserMain.SecondAuthenticationForm();
-                    form.AddForm();
-                };
+                SystemSecondAuthentication();
                 return;
             }
 
@@ -432,9 +450,10 @@
 
                                 }
                             });
-                            //杩滅▼寮�閿� 
+                            //杩滅▼寮�閿�
                             var remoteControlResult = await doorLock.RemoteControlAsync(doorLock.RemoteUnlockPassword);
-                            //寮�閿佹垚鍔燂紝杩斿洖榛樿鍝嶅簲
+
+                            //杩滅▼寮�閿佹垚鍔燂紝杩斿洖榛樿鍝嶅簲
                             if (remoteControlResult != null && remoteControlResult.responseData != null)
                             {
                                 if (remoteControlResult.responseData.status == 0)
@@ -444,80 +463,47 @@
                                     {
                                         if (progressButton != null)
                                         {
-                                            progressButton.Y = Application.GetRealHeight(347);
+                                            progressButton.Y = Application.GetRealHeight(10);
                                         }
                                         if (btnDoorLockPic != null)
                                         {
-                                            btnDoorLockPic.IsSelected = false;
+                                            btnDoorLockPic.IsSelected = true;
                                         }
                                         if (btnStatus != null)
                                         {
-                                            btnStatus.Text = Language.StringByID(R.MyInternationalizationString.DoorLockOpen);
+                                            btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.DoorLockOpen);
                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockSuccess), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
                                         }
                                     });
+                                    //寮�閿佹垚鍔燂紝榛樿5绉掑悗闂ㄩ攣鑷姩鍏抽攣锛屾牴鎹笉鍚岀殑闂ㄩ攣鍙兘鏃堕棿涓嶅悓锛岃繖閲屼互鈥淗06C鈥濋棬閿佺粰鐨勬椂闂�
                                     System.Threading.Thread.Sleep(5000);
                                 }
                                 else
                                 {
                                     Application.RunOnMainThread(() =>
                                     {
-                                        if (progressButton != null)
-                                        {
-                                            progressButton.Y = Application.GetRealHeight(347);
-                                        }
-                                        if (btnDoorLockPic != null)
-                                        {
-                                            btnDoorLockPic.IsSelected = false;
-                                        }
-                                        if (btnStatus != null)
-                                        {
-                                            btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose);
-                                        }
                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
                                     });
                                 }
                             }
+                            //鐢ㄤ簬杩滅▼寮�閿佺殑闂ㄩ攣涓殑瀵嗙爜琚垹闄ゆ儏鍐�
                             else if (remoteControlResult != null && remoteControlResult.IsPawDispear == true)
                             {
+                                //杩滅▼寮�閿佹湁3娆¤繛缁搷浣滃け璐ョ殑鏈轰細
                                 ZigBee.Device.DoorLock.failedCount--;
                                 if (ZigBee.Device.DoorLock.failedCount != 0)
                                 {
                                     Application.RunOnMainThread(() =>
                                     {
-                                        if (progressButton != null)
-                                        {
-                                            progressButton.Y = Application.GetRealHeight(347);
-                                        }
-                                        if (btnDoorLockPic != null)
-                                        {
-                                            btnDoorLockPic.IsSelected = false;
-                                        }
-                                        if (btnStatus != null)
-                                        {
-                                            btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose);
-                                        }
                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.UnlockFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
                                     });
                                 }
                                 else
                                 {
+                                    //3娆℃搷浣滃け璐ヨ繙绋嬪紑閿佸け璐ュ悗锛岄噸鍐欒缃繙绋嬪紑閿佸瘑鐮�
                                     Application.RunOnMainThread(() =>
                                     {
-                                        if (progressButton != null)
-                                        {
-                                            progressButton.Y = Application.GetRealHeight(347);
-                                        }
-                                        if (btnDoorLockPic != null)
-                                        {
-                                            btnDoorLockPic.IsSelected = false;
-                                        }
-                                        if (btnStatus != null)
-                                        {
-                                            btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose);
-                                        }
                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.DoorlockPasswordDispear), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
-                                        CommonPage.Loading.Hide();
                                         doorLock.RemoteUnlockPassword = "";
                                         var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(doorLock);
                                         Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
@@ -536,22 +522,11 @@
                                     });
                                 }
                             }
+                            //杩滅▼寮�閿佸け璐ョ殑鎯呭喌
                             else
                             {
                                 Application.RunOnMainThread(() =>
                                 {
-                                    if (progressButton != null)
-                                    {
-                                        progressButton.Y = Application.GetRealHeight(347);
-                                    }
-                                    if (btnDoorLockPic != null)
-                                    {
-                                        btnDoorLockPic.IsSelected = false;
-                                    }
-                                    if (btnStatus != null)
-                                    {
-                                        btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose);
-                                    }
                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(CommonPage.Instance);
                                 });
                             }
@@ -561,9 +536,17 @@
                         {
                             Application.RunOnMainThread(() =>
                             {
+                                if (progressButton != null)
+                                {
+                                    progressButton.Y = Application.GetRealHeight(347);
+                                }
+                                if (btnDoorLockPic != null)
+                                {
+                                    btnDoorLockPic.IsSelected = false;
+                                }
                                 if (btnStatus != null)
                                 {
-                                    btnStatus.Text = Language.StringByID(R.MyInternationalizationString.CLose);
+                                    btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.CLose);
                                 }
                                 CommonPage.Loading.Hide();
                             });
@@ -626,5 +609,35 @@
             }
         }
 
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 鏄剧ず閿欒淇℃伅绐楀彛
+        /// </summary>
+        /// <param name="msg"></param>
+        public void ShowErrorMsg(string msg)
+        {
+            Application.RunOnMainThread(() =>
+            {
+                var contr = new ShowMsgControl(ShowMsgType.Error, msg);
+                contr.Show();
+            });
+        }
+
+        /// <summary>
+        /// 鏄剧ずTip淇℃伅绐楀彛
+        /// </summary>
+        /// <param name="msg"></param>
+        public void ShowTipMsg(string msg)
+        {
+            Application.RunOnMainThread(() =>
+            {
+                var contr = new ShowMsgControl(ShowMsgType.Tip, msg);
+                contr.Show();
+                CommonPage.Loading.Hide();
+            });
+        }
+
+        #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/EntryStatusPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/EntryStatusPage.cs
index 0217b3a..c0eb854 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/EntryStatusPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/EntryStatusPage.cs
@@ -8,7 +8,7 @@
 
 namespace Shared.Phone.UserCenter.DoorLock
 {
-    public class EntryStatusPage : DoorLockCommonLayout, ZigBee.Common.IStatus
+    public class EntryStatusPage : DoorLockCommonLayout
     {
         /// <summary>
         /// 鏋勯�犲嚱鏁�
@@ -44,7 +44,7 @@
         #endregion
 
         /// <summary>
-        /// UI鏄剧ず 
+        /// UI鏄剧ず
         /// </summary>
         public void Show()
         {
@@ -343,39 +343,5 @@
                  }
              };
         }
-
-        #region 鎺ュ彛瀹炵幇
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-
-        }
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢
-        /// </summary>
-        /// <param name="common"></param>
-        /// <param name="typeTag"></param>
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-        }
-        #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs
index 99766b2..64a8ada 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/FunctionSetting.cs
@@ -5,9 +5,9 @@
 
 namespace Shared.Phone.UserCenter.DoorLock
 {
-    public class FunctionSetting : DoorLockCommonLayout, ZigBee.Common.IStatus
+    public class FunctionSetting : DoorLockCommonLayout
     {
-        #region  鏋勯�犲嚱鏁� 
+        #region  鏋勯�犲嚱鏁�
         /// <summary>
         /// 鏋勯�犲嚱鏁�
         /// </summary>
@@ -18,11 +18,10 @@
             this.doorLock = doorLock;
             listNewDevice.Add(doorLock);
             BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
-            ZigBee.Device.ZbGateway.StatusList.Add(this);
         }
         #endregion
 
-        #region  鍙橀噺鐢虫槑 
+        #region  鍙橀噺鐢虫槑
         public ZigBee.Device.DoorLock doorLock = null;
         /// <summary>
         /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍚嶅瓧
@@ -53,9 +52,9 @@
         FrameLayout bottomFrameLayout;
         #endregion
 
-        #region  UI鏄剧ず  
+        #region  UI鏄剧ず
         /// <summary>
-        /// UI鏄剧ず 
+        /// UI鏄剧ず
         /// </summary>
         public void Show()
         {
@@ -74,7 +73,7 @@
         }
         #endregion
 
-        #region  涓儴鏄剧ず  
+        #region  涓儴鏄剧ず
         public void MidFrameLayoutContent()
         {
             //鍥剧墖
@@ -99,10 +98,10 @@
         }
         #endregion
 
-        #region  搴曢儴鏄剧ず 
+        #region  搴曢儴鏄剧ず
         public void BottomFrameLayout()
         {
-            #region  UI 
+            #region  UI
             bottomFrameLayout = new FrameLayout()
             {
                 Height = Application.GetRealHeight(1319),
@@ -136,7 +135,7 @@
         }
         #endregion
 
-        #region  鍔熻兘鏄剧ず  
+        #region  鍔熻兘鏄剧ず
         void FunctionDetail(ZigBee.Device.DoorLock doorLock)
         {
             listview.RemoveAll();
@@ -231,7 +230,7 @@
         }
         #endregion
 
-        #region  娣诲姞鍏ㄩ儴鑿滃崟 
+        #region  娣诲姞鍏ㄩ儴鑿滃崟
         /// <summary>
         /// 娣诲姞鍏ㄩ儴鑿滃崟
         /// </summary>
@@ -254,7 +253,7 @@
         }
         #endregion
 
-        #region 涓存椂瀵嗙爜 
+        #region 涓存椂瀵嗙爜
         /// <summary>
         /// 涓存椂瀵嗙爜
         /// </summary>
@@ -288,7 +287,7 @@
 
         #endregion
 
-        #region 杩滅▼寮�閿� 
+        #region 杩滅▼寮�閿�
         /// <summary>
         /// 娣诲姞銆愯繙绋嬪紑閿併�戣锛堥棬閿佷笓鐢級
         /// </summary>
@@ -358,7 +357,7 @@
 
         #endregion
 
-        #region 闂ㄩ攣鏃堕棿 
+        #region 闂ㄩ攣鏃堕棿
 
         /// <summary>
         /// 娣诲姞銆愰棬閿佹椂闂淬�戣锛堥棬閿佷笓鐢級
@@ -404,7 +403,7 @@
 
         #endregion
 
-        #region  璁惧閲嶅懡鍚� 
+        #region  璁惧閲嶅懡鍚�
         /// <summary>
         /// 璁惧閲嶅懡鍚�
         /// </summary>
@@ -445,10 +444,10 @@
         }
         #endregion
 
-        #region  琛屾暟瓒呰繃瀹瑰櫒鏃讹紝琛ヤ竴涓┖鐧紽rameLayout 
+        #region  琛屾暟瓒呰繃瀹瑰櫒鏃讹紝琛ヤ竴涓┖鐧紽rameLayout
         /// <summary>
         /// 琛屾暟瓒呰繃瀹瑰櫒鏃讹紝琛ヤ竴涓┖鐧紽rameLayout锛屼娇涔嬭兘婊戝姩
-        /// </summary> 
+        /// </summary>
         void FinishInitControl(FrameLayout bodyFrameLayout, VerticalListControl listview)
         {
             if (listview.ChildrenCount > 0)
@@ -465,41 +464,5 @@
             }
         }
         #endregion
-
-        #region  鎺ュ彛瀹炵幇 
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-
-        }
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢
-        /// </summary>
-        /// <param name="common"></param>
-        /// <param name="typeTag"></param>
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-        }
-        #endregion
     }
 }
-
-
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MasterManagementPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MasterManagementPage.cs
index b49e762..72f126e 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MasterManagementPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MasterManagementPage.cs
@@ -3,7 +3,7 @@
 using ZigBee.Device;
 namespace Shared.Phone.UserCenter.DoorLock
 {
-    public class MasterManagementPage : DoorLockCommonLayout, ZigBee.Common.IStatus
+    public class MasterManagementPage : DoorLockCommonLayout
     {
         /// <summary>
         /// 鏋勯�犲嚱鏁�
@@ -28,7 +28,7 @@
         #endregion
 
         /// <summary>
-        /// UI鏄剧ず 
+        /// UI鏄剧ず
         /// </summary>
         public void Show()
         {
@@ -164,39 +164,5 @@
                 btnMemberName.MouseUpEventHandler += eHandler;
             }
         }
-
-        #region 鎺ュ彛瀹炵幇
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-
-        }
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢
-        /// </summary>
-        /// <param name="common"></param>
-        /// <param name="typeTag"></param>
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-        }
-        #endregion
     }
-}
\ No newline at end of file
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
index 3947cb4..11824c7 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
@@ -5,7 +5,7 @@
 using ZigBee.Device;
 namespace Shared.Phone.UserCenter.DoorLock
 {
-    public class MemberFrozenPage : DoorLockCommonLayout, ZigBee.Common.IStatus
+    public class MemberFrozenPage : DoorLockCommonLayout
     {
         /// <summary>
         /// 鏋勯�犲嚱鏁�
@@ -18,7 +18,7 @@
             BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
         }
 
-        #region  鍙橀噺鐢虫槑 
+        #region  鍙橀噺鐢虫槑
         /// <summary>
         /// 褰撳墠闂ㄩ攣
         /// </summary>
@@ -77,7 +77,7 @@
         }
 
         /// <summary>
-        /// UI鏄剧ず 
+        /// UI鏄剧ず
         /// </summary>
         public void Show()
         {
@@ -704,7 +704,7 @@
                         }
                         else
                         {
-                            //鏂板锛屼笖涓嶅喕缁� 
+                            //鏂板锛屼笖涓嶅喕缁�
                             var addLockInfo = new ZigBee.Device.DoorLock.AddDoorLockData();
                             if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                             {
@@ -783,39 +783,5 @@
                 });
             };
         }
-
-        #region  鎺ュ彛瀹炵幇
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-
-        }
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢
-        /// </summary>
-        /// <param name="common"></param>
-        /// <param name="typeTag"></param>
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-        }
-        #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/ShowDoorLockMsgControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/ShowDoorLockMsgControl.cs
new file mode 100755
index 0000000..366e7e6
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/ShowDoorLockMsgControl.cs
@@ -0,0 +1,375 @@
+锘縰sing System;
+using System.Text;
+using System.Text.RegularExpressions;
+using Shared.Common;
+
+namespace Shared.Phone.UserCenter.DoorLock
+{
+    /// <summary>
+    /// 鏄剧ず涓�涓俊鎭
+    /// </summary>
+    public class ShowDoorLockMsgControl
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+        public Action<string> InvalidTimeAction = null;
+        /// <summary>
+        /// 鐐瑰嚮鍙栨秷鐨勪簨浠�
+        /// </summary>
+        public Action CancelClickEvent = null;
+        /// <summary>
+        /// 鐐瑰嚮鑷姩鍖栫殑浜嬩欢
+        /// </summary>
+        public Action LogicClickEvent = null;
+        /// <summary>
+        /// 鐐瑰嚮纭鐨勪簨浠�
+        /// </summary>
+        public Action InvalidClickEvent = null;
+        /// <summary>
+        /// 鐐瑰嚮纭鐨勪簨浠�
+        /// </summary>
+        public Action ConfirmClickEvent = null;
+        /// <summary>
+        /// 淇℃伅绫诲瀷
+        /// </summary>
+        private DoorLockMsgType msgType = DoorLockMsgType.Confirm;
+        /// <summary>
+        /// 娑堟伅
+        /// </summary>
+        private string msgText = string.Empty;
+        /// <summary>
+        /// 纭鎸夐挳鐨勬枃鏈�
+        /// </summary>
+        private string buttonOkText = null;
+        /// <summary>
+        /// 澶辨晥鏃堕棿缂栬緫
+        /// </summary>
+        private EditText editInvalidTime = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鏄剧ず涓�涓渶瑕佺‘璁ょ殑淇℃伅妗�
+        /// </summary>
+        /// <param name="i_msgType">淇℃伅绫诲瀷</param>
+        /// <param name="i_msg">淇℃伅</param>
+        /// <param name="buttonText">纭鎸夐挳鐨勬枃鏈�</param>
+        public ShowDoorLockMsgControl(DoorLockMsgType i_msgType, string i_msg, string buttonText = null)
+        {
+            //纭鎸夐挳鏂囨湰
+            this.buttonOkText = buttonText == null ? Language.StringByID(R.MyInternationalizationString.OkMsg) : buttonText;
+            this.msgType = i_msgType;
+            this.msgText = i_msg;
+        }
+
+        #endregion
+
+        #region 鈻� 鏄剧ず娑堟伅___________________________
+
+        /// <summary>
+        /// 鏄剧ず
+        /// </summary>
+        public void Show()
+        {
+            try
+            {
+                //鍒濆鍖栨帶浠�
+                this.InitMsgControl();
+            }
+            catch (Exception ex) { HdlLogLogic.Current.WriteLog(ex); }
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖栨帶浠禵________________________
+
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�
+        /// </summary>
+        private void InitMsgControl()
+        {
+            //娣诲姞鐣岄潰
+            var nowForm = UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
+            if (nowForm == null || (nowForm is ViewGroup) == false)
+            {
+                return;
+            }
+            //涓绘帶浠�
+            var frameMain = new FrameLayout();
+            frameMain.BackgroundColor = UserCenterColor.Current.DialogBackColor;
+            ((ViewGroup)nowForm).AddChidren(frameMain);
+
+            //鐧借壊鑳屾櫙妗�
+            var frameBack = new FrameLayout();
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            frameBack.Gravity = Gravity.CenterHorizontal;
+            frameBack.Radius = (uint)Application.GetRealHeight(17);
+            if (msgType == DoorLockMsgType.CancelNomallyOpenModeWithLogic)
+            {
+                frameBack.Height = Application.GetRealHeight(409 + 127);
+                frameBack.Width = Application.GetRealWidth(850);
+                frameBack.Y = Application.GetRealHeight(648);
+            }
+            else
+            {
+                frameBack.Height = Application.GetRealHeight(478);
+                frameBack.Width = Application.GetRealWidth(792);
+                frameBack.Y = Application.GetRealHeight(706);
+            }
+            frameMain.AddChidren(frameBack);
+
+            //鏍囬
+            var btnTitle = new NormalViewControl(frameBack.Width, Application.GetRealHeight(65), false);
+            btnTitle.Y = Application.GetRealHeight(68);
+            btnTitle.TextColor = 0xff333443;
+            btnTitle.TextAlignment = TextAlignment.Center;
+            btnTitle.TextSize = 16;
+            frameBack.AddChidren(btnTitle);
+            if (msgType == DoorLockMsgType.Confirm || msgType == DoorLockMsgType.DoorLockLogic || msgType == DoorLockMsgType.NomallyOpenMode || msgType == DoorLockMsgType.CancelNomallyOpenModeWithLogic)
+            {
+                btnTitle.TextID = R.MyInternationalizationString.NormalTip;
+            }
+            else if (msgType == DoorLockMsgType.InValid)
+            {
+                btnTitle.TextID = R.MyInternationalizationString.DoorLockInValidSetting;
+            }
+            else if (msgType == DoorLockMsgType.NomallyOpenMode)
+            {
+                btnTitle.TextID = R.MyInternationalizationString.CancelNomallyMode;
+            }
+
+            if (msgType == DoorLockMsgType.InValid)
+            {
+                InitInValidTimeDialog(frameBack);
+            }
+            else if (msgType == DoorLockMsgType.CancelNomallyOpenModeWithLogic)
+            {
+                CancelNormallyOpenModeWithLogicDialog(frameBack);
+            }
+            else
+            {
+                //娑堟伅
+                var btnMsg = new NormalViewControl(frameBack.Width - Application.GetRealWidth(55 * 2), Application.GetRealHeight(180), false);
+                btnMsg.Y = Application.GetRealHeight(141);
+                btnMsg.IsMoreLines = true;
+                btnMsg.TextAlignment = TextAlignment.Center;
+                btnMsg.TextColor = UserCenterColor.Current.TextGrayColor1;
+                btnMsg.Gravity = Gravity.CenterHorizontal;
+                frameBack.AddChidren(btnMsg);
+                btnMsg.Text = msgText;
+            }
+
+            if (msgType == DoorLockMsgType.Confirm || msgType == DoorLockMsgType.InValid || msgType == DoorLockMsgType.NomallyOpenMode)
+            {
+                //鍒濆鍖栫‘璁ょ被鍨嬬殑搴曢儴鎸夐挳
+                this.InitBottomConfirmButton(frameMain, frameBack);
+            }
+            else if (msgType == DoorLockMsgType.DoorLockLogic || msgType == DoorLockMsgType.CancelNomallyOpenModeWithLogic)
+            {
+                //澶辨晥璁剧疆鐨勫簳閮ㄦ寜閽�
+                this.InitBottomLogicButton(frameMain, frameBack);
+            }
+        }
+
+        /// <summary>
+        /// 鍙栨秷甯稿紑妯″紡甯︽湁鑷姩鍖栫殑寮圭獥鏄剧ず
+        /// </summary>
+        /// <param name="frameMain"></param>
+        /// <param name="frameBack"></param>
+        private void CancelNormallyOpenModeWithLogicDialog(FrameLayout frameBack)
+        {
+            //娑堟伅
+            var btnMsg = new NormalViewControl(frameBack.Width - Application.GetRealWidth(55 * 2), Application.GetRealHeight(63), false);
+            btnMsg.Y = Application.GetRealHeight(173);
+            btnMsg.IsMoreLines = true;
+            btnMsg.TextAlignment = TextAlignment.Center;
+            btnMsg.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnMsg.Gravity = Gravity.CenterHorizontal;
+            frameBack.AddChidren(btnMsg);
+            btnMsg.Text = msgText;
+
+            var alarmMsg = Language.StringByID(R.MyInternationalizationString.XingTip);//.Replace("{0}", "\r\n");
+            var btnAlarmMsg = new NormalViewControl(frameBack.Width - Application.GetRealWidth(55 * 2), Application.GetRealHeight(104), false);
+            btnAlarmMsg.Y = Application.GetRealHeight(259);
+            btnAlarmMsg.IsMoreLines = true;
+            btnAlarmMsg.TextAlignment = TextAlignment.Center;
+            btnAlarmMsg.TextColor = ZigbeeColor.Current.XMAlarmText;
+            btnAlarmMsg.Gravity = Gravity.CenterHorizontal;
+            frameBack.AddChidren(btnAlarmMsg);
+            btnAlarmMsg.Text = alarmMsg;
+        }
+
+        /// <summary>
+        /// 澶辨晥鏃堕棿璁剧疆鐨勫脊绐楁樉绀�
+        /// </summary>
+        /// <param name="frameMain"></param>
+        /// <param name="frameBack"></param>
+        private void InitInValidTimeDialog(FrameLayout frameBack)
+        {
+            //娑堟伅 
+            string[] msgArray = msgText.Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
+            var btnMsg1 = new Button()
+            {
+                Width = Application.GetRealWidth(389),
+                Height = Application.GetRealHeight(180),
+                Y = Application.GetRealHeight(141),
+                IsMoreLines = false,
+                TextColor = UserCenterColor.Current.TextGrayColor1,
+                TextAlignment = TextAlignment.CenterRight,
+                Text = msgArray[0],
+            };
+            frameBack.AddChidren(btnMsg1);
+
+            //澶辨晥鏃堕棿璁剧疆
+            var editTextFrameLayout = new FrameLayout()
+            {
+                Width = Application.GetRealWidth(132),
+                Height = Application.GetRealHeight(81 + 40 * 2),
+                Y = Application.GetRealHeight(184 - 40),
+                X = btnMsg1.Right,
+            };
+            frameBack.AddChidren(editTextFrameLayout);
+            editInvalidTime = new EditText()
+            {
+                Height = Application.GetRealHeight(81),
+                X = Application.GetRealWidth(132),
+                Y = Application.GetRealHeight(40),
+                Gravity = Gravity.Center,
+                Radius = (uint)Application.GetMinRealAverage(17),
+                BackgroundColor = ZigbeeColor.Current.XMPEditTextBackground,
+                TextColor = ZigbeeColor.Current.XMBlack,
+                TextAlignment = TextAlignment.Center,
+                TextSize = 14,
+                Text = DoorLockCommonInfo.NormallyOpenModeInvalidTime.ToString(),
+                PlaceholderTextColor = ZigbeeColor.Current.XMGray3,
+            };
+            editTextFrameLayout.AddChidren(editInvalidTime);
+
+            var btnMsg2 = new Button()
+            {
+                Width = Application.GetRealWidth(271),
+                Height = Application.GetRealHeight(180),
+                Y = Application.GetRealHeight(141),
+                X = editTextFrameLayout.Right,
+                IsMoreLines = false,
+                TextColor = UserCenterColor.Current.TextGrayColor1,
+                TextAlignment = TextAlignment.CenterLeft,
+                Text = msgArray[1]
+            };
+            frameBack.AddChidren(btnMsg2);
+        }
+
+        /// <summary>
+        /// 澶辨晥璁剧疆鐨勫簳閮ㄦ寜閽�
+        /// </summary>
+        /// <param name="frameMain"></param>
+        /// <param name="frameBack"></param>
+        private void InitBottomLogicButton(FrameLayout frameMain, FrameLayout frameBack)
+        {
+            //鑷姩鍖栨寜閽�
+            var btnDoorLockLogic = new BottomLeftClickButton(Application.GetRealWidth(396), Application.GetRealHeight(127));
+            frameBack.AddChidren(btnDoorLockLogic);
+            btnDoorLockLogic.InitControl(Language.StringByID(R.MyInternationalizationString.DoorLockLogic));
+            btnDoorLockLogic.ButtonClickEvent += (sender, e) =>
+            {
+                //绉婚櫎鐣岄潰
+                frameMain.RemoveFromParent();
+                //鍥炶皟鍑芥暟
+                this.LogicClickEvent?.Invoke();
+                this.LogicClickEvent = null;
+            };
+
+            //澶辨晥璁剧疆鎸夐挳
+            var btnInvalid = new BottomRightClickButton(frameBack.Width - btnDoorLockLogic.Width, btnDoorLockLogic.Height);
+            frameBack.AddChidren(btnInvalid);
+            btnInvalid.InitControl(buttonOkText);
+            btnInvalid.ButtonClickEvent += (sender, e) =>
+            {
+                //绉婚櫎鐣岄潰
+                frameMain.RemoveFromParent();
+                //鍥炶皟鍑芥暟
+                this.InvalidClickEvent?.Invoke();
+                this.InvalidClickEvent = null;
+            };
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栫‘璁ょ被鍨嬬殑搴曢儴鎸夐挳
+        /// </summary>
+        /// <param name="frameMain"></param>
+        /// <param name="frameBack"></param>
+        private void InitBottomConfirmButton(FrameLayout frameMain, FrameLayout frameBack)
+        {
+            //鍙栨秷鎸夐挳
+            var btnCancel = new BottomLeftClickButton(Application.GetRealWidth(396), Application.GetRealHeight(127));
+            frameBack.AddChidren(btnCancel);
+            var bottomLeftText = Language.StringByID(R.MyInternationalizationString.uCancel);
+            if (msgType == DoorLockMsgType.NomallyOpenMode)
+            {
+                bottomLeftText = Language.StringByID(R.MyInternationalizationString.KeepNomallyMode);
+            }
+            btnCancel.InitControl(bottomLeftText);
+            btnCancel.ButtonClickEvent += (sender, e) =>
+            {
+                //绉婚櫎鐣岄潰
+                frameMain.RemoveFromParent();
+                //鍥炶皟鍑芥暟
+                this.CancelClickEvent?.Invoke();
+                this.CancelClickEvent = null;
+            };
+
+            //纭畾鎸夐挳
+            var btnConfirm = new BottomRightClickButton(frameBack.Width - btnCancel.Width, btnCancel.Height);
+            frameBack.AddChidren(btnConfirm);
+            btnConfirm.InitControl(buttonOkText);
+            btnConfirm.ButtonClickEvent += (sender, e) =>
+            {
+                //绉婚櫎鐣岄潰
+                frameMain.RemoveFromParent();
+                if (msgType == DoorLockMsgType.InValid)
+                {
+                    if (InvalidTimeAction != null)
+                    {
+                        InvalidTimeAction(editInvalidTime.Text);
+                    }
+                }
+                else
+                {
+                    //鍥炶皟鍑芥暟
+                    this.ConfirmClickEvent?.Invoke();
+                    this.ConfirmClickEvent = null;
+                }
+            };
+        }
+
+        #endregion
+
+        /// <summary>
+        /// 淇℃伅鏄剧ず鐨勭被鍨�
+        /// </summary>
+        public enum DoorLockMsgType
+        {
+            /// <summary>
+            /// 纭绫诲瀷
+            /// </summary>
+            Confirm = 1,
+            /// <summary>
+            /// 澶辨晥璁剧疆
+            /// </summary>
+            InValid = 2,
+            /// <summary>
+            /// 閫昏緫绫诲瀷
+            /// </summary>
+            DoorLockLogic = 3,
+            /// <summary>
+            /// 甯稿紑妯″紡
+            /// </summary>
+            NomallyOpenMode = 4,
+            /// <summary>
+            /// 鍙栨秷甯︽湁閫昏緫鐨勫父寮�妯″紡
+            /// </summary>
+            CancelNomallyOpenModeWithLogic = 5,
+        }
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs
index 6e5ce47..7f2b1f3 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TemporaryPassword.cs
@@ -6,7 +6,7 @@
 
 namespace Shared.Phone.UserCenter.DoorLock
 {
-    public class TemporaryPassword : DoorLockCommonLayout, ZigBee.Common.IStatus
+    public class TemporaryPassword : DoorLockCommonLayout
     {
         /// <summary>
         /// 鏋勯�犲嚱鏁�
@@ -16,7 +16,6 @@
         {
             this.doorLock = doorLock;
             BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
-            ZigBee.Device.ZbGateway.StatusList.Add(this);
         }
 
         #region  鍙橀噺鐢虫槑
@@ -96,7 +95,7 @@
             };
             btnDelFrameLayout.MouseDownEventHandler += eHandler;
             btnDelIcon.MouseDownEventHandler += eHandler;
-            #endregion 
+            #endregion
             MidTopFrameLayout = new FrameLayout()
             {
                 X = Application.GetRealWidth(181),
@@ -571,7 +570,7 @@
                                 }
                                 //瀵瑰瘑鐮佽繘琛屽姞瀵嗗鐞�
                                 string hdlKey = "hD1(La3o";
-                                var enPsw = UserCenterLogic.EncryptPassword(hdlKey, doorLock.tempPasswordObject.TempPassword); 
+                                var enPsw = UserCenterLogic.EncryptPassword(hdlKey, doorLock.tempPasswordObject.TempPassword);
                                 addDoorLockTempPasswordData.TempPwd = enPsw;
                                 if (doorLock.DeviceAddr != null)
                                 {
@@ -983,39 +982,5 @@
             validTimeDate.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth + Language.StringByID(R.MyInternationalizationString.Month) + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay + Language.StringByID(R.MyInternationalizationString.Day);
             inValidTimeDate.Text = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth + Language.StringByID(R.MyInternationalizationString.Month) + Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay + Language.StringByID(R.MyInternationalizationString.Day);
         }
-
-        #region 鎺ュ彛瀹炵幇
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-
-        }
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢
-        /// </summary>
-        /// <param name="common"></param>
-        /// <param name="typeTag"></param>
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-        }
-        #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
index 424eb2f..3ba7016 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/TimeSettignPage.cs
@@ -7,6 +7,7 @@
 {
     public class TimeSettignPage : DoorLockCommonLayout, ZigBee.Common.IStatus
     {
+        #region 涓婃姤鏁版嵁澶勭悊
         /// <summary>
         /// 澶勭悊鍙樺寲浜嬩欢
         /// </summary>
@@ -47,7 +48,9 @@
                 }
             }
         }
+        #endregion
 
+        #region 鏋勯�犲嚱鏁�
         /// <summary>
         /// 鏋勯�犲嚱鏁�
         /// </summary>
@@ -59,7 +62,9 @@
             BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
             ZigBee.Device.ZbGateway.StatusList.Add(this);
         }
+        #endregion
 
+        #region UI鍐呭
         #region  鍙橀噺鐢虫槑
         /// <summary>
         /// 褰撳墠闂ㄩ攣
@@ -116,16 +121,7 @@
         #endregion
 
         /// <summary>
-        /// 閲嶅啓绉婚櫎鏂规硶
-        /// </summary>
-        public override void RemoveFromParent()
-        {
-            ZbGateway.StatusList.Remove(this);
-            base.RemoveFromParent();
-        }
-
-        /// <summary>
-        /// UI鏄剧ず 
+        /// UI鏄剧ず
         /// </summary>
         public void Show()
         {
@@ -151,6 +147,7 @@
             this.MidFrameLayout(this);
             MidFrameLayoutContent();
         }
+
         /// <summary>
         /// 涓儴甯冨眬
         /// </summary>
@@ -158,34 +155,30 @@
         {
             if (setTimeType == "DoorLockTime")
             {
-                CommonPage.Loading.Start("");
-                // 鍙湁閲嶆柊鍚姩鏃朵細鎱紝鐒跺悗鍏朵粬鏃跺埢閮芥槸鏈夊�肩殑
-                new System.Threading.Thread(() =>
-                {
-                    while (this.Parent != null)
-                    {
-                        if (DateTime.Now > waitGetDoorLockTime)
-                        {
-                            Application.RunOnMainThread(() =>
-                            {
-                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
-                                CommonPage.Loading.Hide();
-                            });
-                        }
-                        //璇婚棬閿佹椂闂�
-                        //绛夊緟10绉掞紝娌℃湁鏀跺埌鎻愮ず瓒呮椂閫�鍑�
-                        waitGetDoorLockTime = DateTime.Now.AddSeconds(+5);
-                        doorLock.ReadAttri(ZigBee.Device.Cluster_ID.DoorLock, ZigBee.Device.AttriButeId.DoorLock);
-                        System.Threading.Thread.Sleep(5 * 1000);
-                    }
-                })
-                { IsBackground = true }.Start();
+                ReadDoorlockTime();
             }
 
-            var MidTopFrameLayout = new FrameLayout()
+            var zoneFrameLayout = new FrameLayout()
             {
+                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
             };
-            this.midFrameLayout.AddChidren(MidTopFrameLayout);
+            this.midFrameLayout.AddChidren(zoneFrameLayout);
+
+            if (setTimeType == "DoorLockTime")
+            {
+                zoneFrameLayout.Height = Application.GetRealHeight(150) + 1;
+                AddDoorLocksTimeRow(zoneFrameLayout);
+            }
+            else
+            {
+                zoneFrameLayout.Height = Application.GetRealHeight(0);
+            }
+
+            var midTopFrameLayout = new FrameLayout()
+            {
+                Y = zoneFrameLayout.Bottom,
+            };
+            this.midFrameLayout.AddChidren(midTopFrameLayout);
 
             var dtNow = DateTime.Now;
             for (int i = 0; i < 2; i++)
@@ -196,7 +189,7 @@
                     Height = Application.GetRealHeight(127 + 23),
                     BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
                 };
-                MidTopFrameLayout.AddChidren(rowLayout);
+                midTopFrameLayout.AddChidren(rowLayout);
 
                 var btnDateTime = new Button()
                 {
@@ -241,7 +234,7 @@
                     X = Application.GetRealWidth(58),
                     BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
                 };
-                MidTopFrameLayout.AddChidren(btnLine);
+                midTopFrameLayout.AddChidren(btnLine);
                 #endregion
 
                 #region 鏄剧ず澶勭悊
@@ -322,302 +315,13 @@
                     }
                     btnLine.Visible = false;
                 }
-                #endregion 
+                #endregion
 
                 #region 浜嬩欢澶勭悊
                 int curIndex = i;
                 EventHandler<MouseEventArgs> hander = (sender, e) =>
                 {
-                    this.midFrameLayout.AddChidren(this.shadowRadiusFrameLayout);
-                    this.bottomRadiusFrameLayout.RemoveAll();
-                    this.BottomRadiusFrameLayout(this);
-                    var mUIPickerView = new UIPickerView()
-                    {
-                        X = Application.GetRealWidth(0),
-                        Height = Application.GetRealHeight(440),
-                    };
-                    this.bottomRadiusFrameLayout.AddChidren(mUIPickerView);
-
-                    if (curIndex == 0)
-                    {
-                        //鏃ユ湡
-                        if (setTimeType != "DoorLockTime")
-                        {
-                            this.btnBottomTitle.TextID = R.MyInternationalizationString.Date;
-                        }
-                        else
-                        {
-                            this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentDate;
-                        }
-
-                        mUIPickerView.Y = Application.GetRealWidth(245);
-                        var mList1 = new List<string>();
-                        var mList2 = new List<string>();
-                        var mList3 = new List<string>();
-                        var oldMonth = dtNow.Month;
-
-                        int year = dtNow.Year + 1;
-                        int days = DateTime.DaysInMonth(dtNow.Year, dtNow.Month);
-
-                        for (int y = dtNow.Year - 9; y < dtNow.Year + 1; y++)
-                        {
-                            mList1.Add(y.ToString());
-                        }
-                        for (int m = 1; m < 13; m++)
-                        {
-                            if (Language.CurrentLanguage == "Chinese")
-                            {
-                                mList2.Add(m.ToString() + "鏈�");
-                            }
-                            else
-                            {
-                                mList2.Add(m.ToString());
-                            }
-                        }
-                        for (int d = 1; d < days + 1; d++)
-                        {
-                            if (Language.CurrentLanguage == "Chinese")
-                            {
-                                mList3.Add(d.ToString() + "鏃�");
-                            }
-                            else
-                            {
-                                mList3.Add(d.ToString());
-                            }
-                        }
-
-                        if (setTimeType != "DoorLockTime")
-                        {
-                            mUIPickerView.setNPicker(mList2, mList3, null);
-                            mUIPickerView.setCurrentItems(dtNow.Month - 1, dtNow.Day - 1, 0);
-                            curMonth = dtNow.Month;
-                            curDay = dtNow.Day;
-
-                            if (setTimeType == "ValidTime")
-                            {
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateYear = dtNow.Year;
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth = curMonth;
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay = curDay;
-                            }
-                            else
-                            {
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateYear = dtNow.Year;
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth = curMonth;
-                                Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay = curDay;
-                            }
-                            var btnOk = new Button
-                            {
-                                X = Application.GetRealWidth(919),
-                                Y = Application.GetRealHeight(40),
-                                Height = Application.GetRealHeight(58),
-                                Width = Application.GetRealWidth(101),
-                                Text = Language.StringByID(R.MyInternationalizationString.Complete),
-                                TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
-                                TextSize = 14,
-                            };
-                            this.bottomRadiusFrameLayout.AddChidren(btnOk);
-                            btnOk.MouseUpEventHandler += (sender1, e1) =>
-                            {
-                                if (setTimeType == "ValidTime")
-                                {
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateYear = dtNow.Year;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMonth = curMonth;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateDay = curDay;
-                                }
-                                else
-                                {
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateYear = dtNow.Year;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMonth = curMonth;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateDay = curDay;
-                                }
-                                if (timeSetAction != null)
-                                {
-                                    timeSetAction();
-                                }
-                                this.shadowRadiusFrameLayout.RemoveFromParent();
-                                MidFrameLayoutContent();
-                            };
-                        }
-                        else
-                        {
-                            mUIPickerView.setNPicker(mList1, mList2, mList3);
-                            mUIPickerView.setCurrentItems(9, dtNow.Month - 1, dtNow.Day - 1);
-                            curYear = dtNow.Year;
-                            curMonth = dtNow.Month;
-                            curDay = dtNow.Day;
-                            if (CurentDoorLockTime != null)
-                            {
-                                curHour = CurentDoorLockTime.Hour;
-                                curMin = CurentDoorLockTime.Minute;
-                                curSec = CurentDoorLockTime.Second;
-                            }
-                            else
-                            {
-                                curHour = dtNow.Hour;
-                                curMin = dtNow.Minute;
-                                curSec = dtNow.Second;
-                            }
-                        }
-
-                        Action dAction = () =>
-                        {
-                            if (curMonth != oldMonth)
-                            {
-                                oldMonth = curMonth;
-                                days = DateTime.DaysInMonth(curYear, curMonth);
-                                mList3.Clear();
-
-                                for (int d = 1; d < days + 1; d++)
-                                {
-                                    if (Language.CurrentLanguage == "Chinese")
-                                    {
-                                        mList3.Add(d.ToString() + "鏃�");
-                                    }
-                                    else
-                                    {
-                                        mList3.Add(d.ToString());
-                                    }
-                                }
-
-                                if (setTimeType != "DoorLockTime")
-                                {
-                                    mUIPickerView.setNPicker(mList2, mList3, null);
-                                    mUIPickerView.setCurrentItems(curMonth - 1, curDay - 1, 0);
-                                }
-                                else
-                                {
-                                    mUIPickerView.setNPicker(mList1, mList2, mList3);
-                                    mUIPickerView.setCurrentItems(9, curMonth - 1, curDay - 1);
-                                }
-                            }
-                        };
-                        mUIPickerView.OnSelectChangeEvent += (y, m, d) =>
-                        {
-                            if (setTimeType != "DoorLockTime")
-                            {
-                                curYear = dtNow.Year;
-                                curMonth = y + 1;
-                                curDay = m + 1;
-                            }
-                            else
-                            {
-                                curYear = y + 2009;
-                                curMonth = m + 1;
-                                curDay = d + 1;
-                            }
-                            dAction();
-                        };
-                    }
-                    if (curIndex == 1)
-                    {
-                        //鏃堕棿
-                        if (setTimeType != "DoorLockTime")
-                        {
-                            this.btnBottomTitle.TextID = R.MyInternationalizationString.Time;
-                        }
-                        else
-                        {
-                            this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentTime;
-                        }
-
-                        mUIPickerView.Y = Application.GetRealWidth(245);
-                        var mList1 = new List<string>();
-                        var mList2 = new List<string>();
-                        for (int h = 0; h < 24; h++)
-                        {
-                            if (h < 10)
-                            {
-                                mList1.Add("0" + h.ToString());
-                            }
-                            else
-                            {
-                                mList1.Add(h.ToString());
-                            }
-                        }
-                        for (int m = 0; m < 60; m++)
-                        {
-                            if (m < 10)
-                            {
-                                mList2.Add("0" + m.ToString());
-                            }
-                            else
-                            {
-                                mList2.Add(m.ToString());
-                            }
-                        }
-                        mUIPickerView.setNPicker(mList1, mList2, null);
-                        mUIPickerView.setCurrentItems(dtNow.Hour, dtNow.Minute, 0);
-                        if (CurentDoorLockTime != null)
-                        {
-                            curYear = CurentDoorLockTime.Year;
-                            curMonth = CurentDoorLockTime.Month;
-                            curDay = CurentDoorLockTime.Day;
-                        }
-                        else
-                        {
-                            curYear = dtNow.Year;
-                            curMonth = dtNow.Month;
-                            curDay = dtNow.Day;
-                        }
-                        curHour = dtNow.Hour;
-                        curMin = dtNow.Minute;
-                        curSec = dtNow.Second;
-                        mUIPickerView.OnSelectChangeEvent += (h, m, s) =>
-                        {
-                            curHour = h;
-                            curMin = m;
-                            curSec = dtNow.Second;
-                        };
-
-                        if (setTimeType == "ValidTime")
-                        {
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour = curHour;
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute = curMin;
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateSecond = curSec;
-                        }
-                        else
-                        {
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour = curHour;
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute = curMin;
-                            Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateSecond = curSec;
-                        }
-
-                        if (setTimeType != "DoorLockTime")
-                        {
-                            var btnOk = new Button
-                            {
-                                X = Application.GetRealWidth(919),
-                                Y = Application.GetRealHeight(40),
-                                Height = Application.GetRealHeight(58),
-                                Width = Application.GetRealWidth(101),
-                                Text = Language.StringByID(R.MyInternationalizationString.Complete),
-                                TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
-                                TextSize = 14,
-                            };
-                            this.bottomRadiusFrameLayout.AddChidren(btnOk);
-                            btnOk.MouseUpEventHandler += (sender1, e1) =>
-                            {
-                                if (setTimeType == "ValidTime")
-                                {
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateHour = curHour;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateMinute = curMin;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.ValidDateSecond = curSec;
-                                }
-                                else
-                                {
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateHour = curHour;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateMinute = curMin;
-                                    Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.InValidDateSecond = curSec;
-                                }
-                                if (timeSetAction != null)
-                                {
-                                    timeSetAction();
-                                }
-                                this.shadowRadiusFrameLayout.RemoveFromParent();
-                                MidFrameLayoutContent();
-                            };
-                        }
-                    }
+                    ClickHandle(curIndex, dtNow);
                 };
                 rowLayout.MouseDownEventHandler += hander;
                 btnDateTime.MouseDownEventHandler += hander;
@@ -633,61 +337,24 @@
                 {
                     textDisplayTime.MouseDownEventHandler += hander;
                 }
-                #endregion 
+                #endregion
             }
 
             btnCancel.MouseUpEventHandler += (sender1, e1) =>
             {
                 this.shadowRadiusFrameLayout.RemoveFromParent();
             };
-            btnFinish.MouseUpEventHandler +=  (sender1, e1) =>
+            btnFinish.MouseUpEventHandler += (sender1, e1) =>
             {
                 if (setTimeType == "DoorLockTime")
-                { 
-                    System.Threading.Tasks.Task.Run(async () => {
-                        try
-                        {
-                            var curDateTime = new DateTime(curYear, curMonth, curDay, curHour, curMin, curSec);
-                            var setTimestamp = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(curDateTime);
-                            Application.RunOnMainThread(() => {
-                                CommonPage.Loading.Start(""); 
-                            });
-                            var rectifyResult = await doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp));
-                            if (rectifyResult != null && rectifyResult.setWritableValueResponData != null)
-                            {
-                                Application.RunOnMainThread(() => {
-                                    if (rectifyResult.setWritableValueResponData.Status == 0)
-                                    {
-                                        doorLock.ReadAttri(ZigBee.Device.Cluster_ID.DoorLock, ZigBee.Device.AttriButeId.DoorLock);
-                                        System.Threading.Thread.Sleep(1000);
-                                        this.shadowRadiusFrameLayout.RemoveFromParent();
-                                    }
-                                    else
-                                    {
-                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RectifyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
-                                    }
-                                }); 
-                            }
-                            else
-                            {
-                                Application.RunOnMainThread(() => {
-                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
-                                }); 
-                            }
-                        }
-                        catch { }
-                        finally
-                        { 
-                            Application.RunOnMainThread(() => { CommonPage.Loading.Hide(); });
-                        }
-                    }); 
+                {
+                    DoorLockTimeFinishHandle();
                 }
             };
             this.shadowRadiusFrameLayout.MouseUpEventHandler += (sender1, e1) =>
             {
                 this.shadowRadiusFrameLayout.RemoveFromParent();
             };
-
             if (setTimeType == "DoorLockTime")
             {
                 if (CurentDoorLockTime != null && CurentDoorLockTime.Year != 1)
@@ -697,30 +364,548 @@
                 }
             }
         }
+        #endregion
 
-        #region  鎺ュ彛瀹炵幇
+        #region 鏃跺尯
         /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
+        /// 娣诲姞銆愰棬閿佹椂闂淬�戣锛堥棬閿佷笓鐢級
         /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
+        private void AddDoorLocksTimeRow(FrameLayout zoneFrameLayout)
         {
+            //闂ㄩ攣鏃堕棿
+            var rowLayout = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(150),
+                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMWhite,
+            };
+            zoneFrameLayout.AddChidren(rowLayout);
+
+            //褰撳墠鏃跺尯
+            var btnCurZone = new Button()
+            {
+                Width = Application.GetRealWidth(560),
+                Height = Application.GetRealHeight(58),
+                X = Application.GetRealWidth(58),
+                TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = 12,
+                Y = Application.GetRealHeight(46),
+                Text = Language.StringByID(R.MyInternationalizationString.CurZone),
+            };
+            rowLayout.AddChidren(btnCurZone);
+
+            //鍝釜鏃跺尯
+            var textZone = new Button()
+            {
+                Width = Application.GetRealWidth(333),
+                Height = Application.GetRealHeight(58),
+                X = Application.GetRealWidth(689),
+                Y = Application.GetRealHeight(46),
+                TextAlignment = TextAlignment.CenterRight,
+                TextColor = Shared.Common.ZigbeeColor.Current.XMGray4,
+                TextSize = 14,
+            };
+            rowLayout.AddChidren(textZone);
+            textZone.Text = zoneData();
+            textZone.MouseDownEventHandler += (sender, e) =>
+            {
+                GetSpecificZoneNowDate();
+            };
+
+            var btnLine = new FrameLayout()
+            {
+                Width = Application.GetRealWidth(965),
+                Height = 1,
+                X = Application.GetRealWidth(58),
+                Y = Application.GetRealHeight(150),
+                BackgroundColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
+            };
+            zoneFrameLayout.AddChidren(btnLine);
+        }
+
+        /// <summary>
+        /// 鏃跺尯鏁版嵁
+        /// </summary>
+        /// <returns></returns>
+        private string zoneData()
+        {
+            string zoneText = "";
+            var gwZone = caculateTimeZone(Common.Config.Instance.Home.Longitude);
+            if (gwZone.Contains('+'))
+            {
+                zoneText = Language.StringByID(R.MyInternationalizationString.East);
+            }
+            else
+            {
+                zoneText = Language.StringByID(R.MyInternationalizationString.West);
+            }
+            var num = ToNum(int.Parse(gwZone));
+            return zoneText += num + Language.StringByID(R.MyInternationalizationString.CurZoneText);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏃跺尯
+        /// <para>currentLon:"+"涓轰笢鍖猴紝鈥�-鈥濅负瑗垮尯</para>
+        /// </summary>
+        public static String caculateTimeZone(double currentLon)
+        {
+            int timeZone;
+            int shangValue = (int)(currentLon / 15);
+            double yushuValue = Math.Abs(currentLon % 15);
+            if (yushuValue <= 7.5)
+            {
+                timeZone = shangValue;
+            }
+            else
+            {
+                timeZone = shangValue + (currentLon > 0 ? 1 : -1);
+            }
+            return timeZone >= 0 ? "+" + Math.Abs(timeZone) : "-" + Math.Abs(timeZone);
+        }
+
+        /// <summary>
+        /// 杞崲鏁板瓧
+        /// </summary>
+        private string ToNum(int x)
+        {
+            var numString = new string[] { "闆�", "涓�", "浜�", "涓�", "鍥�", "浜�", "鍏�", "涓�", "鍏�", "涔�", "鍗�", "鍗佷竴", "鍗佷簩" };
+            var strChnNamesList = new List<string>(numString);
+            return strChnNamesList[x];
+        }
+
+        //濡備綍鏄剧ず鏃跺尯鎵�鍦ㄧ殑鏃堕棿
+        public DateTime GetSpecificZoneNowDate(string zoneName = "")
+        {
+            DateTime curZoneDateTime;
+
+            //聽鍒椾妇鎵�鏈夋敮鎸佺殑鏃跺尯鍒楄〃
+            System.Collections.ObjectModel.ReadOnlyCollection<TimeZoneInfo> lst = TimeZoneInfo.GetSystemTimeZones();
+            foreach (TimeZoneInfo tzi in lst)
+            {
+                var aa = tzi;
+                var aa1 = tzi.Id;
+            }
+            GetSpecificZoneNowDate1();
+            zoneName = "Central聽America聽Standard聽Time";//缇庡浗
+            //灏嗘湰鍦版椂闂磋浆鎹负缇庡浗鏍囧噯涓儴鏃堕棿
+            DateTime dt = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now, TimeZoneInfo.Local);
+            curZoneDateTime = TimeZoneInfo.ConvertTimeFromUtc(dt, TimeZoneInfo.FindSystemTimeZoneById(zoneName));
+
+            zoneName = "China Standard Time";//涓浗
+            //棣栧厛灏嗘湇鍔″櫒鐨勬椂闂磋浆鍖栦负utc鏃堕棿锛�
+            var utcdate = DateTime.Now.ToUniversalTime();
+            //鐒跺悗杞崲鎴愭寚瀹氭椂鍖虹殑鏃ユ湡
+            TimeZoneInfo beiJingZone = TimeZoneInfo.FindSystemTimeZoneById(zoneName);
+            curZoneDateTime = TimeZoneInfo.ConvertTimeFromUtc(utcdate, beiJingZone);
+
+            return curZoneDateTime;
+        }
+
+        public void GetSpecificZoneNowDate1()
+        {
+            // Get time in local time zone
+            DateTime thisTime = DateTime.Now;
+            Console.WriteLine("Time in {0} zone: {1}", TimeZoneInfo.Local.IsDaylightSavingTime(thisTime) ?
+                              TimeZoneInfo.Local.DaylightName : TimeZoneInfo.Local.StandardName, thisTime);
+            Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(thisTime, TimeZoneInfo.Local));
+            // Get Tokyo Standard Time zone
+            TimeZoneInfo tst = TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time");
+            DateTime tstTime = TimeZoneInfo.ConvertTime(thisTime, TimeZoneInfo.Local, tst);
+            Console.WriteLine("Time in {0} zone: {1}", TimeZoneInfo.Local.IsDaylightSavingTime(tstTime) ?
+                              tst.DaylightName : tst.StandardName, tstTime);
+            Console.WriteLine("   UTC Time: {0}", TimeZoneInfo.ConvertTimeToUtc(tstTime, tst));
+        }
+
+
+        #endregion
+
+        #region 闂ㄩ攣鏃堕棿
+        /// <summary>
+        /// 璇诲彇闂ㄩ攣鏃堕棿
+        /// </summary>
+        private void ReadDoorlockTime()
+        {
+            CommonPage.Loading.Start("");
+            // 鍙湁閲嶆柊鍚姩鏃朵細鎱紝鐒跺悗鍏朵粬鏃跺埢閮芥槸鏈夊�肩殑
+            new System.Threading.Thread(() =>
+            {
+                while (this.Parent != null)
+                {
+                    if (DateTime.Now > waitGetDoorLockTime)
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
+                            CommonPage.Loading.Hide();
+                        });
+                    }
+                    //璇婚棬閿佹椂闂�
+                    //绛夊緟10绉掞紝娌℃湁鏀跺埌鎻愮ず瓒呮椂閫�鍑�
+                    waitGetDoorLockTime = DateTime.Now.AddSeconds(+5);
+                    doorLock.ReadAttri(ZigBee.Device.Cluster_ID.DoorLock, ZigBee.Device.AttriButeId.DoorLock);
+                    System.Threading.Thread.Sleep(5 * 1000);
+                }
+            })
+            { IsBackground = true }.Start();
+        }
+
+        /// <summary>
+        /// 闂ㄩ攣鏃堕棿纭鎸夐挳澶勭悊
+        /// </summary>
+        private void DoorLockTimeFinishHandle()
+        {
+            System.Threading.Tasks.Task.Run(async () =>
+            {
+                try
+                {
+                    var curDateTime = new DateTime(curYear, curMonth, curDay, curHour, curMin, curSec);
+                    var setTimestamp = Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(curDateTime);
+                    Application.RunOnMainThread(() =>
+                    {
+                        CommonPage.Loading.Start("");
+                    });
+                    var rectifyResult = await doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp));
+                    if (rectifyResult != null && rectifyResult.setWritableValueResponData != null)
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            if (rectifyResult.setWritableValueResponData.Status == 0)
+                            {
+                                doorLock.ReadAttri(ZigBee.Device.Cluster_ID.DoorLock, ZigBee.Device.AttriButeId.DoorLock);
+                                System.Threading.Thread.Sleep(1000);
+                                this.shadowRadiusFrameLayout.RemoveFromParent();
+                            }
+                            else
+                            {
+                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RectifyFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                            }
+                        });
+                    }
+                    else
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish);
+                        });
+                    }
+                }
+                catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() => { CommonPage.Loading.Hide(); });
+                }
+            });
 
         }
+        #endregion
+
+        #region 鍏叡浜嬩欢澶勭悊
         /// <summary>
-        /// Changeds the IL ogic status.
+        /// 浜嬩欢澶勭悊
         /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
+        private void ClickHandle(int curIndex, DateTime dtNow)
         {
+            this.midFrameLayout.AddChidren(this.shadowRadiusFrameLayout);
+            this.bottomRadiusFrameLayout.RemoveAll();
+            this.BottomRadiusFrameLayout(this);
+            var mUIPickerView = new UIPickerView()
+            {
+                X = Application.GetRealWidth(0),
+                Height = Application.GetRealHeight(440),
+            };
+            this.bottomRadiusFrameLayout.AddChidren(mUIPickerView);
+
+            if (curIndex == 0)
+            {
+                //鏃ユ湡
+                if (setTimeType != "DoorLockTime")
+                {
+                    this.btnBottomTitle.TextID = R.MyInternationalizationString.Date;
+                }
+                else
+                {
+                    this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentDate;
+                }
+
+                mUIPickerView.Y = Application.GetRealWidth(245);
+                var mList1 = new List<string>();
+                var mList2 = new List<string>();
+                var mList3 = new List<string>();
+                var oldMonth = dtNow.Month;
+
+                int year = dtNow.Year + 1;
+                int days = DateTime.DaysInMonth(dtNow.Year, dtNow.Month);
+
+                for (int y = dtNow.Year - 9; y < dtNow.Year + 1; y++)
+                {
+                    mList1.Add(y.ToString());
+                }
+                for (int m = 1; m < 13; m++)
+                {
+                    if (Language.CurrentLanguage == "Chinese")
+                    {
+                        mList2.Add(m.ToString() + "鏈�");
+                    }
+                    else
+                    {
+                        mList2.Add(m.ToString());
+                    }
+                }
+                for (int d = 1; d < days + 1; d++)
+                {
+                    if (Language.CurrentLanguage == "Chinese")
+                    {
+                        mList3.Add(d.ToString() + "鏃�");
+                    }
+                    else
+                    {
+                        mList3.Add(d.ToString());
+                    }
+                }
+
+                if (setTimeType != "DoorLockTime")
+                {
+                    mUIPickerView.setNPicker(mList2, mList3, null);
+                    mUIPickerView.setCurrentItems(dtNow.Month - 1, dtNow.Day - 1, 0);
+                    curMonth = dtNow.Month;
+                    curDay = dtNow.Day;
+
+                    if (setTimeType == "ValidTime")
+                    {
+                        DoorLockCommonInfo.ValidDateYear = dtNow.Year;
+                        DoorLockCommonInfo.ValidDateMonth = curMonth;
+                        DoorLockCommonInfo.ValidDateDay = curDay;
+                    }
+                    else
+                    {
+                        DoorLockCommonInfo.InValidDateYear = dtNow.Year;
+                        DoorLockCommonInfo.InValidDateMonth = curMonth;
+                        DoorLockCommonInfo.InValidDateDay = curDay;
+                    }
+                    var btnOk = new Button
+                    {
+                        X = Application.GetRealWidth(919),
+                        Y = Application.GetRealHeight(40),
+                        Height = Application.GetRealHeight(58),
+                        Width = Application.GetRealWidth(101),
+                        Text = Language.StringByID(R.MyInternationalizationString.Complete),
+                        TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
+                        TextSize = 14,
+                    };
+                    this.bottomRadiusFrameLayout.AddChidren(btnOk);
+                    btnOk.MouseUpEventHandler += (sender1, e1) =>
+                    {
+                        if (setTimeType == "ValidTime")
+                        {
+                            DoorLockCommonInfo.ValidDateYear = dtNow.Year;
+                            DoorLockCommonInfo.ValidDateMonth = curMonth;
+                            DoorLockCommonInfo.ValidDateDay = curDay;
+                        }
+                        else
+                        {
+                            DoorLockCommonInfo.InValidDateYear = dtNow.Year;
+                            DoorLockCommonInfo.InValidDateMonth = curMonth;
+                            DoorLockCommonInfo.InValidDateDay = curDay;
+                        }
+                        if (timeSetAction != null)
+                        {
+                            timeSetAction();
+                        }
+                        this.shadowRadiusFrameLayout.RemoveFromParent();
+                        MidFrameLayoutContent();
+                    };
+                }
+                else
+                {
+                    mUIPickerView.setNPicker(mList1, mList2, mList3);
+                    mUIPickerView.setCurrentItems(9, dtNow.Month - 1, dtNow.Day - 1);
+                    curYear = dtNow.Year;
+                    curMonth = dtNow.Month;
+                    curDay = dtNow.Day;
+                    if (CurentDoorLockTime != null)
+                    {
+                        curHour = CurentDoorLockTime.Hour;
+                        curMin = CurentDoorLockTime.Minute;
+                        curSec = CurentDoorLockTime.Second;
+                    }
+                    else
+                    {
+                        curHour = dtNow.Hour;
+                        curMin = dtNow.Minute;
+                        curSec = dtNow.Second;
+                    }
+                }
+
+                Action dAction = () =>
+                {
+                    if (curMonth != oldMonth)
+                    {
+                        oldMonth = curMonth;
+                        days = DateTime.DaysInMonth(curYear, curMonth);
+                        mList3.Clear();
+
+                        for (int d = 1; d < days + 1; d++)
+                        {
+                            if (Language.CurrentLanguage == "Chinese")
+                            {
+                                mList3.Add(d.ToString() + "鏃�");
+                            }
+                            else
+                            {
+                                mList3.Add(d.ToString());
+                            }
+                        }
+
+                        if (setTimeType != "DoorLockTime")
+                        {
+                            mUIPickerView.setNPicker(mList2, mList3, null);
+                            mUIPickerView.setCurrentItems(curMonth - 1, curDay - 1, 0);
+                        }
+                        else
+                        {
+                            mUIPickerView.setNPicker(mList1, mList2, mList3);
+                            mUIPickerView.setCurrentItems(9, curMonth - 1, curDay - 1);
+                        }
+                    }
+                };
+                mUIPickerView.OnSelectChangeEvent += (y, m, d) =>
+                {
+                    if (setTimeType != "DoorLockTime")
+                    {
+                        curYear = dtNow.Year;
+                        curMonth = y + 1;
+                        curDay = m + 1;
+                    }
+                    else
+                    {
+                        curYear = y + 2009;
+                        curMonth = m + 1;
+                        curDay = d + 1;
+                    }
+                    dAction();
+                };
+            }
+            if (curIndex == 1)
+            {
+                //鏃堕棿
+                if (setTimeType != "DoorLockTime")
+                {
+                    this.btnBottomTitle.TextID = R.MyInternationalizationString.Time;
+                }
+                else
+                {
+                    this.btnBottomTitle.TextID = R.MyInternationalizationString.CurrentTime;
+                }
+
+                mUIPickerView.Y = Application.GetRealWidth(245);
+                var mList1 = new List<string>();
+                var mList2 = new List<string>();
+                for (int h = 0; h < 24; h++)
+                {
+                    if (h < 10)
+                    {
+                        mList1.Add("0" + h.ToString());
+                    }
+                    else
+                    {
+                        mList1.Add(h.ToString());
+                    }
+                }
+                for (int m = 0; m < 60; m++)
+                {
+                    if (m < 10)
+                    {
+                        mList2.Add("0" + m.ToString());
+                    }
+                    else
+                    {
+                        mList2.Add(m.ToString());
+                    }
+                }
+                mUIPickerView.setNPicker(mList1, mList2, null);
+                mUIPickerView.setCurrentItems(dtNow.Hour, dtNow.Minute, 0);
+                if (CurentDoorLockTime != null)
+                {
+                    curYear = CurentDoorLockTime.Year;
+                    curMonth = CurentDoorLockTime.Month;
+                    curDay = CurentDoorLockTime.Day;
+                }
+                else
+                {
+                    curYear = dtNow.Year;
+                    curMonth = dtNow.Month;
+                    curDay = dtNow.Day;
+                }
+                curHour = dtNow.Hour;
+                curMin = dtNow.Minute;
+                curSec = dtNow.Second;
+                mUIPickerView.OnSelectChangeEvent += (h, m, s) =>
+                {
+                    curHour = h;
+                    curMin = m;
+                    curSec = dtNow.Second;
+                };
+
+                if (setTimeType == "ValidTime")
+                {
+                    DoorLockCommonInfo.ValidDateHour = curHour;
+                    DoorLockCommonInfo.ValidDateMinute = curMin;
+                    DoorLockCommonInfo.ValidDateSecond = curSec;
+                }
+                else
+                {
+                    DoorLockCommonInfo.InValidDateHour = curHour;
+                    DoorLockCommonInfo.InValidDateMinute = curMin;
+                    DoorLockCommonInfo.InValidDateSecond = curSec;
+                }
+
+                if (setTimeType != "DoorLockTime")
+                {
+                    var btnOk = new Button
+                    {
+                        X = Application.GetRealWidth(919),
+                        Y = Application.GetRealHeight(40),
+                        Height = Application.GetRealHeight(58),
+                        Width = Application.GetRealWidth(101),
+                        Text = Language.StringByID(R.MyInternationalizationString.Complete),
+                        TextColor = Shared.Common.ZigbeeColor.Current.XMOrange,
+                        TextSize = 14,
+                    };
+                    this.bottomRadiusFrameLayout.AddChidren(btnOk);
+                    btnOk.MouseUpEventHandler += (sender1, e1) =>
+                    {
+                        if (setTimeType == "ValidTime")
+                        {
+                            DoorLockCommonInfo.ValidDateHour = curHour;
+                            DoorLockCommonInfo.ValidDateMinute = curMin;
+                            DoorLockCommonInfo.ValidDateSecond = curSec;
+                        }
+                        else
+                        {
+                            DoorLockCommonInfo.InValidDateHour = curHour;
+                            DoorLockCommonInfo.InValidDateMinute = curMin;
+                            DoorLockCommonInfo.InValidDateSecond = curSec;
+                        }
+                        if (timeSetAction != null)
+                        {
+                            timeSetAction();
+                        }
+                        this.shadowRadiusFrameLayout.RemoveFromParent();
+                        MidFrameLayoutContent();
+                    };
+                }
+            }
         }
+        #endregion
+
+        #region 绉婚櫎鏂规硶
         /// <summary>
-        /// Changeds the IS cene status.
+        /// 閲嶅啓绉婚櫎鏂规硶
         /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
+        public override void RemoveFromParent()
         {
+            ZbGateway.StatusList.Remove(this);
+            base.RemoveFromParent();
         }
         #endregion
     }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs
index a4368dc..5be1370 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UnLockMethod.cs
@@ -807,16 +807,5 @@
             ZbGateway.StatusList.Remove(this);
             base.RemoveFromParent();
         }
-
-        public void Changed(CommonDevice common)
-        {
-        }
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-
-        public void ChangedISceneStatus(Scene scene)
-        {
-        }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs
index 8c997e0..124bfdc 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UndistributeDoorlockUserPage.cs
@@ -4,7 +4,7 @@
 using ZigBee.Device;
 namespace Shared.Phone.UserCenter.DoorLock
 {
-    public class UndistributeDoorlockUserPage : DoorLockCommonLayout, ZigBee.Common.IStatus
+    public class UndistributeDoorlockUserPage : DoorLockCommonLayout
     {
         /// <summary>
         /// 鏋勯�犲嚱鏁�
@@ -17,7 +17,7 @@
             BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
         }
 
-        #region 鍙橀噺鐢虫槑 
+        #region 鍙橀噺鐢虫槑
         /// <summary>
         /// 褰撳墠闂ㄩ攣
         /// </summary>
@@ -130,7 +130,7 @@
                 IsBold = true,
             };
             midTopFrameLayout.AddChidren(btnAllMethod);
-            // 绫诲瀷鍖哄垎 
+            // 绫诲瀷鍖哄垎
             if (doorLock.currentUserDisplayMethod == Language.StringByID(R.MyInternationalizationString.AllMethod))
             {
                 btnAllMethod.Text = Language.StringByID(R.MyInternationalizationString.AllMethod);
@@ -342,7 +342,7 @@
 
         /// <summary>
         /// 鍒嗛厤鏈湴璐︽埛
-        /// </summary> 
+        /// </summary>
         void MatchUsersFrameLayout(ZigBee.Device.DoorLock.LocaDoorLockObj curDoorLockUser)
         {
             #region  UI
@@ -673,7 +673,7 @@
 
         /// <summary>
         /// 渚ц竟瀵艰埅鏍忔悳绱�
-        /// </summary> 
+        /// </summary>
         void SideslipFramelayout()
         {
             #region sidelipFrameLayout UI
@@ -794,7 +794,7 @@
         }
 
         /// <summary>
-        /// 绫诲瀷鍖哄垎 
+        /// 绫诲瀷鍖哄垎
         /// </summary>
         void TypeRefresh()
         {
@@ -815,38 +815,5 @@
                 RefreshList();
             }
         }
-        #region 鎺ュ彛瀹炵幇
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-
-        }
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢
-        /// </summary>
-        /// <param name="common"></param>
-        /// <param name="typeTag"></param>
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-        }
-        #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
index dd33da8..062c187 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -1,4 +1,6 @@
 锘縰sing System;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
 using Shared.Common;
 using ZigBee.Device;
 
@@ -6,6 +8,7 @@
 {
     public class UserDoorLockPage : DoorLockCommonLayout, ZigBee.Common.IStatus
     {
+        #region 鐣岄潰
         /// <summary>
         ///  鏋勯�犲嚱鏁�
         /// </summary>
@@ -17,22 +20,50 @@
             currentRoom = room;
             deviceUI = doorLock;
             BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCTopViewBackgroundColor;
-            ZigBee.Device.ZbGateway.StatusList.Add(this);
+            ZbGateway.StatusList.Add(this);
         }
 
         #region  鍙橀噺鐢虫槑
         /// <summary>
+        /// IsDrawerLockMode
+        /// </summary>
+        public bool IsDrawerLockMode;
+        /// <summary>
         /// 褰撳墠闂ㄩ攣
         /// </summary>
         ZigBee.Device.DoorLock doorLock;
         /// <summary>
-        /// 搴曢儴甯冨眬
+        /// 闊抽噺鏁版嵁
         /// </summary>
-        FrameLayout bottomFrameLayout;
+        ZigBee.Device.DoorLock.VolumeResponseData volumeData = null;
+        /// <summary>
+        /// 绛夊緟鑾峰彇鐢甸噺鐨勭瓑寰呮椂闂�
+        /// </summary>
+        DateTime waitGetDoorLockPower = DateTime.MaxValue;
+        /// <summary>
+        /// 閫昏緫涓槸鍚︽湁甯稿紑妯″紡
+        /// </summary>
+        private bool HaveLogicNormallyOpenMode = false;
+        /// <summary>
+        /// 褰撳墠鐢甸噺
+        /// </summary>
+        bool canVolume = false;
+        /// <summary>
+        /// 淇濈暀涓婁竴娆¢煶閲�
+        /// </summary>
+        bool canOpenNormallyMode = false;
+        /// <summary>
+        /// 褰撳墠鐢甸噺
+        /// </summary>
+        int currentPower = 0;
+        /// <summary>
+        /// 淇濈暀涓婁竴娆¢煶閲�
+        /// </summary>
+        int oldVolume = -1;
         /// <summary>
         /// 褰撳墠鎴块棿
         /// </summary>
-        Shared.Common.Room currentRoom;
+        Room currentRoom;
         /// <summary>
         /// 璁惧UI瀵硅薄
         /// </summary>
@@ -45,23 +76,109 @@
         /// 涓儴甯冨眬涓棬閿佸悕绉版樉绀�
         /// </summary>
         Button btnDoorLockTitle;
+        /// <summary>
+        /// 鍒嗕韩
+        /// </summary>
+        Button btnShare;
+        /// <summary>
+        /// 璁剧疆
+        /// </summary>
+        Button btnFuncSet;
+        /// <summary>
+        /// 璁剧疆FrameLayout
+        /// </summary>
+        FrameLayout btnFuncSetFrameLayout;
+        /// <summary>
+        /// 鐐瑰嚮寮�甯冨眬
+        /// </summary>
+        private FrameLayout openFrameLayout;
+        /// <summary>
+        /// 鐐瑰嚮鍏冲竷灞�
+        /// </summary>
+        private FrameLayout closeFrameLayout;
+        /// <summary>
+        /// 鎵撳紑鍥剧墖
+        /// </summary>
+        Button btnDoorOpenPic;
+        /// <summary>
+        /// 鎼滆棌UI
+        /// </summary>
+        FrameLayout btnCollectFrameLayout;
+        /// <summary>
+        /// 鎼滆棌
+        /// </summary>
+        Button btnCollect;
+        /// <summary>
+        /// 璁板綍UI
+        /// </summary>
+        FrameLayout btnRecordFrameLayout;
+        /// <summary>
+        /// 璁板綍鎸夐挳
+        /// </summary>
+        Button btnRecord;
+        /// <summary>
+        /// 褰撳墠鐘舵��
+        /// </summary>
+        Button btnStatus;
+        /// <summary>
+        /// 褰撳墠鐢甸噺鏂囨湰
+        /// </summary>
+        Button btnCurrentPowerText;
+        /// <summary>
+        /// 杩涘害鎸夐挳
+        /// </summary>
+        Button progressButton;
+        /// <summary>
+        /// 杩涘害
+        /// </summary>
+        DiyImageVerticalSeekBar diyImageVerticalSeekBar;
+        /// <summary>
+        /// 杩涘害鏂囨湰
+        /// </summary>
+        Button progressText;
+        /// <summary>
+        /// 闂ㄩ攣鍏冲浘鐗�
+        /// </summary>
+        Button btnDoorClosePic;
+        /// <summary>
+        /// 闂ㄩ攣寮�/鍏冲浘鐗�
+        /// </summary>
+        Button btnDoorLockPic;
+        /// <summary>
+        /// 鐢甸噺
+        /// </summary>
+        Button btnPower;
+        /// <summary>
+        /// 甯稿紑
+        /// </summary>
+        Button btnNormallyOpen;
+        /// <summary>
+        /// 闊抽噺
+        /// </summary>
+        Button btnVolume;
+        /// <summary>
+        /// 甯稿紑FrameLayout
+        /// </summary>
+        FrameLayout btnNormallyOpenFrameLayout;
+        /// <summary>
+        /// 闊抽噺FrameLayout
+        /// </summary>
+        FrameLayout btnVolumeFrameLayout;
+        /// <summary>
+        /// 聽褰撳墠闊抽噺
+        /// </summary>
+        int currentVolume = -1;
         #endregion
 
         /// <summary>
-        /// UI鏄剧ず 
+        /// UI鏄剧ず
         /// </summary>
         public void Show()
-        {
-            this.TopFrameLayout(this, ""); 
-            EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
-            {
-                RemoveFromParent();
-            };
-            this.btnBack.MouseUpEventHandler += eHandlerBack;
-            this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
-
+        {
+            this.TopFrameLayout(this, "");
             this.MidFrameLayout(this);
-            var btnShare = new Button
+
+            btnShare = new Button
             {
                 X = Application.GetRealWidth(850 - 116),
                 Height = Application.GetRealHeight(69),
@@ -69,7 +186,7 @@
             };
             this.titleFrameLayout.AddChidren(btnShare);
 
-            var btnFuncSetFrameLayout = new FrameLayout
+            btnFuncSetFrameLayout = new FrameLayout
             {
                 X = Application.GetRealWidth(850 - 116),
                 Height = Application.GetRealHeight(69),
@@ -77,7 +194,7 @@
             };
             this.titleFrameLayout.AddChidren(btnFuncSetFrameLayout);
 
-            var btnFuncSet = new Button
+            btnFuncSet = new Button
             {
                 X = Application.GetRealWidth(103),
                 Height = Application.GetRealHeight(69),
@@ -85,34 +202,22 @@
                 UnSelectedImagePath = "DoorLock/SettingIcon.png",
             };
             btnFuncSetFrameLayout.AddChidren(btnFuncSet);
-            EventHandler<MouseEventArgs> btnFuncSetHander = (sender, e) =>
+
+            MidFrameLayoutUI();
+
+            ClickHandle();
+
+            if (doorLock.IsOnline == 1)
             {
-                var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(doorLock);
-                Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
-                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                functionSetting.Show();
-                functionSetting.devicNameAction += (deviceRename) =>
-                {
-                    if (!string.IsNullOrEmpty(deviceRename))
-                    {
-                        btnDoorLockTitle.Text = deviceRename;
-                        //鏀规埧闂�
-                        HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
-                        deviceUI.ReSave();
-                    }
-                };
-            };
-            btnFuncSetFrameLayout.MouseDownEventHandler += btnFuncSetHander;
-            btnFuncSet.MouseDownEventHandler += btnFuncSetHander;
- 
-            MidFrameLayoutContent();
+                ReadDoorLockUserInfo();
+            }
         }
+
         /// <summary>
         /// 涓儴甯冨眬
         /// </summary>
-        public void MidFrameLayoutContent()
+        public void MidFrameLayoutUI()
         {
-            #region UI
             var midTopFrameLayout = new FrameLayout()
             {
                 X = Application.GetRealWidth(58),
@@ -124,6 +229,7 @@
             };
             this.midFrameLayout.AddChidren(midTopFrameLayout);
 
+            //闂ㄩ攣鏍囬
             btnDoorLockTitle = new Button()
             {
                 Width = Application.GetRealWidth(250),
@@ -136,18 +242,26 @@
                 IsBold = true,
             };
             midTopFrameLayout.AddChidren(btnDoorLockTitle);
-            //鑾峰彇Mac鍚嶅瓧 
+            //鑾峰彇Mac鍚嶅瓧
             btnDoorLockTitle.Text = Common.LocalDevice.Current.GetDeviceMacName(doorLock);
 
             var btnRecordFrameLayout = new FrameLayout()
             {
                 Width = Application.GetRealWidth(69+15+46),
                 Height = Application.GetRealHeight(69+46 * 2),
-                X = Application.GetRealWidth(752-46), 
+                X = Application.GetRealWidth(752-46),
              };
             midTopFrameLayout.AddChidren(btnRecordFrameLayout);
 
-            var btnRecord = new Button()
+            //璁板綍
+            btnRecordFrameLayout = new FrameLayout()
+            {
+                Width = Application.GetRealWidth(69 + 15 + 46),
+                Height = Application.GetRealHeight(69 + 46 * 2),
+                X = Application.GetRealWidth(752 - 46),
+            };
+            midTopFrameLayout.AddChidren(btnRecordFrameLayout);
+            btnRecord = new Button()
             {
                 Width = Application.GetRealWidth(69),
                 Height = Application.GetRealHeight(69),
@@ -156,23 +270,16 @@
                 UnSelectedImagePath = "DoorLock/RecordIcon.png",
             };
             btnRecordFrameLayout.AddChidren(btnRecord);
-            EventHandler<MouseEventArgs> handerRecord = (sender, e) =>
-            {
-                //鍘嗗彶璁板綍 ----   stan
-                var form = new DeviceDoorLock.DoorLockHistoryLogForm();
-                form.AddForm(this.doorLock.DeviceAddr);
-            };
-            btnRecordFrameLayout.MouseDownEventHandler += handerRecord;
-            btnRecord.MouseDownEventHandler += handerRecord;
-            var btnCollectFrameLayout = new FrameLayout()
-            {
-                Width = Application.GetRealWidth(69+15+46),
-                Height = Application.GetRealHeight(69+46*2),
-                X = Application.GetRealWidth(850-15), 
-             };
-            midTopFrameLayout.AddChidren(btnCollectFrameLayout);
 
-            var btnCollect = new Button()
+            //鎼滆棌UI
+            btnCollectFrameLayout = new FrameLayout()
+            {
+                Width = Application.GetRealWidth(69 + 15 + 46),
+                Height = Application.GetRealHeight(69 + 46 * 2),
+                X = Application.GetRealWidth(850 - 15),
+            };
+            midTopFrameLayout.AddChidren(btnCollectFrameLayout);
+            btnCollect = new Button()
             {
                 Width = Application.GetRealWidth(69),
                 Height = Application.GetRealHeight(69),
@@ -182,55 +289,36 @@
                 SelectedImagePath = "Item/CollectionSelected.png"
             };
             btnCollectFrameLayout.AddChidren(btnCollect);
-            if (HdlRoomLogic.Current.IsCollectInRoom(deviceUI) == false)
-            {
-                btnCollect.IsSelected = false;
-            }
-            else
-            {
-                btnCollect.IsSelected = true;
-            }
-            EventHandler < MouseEventArgs > handerCollect = (sender, e) =>
+
+            //褰撳墠鐘舵��
+            btnStatus = new Button()
             {
-                btnCollect.IsSelected = !btnCollect.IsSelected;
-                if (btnCollect.IsSelected)
-                {
-                    HdlRoomLogic.Current.AddLoveDevice(deviceUI);//鏀惰棌
-                }
-                else
-                {
-                    HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);//鍙栨秷鏀惰棌
-                }
-            };
-            btnCollectFrameLayout.MouseDownEventHandler += handerCollect;
-            btnCollect.MouseDownEventHandler += handerCollect;
-            var btnCurrentText = new Button()
-            {
-                Width = Application.GetRealWidth(100),
+                Width = Application.GetRealWidth(132 + 351),
                 Height = Application.GetRealHeight(40),
-                X = Application.GetRealWidth(415),
                 Y = Application.GetRealHeight(118),
-                Text = Language.StringByID(R.MyInternationalizationString.Current),
+                Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.CLose),
                 TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
                 TextSize = 10,
-                TextAlignment = TextAlignment.CenterLeft,
-            };
-            midTopFrameLayout.AddChidren(btnCurrentText);
-
-            var btnStatus = new Button()
-            {
-                Width = Application.GetRealWidth(200),
-                Height = Application.GetRealHeight(40),
-                X = btnCurrentText.Right,
-                Y = Application.GetRealHeight(118),
-                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                Text = Language.StringByID(R.MyInternationalizationString.CLose),
-                TextSize = 10,
-                TextAlignment = TextAlignment.CenterLeft,
+                TextAlignment = TextAlignment.CenterRight,
             };
             midTopFrameLayout.AddChidren(btnStatus);
 
-            var btnDoorLockPic = new Button()
+            //褰撳墠鐢甸噺
+            btnCurrentPowerText = new Button()
+            {
+                Width = Application.GetRealWidth(133 + 348),
+                Height = Application.GetRealHeight(40),
+                X = btnStatus.Right,
+                Y = Application.GetRealHeight(118),
+                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+                Text = Language.StringByID(R.MyInternationalizationString.DoorLockPower) + "%",
+                TextSize = 10,
+                TextAlignment = TextAlignment.CenterLeft,
+            };
+            midTopFrameLayout.AddChidren(btnCurrentPowerText);
+
+            //闂ㄩ攣寮�/鍏冲浘鐗�
+            btnDoorLockPic = new Button()
             {
                 Width = Application.GetRealWidth(383),
                 Height = Application.GetRealHeight(343),
@@ -241,6 +329,7 @@
             };
             midTopFrameLayout.AddChidren(btnDoorLockPic);
 
+            #region 寮�/鍏崇偣鍑诲竷灞�
             var btnFrameLayout = new FrameLayout()
             {
                 Width = Application.GetRealWidth(420 - 46),
@@ -251,7 +340,7 @@
             };
             midTopFrameLayout.AddChidren(btnFrameLayout);
 
-            var openFrameLayout = new FrameLayout()
+            openFrameLayout = new FrameLayout()
             {
                 Width = Application.GetRealWidth(420),//639-35
                 Height = Application.GetRealHeight(446 / 2),
@@ -259,7 +348,7 @@
             };
             btnFrameLayout.AddChidren(openFrameLayout);
 
-            var closeFrameLayout = new FrameLayout()
+            closeFrameLayout = new FrameLayout()
             {
                 Width = Application.GetRealWidth(420),//639-35
                 Height = Application.GetRealHeight(446 / 2),
@@ -278,18 +367,17 @@
             };
             btnFrameLayout.AddChidren(progressFrameLayout);
 
-            var progressButton = new Button()
+            progressButton = new Button()
             {
-                Width = Application.GetRealWidth(81),//639-35
-                Height = Application.GetRealHeight(89),
+                Width = Application.GetRealWidth(84),//639-35
+                Height = Application.GetRealHeight(93),
                 X = Application.GetRealWidth(58),
                 Y = Application.GetRealHeight(347),
                 UnSelectedImagePath = "DoorLock/UnLockButton.png",
-                SelectedImagePath = "DoorLock/UnLockButton.png",
             };
             btnFrameLayout.AddChidren(progressButton);
 
-            var btnDoorOpenPic = new Button()
+            btnDoorOpenPic = new Button()
             {
                 Width = Application.GetRealWidth(81),
                 Height = Application.GetRealHeight(81),
@@ -299,7 +387,7 @@
             };
             openFrameLayout.AddChidren(btnDoorOpenPic);
 
-            var btnDoorClosePic = new Button()
+            btnDoorClosePic = new Button()
             {
                 Width = Application.GetRealWidth(81),
                 Height = Application.GetRealHeight(81),
@@ -308,6 +396,68 @@
                 UnSelectedImagePath = "DoorLock/DoorLockClose.png",
             };
             closeFrameLayout.AddChidren(btnDoorClosePic);
+            #endregion
+
+            //鐢甸噺
+            btnPower = new Button()
+            {
+                Width = Application.GetRealWidth(81),
+                Height = Application.GetRealHeight(81),
+                X = Application.GetRealWidth(253),
+                Y = Application.GetRealHeight(994),
+                UnSelectedImagePath = "DoorLock/PowerOffline.png",
+            };
+            midTopFrameLayout.AddChidren(btnPower);
+
+            //闊抽噺
+            btnVolumeFrameLayout = new FrameLayout()
+            {
+                Width = Application.GetRealWidth(81 + 80),
+                Height = Application.GetRealHeight(81 + 80),
+                X = Application.GetRealWidth(444 - 40),
+                Y = Application.GetRealHeight(994 - 40),
+            };
+            midTopFrameLayout.AddChidren(btnVolumeFrameLayout);
+            btnVolume = new Button()
+            {
+                Width = Application.GetRealWidth(81),
+                Height = Application.GetRealHeight(81),
+                X = Application.GetRealWidth(40),
+                Y = Application.GetRealHeight(40),
+                UnSelectedImagePath = "DoorLock/VolumeIcon.png",
+                SelectedImagePath = "DoorLock/VolumeIconOn.png",
+            };
+            btnVolumeFrameLayout.AddChidren(btnVolume);
+
+            //甯稿紑
+            btnNormallyOpenFrameLayout = new FrameLayout()
+            {
+                Width = Application.GetRealWidth(81 + 80),
+                Height = Application.GetRealHeight(81 + 80),
+                X = Application.GetRealWidth(631 - 40),
+                Y = Application.GetRealHeight(994 - 40),
+            };
+            midTopFrameLayout.AddChidren(btnNormallyOpenFrameLayout);
+            btnNormallyOpen = new Button()
+            {
+                Width = Application.GetRealWidth(81),
+                Height = Application.GetRealHeight(81),
+                X = Application.GetRealWidth(40),
+                Y = Application.GetRealHeight(40),
+                UnSelectedImagePath = "DoorLock/NormallyOpen.png",
+                SelectedImagePath = "DoorLock/NormallyOpenOn.png",
+            };
+            btnNormallyOpenFrameLayout.AddChidren(btnNormallyOpen);
+
+            #region 鑳屾櫙鍦嗚璁剧疆
+            var btnCurrentTopFrameLayout = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(50),
+                Width = Application.GetRealWidth(965),
+                BackgroundColor = ZigbeeColor.Current.XMBlack,
+                Y = Application.GetRealHeight(1100),
+            };
+            midTopFrameLayout.AddChidren(btnCurrentTopFrameLayout);
 
             var btnCurrentTopFrameLayout = new FrameLayout()
             {
@@ -327,7 +477,9 @@
                 Radius = 6,
             };
             midTopFrameLayout.AddChidren(btnCurrentFrameLayout);
+            #endregion
 
+            #region 褰撳墠鎴块棿
             var btnCurrentRoomPic = new Button()
             {
                 Width = Application.GetRealWidth(81),
@@ -351,108 +503,774 @@
             };
             btnCurrentFrameLayout.AddChidren(btnCurrentRoomName);
             #endregion
+        }
 
-            #region 鏁版嵁澶勭悊
+        #region 闊抽噺寮圭獥
+        /// <summary>
+        /// 杩涘害鏉�
+        /// </summary>
+        private void VolumeDialog(Button progressText, DiyImageVerticalSeekBar diyImageVerticalSeekBar)
+        {
+            var dialog = new Dialog { };
+            dialog.Show();
+            var flMain = new FrameLayout { BackgroundColor = 0x00000000 };
+            dialog.AddChidren(flMain);
+            flMain.MouseUpEventHandler += (sender11, e11) =>
+            {
+                dialog.Close();
+
+                //璁剧疆闊抽噺
+                if (currentVolume != oldVolume)
+                {
+                    SetVolume(currentVolume);
+                }
+            };
+
+            var progressBackground = new FrameLayout()
+            {
+                Width = Application.GetRealWidth(271),
+                Height = Application.GetRealHeight(700),
+                X = Application.GetRealWidth(403),
+                Y = Application.GetRealHeight(582),
+                BackgroundImagePath = "DoorLock/ProgressBackground.png",
+            };
+            flMain.AddChidren(progressBackground);
+
+            progressText = new Button()
+            {
+                Height = Application.GetRealHeight(58),
+                Y = Application.GetRealHeight(89),
+                TextColor = ZigbeeColor.Current.XMGray2,
+                TextAlignment = TextAlignment.Center,
+                Text = currentVolume.ToString(),
+            };
+
+            diyImageVerticalSeekBar = new DiyImageVerticalSeekBar()
+            {
+                Width = Application.GetRealWidth(271),
+                Height = Application.GetRealHeight(447 + 63),
+                Y = Application.GetRealHeight(155),
+                IsProgressTextShow = false,//鏄剧ず鐧惧垎姣�
+                ProgressBarColor = ZigbeeColor.Current.XMProgressBarColor,//閫変腑杩涘害鏉¢鑹�
+                SeekBarBackgroundColor = ZigbeeColor.Current.XMSeekBarBackgroundColor,//閫変腑杩涘害鏉¢鑹�
+                ThumbImagePath = "DoorLock/UnLockButton.png",//杩涘害鏉℃寜閽浘鏍�
+                ThumbImageHeight = Application.GetRealHeight(81),//杩涘害鏉℃寜閽浘鏍囩殑楂樺害锛堥粯璁ゆ鏂瑰舰锛氬鍜岄珮涓�鏍凤級
+                ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor,
+                ProgressTextSize = 12,//鏄剧ず鐧惧垎姣斿瓧浣撳ぇ灏�
+                SeekBarViewHeight = Application.GetRealHeight(17),//杩涘害鏉$殑瀹藉害
+                Progress = (currentVolume * (Convert.ToInt32(((float)100 / 15) * 100))) / 100,
+            };
+            progressBackground.AddChidren(progressText);
+            progressBackground.AddChidren(diyImageVerticalSeekBar);
+            diyImageVerticalSeekBar.OnProgressChangedEvent += (sender, e) =>
+            {
+                int curVolume = -1;
+                if (e == 0)
+                {
+                    curVolume = 0;
+                }
+                else if (e == 100)
+                {
+                    curVolume = 14;
+                }
+                else
+                {
+                    int comandValue = e;
+                    int comandValueTemp = (comandValue * 100) / (Convert.ToInt32(((float)100 / 15) * 100));
+                    curVolume = comandValueTemp;
+                }
+                currentVolume = curVolume;
+                progressText.Text = curVolume.ToString();
+            };
+        }
+
+        #endregion
+        #endregion
+
+        #region 澶勭悊鎺ュ彛鏁版嵁
+        /// <summary>
+        /// 澶勭悊鍙樺寲浜嬩欢
+        /// </summary>
+        /// <param name="common"></param>
+        /// <param name="typeTag"></param>
+        public void DeviceInfoChange(CommonDevice tempDevice, string typeTag)
+        {
+            //鏈烘寮�閿佷笂鎶ャ�傚鐞嗗父寮�鐘舵�侊紝寮�鍏崇姸鎬�
+            if (typeTag == "DoorLockProgrammingEventNotificationCommand" && tempDevice != null)
+            {
+                var tempDoor = (ZigBee.Device.DoorLock)tempDevice;
+                if (tempDoor.doorLockOperatingEventNotificationCommand != null)
+                {
+                    Application.RunOnMainThread(() => { NomallyOpenModeInvalidDialog(true); });
+                }
+            }
+
+            if (typeTag == "DeviceStatusReport" && tempDevice != null)
+            {
+                if (tempDevice != null)
+                {
+                    if (tempDevice.DeviceEpoint == doorLock.DeviceEpoint
+                                      && tempDevice.DeviceAddr == doorLock.DeviceAddr)
+                    {
+                        if (tempDevice.DeviceStatusReport != null && tempDevice.DeviceStatusReport.AttriBute != null)
+                        {
+                            var dataReport = tempDevice.DeviceStatusReport.AttriBute[0];
+                            if (tempDevice.DeviceStatusReport.CluterID == 1 && dataReport.AttributeId == 33)
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    currentPower = dataReport.AttriButeData;
+                                    waitGetDoorLockPower = DateTime.MaxValue;
+                                    UpdatePower();
+                                });
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨暟鎹�
+        /// </summary>
+        void ReadDoorLockUserInfo()
+        {
+            System.Threading.Tasks.Task.Run(async () =>
+            {
+                try
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        CommonPage.Loading.Start("");
+                    });
+                    //鏄惁鏀寔甯稿紑
+                    canOpenNormallyMode = DoorLockCommonInfo.CanNormallyOpen(doorLock);
+                    //鏄惁鏀寔闊抽噺
+                    canVolume = DoorLockCommonInfo.CanVolume(doorLock);
+                    //璇诲彇闂ㄩ攣鐢甸噺锛氱皣ID锛�1 灞炴�D 33
+                    doorLock.ReadAttri(Cluster_ID.Power, AttriButeId.DoorLockPower);
+                    //涓婃姤鐢甸噺绛�1绉�
+                    System.Threading.Thread.Sleep(1000);
+                    //鑾峰彇闂ㄩ攣甯稿紑妯″紡
+                    await DoorLockCommonInfo.GetNormallyOpenMode(doorLock);
+                    //璇诲彇闊抽噺
+                    ReadVolume();
+                }
+                catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        UpdateNomallyOpenStatus();
+                        CommonPage.Loading.Hide();
+                    });
+                }
+            });
+        }
+
+        #endregion
+
+        #region 鍏叡浜嬩欢澶勭悊
+        /// <summary>
+        /// 浜嬩欢澶勭悊
+        /// </summary>
+        public void ClickHandle()
+        {
+            //闂ㄩ攣鏍囬
+            btnDoorLockTitle.Text = Common.LocalDevice.Current.GetDeviceMacName(doorLock);
+
+            //杩斿洖
+            EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
+            {
+                RemoveFromParent();
+            };
+            this.btnBack.MouseUpEventHandler += eHandlerBack;
+            this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
+
+            //璁剧疆
+            EventHandler<MouseEventArgs> btnFuncSetHander = (sender, e) =>
+            {
+                var functionSetting = new Shared.Phone.UserCenter.DoorLock.FunctionSetting(doorLock);
+                Shared.Phone.UserView.HomePage.Instance.AddChidren(functionSetting);
+                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                functionSetting.Show();
+                functionSetting.devicNameAction += (deviceRename) =>
+                {
+                    if (!string.IsNullOrEmpty(deviceRename))
+                    {
+                        btnDoorLockTitle.Text = deviceRename;
+                        //鏀规埧闂�
+                        HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
+                        deviceUI.ReSave();
+                    }
+                };
+            };
+            btnFuncSetFrameLayout.MouseDownEventHandler += btnFuncSetHander;
+            btnFuncSet.MouseDownEventHandler += btnFuncSetHander;
+
+            //鎼滆棌鐘舵��
+            if (HdlRoomLogic.Current.IsCollectInRoom(deviceUI) == false)
+            {
+                btnCollect.IsSelected = false;
+            }
+            else
+            {
+                btnCollect.IsSelected = true;
+            }
+
+            //鍘嗗彶璁板綍鐐瑰嚮浜嬩欢
+            EventHandler<MouseEventArgs> handerRecord = (sender, e) =>
+            {
+                //鍘嗗彶璁板綍 ----   stan
+                var form = new DeviceDoorLock.DoorLockHistoryLogForm();
+                form.AddForm(this.doorLock.DeviceAddr);
+            };
+            btnRecordFrameLayout.MouseDownEventHandler += handerRecord;
+            btnRecord.MouseDownEventHandler += handerRecord;
+
+            //鏀惰棌鐐瑰嚮浜嬩欢
+            EventHandler<MouseEventArgs> handerCollect = (sender, e) =>
+            {
+                btnCollect.IsSelected = !btnCollect.IsSelected;
+                if (btnCollect.IsSelected)
+                {
+                    HdlRoomLogic.Current.AddLoveDevice(deviceUI);//鏀惰棌
+                    //Test
+                    HaveLogicNormallyOpenMode = true;
+                }
+                else
+                {
+                    HdlRoomLogic.Current.DeleteLoveDevice(deviceUI);//鍙栨秷鏀惰棌
+                    //Test
+                    HaveLogicNormallyOpenMode = false;
+                }
+            };
+            btnCollectFrameLayout.MouseDownEventHandler += handerCollect;
+            btnCollect.MouseDownEventHandler += handerCollect;
+
+            //寮�閿佷簨浠�
             EventHandler<MouseEventArgs> hander1 = async (sender, e) =>
             {
-                openFrameLayout.Enable = false;
-                btnDoorOpenPic.Enable = false;
+                if (DoorLockCommonInfo.IsDoorLockNormallyMode == true)
+                {
+                    string msg0 = Language.StringByID(R.MyInternationalizationString.CurrentNormallyOpenMode);
+                    this.ShowTipMsg(msg0);
+                }
+                else
+                {
+                    OpenDoorLockHandle(progressButton, btnDoorLockPic, btnStatus);
+                }
+            };
+            openFrameLayout.MouseUpEventHandler += hander1;
+            btnDoorOpenPic.MouseUpEventHandler += hander1;
+
+            //鍏抽攣浜嬩欢
+            EventHandler<MouseEventArgs> hander2 = (sender, e) =>
+            {
+                if (DoorLockCommonInfo.IsDoorLockNormallyMode == true)
+                {
+                    NomallyOpenModeInvalidDialog();
+                }
+                else
+                {
+                    btnDoorLockPic.IsSelected = false;
+                    progressButton.Y = Application.GetRealHeight(347);
+                }
+            };
+            closeFrameLayout.MouseUpEventHandler += hander2;
+            btnDoorClosePic.MouseUpEventHandler += hander2;
+
+            //闊抽噺鐐瑰嚮浜嬩欢
+            EventHandler<MouseEventArgs> handerVolume = (sender, e) =>
+            {
+                if (canVolume)
+                {
+                    VolumeDialog(progressText, diyImageVerticalSeekBar);
+                }
+                else
+                {
+                    var volumeMsg = Language.StringByID(R.MyInternationalizationString.NoSupport);
+                    this.ShowTipMsg(volumeMsg);
+                }
+            };
+            btnVolumeFrameLayout.MouseDownEventHandler += handerVolume;
+            btnVolume.MouseDownEventHandler += handerVolume;
+
+
+            //甯稿紑妯″紡鐐瑰嚮浜嬩欢
+            EventHandler<MouseEventArgs> handerNormallyOpen = (sender, e) =>
+            {
+                if (canOpenNormallyMode)
+                {
+                    btnNormallyOpen.IsSelected = !btnNormallyOpen.IsSelected;
+                    NomallyOpenDialog();
+                }
+                else
+                {
+                    var volumeMsg = Language.StringByID(R.MyInternationalizationString.NoSupport);
+                    this.ShowTipMsg(volumeMsg);
+                }
+            };
+            btnNormallyOpenFrameLayout.MouseUpEventHandler += handerNormallyOpen;
+            btnNormallyOpen.MouseUpEventHandler += handerNormallyOpen;
+        }
+        #endregion
+
+        #region 鐢甸噺鏄剧ず
+        /// <summary>
+        /// 鐢甸噺鏇存柊
+        /// </summary>
+        private void UpdatePower()
+        {
+            btnCurrentPowerText.Text = Language.StringByID(R.MyInternationalizationString.DoorLockPower) + currentPower + "%";
+            if (currentPower <= 20 && currentPower >= 0)
+            {
+                btnPower.UnSelectedImagePath = "DoorLock/LowPower.png";
+            }
+            else if (currentPower <= 40 && currentPower > 20)
+            {
+                btnPower.UnSelectedImagePath = "DoorLock/Power40.png";
+            }
+            else if (currentPower <= 60 && currentPower > 40 || currentPower == 60)
+            {
+                btnPower.UnSelectedImagePath = "DoorLock/Power60.png";
+            }
+            else if (currentPower <= 80 && currentPower >= 60)
+            {
+                btnPower.UnSelectedImagePath = "DoorLock/Power80.png";
+            }
+            else if (currentPower <= 100 && currentPower >= 80)
+            {
+                btnPower.UnSelectedImagePath = "DoorLock/Power100.png";
+            }
+            else
+            {
+                btnPower.UnSelectedImagePath = "DoorLock/PowerOffline.png";
+            }
+        }
+        #endregion
+
+        #region 闊抽噺
+        /// <summary>
+        /// 璇诲彇闊抽噺
+        /// </summary>
+        private async void ReadVolume()
+        {
+            //鑾峰彇闂ㄩ攣闊抽噺
+            if (!canVolume)
+            {
+                return;
+            }
+            var resultRes = await doorLock.GetVolumeAsync();
+
+            if (resultRes == null || resultRes.volumeResponseData == null)
+            {
+                var listDevice = new List<CommonDevice> { };
+                listDevice.Add(doorLock);
+                var devTemp = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
+                if (devTemp.ConcreteType == DeviceConcreteType.IntelligentLocks_Sone)
+                {
+                    var volumeMsg = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
+                    this.ShowTipMsg(volumeMsg);
+                }
+            }
+            else
+            {
+                volumeData = resultRes.volumeResponseData;
+                Application.RunOnMainThread(() =>
+                {
+                    UpdateVolume();
+                });
+            }
+        }
+        /// <summary>
+        /// 鏇存柊闊抽噺
+        /// </summary>
+        private void UpdateVolume()
+        {
+            if (volumeData != null)
+            {
+                int curVol = 0;
+                btnVolume.IsSelected = true;
+                if (volumeData.command == "eb")
+                {
+                    curVol = 0;
+                }
+                else
+                {
+                    curVol = volumeData.value;
+                }
+                oldVolume = currentVolume = curVol;
+            }
+        }
+
+        /// <summary>
+        /// 璁剧疆闊抽噺
+        /// </summary>
+        private void SetVolume(int volume)
+        {
+            System.Threading.Tasks.Task.Run(async () =>
+            {
+                try
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        CommonPage.Loading.Start("");
+                    });
+                    var resultRes = await doorLock.SetVolumeAsync(volume);
+                    if (resultRes == null || resultRes.defaultControlResponseData == null)
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            var volumeMsg = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
+                            this.ShowTipMsg(volumeMsg);
+                            currentVolume = oldVolume;
+                            CommonPage.Loading.Hide();
+
+                        });
+                        return;
+                    }
+                    if (resultRes.defaultControlResponseData.status != 0)
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            var volumeMsg = Language.StringByID(R.MyInternationalizationString.SetVolumeFailed);
+                            this.ShowTipMsg(volumeMsg);
+                            currentVolume = oldVolume;
+                            CommonPage.Loading.Hide();
+                        });
+                        return;
+                    }
+                    Application.RunOnMainThread(() =>
+                   {
+                       var volumeMsg = Language.StringByID(R.MyInternationalizationString.SetVolumeSuccess);
+                       this.ShowTipMsg(volumeMsg);
+                       oldVolume = currentVolume;
+                       CommonPage.Loading.Hide();
+                   });
+                }
+                catch (Exception ex)
+                {
+                    var mes = ex.Message;
+                }
+            });
+        }
+        #endregion
+
+        #region 甯稿紑妯″紡
+        /// <summary>
+        /// 甯稿紑妯″紡澶勭悊
+        /// </summary>
+        private async void NomallyOpenDialog()
+        {
+            if (btnNormallyOpen.IsSelected)
+            {
                 if (UserCenterResourse.UserInfo.AuthorityNo != 1)
                 {
-                    var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
-                    if (result == false)
+                    this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NoAccess));
+                    return;
+                }
+
+                if (!UserCenterResourse.AccountOption.DoorUnLockByRemote)
+                {
+                    SystemSecondAuthentication();
+                    return;
+                }
+
+                action = () =>
+                {
+                    string msg = Language.StringByID(R.MyInternationalizationString.SetDoorLockNomallyOpen).Replace("{0}", "\r\n");
+                    var confirm = Language.StringByID(R.MyInternationalizationString.Confrim);
+                    var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, confirm);
+                    alert.Show();
+                    alert.CancelClickEvent += () =>
                     {
-                        var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, Shared.Common.Config.Instance.Guid);
-                        if (result1 == true)
+                        btnNormallyOpen.IsSelected = false;
+                    };
+                    alert.ConfirmClickEvent += async () =>
+                    {
+                        Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
+                        var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
+                        if (result == null || result.defaultControlResponseData == null)
                         {
-                            RemoteUnlockRequest(doorLock, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle);
-                            devicNameSecAction += (deviceRename) =>
-                             {
-                                 if (!string.IsNullOrEmpty(deviceRename))
-                                 {
-                                     btnDoorLockTitle.Text = deviceRename;
-                                     //鏀规埧闂�
-                                     HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
-                                     deviceUI.ReSave();
-                                 }
-                             };
-                            openFrameLayout.Enable = true;
-                            btnDoorOpenPic.Enable = true;
+                            string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
+                            this.ShowTipMsg(msg0);
+                            btnNormallyOpen.IsSelected = false;
+                            return;
+                        }
+                        if (result.defaultControlResponseData.status != 0)
+                        {
+                            string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed);
+                            this.ShowTipMsg(msg1);
+                            btnNormallyOpen.IsSelected = false;
+                            return;
                         }
                         else
                         {
-                            this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NoAccess));
-                            openFrameLayout.Enable = true;
-                            btnDoorOpenPic.Enable = true;
+                            DoorLockCommonInfo.IsDoorLockNormallyMode = true;
+                            UpdateNomallyOpenStatus();
+                            CommonPage.Loading.Hide();
+
+                            //甯稿紑妯″紡寮�鍚彁绀�
+                            string msgNomallyModeIsTurnOn = Language.StringByID(R.MyInternationalizationString.NomallyModeIsTurnOn);
+                            var doorLockInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockInValidSetting);
+                            var alertNomallyModeIsTurnOn = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.DoorLockLogic, msgNomallyModeIsTurnOn, doorLockInValidSetting);
+                            alertNomallyModeIsTurnOn.Show();
+                            alertNomallyModeIsTurnOn.LogicClickEvent += () =>
+                            {
+                                //鑷姩鍖�
+                            };
+                            alertNomallyModeIsTurnOn.InvalidClickEvent += async () =>
+                            {
+                                NomallyOpenModeInvalidTimeDialog();
+                            };
                         }
+                    };
+                };
+                HdlCheckLogic.Current.CheckSecondarySecurity(action);
+            }
+            else
+            {
+                NomallyOpenModeInvalidDialog();
+            }
+        }
+
+        /// <summary>
+        /// 甯稿紑妯″紡澶辨晥澶勭悊
+        /// </summary>
+        public void NomallyOpenModeInvalidDialog(bool IsFromReport = false)
+        {
+            string msg = Language.StringByID(R.MyInternationalizationString.NomallyModeIsCanceled).Replace("{0}", "\r\n");
+            var confirm = Language.StringByID(R.MyInternationalizationString.SureCancel);
+            var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.NomallyOpenMode, msg, confirm);
+            if (HaveLogicNormallyOpenMode)
+            {
+                //鏈夐�昏緫璁剧疆鐨勫脊绐�
+                alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.CancelNomallyOpenModeWithLogic, msg, confirm);
+            }
+            alert.Show();
+            alert.CancelClickEvent += async () =>
+             {
+                 //淇濇寔甯稿紑
+                 if (IsFromReport)
+                 {
+                     Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
+                     var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
+                     if (result == null || result.defaultControlResponseData == null)
+                     {
+                         string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
+                         this.ShowTipMsg(msg0);
+                         btnNormallyOpen.IsSelected = false;
+                         DoorLockCommonInfo.IsDoorLockNormallyMode = false;
+                         return;
+                     }
+                     if (result.defaultControlResponseData.status != 0)
+                     {
+                         string msg1 = Language.StringByID(R.MyInternationalizationString.OpenNormallyOpenModeFailed);
+                         this.ShowTipMsg(msg1);
+                         btnNormallyOpen.IsSelected = false;
+                         DoorLockCommonInfo.IsDoorLockNormallyMode = false;
+                         return;
+                     }
+                     else
+                     {
+                         DoorLockCommonInfo.IsDoorLockNormallyMode = true;
+                         btnNormallyOpen.IsSelected = true;
+                         UpdateNomallyOpenStatus();
+                         CommonPage.Loading.Hide();
+                     }
+                 }
+                 else
+                 {
+                     btnNormallyOpen.IsSelected = true;
+                 }
+             };
+            alert.ConfirmClickEvent += async () =>
+            {
+                //纭鍙栨秷甯稿紑
+                if (IsFromReport)
+                {
+                    DoorLockCommonInfo.IsDoorLockNormallyMode = false;
+                    btnNormallyOpen.IsSelected = false;
+                    UpdateNomallyOpenStatus();
+                }
+                else
+                {
+                    Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
+                    var result = await doorLock.SetNormallyOpenModeFuncAsync(false);
+                    if (result == null || result.defaultControlResponseData == null)
+                    {
+                        string msg0 = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime);
+                        this.ShowTipMsg(msg0);
+                        btnNormallyOpen.IsSelected = true;
+                        return;
+                    }
+                    if (result.defaultControlResponseData.status != 0)
+                    {
+                        string msg1 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeFailed);
+                        this.ShowTipMsg(msg1);
+                        btnNormallyOpen.IsSelected = true;
+                        return;
                     }
                     else
                     {
-                        this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed));
+                        DoorLockCommonInfo.IsDoorLockNormallyMode = false;
+                        UpdateNomallyOpenStatus();
+                        string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess);
+                        this.ShowTipMsg(msg2);
+                    }
+                }
+            };
+        }
+
+        ///// <summary>
+        /// 甯稿紑妯″紡澶辨晥鏃堕棿澶勭悊
+        /// </summary>
+        private void NomallyOpenModeInvalidTimeDialog()
+        {
+            //澶辨晥璁剧疆
+            string msgTimeInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockOpenAllTheTime);
+            var timeConfrim = Language.StringByID(R.MyInternationalizationString.Confrim);
+            var alertTimeInValidSetting = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting, timeConfrim);
+            alertTimeInValidSetting.Show();
+            alertTimeInValidSetting.CancelClickEvent += () =>
+            {
+                btnNormallyOpen.IsSelected = true;
+            };
+            alertTimeInValidSetting.InvalidTimeAction += (obj) =>
+            {
+                Regex rg = new Regex("^[0-9]+$");
+                if (!rg.IsMatch(obj))
+                {
+                    //蹇呴』鏄暟瀛�
+                    string msg0 = Language.StringByID(R.MyInternationalizationString.NormallyOpenModeInvalidTimeTip);
+                    this.ShowTipMsg(msg0);
+
+                    string msgTimeInValidSetting2 = Language.StringByID(R.MyInternationalizationString.DoorLockOpenAllTheTime);
+                    var timeConfrim2 = Language.StringByID(R.MyInternationalizationString.Confrim);
+                    var alertTimeInValidSetting2 = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting2, timeConfrim2);
+                    alertTimeInValidSetting2.Show();
+                    return;
+                }
+                var temp = int.Parse(obj);
+                DoorLockCommonInfo.NormallyOpenModeInvalidTime = temp;
+                btnNormallyOpen.IsSelected = true;
+            };
+        }
+        /// <summary>
+        /// 甯稿紑妯″紡鐘舵�佹洿鏂�
+        /// </summary>
+        private void UpdateNomallyOpenStatus()
+        {
+            if (!canOpenNormallyMode)
+            {
+                btnNormallyOpen.UnSelectedImagePath = "DoorLock/NormallyOpenOffline.png";
+                btnNormallyOpen.Enable = false;
+                return;
+            }
+            if (DoorLockCommonInfo.IsDoorLockNormallyMode == true)
+            {
+                btnNormallyOpen.IsSelected = true;
+                btnDoorLockPic.IsSelected = true;
+                progressButton.Y = Application.GetRealHeight(10);
+                btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.DoorLockOpen);
+
+            }
+            else if (DoorLockCommonInfo.IsDoorLockNormallyMode == false)
+            {
+                btnStatus.Text = Language.StringByID(R.MyInternationalizationString.Current) + Language.StringByID(R.MyInternationalizationString.CLose);
+                btnDoorLockPic.IsSelected = false;
+                btnNormallyOpen.IsSelected = false;
+                progressButton.Y = Application.GetRealHeight(347);
+            }
+            else
+            {
+                btnNormallyOpen.UnSelectedImagePath = "DoorLock/NormallyOpenOffline.png";
+                btnNormallyOpen.Enable = false;
+                string msg = Language.StringByID(R.MyInternationalizationString.GetNormallyOpenModeFailed);
+                this.ShowTipMsg(msg);
+            }
+        }
+        #endregion
+
+        #region 寮�閿佸鐞�
+        /// <summary>
+        /// 寮�閿佸鐞�
+        /// </summary>
+        /// <param name="progressButton">杩涘害鎸夐挳</param>
+        /// <param name="btnDoorLockPic">闂ㄩ攣鍥剧墖</param>
+        /// <param name="btnStatus">鐘舵�佹樉绀�</param>
+        async void OpenDoorLockHandle(Button progressButton, Button btnDoorLockPic, Button btnStatus)
+        {
+            openFrameLayout.Enable = false;
+            btnDoorOpenPic.Enable = false;
+            if (UserCenterResourse.UserInfo.AuthorityNo != 1)
+            {
+                var result = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockOperateAccess(doorLock, Shared.Common.Config.Instance.Guid);
+                if (result == false)
+                {
+                    var result1 = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockUnlockAccess(doorLock, Shared.Common.Config.Instance.Guid);
+                    if (result1 == true)
+                    {
+                        RemoteUnlockRequest(doorLock, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle);
+                        devicNameSecAction += (deviceRename) =>
+                        {
+                            if (!string.IsNullOrEmpty(deviceRename))
+                            {
+                                btnDoorLockTitle.Text = deviceRename;
+                                //鏀规埧闂�
+                                HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
+                                deviceUI.ReSave();
+                            }
+                        };
+                        openFrameLayout.Enable = true;
+                        btnDoorOpenPic.Enable = true;
+                    }
+                    else
+                    {
+                        this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.NoAccess));
                         openFrameLayout.Enable = true;
                         btnDoorOpenPic.Enable = true;
                     }
                 }
                 else
                 {
-                    RemoteUnlockRequest(doorLock, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle);
-                    devicNameSecAction += (deviceRename) =>
-                     {
-                         if (!string.IsNullOrEmpty(deviceRename))
-                         {
-                             btnDoorLockTitle.Text = deviceRename;
-                             //鏀规埧闂�
-                             HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
-                             deviceUI.ReSave();
-                         }
-                     };
+                    this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.AccountIsFreezed));
                     openFrameLayout.Enable = true;
                     btnDoorOpenPic.Enable = true;
                 }
-            };
-            openFrameLayout.MouseUpEventHandler += hander1;
-            btnDoorOpenPic.MouseUpEventHandler += hander1;
-            EventHandler<MouseEventArgs> hander2 = (sender, e) =>
+            }
+            else
             {
-                btnDoorLockPic.IsSelected = false;
-                progressButton.Y = Application.GetRealHeight(347);
-            };
-            closeFrameLayout.MouseUpEventHandler += hander2;
-            btnDoorClosePic.MouseUpEventHandler += hander2;
-            #endregion
+                RemoteUnlockRequest(doorLock, action, progressButton, btnDoorLockPic, btnStatus, btnDoorLockTitle);
+                devicNameSecAction += (deviceRename) =>
+                {
+                    if (!string.IsNullOrEmpty(deviceRename))
+                    {
+                        btnDoorLockTitle.Text = deviceRename;
+                        //鏀规埧闂�
+                        HdlRoomLogic.Current.ChangedRoom(deviceUI, currentRoom.Id);
+                        deviceUI.ReSave();
+                    }
+                };
+                openFrameLayout.Enable = true;
+                btnDoorOpenPic.Enable = true;
+            }
         }
+        #endregion
 
-        #region  鎺ュ彛瀹炵幇
+        #region 绉婚櫎鏂规硶
         /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢 --灏嗗純鐢� 鏀圭敤DeviceInfoChange()
+        /// 閲嶅啓绉婚櫎鏂规硶
         /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
+        public override void RemoveFromParent()
         {
-
-        }
-        /// <summary>
-        /// 澶勭悊鍙樺寲浜嬩欢
-        /// </summary>
-        /// <param name="common"></param>
-        /// <param name="typeTag"></param>
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
+            if (IsDrawerLockMode)
+            {
+                CommonPage.Instance.IsDrawerLockMode = false;
+            }
+            ZbGateway.StatusList.Remove(this);
+            base.RemoveFromParent();
         }
         #endregion
     }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
index f7b5d99..25bdf6f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
@@ -9,18 +9,8 @@
     /// <summary>
     /// 闂ㄩ攣绠$悊
     /// </summary>
-    public class UserManagement : DoorLockCommonLayout, ZigBee.Common.IStatus
+    public class UserManagement : DoorLockCommonLayout
     {
-        /// <summary>
-        /// 鎸夐敭妯″紡鎺ユ敹
-        /// </summary>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-            Shared.Application.RunOnMainThread(() =>
-            {
-            });
-        }
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="doorLock"></param>
@@ -271,18 +261,6 @@
                 RowView.MouseUpEventHandler += eHandler;
                 btnText.MouseUpEventHandler += eHandler;
             }
-        }
-
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-
-        public void ChangedISceneStatus(Scene scene)
-        {
         }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Guide/GuideCommonForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Guide/GuideCommonForm.cs
index 121c63b..12bdbff 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Guide/GuideCommonForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Guide/GuideCommonForm.cs
@@ -37,7 +37,7 @@
         /// </summary>
         public virtual void ShowFrom()
         {
-            Phone.Device.Room.RoomManagement.Instance.CanClick = false;
+            Phone.MainPage.ListRoomViewFrom.Instance.CanClick = false;
 
             UserView.UserPage.Instance.AddChidren(this);
             this.BackgroundColor = Common.ZigbeeColor.Current.GXCGrayBackgroundColor;
@@ -68,9 +68,9 @@
             roomPageView.Height = Application.GetRealHeight(478);
             this.AddChidren(roomPageView);
             //绐佸嚭杈硅窛
-            roomPageView.TCBJ = Application.GetRealWidth(112);
+            roomPageView.TCBJ = Application.GetRealWidth(124);
             //涓や釜page涔嬮棿鐨勯棿璺�
-            roomPageView.JMBJ = Application.GetRealWidth(69);
+            roomPageView.JMBJ = Application.GetRealWidth(58);
 
             //瀹㈠巺
             var room1 = new Common.Room();
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Guide/GuideForm2.cs b/ZigbeeApp/Shared/Phone/UserCenter/Guide/GuideForm2.cs
index 5b4b6d0..2242d3b 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Guide/GuideForm2.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Guide/GuideForm2.cs
@@ -54,7 +54,7 @@
             var btnKnwon = this.AddIKnwonButton();
             btnKnwon.ButtonClickEvent += (sender, e) =>
             {
-                Phone.Device.Room.RoomManagement.Instance.CanClick = true;
+                Phone.MainPage.ListRoomViewFrom.Instance.CanClick = true;
                 this.RemoveFromParent();
             };
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs
index 8734356..16c2cb3 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/HideOption/HideOptionMainForm.cs
@@ -263,7 +263,7 @@
         public override void CloseFormBefore()
         {
             Shared.Phone.UserCenter.UserCenterResourse.DicReceiveGatewayTest = null;
-            UserCenterResourse.HideOption.CheckCanReceiveGateway = 1;
+            UserCenterResourse.HideOption.CheckCanReceiveGateway = 0;
 
             base.CloseFormBefore();
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewPhoneForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewPhoneForm.cs
index f54a9bf..c55a48d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewPhoneForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Password/CheckNewPhoneForm.cs
@@ -62,15 +62,16 @@
             btnArea.TextColor = UserCenterColor.Current.TextGrayColor3;
             btnArea.Gravity = Gravity.CenterVertical;
             frame.AddChidren(btnArea);
-            btnArea.ButtonClickEvent += (sender, e) =>
-            {
-                var form = new AreaCodeSelectForm();
-                form.AddForm();
-                form.FinishSelectEvent += (code) =>
-                {
-                    btnArea.Text = "+" + code;
-                };
-            };
+            //鐩墠鍙拡瀵�+86
+            //btnArea.ButtonClickEvent += (sender, e) =>
+            //{
+            //    var form = new AreaCodeSelectForm();
+            //    form.AddForm();
+            //    form.FinishSelectEvent += (code) =>
+            //    {
+            //        btnArea.Text = "+" + code;
+            //    };
+            //};
 
             //杈撳叆妗�
             var txtValue = new TextInputControl(Application.GetRealWidth(510), frame.Height - ControlCommonResourse.BottomLineHeight, false);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs
index 051c3dc..9036ecd 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs
@@ -244,21 +244,20 @@
                 //鍏抽棴杩涘害鏉�
                 this.CloseProgressBar();
 
-                if (result == false)
+                HdlThreadLogic.Current.RunMain(() =>
                 {
-                    contr.SetErrorMsg(string.Empty);
-                }
-                else
-                {
-                    UserCenterResourse.AccountOption.GestureAuthentication = psw;
-                    UserCenterResourse.AccountOption.Save();
-
-                    HdlThreadLogic.Current.RunMain(() =>
+                    if (result == false)
                     {
+                        contr.SetErrorMsg(string.Empty);
+                    }
+                    else
+                    {
+                        UserCenterResourse.AccountOption.GestureAuthentication = psw;
+                        UserCenterResourse.AccountOption.Save();
                         //鐣岄潰鍏抽棴
                         this.CloseForm();
-                    });
-                }
+                    }
+                });
             });
         }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorSecondaryPasswordForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorSecondaryPasswordForm.cs
index 1a8fa11..c2f91ae 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorSecondaryPasswordForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorSecondaryPasswordForm.cs
@@ -228,21 +228,20 @@
                 //鍏抽棴杩涘害鏉�
                 this.CloseProgressBar();
 
-                if (result == false)
+                HdlThreadLogic.Current.RunMain(() =>
                 {
-                    contr.SetErrorMsg(string.Empty);
-                }
-                else
-                {
-                    UserCenterResourse.AccountOption.PswAuthentication = psw;
-                    UserCenterResourse.AccountOption.Save();
-
-                    HdlThreadLogic.Current.RunMain(() =>
+                    if (result == false)
                     {
+                        contr.SetErrorMsg(string.Empty);
+                    }
+                    else
+                    {
+                        UserCenterResourse.AccountOption.PswAuthentication = psw;
+                        UserCenterResourse.AccountOption.Save();
                         //鐣岄潰鍏抽棴
                         this.CloseForm();
-                    });
-                }
+                    }
+                });
             });
         }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/AddNewRoomForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/AddNewRoomForm.cs
index 8cb0a34..9b85a1e 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/AddNewRoomForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/AddNewRoomForm.cs
@@ -54,21 +54,42 @@
             //娓呯┖bodyFrame
             this.ClearBodyFrame();
 
+            //鍔犱竴涓櫧鑹茶儗鏅�
+            var frameBack1 = new FrameLayout();
+            frameBack1.Height = Application.GetRealHeight(450);
+            frameBack1.Y = Application.GetRealHeight(196);
+            frameBack1.BackgroundColor = UserCenterColor.Current.White;
+            frameBack1.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
+            bodyFrameLayout.AddChidren(frameBack1);
+
+            //鍒濆鍖栦俊鎭甯�
+            var tableContr = new InformationEditorControl();
+            this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 613, 1175);
+
+            //鎴块棿鍥剧墖搴曢儴闃村奖
+            var btnShadow = new PicViewControl(994, 588);
+            btnShadow.Y = Application.GetRealHeight(58);
+            btnShadow.Gravity = Gravity.CenterHorizontal;
+            btnShadow.UnSelectedImagePath = "Room/RoomShadow.png";
+            bodyFrameLayout.AddChidren(btnShadow);
             //鎴块棿鍥剧墖
             var btnPic = new ImageView();
             btnPic.Y = Application.GetRealHeight(60);
-            btnPic.Width = Application.GetMinRealAverage(887);
-            btnPic.Height = Application.GetMinRealAverage(444);
+            btnPic.Width = Application.GetMinRealAverage(965);
+            btnPic.Height = Application.GetMinRealAverage(544);
             btnPic.Radius = (uint)Application.GetRealHeight(17);
             btnPic.Gravity = Gravity.CenterHorizontal;
             btnPic.ImagePath = "RoomIcon/0.JPG";
             bodyFrameLayout.AddChidren(btnPic);
-            var btnShadow = new PicViewControl(916, 487);
-            btnShadow.Y = btnPic.Y;
-            btnShadow.Gravity = Gravity.CenterHorizontal;
-            btnShadow.UnSelectedImagePath = "Room/RoomShadow.png";
-            bodyFrameLayout.AddChidren(btnShadow);
-            btnShadow.MouseUpEventHandler += (sender, e) =>
+            //鍥剧墖閬僵
+            var btnZhezhao = new FrameLayout();
+            btnZhezhao.Width = btnPic.Width;
+            btnZhezhao.Height = btnPic.Height;
+            btnZhezhao.Y = btnPic.Y;
+            btnZhezhao.Gravity = Gravity.CenterHorizontal;
+            btnZhezhao.Radius = btnPic.Radius;
+            bodyFrameLayout.AddChidren(btnZhezhao);
+            btnZhezhao.MouseUpEventHandler += (sender, e) =>
             {
                 //鎴块棿鍥剧墖閫夋嫨
                 this.RoomPictrueSelect(btnPic);
@@ -79,10 +100,6 @@
             newRoom.BackgroundImage = btnPic.ImagePath;
             newRoom.Humidity = -1000;
             newRoom.Temperatrue = -1000;
-
-            //鍒濆鍖栨甯�
-            var tableContr = new InformationEditorControl();
-            this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 562, 1175);
 
             //娣诲姞鍏ㄩ儴鑿滃崟
             this.AddAllMenuRow(tableContr, btnPic);
@@ -180,6 +197,14 @@
                 }
 
                 newRoom.FloorId = this.floorKeys;
+                if (newRoom.Humidity == -1000)
+                {
+                    newRoom.Humidity = 0;
+                }
+                if (newRoom.Temperatrue == -1000)
+                {
+                    newRoom.Temperatrue = 0;
+                }
 
                 HdlRoomLogic.Current.AddRoom(newRoom);
                 this.FinishEditorEvent?.Invoke();
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs
index 05ce2f0..a849299 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/EditorRoomInforForm.cs
@@ -69,11 +69,29 @@
             //娓呯┖bodyFrame
             this.ClearBodyFrame();
 
+            //鍔犱竴涓櫧鑹茶儗鏅�
+            var frameBack1 = new FrameLayout();
+            frameBack1.Height = Application.GetRealHeight(450);
+            frameBack1.Y = Application.GetRealHeight(196);
+            frameBack1.BackgroundColor = UserCenterColor.Current.White;
+            frameBack1.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
+            bodyFrameLayout.AddChidren(frameBack1);
+
+            //鍒濆鍖栦俊鎭甯�
+            var tableContr = new InformationEditorControl();
+            this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 613, 1175);
+
+            //鎴块棿鍥剧墖搴曢儴闃村奖
+            var btnShadow = new PicViewControl(994, 588);
+            btnShadow.Y = Application.GetRealHeight(58);
+            btnShadow.Gravity = Gravity.CenterHorizontal;
+            btnShadow.UnSelectedImagePath = "Room/RoomShadow.png";
+            bodyFrameLayout.AddChidren(btnShadow);
             //鎴块棿鍥剧墖
             var btnPic = new ImageView();
             btnPic.Y = Application.GetRealHeight(60);
-            btnPic.Width = Application.GetMinRealAverage(887);
-            btnPic.Height = Application.GetMinRealAverage(444);
+            btnPic.Width = Application.GetMinRealAverage(965);
+            btnPic.Height = Application.GetMinRealAverage(544);
             btnPic.Radius = (uint)Application.GetRealHeight(17);
             btnPic.Gravity = Gravity.CenterHorizontal;
             if (this.editorRoom.BackgroundImageType == 0)
@@ -85,20 +103,23 @@
                 btnPic.ImageBytes = Common.Global.ReadFileByHomeId(this.editorRoom.BackgroundImage);
             }
             bodyFrameLayout.AddChidren(btnPic);
-            var btnShadow = new PicViewControl(916, 487);
-            btnShadow.Y = btnPic.Y;
-            btnShadow.Gravity = Gravity.CenterHorizontal;
-            btnShadow.UnSelectedImagePath = "Room/RoomShadow.png";
-            bodyFrameLayout.AddChidren(btnShadow);
-            btnShadow.ButtonClickEvent += (sender, e) =>
+            //鍥剧墖閬僵
+            var btnZhezhao = new FrameLayout();
+            btnZhezhao.Width = btnPic.Width;
+            btnZhezhao.Height = btnPic.Height;
+            btnZhezhao.Y = btnPic.Y;
+            btnZhezhao.Gravity = Gravity.CenterHorizontal;
+            btnZhezhao.Radius = btnPic.Radius;
+            bodyFrameLayout.AddChidren(btnZhezhao);
+            //鍒嗕韩鐨勬埧闂翠笉鑳戒慨鏀�
+            if (this.editorRoom.IsSharedRoom == false)
             {
-                //鎴块棿鍥剧墖閫夋嫨
-                this.RoomPictrueSelect(btnPic);
-            };
-
-            //鍒濆鍖栨甯�
-            var tableContr = new InformationEditorControl();
-            this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 562, 1175);
+                btnZhezhao.MouseUpEventHandler += (sender, e) =>
+                {
+                    //鎴块棿鍥剧墖閫夋嫨
+                    this.RoomPictrueSelect(btnPic);
+                };
+            }
 
             //娣诲姞鍏ㄩ儴鑿滃崟
             this.AddAllMenuRow(tableContr, btnPic);
@@ -132,11 +153,15 @@
                 btnBelone.AddRightArrow();
                 //搴曠嚎
                 btnBelone.AddBottomLine();
-                btnBelone.ButtonClickEvent += (sender, e) =>
+                //鍒嗕韩鐨勬埧闂翠笉鑳戒慨鏀�
+                if (this.editorRoom.IsSharedRoom == false)
                 {
-                    //妤煎眰閫夋嫨
-                    this.ShowSelectFloor(btnBelone);
-                };
+                    btnBelone.ButtonClickEvent += (sender, e) =>
+                    {
+                        //妤煎眰閫夋嫨
+                        this.ShowSelectFloor(btnBelone);
+                    };
+                }
             }
 
             //銆愭俯搴︺��
@@ -148,11 +173,15 @@
             var btnTemper = rowTemperature.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uNothing), 300);
             //搴曠嚎
             rowTemperature.AddBottomLine();
-            rowTemperature.ButtonClickEvent += (sender, e) =>
+            //鍒嗕韩鐨勬埧闂翠笉鑳戒慨鏀�
+            if (this.editorRoom.IsSharedRoom == false)
             {
-                //鏄剧ず娓╁害浼犳劅鍣ㄥ垪琛�
-                this.ShowTemperatrueDevice(btnTemper);
-            };
+                rowTemperature.ButtonClickEvent += (sender, e) =>
+                {
+                    //鏄剧ず娓╁害浼犳劅鍣ㄥ垪琛�
+                    this.ShowTemperatrueDevice(btnTemper);
+                };
+            }
             if (string.IsNullOrEmpty(cloneRoom.TemperatrueDevice) == false)
             {
                 //鑾峰彇娓╁害
@@ -168,11 +197,15 @@
             var btnHumi = rowHumidity.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uNothing), 300);
             //搴曠嚎
             rowHumidity.AddBottomLine();
-            rowHumidity.ButtonClickEvent += (sender, e) =>
+            //鍒嗕韩鐨勬埧闂翠笉鑳戒慨鏀�
+            if (this.editorRoom.IsSharedRoom == false)
             {
-                //鏄剧ず婀垮害浼犳劅鍣ㄥ垪琛�
-                this.ShowHumidityDevice(btnHumi);
-            };
+                rowHumidity.ButtonClickEvent += (sender, e) =>
+                {
+                    //鏄剧ず婀垮害浼犳劅鍣ㄥ垪琛�
+                    this.ShowHumidityDevice(btnHumi);
+                };
+            }
             if (string.IsNullOrEmpty(cloneRoom.HumidityDevice) == false)
             {
                 //鑾峰彇婀垮害
@@ -182,6 +215,13 @@
             //鍒濆鍖栨甯冨畬鎴�
             tableContr.FinishInitControl(bodyFrameLayout, this.listview);
             tableContr = null;
+
+            //鍒嗕韩鐨勬埧闂翠笉鑳戒慨鏀�
+            if (this.editorRoom.IsSharedRoom == true)
+            {
+                return;
+            }
+
             //淇濆瓨
             var btnFinish = new BottomClickButton();
             btnFinish.TextID = R.MyInternationalizationString.uSave;
@@ -220,17 +260,34 @@
                     }
                 }
 
+                bool changedFloor = editorRoom.FloorId != cloneRoom.FloorId;
                 editorRoom.FloorId = cloneRoom.FloorId;
                 editorRoom.Name = cloneRoom.Name;
                 editorRoom.HumidityDevice = cloneRoom.HumidityDevice;
-                editorRoom.Humidity = cloneRoom.Humidity;
+                if (cloneRoom.Humidity != -1000)
+                {
+                    editorRoom.Humidity = cloneRoom.Humidity;
+                }
                 editorRoom.TemperatrueDevice = cloneRoom.TemperatrueDevice;
-                editorRoom.Temperatrue = cloneRoom.Temperatrue;
+                if (cloneRoom.Temperatrue != -1000)
+                {
+                    editorRoom.Temperatrue = cloneRoom.Temperatrue;
+                }
                 editorRoom.BackgroundImage = cloneRoom.BackgroundImage;
                 editorRoom.BackgroundImageType = cloneRoom.BackgroundImageType;
                 editorRoom.Save();
 
                 FinishEditorEvent?.Invoke(this.editorRoom.Name);
+                if (changedFloor == false)
+                {
+                    //鍒锋柊宸︽粦鐨勬埧闂村垪琛ㄧ晫闈㈢殑鎸囧畾鎴块棿鐨勪俊鎭�
+                    MainPage.ListRoomViewFrom.Instance.RefreshRoomInfo(this.editorRoom);
+                }
+                else
+                {
+                    //鍒锋柊宸︽粦鐨勬埧闂村垪琛ㄧ晫闈㈢殑鎴块棿鍒楄〃淇℃伅
+                    MainPage.ListRoomViewFrom.Instance.RefreshListRoom();
+                }
                 this.CloseForm();
             };
         }
@@ -520,7 +577,7 @@
                     this.cloneRoom.BackgroundImageType = 1;
                     imageContr.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
                     System.IO.File.Delete(imagePath);
-                }, "HdlPic", 2, 1);
+                }, "HdlPic", 16, 9);
             });
             //鎴戠殑鐩稿唽
             menuContr.AddMenu(Language.StringByID(R.MyInternationalizationString.MyAblums), () =>
@@ -537,7 +594,7 @@
                     imageContr.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
                     System.IO.File.Delete(imagePath);
 
-                }, "HdlPic", 2, 1);
+                }, "HdlPic", 16, 9);
             });
         }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
index 93cc3e8..30cd414 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
@@ -194,7 +194,7 @@
                     frame.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uCreatFloor), "Item/CreatFloor.png", "Item/CreatFloorSelected.png", () =>
                     {
                         //鍒涘缓妤煎眰
-                        this.CreatOrEditorFloor(null, string.Empty, string.Empty);
+                        this.CreatOrEditorFloor(null, null, string.Empty, string.Empty);
                     });
                     //鍒涘缓鎴块棿
                     frame.AddRowMenu(Language.StringByID(R.MyInternationalizationString.uCreatRoom), "Item/RoomIcon.png", "Item/RoomIconSelected.png", () =>
@@ -212,7 +212,7 @@
                 else if (AppResidenceMode == 1)
                 {
                     //鍒涘缓妤煎眰
-                    this.CreatOrEditorFloor(null, string.Empty, string.Empty);
+                    this.CreatOrEditorFloor(null, null, string.Empty, string.Empty);
                 }
                 //鏃犳ゼ灞傛ā寮�
                 else if (AppResidenceMode == 2)
@@ -335,7 +335,7 @@
                 btnChanged.ButtonClickEvent += (sender, e) =>
                 {
                     //鍒涘缓鎴栬�呯紪杈戞ゼ灞�
-                    this.CreatOrEditorFloor(btnFloor, keys, floorName);
+                    this.CreatOrEditorFloor(frameRow, btnFloor, keys, floorName);
                 };
 
                 //鍒犻櫎
@@ -409,7 +409,7 @@
         /// <param name="btnFloor"></param>
         /// <param name="keys"></param>
         /// <param name="floorName"></param>
-        private void CreatOrEditorFloor(NormalViewControl btnFloor, string keys, string floorName)
+        private void CreatOrEditorFloor(RowLayoutControl frameRow, NormalViewControl btnFloor, string keys, string floorName)
         {
             //鐢熸垚涓�涓脊绐楃敾闈�
             var dialogForm = new DialogInputControl();
@@ -441,6 +441,8 @@
                 }
                 //鐢婚潰鍏抽棴
                 dialogForm.CloseDialog();
+                //杩樺師宸﹀彸鑿滃崟
+                frameRow?.HideMenu();
                 if (floorName != textValue)
                 {
                     //缂栬緫鎴栬�呭垱寤烘ゼ灞傚悕绉�
@@ -450,6 +452,10 @@
                     }
                     Common.Config.Instance.Home.FloorDics[keys] = textValue;
                     Common.Config.Instance.Home.Save();
+                    if (Common.Config.Instance.Home.CurrentFloorId == string.Empty)
+                    {
+                        Common.Config.Instance.Home.CurrentFloorId = keys;
+                    }
                     if (btnFloor != null)
                     {
                         btnFloor.Text = textValue;
@@ -560,6 +566,8 @@
             var btnEditor = frameRow.AddEditorControl();
             btnEditor.ButtonClickEvent += (sender, e) =>
             {
+                //鍏抽棴宸﹀彸鑿滃崟
+                frameRow.HideMenu();
                 var form = new EditorRoomInforForm();
                 form.AddForm(room);
                 form.FinishEditorEvent += (roomName) =>
@@ -707,7 +715,7 @@
                     //閿欒:缃戝叧瀵硅薄涓㈠け
                     continue;
                 }
-                var result = HdlGatewayLogic.Current.SetGatewaySite(gateway, longitude, latitude);
+                var result = HdlGatewayLogic.Current.SetGatewaySite(gateway, longitude, latitude, ShowErrorMode.YES);
                 if (result == false)
                 {
                     //鍏抽棴杩涘害鏉�
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetExistSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetExistSettionForm.cs
index e09e8f8..7ae5aec 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetExistSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetExistSettionForm.cs
@@ -134,7 +134,7 @@
                 btnEditor.ButtonClickEvent += (sender, e) =>
                 {
                     //缂栬緫鎶ヨ鐩爣
-                    this.EditorAlarmTarget(btnStatu, data);
+                    this.EditorAlarmTarget(row, btnStatu, data);
                 };
             }
 
@@ -231,7 +231,7 @@
         /// </summary>
         /// <param name="btnStatu"></param>
         /// <param name="resObj"></param>
-        private void EditorAlarmTarget(NormalViewControl btnStatu, Safeguard.CatActionResponseObj resObj)
+        private void EditorAlarmTarget(DeviceRoomControl deviceRow, NormalViewControl btnStatu, Safeguard.CatActionResponseObj resObj)
         {
             var device = Common.LocalDevice.Current.GetDevice(resObj.DeviceAddr, resObj.Epoint);
             if (device.Type == DeviceType.DimmableLight//璋冨厜鍣�
@@ -241,6 +241,8 @@
                 form.AddForm(device, resObj.TaskList);
                 form.FinishSelectEvent += (statuText, listInfo) =>
                 {
+                    //杩樺師宸﹀彸鑿滃崟
+                    deviceRow?.HideMenu();
                     btnStatu.Text = statuText;
                     //淇濆瓨缂栬緫鐨勬姤璀︾洰鏍�
                     this.SaveEditorAlarmTarget(resObj, listInfo);
@@ -252,6 +254,8 @@
                 form.AddForm(device, resObj.TaskList);
                 form.FinishSelectEvent += (statuText, listInfo) =>
                 {
+                    //杩樺師宸﹀彸鑿滃崟
+                    deviceRow?.HideMenu();
                     btnStatu.Text = statuText;
                     //淇濆瓨缂栬緫鐨勬姤璀︾洰鏍�
                     this.SaveEditorAlarmTarget(resObj, listInfo);
@@ -264,6 +268,8 @@
                 form.AddForm(device, resObj.TaskList);
                 form.FinishSelectEvent += (statuText, listInfo) =>
                 {
+                    //杩樺師宸﹀彸鑿滃崟
+                    deviceRow?.HideMenu();
                     btnStatu.Text = statuText;
                     //淇濆瓨缂栬緫鐨勬姤璀︾洰鏍�
                     this.SaveEditorAlarmTarget(resObj, listInfo);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddContactForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddContactForm.cs
index 8a14e1a..8fa4707 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddContactForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddContactForm.cs
@@ -84,15 +84,16 @@
             btnArea.TextAlignment = TextAlignment.Center;
             btnArea.TextColor = UserCenterColor.Current.TextGrayColor1;
             frameBack.AddChidren(btnArea);
-            btnArea.ButtonClickEvent += (sender, e) =>
-            {
-                var form = new AreaCodeSelectForm();
-                form.AddForm();
-                form.FinishSelectEvent += (code) =>
-                {
-                    btnArea.Text = "+" + code;
-                };
-            };
+            //鐩墠鍙拡瀵�+86
+            //btnArea.ButtonClickEvent += (sender, e) =>
+            //{
+            //    var form = new AreaCodeSelectForm();
+            //    form.AddForm();
+            //    form.FinishSelectEvent += (code) =>
+            //    {
+            //        btnArea.Text = "+" + code;
+            //    };
+            //};
             //鐢佃瘽杈撳叆妗�
             var txtPhone = new TextInputControl(Application.GetRealWidth(634), btnArea.Height, false);
             txtPhone.X = btnArea.Right + Application.GetRealWidth(35);
diff --git a/ZigbeeApp/Shared/Phone/UserView/LoginLoading.cs b/ZigbeeApp/Shared/Phone/UserView/LoginLoading.cs
index db26b57..86aa5a4 100755
--- a/ZigbeeApp/Shared/Phone/UserView/LoginLoading.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/LoginLoading.cs
@@ -11,17 +11,16 @@
             BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
             Tag = "Login";
         }
+
         /// <summary>
         /// show
         /// </summary>
         public void Show()
         {
-            var sceneBtn = new ImageView()
-            {
-                Width=Application.GetMinRealAverage(1080),
-                Height=Application.GetMinRealAverage(1920),
-                ImagePath="Logo/2.jpg"
-            };
+            var sceneBtn = new ImageView();
+            sceneBtn.Width = this.Width;
+            sceneBtn.Height = this.Height;
+            sceneBtn.ImagePath = "Logo/2.jpg";
             AddChidren(sceneBtn);
         }
     }
diff --git a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
index e6aea15..a3ee9a6 100755
--- a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
@@ -2,7 +2,6 @@
 using System.Collections.Generic;
 using System.Timers;
 using Shared.Common;
-using Shared.Phone.Device.AC;
 using Shared.Phone.Device.CommonForm;
 using Shared.Phone.Device.DeviceLogic;
 using Shared.Phone.UserCenter;
@@ -188,9 +187,9 @@
                 roomPageView.Height = Application.GetRealHeight(478);
                 this.AddChidren(roomPageView);
                 //绐佸嚭杈硅窛
-                roomPageView.TCBJ = Application.GetRealWidth(112);
+                roomPageView.TCBJ = Application.GetRealWidth(124);
                 //涓や釜page涔嬮棿鐨勯棿璺�
-                roomPageView.JMBJ = Application.GetRealWidth(69);
+                roomPageView.JMBJ = Application.GetRealWidth(58);
 
                 //褰撳墠鎴块棿
                 var rList = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom();
@@ -200,10 +199,6 @@
                     roomPageView.AddChidren(roomView);
                     roomView.Init(room);
                     roomView.HideName(true);
-                    roomView.action += () =>
-                    {
-                        this.ShowForm();
-                    };
                 }
                 //璁剧疆鎴块棿鐨勫垵濮嬮�夋嫨
                 var curIndex = rList.FindIndex((obj) => obj.Id == HdlRoomLogic.Current.CurrentRoom.Id);
diff --git a/ZigbeeApp/Shared/Phone/UserView/UserPage.cs b/ZigbeeApp/Shared/Phone/UserView/UserPage.cs
index c850ea8..8df13b5 100644
--- a/ZigbeeApp/Shared/Phone/UserView/UserPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/UserPage.cs
@@ -1,8 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
 using Shared.Common;
-using ZigBee.Device;
-using Shared.Phone.Device.AC;
 using System.Text;
 
 namespace Shared.Phone.UserView
@@ -10,7 +8,7 @@
     /// <summary>
     /// User page.
     /// </summary>
-    public class UserPage : FrameLayout, ZigBee.Common.IStatus
+    public class UserPage : FrameLayout
     {
         #region 鈼� 鍙橀噺_______________________
         /// <summary>
@@ -43,306 +41,6 @@
         private static readonly int tabBarEnumName_Y = 98;
         #endregion
 
-        #region 鈼� 鎺ュ彛____________________________
-
-        /// <summary>
-        /// 璇ユ帴鍙e皢寮冪敤 !!!!!!
-        /// 鏀圭敤DeviceInfoChange()
-        /// </summary>
-        /// <returns>The changed.</returns>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-
-        }
-
-        /// <summary>
-        /// 璁惧鐘舵�佹洿鏂版帴鍙�
-        /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para>
-        /// <para>type锛氬鏋滀负 IASInfoReport:RemoveDeviceRespon</para>
-        /// <para>type锛氬鏋滀负 DeviceStatusReport:璁惧涓婃姤</para>
-        /// <para>type锛氬鏋滀负 IASInfoReport:IAS瀹夐槻淇℃伅涓婃姤</para>
-        /// <para>type锛氬鏋滀负 OnlineStatusChange: 璁惧鍦ㄧ嚎鐘舵�佹洿鏂�</para>
-        /// </summary>
-        /// <param name="common">Common.</param>
-        /// <param name="typeTag">Type tag.</param>
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-            var myDevice = LocalDevice.Current.GetDevice(common.DeviceAddr, common.DeviceEpoint);
-            if (myDevice == null)
-            {
-                return;
-            }
-            //璁惧涓婃姤鐘舵�佷腑 褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-            if (typeTag == "DeviceStatusReport")
-            {
-                try
-                {
-                    if (common.DeviceStatusReport.AttriBute == null || common.DeviceStatusReport.AttriBute.Count == 0)
-                    {
-                        return;
-                    }
-                    switch (myDevice.Type)
-                    {
-                        case DeviceType.OnOffOutput:
-                            //寮�鍏冲姛鑳�
-                            if (common.DeviceStatusReport.CluterID == 6)
-                            {
-                                var onOffOutputLight = (ToggleLight)myDevice;
-                                onOffOutputLight.DeviceStatusReport = common.DeviceStatusReport;
-                                onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                onOffOutputLight.LastDateTime = DateTime.Now;
-                            }
-                            //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                            if (common.DeviceStatusReport.CluterID == 3)
-                            {
-                                myDevice.IsOnline = 1;
-                                myDevice.LastDateTime = DateTime.Now;
-                            }
-                            break;
-
-                        case DeviceType.AirSwitch:
-                            //寮�鍏冲姛鑳�
-                            if (common.DeviceStatusReport.CluterID == 6)
-                            {
-                                var airSwitch = (AirSwitch)myDevice;
-                                airSwitch.DeviceStatusReport = common.DeviceStatusReport;
-                                airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                airSwitch.LastDateTime = DateTime.Now;
-                            }
-                            //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                            if (common.DeviceStatusReport.CluterID == 3)
-                            {
-                                myDevice.IsOnline = 1;
-                                myDevice.LastDateTime = DateTime.Now;
-                            }
-                            break;
-
-                        case DeviceType.WindowCoveringDevice:
-                            if (common.DeviceStatusReport.CluterID == 258)
-                            {
-                                var rollershade = (Rollershade)myDevice;
-                                rollershade.DeviceStatusReport = common.DeviceStatusReport;
-                                var attriButeList = rollershade.DeviceStatusReport.AttriBute;
-                                switch (attriButeList[0].AttributeId)
-                                {
-                                    case 0:
-                                        rollershade.WcdType = attriButeList[0].AttriButeData;
-                                        rollershade.LastDateTime = DateTime.Now;
-                                        break;
-                                }
-                            }
-                            if (common.DeviceStatusReport.CluterID == 3)
-                            {
-                                myDevice.IsOnline = 1;
-                                myDevice.LastDateTime = DateTime.Now;
-                            }
-                            break;
-
-                        case DeviceType.Thermostat:
-                            //AC鍔熻兘
-                            if (common.DeviceStatusReport.CluterID == 513)
-                            {
-                                var ac = (AC)myDevice;
-                                ac.DeviceStatusReport = common.DeviceStatusReport;
-                                var attriButeList = ac.DeviceStatusReport.AttriBute;
-                                foreach (var attList in attriButeList)
-                                {
-                                    //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝
-                                    var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High && attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default;
-                                    switch (attList.AttributeId)
-                                    {
-                                        case 0:
-                                            ac.currentLocalTemperature = curTemp;
-                                            ac.LastDateTime = DateTime.Now;
-                                            break;
-                                        case 17:
-                                            ac.currentCoolingSetpoint = curTemp;
-                                            ac.LastDateTime = DateTime.Now;
-                                            break;
-                                        case 18:
-                                            ac.currentHeatingSetpoint = curTemp;
-                                            ac.LastDateTime = DateTime.Now;
-                                            break;
-                                        case 4096:
-                                            ac.currentAutoSetpoint = curTemp;
-                                            ac.LastDateTime = DateTime.Now;
-                                            break;
-                                        case 28:
-                                            ac.currentSystemMode = attList.AttriButeData;
-                                            ac.LastDateTime = DateTime.Now;
-                                            break;
-                                        case 4097:
-                                            ac.CleanStatu = attList.AttriButeData == 42;
-                                            break;
-                                    }
-                                }
-                            }
-
-                            if (common.DeviceStatusReport.CluterID == 514)
-                            {
-                                var ac = (AC)myDevice;
-                                var attriButeList = common.DeviceStatusReport.AttriBute;
-                                ac.DeviceStatusReport = common.DeviceStatusReport;
-                                foreach (var attList in attriButeList)
-                                {
-                                    switch (attList.AttributeId)
-                                    {
-                                        case 0:
-                                            ac.currentFanMode = attList.AttriButeData;
-                                            ac.LastDateTime = DateTime.Now;
-                                            break;
-                                        case 4096:
-                                            ac.currentFanSwingMode = attList.AttriButeData;
-                                            ac.LastDateTime = DateTime.Now;
-                                            break;
-                                    }
-                                }
-                            }
-
-                            //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                            if (common.DeviceStatusReport.CluterID == 3)
-                            {
-                                myDevice.IsOnline = 1;
-                                myDevice.LastDateTime = DateTime.Now;
-                            }
-                            break;
-
-                        case DeviceType.DimmableLight:
-                            //璋冨厜鐏姛鑳�
-                            //寮�鍏冲姛鑳�
-                            if (common.DeviceStatusReport.CluterID == 6)
-                            {
-                                var dimmableLight = (DimmableLight)myDevice;
-                                dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
-                                dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                dimmableLight.LastDateTime = DateTime.Now;
-                            }
-                            //浜害
-                            if (common.DeviceStatusReport.CluterID == 8)
-                            {
-                                var dimmableLight = (DimmableLight)myDevice;
-                                dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
-                                var attriButeList = dimmableLight.DeviceStatusReport.AttriBute;
-                                switch (attriButeList[0].AttributeId)
-                                {
-                                    case 0:
-                                        dimmableLight.Level = attriButeList[0].AttriButeData;
-                                        dimmableLight.LastDateTime = DateTime.Now;
-                                        break;
-                                }
-                            }
-                            //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
-                            if (common.DeviceStatusReport.CluterID == 3)
-                            {
-                                myDevice.IsOnline = 1;
-                                myDevice.LastDateTime = DateTime.Now;
-                            }
-                            break;
-
-                        case DeviceType.TemperatureSensor:
-                            //娓╁害
-                            if (common.DeviceStatusReport.CluterID == 1026)
-                            {
-                                var tempera = (TemperatureSensor)myDevice;
-                                foreach (var data in common.DeviceStatusReport.AttriBute)
-                                {
-                                    if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
-                                    {
-                                        if (data.AttriButeData == 0)
-                                        {
-                                            tempera.Temperatrue = 0;
-                                        }
-                                        else if (data.AttriButeData > 32767)
-                                        {
-                                            //璐熸暟(鐗规畩澶勭悊)
-                                            string strValue = (data.AttriButeData - 65536).ToString();
-                                            //灏忔暟鐐归渶瑕佷竴浣�
-                                            strValue = strValue.Substring(0, strValue.Length - 1);
-                                            tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
-                                        }
-                                        else
-                                        {
-                                            //灏忔暟鐐归渶瑕佷竴浣�
-                                            string strValue = data.AttriButeData.ToString();
-                                            strValue = strValue.Substring(0, strValue.Length - 1);
-                                            tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
-                                        }
-                                    }
-                                }
-                            }
-                            //婀垮害
-                            if (common.DeviceStatusReport.CluterID == 1029)
-                            {
-                                var tempera = (TemperatureSensor)myDevice;
-                                foreach (var data in common.DeviceStatusReport.AttriBute)
-                                {
-                                    if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
-                                    {
-                                        if (data.AttriButeData == 0)
-                                        {
-                                            tempera.Humidity = 0;
-                                        }
-                                        else
-                                        {
-                                            //灏忔暟鐐归渶瑕佷竴浣�(婀垮害娌℃湁璐熸暟)
-                                            string strValue = data.AttriButeData.ToString();
-                                            strValue = strValue.Substring(0, strValue.Length - 1);
-                                            tempera.Humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
-                                            tempera.LastDateTime = DateTime.Now;
-                                        }
-                                    }
-                                }
-                            }
-                            break;
-                    }
-                }
-                catch (Exception ex)
-                {
-                    System.Console.WriteLine($"Error:{ex.Message}");
-                }
-            }
-            //璁惧鍦ㄧ嚎鐘舵�佷笂鎶�
-            else if (typeTag == "OnlineStatusChange")
-            {
-                myDevice.IsOnline = common.IsOnline;
-                //璁板綍鍥炲鏃堕棿
-                myDevice.LastDateTime = DateTime.Now;
-            }
-            else if (typeTag == "IASInfoReport")
-            {
-                try
-                {
-                    switch (myDevice.Type)
-                    {
-                        case DeviceType.IASZone:
-                            var iAS = (IASZone)myDevice;
-                            iAS.iASInfo = (common as IASZone).iASInfo;
-                            iAS.LastDateTime = DateTime.Now;
-                            break;
-                    }
-                }
-                catch { }
-            }
-        }
-        /// <summary>
-        /// Changeds the IL ogic status.
-        /// </summary>
-        /// <param name="logic">Logic.</param>
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-            //throw new NotImplementedException();
-        }
-        /// <summary>
-        /// Changeds the IS cene status.
-        /// </summary>
-        /// <param name="scene">Scene.</param>
-        public void ChangedISceneStatus(Scene scene)
-        {
-            //throw new NotImplementedException();
-        }
-        #endregion
-
         /// <summary>
         /// 鐢ㄦ埛鐣岄潰
         /// </summary>
@@ -365,7 +63,6 @@
         public UserPage()
         {
             BackgroundColor = Shared.Common.ZigbeeColor.Current.MainColor;
-            ZbGateway.StatusList.Add(this);
             Shared.Application.LocationAction += (lon, lat) =>
             {
                 Login.AccountLogic.Instance.ReceiveAppLatAndLon(lon.ToString(), lat.ToString());
@@ -508,15 +205,29 @@
             SelectedTextColor = Shared.Common.ZigbeeColor.Current.GXCTextBlackColor2,
             Gravity = Gravity.CenterHorizontal,
             TextSize = 10
-        };
+        };
         #endregion
+
+        #region 寮哄埗鏄剧ず鑷姩鍖栫晫闈�
 
+        /// <summary>
+        /// 寮哄埗鏄剧ず鑷姩鍖栧垪琛ㄧ晫闈�
+        /// </summary>
+        public void ShowCategoryAutoListForm()
+        {
+            //鍏抽棴鍏ㄩ儴鐣岄潰,鐩村埌涓婚〉涓烘
+            UserCenter.UserCenterLogic.CloseAllOpenForm();
+            //寮哄埗鏄剧ず鑷姩鍖栧垪琛ㄧ晫闈�
+            UserCenter.UserCenterResourse.ResidenceOption.CategoryPageSwitchIndex = 2;
+            BottomEventHandler(Instance.categoryIMG, null);
+        }
 
+        #endregion
+
         EventHandler<MouseEventArgs> BottomEventHandler = (sender, e) =>
         {
             if (sender == Instance.homePageIMG || sender == Instance.homePageName)
-            {
-
+            {
                 if (Instance.homePageName.IsSelected == true && e != null)
                 {
                     //鍙湁鏄墜鍔ㄧ偣鍑荤殑鏃跺�欐墠澶勭悊
@@ -534,7 +245,7 @@
                 Instance.settingName.IsSelected = false;
                 Instance.settingIMG.IsSelected = false;
 
-                var home = new MainPage.UserHomeView2();
+                var home = new MainPage.HomeMainPageForm();
                 Instance.BodyView.AddChidren(home);
                 home.ShowForm();
 
@@ -559,9 +270,9 @@
                 Instance.settingName.IsSelected = false;
                 Instance.settingIMG.IsSelected = false;
 
-                var category = new Phone.Device.Category.Category { };
+                var category = new Category.CategoryMainForm { };
                 Instance.BodyView.AddChidren(category);
-                category.Show();
+                category.ShowForm();
             }
             else if (sender == Instance.settingIMG || sender == Instance.settingName)
             {
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
index 30ae20b..89ec837 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
@@ -145,7 +145,11 @@
                                         FindGateWaySocket.BeginSend(new System.Net.IPEndPoint(broadcastIpAddress, 7624), broadBytes);
                                     }
                                 }
-                                catch { }
+                                catch
+                                {   
+                                    //鍏抽棴Socket,涓嬫鍙戦�佷細鑷姩杩炴帴
+                                    FindGateWaySocket.Stop();
+                                }
                                 System.Threading.Thread.Sleep(500);
                             }
                         })
@@ -277,7 +281,11 @@
                                     }
                                 }
                             }
-                            catch { }
+                            catch
+                            {
+                                //鍏抽棴Socket,涓嬫鍙戦�佷細鑷姩杩炴帴
+                                FindGateWaySocket.Stop();
+                            }
                         }
                         #endregion
                     }
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Common/IStatus.cs b/ZigbeeApp/Shared/Phone/ZigBee/Common/IStatus.cs
index 4b5ed3c..60131a7 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Common/IStatus.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Common/IStatus.cs
@@ -9,10 +9,6 @@
     {
         /// <summary>
         /// 璁惧鐘舵�佹洿鏂版帴鍙�
-        /// </summary>
-        void Changed(Device.CommonDevice common);
-        /// <summary>
-        /// 璁惧鐘舵�佹洿鏂版帴鍙�
         /// <para>typeTag锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para>
         /// <para>typeTag锛氬鏋滀负 IASInfoReport:RemoveDeviceRespon</para>
         /// <para>typeTag锛氬鏋滀负 DeviceStatusReport:璁惧涓婃姤</para>
@@ -20,17 +16,6 @@
         /// <para>typeTag锛氬鏋滀负 OnlineStatusChange: 璁惧鍦ㄧ嚎鐘舵�佹洿鏂�</para>
         /// </summary>
         void DeviceInfoChange(Device.CommonDevice common, string typeTag);
-
-        /// <summary>
-        /// 閫昏緫淇℃伅鏇存柊鎺ュ彛
-        /// </summary>
-        void ChangedILogicStatus(ZigBee.Device.Logic logic);
-
-        /// <summary>
-        ///  鍦烘櫙淇℃伅鏇存柊鎺ュ彛
-        /// </summary>
-        void ChangedISceneStatus(ZigBee.Device.Scene scene);
-
     }
 
 }
\ No newline at end of file
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
index 713effb..1528024 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
@@ -10,6 +10,11 @@
     {
         [Newtonsoft.Json.JsonIgnore]
         public DateTime LastDateTime = DateTime.MinValue;
+        /// <summary>
+        /// 鏄惁宸茬粡璇诲彇浜嗚澶囩姸鎬�(姝ゅ睘鎬ф槸缁欎富椤典娇鐢ㄧ殑)
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public bool HadReadDeviceStatu = false;
 
         /// <summary>
         /// 璋冭瘯鏃舵墦寮�鎵撳嵃淇℃伅锛宼rue:鎵撳嵃锛宖alse:涓嶆墦鍗�
@@ -1151,198 +1156,8 @@
 
                     if (topic == gatewayID + "/" + "DeviceRenameRespon")
                     {
-                        var deviceID = jobject.Value<int>("Device_ID");
-                        switch ((DeviceType)(deviceID))
-                        {
-                            case DeviceType.OnOffOutput:
-                                var toggleLight = new ToggleLight() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                toggleLight.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<ToggleLight.DeviceRenameResponseData>(jobject["Data"].ToString());
-
-                                if (toggleLight.renameDeviceData == null)
-                                {
-                                    d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new DeviceRenameAllData { deviceRenameData = toggleLight.renameDeviceData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                                    var infoToggleLight = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == toggleLight.DeviceID && obj.DeviceAddr == toggleLight.DeviceAddr && obj.DeviceEpoint == toggleLight.DeviceEpoint);
-                                    if (infoToggleLight != null)
-                                    {
-                                        infoToggleLight.DeviceEpointName = toggleLight.renameDeviceData.DeviceName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.AirSwitch:
-                                var airSwitch = new AirSwitch() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                airSwitch.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<AirSwitch.DeviceRenameResponseData>(jobject["Data"].ToString());
-
-                                if (airSwitch.renameDeviceData == null)
-                                {
-                                    d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new DeviceRenameAllData { deviceRenameData = airSwitch.renameDeviceData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                                    var infoAirSwitch = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == airSwitch.DeviceID && obj.DeviceAddr == airSwitch.DeviceAddr && obj.DeviceEpoint == airSwitch.DeviceEpoint);
-                                    if (infoAirSwitch != null)
-                                    {
-                                        infoAirSwitch.DeviceEpointName = airSwitch.renameDeviceData.DeviceName;
-                                        //infoAirSwitch.ReSave();
-                                    }
-                                }
-                                break;
-                            case DeviceType.OnOffSwitch:
-                                var panelObj = new Panel() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                panelObj.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.DeviceRenameResponseData>(jobject["Data"].ToString());
-                                if (panelObj.renameDeviceData == null)
-                                {
-                                    d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new DeviceRenameAllData { deviceRenameData = panelObj.renameDeviceData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                                    var infoPanel = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == panelObj.DeviceID && obj.DeviceAddr == panelObj.DeviceAddr && obj.DeviceEpoint == panelObj.DeviceEpoint);
-                                    if (infoPanel != null)
-                                    {
-                                        infoPanel.DeviceEpointName = panelObj.renameDeviceData.DeviceName;
-                                        //infoPanel.ReSave();
-                                    }
-                                }
-                                break;
-                            case DeviceType.WindowCoveringDevice:
-                                var windowCovering = new Rollershade() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                windowCovering.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<Rollershade.DeviceRenameResponseData>(jobject["Data"].ToString());
-                                if (windowCovering.renameDeviceData == null)
-                                {
-                                    d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new DeviceRenameAllData { deviceRenameData = windowCovering.renameDeviceData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-                                    var wc = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == windowCovering.DeviceID && obj.DeviceAddr == windowCovering.DeviceAddr && obj.DeviceEpoint == windowCovering.DeviceEpoint);
-                                    if (wc != null)
-                                    {
-                                        wc.DeviceEpointName = windowCovering.renameDeviceData.DeviceName;
-                                    }
-                                }
-
-                                break;
-                            case DeviceType.IASZone:
-                                var ias = new IASZone() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                ias.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<Rollershade.DeviceRenameResponseData>(jobject["Data"].ToString());
-                                if (ias.renameDeviceData == null)
-                                {
-                                    d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new DeviceRenameAllData { deviceRenameData = ias.renameDeviceData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{topic}");
-
-                                    var zone = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == ias.DeviceID && obj.DeviceAddr == ias.DeviceAddr && obj.DeviceEpoint == ias.DeviceEpoint);
-                                    if (zone != null)
-                                    {
-                                        zone.DeviceEpointName = ias.renameDeviceData.DeviceName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.DimmableLight:
-                                var dimmableLight = new DimmableLight() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                dimmableLight.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<DimmableLight.DeviceRenameResponseData>(jobject["Data"].ToString());
-
-                                if (dimmableLight.renameDeviceData == null)
-                                {
-                                    d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new DeviceRenameAllData { deviceRenameData = dimmableLight.renameDeviceData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                                    var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == dimmableLight.DeviceID && obj.DeviceAddr == dimmableLight.DeviceAddr && obj.DeviceEpoint == dimmableLight.DeviceEpoint);
-                                    if (info != null)
-                                    {
-                                        info.DeviceEpointName = dimmableLight.renameDeviceData.DeviceName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.Repeater:
-                                var repeater = new Repeater() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                repeater.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<Repeater.DeviceRenameResponseData>(jobject["Data"].ToString());
-
-                                if (repeater.renameDeviceData == null)
-                                {
-                                    d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new DeviceRenameAllData { deviceRenameData = repeater.renameDeviceData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                                    var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == repeater.DeviceID && obj.DeviceAddr == repeater.DeviceAddr && obj.DeviceEpoint == repeater.DeviceEpoint);
-                                    if (info != null)
-                                    {
-                                        info.DeviceEpointName = repeater.renameDeviceData.DeviceName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.Thermostat:
-                                var ac = new AC() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                ac.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<AC.DeviceRenameResponseData>(jobject["Data"].ToString());
-                                if (ac.renameDeviceData == null)
-                                {
-                                    d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new DeviceRenameAllData { deviceRenameData = ac.renameDeviceData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                                    var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == ac.DeviceID && obj.DeviceAddr == ac.DeviceAddr && obj.DeviceEpoint == ac.DeviceEpoint);
-                                    if (info != null)
-                                    {
-                                        info.DeviceEpointName = ac.renameDeviceData.DeviceName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.Transverter:
-                                var transverter = new Transverter() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                transverter.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<Transverter.DeviceRenameResponseData>(jobject["Data"].ToString());
-                                if (transverter.renameDeviceData == null)
-                                {
-                                    d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new DeviceRenameAllData { deviceRenameData = transverter.renameDeviceData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                                    var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == transverter.DeviceID && obj.DeviceAddr == transverter.DeviceAddr && obj.DeviceEpoint == transverter.DeviceEpoint);
-                                    if (info != null)
-                                    {
-                                        info.DeviceEpointName = transverter.renameDeviceData.DeviceName;
-                                    }
-                                }
-                                break;
-                            case DeviceType.DoorLock:
-                                var doorLock = new DoorLock() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.CurrentGateWayId };
-                                doorLock.renameDeviceData = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock.DeviceRenameResponseData>(jobject["Data"].ToString());
-                                if (doorLock.renameDeviceData == null)
-                                {
-                                    d = new DeviceRenameAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                                }
-                                else
-                                {
-                                    d = new DeviceRenameAllData { deviceRenameData = doorLock.renameDeviceData };
-                                    System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                                    var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == doorLock.DeviceID && obj.DeviceAddr == doorLock.DeviceAddr && obj.DeviceEpoint == doorLock.DeviceEpoint);
-                                    if (info != null)
-                                    {
-                                        info.DeviceEpointName = doorLock.renameDeviceData.DeviceName;
-                                    }
-                                }
-                                break;
-                        }
+                        var receiptData = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceRenameResponseData>(jobject["Data"].ToString());
+                        d = new DeviceRenameAllData { deviceRenameData = receiptData };
                     }
                 };
                 Gateway.Actions += action;
@@ -1835,210 +1650,6 @@
                         {
                             d = new RemoveDeviceResponseAllData { removeDeviceResponseData = gatewayTemp.removeDeviceResponseData };
                             System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                            try
-                            {
-                                if (gatewayTemp.removeDeviceResponseData.Result == 0)
-                                {
-                                    foreach (var delD in gatewayTemp.removeDeviceResponseData.DeviceList)
-                                    {
-                                        var deviceID = delD.Device_ID;
-                                        switch ((DeviceType)(deviceID))
-                                        {
-                                            case DeviceType.OnOffOutput:
-                                                var toggleLight = new ToggleLight() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
-                                                toggleLight.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ToggleLight.RemoveDeviceResponseData>(jobject["Data"].ToString());
-                                                if (toggleLight.removeDeviceResponseData == null)
-                                                {
-                                                    return;
-                                                }
-                                                else
-                                                {
-                                                    if (toggleLight.removeDeviceResponseData.Result == 0)
-                                                    {
-                                                        var infoToggleLight = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == toggleLight.DeviceID && obj.DeviceAddr == toggleLight.DeviceAddr && obj.DeviceEpoint == toggleLight.DeviceEpoint);
-                                                        if (infoToggleLight != null)
-                                                        {
-                                                            Gateway.DeviceList.Remove(infoToggleLight);
-                                                        }
-                                                    }
-                                                }
-                                                break;
-                                            case DeviceType.AirSwitch:
-                                                var airSwitch = new AirSwitch() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
-                                                airSwitch.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<AirSwitch.RemoveDeviceResponseData>(jobject["Data"].ToString());
-                                                if (airSwitch.removeDeviceResponseData == null)
-                                                {
-                                                    return;
-                                                }
-                                                else
-                                                {
-                                                    if (airSwitch.removeDeviceResponseData.Result == 0)
-                                                    {
-                                                        var infoAirSwitch = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == airSwitch.DeviceID && obj.DeviceAddr == airSwitch.DeviceAddr && obj.DeviceEpoint == airSwitch.DeviceEpoint);
-                                                        if (infoAirSwitch != null)
-                                                        {
-                                                            Gateway.DeviceList.Remove(infoAirSwitch);
-                                                        }
-                                                    }
-                                                }
-                                                break;
-                                            case DeviceType.OnOffSwitch:
-                                                var panelObj = new Panel() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
-                                                panelObj.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.RemoveDeviceResponseData>(jobject["Data"].ToString());
-                                                if (panelObj.removeDeviceResponseData == null)
-                                                {
-                                                    return;
-                                                }
-                                                else
-                                                {
-                                                    if (panelObj.removeDeviceResponseData.Result == 0)
-                                                    {
-                                                        var infoPanel = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == panelObj.DeviceID && obj.DeviceAddr == panelObj.DeviceAddr && obj.DeviceEpoint == panelObj.DeviceEpoint);
-                                                        if (infoPanel != null)
-                                                        {
-                                                            Gateway.DeviceList.Remove(infoPanel);
-                                                        }
-                                                    }
-                                                }
-                                                break;
-                                            case DeviceType.WindowCoveringDevice:
-                                                var rollershade = new Rollershade() { DeviceID = jobject.Value<int>("Device_ID"), DeviceAddr = jobject.Value<string>("DeviceAddr"), DeviceEpoint = jobject.Value<int>("Epoint"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
-                                                rollershade.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<Panel.RemoveDeviceResponseData>(jobject["Data"].ToString());
-                                                if (rollershade.removeDeviceResponseData == null)
-                                                {
-                                                    return;
-                                                }
-                                                else
-                                                {
-                                                    if (rollershade.removeDeviceResponseData.Result == 0)
-                                                    {
-                                                        var infoRoller = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == rollershade.DeviceID && obj.DeviceAddr == rollershade.DeviceAddr && obj.DeviceEpoint == rollershade.DeviceEpoint);
-                                                        if (infoRoller != null)
-                                                        {
-                                                            Gateway.DeviceList.Remove(infoRoller);
-                                                        }
-                                                    }
-                                                }
-                                                break;
-                                            case DeviceType.IASZone:
-                                                var ias = new IASZone() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
-                                                ias.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<IASZone.RemoveDeviceResponseData>(jobject["Data"].ToString());
-                                                if (ias.removeDeviceResponseData == null)
-                                                {
-                                                    return;
-                                                }
-                                                else
-                                                {
-                                                    if (ias.removeDeviceResponseData.Result == 0)
-                                                    {
-                                                        var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == ias.DeviceID && obj.DeviceAddr == ias.DeviceAddr && obj.DeviceEpoint == ias.DeviceEpoint);
-                                                        if (info != null)
-                                                        {
-                                                            Gateway.DeviceList.Remove(info);
-                                                        }
-                                                    }
-                                                }
-                                                break;
-                                            case DeviceType.DimmableLight:
-                                                var dimmableLight = new DimmableLight() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
-                                                dimmableLight.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DimmableLight.RemoveDeviceResponseData>(jobject["Data"].ToString());
-                                                if (dimmableLight.removeDeviceResponseData == null)
-                                                {
-                                                    return;
-                                                }
-                                                else
-                                                {
-                                                    if (dimmableLight.removeDeviceResponseData.Result == 0)
-                                                    {
-                                                        var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == dimmableLight.DeviceID && obj.DeviceAddr == dimmableLight.DeviceAddr && obj.DeviceEpoint == dimmableLight.DeviceEpoint);
-                                                        if (info != null)
-                                                        {
-                                                            Gateway.DeviceList.Remove(info);
-                                                        }
-                                                    }
-                                                }
-                                                break;
-                                            case DeviceType.Repeater:
-                                                var repeater = new Repeater() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
-                                                repeater.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<Repeater.RemoveDeviceResponseData>(jobject["Data"].ToString());
-                                                if (repeater.removeDeviceResponseData == null)
-                                                {
-                                                    return;
-                                                }
-                                                else
-                                                {
-                                                    if (repeater.removeDeviceResponseData.Result == 0)
-                                                    {
-                                                        var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == repeater.DeviceID && obj.DeviceAddr == repeater.DeviceAddr && obj.DeviceEpoint == repeater.DeviceEpoint);
-                                                        if (info != null)
-                                                        {
-                                                            Gateway.DeviceList.Remove(info);
-                                                        }
-                                                    }
-                                                }
-                                                break;
-                                            case DeviceType.Thermostat:
-                                                var ac = new AC() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
-                                                ac.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<AC.RemoveDeviceResponseData>(jobject["Data"].ToString());
-                                                if (ac.removeDeviceResponseData == null)
-                                                {
-                                                    return;
-                                                }
-                                                else
-                                                {
-                                                    if (ac.removeDeviceResponseData.Result == 0)
-                                                    {
-                                                        var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == ac.DeviceID && obj.DeviceAddr == ac.DeviceAddr && obj.DeviceEpoint == ac.DeviceEpoint);
-                                                        if (info != null)
-                                                        {
-                                                            Gateway.DeviceList.Remove(info);
-                                                        }
-                                                    }
-                                                }
-                                                break;
-                                            case DeviceType.Transverter:
-                                                var transverter = new Transverter() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
-                                                transverter.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<Transverter.RemoveDeviceResponseData>(jobject["Data"].ToString());
-                                                if (transverter.removeDeviceResponseData == null)
-                                                {
-                                                    return;
-                                                }
-                                                else
-                                                {
-                                                    if (transverter.removeDeviceResponseData.Result == 0)
-                                                    {
-                                                        var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == transverter.DeviceID && obj.DeviceAddr == transverter.DeviceAddr && obj.DeviceEpoint == transverter.DeviceEpoint);
-                                                        if (info != null)
-                                                        {
-                                                            Gateway.DeviceList.Remove(info);
-                                                        }
-                                                    }
-                                                }
-                                                break;
-                                            case DeviceType.DoorLock:
-                                                var doorLock = new DoorLock() { DeviceAddr = jobject.Value<string>("DeviceAddr"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
-                                                doorLock.removeDeviceResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock.RemoveDeviceResponseData>(jobject["Data"].ToString());
-                                                if (doorLock.removeDeviceResponseData == null)
-                                                {
-                                                    return;
-                                                }
-                                                else
-                                                {
-                                                    if (doorLock.removeDeviceResponseData.Result == 0)
-                                                    {
-                                                        var info = Gateway.DeviceList.Find((CommonDevice obj) => obj.DeviceID == doorLock.DeviceID && obj.DeviceAddr == doorLock.DeviceAddr && obj.DeviceEpoint == doorLock.DeviceEpoint);
-                                                        if (info != null)
-                                                        {
-                                                            Gateway.DeviceList.Remove(info);
-                                                        }
-                                                    }
-                                                }
-                                                break;
-                                        }
-                                    }
-                                }
-                            }
-                            catch { }
                         }
                     }
                 };
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs
index 0dd69e0..1fc9f8f 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs
@@ -1401,8 +1401,8 @@
             /// <summary>
             /// 鐘舵�佸��
             /// <para>榛樿鍝嶅簲缁撴灉锛�
-            ///<para>0 鍒犻櫎鎴愬姛</para>
-            ///<para>1 鍒犻櫎澶辫触</para>
+            ///<para>0 鎴愬姛</para>
+            ///<para>1 澶辫触</para>
             ///<para>2 鐢ㄦ埛涓嶅瓨鍦�</para>
             ///<para>32 鍐荤粨鎴愬姛</para>
             ///<para>34 鍐荤粨澶辫触</para>
@@ -1789,7 +1789,7 @@
 
         #region 涓存椂瀵嗙爜鍙戦�佹暟鎹�
         ///<summary >
-        ///杩滅▼寮�閿�
+        ///涓存椂瀵嗙爜
         ///<para>inputPassword: 杈撳叆瀵嗙爜/para>
         /// </summary>
         public async System.Threading.Tasks.Task<TempPasswordResponseAllData> TempPasswordAsync(string inputPassword, System.DateTime startTime, System.DateTime endTime, string fixedPassword = "190605")
@@ -2340,6 +2340,597 @@
         }
         #endregion
 
+        #region 闊抽噺
+        ///<summary >
+        ///鑾峰彇闊抽噺
+        /// </summary>
+        public async System.Threading.Tasks.Task<VolumeResponseAllData> GetVolumeAsync()
+        {
+            VolumeResponseAllData result = null;
+            if (Gateway == null)
+            {
+                result = new VolumeResponseAllData { errorMessageBase = "褰撳墠娌℃湁缃戝叧" };
+                return result;
+            }
+            return await System.Threading.Tasks.Task.Run(async () =>
+            {
+                Action<string, string> action = (topic, message) =>
+                {
+                    var gatewayID = topic.Split('/')[0];
+                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+
+                    if (topic == gatewayID + "/" + "Error_Respon")
+                    {
+                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+
+                        if (temp == null)
+                        {
+                            result = new VolumeResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                        }
+
+                        else
+                        {
+                            result = new VolumeResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                        }
+                    }
+                    if (topic == gatewayID + "/" + "ZbDataPassthrough")
+                    {
+                        var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
+                        gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+
+                        if (gatewayTemp.clientDataPassthroughResponseData == null)
+                        {
+                            result = new VolumeResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                        }
+                        else
+                        {
+                            if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
+                            {
+                                var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
+                                if (data.Length == 14)
+                                {
+                                    var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
+                                    if (command == "0456")
+                                    {
+                                        var tempD = new VolumeResponseData();
+                                        tempD.command = data[10].ToString() + data[11].ToString();
+                                        tempD.value = Convert.ToInt32(data[13].ToString(), 16);
+                                        result = new VolumeResponseAllData { volumeResponseData = tempD };
+                                        DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0456_{ topic}");
+                                    }
+                                }
+                            }
+                        }
+                    }
+                };
+
+                Gateway.Actions += action;
+                DebugPrintLog("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString());
+
+                try
+                {
+                    var passData = VolumeData(-1);
+                    var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
+                    var data = new JObject { { "PassData", passData } };
+                    jObject.Add("Data", data);
+                    Gateway.Send(("ClientDataPassthrough"), jObject.ToString());
+                }
+                catch { }
+
+                var dateTime = DateTime.Now;
+                while ((DateTime.Now - dateTime).TotalMilliseconds < 9000)// WaitReceiveDataTime)
+                {
+                    await System.Threading.Tasks.Task.Delay(10);
+                    if (result != null && result.volumeResponseData != null)
+                    {
+                        break;
+                    }
+                }
+                if ((DateTime.Now - dateTime).TotalMilliseconds > 9000)
+                {
+                    result = new VolumeResponseAllData
+                    { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
+                }
+                Gateway.Actions -= action;
+                DebugPrintLog("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString());
+
+                return result;
+            });
+        }
+
+        ///<summary >
+        ///闊抽噺
+        ///<para>鍛戒护鍊�: comandValue</para>
+        ///<para>comandValue: 0 闈欓煶</para>
+        ///<para>comandValue:1 鏈�灏忛煶閲�</para>
+        ///<para>comandValue:2~13 闊抽噺 </para>
+        ///<para>comandValue:14 鏈�澶ч煶閲�</para> 
+        /// </summary>
+        public async System.Threading.Tasks.Task<DefaultControlResponseAllData> SetVolumeAsync(int comandValue)
+        {
+            DefaultControlResponseAllData result = null;
+            if (Gateway == null)
+            {
+                result = new DefaultControlResponseAllData { errorMessageBase = "褰撳墠娌℃湁缃戝叧" };
+                return result;
+            }
+            return await System.Threading.Tasks.Task.Run(async () =>
+            {
+                Action<string, string> action = (topic, message) =>
+                {
+                    var gatewayID = topic.Split('/')[0];
+                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+
+                    if (topic == gatewayID + "/" + "Error_Respon")
+                    {
+                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+
+                        if (temp == null)
+                        {
+                            result = new DefaultControlResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                        }
+
+                        else
+                        {
+                            result = new DefaultControlResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                        }
+                    }
+                    if (topic == gatewayID + "/" + "ZbDataPassthrough")
+                    {
+                        var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
+                        gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+
+                        if (gatewayTemp.clientDataPassthroughResponseData == null)
+                        {
+                            result = new DefaultControlResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                        }
+                        else
+                        {
+                            if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
+                            {
+                                var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
+                                if (data.Length == 16)
+                                {
+                                    var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
+                                    if (command == "0002")
+                                    {
+                                        var tempD = new DefaultControlResponseData();
+                                        tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
+                                        tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
+                                        if (tempD.command == "0455")
+                                        {
+                                            result = new DefaultControlResponseAllData { defaultControlResponseData = tempD };
+                                            DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0456_{ topic}");
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                };
+
+                Gateway.Actions += action;
+                DebugPrintLog("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString());
+
+                try
+                {
+                    var passData = VolumeData(comandValue);
+                    var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
+                    var data = new JObject { { "PassData", passData } };
+                    jObject.Add("Data", data);
+                    Gateway.Send(("ClientDataPassthrough"), jObject.ToString());
+                }
+                catch { }
+
+                var dateTime = DateTime.Now;
+                while ((DateTime.Now - dateTime).TotalMilliseconds < 9000)// WaitReceiveDataTime)
+                {
+                    await System.Threading.Tasks.Task.Delay(10);
+                    if (result != null && result.defaultControlResponseData != null)
+                    {
+                        break;
+                    }
+                }
+                if ((DateTime.Now - dateTime).TotalMilliseconds > 9000)
+                {
+                    result = new DefaultControlResponseAllData
+                    { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
+                }
+                Gateway.Actions -= action;
+                DebugPrintLog("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString());
+
+                return result;
+            });
+        }
+
+        /// <summary>
+        /// 闊抽噺鍙戦�佹暟鎹�
+        ///<para>comandValue: 0 闈欓煶</para>
+        ///<para>comandValue:1 鏈�灏忛煶閲�</para>
+        ///<para>comandValue:2~13 闊抽噺 </para>
+        ///<para>comandValue:14 鏈�澶ч煶閲�</para> 
+        /// </summary>
+        public string VolumeData(int comandValue)
+        {
+            string data = "";
+            string dataLength = "05";
+            string dataComand1 = "55";
+            string dataComand2 = "04";
+            string dataSerialNum = "01";
+            string addDataLength = "01";
+            string cValue = "";
+            try
+            {
+                if (comandValue >= 1)
+                {
+                    //comandValue = comandValue * 100;
+                    //float v = (float)100 / 15;
+                    //int vv = Convert.ToInt32(v * 100);
+                    //var comandValueTemp = comandValue / vv;
+                    //if (comandValueTemp == 0)
+                    //{
+                    //    comandValueTemp = 1;
+                    //}
+                    cValue = Convert.ToString(comandValue, 16).ToUpper();
+                    cValue = "F" + cValue;
+                }
+                else
+                {
+                    switch (comandValue)
+                    {
+                        case -1:
+                            cValue = "AA";
+                            break;
+                        case 0:
+                            cValue = "EB";
+                            break;
+                    }
+                }
+                data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
+                   cValue;
+            }
+            catch (Exception ex)
+            {
+                var mess = ex.Message;
+            };
+            return data;
+        }
+
+        /// <summary>
+        /// 闊抽噺鍥炲鏁版嵁
+        /// </summary>
+        public VolumeResponseAllData volumeResponseAllData;
+        [System.Serializable]
+        public class VolumeResponseAllData
+        {
+            /// <summary>
+            /// 閿欒淇℃伅
+            /// </summary> 
+            public string errorMessageBase;
+            /// <summary>
+            /// 缃戝叧淇℃伅閿欒鍙嶉
+            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
+            /// </summary>
+            public ErrorResponData errorResponData;
+            /// <summary>
+            /// 闊抽噺鍥炲鏁版嵁
+            /// </summary>
+            public VolumeResponseData volumeResponseData;
+        }
+
+        /// <summary>
+        /// 闊抽噺鍥炲鏁版嵁
+        /// </summary>
+        [System.Serializable]
+        public class VolumeResponseData
+        {
+            /// <summary>
+            ///鍛戒护
+            ///<para>0x00 鎺ユ敹鎴愬姛</para>
+            ///<para>0xea 璇煶妯″紡</para>
+            ///<para>0xeb 闈欓煶妯″紡</para>
+            /// </summary>
+            public string command = "";
+            /// <summary>
+            /// 闊抽噺鍊�
+            /// <para>0xf1~0xfe  1-14闊抽噺</para>
+            /// <para>0 鏃犻煶閲忓��</para>
+            /// </summary>
+            public int value = -1;
+        }
+        #endregion
+
+        #region 甯稿紑妯″紡聽聽聽 聽聽聽聽聽
+        /// <summary>
+        /// 璇诲彇甯稿紑妯″紡
+        /// </summary>
+        /// <returns></returns>
+        public async System.Threading.Tasks.Task<OpenModeResponseAllData> ReadNormallyOpenModeFuncAsync()
+        {
+            OpenModeResponseAllData result = null;
+            if (Gateway == null)
+            {
+                result = new OpenModeResponseAllData { errorMessageBase = "褰撳墠娌℃湁缃戝叧" };
+                return result;
+            }
+            return await System.Threading.Tasks.Task.Run(async () =>
+            {
+                Action<string, string> action = (topic, message) =>
+                {
+                    var gatewayID = topic.Split('/')[0];
+                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+
+                    if (topic == gatewayID + "/" + "Error_Respon")
+                    {
+                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+
+                        if (temp == null)
+                        {
+                            result = new OpenModeResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                        }
+
+                        else
+                        {
+                            result = new OpenModeResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                        }
+                    }
+                    if (topic == gatewayID + "/" + "ZbDataPassthrough")
+                    {
+                        var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
+                        gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+
+                        if (gatewayTemp.clientDataPassthroughResponseData == null)
+                        {
+                            result = new OpenModeResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                        }
+                        else
+                        {
+                            if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
+                            {
+                                var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
+                                if (data.Length == 12)
+                                {
+                                    var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
+                                    if (command == "0458")
+                                    {
+                                        result = new OpenModeResponseAllData();
+                                        result.command = data[10].ToString() + data[11].ToString();
+                                        DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0457_{ topic}");
+                                    }
+                                }
+                            }
+                        }
+                    }
+                };
+
+                Gateway.Actions += action;
+                DebugPrintLog("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString());
+
+                try
+                {
+                    var passData = OpenModeData(SwitchMode.Obtain);
+                    var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
+                    var data = new JObject { { "PassData", passData } };
+                    jObject.Add("Data", data);
+                    Gateway.Send(("ClientDataPassthrough"), jObject.ToString());
+                }
+                catch { }
+
+                var dateTime = DateTime.Now;
+                while ((DateTime.Now - dateTime).TotalMilliseconds < 9000)// WaitReceiveDataTime)
+                {
+                    await System.Threading.Tasks.Task.Delay(10);
+                    if (result != null)
+                    {
+                        break;
+                    }
+                }
+                if ((DateTime.Now - dateTime).TotalMilliseconds > 9000)
+                {
+                    result = new OpenModeResponseAllData
+                    { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
+                }
+                Gateway.Actions -= action;
+                DebugPrintLog("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString());
+
+                return result;
+            });
+        }
+
+        /// <summary>
+        /// 璁剧疆甯稿紑妯″紡
+        /// </summary>
+        /// <param name="IsNormallyOpenMode">鏄惁鎵撳紑甯稿紑妯″紡锛歵rue锛氭墦寮� false锛氬叧闂�</param>
+        /// <returns></returns>
+        public async System.Threading.Tasks.Task<DefaultControlResponseAllData> SetNormallyOpenModeFuncAsync(bool IsNormallyOpenMode)
+        {
+            DefaultControlResponseAllData result = null;
+            if (Gateway == null)
+            {
+                result = new DefaultControlResponseAllData { errorMessageBase = "褰撳墠娌℃湁缃戝叧" };
+                return result;
+            }
+            return await System.Threading.Tasks.Task.Run(async () =>
+            {
+                Action<string, string> action = (topic, message) =>
+                {
+                    var gatewayID = topic.Split('/')[0];
+                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+
+                    if (topic == gatewayID + "/" + "Error_Respon")
+                    {
+                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+
+                        if (temp == null)
+                        {
+                            result = new DefaultControlResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                        }
+
+                        else
+                        {
+                            result = new DefaultControlResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                        }
+                    }
+                    if (topic == gatewayID + "/" + "ZbDataPassthrough")
+                    {
+                        var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
+                        gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+
+                        if (gatewayTemp.clientDataPassthroughResponseData == null)
+                        {
+                            result = new DefaultControlResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                        }
+                        else
+                        {
+                            if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
+                            {
+                                var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
+                                if (data.Length == 16)
+                                {
+                                    var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
+                                    if (command == "0002")
+                                    {
+                                        var tempD = new DefaultControlResponseData();
+                                        tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
+                                        tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
+                                        if (tempD.command == "0457")
+                                        {
+                                            result = new DefaultControlResponseAllData { defaultControlResponseData = tempD };
+                                            DebugPrintLog($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0457_{ topic}");
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                };
+
+                Gateway.Actions += action;
+                DebugPrintLog("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString());
+
+                try
+                {
+                    var passData = "";
+                    if (IsNormallyOpenMode)
+                    {
+                        passData = OpenModeData(SwitchMode.NormallyOpen);
+                    }
+                    else
+                    {
+                        passData = OpenModeData(SwitchMode.NormallyClose);
+                    }
+                    var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
+                    var data = new JObject { { "PassData", passData } };
+                    jObject.Add("Data", data);
+                    Gateway.Send(("ClientDataPassthrough"), jObject.ToString());
+                }
+                catch { }
+
+                var dateTime = DateTime.Now;
+                while ((DateTime.Now - dateTime).TotalMilliseconds < 9000)// WaitReceiveDataTime)
+                {
+                    await System.Threading.Tasks.Task.Delay(10);
+                    if (result != null && result.defaultControlResponseData != null)
+                    {
+                        break;
+                    }
+                }
+                if ((DateTime.Now - dateTime).TotalMilliseconds > 9000)
+                {
+                    result = new DefaultControlResponseAllData
+                    { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
+                }
+                Gateway.Actions -= action;
+                DebugPrintLog("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString());
+
+                return result;
+            });
+        }
+
+        /// <summary>
+        /// 甯稿紑妯″紡聽鍙戦�佹暟鎹�
+        /// </summary>
+        public string OpenModeData(SwitchMode switchMode)
+        {
+            string data = "";
+            string dataLength = "05";
+            string dataComand1 = "57";
+            string dataComand2 = "04";
+            string dataSerialNum = "01";
+            string addDataLength = "01";
+            string cValue = "";
+            try
+            {
+                switch (switchMode)
+                {
+                    case SwitchMode.Obtain:
+                        cValue = "10";
+                        break;
+                    case SwitchMode.NormallyOpen:
+                        cValue = "12";
+                        break;
+                    case SwitchMode.NormallyClose:
+                        cValue = "13";
+                        break;
+                }
+                data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
+                   cValue;
+            }
+            catch (Exception ex)
+            {
+                var mess = ex.Message;
+            };
+            return data;
+        }
+
+        /// <summary>
+        /// 甯稿紑妯″紡聽鍥炲鏁版嵁
+        /// </summary>
+        public OpenModeResponseAllData openModeResponseAllData;
+        [System.Serializable]
+        public class OpenModeResponseAllData
+        {
+            /// <summary>
+            /// 閿欒淇℃伅
+            /// </summary> 
+            public string errorMessageBase;
+            /// <summary>
+            /// 缃戝叧淇℃伅閿欒鍙嶉
+            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
+            /// </summary>
+            public ErrorResponData errorResponData;
+            /// <summary> 
+            /// 0x10 甯稿紑宸插紑鍚� 
+            /// <para>0x11 甯稿紑宸插叧闂�</para>
+            /// </summary>
+            public string command;
+        }
+
+
+        /// <summary>
+        /// 寮�鍏虫ā寮�
+        /// </summary>
+        public enum SwitchMode
+        {
+            /// <summary>
+            /// 0x10 鏌ヨ甯稿紑鐘舵��
+            /// </summary>
+            Obtain = 0x10,
+            /// <summary>
+            /// 0x12 寮�鍚父寮�
+            /// </summary>
+            NormallyOpen = 0x12,
+            /// <summary>
+            /// 0x13 鍏抽棴甯稿紑
+            /// </summary>
+            NormallyClose = 0x13
+        }
+        #endregion
+
         #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/Enum.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/Enum.cs
index 13d11fe..7943391 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/Enum.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/Enum.cs
@@ -10,6 +10,10 @@
         /// </summary>
         Basic = 0,
         /// <summary>
+        /// 鏌ヨ鐢甸噺
+        /// </summary>
+        Power = 1,
+        /// <summary>
         /// 璁惧璇嗗埆鍔熻兘
         /// </summary>
         Identify = 3,
@@ -303,6 +307,11 @@
         /// 纭欢鐗堟湰
         /// </summary>
         mgHWversion = 65024,
+
+        /// <summary>
+        /// 闂ㄩ攣鐢甸噺
+        /// </summary>
+        DoorLockPower = 33,
     }
 
     /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/Logic.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/Logic.cs
deleted file mode 100755
index fe7ef5e..0000000
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/Logic.cs
+++ /dev/null
@@ -1,3770 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-using Newtonsoft.Json.Linq;
-
-namespace ZigBee.Device
-{
-    [System.Serializable]
-    public class Logic
-    {
-        /// <summary>
-        /// 褰撳墠涓荤綉鍏矷D
-        /// </summary>
-        public string GateWayId;
-
-        /// <summary>
-        /// 鍏ョ綉璁惧淇℃伅
-        /// </summary>
-        public int DataID;
-
-        /// <summary>
-        /// 缃戝叧鍙嶉鐨勬椂闂存埑
-        /// </summary>
-        public int Time;
-
-        [System.Serializable]
-        public class LogicBase
-        {
-            /// <summary> 
-            /// 閫昏緫id锛岄�昏緫鐨勫敮涓�鏍囪瘑銆傚鏋滆閫昏緫宸茬粡瀛樺湪锛屽垯灏嗗師鏉ラ�昏緫瑕嗙洊銆�
-            ///<para>鑻ュ拷鐣ヨ瀛楁鎴栬瀛楁涓�0锛氱綉鍏宠嚜鍔ㄤ负璇ラ�昏緫鍒嗛厤涓�涓湭琚娇鐢ㄧ殑id銆�</para>
-            /// </summary>
-            public int LogicId;
-        }
-
-        /// <summary>
-        /// 缃戝叧淇℃伅閿欒鍙嶉
-        /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-        /// </summary>
-        ErrorResponData errResponData;
-        /// <summary>
-        /// 缃戝叧淇℃伅閿欒鍙嶉
-        /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-        /// </summary>
-        [System.Serializable]
-        public class ErrorResponData
-        {
-            /// <summary>
-            /// Error鍙傛暟鍚箟
-            ///<para>1锛氱綉鍏虫棤娉曡В鏋愬懡浠ゆ暟鎹��</para> 
-            ///<para>2锛氬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁
-            ///<para>3锛氭搷浣滆澶�/缁�/鍦烘櫙涓嶅瓨鍦�</para> 
-            ///<para>4锛氬叾浠栭敊璇�</para> 
-            ///<para>5锛氭暟鎹紶杈撻敊璇紙鍦ㄦ煇娆″鎴风鍚戠綉鍏冲彂閫佹暟鎹殑杩囩▼涓紝缃戝叧鍦ㄥ悎鐞嗘椂闂磋寖鍥村唴鎺ユ敹瀹㈡埛绔暟鎹笉瀹屾暣瀵艰嚧璇ラ敊璇彂鐢熴�傚瀹㈡埛绔悜缃戝叧涓�娆″彂閫�100涓瓧鑺傜殑鏁版嵁锛屼絾缃戝叧绛夊緟鎺ユ敹浜嗕竴绉掑彧鎺ユ敹浜�80涓瓧鑺傘�傚彂鐢熻閿欒锛岀綉鍏冲皢涓诲姩鍏抽棴瀹㈡埛绔繛鎺ワ級</para> 
-            /// </summary>
-            public int Error;
-        }
-
-        /// <summary>
-        /// 缃戝叧淇℃伅閿欒鍙嶉鐨勫唴瀹�
-        /// </summary>
-        static string ErrorMess(int err)
-        {
-            string message = "";
-            switch (err)
-            {
-                case 1:
-                    message = " 缃戝叧鏃犳硶瑙f瀽鍛戒护鏁版嵁銆�";
-                    break;
-                case 2:
-                    message = " 鍗忚皟鍣ㄦ鍦ㄥ崌绾ф垨澶囦唤 / 鎭㈠鏁版嵁銆�";
-                    break;
-                case 3:
-                    message = "鎿嶄綔璁惧 / 缁� / 鍦烘櫙涓嶅瓨鍦�";
-                    break;
-                case 4:
-                    message = " 鍏朵粬閿欒";
-                    break;
-                case 5:
-                    message = " 鏁版嵁浼犺緭閿欒锛堝湪鏌愭瀹㈡埛绔悜缃戝叧鍙戦�佹暟鎹殑杩囩▼涓紝缃戝叧鍦ㄥ悎鐞嗘椂闂磋寖鍥村唴鎺ユ敹瀹㈡埛绔暟鎹笉瀹屾暣瀵艰嚧璇ラ敊璇彂鐢熴�傚瀹㈡埛绔悜缃戝叧涓�娆″彂閫�100涓瓧鑺傜殑鏁版嵁锛屼絾缃戝叧绛夊緟鎺ユ敹浜嗕竴绉掑彧鎺ユ敹浜�80涓瓧鑺傘�傚彂鐢熻閿欒锛岀綉鍏冲皢涓诲姩鍏抽棴瀹㈡埛绔繛鎺ワ級";
-                    break;
-                default:
-                    break;
-            }
-            return message;
-        }
-
-        #region 褰撳墠娌℃湁涓荤綉鍏筹紝鏃犳硶杩涜閫昏緫鎿嶄綔
-        /// <summary>
-        ///褰撳墠娌℃湁涓荤綉鍏筹紝鏃犳硶杩涜閫昏緫鎿嶄綔
-        /// </summary>
-        public GetLogicErrorData getLogicError;
-        /// <summary>
-        ///褰撳墠娌℃湁涓荤綉鍏筹紝鏃犳硶杩涜閫昏緫鎿嶄綔
-        /// </summary>
-        [System.Serializable]
-        public class GetLogicErrorData
-        {
-            /// <summary>
-            /// 1锛氱綉鍏充笉鏄富缃戝叧锛屾棤娉曡繘琛岃鎿嶄綔銆�
-            /// </summary>
-            public int Error;
-        }
-        #endregion
-
-        #region 鍦ㄤ粠缃戝叧涓彂鍦烘櫙鐨勫懡浠ょ殑鍙嶉
-        /// <summary>
-        ///鍦ㄤ粠缃戝叧涓彂鍦烘櫙鐨勫懡浠ょ殑鍙嶉
-        /// </summary>
-        public SceneErrorRespon sceneErrorRespon;
-        /// <summary>
-        ///鍦ㄤ粠缃戝叧涓彂鍦烘櫙鐨勫懡浠ょ殑鍙嶉
-        /// </summary>
-        [System.Serializable]
-        public class SceneErrorRespon
-        {
-            /// <summary>
-            /// 闈炰富缃戝叧涓嶈兘浣跨敤鍦烘櫙鎸囦护銆�
-            /// </summary>
-            public int Data_ID;
-
-        }
-        #endregion
-
-        #region 娣诲姞鎴栦慨鏀归�昏緫.
-        /// <summary>
-        /// 娣诲姞鎴栦慨鏀归�昏緫
-        /// </summary>
-        public static async System.Threading.Tasks.Task<AddLogicResponseAllData> AddLogicAsync(AddLogicData addLogicData)
-        {
-            return await System.Threading.Tasks.Task.Run(async () =>
-            {
-                AddLogicResponseAllData allData =null;
-                if (ZbGateway.MainGateWay == null)
-                {
-                    allData = new AddLogicResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
-                    return allData;
-                }
-
-                Action<string, string> action = (topic, message) =>
-                {
-                    var gatewayID = topic.Split('/')[0];
-                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-                    if (topic == gatewayID + "/" + "Error_Respon")
-                    {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
-
-                        if (temp == null)
-                        {
-                            allData = new AddLogicResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                        }
-                        else
-                        {
-                            allData = new AddLogicResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                        }
-                    }
-
-                    if (topic == gatewayID + "/" + "Logic/AddLogic_Respon")
-                    {
-                        try
-                        {
-                            var logic = new Logic() { DataID = jobject.Value<int>("Data_ID"), GateWayId = ZbGateway.MainGateWay.CurrentGateWayId };
-                            var tempTimeAttribute = Newtonsoft.Json.JsonConvert.DeserializeObject<TimeAttributeObj>(jobject["Data"]["TimeAttribute"].ToString());
-                            var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<GetLogicInfoResponseBaseData>(jobject["Data"].ToString());
-                            if (tempData != null)
-                            {
-                                var conditions = Newtonsoft.Json.Linq.JArray.Parse(jobject["Data"]["Conditions"].ToString());
-                                allData = new AddLogicResponseAllData { };
-                                var tempD = new GetLogicInfoResponseData { };
-                                for (int m = 0; conditions != null && m < conditions.Count; m++)
-                                {
-                                    var condition = conditions[m];
-                                    switch (condition["Type"].ToString())
-                                    {
-                                        case "0":
-                                            tempD.Conditions.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.TimeConditionsInfo>(condition.ToString()));
-                                            break;
-                                        case "1":
-                                            tempD.Conditions.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.DeviceConditionsInfo>(condition.ToString()));
-                                            break;
-                                        case "2":
-                                            tempD.Conditions.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.LogicConditionsInfo>(condition.ToString()));
-                                            break;
-                                        case "3":
-                                            tempD.Conditions.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.CounterConditionsInfo>(condition.ToString()));
-                                            break;
-                                        case "4":
-                                            tempD.Conditions.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.CountdownConditionsInfo>(condition.ToString()));
-                                            break;
-                                        case "5":
-                                            tempD.Conditions.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.TimeBucketConditionsInfo>(condition.ToString()));
-                                            break;
-                                    }
-                                } 
-                                if (tempTimeAttribute != null) { tempD.TimeAttribute = tempTimeAttribute; }
-                                if (tempData.LogicName != null) { tempD.LogicName = tempData.LogicName; }
-                                 if (tempData.Actions != null) { tempD.Actions = tempData.Actions; }
-                                tempD.LogicId = tempData.LogicId;
-                                tempD.IsEnable = tempData.IsEnable;
-                                tempD.Relationship = tempData.Relationship;
-                                tempD.Result = tempData.Result;
-                                allData.getLogicInfoResponseData = tempD;
-
-                                var info = ZbGateway.LogicList.Find((Logic.GetLogicInfoResponseData obj) => obj.LogicId == tempData.LogicId);
-                                if (info == null)
-                                {
-                                    ZbGateway.LogicList.Add(allData.getLogicInfoResponseData);
-                                }
-                                else
-                                {
-                                    info.LogicName = tempD.LogicName;
-                                    info.Result = tempD.Result;
-                                    info.Relationship = tempD.Relationship;
-                                    info.IsEnable = tempD.IsEnable;
-                                    info.Conditions = tempD.Conditions;
-                                    info.Actions = tempD.Actions;
-                                    info.TimeAttribute = tempD.TimeAttribute;
-                                }
-                                System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                            }
-                        }
-                        catch(Exception ex){
-                            var mess = ex.Message;
-                        }
-                     }
-                };
-                ZbGateway.MainGateWay.Actions += action;
-                System.Console.WriteLine("Logic/AddLogic_Actions 鍚姩" + System.DateTime.Now.ToString());
-
-                try
-                {
-                    if (addLogicData != null)
-                    {
-                        var bytes = new byte[32];
-                        var reamarkGwBytes = System.Text.Encoding.UTF8.GetBytes(addLogicData.LogicName);
-                        System.Array.Copy(reamarkGwBytes, 0, bytes, 0, 32 < reamarkGwBytes.Length ? 32 : reamarkGwBytes.Length);
-                        addLogicData.LogicName = System.Text.Encoding.UTF8.GetString(bytes);
-
-                        var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 2000 } };
-                        var data = new JObject { };
-
-                        var conditionsList = new JArray { };
-                        foreach (var conInfo in addLogicData.Conditions)
-                        {
-                            switch (conInfo.Type)
-                            {
-                                case 0:
-                                    var timeConditionsObj = conInfo as TimeConditionsInfo;
-                                    var tInfo = new JObject
-                                    {
-                                        ["Type"] = timeConditionsObj.Type,
-                                        ["IsValid"] = timeConditionsObj.IsValid,
-                                        ["DateType"] = timeConditionsObj.DateType,
-                                        ["StartHour"] = timeConditionsObj.StartHour,
-                                        ["StartMin"] = timeConditionsObj.StartMin,
-                                        ["AdjustTime"] = timeConditionsObj.AdjustTime,
-                                        ["RemindTime"] = timeConditionsObj.RemindTime,
-                                        ["EnDelay"] = timeConditionsObj.EnDelay,
-                                        ["DelayTime"] = timeConditionsObj.DelayTime
-                                    };
-                                    conditionsList.Add(tInfo);
-                                    break;
-                                case 1:
-                                    var deviceConditionsObj = conInfo as DeviceConditionsInfo;
-                                    var dInfo = new JObject
-                                    {
-                                        ["Type"] = deviceConditionsObj.Type,
-                                        ["IsValid"] = deviceConditionsObj.IsValid,
-                                        ["MacAddr"] = deviceConditionsObj.MacAddr,
-                                        ["Epoint"] = deviceConditionsObj.Epoint,
-                                        ["Cluster_ID"] = deviceConditionsObj.Cluster_ID,
-                                        ["AttriButeId"] = deviceConditionsObj.AttriButeId,
-                                        ["AttriButeData1"] = deviceConditionsObj.AttriButeData1,
-                                        ["AttriButeData2"] = deviceConditionsObj.AttriButeData2,
-                                        ["Range"] = deviceConditionsObj.Range,
-                                    };
-                                    conditionsList.Add(dInfo);
-                                    break;
-                                case 2:
-                                    var logicConditionsObj = conInfo as LogicConditionsInfo;
-                                    var lInfo = new JObject
-                                    {
-                                        ["Type"] = logicConditionsObj.Type,
-                                        ["IsValid"] = logicConditionsObj.IsValid,
-                                        ["Condition_LogicId"] = logicConditionsObj.Condition_LogicId,
-                                    };
-                                    conditionsList.Add(lInfo);
-                                    break;
-                                case 3:
-                                    var cConditionsObj = conInfo as CounterConditionsInfo;
-                                    var cInfo = new JObject
-                                    {
-                                        ["Type"] = cConditionsObj.Type,
-                                        ["IsValid"] = cConditionsObj.IsValid,
-                                        ["MacAddr"] = cConditionsObj.MacAddr,
-                                        ["Epoint"] = cConditionsObj.Epoint,
-                                        ["Cluster_ID"] = cConditionsObj.Cluster_ID,
-                                        ["AttriButeId"] = cConditionsObj.AttriButeId,
-                                        ["AttriButeData1"] = cConditionsObj.AttriButeData1,
-                                        ["AttriButeData2"] = cConditionsObj.AttriButeData2,
-                                        ["Range"] = cConditionsObj.Range,
-                                        ["Number"] = cConditionsObj.Number,
-                                        ["Time"] = cConditionsObj.Time,
-                                        ["Cycle"] = cConditionsObj.Cycle,
-                                    };
-                                    conditionsList.Add(cInfo);
-                                    break;
-                                case 4:
-                                    var cdConditionsObj = conInfo as CountdownConditionsInfo;
-                                    var cdInfo = new JObject
-                                    {
-                                        ["Type"] = cdConditionsObj.Type,
-                                        ["IsValid"] = cdConditionsObj.IsValid,
-                                        ["Time"] = cdConditionsObj.Time,
-                                    };
-                                    conditionsList.Add(cdInfo);
-                                    break;
-                                case 5:
-                                    var tbConditionsObj = conInfo as TimeBucketConditionsInfo;
-                                    var tbInfo = new JObject
-                                    {
-                                        ["Type"] = tbConditionsObj.Type,
-                                        ["IsValid"] = tbConditionsObj.IsValid,
-                                        ["StartHour"] = tbConditionsObj.StartHour,
-                                        ["StartMin"] = tbConditionsObj.StartMin,
-                                        ["StopHour"] = tbConditionsObj.StopHour,
-                                        ["StopMin"] = tbConditionsObj.StopMin,
-                                    };
-                                    conditionsList.Add(tbInfo);
-                                    break;
-                                case 6:
-                                    var sConditionsObj = conInfo as SecurityConditionsInfo;
-                                    var sInfo = new JObject
-                                    {
-                                        ["Type"] = sConditionsObj.Type,
-                                        ["IsValid"] = sConditionsObj.IsValid,
-                                        ["EnOrWithdrawMode"] = sConditionsObj.EnOrWithdrawMode,
-                                        ["ModeId"] = sConditionsObj.ModeId,
-                                    };
-                                    conditionsList.Add(sInfo);
-                                    break;
-                            }
-                        }
-
-                        var actionsList = new JArray { };
-                        foreach (var actInfo in addLogicData.Actions)
-                        {
-                            switch (actInfo.LinkType)
-                            {
-                                case 0:
-                                    var taskList = new JArray { };
-                                    foreach (var taskInfo in actInfo.TaskList)
-                                    {
-                                        var info = new JObject{
-                            { "TaskType", taskInfo.TaskType},
-                            { "Data1", taskInfo.Data1},
-                            { "Data2",taskInfo.Data2}
-                            };
-                                        taskList.Add(info);
-                                    }
-                                    var tInfo = new JObject
-                                    {
-                                        ["LinkType"] = actInfo.LinkType,
-                                        ["DeviceAddr"] = actInfo.DeviceAddr,
-                                        ["Epoint"] = actInfo.Epoint,
-                                        ["Time"] = actInfo.Time,
-                                        ["taskList"] = taskList,
-
-                                    };
-                                    actionsList.Add(tInfo);
-                                    break;
-                                case 2:
-                                    var dInfo = new JObject
-                                    {
-                                        ["LinkType"] = actInfo.LinkType,
-                                        ["DeviceAddr"] = int.Parse(actInfo.DeviceAddr),
-                                        ["ConditionId"] = actInfo.ConditionId,
-                                        ["EnableCondition"] = actInfo.EnableCondition,
-                                    };
-                                    actionsList.Add(dInfo);
-                                    break;
-                                case 4:
-                                    var lInfo = new JObject
-                                    {
-                                        ["LinkType"] = actInfo.LinkType,
-                                        ["EnableLogic"] = actInfo.EnableLogic,
-                                    };
-                                    actionsList.Add(lInfo);
-                                    break;
-                                case 5:
-                                    var cInfo = new JObject
-                                    {
-                                        ["LinkType"] = actInfo.LinkType,
-                                        ["DeviceAddr"] = int.Parse(actInfo.DeviceAddr),
-                                        ["ConditionId"] = actInfo.ConditionId,
-                                        ["EnableCondition"] = actInfo.EnableCondition,
-                                    };
-                                    actionsList.Add(cInfo);
-                                    break;
-                                case 6:
-                                    var cdInfo = new JObject
-                                    {
-                                        ["LinkType"] = actInfo.LinkType,
-                                        ["SecuritySetting"] = actInfo.SecuritySetting,
-                                        ["SecurityModeId"] = actInfo.SecurityModeId,
-                                        ["CheckIASStatus"] = actInfo.CheckIASStatus,
-                                        ["IsDelayStart"] = actInfo.IsDelayStart,
-                                        ["Password"] = actInfo.Password,
-                                    };
-                                    actionsList.Add(cdInfo);
-                                    break;
-                            }
-                        }
-                         
-                        var selectMonthList = new JArray { };
-                        foreach (var sm in addLogicData.TimeAttribute.SelectMonDate)
-                        {
-                            var aad = sm;
-                             selectMonthList.Add(sm);
-                        }
-                        var dataAttribute = new JObject
-                        {
-                         { "Calendar",addLogicData.TimeAttribute.Calendar},
-                         { "Repeat", addLogicData.TimeAttribute.Repeat} ,
-                         { "WeekDay", addLogicData.TimeAttribute.WeekDay} ,
-                         { "SetYear",addLogicData.TimeAttribute.SetYear} ,
-                         { "MonthDate", addLogicData.TimeAttribute.MonthDate} ,
-                         { "SelectMonDate", selectMonthList }
-                        };
-                        data = new JObject {
-                         { "LogicId",addLogicData.LogicId},
-                         { "IsEnable", addLogicData.IsEnable} ,
-                         { "LogicName", addLogicData.LogicName} ,
-                         { "Relationship",addLogicData.Relationship} ,
-                         { "TimeAttribute", dataAttribute} ,
-                         { "Conditions", conditionsList },
-                         { "Actions", actionsList }
-                        };
-                        jObject.Add("Data", data);
-                         ZbGateway.MainGateWay?.Send("Logic/AddLogic", jObject.ToString());
-                    }
-                }
-                catch { }
-               
-
-                var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < 2000)
-                {
-                    await System.Threading.Tasks.Task.Delay(10);
-                    if (allData != null)
-                    {
-                        break;
-                    }
-                }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > 2000)
-                {
-                    allData = new AddLogicResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
- 
-                }
-                ZbGateway.MainGateWay.Actions -= action;
-                System.Console.WriteLine("Logic/AddLogic_Actions 閫�鍑�" + System.DateTime.Now.ToString());
-
-                return allData;
-            });
-        }
-
-        /// <summary>
-        /// 娣诲姞鎴栦慨鏀归�昏緫鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
-        /// </summary>
-        public AddLogicResponseAllData addLogicResponseAllData;
-        /// <summary>
-        /// 娣诲姞鎴栦慨鏀归�昏緫鐨勬暟鎹�,缃戝叧鍙嶉淇℃伅
-        /// </summary>
-        [System.Serializable]
-        public class AddLogicResponseAllData
-        {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
-            /// <summary>
-            /// 娣诲姞鎴栦慨鏀归�昏緫鐨勬暟鎹�
-            /// </summary>
-            public GetLogicInfoResponseData getLogicInfoResponseData;
-        }
-
-        /// <summary>
-        /// 娣诲姞鎴栦慨鏀归�昏緫杩斿洖鐨勬暟鎹�
-        /// </summary>
-        //public AddLogicResposeData addLogicResposeData;
-        ///// <summary>
-        ///// 娣诲姞鎴栦慨鏀归�昏緫杩斿洖鐨勬暟鎹�
-        ///// </summary>
-        //[System.Serializable]
-        //public class AddLogicResposeData : LogicBase
-        //{ 
-        //    /// <summary>
-        //    /// 璇ラ�昏緫鏄惁琚娇鑳姐��
-        //    ///<para>0锛氱鐢ㄨ閫昏緫</para>
-        //    ///<para>1锛氫娇鑳借閫昏緫</para>
-        //    ///<para>2: 鍙Е鍙戜竴娆°�傝Е鍙戝悗璇ュ瓧娈靛皢鑷姩缃负0锛屽嵆绂佺敤鐘舵��</para>
-        //    ///<para>3锛氬彧澶辫兘涓�娆°�傝Е鍙戝悗锛屼笉鎵ц閫昏緫鍔ㄤ綔锛岃瀛楁鑷姩缃负1锛岀瓑寰呬笅娆¤Е鍙戙��</para>
-        //    /// </summary>
-        //    public int IsEnable;
-
-        //    /// <summary>
-        //    /// 閫昏緫鍚嶇О
-        //    /// </summary>
-        //    public string LogicName;
-
-        //    /// <summary>
-        //    ///閫昏緫鍏崇郴銆�
-        //    ///<para>0锛氭弧瓒虫墍鏈夋潯浠惰Е鍙戝姩浣�</para>
-        //    ///<para>1锛氭弧瓒冲叾涓竴涓潯浠惰Е鍙戝姩浣�</para>
-        //    /// </summary>
-        //    public int Relationship;
-  
-        //    /// <summary>
-        //    /// 閫昏緫鏉′欢鍒楄〃
-        //    /// </summary>
-         //    public List<ConditionBase> Conditions = new List<ConditionBase>();
-
-        //    /// <summary>
-        //    /// 鏉′欢婊¤冻鍚庢墽琛岀殑鍔ㄤ綔鍒楄〃
-        //    /// </summary>
-         //    public List<ActionsInfo> Actions = new List<ActionsInfo>();
-        //}
-
-        /// <summary>
-        /// 娣诲姞鎴栦慨鏀归�昏緫鐨勬暟鎹�
-        /// </summary>
-        public AddLogicData addLogicData;
-        /// <summary>
-        /// 娣诲姞鎴栦慨鏀归�昏緫鐨勬暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class AddLogicData : LogicBase
-        {
-            /// <summary>
-            /// 閫昏緫鍚嶇О
-            /// </summary>
-            public string LogicName = "";
-
-            /// <summary>
-            /// 璇ラ�昏緫鏄惁琚娇鑳姐��
-            ///<para>0锛氱鐢ㄨ閫昏緫</para>
-            ///<para>1锛氫娇鑳借閫昏緫</para>
-            ///<para>2: 鍙Е鍙戜竴娆°�傝Е鍙戝悗璇ュ瓧娈靛皢鑷姩缃负0锛屽嵆绂佺敤鐘舵��</para>
-            ///<para>3锛氬彧澶辫兘涓�娆°�傝Е鍙戝悗锛屼笉鎵ц閫昏緫鍔ㄤ綔锛岃瀛楁鑷姩缃负1锛岀瓑寰呬笅娆¤Е鍙戙��</para>
-            /// </summary>
-            public int IsEnable = 1;
-
-            /// <summary>
-            ///閫昏緫鍏崇郴銆�
-            ///<para>0锛氭弧瓒虫墍鏈夋潯浠惰Е鍙戝姩浣�</para>
-            ///<para>1锛氭弧瓒冲叾涓竴涓潯浠惰Е鍙戝姩浣�</para>
-            /// </summary>
-            public int Relationship;
-
-            /// <summary>
-            ///閫昏緫鍏崇郴銆�
-            ///<para>0锛氭弧瓒虫墍鏈夋潯浠惰Е鍙戝姩浣�</para>
-            ///<para>1锛氭弧瓒冲叾涓竴涓潯浠惰Е鍙戝姩浣�</para>
-            /// </summary>
-            public TimeAttributeObj TimeAttribute=new TimeAttributeObj();
-
-            /// <summary>
-            /// 閫昏緫鏉′欢鍒楄〃
-            /// </summary>
-             public List<ConditionBase> Conditions = new List<ConditionBase>();
-
-            /// <summary>
-            /// 鏉′欢婊¤冻鍚庢墽琛岀殑鍔ㄤ綔鍒楄〃
-            /// </summary>
-             public List<ActionsInfo> Actions = new List<ActionsInfo>();
-        } 
-
-        /// <summary>
-        /// 鎻忚堪閫昏緫鏃堕棿灞炴��
-        /// </summary>
-        [System.Serializable]
-        public class TimeAttributeObj
-        {
-            /// <summary>
-            ///鏉′欢绫诲瀷
-            ///0锛氶槼鍘� 1锛氬啘鍘�
-            /// </summary>
-            public int Calendar;
-
-            /// <summary>
-            /// 鏃堕棿閲嶅鎬э細鐢ㄤ簬闄愬埗閫昏緫鐨勬墽琛屾椂闂�
-            ///<para>0锛氫竴娆℃�э紝鍙墽琛屼竴娆★紝鎵ц鍚嶪sEnable鍊肩疆0</para>
-            ///<para>1锛氫粖骞村唴鎵ц</para>
-            ///<para>2锛氭瘡澶╂墽琛�</para>
-            ///<para>3锛氭瘡鏈堟墽琛�</para>
-            ///<para>4锛氭瘡骞存墽琛�</para>
-            ///<para>5锛氬懆閲嶅銆�</para>         
-            /// </summary>
-            public int Repeat;
-
-            /// <summary>
-            /// 鍛ㄥ伐浣滄ā寮忥紙鍙垨杩愮畻锛夛紝褰揜epeat=5鏃舵湁鏁堬紝Repeat涓哄叾浠栧�兼椂鍙拷鐣ヨ瀛楁銆�
-            ///<para>0x01 鍛ㄤ竴鎵ц</para>  
-            ///<para>0x02 鍛ㄤ簩鎵ц</para>  
-            ///<para>0x04 鍛ㄤ笁鎵ц</para>  
-            ///<para>0x08 鍛ㄥ洓鎵ц</para>  
-            ///<para>0x10 鍛ㄤ簲鎵ц</para>  
-            ///<para>0x20 鍛ㄥ叚鎵ц</para>  
-            ///<para>0x40 鍛ㄦ棩鎵ц</para>  
-            ///<para>0x7F 姣忓ぉ鎵ц</para>  
-            ///<para>鏁板�煎彲杩涜鎴栬繍绠楋紝濡傚懆涓�銆佸懆涓夈�佸懆浜旀墽琛岋紝鍒欎负WeekDay=锛�0x01 || 0x04 || 0x10锛�= 0x15 鍗冲崄杩涘埗 21銆�</para>  
-            /// </summary>
-            /// <value>The week day.</value>
-            public int WeekDay;
-
-            /// <summary>
-            ///褰揜epeat = 1鏃讹紝璇ュ弬鏁版墠鏈夋晥銆傝〃绀烘煇涓勾浠藉唴鎵嶆墽琛屻�傚SetYear = 2020锛屽垯琛ㄧず璇ユ潯浠�2020鍐呮墠浼氳鎵ц銆傚鏋滆瀛楁琚拷鐣ユ垨璁惧畾涓� 0 锛岀綉鍏冲皢鑷姩濉叆浠婂勾鐨勫勾浠戒綔涓烘墽琛屽勾浠姐��
-            ///鍙拷鐣ワ紝榛樿涓鸿瀹氭潯浠舵椂鐨勫勾浠姐��
-            /// </summary>
-            public int SetYear;
-
-            /// <summary>
-            ///鏉′欢绫诲瀷
-            ///閲嶅绫诲瀷涓烘瘡鏈堟墽琛屾椂閫夋嫨鐨勬棩鏈熴��32浣嶆暣鍨嬶紝bit鍊肩0浣嶅埌绗�30浣嶅垎鍒唬琛ㄦ瘡鏈堢殑1鍙峰埌31鍙凤紝浣嶅�间负1鍒欒〃绀鸿鏃ユ湡鍙墽琛岄�昏緫锛屼綅鍊间负0鍒欒鏃ユ湡涓嶅彲鎵ц閫昏緫銆傚锛孧onthDate=91锛屽垯浜岃繘鍒跺�间负锛�1011011  锛屽彲鐭it0=1锛屾墍浠�1鍙峰彲鎵ц銆侭it1=1锛屾墍浠�2鍙峰彲鎵ц銆侭it2=0锛�3鍙蜂笉鍙墽琛屻�侭it3鍜宐it4涓�1鎵�浠�4銆�5鍙峰彲鎵ц銆侭it5涓�0锛�6鍙蜂笉鍙墽琛屻�侭it6涓�1锛�7鍙峰彲鎵ц銆傚鏋滈�夋嫨鏌愭鏃ユ湡鎵ц锛屽彲灏嗚繖娈垫棩鏈熷彿鏁板搴旂殑bit鍊煎叏缃�1銆傚鏋�3鍙峰埌7鍙锋墽琛岋紝鍒欎负浜岃繘鍒�1111100锛屽嵆MonthDate = 124銆傚綋Repeat =3鏃舵湁鏁堛�俁epeat涓嶄负3鏃讹紝鍙拷鐣ヨ鍙傛暟銆�
-            /// </summary>
-            public int MonthDate;
-
-            /// <summary>
-            ///閲嶅绫诲瀷涓轰粖骞村唴鎵ц鎴栨瘡骞存墽琛屾椂閫夋嫨鎵ц鐨勬湀浠姐��
-            /// 閫夋嫨鎵ц鐨勬湀浠�
-            ///<para>0x01锛�1鏈堟墽琛岋紱0x02锛�2鏈堟墽琛岋紱</para>
-            ///<para>0x04锛�3鏈堟墽琛岋紱0x08锛�4鏈堟墽琛�</para>
-            ///<para>0x10锛�5鏈堟墽琛岋紱0x20锛�6鏈堟墽琛�</para>
-            ///<para>0x40锛�7鏈堟墽琛岋紱0x80锛�9鏈堟墽琛�</para>
-            ///<para>0x100: 10鏈堟墽琛岋紱0x200:  11鏈堟墽琛�</para>
-            ///<para>0x400: 12鏈堟墽琛岋紱</para>
-            ///<para>鏁板�煎彲杩涜鎴栬繍绠楋紝濡備竴鏈堛�佷笁鏈堛�佷簲鏈堟墽琛岋紝鍒欎负SelectMonth =锛�0x01 | 0x04 | 0x10锛�= 0x15 鍗冲崄杩涘埗 21銆�</para>
-            ///<para>褰揜epeat = 1鎴�4鏃舵湁鏁堛�俁epeat涓哄叾浠栧�兼椂鍙拷鐣ヨ瀛楁銆�</para>
-            /// </summary>
-            public int SelectMonth;
-
-            /// <summary>
-            ///閲嶅绫诲瀷涓轰粖骞村唴鎵ц鎴栨瘡骞存墽琛屾椂閫夋嫨鎵ц鐨勬棩鏈熴��
-            ///SelectMonDate[0] 鍒癝electMonDate[11]鍒嗗埆琛ㄧず1鏈堜唤鍒�12鏈堜唤閫夋嫨鐨勫彿鏁帮紝绫诲瀷涓�32浣嶆暣鏁帮紝鏁板�肩殑鍚箟鍜孧onthDate鐩稿悓銆�
-            ///<para>褰揜epeat = 1鎴�4鏃舵湁鏁堛�俁epeat涓哄叾浠栧�兼椂鍙拷鐣ヨ瀛楁銆�</para>          
-            ///</summary>
-            /// <summary>
-            /// 閫昏緫鏉′欢鍒楄〃
-            /// </summary>
-            public List<int> SelectMonDate = new List<int>();
-        }
-
-        [System.Serializable]
-        public class ConditionBase
-        {
-            /// <summary>
-            ///鏉′欢绫诲瀷
-            ///<para>0锛氭椂闂寸偣鏉′欢锛屽湪鏌愪釜鏃堕棿鍙戠敓</para>
-            ///<para>1锛氳澶囩姸鎬佸彉鍖栨潯浠�</para>
-            ///<para>2锛氬叾浠栭�昏緫鏉′欢</para>
-            ///<para>3锛氳鏁板櫒鏉′欢</para>
-            ///<para>4锛氬�掕鏃�</para>
-            ///<para>5锛氭椂闂存鏉′欢</para>
-            ///<para>6锛氬畨闃叉潯浠�</para>
-            /// </summary>
-            public int Type; 
-
-            /// <summary>
-            /// 璇ユ潯浠舵槸鍚︿綔涓哄垽鏂�昏緫渚濇嵁銆傚綋鏉′欢鏃犳晥鏃讹紝鍒欏拷鐣ヨ鏉′欢銆備竴涓�昏緫搴旇鑷冲皯鏈変竴涓湁鏁堟潯浠剁敤浜庡垽鏂�昏緫鏄惁鎴愮珛锛屽綋涓�涓�昏緫鎵�鏈夋潯浠舵棤鏁堟椂锛岃閫昏緫灏嗘案杩滀笉浼氱敓鏁堛��
-            ///<para>0锛氭棤鏁堬紙蹇界暐鏉′欢锛夈��</para>
-            ///<para>1锛氭湁鏁堬紙鍚敤鏉′欢锛夈��</para>
-            ///<para>2锛氫娇鑳戒竴娆★紙鏉′欢鎴愮珛涓�娆″悗灏嗚绂佺敤锛孖sValid鑷姩缃负0锛夈��</para>
-            ///<para>3锛氬け鑳戒竴娆★紙鏉′欢绗竴娆℃垚绔嬩細琚拷鐣ワ紝瑙﹀彂涓嶄簡閫昏緫锛岀劧鍚嶪sValid鑷姩缃�1銆備互鍚庢潯浠跺啀鎴愮珛灏嗕笉浼氳蹇界暐锛�</para>
-            /// </summary>
-            public int IsValid = 1;
-            /// <summary>
-            /// 鏉′欢ID锛�(褰撴柊澧炴垨淇敼閫昏緫鏉′欢鏃讹紝璇ュ瓧娈垫棤鏁堬級锛�
-            /// </summary>
-            public int ConditionId ;  
-
-        }
-        #endregion
-
-        #region  淇敼閫昏緫淇℃伅.
-        ///<summary >
-        /// 淇敼閫昏緫淇℃伅
-        /// </summary>
-        public static async System.Threading.Tasks.Task<ReviseAttributeResponseAllData> ReviseAttributeAsync(ReviseAttributeData reviseAttributeData)
-        {
-            return await System.Threading.Tasks.Task.Run(async () =>
-            {
-                ReviseAttributeResponseAllData allData =null;
-                if (ZbGateway.MainGateWay == null)
-                {
-                    allData = new ReviseAttributeResponseAllData{ errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
-                    return allData;
-                }
-                Action<string, string> action = (topic, message) =>
-                {
-                    var gatewayID = topic.Split('/')[0];
-                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-                    if (topic == gatewayID + "/" + "Error_Respon")
-                    {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
-
-                        if (temp == null)
-                        {
-                            allData = new ReviseAttributeResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                         }
-                        else
-                        {
-                            allData = new ReviseAttributeResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                         }
-                    }
-
-
-                    if (topic == gatewayID + "/" + "Logic/ReviseAttribute_Respon")
-                    { 
-                        try
-                        {
-                            var logic = new Logic() { DataID = jobject.Value<int>("Data_ID"), GateWayId = ZbGateway.MainGateWay.CurrentGateWayId };
-                            var tempTimeAttribute = Newtonsoft.Json.JsonConvert.DeserializeObject<TimeAttributeObj>(jobject["Data"]["TimeAttribute"].ToString());
-                             var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<ReviseAttributeResponseBaseData>(jobject["Data"].ToString());
-
-                            if (tempData != null)
-                            {
-                                allData = new ReviseAttributeResponseAllData { };
-                                var tempD = new ReviseAttributeResponseData { };
-                               
-                                if (tempTimeAttribute != null) { tempD.TimeAttribute = tempTimeAttribute; }
-                                if (tempData.LogicName != null) { tempD.LogicName = tempData.LogicName; }
-                                 tempD.LogicId = tempData.LogicId;
-                                tempD.IsEnable = tempData.IsEnable;
-                                tempD.Relationship = tempData.Relationship;
-                                tempD.Result = tempData.Result;
-                                allData.reviseAttributeResponseData = tempD;
-
-                                var info = ZbGateway.LogicList.Find((Logic.GetLogicInfoResponseData obj) => obj.LogicId == tempData.LogicId);
-                                if (info != null)
-                                {
-                                    info.LogicName = tempD.LogicName;
-                                    info.Result = tempD.Result;
-                                    info.Relationship = tempD.Relationship;
-                                    info.IsEnable = tempD.IsEnable;
-                                    info.TimeAttribute = tempD.TimeAttribute;
-                                }
-                                System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                            }else{
-                                allData = new ReviseAttributeResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                            }
-                        }
-                        catch (Exception ex)
-                        {
-                            var mess = ex.Message;
-                        }
-                    }
-                };
-                ZbGateway.MainGateWay.Actions += action;
-                System.Console.WriteLine("Logic/ReviseAttribute_Actions 鍚姩" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                try
-                {
-                    if (reviseAttributeData != null)
-                    {
-                        if(reviseAttributeData.LogicName!=null){
-                            var bytes = new byte[32];
-                            var reamarkGwBytes = System.Text.Encoding.UTF8.GetBytes(reviseAttributeData.LogicName);
-                            System.Array.Copy(reamarkGwBytes, 0, bytes, 0, 32 < reamarkGwBytes.Length ? 32 : reamarkGwBytes.Length);
-                            reviseAttributeData.LogicName = System.Text.Encoding.UTF8.GetString(bytes);
-                        } 
-                        var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 2001 } };
-                        var data = new JObject { };
-
-                        var selectMonthList = new JArray { };
-                        if(reviseAttributeData.TimeAttribute!=null&& reviseAttributeData.TimeAttribute.SelectMonDate != null)
-                        {
-                            foreach (var sm in reviseAttributeData.TimeAttribute.SelectMonDate)
-                            {
-                                var aad = sm;
-                                selectMonthList.Add(sm);
-                            }
-                        }
-
-                        var dataAttribute = new JObject
-                        {
-                         { "Calendar",reviseAttributeData.TimeAttribute.Calendar},
-                         { "Repeat", reviseAttributeData.TimeAttribute.Repeat} ,
-                         { "WeekDay", reviseAttributeData.TimeAttribute.WeekDay} ,
-                         { "SetYear",reviseAttributeData.TimeAttribute.SetYear} ,
-                         { "MonthDate", reviseAttributeData.TimeAttribute.MonthDate} ,
-                         { "SelectMonDate", selectMonthList }
-                        };
-
-                        data = new JObject {
-                         { "LogicId",reviseAttributeData.LogicId},
-                         { "IsEnable", reviseAttributeData.IsEnable} ,
-                         { "LogicName", reviseAttributeData.LogicName} ,
-                         { "Relationship",reviseAttributeData.Relationship},
-                         { "TimeAttribute", dataAttribute} 
-                        };
-                        jObject.Add("Data", data);
-                         ZbGateway.MainGateWay?.Send(("Logic/ReviseAttribute"), jObject.ToString());
-                     }
-                } catch { }
-
-                var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < 2000)
-                {
-                    await System.Threading.Tasks.Task.Delay(10);
-                    if (allData != null)
-                    {
-                        break;
-                    }
-                }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > 2000)
-                {
-                    allData = new ReviseAttributeResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
- 
-                }
-                ZbGateway.MainGateWay.Actions -= action;
-                System.Console.WriteLine("Logic/ReviseAttribute_Actions 閫�鍑�" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                return allData;
-            });
-        }
-
-        /// <summary>
-        ///淇敼閫昏緫灞炴�у洖澶嶇殑鎵�鏈夋暟鎹�,缃戝叧鍙嶉淇℃伅
-        /// </summary>
-        public ReviseAttributeResponseAllData reviseAttributeResponseAllData;
-        ///<summary >
-        /// 淇敼閫昏緫灞炴�у洖澶嶇殑鎵�鏈夋暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class ReviseAttributeResponseAllData
-        {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
-            /// <summary>
-            /// 淇敼閫昏緫灞炴��
-            /// </summary>
-            public ReviseAttributeResponseData reviseAttributeResponseData;
-        }
-
-        ///<summary >
-        /// 淇敼閫昏緫灞炴�у洖澶嶇殑鏁版嵁
-        /// </summary>
-        public ReviseAttributeResponseData reviseAttributeResponseData;
-        ///<summary >
-        /// 淇敼閫昏緫灞炴�у洖澶嶇殑鏁版嵁
-        /// </summary>
-        [System.Serializable]
-        public class ReviseAttributeResponseData : LogicBase
-        { 
-            /// <summary>
-            /// 淇敼缁撴灉锛�
-            ///<para>0锛氭垚鍔�</para>
-            ///<para>1锛氬け璐ワ紝閫昏緫涓嶅瓨鍦�</para>
-            /// </summary>
-            public int Result;
-
-            /// <summary>
-            /// 璇ラ�昏緫鏄惁琚娇鑳姐��
-            ///<para>0锛氱鐢ㄨ閫昏緫</para>
-            ///<para>1锛氫娇鑳借閫昏緫</para>
-            ///<para>2: 鍙Е鍙戜竴娆°�傝Е鍙戝悗璇ュ瓧娈靛皢鑷姩缃负0锛屽嵆绂佺敤鐘舵��</para>
-            /// </summary>
-            public int IsEnable;
-            /// <summary>
-            /// 閫昏緫鍚嶇О
-            /// </summary>
-            public string LogicName;
-            /// <summary>
-            /// 閫昏緫鍏崇郴銆�
-            ///<para>0锛氭弧瓒虫墍鏈夋潯浠惰Е鍙戝姩浣�</para>
-            ///<para>1锛氭弧瓒冲叾涓竴涓潯浠惰Е鍙戝姩浣�</para>
-            /// </summary>
-            public int Relationship;
-
-            /// <summary>
-            /// 閫昏緫鍚嶇О
-            /// </summary>
-            public TimeAttributeObj TimeAttribute=new TimeAttributeObj();
-        }
-
-        [System.Serializable]
-        public class ReviseAttributeResponseBaseData : LogicBase
-        {
-            /// <summary>
-            /// 淇敼缁撴灉锛�
-            ///<para>0锛氭垚鍔�</para>
-            ///<para>1锛氬け璐ワ紝閫昏緫涓嶅瓨鍦�</para>
-            /// </summary>
-            public int Result;
-
-            /// <summary>
-            /// 璇ラ�昏緫鏄惁琚娇鑳姐��
-            ///<para>0锛氱鐢ㄨ閫昏緫</para>
-            ///<para>1锛氫娇鑳借閫昏緫</para>
-            ///<para>2: 鍙Е鍙戜竴娆°�傝Е鍙戝悗璇ュ瓧娈靛皢鑷姩缃负0锛屽嵆绂佺敤鐘舵��</para>
-            /// </summary>
-            public int IsEnable;
-            /// <summary>
-            /// 閫昏緫鍚嶇О
-            /// </summary>
-            public string LogicName;
-            /// <summary>
-            /// 閫昏緫鍏崇郴銆�
-            ///<para>0锛氭弧瓒虫墍鏈夋潯浠惰Е鍙戝姩浣�</para>
-            ///<para>1锛氭弧瓒冲叾涓竴涓潯浠惰Е鍙戝姩浣�</para>
-            /// </summary>
-            public int Relationship; 
-        }
-
-        ///<summary >
-        /// 淇敼閫昏緫灞炴�х殑鏁版嵁
-        /// </summary>
-        public ReviseAttributeData reviseAttributeData;
-        ///<summary >
-        /// 淇敼閫昏緫灞炴�у洖澶嶇殑鏁版嵁
-        /// </summary>
-        [System.Serializable]
-        public class ReviseAttributeData : LogicBase
-        {
-            /// <summary>
-            /// 璇ラ�昏緫鏄惁琚娇鑳姐��
-            ///<para>0锛氱鐢ㄨ閫昏緫</para>
-            ///<para>1锛氫娇鑳借閫昏緫</para>
-            ///<para>2: 鍙Е鍙戜竴娆°�傝Е鍙戝悗璇ュ瓧娈靛皢鑷姩缃负0锛屽嵆绂佺敤鐘舵��</para>
-            ///<para>3锛氬彧澶辫兘涓�娆°�傝Е鍙戝悗锛屼笉鎵ц閫昏緫鍔ㄤ綔锛岃瀛楁鑷姩缃负1锛岀瓑寰呬笅娆¤Е鍙戙��</para>
-            ///<para>涓嶄慨鏀硅灞炴�ф椂锛� 鍙拷鐣ヨ瀛楁</para>
-            /// </summary>
-            public int IsEnable;
-            /// <summary>
-            /// 閫昏緫鍚嶇О
-            /// </summary>
-            public string LogicName;
-            /// <summary>
-            /// 閫昏緫鍏崇郴銆�
-            ///<para>0锛氭弧瓒虫墍鏈夋潯浠惰Е鍙戝姩浣�</para>
-            ///<para>1锛氭弧瓒冲叾涓竴涓潯浠惰Е鍙戝姩浣�</para>
-            ///<para>涓嶄慨鏀硅灞炴�ф椂锛屽彲蹇界暐璇ュ瓧娈�</para>
-            /// </summary>
-            public int Relationship;
-
-            /// <summary>
-            /// 鎻忚堪閫昏緫鏃堕棿灞炴��
-            ///鍜屸��1銆佹坊鍔犳垨淇敼閫昏緫鈥濈殑TimeAttribute瀛楁鏍煎紡鐩稿悓銆�
-            ///<para>涓嶄慨鏀硅灞炴�ф椂锛屽彲蹇界暐璇ュ瓧娈�</para>
-            /// </summary>
-            public TimeAttributeObj TimeAttribute=new TimeAttributeObj();
-        }
-        #endregion
-
-        #region 閫氳繃閫昏緫id鑾峰彇閫昏緫淇℃伅.
-        ///<summary >
-        /// 閫氳繃閫昏緫id鑾峰彇閫昏緫淇℃伅
-        /// </summary>
-        public static async System.Threading.Tasks.Task<GetLogicInfoResponseAllData> GetLogicInfoAsync(int logicId)
-        {
-            return await System.Threading.Tasks.Task.Run(async () =>
-            {
-                GetLogicInfoResponseAllData allData = null;
-                if (ZbGateway.MainGateWay == null)
-                {
-                    allData = new GetLogicInfoResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
-                    return allData;
-                }
-                Action<string, string> action = (topic, message) =>
-                {
-                    var gatewayID = topic.Split('/')[0];
-                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-                    if (topic == gatewayID + "/" + "Error_Respon")
-                    {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
-
-                        if (temp == null)
-                        {
-                            allData = new GetLogicInfoResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                        }
-                        else
-                        {
-                            allData = new GetLogicInfoResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                        }
-                    }
-
-                    if (topic == gatewayID + "/" + "Logic/GetLogicInfo_Respon")
-                    {
-                        try
-                        {
-                            var logic = new Logic() { DataID = jobject.Value<int>("Data_ID"), GateWayId = ZbGateway.MainGateWay.CurrentGateWayId };
-                            var tempTimeAttribute = Newtonsoft.Json.JsonConvert.DeserializeObject<TimeAttributeObj>(jobject["Data"]["TimeAttribute"].ToString());
-                            var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<GetLogicInfoResponseBaseData>(jobject["Data"].ToString());
-                            if (tempData != null)
-                            {
-                                var conditions = Newtonsoft.Json.Linq.JArray.Parse(jobject["Data"]["Conditions"].ToString());
-                                allData = new GetLogicInfoResponseAllData { };
-                                var tempD = new GetLogicInfoResponseData { };
-                                for (int m = 0; conditions != null && m < conditions.Count; m++)
-                                {
-                                    var condition = conditions[m];
-                                    var ads = condition["Type"].ToString();
-                                    switch (condition["Type"].ToString())
-                                    {
-                                        case "0":
-                                            tempD.Conditions.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.TimeConditionsInfo>(condition.ToString()));
-                                            break;
-                                        case "1":
-                                            tempD.Conditions.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.DeviceConditionsInfo>(condition.ToString()));
-                                            break;
-                                        case "2":
-                                            tempD.Conditions.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.LogicConditionsInfo>(condition.ToString()));
-                                            break;
-                                        case "3":
-                                            tempD.Conditions.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.CounterConditionsInfo>(condition.ToString()));
-                                            break;
-                                        case "4":
-                                            tempD.Conditions.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.CountdownConditionsInfo>(condition.ToString()));
-                                            break;
-                                        case "5":
-                                            tempD.Conditions.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.TimeBucketConditionsInfo>(condition.ToString()));
-                                            break;
-                                    }
-                                }
-                                if (tempTimeAttribute != null) { tempD.TimeAttribute = tempTimeAttribute; }
-                                if (tempData.LogicName != null) { tempD.LogicName = tempData.LogicName; }
-                                if (tempData.Actions != null) { tempD.Actions = tempData.Actions; }
-                                tempD.LogicId = tempData.LogicId;
-                                tempD.IsEnable = tempData.IsEnable;
-                                tempD.Relationship = tempData.Relationship;
-                                tempD.Result = tempData.Result;
-                                allData.getLogicInfoResponseData = tempD;
-                                var info = ZbGateway.LogicList.Find((Logic.GetLogicInfoResponseData obj) => obj.LogicId == tempData.LogicId);
-                                if (info == null)
-                                {
-                                    ZbGateway.LogicList.Add(allData.getLogicInfoResponseData);
-                                }
-                                else
-                                {
-                                    info.LogicName = tempD.LogicName;
-                                    info.Result = tempD.Result;
-                                    info.Relationship = tempD.Relationship;
-                                    info.IsEnable = tempD.IsEnable;
-                                    info.Conditions = tempD.Conditions;
-                                    info.Actions = tempD.Actions;
-                                    info.TimeAttribute = tempD.TimeAttribute;
-                                }
-                                System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                            }
-                        }
-                        catch (Exception ex)
-                        {
-                            var mess = ex.Message;
-                        }
-                    }
-                };
-                ZbGateway.MainGateWay.Actions += action;
-                System.Console.WriteLine("Logic/GetLogicInfo_Actions 鍚姩" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                try
-                {
-                    var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 2002 } };
-                    var data = new JObject {
-                         { "LogicId",logicId}
-                        };
-                    jObject.Add("Data", data);
-                     ZbGateway.MainGateWay?.Send(("Logic/GetLogicInfo"),  jObject.ToString());
-                }
-                catch { }
-
-                var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < 4000)
-                {
-                    await System.Threading.Tasks.Task.Delay(10);
-                    if (allData != null&& allData?.getLogicInfoResponseData!=null)
-                    {
-                        break;
-                    }
-                }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > 4000)
-                {
-                    allData = new GetLogicInfoResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
-
-                }
-                ZbGateway.MainGateWay.Actions -= action;
-                System.Console.WriteLine("Logic/GetLogicInfo_Actions 閫�鍑�" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                return allData;
-            });
-        }
-
-        /// <summary>
-        ///閫氳繃閫昏緫id鑾峰彇閫昏緫淇℃伅鐨勬墍鏈夋暟鎹�,缃戝叧鍙嶉淇℃伅
-        /// </summary>
-        public GetLogicInfoResponseAllData getLogicInfoResponseAllData;
-        ///<summary >
-        /// 閫氳繃閫昏緫id鑾峰彇閫昏緫淇℃伅鍥炲鐨勬墍鏈夋暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class GetLogicInfoResponseAllData
-        {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
-            /// <summary>
-            /// 閫氳繃閫昏緫id鑾峰彇閫昏緫淇℃伅鍥炲鐨勬暟鎹�
-            /// </summary>
-            public GetLogicInfoResponseData getLogicInfoResponseData;
-        }
-
-        ///<summary >
-        ///閫氳繃閫昏緫id鑾峰彇閫昏緫淇℃伅鍥炲鐨勬暟鎹�
-        /// </summary>
-        public GetLogicInfoResponseData getLogicInfoResponseData;
-        ///<summary >
-        /// 閫氳繃閫昏緫id鑾峰彇閫昏緫淇℃伅鍥炲鐨勬暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class GetLogicInfoResponseData : LogicBase
-        {
-            /// <summary>
-            ///0锛氳幏鍙栨垚鍔�
-            ///<para>1锛氳閫昏緫涓嶅瓨鍦ㄣ��</para>
-            ///<para>浠ヤ笅鎵�鏈夊瓧娈靛彧鏈夊湪Result 涓�1鏃跺瓨鍦�</para>
-            /// </summary>
-            public int Result;
-
-            /// <summary>
-            ///璇ラ�昏緫鏄惁琚娇鑳姐�� 
-            ///<para>0锛氱鐢ㄨ閫昏緫</para>
-            ///<para>1锛氫娇鑳借閫昏緫</para>
-            ///<para>2: 鍙Е鍙戜竴娆°�傝Е鍙戝悗璇ュ瓧娈靛皢鑷姩缃负0锛屽嵆绂佺敤鐘舵�併��</para>
-            /// </summary>
-            public int IsEnable;
-
-            /// <summary>
-            ///閫昏緫鍚嶇О
-            /// </summary>
-            public string LogicName;
-
-            /// <summary>
-            ///閫昏緫鍏崇郴銆�
-            ///<para>0锛氭弧瓒虫墍鏈夋潯浠惰Е鍙戝姩浣�</para>
-            ///<para>1锛氭弧瓒冲叾涓竴涓潯浠惰Е鍙戝姩浣�</para>
-            /// </summary>
-            public int Relationship;
-
-            /// <summary>
-            ///閫昏緫鍏崇郴銆�
-            ///<para>0锛氭弧瓒虫墍鏈夋潯浠惰Е鍙戝姩浣�</para>
-            ///<para>1锛氭弧瓒冲叾涓竴涓潯浠惰Е鍙戝姩浣�</para>
-            /// </summary>
-            public TimeAttributeObj TimeAttribute = new TimeAttributeObj();
- 
-            /// <summary>
-            /// 閫昏緫鏉′欢鍒楄〃
-            /// </summary>
-            public List<ConditionBase> Conditions = new List<ConditionBase>();
-
-            /// <summary>
-            /// 鏉′欢婊¤冻鍚庢墽琛岀殑鍔ㄤ綔鍒楄〃
-            /// </summary>
-             public List<ActionsInfo> Actions = new List<ActionsInfo>();
-        }
-
-        [System.Serializable]
-        public class GetLogicInfoResponseBaseData : LogicBase
-        {
-            /// <summary>
-            ///0锛氳幏鍙栨垚鍔�
-            ///<para>1锛氳閫昏緫涓嶅瓨鍦ㄣ��</para>
-            ///<para>浠ヤ笅鎵�鏈夊瓧娈靛彧鏈夊湪Result 涓�1鏃跺瓨鍦�</para>
-            /// </summary>
-            public int Result;
-
-            /// <summary>
-            ///璇ラ�昏緫鏄惁琚娇鑳姐�� 
-            ///<para>0锛氱鐢ㄨ閫昏緫</para>
-            ///<para>1锛氫娇鑳借閫昏緫</para>
-            ///<para>2: 鍙Е鍙戜竴娆°�傝Е鍙戝悗璇ュ瓧娈靛皢鑷姩缃负0锛屽嵆绂佺敤鐘舵�併��</para>
-            /// </summary>
-            public int IsEnable;
-
-            /// <summary>
-            ///閫昏緫鍚嶇О
-            /// </summary>
-            public string LogicName;
-
-            /// <summary>
-            ///閫昏緫鍏崇郴銆�
-            ///<para>0锛氭弧瓒虫墍鏈夋潯浠惰Е鍙戝姩浣�</para>
-            ///<para>1锛氭弧瓒冲叾涓竴涓潯浠惰Е鍙戝姩浣�</para>
-            /// </summary>
-            public int Relationship;
-
-            /// <summary>
-            /// 閫昏緫鏉′欢鍒楄〃
-            /// </summary>
-            public List<ConditionBase> Conditions = new List<ConditionBase>();
-
-            /// <summary>
-            /// 鏉′欢婊¤冻鍚庢墽琛岀殑鍔ㄤ綔鍒楄〃
-            /// </summary>
-            public List<ActionsInfo> Actions = new List<ActionsInfo>();
-        }
-        #endregion
-
-        #region 鑾峰彇閫昏緫鍒楄〃.
-        ///<summary >
-        /// 鑾峰彇閫昏緫鍒楄〃
-        /// 锛堝綋鏁伴噺寰堝鏃讹紝鍙兘绗竴娆¤幏鍙栧け璐ワ紝瑕佸埌閲嶆柊鑾峰彇锛�
-        /// </summary>
-        public static async System.Threading.Tasks.Task<GetLogicListResponseAllData> GetLogicListAsync()
-        {
-            return await System.Threading.Tasks.Task.Run(async () =>
-            {
-                GetLogicListResponseAllData allData = null;
-                if (ZbGateway.MainGateWay == null)
-                {
-                    allData = new GetLogicListResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
-                    return allData;
-                }
-                Action<string, string> action = (topic, message) =>
-                {
-                    var gatewayID = topic.Split('/')[0];
-                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-                    if (topic == gatewayID + "/" + "Error_Respon")
-                    {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
-
-                        if (temp == null)
-                        {
-                            allData = new GetLogicListResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                        }
-                        else
-                        {
-                            allData = new GetLogicListResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                        }
-                    }
-
-                    if (topic == gatewayID + "/" + "Logic/GetLogicList_Respon")
-                    {
-                        var logic = new Logic() { DataID = jobject.Value<int>("DataID"), GateWayId = ZbGateway.MainGateWay.CurrentGateWayId };
-                        var tempBindList = Newtonsoft.Json.Linq.JArray.Parse(jobject["Data"]["LogicList"].ToString());
-
-                        var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<GetLogicListResponseData>(jobject["Data"].ToString());
-                        if (tempData == null)
-                        {
-                            allData = new GetLogicListResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                        }
-                        else
-                        {  
-                            allData = new GetLogicListResponseAllData { getLogicListResponseData = tempData };
-                            System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                        }
-                    }
-                };
-                ZbGateway.MainGateWay.Actions += action;
-                System.Console.WriteLine("Logic/GetLogicList_Actions 鍚姩" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                try
-                {
-                    var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 2004 } };
-                    ZbGateway.MainGateWay?.Send(("Logic/GetLogicList"),  jObject.ToString());
-                }
-                catch { }
-
-                var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < 4000)
-                {
-                    await System.Threading.Tasks.Task.Delay(10);
-                    if (allData != null)
-                    {
-                        break;
-                    }
-                }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > 4000)
-                {
-                    allData = new GetLogicListResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
-
-                }
-                ZbGateway.MainGateWay.Actions -= action;
-                System.Console.WriteLine("Logic/GetLogicList_Actions 閫�鍑�" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                return allData;
-            });
-        }
-
-        /// <summary>
-        ///閫氳繃閫昏緫id鑾峰彇閫昏緫淇℃伅鐨勬墍鏈夋暟鎹�,缃戝叧鍙嶉淇℃伅
-        /// </summary>
-        public GetLogicListResponseAllData getLogicListResponseAllData;
-        ///<summary >
-        /// 閫氳繃閫昏緫id鑾峰彇閫昏緫淇℃伅鍥炲鐨勬墍鏈夋暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class GetLogicListResponseAllData
-        {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
-            /// <summary>
-            /// 閫氳繃閫昏緫id鑾峰彇閫昏緫淇℃伅鍥炲鐨勬暟鎹�
-            /// </summary>
-            public GetLogicListResponseData getLogicListResponseData;
-        }
-
-        ///<summary >
-        ///閫氳繃閫昏緫id鑾峰彇閫昏緫淇℃伅鍥炲鐨勬暟鎹�
-        /// </summary>
-        public GetLogicListResponseData getLogicListResponseData;
-        ///<summary >
-        /// 閫氳繃閫昏緫id鑾峰彇閫昏緫淇℃伅鍥炲鐨勬暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class GetLogicListResponseData : LogicBase
-        { 
-            /// <summary>
-            /// 閫昏緫鏉′欢鍒楄〃
-            /// </summary>
-             public List<LogicListData> LogicList = new List<LogicListData>();
- 
-        }
- 
-        /// <summary>
-        /// 閫昏緫鍒楄〃鍏蜂綋鏁版嵁
-        /// </summary>
-        [System.Serializable]
-        public class LogicListData : LogicBase
-        {
-
-            /// <summary>
-            /// 閫昏緫鍚嶇О
-            /// </summary>
-            public string LogicName;
-
-            /// <summary>
-            /// 璇ラ�昏緫鏄惁琚娇鑳姐��
-            ///<para>0锛氱鐢ㄨ閫昏緫</para>
-            ///<para>1锛氫娇鑳借閫昏緫</para>
-            ///<para>2: 鍙Е鍙戜竴娆°�傝Е鍙戝悗璇ュ瓧娈靛皢鑷姩缃负0锛屽嵆绂佺敤鐘舵��</para>
-            /// </summary>
-            public int IsEnable;
-
-            /// <summary>
-            ///閫昏緫鍏崇郴銆�
-            ///<para>0锛氭弧瓒虫墍鏈夋潯浠惰Е鍙戝姩浣�</para>
-            ///<para>1锛氭弧瓒冲叾涓竴涓潯浠惰Е鍙戝姩浣�</para>
-            /// </summary>
-            public int Relationship;
-
-        }
-        #endregion
-
-        #region 鏂板鎴栦慨鏀归�昏緫鏉′欢.
-        ///<summary >
-        /// 鏂板鎴栦慨鏀归�昏緫鏉′欢
-        /// <para>ChangeConditionData涓璽ype鏈夋晥锛屾鏃禖onditionObj涓殑type鏃犳晥</para>
-        /// </summary>
-        public static async System.Threading.Tasks.Task<ChangeConditionResponseAllData> ChangeConditionAsync(ChangeConditionData changeConditionData)
-        {
-            return await System.Threading.Tasks.Task.Run(async () =>
-            {
-                ChangeConditionResponseAllData allData = null;
-                if (ZbGateway.MainGateWay == null)
-                {
-                    allData = new ChangeConditionResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
-                    return allData;
-                }
-                Action<string, string> action = (topic, message) =>
-                {
-                    var gatewayID = topic.Split('/')[0];
-                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-                    if (topic == gatewayID + "/" + "Error_Respon")
-                    {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
-
-                        if (temp == null)
-                        {
-                            allData = new ChangeConditionResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                        }
-                        else
-                        {
-                            allData = new ChangeConditionResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                        }
-                    }
-
-                    if (topic == gatewayID + "/" + "Logic/ChangeCondition_Respon")
-                    {
-                        var logic = new Logic() { DataID = jobject.Value<int>("DataID"), GateWayId = ZbGateway.MainGateWay.CurrentGateWayId };
-                        var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<ChangeConditionResponseData>(jobject["Data"].ToString());
-                        if (tempData == null)
-                        {
-                            allData = new ChangeConditionResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                        }
-                        else
-                        { 
-                            switch (tempData.Type)
-                            {
-                                case 0:
-                                    var timeObj = new ZigBee.Device.Logic.TimeConditionsInfo();
-                                    timeObj.IsValid = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsValid"].ToString());
-                                    timeObj.DateType = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["DateType"].ToString());
-                                    timeObj.StartHour = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["StartHour"].ToString());
-                                    timeObj.StartMin = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["StartMin"].ToString());
-                                    timeObj.AdjustTime = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["AdjustTime"].ToString());
-                                    timeObj.RemindTime = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["RemindTime"].ToString());
-                                    timeObj.EnDelay = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["EnDelay"].ToString());
-                                    timeObj.DelayTime = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["DelayTime"].ToString());
-                                    tempData.conditionObj = timeObj;
-                                    break;
-                                case 1:
-                                    var devObj = new ZigBee.Device.Logic.DeviceConditionsInfo();
-                                    devObj.IsValid = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsValid"].ToString());
-                                    devObj.Epoint = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Epoint"].ToString());
-                                    devObj.Cluster_ID = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Cluster_ID"].ToString());
-                                    devObj.AttriButeId = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["AttriButeId"].ToString());
-                                    devObj.AttriButeData1 = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["AttriButeData1"].ToString());
-                                    devObj.AttriButeData2 = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["AttriButeData2"].ToString());
-                                    devObj.Range = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Range"].ToString());
-                                    var tempAddrObj =Newtonsoft.Json.JsonConvert.DeserializeObject<MacAddrData>(jobject["Data"].ToString());
-                                    if(tempAddrObj.MacAddr != null)
-                                    {
-                                        devObj.MacAddr = tempAddrObj.MacAddr;
-                                    }
-                                    tempData.conditionObj = devObj;
-                                    break;
-                                case 2:
-                                    var logicObj = new ZigBee.Device.Logic.LogicConditionsInfo ();
-                                    logicObj.IsValid = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsValid"].ToString());
-                                    logicObj.Condition_LogicId = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Condition_LogicId"].ToString());
-                                    tempData.conditionObj = logicObj;
-                                    break;
-                                case 3:
-                                    var countObj = new ZigBee.Device.Logic.CounterConditionsInfo();
-                                    countObj.IsValid = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsValid"].ToString());
-                                    countObj.Epoint = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Epoint"].ToString());
-                                    countObj.Cluster_ID = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Cluster_ID"].ToString());
-                                    countObj.AttriButeId = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["AttriButeId"].ToString());
-                                    countObj.AttriButeData1 = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["AttriButeData1"].ToString());
-                                    countObj.AttriButeData2 = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["AttriButeData2"].ToString());
-                                    countObj.Range = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Range"].ToString());
-                                    countObj.Number = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Number"].ToString());
-                                    countObj.Time = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Time"].ToString());
-                                    countObj.Cycle = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Cycle"].ToString());
-                                    var tempAddrObj2 = Newtonsoft.Json.JsonConvert.DeserializeObject<MacAddrData>(jobject["Data"].ToString());
-                                    if (tempAddrObj2.MacAddr != null)
-                                    {
-                                        countObj.MacAddr = tempAddrObj2.MacAddr;
-                                    }
-                                    tempData.conditionObj = countObj;
-                                    break;
-                                case 4:
-                                    var cdObj = new ZigBee.Device.Logic.CountdownConditionsInfo();
-                                    cdObj.IsValid = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsValid"].ToString());
-                                    cdObj.Time = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Time"].ToString()); 
-                                    tempData.conditionObj = cdObj;
-                                    break;
-                                case 5:
-                                    var tbObj = new ZigBee.Device.Logic.TimeBucketConditionsInfo();
-                                    tbObj.IsValid = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsValid"].ToString());
-                                    tbObj.StartHour = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["StartHour"].ToString());
-                                    tbObj.StartMin = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["StartMin"].ToString());
-                                    tbObj.StopHour = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["StopHour"].ToString());
-                                    tbObj.StopMin = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["StopMin"].ToString());
-                                    tempData.conditionObj = tbObj;
-                                    break;
-                                case 6:
-                                    var securitybObj = new ZigBee.Device.Logic.SecurityConditionsInfo();
-                                    securitybObj.IsValid = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["IsValid"].ToString());
-                                    securitybObj.EnOrWithdrawMode = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["EnOrWithdrawMode"].ToString());
-                                    securitybObj.ModeId = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["ModeId"].ToString()); 
-                                    tempData.conditionObj = securitybObj;
-                                    break;
-                            }
-                             allData = new ChangeConditionResponseAllData { changeConditionResponseData  = tempData };
-                            System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                        }
-                    }
-                };
-                ZbGateway.MainGateWay.Actions += action;
-                System.Console.WriteLine("Logic/GetLogicList_Actions 鍚姩" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                try
-                {
-                    if(changeConditionData!=null){
-                        var dataPublish = new Dictionary<string, object> { };
-                        switch (changeConditionData.Type)
-                        {
-                            case 0:
-                                var timeConditionsObj = changeConditionData.conditionObj as TimeConditionsInfo;
-                                var dataPublish1 = new Dictionary<string, object>
-                                {
-                                    ["LogicId"] = changeConditionData.LogicId,
-                                    ["ConditionId"] = changeConditionData.ConditionId,
-                                    ["Type"] = changeConditionData.Type,
-                                    ["IsValid"] = timeConditionsObj.IsValid,
-                                    ["DateType"] = timeConditionsObj.DateType,
-                                    ["StartHour"] = timeConditionsObj.StartHour,
-                                    ["StartMin"] = timeConditionsObj.StartMin,
-                                    ["AdjustTime"] = timeConditionsObj.AdjustTime,
-                                    ["RemindTime"] = timeConditionsObj.RemindTime,
-                                    ["EnDelay"] = timeConditionsObj.EnDelay,
-                                    ["DelayTime"] = timeConditionsObj.DelayTime
-                                };
-                                dataPublish = dataPublish1;
-                                break;
-                            case 1:
-                                var deviceConditionsObj = changeConditionData.conditionObj as DeviceConditionsInfo;
-                                var dataPublish2 = new Dictionary<string, object>
-                                {
-                                    ["LogicId"] = changeConditionData.LogicId,
-                                    ["ConditionId"] = changeConditionData.ConditionId,
-                                    ["Type"] = changeConditionData.Type,
-                                    ["IsValid"] = deviceConditionsObj.IsValid,
-                                     ["MacAddr"] = deviceConditionsObj.MacAddr,
-                                    ["Epoint"] = deviceConditionsObj.Epoint,
-                                    ["Cluster_ID"] = deviceConditionsObj.Cluster_ID,
-                                    ["AttriButeId"] = deviceConditionsObj.AttriButeId,
-                                    ["AttriButeData1"] = deviceConditionsObj.AttriButeData1,
-                                    ["AttriButeData2"] = deviceConditionsObj.AttriButeData2,
-                                    ["Range"] = deviceConditionsObj.Range,
-                                };
-                                dataPublish = dataPublish2;
-                                break;
-                            case 2:
-                                var logicConditionsObj = changeConditionData.conditionObj as LogicConditionsInfo;
-                                var dataPublish3 = new Dictionary<string, object>
-                                {
-                                    ["LogicId"] = changeConditionData.LogicId,
-                                    ["ConditionId"] = changeConditionData.ConditionId,
-                                    ["Type"] = changeConditionData.Type,
-                                    ["IsValid"] = logicConditionsObj.IsValid,
-                                    ["Condition_LogicId"] = logicConditionsObj.Condition_LogicId,
-                                };
-                                dataPublish = dataPublish3;
-                                break;
-                            case 3:
-                                var cConditionsObj = changeConditionData.conditionObj as CounterConditionsInfo;
-                                var dataPublish4 = new Dictionary<string, object>
-                                {
-                                    ["LogicId"] = changeConditionData.LogicId,
-                                    ["ConditionId"] = changeConditionData.ConditionId,
-                                    ["Type"] = changeConditionData.Type,
-                                    ["IsValid"] = cConditionsObj.IsValid,
-                                    ["MacAddr"] = cConditionsObj.MacAddr,
-                                    ["Epoint"] = cConditionsObj.Epoint,
-                                    ["Cluster_ID"] = cConditionsObj.Cluster_ID,
-                                    ["AttriButeId"] = cConditionsObj.AttriButeId,
-                                    ["AttriButeData1"] = cConditionsObj.AttriButeData1,
-                                    ["AttriButeData2"] = cConditionsObj.AttriButeData2,
-                                    ["Range"] = cConditionsObj.Range,
-                                    ["Number"] = cConditionsObj.Number,
-                                    ["Time"] = cConditionsObj.Time,
-                                    ["Cycle"] = cConditionsObj.Cycle,
-                                };
-                                dataPublish = dataPublish4;
-                                break;
-                            case 4:
-                                var cdConditionsObj = changeConditionData.conditionObj as CountdownConditionsInfo;
-                                var dataPublish5 = new Dictionary<string, object>
-                                {
-                                    ["LogicId"] = changeConditionData.LogicId,
-                                    ["ConditionId"] = changeConditionData.ConditionId,
-                                    ["Type"] = changeConditionData.Type,
-                                    ["IsValid"] = cdConditionsObj.IsValid,
-                                    ["Time"] = cdConditionsObj.Time,
-                                };
-                                dataPublish = dataPublish5;
-                                break;
-                             case 5:
-                                var tbConditionsObj = changeConditionData.conditionObj as TimeBucketConditionsInfo;
-                                var dataPublish6 = new Dictionary<string, object>
-                                {
-                                    ["LogicId"] = changeConditionData.LogicId,
-                                    ["ConditionId"] = changeConditionData.ConditionId,
-                                    ["Type"] = changeConditionData.Type,
-                                    ["IsValid"] = tbConditionsObj.IsValid,
-                                    ["StartHour"] = tbConditionsObj.StartHour,
-                                    ["StartMin"] = tbConditionsObj.StartMin,
-                                    ["StopHour"] = tbConditionsObj.StopHour,
-                                    ["StopMin"] = tbConditionsObj.StopMin,
-                                };
-                                dataPublish = dataPublish6;
-                                break;
-                            case 6:
-                                var sConditionsObj = changeConditionData.conditionObj as SecurityConditionsInfo;
-                                var dataPublish7 = new Dictionary<string, object>
-                                {
-                                    ["LogicId"] = changeConditionData.LogicId,
-                                    ["ConditionId"] = changeConditionData.ConditionId,
-                                    ["Type"] = changeConditionData.Type,
-                                    ["IsValid"] = sConditionsObj.IsValid,
-                                    ["EnOrWithdrawMode"] = sConditionsObj.EnOrWithdrawMode,
-                                    ["ModeId"] = sConditionsObj.ModeId,
-                                };
-                                dataPublish = dataPublish7;
-                                break;  
-                        }
-                         ZbGateway.MainGateWay?.Send("Logic/ChangeCondition", Device.Cluster_ID.Gateway, Command.LogicChangeCondition, Newtonsoft.Json.Linq.JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(dataPublish)));
-                    }
-                 }catch { }
-
-                var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < 2000)
-                {
-                    await System.Threading.Tasks.Task.Delay(10);
-                    if (allData != null)
-                    {
-                        break;
-                    }
-                }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > 2000)
-                {
-                    allData = new ChangeConditionResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
-
-                }
-                ZbGateway.MainGateWay.Actions -= action;
-                System.Console.WriteLine("Logic/GetLogicList_Actions 閫�鍑�" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                return allData;
-            });
-        }
-
-        /// <summary>
-        ///鏂板鎴栦慨鏀归�昏緫鏉′欢鎵�鏈夋暟鎹�,缃戝叧鍙嶉淇℃伅
-        /// </summary>
-        public ChangeConditionResponseAllData changeConditionResponseAllData;
-        ///<summary >
-        /// 鏂板鎴栦慨鏀归�昏緫鏉′欢鍥炲鐨勬墍鏈夋暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class ChangeConditionResponseAllData
-        {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
-            /// <summary>
-            /// 鏂板鎴栦慨鏀归�昏緫鏉′欢鍥炲鐨勬暟鎹�
-            /// </summary>
-            public ChangeConditionResponseData changeConditionResponseData;
-        }
-
-        [System.Serializable]
-        public class MacAddrData
-        {
-            /// <summary>
-            /// 鐗╃悊鍦板潃
-            /// </summary>
-            public string MacAddr;
-             
-        }
-
-        ///<summary >
-        ///鏂板鎴栦慨鏀归�昏緫鏉′欢鍥炲鐨勬暟鎹�
-        /// </summary>
-        public ChangeConditionResponseData changeConditionResponseData;
-        ///<summary >
-        /// 閫氭柊澧炴垨淇敼閫昏緫鏉′欢鍥炲鐨勬暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class ChangeConditionResponseData : LogicBase
-        {
-            /// <summary>
-            /// 鏉′欢id(褰撴柊澧炴垨淇敼閫昏緫鏉′欢鏃讹紝璇ュ瓧娈垫湁鏁堬級
-            /// </summary>
-            public int ConditionId;
-            /// <summary>
-            /// 璇ユ潯浠舵槸鍚︿綔涓哄垽鏂�昏緫渚濇嵁銆傚綋鏉′欢鏃犳晥鏃讹紝鍒欏拷鐣ヨ鏉′欢銆備竴涓�昏緫搴旇鑷冲皯鏈変竴涓湁鏁堟潯浠剁敤浜庡垽鏂�昏緫鏄惁鎴愮珛锛屽綋涓�涓�昏緫鎵�鏈夋潯浠舵棤鏁堟椂锛岃閫昏緫灏嗘案杩滀笉浼氱敓鏁堛��
-            ///<para>0锛氭棤鏁堬紙蹇界暐鏉′欢锛夈��</para>
-            ///<para>1锛氭湁鏁堬紙鍚敤鏉′欢锛夈��</para>
-            ///<para>2锛氫娇鑳戒竴娆★紙鏉′欢鎴愮珛涓�娆″悗灏嗚绂佺敤锛孖sValid鑷姩缃负0锛夈��</para>
-            ///<para>3锛氬け鑳戒竴娆★紙鏉′欢绗竴娆℃垚绔嬩細琚拷鐣ワ紝瑙﹀彂涓嶄簡閫昏緫锛岀劧鍚嶪sValid鑷姩缃�1銆備互鍚庢潯浠跺啀鎴愮珛灏嗕笉浼氳蹇界暐锛�</para>
-            /// </summary>
-            public int IsValid;
-            /// <summary>
-            ///鏉′欢绫诲瀷
-            ///<para>0锛氭椂闂寸偣鏉′欢锛屽湪鏌愪釜鏃堕棿鍙戠敓</para>
-            ///<para>1锛氳澶囩姸鎬佸彉鍖栨潯浠�</para>
-            ///<para>2锛氬叾浠栭�昏緫鏉′欢</para>
-            ///<para>3锛氳鏁板櫒鏉′欢</para>
-            ///<para>4锛氬�掕鏃�</para>
-            ///<para>5锛氭椂闂存鏉′欢</para>
-            /// </summary>
-            public int Type;
-
-            /// <summary>
-            /// conditionObj:鏉′欢瀵硅薄
-            /// </summary>
-            public ConditionBase conditionObj;
-        }
- 
-        /// <summary>
-        /// 鏂板鎴栦慨鏀归�昏緫鏉′欢鐨勬暟鎹�
-        /// </summary>
-        public ChangeConditionData changeConditionData;
-        /// <summary>
-        /// 鏂板鎴栦慨鏀归�昏緫鏉′欢鐨勬暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class ChangeConditionData : LogicBase
-        {
-            /// <summary>
-            ///(娉ㄦ剰蹇呴渶濉啓锛夋潯浠剁被鍨�;(娌″~鍐欐暟鎹彲鑳戒笉鍥炲锛�
-            ///<para>0锛氭椂闂寸偣鏉′欢锛屽湪鏌愪釜鏃堕棿鍙戠敓</para>
-            ///<para>1锛氳澶囩姸鎬佸彉鍖栨潯浠�</para>
-            ///<para>2锛氬叾浠栭�昏緫鏉′欢</para>
-            ///<para>3锛氳鏁板櫒鏉′欢</para>
-            ///<para>4锛氬�掕鏃�</para>
-            ///<para>5锛氭椂闂存鏉′欢</para>
-            ///<para>6锛氬畨闃叉潯浠�</para>
-            /// </summary>
-            public int Type; 
-            /// <summary>
-            /// 鏉′欢id
-            /// 鏂板鏃禖onditionId=0锛屼慨鏀规椂浼犲叆瀵瑰簲鐨凜onditionId
-            /// </summary>
-            public int ConditionId;  
-            /// <summary>
-            /// conditionObj:鏉′欢瀵硅薄
-            /// </summary>
-            public ConditionBase conditionObj;
-        }
-        #endregion
-
-        #region 鍒犻櫎/鍚敤/绂佺敤閫昏緫鏉′欢.
-        ///<summary >
-        /// 鍒犻櫎/鍚敤/绂佺敤閫昏緫鏉′欢
-        /// </summary>
-        public static async System.Threading.Tasks.Task<SetConditionResponseAllData> SetConditionAsync(SetConditionData setConditionData)
-        {
-            return await System.Threading.Tasks.Task.Run(async () =>
-            {
-                SetConditionResponseAllData allData = null;
-                if (ZbGateway.MainGateWay == null)
-                {
-                    allData = new SetConditionResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
-                    return allData;
-                }
-                Action<string, string> action = (topic, message) =>
-                {
-                    var gatewayID = topic.Split('/')[0];
-                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-                    if (topic == gatewayID + "/" + "Error_Respon")
-                    {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
-
-                        if (temp == null)
-                        {
-                            allData = new SetConditionResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                        }
-                        else
-                        {
-                            allData = new SetConditionResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                        }
-                    }
-
-                    if (topic == gatewayID + "/" + "Logic/SetCondition_Respon")
-                    {
-                        var logic = new Logic() { DataID = jobject.Value<int>("DataID"), GateWayId = ZbGateway.MainGateWay.CurrentGateWayId };
-                        var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetConditionResponseData>(jobject["Data"].ToString());
-                        if (tempData == null)
-                        {
-                            allData = new SetConditionResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                        }
-                        else
-                        {
-                            allData = new SetConditionResponseAllData { setConditionResponseData = tempData };
-                            System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                        }
-                    }
-                };
-                ZbGateway.MainGateWay.Actions += action;
-                System.Console.WriteLine("Logic/SetCondition_Actions 鍚姩" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                try
-                {
-                    if(setConditionData !=null){
-                        var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 2006 } };
-
-                          var  data = new JObject {
-                         { "LogicId",setConditionData.LogicId},
-                         { "ConditionId", setConditionData.ConditionId} ,
-                          { "Operation", setConditionData.Operation }
-                        }; 
-                        jObject.Add("Data", data);
-                         ZbGateway.MainGateWay?.Send(("Logic/SetCondition"),  jObject.ToString());
-                     }
-                }
-                catch { }
-
-                var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < 2000)
-                {
-                    await System.Threading.Tasks.Task.Delay(10);
-                    if (allData != null)
-                    {
-                        break;
-                    }
-                }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > 2000)
-                {
-                    allData = new SetConditionResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
-
-                }
-                ZbGateway.MainGateWay.Actions -= action;
-                System.Console.WriteLine("Logic/SetCondition_Actions 閫�鍑�" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                return allData;
-            });
-        }
-
-        /// <summary>
-        ///鍒犻櫎/鍚敤/绂佺敤閫昏緫鏉′欢鐨勬墍鏈夋暟鎹�,缃戝叧鍙嶉淇℃伅
-        /// </summary>
-        public SetConditionResponseAllData setConditionResponseAllData;
-        ///<summary >
-        /// 鍒犻櫎/鍚敤/绂佺敤閫昏緫鏉′欢鍥炲鐨勬墍鏈夋暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class SetConditionResponseAllData
-        {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
-            /// <summary>
-            /// 鍒犻櫎/鍚敤/绂佺敤閫昏緫鏉′欢鍥炲鐨勬暟鎹�
-            /// </summary>
-            public SetConditionResponseData setConditionResponseData;
-        }
- 
-        /// <summary>
-        ///鑾峰彇鍒犻櫎/鍚敤/绂佺敤閫昏緫鏉′欢鐨勬暟鎹�
-        /// </summary>
-        public SetConditionResponseData setConditionResponseData;
-        /// <summary>
-        ///鑾峰彇鍒犻櫎/鍚敤/绂佺敤閫昏緫鏉′欢鐨勬暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class SetConditionResponseData : LogicBase
-        {
-            /// <summary>
-            /// 0锛氭垚鍔�
-            ///<para>1锛氬け璐ワ紝閫昏緫鎴栨潯浠朵笉瀛樺湪</para>
-            /// </summary>
-            public int Result;
-
-            /// <summary>
-            /// 鏉′欢id
-            /// </summary>
-            public int ConditionId;
-            /// <summary>
-            /// 0锛氬拷鐣ユ潯浠讹紝灏嗘潯浠禝sVaild缃�0銆�
-            ///<para>1锛氬惎鐢ㄦ潯浠讹紝灏嗘潯浠禝sVaild缃�1銆�</para>
-            ///<para>2锛氫娇鑳戒竴娆★紝灏嗘潯浠禝sVaild缃�2锛堟潯浠舵垚绔嬩竴娆″悗灏嗚绂佺敤锛孖sValid鑷姩缃负0锛夈��</para>
-            ///<para>3锛氬け鑳戒竴娆★紝灏嗘潯浠禝sVaild缃�3锛堟潯浠剁涓�娆℃垚绔嬩細琚拷鐣ワ紝瑙﹀彂涓嶄簡閫昏緫锛岀劧鍚嶪sValid鑷姩缃�1銆備互鍚庢潯浠跺啀鎴愮珛灏嗕笉浼氳蹇界暐锛�</para>
-            ///<para>4锛氬垹闄ゆ潯浠躲��</para>
-            /// </summary>
-            public int Operation;
-        }
-
-        /// <summary>
-        ///璁剧疆鍒犻櫎/鍚敤/绂佺敤閫昏緫鏉′欢鐨勬暟鎹�
-        /// </summary>
-        public SetConditionData setConditionData;
-        /// <summary>
-        ///璁剧疆鍒犻櫎/鍚敤/绂佺敤閫昏緫鏉′欢鐨勬暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class SetConditionData : LogicBase
-        {
-            /// <summary>
-            /// 鏉′欢id
-            /// </summary>
-            public int ConditionId;
-            /// <summary>
-            /// 0锛氬拷鐣ユ潯浠讹紝灏嗘潯浠禝sVaild缃�0銆�
-            ///<para>1锛氬惎鐢ㄦ潯浠讹紝灏嗘潯浠禝sVaild缃�1銆�</para>
-            ///<para>2锛氫娇鑳戒竴娆★紝灏嗘潯浠禝sVaild缃�2锛堟潯浠舵垚绔嬩竴娆″悗灏嗚绂佺敤锛孖sValid鑷姩缃负0锛夈��</para>
-            ///<para>3锛氬け鑳戒竴娆★紝灏嗘潯浠禝sVaild缃�3锛堟潯浠剁涓�娆℃垚绔嬩細琚拷鐣ワ紝瑙﹀彂涓嶄簡閫昏緫锛岀劧鍚嶪sValid鑷姩缃�1銆備互鍚庢潯浠跺啀鎴愮珛灏嗕笉浼氳蹇界暐锛�</para>
-            ///<para>4锛氬垹闄ゆ潯浠躲��</para>
-            /// </summary>
-            public int Operation = 1; 
-        }
-        #endregion
-
-        #region 淇敼鎴栨柊澧炲姩浣滀换鍔�.
-        ///<summary >
-        /// 淇敼鎴栨柊澧炲姩浣滀换鍔�
-        /// </summary>
-        public static async System.Threading.Tasks.Task<ChangeActionResponseAllData> ChangeActionAsync(ChangeActionData actionData)
-        {
-            return await System.Threading.Tasks.Task.Run(async () =>
-            {
-                ChangeActionResponseAllData allData = null;
-                if (ZbGateway.MainGateWay == null)
-                {
-                    allData = new ChangeActionResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
-                    return allData;
-                }
-                Action<string, string> action = (topic, message) =>
-                {
-                    var gatewayID = topic.Split('/')[0];
-                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-                    if (topic == gatewayID + "/" + "Error_Respon")
-                    {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
-
-                        if (temp == null)
-                        {
-                            allData = new ChangeActionResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                        }
-                        else
-                        {
-                            allData = new ChangeActionResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                        }
-                    }
-
-                    if (topic == gatewayID + "/" + "Logic/ChangeAction_Respon")
-                    {
-                        var logic = new Logic() { DataID = jobject.Value<int>("DataID"), GateWayId = ZbGateway.MainGateWay.CurrentGateWayId };
-                        var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<ChangeActionResponseData>(jobject["Data"].ToString());
-                        if (tempData == null)
-                        {
-                            allData = new ChangeActionResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                        }
-                        else
-                        {
-                            allData = new ChangeActionResponseAllData { changeActionResponseData = tempData };
-                            System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                        }
-                    }
-                };
-                ZbGateway.MainGateWay.Actions += action;
-                System.Console.WriteLine("Logic/ChangeAction_Actions 鍚姩" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                try
-                {
-                    if (actionData != null)
-                    { 
-                            var dataPublish = new Dictionary<string, object> { };
-                            switch (actionData.LinkType)
-                            {
-                                case 0:
-                                    var dataPublish0 = new Dictionary<string, object>
-                                    {
-                                        ["LogicId"] = actionData.LogicId,
-                                        ["LinkType"] = actionData.LinkType,
-                                        ["DeviceAddr"] = actionData.DeviceAddr,
-                                        ["Epoint"] = actionData.Epoint,
-                                        ["TaskList"] = actionData.TaskList,
-                                        ["Time"] = actionData.Time,
-                                    };
-                                    dataPublish = dataPublish0;
-                                    break;
-                                case 2:
-                                    int sceneID = int.Parse(actionData.DeviceAddr);
-                                    var dataPublish2 = new Dictionary<string, object>
-                                    {
-                                        ["LogicId"] = actionData.LogicId,
-                                        ["LinkType"] = actionData.LinkType,
-                                        ["DeviceAddr"] = sceneID,
-                                        ["Epoint"] = actionData.Epoint,
-                                    };
-                                    dataPublish = dataPublish2;
-                                    break;
-                                case 4:
-                                    int conID = int.Parse(actionData.DeviceAddr);
-                                    var dataPublish4 = new Dictionary<string, object> //{ };
-                                    {
-                                        ["LogicId"] = actionData.LogicId,
-                                        ["LinkType"] = actionData.LinkType,
-                                        ["DeviceAddr"] = conID,
-                                        ["EnableLogic"] = actionData.EnableLogic,
-                                    };
-                                    dataPublish = dataPublish4;
-                                    break;
-                                case 5:
-                                int logID = int.Parse(actionData.DeviceAddr);
-                                var dataPublish5 = new Dictionary<string, object>  
-                                {
-                                    ["LogicId"] = actionData.LogicId,
-                                    ["LinkType"] = actionData.LinkType,
-                                    ["DeviceAddr"] = logID,
-                                    ["ConditionId"] = actionData.ConditionId,
-                                    ["EnableCondition"] = actionData.EnableCondition,
-                                };
-                                dataPublish = dataPublish5;
-                                break;
-                                case 6:
-                                int sID = int.Parse(actionData.DeviceAddr);
-                                var dataPublish6 = new Dictionary<string, object>
-                                {
-                                    ["LogicId"] = actionData.LogicId,
-                                    ["LinkType"] = actionData.LinkType,
-                                    ["SecuritySetting"] = actionData.SecuritySetting,
-                                    ["SecurityModeId"] = actionData.SecurityModeId,
-                                    ["CheckIASStatus"] = actionData.CheckIASStatus,
-                                    ["IsDelayStart"] = actionData.IsDelayStart,
-                                    ["Password"] = actionData.Password
-                                };
-                                dataPublish = dataPublish6;
-                                break;
-                            }
-                         ZbGateway.MainGateWay?.Send("Logic/ChangeAction", Device.Cluster_ID.Gateway, Command.LogicChangeAction, Newtonsoft.Json.Linq.JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(dataPublish)));
-                        
-                     }
-                }
-                catch { }
-
-                var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < 2000)
-                {
-                    await System.Threading.Tasks.Task.Delay(10);
-                    if (allData != null)
-                    {
-                        break;
-                    }
-                }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > 2000)
-                {
-                    allData = new ChangeActionResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
-
-                }
-                ZbGateway.MainGateWay.Actions -= action;
-                 System.Console.WriteLine("Logic/ChangeAction_Actions 閫�鍑�" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                return allData;
-            });
-        }
-
-        /// <summary>
-        ///淇敼鎴栨柊澧炲姩浣滀换鍔$殑鎵�鏈夋暟鎹�,缃戝叧鍙嶉淇℃伅
-        /// </summary>
-        public ChangeActionResponseAllData changeActionResponseAllData;
-        ///<summary >
-        /// 淇敼鎴栨柊澧炲姩浣滀换鍔″洖澶嶇殑鎵�鏈夋暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class ChangeActionResponseAllData
-        {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
-            /// <summary>
-            /// 淇敼鎴栨柊澧炲姩浣滀换鍔″洖澶嶇殑鏁版嵁
-            /// </summary>
-            public ChangeActionResponseData changeActionResponseData;
-        }
-
-        /// <summary>
-        ///淇敼鎴栨柊澧炲姩浣滀换鍔″洖澶嶇殑鏁版嵁
-        /// </summary>
-        public ChangeActionResponseData changeActionResponseData;
-        /// <summary>
-        ///鑾峰彇淇敼鎴栨柊澧炲姩浣滀换鍔$殑鏁版嵁
-        /// </summary>
-        [System.Serializable]
-        public class ChangeActionResponseData : LogicBase
-        {
-            /// <summary>
-            /// 0锛氭垚鍔�
-            ///<para>1锛氬け璐ワ紝閫昏緫涓嶅瓨鍦�</para>
-            ///<para>2锛氬け璐ワ紝鑱斿姩璁惧涓嶅瓨鍦�</para>
-            ///<para>3锛氬け璐ワ紝鑱斿姩鐨勫叾浠栭�昏緫涓嶅瓨鍦ㄣ��</para>
-            ///<para>5锛氭搷浣滅殑閫昏緫鐨勬潯浠朵笉瀛樺湪</para>
-            ///<para>6锛氬竷闃叉挙闃茬敤鎴峰瘑鐮侀敊璇�</para>
-            ///<para>7锛氬畨闃叉ā寮忎笉瀛樺湪</para>
-            /// </summary>
-            public int Result;
-            /// <summary>
-            /// 娣诲姞鐨勮仈鍔ㄨ澶囩被鍨�
-            ///<para>0锛氳仈鍔ㄨ澶囦负zigbee鑺傜偣璁惧</para>
-            ///<para>2锛氳仈鍔ㄨ澶囦负鍦烘櫙锛堟仮澶嶅満鏅級</para>
-            ///<para>4锛氫娇鑳藉け鑳藉叾浠栭�昏緫</para>
-            ///<para>5锛氱鐢ㄦ垨鍚敤閫昏緫鏉′欢</para>
-            ///<para>6锛氬畨闃叉ā寮忔搷浣�</para>
-            /// </summary>
-            public int LinkType;
-            /// <summary>
-            /// 鑱斿姩璁惧鐨勫湴鍧�锛�
-            ///<para>璁惧mac鍦板潃锛堝瓧绗︼級锛孡inkType=0銆�</para>
-            ///<para>瀵瑰満鏅搷浣滐紝鍗虫仮澶嶅満鏅� 涓哄満鏅痠d锛堟暟鍊硷級锛孡inkType涓�2銆�</para>
-            ///<para>瀵瑰叾浠栭�昏緫鎿嶄綔 涓洪�昏緫id锛堟暟鍊硷級锛孡inkType=4 銆丩inkType= 5銆�</para>
-            /// </summary>
-            public string DeviceAddr;
-            /// <summary>
-            ///鑱斿姩璁惧鐨勭鍙e彿锛�
-            ///<para>鍜宮ac鍦板潃鍏卞悓鏍囪瘑鍞竴鐨剒igbee璁惧 鏁板�艰寖鍥�0-255</para>
-            ///<para>鍦烘櫙鍜岀粍璁句负null锛屾垨蹇界暐璇ュ瓧娈�</para>
-            /// </summary>
-            public int Epoint;
-            /// <summary>
-            ///閫昏緫浣胯兘銆佸け鑳姐��
-            ///<para>褰揕inkType = 4鏃跺瓨鍦�</para>
-            ///<para>0锛氬け鑳介�昏緫銆�</para>
-            ///<para>1锛氫娇鑳介�昏緫銆�</para>
-            ///<para>2锛氬彧浣胯兘涓�娆�</para>
-            ///<para>3锛氬彧澶辫兘涓�娆�</para>
-            /// </summary>
-            public int EnableLogic;
-            /// <summary>
-            /// 鎿嶄綔鐨勯�昏緫鏉′欢id
-            /// </summary>
-            public int ConditionId;
-            /// <summary>
-            /// 鏄惁绂佺敤閫昏緫鏉′欢
-            ///<para>褰揕inkType=5鏃跺瓨鍦�</para>
-            ///<para>0 绂佺敤鏉′欢锛堝皢閫昏緫鏉′欢鐨処sValid瀛楁缃�0锛�</para>
-            ///<para>1 鍚敤鏉′欢锛堝皢閫昏緫鏉′欢鐨処sValid瀛楁缃�1锛�</para>
-            ///<para>2锛氫娇鑳戒竴娆★紙鏉′欢鎴愮珛涓�娆″悗灏嗚绂佺敤锛孖sValid鑷姩缃负0锛夈��</para>
-            ///<para>3锛氬け鑳戒竴娆★紙鏉′欢绗竴娆℃垚绔嬩細琚拷鐣ワ紝瑙﹀彂涓嶄簡閫昏緫锛岀劧鍚嶪sValid鑷姩缃�1銆備互鍚庢潯浠跺啀鎴愮珛灏嗕笉浼氳蹇界暐锛�</para>
-            /// </summary>
-            public int EnableCondition;
-            /// <summary>
-            ///寤舵椂鎵ц鏃堕棿銆傚崟浣嶏紙绉掞級鑼冨洿锛�0-65535銆�
-            ///<para>閫昏緫鎴愮珛鍚庯紝寤惰繜澶氫箙鎵ц璁惧鍔ㄤ綔鎸囦护銆�</para>
-            ///<para>褰揕inkType=0鏃跺瓨鍦ㄣ�傝瀛楁鍙拷鐣ワ紝榛樿涓�0锛屽嵆閫昏緫鎴愮珛鍚庣珛鍗虫墽琛岃澶囧姩浣溿��</para>
-            /// </summary>
-            public int Time;
-            /// <summary>
-            /// 鑱斿姩浠诲姟鍒楄〃锛岃仈鍔ㄧ殑鑺傜偣璁惧鎵ц鐨勫姩浣滄寚浠ゃ��
-            ///<para>褰揕inkType=0鏃跺瓨鍦ㄣ��</para>
-            ///<para>鍜屾湰绔犵1灏忚妭鐨勬坊鍔犳垨淇敼閫昏緫鍛戒护鐨凾askList鏁扮粍鏍煎紡鐩稿悓</para>
-            /// </summary>
-            public List<TaskListInfo> TaskList = new List<TaskListInfo> { };
-
-            ///<summary>
-            ///瀵瑰畨闃叉ā寮忔搷浣�
-            ///<para>褰揕inkType = 6鏃跺瓨鍦�</para>
-            ///<para>0锛氭挙闃�</para>
-            ///<para>1锛氭案涔呭竷闃诧紝鐩村埌鎾ら槻</para>
-            ///<para>2锛氬竷闃诧紝浣嗕娇鑳戒竴娆★紝瑙﹀彂涓�娆″悗灏嗘挙闃层��</para>
-            ///<para>3锛氬竷闃诧紝浣嗗け鑳戒竴娆★紝绗竴娆¤婵�娲讳笉璀﹀憡涓嶈Е鍙戝姩浣溿��</para>
-            ///<para>瑙﹀彂鍔ㄤ綔鏃讹紝濡傛灉绯荤粺褰撳墠娌℃湁甯冮槻锛屽垯鎾ら槻澶辫触銆傚凡缁忓瓨鍦ㄥ竷闃叉ā寮忥紝灏嗗竷闃插け璐ワ紙闇�鍏堝褰撳墠甯冮槻妯″紡杩涜鎾ら槻锛�</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int SecuritySetting;
-
-            ///<summary>
-            ///瀹夐槻妯″紡id銆備负0鏃讹紝鍒欏褰撳墠鍦ㄥ竷闃茬殑瀹夐槻妯″紡杩涜鎿嶄綔銆� 
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int SecurityModeId;
-
-            ///<summary>
-            ///妫�鏌ラ槻鍖鸿澶囨渶杩戜笂鎶ョ殑瀹夐槻淇℃伅鐘舵�佽繘琛屽竷闃�
-            ///<para>褰揕inkType = 6鏃跺瓨鍦�</para>
-            ///<para>0锛氫笉妫�鏌�</para>
-            ///<para>1锛氭鏌�</para>
-            ///<para>鍙己鐪侊紝榛樿涓�0</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int CheckIASStatus;
-
-            ///<summary>
-            ///鏄惁寤舵椂鍚姩銆傚竷闃插悗寤舵椂涓�娈垫椂闂存寮忓惎鍔ㄩ槻鍖猴紝杩欐鏃堕棿鍙互璁╀汉鍛樻挙绂婚槻鍖哄尯鍩熴��
-            ///<para>褰揕inkType = 6鏃跺瓨鍦�</para>
-            ///<para>0锛氫笉寤舵椂</para>
-            ///<para>1锛氬欢鏃跺惎鍔�</para>
-            ///<para>鍙己鐪侊紝榛樿涓�0</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int IsDelayStart;
-        }
-        /// <summary>
-        ///璁剧疆闇�瑕佷慨鏀规垨鏂板鍔ㄤ綔浠诲姟鐨勬暟鎹�
-        /// </summary>
-        public ChangeActionData changeActionData;
-        /// <summary>
-        ///璁剧疆闇�瑕佷慨鏀规垨鏂板鍔ㄤ綔浠诲姟鐨勬暟鎹�
-        /// LogicId锛�
-        /// </summary>
-        [System.Serializable]
-        public class ChangeActionData : LogicBase
-        {
-            /// <summary>
-            /// 娣诲姞鐨勮仈鍔ㄨ澶囩被鍨�
-            ///<para>0锛氳仈鍔ㄨ澶囦负zigbee鑺傜偣璁惧</para>
-            ///<para>2锛氳仈鍔ㄨ澶囦负鍦烘櫙锛堟仮澶嶅満鏅級</para>
-            ///<para>4锛氫娇鑳藉け鑳藉叾浠栭�昏緫</para>
-            ///<para>5锛氱鐢ㄦ垨鍚敤閫昏緫鏉′欢</para>
-            ///<para> 6锛氬畨闃叉ā寮忔搷浣�</para>
-            /// </summary>
-            public int LinkType;
-            /// <summary>
-            /// 鑱斿姩璁惧鐨勫湴鍧�锛�
-            /// <para>璁惧mac鍦板潃锛堝瓧绗︼級锛孡inkType=0銆�</para>
-            ///<para>瀵瑰満鏅搷浣滐紝鍗虫仮澶嶅満鏅� 涓哄満鏅痠d锛堟暟鍊硷級锛孡inkType涓�2銆�</para>
-            ///<para>瀵瑰叾浠栭�昏緫鎿嶄綔 涓洪�昏緫id锛堟暟鍊硷級锛孡inkType=4 銆丩inkType= 5銆�</para>
-            /// </summary>
-            public string DeviceAddr;
-            /// <summary>
-            /// 鑱斿姩璁惧鐨勭鍙e彿锛歀inkType=0鏃跺瓨鍦�
-            ///<para>鍜宮ac鍦板潃鍏卞悓鏍囪瘑鍞竴鐨剒igbee璁惧 鏁板�艰寖鍥�0-255</para>
-            ///<para>鍦烘櫙鍜岀粍璁句负null锛屾垨蹇界暐璇ュ瓧娈�</para>
-            /// </summary>
-            public int Epoint;
-            /// <summary>
-            /// 閫昏緫浣胯兘銆佸け鑳姐�侺inkType=4鏃跺瓨鍦�
-            ///<para>0锛氬け鑳介�昏緫銆�</para>
-            ///<para>1锛氫娇鑳介�昏緫銆�</para>
-            ///<para>2锛氬彧浣胯兘涓�娆�</para>
-            ///<para>3锛氬彧澶辫兘涓�娆�</para>
-            /// </summary>
-            public int EnableLogic;
-            /// <summary>
-            /// 鎿嶄綔鐨勯�昏緫鏉′欢id锛孡inkType=5鏃跺瓨鍦�
-            /// </summary>
-            public int ConditionId;
-            /// <summary>
-            /// 鏄惁绂佺敤閫昏緫鏉′欢锛孡inkType=5鏃跺瓨鍦�
-            ///<para>0 绂佺敤鏉′欢锛堝皢閫昏緫鏉′欢鐨処sValid瀛楁缃�0锛�</para>
-            ///<para>1 鍚敤鏉′欢锛堝皢閫昏緫鏉′欢鐨処sValid瀛楁缃�1锛�</para>
-            ///<para>2锛氫娇鑳戒竴娆★紙鏉′欢鎴愮珛涓�娆″悗灏嗚绂佺敤锛孖sValid鑷姩缃负0锛夈��</para>
-            ///<para>3锛氬け鑳戒竴娆★紙鏉′欢绗竴娆℃垚绔嬩細琚拷鐣ワ紝瑙﹀彂涓嶄簡閫昏緫锛岀劧鍚嶪sValid鑷姩缃�1銆備互鍚庢潯浠跺啀鎴愮珛灏嗕笉浼氳蹇界暐锛�</para>
-            /// </summary>
-            public int EnableCondition;
-            /// <summary>
-            ///寤舵椂鎵ц鏃堕棿銆侺inkType=0鏃跺瓨鍦�
-            ///<para>褰揕inkType=0鏃讹紝璇ュ瓧娈典篃鍙拷鐣ワ紝榛樿涓�0锛屽嵆閫昏緫鎴愮珛鍚庣珛鍗虫墽琛岃澶囧姩浣溿��</para>
-            ///<para>鍗曚綅锛堢锛夎寖鍥达細0-65535銆�</para>
-            ///<para>閫昏緫鎴愮珛鍚庯紝寤惰繜澶氫箙鎵ц璁惧鍔ㄤ綔鎸囦护銆�</para>
-            /// </summary>
-            public int Time;
-            /// <summary>
-            ///鑱斿姩浠诲姟鍒楄〃锛孡inkType=0鏃跺瓨鍦�
-            ///<para>鑱斿姩鐨勮妭鐐硅澶囨墽琛岀殑鍔ㄤ綔鎸囦护銆�</para>
-            ///<para>鍜屾湰绔犵1灏忚妭鐨勬坊鍔犳垨淇敼閫昏緫鍛戒护鐨凾askList鏁扮粍鏍煎紡鐩稿悓</para>
-            /// </summary>
-            public List<TaskListInfo> TaskList = new List<TaskListInfo> { };
-            ///<summary>
-            ///瀵瑰畨闃叉ā寮忔搷浣�
-            ///<para>褰揕inkType = 6鏃跺瓨鍦�</para>
-            ///<para>0锛氭挙闃�</para>
-            ///<para>1锛氭案涔呭竷闃诧紝鐩村埌鎾ら槻</para>
-            ///<para>2锛氬竷闃诧紝浣嗕娇鑳戒竴娆★紝瑙﹀彂涓�娆″悗灏嗘挙闃层��</para>
-            ///<para>3锛氬竷闃诧紝浣嗗け鑳戒竴娆★紝绗竴娆¤婵�娲讳笉璀﹀憡涓嶈Е鍙戝姩浣溿��</para>
-            ///<para>瑙﹀彂鍔ㄤ綔鏃讹紝濡傛灉绯荤粺褰撳墠娌℃湁甯冮槻锛屽垯鎾ら槻澶辫触銆傚凡缁忓瓨鍦ㄥ竷闃叉ā寮忥紝灏嗗竷闃插け璐ワ紙闇�鍏堝褰撳墠甯冮槻妯″紡杩涜鎾ら槻锛�</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int SecuritySetting;
-
-            ///<summary>
-            ///瀹夐槻妯″紡id銆備负0鏃讹紝鍒欏褰撳墠鍦ㄥ竷闃茬殑瀹夐槻妯″紡杩涜鎿嶄綔銆� 
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int SecurityModeId;
-
-            ///<summary>
-            ///妫�鏌ラ槻鍖鸿澶囨渶杩戜笂鎶ョ殑瀹夐槻淇℃伅鐘舵�佽繘琛屽竷闃�
-            ///<para>褰揕inkType = 6鏃跺瓨鍦�</para>
-            ///<para>0锛氫笉妫�鏌�</para>
-            ///<para>1锛氭鏌�</para>
-            ///<para>鍙己鐪侊紝榛樿涓�0</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int CheckIASStatus;
-
-            ///<summary>
-            ///鏄惁寤舵椂鍚姩銆傚竷闃插悗寤舵椂涓�娈垫椂闂存寮忓惎鍔ㄩ槻鍖猴紝杩欐鏃堕棿鍙互璁╀汉鍛樻挙绂婚槻鍖哄尯鍩熴��
-            ///<para>褰揕inkType = 6鏃跺瓨鍦�</para>
-            ///<para>0锛氫笉寤舵椂</para>
-            ///<para>1锛氬欢鏃跺惎鍔�</para>
-            ///<para>鍙己鐪侊紝榛樿涓�0</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int IsDelayStart;
-
-            ///<summary>
-            ///甯冮槻鎾ら槻鐢ㄦ埛瀵嗙爜锛屽鏋滃瘑鐮侀敊璇皢鍔犲叆澶辫触
-            ///<para>褰揕inkType = 6鏃跺瓨鍦�</para>
-            ///<para>鏁版嵁鍥炲鏃讹紝璇ュ瓧娈典笉瀛樺湪</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int Password;
-        }
-        #endregion 
-
-        #region 鍒犻櫎鍔ㄤ綔.
-         ///<summary >
-        /// 鍒犻櫎鍔ㄤ綔
-        /// </summary>
-        public static async System.Threading.Tasks.Task<DelActionResponseAllData> DelActionAsync(DelActionData actionData)
-        {
-            return await System.Threading.Tasks.Task.Run(async () =>
-            {
-                DelActionResponseAllData allData = null;
-                if (ZbGateway.MainGateWay == null)
-                {
-                    allData = new DelActionResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
-                    return allData;
-                }
-                Action<string, string> action = (topic, message) =>
-                {
-                    var gatewayID = topic.Split('/')[0];
-                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-                    if (topic == gatewayID + "/" + "Error_Respon")
-                    {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
-
-                        if (temp == null)
-                        {
-                            allData = new DelActionResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                        }
-                        else
-                        {
-                            allData = new DelActionResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                        }
-                    }
-
-                    if (topic == gatewayID + "/" + "Logic/DelAction_Respon")
-                    {
-                        var logic = new Logic() { DataID = jobject.Value<int>("DataID"), GateWayId = ZbGateway.MainGateWay.CurrentGateWayId };
-                        var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<DelActionResponseData>(jobject["Data"].ToString());
-                        if (tempData == null)
-                        {
-                            allData = new DelActionResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                        }
-                        else
-                        {
-                            allData = new DelActionResponseAllData { delActionResponseData = tempData };
-                            System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                        }
-                    }
-                };
-                ZbGateway.MainGateWay.Actions += action;
-                System.Console.WriteLine("Logic/DelAction_Actions 鍚姩" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                try
-                {
-                    if (actionData != null)
-                    {
-                        var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 2008 } };
-
-                        var dataPublish = new Dictionary<string, object> { };
-                        switch (actionData.Type)
-                        {
-                            case 0:
-                                var dataPublish0 = new Dictionary<string, object>
-                                {
-                                    ["LogicId"] = actionData.LogicId,
-                                    ["Type"] = actionData.Type,
-                                    ["DeviceAddr"] = actionData.DeviceAddr,
-                                    ["Epoint"] = actionData.Epoint, 
-                                };
-                                dataPublish = dataPublish0;
-                                break;
-                            case 2:
-                                int sceneID = int.Parse(actionData.DeviceAddr);
-                                var dataPublish2 = new Dictionary<string, object>
-                                {
-                                    ["LogicId"] = actionData.LogicId,
-                                    ["Type"] = actionData.Type,
-                                    ["DeviceAddr"] = sceneID,
-                                    ["Epoint"] = actionData.Epoint,
-                                };
-                                dataPublish = dataPublish2;
-                                break;
-                            case 4:
-                                int conID = int.Parse(actionData.DeviceAddr);
-                                var dataPublish4 = new Dictionary<string, object> //{ };
-                                {
-                                    ["LogicId"] = actionData.LogicId,
-                                    ["Type"] = actionData.Type,
-                                    ["DeviceAddr"] = conID,
-                                 };
-                                dataPublish = dataPublish4;
-                                break;
-                            case 5:
-                                int logID = int.Parse(actionData.DeviceAddr);
-                                var dataPublish5 = new Dictionary<string, object>
-                                {
-                                    ["LogicId"] = actionData.LogicId,
-                                    ["Type"] = actionData.Type,
-                                    ["DeviceAddr"] = logID,
-                                    ["ConditionId"] = actionData.ConditionId,
-                                 };
-                                dataPublish = dataPublish5;
-                                break;
-                            case 6:
-                                int sID = int.Parse(actionData.DeviceAddr);
-                                var dataPublish6 = new Dictionary<string, object>
-                                {
-                                    ["LogicId"] = actionData.LogicId,
-                                    ["Type"] = actionData.Type,
-                                    ["SecurityModeId"] = actionData.SecurityModeId,
-                                 };
-                                dataPublish = dataPublish6;
-                                break;
-                        }
-                         ZbGateway.MainGateWay?.Send("Logic/ChangeAction", Device.Cluster_ID.Gateway, Command.LogicDelAction, Newtonsoft.Json.Linq.JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(dataPublish)));
-                      }
-                }
-                catch { }
-
-                var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < 2000)
-                {
-                    await System.Threading.Tasks.Task.Delay(10);
-                    if (allData != null)
-                    {
-                        break;
-                    }
-                }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > 2000)
-                {
-                    allData = new DelActionResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
-
-                }
-                ZbGateway.MainGateWay.Actions -= action;
-                System.Console.WriteLine("Logic/DelAction_Actions 閫�鍑�" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                return allData;
-            });
-        }
-
-        /// <summary>
-        ///鍒犻櫎鍔ㄤ綔鐨勬墍鏈夋暟鎹�,缃戝叧鍙嶉淇℃伅
-        /// </summary>
-        public DelActionResponseAllData delActionResponseAllData;
-        ///<summary >
-        /// 鍒犻櫎鍔ㄤ綔鍥炲鐨勬墍鏈夋暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class DelActionResponseAllData
-        {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
-            /// <summary>
-            /// 鍒犻櫎鍔ㄤ綔鍥炲鐨勬暟鎹�
-            /// </summary>
-            public DelActionResponseData delActionResponseData;
-        }
-
-        /// <summary>
-        ///鍒犻櫎鍔ㄤ綔鐨勬暟鎹�
-        /// </summary>
-        public DelActionResponseData delActionResponseData;
-        /// <summary>
-        ///鍒犻櫎鍔ㄤ綔鐨勬暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class DelActionResponseData : LogicBase
-        {
-            /// <summary>
-            /// 0锛氭垚鍔�
-            ///<para>1锛氬け璐ワ紝閫昏緫鎴栧姩浣滆澶囦笉瀛樺湪</para>
-            /// </summary>
-            public int Result;
-            /// <summary>
-            /// 鍒犻櫎鐨勮仈鍔ㄨ澶囩殑绫诲瀷锛�
-            ///<para>0锛氳仈鍔ㄨ澶囦负zigbee鑺傜偣璁惧</para>
-            ///<para>2锛氳仈鍔ㄨ澶囦负鍦烘櫙锛堟仮澶嶅満鏅級</para>
-            ///<para>4锛氫娇鑳藉け鑳藉叾浠栭�昏緫</para>
-            ///<para>5锛氱鐢ㄦ垨鍚敤閫昏緫鏉′欢</para>
-            ///<para>6锛氬畨闃叉ā寮忔搷浣�</para>
-            /// </summary>
-            public int Type;
-            /// <summary>
-            /// 鑱斿姩璁惧鐨勫湴鍧�锛�
-            ///<para>瀵硅澶囨搷浣� 涓鸿澶噈ac鍦板潃锛堝瓧绗︼級锛孴ype涓�0</para>
-            ///<para>瀵圭粍鎿嶄綔 涓虹粍id锛堟暟鍊硷級锛孴ype涓�2</para>
-            ///<para>瀵瑰満鏅搷浣� 涓哄満鏅痠d锛堟暟鍊硷級锛孴ype涓�2</para>
-            ///<para>瀵归�昏緫鎿嶄綔 涓洪�昏緫id锛堟暟鍊硷級锛孴ype涓�4鎴�5</para>
-            /// </summary>
-            public string DeviceAddr;
-            ///<summary>
-            ///鑱斿姩璁惧鐨勭鍙e彿锛�
-            ///<para>鍜宮ac鍦板潃鍏卞悓鏍囪瘑鍞竴鐨剒igbee璁惧 鏁板�艰寖鍥�0-255</para>
-            ///<para>鍦烘櫙鍜岀粍銆侀�昏緫蹇界暐璇ュ瓧娈�</para>
-            /// </summary>
-            public int Epoint;
-            /// <summary>
-            ///鍏朵粬閫昏緫鐨勬潯浠秈d锛屽綋Type涓�5鏃跺瓨鍦�
-            /// </summary>
-            public int ConditionId;
-            /// <summary>
-            ///瀹夐槻妯″紡id銆備负0鏃讹紝鍒欏褰撳墠鍦ㄥ竷闃茬殑瀹夐槻妯″紡杩涜鎿嶄綔銆傦紙褰揟ype = 6鏃跺瓨鍦級
-            /// </summary>
-            public int SecurityModeId;
-        }
-
-        /// <summary>
-        ///鍒犻櫎鍔ㄤ綔鐨勬暟鎹�
-        /// </summary>
-        public DelActionData delActionData;
-        /// <summary>
-        ///鍒犻櫎鍔ㄤ綔鐨勬暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class DelActionData : LogicBase
-        {
-            /// <summary>
-            /// 鍒犻櫎鐨勮仈鍔ㄨ澶囩殑绫诲瀷锛�
-            ///<para>0锛氳仈鍔ㄨ澶囦负zigbee鑺傜偣璁惧</para>
-            ///<para>2锛氳仈鍔ㄨ澶囦负鍦烘櫙锛堟仮澶嶅満鏅級</para>
-            ///<para>4锛氫娇鑳藉け鑳藉叾浠栭�昏緫</para>
-            ///<para>5锛氱鐢ㄦ垨鍚敤閫昏緫鏉′欢</para>
-            ///<para>6锛氬畨闃叉ā寮忔搷浣�</para>
-            /// </summary>
-            public int Type;
-            /// <summary>
-            /// 鑱斿姩璁惧鐨勫湴鍧�锛�
-            ///<para>瀵硅澶囨搷浣� 涓鸿澶噈ac鍦板潃锛堝瓧绗︼級锛孴ype涓�0</para>
-            ///<para>瀵圭粍鎿嶄綔 涓虹粍id锛堟暟鍊硷級锛孴ype涓�1</para>
-            ///<para>瀵瑰満鏅搷浣� 涓哄満鏅痠d锛堟暟鍊硷級锛孴ype涓�2</para>
-            ///<para>瀵归�昏緫鎿嶄綔 涓洪�昏緫id锛堟暟鍊硷級锛孴ype涓�3</para>
-            /// </summary>
-            public string DeviceAddr;
-            /// <summary>
-            /// <para>Type涓�0鏃舵墠瀛樺湪锛屾鏃跺繀闇�濉啓鍙傛暟</para>
-            /// <para>鑱斿姩璁惧鐨勭鍙e彿</para>
-            ///<para>鍜宮ac鍦板潃鍏卞悓鏍囪瘑鍞竴鐨剒igbee璁惧 鏁板�艰寖鍥�0-255</para>
-            ///<para>鍦烘櫙鍜岀粍銆侀�昏緫蹇界暐璇ュ瓧娈�</para>
-            /// </summary>
-            public int Epoint;
-            /// <summary>
-            /// <para>Type涓�5鏃舵墠瀛樺湪锛屾鏃跺繀闇�濉啓鍙傛暟</para>
-            /// 鎿嶄綔鐨勯�昏緫鏉′欢id锛孴ype涓�5鏃跺瓨鍦�
-            /// </summary>
-            public int ConditionId;
-            /// <summary>
-            /// <para>Type涓�6鏃舵墠瀛樺湪锛屾鏃跺繀闇�濉啓鍙傛暟</para>
-            /// 瀹夐槻妯″紡id銆備负0鏃讹紝鍒欏褰撳墠鍦ㄥ竷闃茬殑瀹夐槻妯″紡杩涜鎿嶄綔銆�
-            /// </summary>
-            public int SecurityModeId;
-        }
-        #endregion
-
-        #region 鍒犻櫎閫昏緫.
-        ///<summary >
-        /// 鍒犻櫎閫昏緫
-        /// </summary>
-        public static async System.Threading.Tasks.Task<DelLogicResponseAllData> DelLogicAsync(int logicId)
-        {
-            return await System.Threading.Tasks.Task.Run(async () =>
-            {
-                DelLogicResponseAllData allData = null;
-                if (ZbGateway.MainGateWay == null)
-                {
-                    allData = new DelLogicResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
-                    return allData;
-                }
-                Action<string, string> action = (topic, message) =>
-                {
-                    var gatewayID = topic.Split('/')[0];
-                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-                    if (topic == gatewayID + "/" + "Error_Respon")
-                    {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
-
-                        if (temp == null)
-                        {
-                            allData = new DelLogicResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                        }
-                        else
-                        {
-                            allData = new DelLogicResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                        }
-                    }
-
-                    if (topic == gatewayID + "/" + "Logic/DelLogic_Respon")
-                    {
-                        var logic = new Logic() { DataID = jobject.Value<int>("DataID"), GateWayId = ZbGateway.MainGateWay.CurrentGateWayId };
-                        var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<DelLogicResponseData>(jobject["Data"].ToString());
-                        if (tempData == null)
-                        {
-                            allData = new DelLogicResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                        }
-                        else
-                        {
-                            allData = new DelLogicResponseAllData { delLogicResponseData  = tempData };
-                            System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                        }
-                    }
-                };
-                ZbGateway.MainGateWay.Actions += action;
-                System.Console.WriteLine("Logic/DelLogic_Actions 鍚姩" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                try
-                {
-                        var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 2009 } };
-                         var data = new JObject {
-                         { "LogicId",logicId}
-                        };
-                        jObject.Add("Data", data);
-                     ZbGateway.MainGateWay?.Send(("Logic/DelLogic"),  jObject.ToString());
-                 }
-                catch { }
-
-                var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < 2000)
-                {
-                    await System.Threading.Tasks.Task.Delay(10);
-                    if (allData != null)
-                    {
-                        break;
-                    }
-                }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > 2000)
-                {
-                    allData = new DelLogicResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
-
-                }
-                ZbGateway.MainGateWay.Actions -= action;
-                System.Console.WriteLine("Logic/DelLogic_Actions 閫�鍑�" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                return allData;
-            });
-        }
-
-        /// <summary>
-        ///鍒犻櫎閫昏緫鐨勬墍鏈夋暟鎹�,缃戝叧鍙嶉淇℃伅
-        /// </summary>
-        public DelLogicResponseAllData delLogicResponseAllData;
-        ///<summary >
-        /// 鍒犻櫎閫昏緫鐨勬墍鏈夋暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class DelLogicResponseAllData
-        {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
-            /// <summary>
-            /// 鍒犻櫎閫昏緫鍥炲鐨勬暟鎹�
-            /// </summary>
-            public DelLogicResponseData delLogicResponseData;
-        }
-
-        /// <summary>
-        ///鍒犻櫎閫昏緫鐨勬暟鎹�
-        /// </summary>
-        public DelLogicResponseData delLogicResponseData;
-        /// <summary>
-        ///鍒犻櫎閫昏緫鐨勬暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class DelLogicResponseData : LogicBase
-        {
-            /// <summary>
-            ///0锛氭垚鍔�
-            ///<para>1锛氬け璐ワ紝閫昏緫涓嶅瓨鍦�</para>
-            /// </summary>
-            public int Result;
-        }
-         
-        #endregion
-   
-        #region 鏃堕棿鐐规潯浠舵帹杩熸墽琛�
-        /// <summary>
-        ///鑾峰彇鏃堕棿鐐规潯浠舵帹杩熸墽琛岀殑鏁版嵁
-        /// </summary>
-        public TimingWillArriveData timingWillArriveData;
-        /// <summary>
-        ///鑾峰彇鏃堕棿鐐规潯浠舵帹杩熸墽琛岀殑鏁版嵁
-        /// </summary>
-        [System.Serializable]
-        public class TimingWillArriveData : LogicBase
-        {
-            /// <summary>
-            /// 鏉′欢id
-            /// </summary>
-            public int ConditionId;
-
-            /// <summary>
-            ///鏉′欢绫诲瀷
-            ///0锛氶槼鍘� 1锛氬啘鍘�
-            /// </summary>
-            public int Calendar;
-            /// <summary>
-            ///鏃堕棿鐐圭被鍨嬶細
-            ///<para>0锛氭甯告椂闂寸偣锛堜粠Datetime杩欎釜鏃堕棿鐐瑰紑濮嬫墽琛岋級</para>
-            ///<para>1锛氭棩鍑烘椂闂达紙浠嶥ateTime涔嬪悗绗竴娆℃棩鍑烘椂闂村紑濮嬫墽琛岋級</para>
-            ///<para>2锛氭棩钀芥椂闂达紙浠嶥ateTime涔嬪悗绗竴娆℃棩钀芥椂闂村紑濮嬫墽琛岋級</para>
-            ///<para>3锛氭鍗堟椂闂达紙浠嶥ateTime涔嬪悗绗竴娆′腑鍗堟椂闂村紑濮嬫墽琛岋級</para>
-            /// </summary>
-            public int DateType;
-
-            /// <summary>
-            ///琛ㄧず瑙﹀彂鍔ㄤ綔鐨勫紑濮嬫椂闂� 鏍煎紡涓虹敱utc鏃堕棿杞崲鎴愮殑Unix鏃堕棿鎴炽�傚鍖椾含鏃堕棿2018骞�7鏈�9鏃� 17:50:00锛屽垯杞崲鏃堕棿鎴冲悗涓�1531129800銆傝鏃堕棿鐐逛篃鏄瘡鏈堟瘡骞撮噸澶嶇殑鍒ゆ柇渚濇嵁銆�
-            /// </summary>
-            public int Datetime; 
-            /// <summary>
-            /// 褰揟ype涓�0鏃讹紝璇ュ瓧娈垫墠瀛樺湪
-            ///<para>閲嶅绫诲瀷</para>
-            ///<para>1锛氭瘡灏忔椂鎵ц锛堟寜涓婇潰渚嬪瓙锛屼粠鍖椾含鏃堕棿2018/7/9 17:50:00寮�濮嬫瘡灏忔椂鎵ц涓�娆★級</para>
-            ///<para>2锛氭瘡澶╂墽琛岋紙鎸変笂闈緥瀛愶紝浠庡寳浜椂闂�2018/7/9 17:50:00寮�濮嬫瘡澶�17:50:00鎵ц涓�娆★級</para>
-            ///<para>3锛氭瘡鏈堟墽琛岋紙鎸変笂闈緥瀛愶紝浠庡寳浜椂闂�2018/7/9 17:50:00寮�濮嬫瘡鏈�9鏃�17:50:00鎵ц涓�娆°�傚鏋滀负鍐滃巻鍒欐槸姣忔湀鍐滃巻浜屽崄鍏墽琛岋級</para>
-            ///<para>4锛氭瘡骞存墽琛岋紙鎸変笂闈緥瀛愶紝浠庡寳浜椂闂�2018/7/9 17:50:00寮�濮嬫瘡骞�7鏈�9鏃�17:50:00鎵ц涓�娆°�傚鏋滀负鍐滃巻锛屽垯鏄瘡骞村啘鍘嗕簲鏈堜簩鍗佸叚17:50:00鎵ц锛�</para>
-            ///<para>5锛氬懆閲嶅銆傦紙鍛ㄤ竴鍒板懆涓冨彲閫夋墽琛岋級 </para>          
-            /// </summary>
-            public int Repeat;
-            /// <summary>
-            /// 鍛ㄥ伐浣滄ā寮忥紙鍙垨杩愮畻锛�
-            ///<para>0x01 鍛ㄤ竴鎵ц</para>  
-            ///<para>0x02 鍛ㄤ簩鎵ц</para>  
-            ///<para>0x04 鍛ㄤ笁鎵ц</para>  
-            ///<para>0x08 鍛ㄥ洓鎵ц</para>  
-            ///<para>0x10 鍛ㄤ簲鎵ц</para>  
-            ///<para>0x20 鍛ㄥ叚鎵ц</para>  
-            ///<para>0x40 鍛ㄦ棩鎵ц</para>  
-            ///<para>0x7F 姣忓ぉ鎵ц</para>  
-            ///<para>鏁板�煎彲杩涜鎴栬繍绠楋紝濡傚懆涓�銆佸懆涓夈�佸懆浜旀墽琛岋紝鍒欎负WeekDay=锛�0x01 || 0x04 || 0x10锛�= 0x15 鍗冲崄杩涘埗 21銆�</para>  
-            /// </summary>
-            /// <value>The week day.</value>
-            public int WeekDay;
-            /// <summary>
-            ///鎻愬墠鎻愰啋鏃堕棿銆傦紙鍗曚綅绉掞級鑼冨洿锛�0-65535
-            ///<para>瀹氭椂鏉′欢灏嗚瑙﹀彂鐨勫墠RemindTime绉掞紝缃戝叧灏嗛�氱煡瀹㈡埛绔畾鏃舵椂闂村皢鑷筹紝鍙兘浼氭墽琛岄�昏緫鍔ㄤ綔锛堝鏋滆閫昏緫杩橀渶瑕佹弧瓒冲叾浠栨潯浠讹紝鍒欏埌杈惧畾鏃舵椂闂存椂锛屽叾浠栨潯浠舵病鏈夋弧瓒冲皢涓嶄細鎵ц閫昏緫鍔ㄤ綔锛夈�傚湪杩欐鏃堕棿鍐咃紝瀹㈡埛绔彲鍙戦�佹寚浠よ瀹氭椂鎺ㄨ繜鎵ц銆傛渶缁堢殑瀹氭椂鏃堕棿灏嗘槸鍘熸潵瀹氭椂鏃堕棿+鎺ㄨ繜鐨勬椂闂淬��</para>  
-            ///<para>濡傛灉涓�0锛屽垯涓嶆彁閱掋�傚埌杈炬彁鍓嶆彁閱掓椂锛屽皢鍙戦�佺11灏忚妭鐨勬彁閱掗�氱煡銆�</para>  
-            /// </summary>
-            public int RemindTime;
-            /// <summary>
-            ///鏄惁鍏佽鎺ㄨ繜
-            ///<para>0锛氫笉鍏佽</para>  
-            ///<para>1锛氬厑璁�</para>  
-            ///</summary>
-            public int EnDelay;
-            /// <summary>
-            ///鎺ㄨ繜鏃堕棿锛堝崟浣嶏細绉掞級鑼冨洿锛�0-65535
-            ///<para>鎺ㄨ繜鏃堕棿濡傛灉灏忎簬鎻愬墠鎻愰啋鏃堕棿锛屽垯鍦ㄦ帹杩熷墠鐨勫畾鏃舵椂闂村埌杈炬椂鎻愰啋銆�</para>  
-            ///</summary>
-            public int DelayTime;
-             /// <summary>
-            ///鏈瀹氭椂鏉′欢瑙﹀彂鐨剈tc鏃堕棿            
-            ///</summary>
-            public int TriggerTime;
-        }
-
-        #endregion
-
-        //#region 鎺ㄨ繜瀹氭椂鏉′欢 
-        ///// <summary>
-        ///// 璁剧疆鎺ㄨ繜瀹氭椂鏉′欢鎴愮珛鐨勬暟鎹�
-        /////<para>濡傛灉瑕佹帹杩熷畾鏃舵潯浠舵垚绔嬶紝鍙湪鎻愰啋鍚庡埌杈捐Е鍙戠殑鏃堕棿鐐瑰墠鍙戦�佷互涓嬫帹杩熸寚浠ゃ�傚鏋滄帹杩熸垚鍔燂紝鏃堕棿鏉′欢灏嗗湪鍘熻瑙﹀彂鐨勬椂闂寸偣涓婃帹杩烡elayTime瑙﹀彂鏉′欢銆�</para>
-        ///// </summary>
-        //public GetLogicTimeDelayTriggerData getLogicTimeDelayTrigger;
-        ///// <summary>
-        ///// 璁剧疆鎺ㄨ繜瀹氭椂鏉′欢鎴愮珛鐨勬暟鎹�
-        /////<para>濡傛灉瑕佹帹杩熷畾鏃舵潯浠舵垚绔嬶紝鍙湪鎻愰啋鍚庡埌杈捐Е鍙戠殑鏃堕棿鐐瑰墠鍙戦�佷互涓嬫帹杩熸寚浠ゃ�傚鏋滄帹杩熸垚鍔燂紝鏃堕棿鏉′欢灏嗗湪鍘熻瑙﹀彂鐨勬椂闂寸偣涓婃帹杩烡elayTime瑙﹀彂鏉′欢銆�</para>
-        ///// </summary>
-        //[System.Serializable]
-        //public class GetLogicTimeDelayTriggerData : LogicBase
-        //{
-        //    /// <summary>
-        //    /// 0锛氭垚鍔�
-        //    ///<para>1锛氬け璐ワ紝閫昏緫鎴栨潯浠朵笉瀛樺湪</para>  
-        //    ///<para>2锛氬け璐ワ紝鏉′欢涓嶆槸瀹氭椂鏉′欢銆�</para>  
-        //    ///<para>3锛氬け璐ワ紝鏉′欢涓嶅厑璁告帹杩�</para>  
-        //    ///<para>4锛氬け璐ワ紝娌℃湁鍦ㄦ彁閱掑悗鍒拌揪瑙﹀彂鐨勬椂闂寸偣鍓嶅彂閫併��</para>  
-        //    /// </summary>
-        //    public int Result;
-
-        //    /// <summary>
-        //    ///鏉′欢id
-        //    /// </summary>
-        //    public int ConditionId;
-        //    /// <summary>
-        //    ///鎺ㄨ繜鍚庡畾鏃舵潯浠惰Е鍙戠殑utc鏃堕棿
-        //    /// </summary>
-        //    public int TriggerTime;
-
-        //}
-
-        ///// <summary>
-        ///// 鎺ㄨ繜瀹氭椂鏉′欢鎴愮珛锛屽彂甯冨埌缃戝叧
-        ///// <para>濡傛灉瑕佹帹杩熷畾鏃舵潯浠舵垚绔嬶紝鍙湪鎻愰啋鍚庡埌杈捐Е鍙戠殑鏃堕棿鐐瑰墠鍙戦�佷互涓嬫帹杩熸寚浠ゃ�傚鏋滄帹杩熸垚鍔燂紝鏃堕棿鏉′欢灏嗗湪鍘熻瑙﹀彂鐨勬椂闂寸偣涓婃帹杩烡elayTime瑙﹀彂鏉′欢銆�</para> 
-        ///// <para>logicId 閫昏緫id锛岄�昏緫鐨勫敮涓�鏍囪瘑</para> 
-        ///// <para>conditionId 鏉′欢id</para> 
-        ///// </summary>
-        //public void LogicTimeDelayTriggerPublish(int logicId, int conditionId)
-        //{
-        //    var dataPublish = new Dictionary<string, object> { ["LogicId"] = logicId, ["ConditionId"] = conditionId };
-        //    ZbGateway.MainGateWay?.Send("Logic/TimingWillArrive", Device.Cluster_ID.Gateway, Command.LogicTimeDelayTrigger, Newtonsoft.Json.Linq.JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(dataPublish)));
-        //}
-        //#endregion
-
-        #region 閫昏緫琚皟鐢ㄥ弽棣�.
-        ///<summary >
-        ///閫昏緫鎺у埗
-        /// </summary>
-        public static async System.Threading.Tasks.Task<ExecuteRespoAllData> ControlLogicAsync(int logicId)
-        {
-            return await System.Threading.Tasks.Task.Run(async () =>
-            {
-                ExecuteRespoAllData allData = null;
-                if (ZbGateway.MainGateWay == null)
-                {
-                    allData = new ExecuteRespoAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
-                    return allData;
-                }
-                Action<string, string> action = (topic, message) =>
-                {
-                    var gatewayID = topic.Split('/')[0];
-                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-                    if (topic == gatewayID + "/" + "Error_Respon")
-                    {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
-
-                        if (temp == null)
-                        {
-                            allData = new ExecuteRespoAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                        }
-                        else
-                        {
-                            allData = new ExecuteRespoAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                        }
-                    }
-
-                    if (topic == gatewayID + "/" + "Logic/TestActions_Respon")
-                    {
-                        var logic = new Logic() { DataID = jobject.Value<int>("DataID"), GateWayId = ZbGateway.MainGateWay.CurrentGateWayId };
-                        var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<ExecuteResponse>(jobject["Data"].ToString());
-                        if (tempData == null)
-                        {
-                            allData = new ExecuteRespoAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                        }
-                        else
-                        {
-                            allData = new ExecuteRespoAllData { logicExecuteRespo = tempData };
-                            System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                        }
-                    }
-                };
-                ZbGateway.MainGateWay.Actions += action;
-                System.Console.WriteLine("Logic/TestActions_Actions 鍚姩" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                try
-                {
-                    var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 2012 } };
-                    var data = new JObject {
-                         { "LogicId",logicId}
-                        };
-                    jObject.Add("Data", data);
-                     ZbGateway.MainGateWay?.Send(("Logic/TestActions"),  jObject.ToString());
-                }
-                catch { }
-
-                var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < 2000)
-                {
-                    await System.Threading.Tasks.Task.Delay(10);
-                    if (allData != null)
-                    {
-                        break;
-                    }
-                }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > 2000)
-                {
-                    allData = new ExecuteRespoAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
-
-                }
-                ZbGateway.MainGateWay.Actions -= action;
-                System.Console.WriteLine("Logic/TestActions_Actions 閫�鍑�" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                return allData;
-            });
-        }
-
-        /// <summary>
-        /// 璋冪敤鍦烘櫙,缃戝叧鍙嶉淇℃伅
-        /// <para>杩斿洖Result 0锛氳皟鐢ㄥけ璐�</para>
-        ///<para>Result 1锛氳皟鐢ㄦ垚鍔�<para>
-        /// </summary>
-        public ExecuteRespoAllData executeRespoAllData;
-        /// <summary>
-        /// 璋冪敤閫昏緫,缃戝叧鍙嶉淇℃伅
-        /// </summary>
-        [System.Serializable]
-        public class ExecuteRespoAllData
-        {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
-            /// <summary>
-            /// 璋冪敤閫昏緫
-            /// </summary>
-            public ExecuteResponse logicExecuteRespo;
-        }
-
-        /// <summary>
-        ///璋冪敤閫昏緫
-        /// </summary>
-        public ExecuteResponse logicExecuteRespo;
-        /// <summary>
-        ///璋冪敤閫昏緫
-        /// </summary>
-        [System.Serializable]
-        public class ExecuteResponse : LogicBase
-        {
-            /// <summary>
-            /// 0锛氭垚鍔�
-            ///<para>1锛氬け璐ワ紝閫昏緫涓嶅瓨鍦�</para>
-            /// </summary>
-            public int Result;
-        }
-
-        #endregion
-
-        #region 璁惧畾缃戝叧鎵�鍦ㄥ湴缁忕含搴�. 
-        /// <summary>
-        /// 璁惧畾缃戝叧鎵�鍦ㄥ湴缁忕含搴� 
-        /// <param name="longitude">Longitude:缁忓害銆傚崟浣嶏細0.01掳銆� 涓滅粡涓烘鏁帮紝瑗跨粡涓鸿礋鏁般�傚锛氳タ缁�172.53掳W锛屽簲濉叆-17253</param>
-        /// <param name="latitude">Latitude:缁村害銆傚崟浣嶏細0.01掳銆傚寳绾害涓烘鏁帮紝鍗楃含搴︿负璐熸暟銆傚锛氬崡绾害锛屽鍗楃含90.25掳S 锛屽簲璇ュ~鍏�-9025銆�</param>
-        /// </summary>
-        public static async System.Threading.Tasks.Task<SetSiteResponseAllData> SetSiteAsync(int longitude,int latitude)
-        {
-            return await System.Threading.Tasks.Task.Run(async () =>
-            {
-                SetSiteResponseAllData allData = null;
-                if (ZbGateway.MainGateWay == null)
-                {
-                    allData = new SetSiteResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
-                    return allData;
-                }
-                Action<string, string> action = (topic, message) =>
-                {
-                    var gatewayID = topic.Split('/')[0];
-                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-                    if (topic == gatewayID + "/" + "Error_Respon")
-                    {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
-
-                        if (temp == null)
-                        {
-                            allData = new SetSiteResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                        }
-                        else
-                        {
-                            allData = new SetSiteResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                        }
-                    }
-
-                    if (topic == gatewayID + "/" + "Logic/SetSite_Respon")
-                    {
-                        var logic = new Logic() { DataID = jobject.Value<int>("DataID"), GateWayId = ZbGateway.MainGateWay.CurrentGateWayId };
-                        var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetSiteResponseData>(jobject["Data"].ToString());
-                        if (tempData == null)
-                        {
-                            allData = new SetSiteResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                        }
-                        else
-                        {
-                            allData = new SetSiteResponseAllData { setSiteResponseData = tempData };
-                            System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                        }
-                    }
-                };
-                ZbGateway.MainGateWay.Actions += action;
-                System.Console.WriteLine("Logic/SetSite_Actions 鍚姩" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                try
-                {
-                    var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 2013 } };
-                    var data = new JObject {
-                         { "Longitude",longitude},
-                         { "Latitude",latitude}
-                        };
-                    jObject.Add("Data", data);
-                     ZbGateway.MainGateWay?.Send(("Logic/SetSite"),  jObject.ToString());
-                }
-                catch { }
-
-                var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < 2000)
-                {
-                    await System.Threading.Tasks.Task.Delay(10);
-                    if (allData != null)
-                    {
-                        break;
-                    }
-                }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > 2000)
-                {
-                    allData = new SetSiteResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
-
-                }
-                ZbGateway.MainGateWay.Actions -= action;
-                System.Console.WriteLine("Logic/SetSite_Actions 閫�鍑�" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                return allData;
-            });
-        }
-
-        /// <summary>
-        /// 璁惧畾缃戝叧鎵�鍦ㄥ湴缁忕含搴�,缃戝叧鍙嶉淇℃伅
-        /// <para>杩斿洖Result 0锛氳皟鐢ㄥけ璐�</para>
-        ///<para>Result 1锛氳皟鐢ㄦ垚鍔�<para>
-        /// </summary>
-        public SetSiteResponseAllData setSiteResponseAllData;
-        /// <summary>
-        /// 璁惧畾缃戝叧鎵�鍦ㄥ湴缁忕含搴�,缃戝叧鍙嶉淇℃伅
-        /// </summary>
-        [System.Serializable]
-        public class SetSiteResponseAllData
-        {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
-            /// <summary>
-            /// 璁惧畾缃戝叧鎵�鍦ㄥ湴缁忕含搴�
-            /// </summary>
-            public SetSiteResponseData setSiteResponseData;
-        }
-
-        /// <summary>
-        ///璁惧畾缃戝叧鎵�鍦ㄥ湴缁忕含搴�
-        /// </summary>
-        public SetSiteResponseData setSiteResponseData;
-        /// <summary>
-        ///璁惧畾缃戝叧鎵�鍦ㄥ湴缁忕含搴�
-        /// </summary>
-        [System.Serializable]
-        public class SetSiteResponseData  
-        {
-            /// <summary>
-            ///0锛氭垚鍔�
-            /// </summary>
-            public int Result;
-            /// <summary>
-            ///缁忓害銆傚崟浣嶏細0.01掳銆� 涓滅粡涓烘鏁帮紝瑗跨粡涓鸿礋鏁般�傚锛氳タ缁�172.53掳W锛屽簲濉叆-17253
-            /// </summary>
-            public int Longitude;
-            /// <summary>
-            ///缁村害銆傚崟浣嶏細0.01掳銆傚寳绾害涓烘鏁帮紝鍗楃含搴︿负璐熸暟銆傚锛氬崡绾害锛屽鍗楃含90.25掳S 锛屽簲璇ュ~鍏�-9025銆�
-            /// </summary>
-            public int Latitude;
-        }
-        #endregion
-
-        #region 璇诲彇缃戝叧褰撳墠璁惧畾鐨勭粡绾害淇℃伅.
-        ///<summary >
-        ///璇诲彇缃戝叧褰撳墠璁惧畾鐨勭粡绾害淇℃伅
-        /// <para></para>
-        /// </summary>
-        public static async System.Threading.Tasks.Task<ReadSiteResponseAllData> ReadSiteAsync()
-        {
-            return await System.Threading.Tasks.Task.Run(async () =>
-            {
-                ReadSiteResponseAllData allData = null;
-                if (ZbGateway.MainGateWay == null)
-                {
-                    allData = new ReadSiteResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
-                    return allData;
-                }
-                Action<string, string> action = (topic, message) =>
-                {
-                    var gatewayID = topic.Split('/')[0];
-                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-                    if (topic == gatewayID + "/" + "Error_Respon")
-                    {
-                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = ZbGateway.MainGateWay.getGatewayBaseInfo.gwID };
-                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
-
-                        if (temp == null)
-                        {
-                            allData = new ReadSiteResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
-                        }
-                        else
-                        {
-                            allData = new ReadSiteResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
-                        }
-                    }
-
-                    if (topic == gatewayID + "/" + "Logic/ReadSite_Respon")
-                    {
-                        var logic = new Logic() { DataID = jobject.Value<int>("DataID"), GateWayId = ZbGateway.MainGateWay.CurrentGateWayId };
-                        var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<ReadSiteResponseData>(jobject["Data"].ToString());
-                        if (tempData == null)
-                        {
-                            allData = new ReadSiteResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
-                        }
-                        else
-                        {
-                            allData = new ReadSiteResponseAllData { readSiteResponseData = tempData };  
-                            System.Console.WriteLine($"鏀跺埌閫氱煡鍚庣殑涓婚_{ topic}");
-                        }
-                    }
-                };
-                ZbGateway.MainGateWay.Actions += action;
-                System.Console.WriteLine("Logic/ReadSite_Actions 鍚姩" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                try
-                {
-                    var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 2014 } };
-                     ZbGateway.MainGateWay?.Send(("Logic/ReadSite"),  jObject.ToString());
-                }
-                catch { }
-
-                var dateTime = DateTime.Now;
-                while ((DateTime.Now - dateTime).TotalMilliseconds < 2000)
-                {
-                    await System.Threading.Tasks.Task.Delay(10);
-                    if (allData != null)
-                    {
-                        break;
-                    }
-                }
-                if ((DateTime.Now - dateTime).TotalMilliseconds > 2000)
-                {
-                    allData = new ReadSiteResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
-
-                }
-                ZbGateway.MainGateWay.Actions -= action;
-                System.Console.WriteLine("Logic/ReadSite_Actions 閫�鍑�" + "_" + ZbGateway.MainGateWay.getGatewayBaseInfo.gwID + System.DateTime.Now.ToString());
-
-                return allData;
-            });
-        }
-
-        /// <summary>
-        /// 璇诲彇缃戝叧褰撳墠璁惧畾鐨勭粡绾害淇℃伅,缃戝叧鍙嶉淇℃伅
-        /// <para>杩斿洖Result 0锛氳皟鐢ㄥけ璐�</para>
-        ///<para>Result 1锛氳皟鐢ㄦ垚鍔�<para>
-        /// </summary>
-        public ReadSiteResponseAllData readSiteResponseAllData;
-        /// <summary>
-        /// 璇诲彇缃戝叧褰撳墠璁惧畾鐨勭粡绾害淇℃伅,缃戝叧鍙嶉淇℃伅
-        /// </summary>
-        [System.Serializable]
-        public class ReadSiteResponseAllData
-        {
-            /// <summary>
-            /// 閿欒淇℃伅
-            /// </summary>
-            public string errorMessageBase;
-            /// <summary>
-            /// 缃戝叧淇℃伅閿欒鍙嶉
-            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
-            /// </summary>
-            public ErrorResponData errorResponData;
-            /// <summary>
-            /// 璇诲彇缃戝叧褰撳墠璁惧畾鐨勭粡绾害淇℃伅
-            /// </summary>
-            public ReadSiteResponseData readSiteResponseData;
-        }
-
-        /// <summary>
-        ///璇诲彇缃戝叧褰撳墠璁惧畾鐨勭粡绾害淇℃伅
-        /// </summary>
-        public ReadSiteResponseData readSiteResponseData;
-        /// <summary>
-        ///璇诲彇缃戝叧褰撳墠璁惧畾鐨勭粡绾害淇℃伅
-        /// </summary>
-        [System.Serializable]
-        public class ReadSiteResponseData
-        { 
-            /// <summary>
-            ///缁忓害銆傚崟浣嶏細0.01掳銆� 涓滅粡涓烘鏁帮紝瑗跨粡涓鸿礋鏁般�傚锛氳タ缁�172.53掳W锛屽簲濉叆-17253
-            /// </summary>
-            public int Longitude;
-            /// <summary>
-            ///缁村害銆傚崟浣嶏細0.01掳銆傚寳绾害涓烘鏁帮紝鍗楃含搴︿负璐熸暟銆傚锛氬崡绾害锛屽鍗楃含90.25掳S 锛屽簲璇ュ~鍏�-9025銆�
-            /// </summary>
-            public int Latitude;
-        }
-        #endregion
-
-        #region 鏉′欢鏁版嵁瀵硅薄
-        /// <summary>
-        /// 鍏朵粬閫昏緫鏉′欢鏁版嵁
-        /// </summary>
-        [System.Serializable]
-        public class LogicConditionsInfo : ConditionBase
-        {
-             /// <summary>
-            ///浣滄潯浠剁殑鍏朵粬閫昏緫id銆�
-            /// </summary>
-            public int Condition_LogicId;
-        }
-
-        /// <summary>
-        /// 璁℃暟鍣ㄦ潯浠舵暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class CounterConditionsInfo : ConditionBase
-        { 
-             /// <summary>
-            /// 璁惧mac鍦板潃
-            /// </summary>
-            public string MacAddr;
-
-            /// <summary>
-            /// 褰揟ype涓�1鏃讹紝璇ュ瓧娈垫墠瀛樺湪
-            ///<para>璁惧绔彛鍙凤紝璇ョ鍙e~鍏ョ殑鏄敤浜庝笂鎶luster_ID鍜孉ttriButeId灞炴�у�肩殑绔彛鍙枫��</para>
-            ///<para>鐗规畩璁惧锛�
-            ///濡傛灉涓篽dl鍔熻兘鎸夐敭鍒欏~鍏ユ寜閿彿锛堟寜閿搴旂殑绔彛鍙凤級</para>
-            /// </summary>
-            public int Epoint;
-
-            /// <summary>
-            ///褰揟ype涓�1 鏃讹紝璇ュ瓧娈垫墠瀛樺湪
-            ///<para>瑙﹀彂鑱斿姩鐨勫睘鎬х姸鎬佹墍鍦–luster 濡傚紑鍏矯luster 6 </para>
-            ///<para>鐗规畩璁惧锛�</para>
-            ///<para>1銆佸鏋滀负hdl鍔熻兘鎸夐敭鍒欏~64528銆�</para>
-            ///<para>2銆佸鏋滀负IAS瀹夐槻璁惧鍒欏~鍏�1280銆�</para>
-            ///<para>3銆佸鏋滀负闂ㄩ攣鎿嶄綔浜嬩欢锛屽垯濉叆64529銆�</para>
-            /// </summary>
-            public int Cluster_ID;
-
-            /// <summary>
-            ///褰揟ype涓�1 鏃讹紝璇ュ瓧娈垫墠瀛樺湪
-            /// <para>瑙﹀彂鑱斿姩鐨勫睘鎬� 濡侰luster = 6鏃� AttriButeId = 0涓哄紑鍏冲睘鎬�</para>
-            ///<para>鐗规畩璁惧锛�</para>
-            ///<para>濡傛灉涓篽dl鍔熻兘鎸夐敭鍒欎负鎸夐敭瑙﹀彂鏃朵笂鎶ヨЕ鍙戜俊鎭殑鎸夐敭鍙风被鍨嬨��</para>
-            ///<para>濡傛灉涓篒AS瀹夐槻璁惧鍒欏~鍏�1281銆�</para>
-            ///<para>濡傛灉涓洪棬閿佹搷浣滀簨浠跺垯濉叆闂ㄩ攣鎿嶄綔浜嬩欢鐨凮perationEventSoure鍒楄〃鍊�</para>
-            /// </summary>
-            public int AttriButeId;
-
-
-            /// <summary>
-            /// 灞炴�х姸鎬佷复鐣屽��1 
-            ///<para>鐗规畩璁惧锛�</para>
-            ///<para>濡傛灉涓篽dl鍔熻兘鎸夐敭锛屽垯涓轰笅鍒楁寜閿ā寮忥細1锛氱偣鍑� 2锛氬墠鐐瑰嚮 4锛氬悗鍗曞嚮 8锛氫粎鍙屽嚮 16锛氬墠鍙屽嚮 32锛氬悗鍙屽嚮 64锛氫粎闀挎寜  128锛氬墠闀挎寜 256锛氬悗闀挎寜 512锛氶暱鎸夐噴鏀俱��</para>
-            ///<para>濡傛灉涓篒AS瀹夐槻璁惧鍒欎负IAS瀹夐槻璁惧淇℃伅涓婃姤鏁版嵁涓殑ZoneStatus銆�</para>
-            ///<para>濡傛灉涓洪棬閿佹搷浣滀簨浠跺垯濉叆闂ㄩ攣鎿嶄綔浜嬩欢鐨凮peration Event Code鍊�</para>
-            /// </summary>
-            public int AttriButeData1;
-
-            /// <summary>
-            /// 灞炴�х姸鎬佷复鐣屽��2 锛堝弬鑰傾ttriButeData1璇存槑锛�
-            /// </summary>
-            public int AttriButeData2;
-
-            /// <summary>
-            /// 0 : 澶т簬AttriButeData1鏃惰鏁颁竴娆�
-            ///<para>1 锛氱瓑浜嶢ttriButeData1鏃惰鏁颁竴娆�</para>
-            ///<para>2锛氬皬浜嶢ttriButeData1鏃惰鏁颁竴娆�</para>
-            ///<para>3锛氬ぇ浜嶢ttriButeData1涓斿皬浜嶢ttriButeData2璁℃暟涓�娆�</para>
-            ///<para>4锛氬皬浜嶢ttriButeData1鎴栧ぇ浜嶢ttriButeData2璁℃暟涓�娆�</para>
-            ///<para>5锛氫笌AttriButeData1杩涜涓庤繍绠楃粨鏋滀笉涓�0鏃惰鏁颁竴娆°��</para>
-            ///<para>6锛氬拰涓婁竴娆′笂鎶ョ殑AttriButeData鍊间笉鍚屾椂璁℃暟涓�娆� </para>         
-            /// </summary>
-            public int Range;
-
-            /// <summary>
-            ///鍒拌揪澶氬皯娆¤Е鍙戦�昏緫
-            /// </summary>
-            public int Number;
-
-            /// <summary>
-            ///鏃堕棿鑼冨洿銆傚崟浣嶏細绉�
-            ///<para>澶氬皯绉掑唴鍒拌揪澶氬皯娆¤Е鍙戙��</para>
-            ///<para>濡傛灉鏃堕棿鍒拌揪鍚庯紝杩樹笉杈惧埌娆℃暟鍒欏皢娆℃暟娓呴浂銆傞噸鏂板紑濮嬪�掕鏃跺強璁℃暟銆�</para>
-            /// </summary>
-            public int Time;
-
-            /// <summary>
-            ///鍙己鐪侊紝榛樿涓� 0銆�
-            ///<para>鏄惁寰幆鎵ц銆傚涓�娆¤瀹氭椂闂村唴鏄惁杈惧埌瑙﹀彂娆℃暟鐨勭粨鏋滃鐞嗐��</para>
-            ///<para>0锛氬惊鐜墽琛屻�傚綋瓒呮椂鎴栬瀹氭椂闂村唴杈惧埌娆℃暟鍚庯紝娓呴浂娆℃暟锛岄噸鏂拌鏃讹紝缁х画涓嬩竴娆¤鏁般��</para>
-            ///<para>1锛氭煇娆¤秴鏃堕��鍑恒�傚鏋滆揪鍒版鏁板垯娓呴浂璁℃暟閲嶆柊璁℃椂锛岀户缁笅涓�娆¤鏁般�傚鏋滆秴鏃跺垯閫�鍑鸿鏁般�傚苟灏咺sVail璁剧疆涓�0銆�</para>
-            ///<para>2锛氳鏁颁竴娆¢��鍑恒�傚埌杈捐瀹氭椂闂村悗锛屾棤璁烘槸鍚﹁揪鍒版鏁帮紝閮藉皢閫�鍑恒�傚苟灏咺sVail缃�0銆�</para>
-            ///</summary>
-            public int Cycle;
-        }
-
-        /// <summary>
-        /// 鍊掕鏃舵潯浠舵暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class CountdownConditionsInfo : ConditionBase
-        { 
-            /// <summary>
-            ///鍊掕鏃跺灏戠瑙﹀彂銆傚崟浣� 绉掋��
-            ///<para>鍊掕鏃跺彧鐢熸晥涓�娆★紝姣忔鍊掕鏃跺畬鎴愬悗鑷姩灏咺sValid缃�0銆傚鎴风鍙�氳繃绗�6灏忚妭鍛戒护浣胯兘璇ュ�掕鏃舵潯浠讹紝灏咺sValid缃�1锛屽嵆鍙啀娆′娇鐢ㄨ鍊掕鏃躲��</para>
-            /// </summary>
-            public int Time;
-        }
-
-        /// <summary>
-        /// 鏃堕棿娈垫潯浠舵潯浠舵暟鎹�
-        /// </summary>
-        [System.Serializable]
-        public class TimeBucketConditionsInfo : ConditionBase
-        {
-            /// <summary>
-            ///瑙﹀彂鍔ㄤ綔寮�濮嬫椂闂达紝灏忔椂銆�
-            /// </summary>
-            public int StartHour;
-
-            /// <summary>
-            ///瑙﹀彂鍔ㄤ綔寮�濮嬫椂闂达紝鍒嗛挓
-            /// </summary>
-            public int StartMin;
-
-            /// <summary>
-            ///瑙﹀彂鍔ㄤ綔缁撴潫鏃堕棿锛屽皬鏃�
-            /// </summary>
-            public int StopHour;
-
-            /// <summary>
-            ///瑙﹀彂鏃堕棿缁撴潫鏃堕棿锛屽垎閽�
-            /// </summary>
-            public int StopMin;
-                 
-        }
-
-        /// <summary>
-        /// 瀹夐槻鏉′欢鏁版嵁
-        /// </summary>
-        [System.Serializable]
-        public class SecurityConditionsInfo : ConditionBase
-        { 
-            /// <summary>
-            ///0锛氬竷闃叉垚鍔熺灛闂磋Е鍙戞潯浠舵垚绔嬨��
-            ///<para>1锛氭挙闃叉垚鍔熺灛闂磋Е鍙戞潯浠舵垚绔嬨��</para>
-            /// </summary>
-            public int EnOrWithdrawMode;
-
-            /// <summary>
-            ///瀹夐槻妯″紡id銆傚鏋滀负0锛屽垯涓轰换鎰忓畨闃叉ā寮忓竷闃叉垨鎾ら槻鎴愬姛鍚庤Е鍙戞潯浠�
-            /// </summary>
-            public int ModeId;
-
-        }
-
-        /// <summary>
-        /// 鎵ц鍔ㄤ綔鏁版嵁
-        /// </summary>
-        [System.Serializable]
-        public class ActionsInfo
-        {
-            /// <summary>
-            /// 娣诲姞鐨勮仈鍔ㄨ澶囩被鍨�
-            ///<para>0锛氳仈鍔ㄨ澶囦负zigbee鑺傜偣璁惧</para>
-            ///<para>2锛氳仈鍔ㄨ澶囦负鍦烘櫙锛堟仮澶嶅満鏅級</para>
-            ///<para>4锛氫娇鑳藉け鑳藉叾浠栭�昏緫</para>
-            ///<para>5锛氱鐢ㄦ垨鍚敤閫昏緫鏉′欢</para>
-            ///<para>6锛氬瀹夐槻妯″紡杩涜甯冩挙闃�</para>
-            /// </summary>
-            /// <value>The type of the link.</value>
-            public int LinkType;
-
-            /// <summary>
-            /// 鑱斿姩璁惧鐨勫湴鍧�锛�
-            ///<para>璁惧mac鍦板潃锛堝瓧绗︼級锛孡inkType=0銆�</para>
-            ///<para>瀵瑰満鏅搷浣滐紝鍗虫仮澶嶅満鏅� 涓哄満鏅痠d锛堟暟鍊硷級锛孡inkType涓�2銆�</para>
-            ///<para>瀵瑰叾浠栭�昏緫鎿嶄綔 涓洪�昏緫id锛堟暟鍊硷級锛孡inkType涓�4 銆丩inkType涓� 5銆�</para>
-            /// </summary>
-            /// <value>The device address.</value>
-            public string DeviceAddr;
-            /// <summary>
-            /// 鑱斿姩璁惧鐨勭鍙e彿锛�
-            ///<para>鍜宮ac鍦板潃鍏卞悓鏍囪瘑鍞竴鐨剒igbee璁惧 鏁板�艰寖鍥�0-255</para>
-            ///<para>褰揕inkType=0鏃跺瓨鍦�</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int Epoint;
-
-            /// <summary>
-            /// 閫昏緫浣胯兘銆佸け鑳姐��
-            ///<para>褰揕inkType = 4鏃跺瓨鍦�</para>
-            ///<para>0锛氬け鑳介�昏緫銆�</para>
-            ///<para>1锛氫娇鑳介�昏緫銆�</para>
-            ///<para>2锛氬彧浣胯兘涓�娆�</para>
-            ///<para>3锛氬彧澶辫兘涓�娆�</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int EnableLogic;
-
-            /// <summary>
-            /// 鎿嶄綔鐨勯�昏緫鏉′欢id銆�
-            ///<para>褰揕inkType=5鏃跺瓨鍦�</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int ConditionId;
-
-            /// <summary>
-            /// 鏄惁绂佺敤閫昏緫鏉′欢
-            ///<para>褰揕inkType=5鏃跺瓨鍦�</para>
-            ///<para>0 绂佺敤鏉′欢锛堝皢閫昏緫鏉′欢鐨処sValid瀛楁缃�0锛�</para>
-            ///<para>1 鍚敤鏉′欢锛堝皢閫昏緫鏉′欢鐨処sValid瀛楁缃�1锛�</para>
-            ///<para>2锛氫娇鑳戒竴娆★紙鏉′欢鎴愮珛涓�娆″悗灏嗚绂佺敤锛孖sValid鑷姩缃负0锛夈��</para>
-            ///<para>3锛氬け鑳戒竴娆★紙鏉′欢绗竴娆℃垚绔嬩細琚拷鐣ワ紝瑙﹀彂涓嶄簡閫昏緫锛岀劧鍚嶪sValid鑷姩缃�1銆備互鍚庢潯浠跺啀鎴愮珛灏嗕笉浼氳蹇界暐锛�</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int EnableCondition;
-
-            /// <summary>
-            /// 寤舵椂鎵ц鏃堕棿銆傚崟浣嶏紙绉掞級鑼冨洿锛�0-65535銆�
-            ///<para>閫昏緫鎴愮珛鍚庯紝寤惰繜澶氫箙鎵ц璁惧鍔ㄤ綔鎸囦护銆�</para>
-            ///<para>褰揕inkType=0鏃跺瓨鍦ㄣ�傝瀛楁鍙拷鐣ワ紝榛樿涓�0锛屽嵆閫昏緫鎴愮珛鍚庣珛鍗虫墽琛岃澶囧姩浣溿��</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int Time;
-
-            /// <summary>
-            /// 璁惧鍒楄〃
-            /// <para>褰揕inkType=0鏃跺瓨鍦�</para>
-            /// </summary>
-            public List<TaskListInfo> TaskList = new List<TaskListInfo>();
-
-            ///<summary>
-            ///瀵瑰畨闃叉ā寮忔搷浣�
-            ///<para>褰揕inkType = 6鏃跺瓨鍦�</para>
-            ///<para>0锛氭挙闃�</para>
-            ///<para>1锛氭案涔呭竷闃诧紝鐩村埌鎾ら槻</para>
-            ///<para>2锛氬竷闃诧紝浣嗕娇鑳戒竴娆★紝瑙﹀彂涓�娆″悗灏嗘挙闃层��</para>
-            ///<para>3锛氬竷闃诧紝浣嗗け鑳戒竴娆★紝绗竴娆¤婵�娲讳笉璀﹀憡涓嶈Е鍙戝姩浣溿��</para>
-            ///<para>瑙﹀彂鍔ㄤ綔鏃讹紝濡傛灉绯荤粺褰撳墠娌℃湁甯冮槻锛屽垯鎾ら槻澶辫触銆傚凡缁忓瓨鍦ㄥ竷闃叉ā寮忥紝灏嗗竷闃插け璐ワ紙闇�鍏堝褰撳墠甯冮槻妯″紡杩涜鎾ら槻锛�</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int SecuritySetting;
-
-            ///<summary>
-            ///瀹夐槻妯″紡id銆備负0鏃讹紝鍒欏褰撳墠鍦ㄥ竷闃茬殑瀹夐槻妯″紡杩涜鎿嶄綔銆� 
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int SecurityModeId;
-
-            ///<summary>
-            ///妫�鏌ラ槻鍖鸿澶囨渶杩戜笂鎶ョ殑瀹夐槻淇℃伅鐘舵�佽繘琛屽竷闃�
-            ///<para>褰揕inkType = 6鏃跺瓨鍦�</para>
-            ///<para>0锛氫笉妫�鏌�</para>
-            ///<para>1锛氭鏌�</para>
-            ///<para>鍙己鐪侊紝榛樿涓�0</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int CheckIASStatus;
-
-            ///<summary>
-            ///鏄惁寤舵椂鍚姩銆傚竷闃插悗寤舵椂涓�娈垫椂闂存寮忓惎鍔ㄩ槻鍖猴紝杩欐鏃堕棿鍙互璁╀汉鍛樻挙绂婚槻鍖哄尯鍩熴��
-            ///<para>褰揕inkType = 6鏃跺瓨鍦�</para>
-            ///<para>0锛氫笉寤舵椂</para>
-            ///<para>1锛氬欢鏃跺惎鍔�</para>
-            ///<para>鍙己鐪侊紝榛樿涓�0</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int IsDelayStart;
-
-            ///<summary>
-            ///甯冮槻鎾ら槻鐢ㄦ埛瀵嗙爜锛屽鏋滃瘑鐮侀敊璇皢鍔犲叆澶辫触
-            ///<para>褰揕inkType = 6鏃跺瓨鍦�</para>
-            ///<para>鏁版嵁鍥炲鏃讹紝璇ュ瓧娈典笉瀛樺湪</para>
-            /// </summary>
-            /// <value>The epoint.</value>
-            public int Password;
-
-        }
-
-        /// <summary>
-        /// 鏃堕棿鏉′欢鏁版嵁
-        /// </summary>
-        [System.Serializable]
-        public class TimeConditionsInfo : ConditionBase
-        {
-            /// <summary>
-            ///鏃堕棿鐐圭被鍨嬶細
-            ///<para>0锛氭甯告椂闂寸偣锛堢敱StartHour鍜孲tartMin璁惧畾锛�</para>
-            ///<para>1锛氭棩鍑烘椂闂� </para>
-            ///<para>2锛氭棩钀芥椂闂� </para>
-            ///<para>3锛氭鍗堟椂闂� </para>
-            /// </summary>
-            public int DateType;
-
-            /// <summary>
-            ///瑙﹀彂鍔ㄤ綔鏃堕棿锛岋紙0-23锛夊皬鏃躲��
-            ///<para>褰揇ateType = 0鏃讹紝璇ュ弬鏁版墠鏈夋晥銆�</para>
-            /// </summary>
-            public int StartHour;
-
-            /// <summary>
-            ///瑙﹀彂鍔ㄤ綔鏃堕棿锛岋紙0-59锛夊垎閽熴��
-            ///<para>褰揇ateType = 0 鏃讹紝璇ュ弬鏁版墠鏈夋晥銆�</para>
-            /// </summary>
-            public int StartMin;
-
-            /// <summary>
-            ///鎻愬墠鎴栨帹鍚庡灏戝垎閽熸墽琛屻�傦紙鍗曚綅锛氬垎閽燂級
-            ///<para>鑼冨洿锛�-127鍒�127銆傛鏁颁负鎺ㄥ悗锛岃礋鍊间负鎻愬墠銆�</para>
-            ///<para>濡傛棩钀藉墠30鍒嗛挓鎵ц锛屽垯灏嗚鍊艰瀹氫负-30銆�</para>
-            ///<para>褰揇ateType涓嶄负0鏃讹紝璇ュ弬鏁版墠鏈夋晥銆�</para>
-            /// </summary>
-            public int AdjustTime;
-
-            /// <summary>
-            ///鎻愬墠鎻愰啋鏃堕棿銆傦紙鍗曚綅绉掞級鑼冨洿锛�0-65535
-            ///<para>瀹氭椂鏉′欢灏嗚瑙﹀彂鐨勫墠RemindTime绉掞紝缃戝叧灏嗛�氱煡瀹㈡埛绔畾鏃舵椂闂村皢鑷筹紝鍙兘浼氭墽琛岄�昏緫鍔ㄤ綔锛堝鏋滆閫昏緫杩橀渶瑕佹弧瓒冲叾浠栨潯浠讹紝鍒欏埌杈惧畾鏃舵椂闂存椂锛屽叾浠栨潯浠舵病鏈夋弧瓒冲皢涓嶄細鎵ц閫昏緫鍔ㄤ綔锛夈�傚湪杩欐鏃堕棿鍐咃紝瀹㈡埛绔彲鍙戦�佹寚浠よ瀹氭椂鎺ㄨ繜鎵ц銆傛渶缁堢殑瀹氭椂鏃堕棿灏嗘槸鍘熸潵瀹氭椂鏃堕棿+鎺ㄨ繜鐨勬椂闂淬��</para> 
-            ///<para>濡傛灉涓�0锛屽垯涓嶆彁閱掋�傚埌杈炬彁鍓嶆彁閱掓椂锛屽皢鍙戦�佺11灏忚妭鐨勬彁閱掗�氱煡銆�</para> 
-            /// </summary>
-            public int RemindTime;
-
-            /// <summary>
-            ///鏄惁鍏佽鎺ㄨ繜
-            ///<para>0锛氫笉鍏佽</para> 
-            ///<para>1锛氬厑璁�</para> 
-            ///</summary>
-            public int EnDelay;
-
-            /// <summary>
-            ///鎺ㄨ繜鏃堕棿锛堝崟浣嶏細绉掞級鑼冨洿锛�0-65535
-            ///<para>鎺ㄨ繜鏃堕棿濡傛灉灏忎簬鎻愬墠鎻愰啋鏃堕棿锛屽垯鍦ㄦ帹杩熷墠鐨勫畾鏃舵椂闂村埌杈炬椂鎻愰啋銆傚彲缂虹渷 锛岄粯璁や负0銆�</para> 
-            ///</summary>
-            public int DelayTime;
-         }
-
-        /// <summary>
-        /// 璁惧鏉′欢鏁版嵁
-        /// </summary>
-        [System.Serializable]
-        public class DeviceConditionsInfo : ConditionBase
-        {
-            /// <summary>
-            ///璁惧mac鍦板潃(褰揟ype涓�1鏃讹紝璇ュ瓧娈垫墠瀛樺湪)
-            /// </summary>
-            public string MacAddr;
-            /// <summary>
-            /// 璁惧绔彛鍙凤紝(褰揟ype涓�1鏃讹紝璇ュ瓧娈垫墠瀛樺湪)
-            /// <para>璇ョ鍙e~鍏ョ殑鏄敤浜庝笂鎶luster_ID鍜孉ttriButeId灞炴�у�肩殑绔彛鍙枫�傦級</para>
-            /// <para>鐗规畩璁惧锛� 
-            /// 濡傛灉涓篽dl鍔熻兘鎸夐敭鍒欏~鍏ユ寜閿彿锛堟寜閿搴旂殑绔彛鍙凤級</para>
-            /// </summary>
-            public int Epoint;
-            /// <summary>
-            /// 瑙﹀彂鑱斿姩鐨勫睘鎬х姸鎬佹墍鍦–luster 濡傚紑鍏矯luster 6.(褰揟ype涓�1鏃讹紝璇ュ瓧娈垫墠瀛樺湪)
-            ///<para>鐗规畩璁惧锛�</para>
-            ///<para>1銆佸鏋滀负hdl鍔熻兘鎸夐敭鍒欏~64528銆�</para>
-            ///<para>2銆佸鏋滀负IAS瀹夐槻璁惧鍒欏~鍏�1280銆�</para>
-            ///<para>3銆佸鏋滀负闂ㄩ攣鎿嶄綔浜嬩欢锛屽垯濉叆64529.</para>
-            /// <para>4銆佸鏋滀负闅忓績璐存寜閿甇n/Off鍛戒护鍙嶉锛屽垯濉叆1282</para>
-            /// </summary>
-            public int Cluster_ID;
-            /// <summary>
-            ///瑙﹀彂鑱斿姩鐨勫睘鎬� 濡侰luster=6鏃� AttriButeId=0涓哄紑鍏冲睘鎬�.(褰揟ype涓�1鏃讹紝璇ュ瓧娈垫墠瀛樺湪)
-            ///<para>鐗规畩璁惧锛�</para>
-            ///<para>1.濡傛灉涓篽dl鍔熻兘鎸夐敭鍒欎负鎸夐敭瑙﹀彂鏃朵笂鎶ヨЕ鍙戜俊鎭殑鎸夐敭鍙风被鍨嬨��</para>
-            ///<para>2.濡傛灉涓篒AS瀹夐槻璁惧鍒欏~鍏�1281銆�</para>
-            ///<para>3.濡傛灉涓洪棬閿佹搷浣滀簨浠跺垯濉叆闂ㄩ攣鎿嶄綔浜嬩欢鐨凮perationEventSoure鍒楄〃鍊硷紝鍙傝�冪鍏珷鑺�3闂ㄩ攣鎿嶄綔浜嬩欢閫氱煡</para>
-            ///<para>4.濡傛灉涓洪殢蹇冭创On/Off鍛戒护鍙嶉锛屽垯濉叆1283銆�</para>
-            /// </summary>
-            public int AttriButeId;
-            /// <summary>
-            ///灞炴�х姸鎬佷复鐣屽��1 (褰揟ype涓�1 鏃讹紝璇ュ瓧娈垫墠瀛樺湪)
-            /// <para>鐗规畩璁惧锛�</para>
-            ///<para>濡傛灉涓篽dl鍔熻兘鎸夐敭锛屽垯涓轰笅鍒楁寜閿ā寮忥細</para>
-            ///<para>1锛氱偣鍑� 2锛氬墠鐐瑰嚮 4锛氬悗鍗曞嚮 8锛氫粎鍙屽嚮</para>
-            ///<para>16锛氬墠鍙屽嚮 32锛氬悗鍙屽嚮 64锛氫粎闀挎寜 </para>
-            ///<para>128锛氬墠闀挎寜 256锛氬悗闀挎寜 512锛氶暱鎸夐噴鏀俱��</para>
-            ///<para>2.濡傛灉涓篒AS瀹夐槻璁惧鍒欎负IAS瀹夐槻璁惧淇℃伅涓婃姤鏁版嵁涓殑ZoneStatus銆�</para>
-            ///<para>3.濡傛灉涓洪棬閿佹搷浣滀簨浠跺垯濉叆闂ㄩ攣鎿嶄綔浜嬩欢鐨凮peration Event Code鍊硷紝鍙傝�冪鍏珷鑺�3闂ㄩ攣鎿嶄綔浜嬩欢閫氱煡</para>
-            ///<para>4銆佸鏋滀负闅忓績璐碠n/Off鍒欏~鍏� 0銆傚綋鎺ユ敹鍒伴殢蹇冭创璁惧On/Off鍛戒护鍙嶉灏嗚Е鍙戦�昏緫</para>
-            /// </summary>
-            public int AttriButeData1;
-            /// <summary>
-            ///灞炴�х姸鎬佷复鐣屽��2 銆�(褰揟ype涓�1 鏃讹紝璇ュ瓧娈垫墠瀛樺湪)
-            ///<para>鐗规畩璁惧锛氾紙瑙丄ttriButeData1璇存槑锛�</para>
-            /// </summary>
-            public int AttriButeData2;
-            /// <summary>
-            ///褰揟ype涓�1 鏃讹紝璇ュ瓧娈垫墠瀛樺湪
-            ///<para>涓婃姤鐨勮澶囧睘鎬х姸鎬佸�糀ttriButeData锛堝弬鑰冭澶囩姸鎬佹煡璇㈢珷鑺傦級涓庤瀹氱殑涓寸晫鍊兼瘮杈冦��</para>
-            ///<para>0 : 涓婃姤鐨勮澶囧睘鎬х姸鎬佸�煎ぇ浜嶢ttriButeData1鏃惰Е鍙戝姩浣�</para>
-            ///<para>1锛氫笂鎶ョ殑璁惧灞炴�х姸鎬佸�肩瓑浜嶢ttriButeData1鏃惰Е鍙戝姩浣�</para>
-            ///<para>2锛氫笂鎶ョ殑璁惧灞炴�х姸鎬佸�煎皬浜嶢ttriButeData1鏃惰Е鍙戝姩浣�</para> 
-            ///<para>3锛氫笂鎶ョ殑璁惧灞炴�х姸鎬佸�煎ぇ浜嶢ttriButeData1涓斿皬浜嶢ttriButeData2鏃惰Е鍙戝姩浣�</para>
-            ///<para>4锛氫笂鎶ョ殑璁惧灞炴�х姸鎬佸�煎皬浜嶢ttriButeData1鎴栧ぇ浜嶢ttriButeData2鏃惰Е鍙戝姩浣�</para>
-            ///<para>5锛氫笂鎶ョ殑璁惧灞炴�х姸鎬佸�煎拰AttriButeData1杩涜涓庤繍绠楃粨鏋滀笉涓�0鏃惰Е鍙戝姩浣溿�傦紙鏂逛究鐢ㄤ簬瀹夐槻璁惧淇℃伅涓婃姤锛�</para>
-            ///<para>鐗规畩璁惧锛氬鏋滀负闅忓績璐碠n/Off鍒欏~鍏� 0銆傚綋鎺ユ敹鍒伴殢蹇冭创璁惧On/Off鍛戒护鍙嶉灏嗚Е鍙戦�昏緫銆�</para>
-            /// </summary>
-            public int Range;
-        }
-
-        /// <summary>
-        /// 浠诲姟鏁版嵁
-        /// </summary>
-        [System.Serializable]
-        public class TaskListInfo
-        {
-            /// <summary>
-            /// 浠诲姟绫诲瀷銆�
-            ///<para>1锛氬紑鍏� 锛堣澶囧叿鏈夊紑鍏冲姛鑳芥椂鍙敤锛�</para> 
-            ///<para>3锛氫寒搴﹁皟鏁达紙璁惧鍏锋湁浜害璋冭妭鍔熻兘鏃跺彲鐢級</para> 
-            ///<para>4锛氶鑹茶皟鏁� 锛堣澶囧叿鏈夐鑹茶皟鑺傚姛鑳芥椂鍙敤锛�</para> 
-            ///<para>5锛氭亽娓╁櫒锛堣澶囧叿鏈夋亽娓╁櫒鍔熻兘鏃跺彲鐢級</para> 
-            ///<para>6: 绐楀笜璁惧锛堣澶囧叿鏈夌獥甯樺姛鑳芥椂鍙敤锛�</para> 
-            ///<para>7锛氳澶噄dentify璇嗗埆銆�</para> 
-            ///<para>8锛氬紑鍏虫姤璀︽ā寮�  </para> 
-            ///<para>9锛歴quawk command</para>
-            ///</summary>
-            public int TaskType;
-            /// <summary> 
-            /// Data1鍙栧��
-            /// <para>寮�鍏� :Data1锛堟暟鍊硷級: 0鍏�/1寮�</para>
-            ///<para>浜害璋冩暣 Data1锛堟暟鍊硷級锛氫寒搴﹀��</para>
-            ///<para>棰滆壊璋冩暣 Data1锛堟暟鍊硷級:鑹茶皟</para>
-            /// <para>鎭掓俯鍣� Data1锛堟暟鍊硷級: 0鍔犵儹/1鍒跺喎/2鑷姩璋冭妭/3 璁剧疆宸ヤ綔妯″紡/4 璁剧疆鍔犵儹搴︽暟 5/璁剧疆鍒跺喎搴︽暟 6/璁剧疆椋庢墖妯″紡</para>
-            /// <para>绐楀笜璁惧 Data1锛堟暟鍊硷級: 0 鎵撳紑/ 1鍏抽棴/ 2 鍋滄杞姩/ 4 璋冩暣鍒版寚瀹氶珮搴�/ 5 璋冩暣鍒版寚瀹氱殑鐧惧垎姣斿浣嶇疆 / 7 璋冩暣鍒版寚瀹氬�炬枩瑙�/ 8 璋冩暣鍒版寚瀹氱殑鐧惧垎姣斿�炬枩搴�</para>
-            /// <para>璁惧identify璇嗗埆銆侱ata1涓篿dentify闂儊闂儊鏃堕棿锛�0-65535绉掞級銆�</para>
-            /// <para>寮�鍏虫姤璀︽ā寮� Data1锛堟暟鍊硷紝4瀛楄妭鏁村瀷锛夌1瀛楄妭锛坆it0-bit7锛夎〃绀烘姤璀︽ā寮忥紝瀛楄妭鍊�0锛氬仠姝㈣渹楦e櫒1锛氱洍绐冩姤璀� 2锛氱伀鐏炬姤璀� 3锛氱揣鎬ユ儏鍐垫姤璀� 4锛氳杞﹀彂鍑虹殑鎶ヨ 5锛氭秷闃茶溅鍙戝嚭鐨勬姤璀� 6锛氬鐢ㄧ殑鎶ヨ銆傜2瀛楄妭锛坆it8-bit15锛夎〃绀烘槸鍚﹀惎鐢ㄦ姤璀︾伅锛屽瓧鑺傚�� 0锛氫笉鍚敤 1锛氬惎鐢ㄣ�傜3瀛楄妭锛坆it16-bit23锛夎〃绀烘姤璀﹂煶閲忥紝瀛楄妭鍊�0锛歀ow锛�1锛歁edium锛�2锛歨igh锛�3锛歷ery high銆�</para>
-            /// <para>squawk command Data1锛堟暟鍊硷紝4瀛楄妭鏁村瀷锛夌1瀛楄妭锛坆it0-bit7锛夎〃绀烘姤璀︽ā寮忥紝瀛楄妭鍊�0锛氬畨闃茬郴缁熲�滃竷闃测�濋煶鏁堚�� 锛�1锛氬畨闃茬郴缁熲�滄挙闃测�濋煶鏁堛�傜2瀛楄妭锛坆it8-bit15锛夎〃绀烘槸鍚﹀惎鍔ㄦ姤璀︾伅锛屽瓧鑺傚��0锛氫笉鍚姩锛�1锛氬惎鍔ㄣ�傜3瀛楄妭锛坆it16-bit23锛夎〃绀烘姤璀﹂煶閲忥紝瀛楄妭鍊�0锛歀ow 锛�1锛歁edium 锛�2锛歨igh 锛�3: very high銆�</para>
-            /// </summary>
-            public int Data1;
-            /// <summary>
-            /// Data2鍙栧�� 
-            /// <para>寮�鍏� Data2锛堟暟鍊硷級: 0</para>
-            /// <para>浜害璋冩暣 Data2锛堟暟鍊硷級: 0</para>
-            /// <para>棰滆壊璋冩暣 Data2锛堟暟鍊硷級锛氶ケ鍜屽害 </para>
-            ///<para> 鎭掓俯鍣―ata2鏁板�煎涓嬶細  
-            /// 銆愬綋Data1=0|1|2鏃讹紝Data2涓鸿鍙樺寲鐨勫害鏁帮紝鍗曚綅锛�0.1鈩� 銆傘��
-            ///銆愯嫢Data1=3锛孌ata2涓鸿璁惧畾鐨勭┖璋冩ā寮忥紙0-9锛夛紝0锛歰ff锛�1锛歛uto锛�3锛歝ool锛� 4锛歨eat 锛�5锛歟mergency heating, 6锛歱recooling锛�7锛歠an only 锛�8锛歞ry锛�9锛歴leep銆傘��
-            ///銆愯嫢Data1=4|5锛孌ata2涓哄姞鐑垨鍒跺喎搴︽暟锛屽崟浣�0.01鎽勬皬搴︺�傘��
-            ///銆愯嫢Data1=6锛孌ata2涓鸿璁惧畾鐨勯鎵囨ā寮忥紙0-6锛夛紝0锛歰ff锛�1锛歭ow锛�2锛歮edium锛�3锛歨igh锛�4锛歰n锛�5锛歛uto锛�6锛歴mart銆� </para>
-            ///<para>绐楀笜璁惧锛孌ata2鏁板�煎涓� 
-            ///銆愬綋Data1=4鎴�7锛孌ata2涓鸿皟鏁寸殑楂樺害鎴栧�炬枩瑙掑害 鍊炬枩瑙掑害鍗曚綅涓�0.1掳銆戙��
-            ///銆愬綋Data1=5 鎴� 8锛孌ata2涓虹櫨鍒嗘瘮锛�0-100琛ㄧず0%-100%銆�</para>
-            ///<para>璁惧identify璇嗗埆銆侱ata2锛堟暟鍊硷級: 0 </para>
-            ///<para>寮�鍏虫姤璀︽ā寮� Data2锛堟暟鍊硷紝4瀛楄妭鏁村瀷锛夌1銆�2瀛楄妭锛坆it0-bit15锛夎〃绀烘姤璀︽椂闀匡紝瀛楄妭鍊� 0-65535锛屽崟浣嶏細绉掋�傜3瀛楄妭锛坆it16-bit23锛夎〃绀洪棯鐑佸崰绌烘瘮锛屽瓧鑺傚��0-100銆傜4瀛楄妭锛坆it16-bit23锛夎〃绀烘姤璀︾伅浜害锛屽瓧鑺傚��0锛歀ow 锛�1锛歁edium 锛�2锛歨igh 锛�3: very high銆�</para>
-            ///<para>squawk command锛欴ata2锛堟暟鍊硷級: 0 </para>
-            /// </summary>
-            /// <value>The type of the task.</value>
-            public int Data2;
-        }
-
-        /// <summary>
-        ///鏉′欢绫诲瀷
-        ///<para>0锛氭椂闂寸偣鏉′欢锛屽湪鏌愪釜鏃堕棿鍙戠敓</para>
-        ///<para>1锛氳澶囩姸鎬佸彉鍖栨潯浠�</para>
-        ///<para>2锛氬叾浠栭�昏緫鏉′欢</para>
-        ///<para>3锛氳鏁板櫒鏉′欢</para>
-        ///<para>4锛氬�掕鏃�</para>
-        ///<para>5锛氭椂闂存鏉′欢</para>
-        /// </summary>
-        public enum ConditionType
-        {
-            /// <summary>
-            ///鏃堕棿鐐规潯浠讹紝鍦ㄦ煇涓椂闂村彂鐢�
-            /// </summary>
-            Time = 0,
-            /// <summary>
-            ///璁惧鐘舵�佸彉鍖栨潯浠�
-            /// </summary>
-            Device = 1,
-            /// <summary>
-            ///鍏朵粬閫昏緫鏉′欢
-            /// </summary>
-            Logic = 2,
-            /// <summary>
-            ///璁℃暟鍣ㄦ潯浠�
-            /// </summary>
-            Counter = 3,
-            /// <summary>
-            ///鍊掕鏃�
-            /// </summary>
-            CountDown = 4,
-            /// <summary>
-            ///鏉′欢绫诲瀷
-            ///鏃堕棿娈垫潯浠�
-            /// </summary>
-            TimeBucket = 5,
-        }
-        #endregion
-       
-        //public static string LogistFile = "LogistFile";
-
-        //public void SaveLogicObj(string logicFilePath)
-        //{
-        //    Shared.IO.FileUtils.WriteFileByBytes(logicFilePath, Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)));
-        //}
-
-        ///// <summary>
-        ///// 鏍规嵁閫昏緫璺緞鎭㈠閫昏緫瀵硅薄
-        ///// logicFilePath鍛藉悕锛�"Logic" + LogicId;
-        ///// </summary>
-        //public static Logic GetLogicByFilePath(string logicFilePath)
-        //{
-        //    try
-        //    {
-        //        return Newtonsoft.Json.JsonConvert.DeserializeObject<Logic>(System.Text.Encoding.UTF8.GetString(Shared.IO.FileUtils.ReadFile(logicFilePath)));
-        //    }
-        //    catch
-        //    {
-        //        return new Logic();
-        //    }
-        //}
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
index df7711c..0bf2efe 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
@@ -1549,6 +1549,141 @@
         }
         #endregion
 
+        #region  閰嶇疆鎺ヨ繎浼犳劅
+        ///<summary >
+        /// 閰嶇疆鎺ヨ繎浼犳劅
+        /// <para>sensorEnable:浼犳劅鍣ㄤ娇鑳�</para>
+        /// </summary>
+        public async System.Threading.Tasks.Task<ResponseAllData> SetProximitySensor(bool sensorEnable)
+        {
+            ResponseAllData result = null;
+            if (Gateway == null)
+            {
+                result = new ResponseAllData { errorMessageBase = "褰撳墠娌℃湁缃戝叧" };
+                return result;
+            }
+            return await System.Threading.Tasks.Task.Run(async () =>
+            {
+                Action<string, string> action = (topic, message) =>
+                {
+                    var gatewayID = topic.Split('/')[0];
+                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+
+                    if (topic == gatewayID + "/" + "Error_Respon")
+                    {
+                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+
+                        if (temp == null)
+                        {
+                            result = new ResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                        }
+
+                        else
+                        {
+                            result = new ResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                        }
+                    }
+
+                    if (topic == gatewayID + "/" + "ZbDataPassthrough")
+                    {
+                        var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
+                        gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+
+                        if (gatewayTemp.clientDataPassthroughResponseData == null)
+                        {
+                            result = new ResponseAllData { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                        }
+                        else
+                        {
+                            if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
+                            {
+                                var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
+                                if (data.Length == 16)
+                                {
+                                    var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
+                                    if (command == "0002")
+                                    {
+                                        var tempD = new ResponseData();
+                                        tempD.command = Convert.ToInt32(data[10].ToString() + data[11].ToString() + data[12].ToString() + data[13].ToString(), 16);
+                                        tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
+                                        result = new ResponseAllData { responseData = tempD };
+                                        System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0500_{ topic}");
+                                    }
+                                }
+                            }
+                        }
+                    }
+                };
+
+                Gateway.Actions += action;
+                System.Console.WriteLine("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString());
+
+                try
+                {
+                    var passData = SetProximitySensorData(sensorEnable);
+                    var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
+                    var data = new JObject { { "PassData", passData } };
+                    jObject.Add("Data", data);
+                    Gateway.Send(("ClientDataPassthrough"), jObject.ToString());
+                }
+                catch { }
+
+                var dateTime = DateTime.Now;
+                while ((DateTime.Now - dateTime).TotalMilliseconds < 9000)// WaitReceiveDataTime)
+                {
+                    await System.Threading.Tasks.Task.Delay(10);
+                    if (result != null)
+                    {
+                        break;
+                    }
+                }
+                if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
+                {
+                    result = new ResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
+                }
+                Gateway.Actions -= action;
+                System.Console.WriteLine("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString());
+
+                return result;
+            });
+        }
+
+        /// <summary>
+        /// 閰嶇疆鎺ヨ繎浼犳劅
+        /// [璇ユ潯鍗忚鍙﹀2涓弬鏁癠I鍜岃澶囬兘涓嶉渶瑕侊紝璁惧閮藉悓浜嬭姹備紶鎰熷櫒璺濈鍜屼紶鎰熷櫒瑙﹀彂寤惰繜鏃堕棿閮介粯璁ゆ槸FFFF]
+        /// </summary>
+        /// <param name="sensorEnable">浼犳劅鍣ㄤ娇鑳�  0-disable  1-enable</param>
+        /// <returns></returns>
+        string SetProximitySensorData(bool sensorEnable)
+        {
+            string data = "";
+            string dataLength = "09";
+            string dataComand1 = "00";
+            string dataComand2 = "05";
+            string dataSerialNum = "01";
+            string addDataLength = "05";
+            string sEnable = "";
+            try
+            {
+                if (sensorEnable)
+                {
+                    sEnable = "01";
+                }
+                else
+                {
+                    sEnable = "00";
+                }
+
+                data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
+                  sEnable + "FFFFFFFF";
+            }
+            catch { };
+
+            return data;
+        }
+        #endregion
+
         #region 鑾峰彇鎸夐敭鎸囩ず鐏紑鍏抽鑹�.
         ///<summary >
         ///鑾峰彇鎸夐敭鎸囩ず鐏紑鍏抽鑹�.
@@ -2132,6 +2267,186 @@
         }
         #endregion
 
+        #region 鑾峰彇鎺ヨ繎浼犳劅閰嶇疆
+        ///<summary >
+        ///鑾峰彇鎺ヨ繎浼犳劅閰嶇疆
+        /// </summary>
+        public async System.Threading.Tasks.Task<PanelProximitySensorResponInfo> GetProximitySensorAsync(string reserve = "01")
+        {
+            PanelProximitySensorResponInfo result = null;
+            if (Gateway == null)
+            {
+                result = new PanelProximitySensorResponInfo { errorMessageBase = "褰撳墠娌℃湁缃戝叧" };
+                return result;
+            }
+            return await System.Threading.Tasks.Task.Run(async () =>
+            {
+                Action<string, string> action = (topic, message) =>
+                {
+                    var gatewayID = topic.Split('/')[0];
+                    var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+
+                    if (topic == gatewayID + "/" + "Error_Respon")
+                    {
+                        var gatewayTemp = new ZbGateway() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), CurrentGateWayId = Gateway.getGatewayBaseInfo.gwID };
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGateway.ErrorResponData>(jobject["Data"].ToString());
+
+                        if (temp == null)
+                        {
+                            result = new PanelProximitySensorResponInfo { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                        }
+
+                        else
+                        {
+                            result = new PanelProximitySensorResponInfo { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                        }
+                    }
+
+                    if (topic == gatewayID + "/" + "ZbDataPassthrough")
+                    {
+                        var gatewayTemp = new ZbGateway() { DataID = jobject.Value<int>("Data_ID") };
+                        gatewayTemp.clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+
+                        if (gatewayTemp.clientDataPassthroughResponseData == null)
+                        {
+                            result = new PanelProximitySensorResponInfo { errorMessageBase = "缃戝叧杩斿洖鐨勬暟鎹负绌�" };
+                        }
+                        else
+                        {
+                            if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
+                            {
+                                var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
+                                if (data.Length == 20)
+                                {
+                                    var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
+                                    if (command == "0502")
+                                    {
+                                        var tempR = new PanelProximitySensorInfo();
+                                        if (data[10].ToString() + data[11].ToString() == "01")
+                                        {
+                                            tempR.enable = true;
+                                        }
+                                        else
+                                        {
+                                            tempR.enable = false;
+                                        }
+                                        tempR.sensorDistance = Convert.ToInt32(data[14].ToString() + data[15].ToString() + data[12].ToString() + data[13].ToString(), 16);
+                                        tempR.sensorDelayTime = Convert.ToInt32(data[18].ToString() + data[19].ToString() + data[16].ToString() + data[17].ToString(), 16);
+                                        panelProximitySensorInfo = tempR;
+                                        result = new PanelProximitySensorResponInfo { panelProximitySensorInfo = tempR };
+                                        System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0408_{ topic}");
+                                    }
+                                }
+                            }
+                        }
+                    }
+                };
+
+                Gateway.Actions += action;
+                System.Console.WriteLine("ClientDataPassthrough_Actions 鍚姩" + System.DateTime.Now.ToString());
+
+                try
+                {
+                    var passData = SendProiximitySensorData(reserve);
+                    var jObject = new JObject { { "DeviceAddr", DeviceAddr }, { "Epoint", 200 }, { "Cluster_ID", 64513 }, { "Command", 0 } };
+                    var data = new JObject { { "PassData", passData } };
+                    jObject.Add("Data", data);
+                    Gateway.Send(("ClientDataPassthrough"), jObject.ToString());
+                }
+                catch { }
+
+                var dateTime = DateTime.Now;
+                while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
+                {
+                    await System.Threading.Tasks.Task.Delay(10);
+                    if (result != null)
+                    {
+                        break;
+                    }
+                }
+                if ((DateTime.Now - dateTime).TotalMilliseconds > 9000)// WaitReceiveDataTime)
+                {
+                    result = new PanelProximitySensorResponInfo { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
+                }
+                Gateway.Actions -= action;
+                System.Console.WriteLine("ClientDataPassthrough_Actions 閫�鍑�" + System.DateTime.Now.ToString());
+
+                return result;
+            });
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎺ヨ繎浼犳劅閰嶇疆鏁版嵁
+        /// </summary>
+        string SendProiximitySensorData(string reserve)
+        {
+            string data = "";
+            string dataLength = "05";
+            string dataComand1 = "01";
+            string dataComand2 = "05";
+            string dataSerialNum = "01";
+            string addDataLength = "01";
+            string reserveData = reserve;
+
+            try
+            {
+                data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
+                    reserveData;
+            }
+            catch { };
+
+            return data;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎺ヨ繎浼犳劅閰嶇疆鏁版嵁鍥炲
+        /// </summary>
+        [System.Serializable]
+        public class PanelProximitySensorResponInfo
+        {
+            /// <summary>
+            /// 閿欒淇℃伅
+            /// </summary>
+            public string errorMessageBase;
+            /// <summary>
+            /// 缃戝叧淇℃伅閿欒鍙嶉
+            /// <para>褰撶綉鍏虫帴鏀跺埌瀹㈡埛绔俊鎭悗锛屽嚭鐜颁互涓嬪紓甯告儏鍐靛皢鍙嶉閿欒銆�</para>
+            /// </summary>
+            public ErrorResponData errorResponData;
+            /// <summary>
+            /// <para>鑾峰彇鎺ヨ繎浼犳劅閰嶇疆鏁版嵁</para>
+            /// </summary>
+            public PanelProximitySensorInfo panelProximitySensorInfo;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎺ヨ繎浼犳劅閰嶇疆
+        /// </summary>
+        public PanelProximitySensorInfo panelProximitySensorInfo;
+        /// <summary>
+        /// 鑾峰彇鎺ヨ繎浼犳劅閰嶇疆鏁版嵁
+        /// </summary>
+        [System.Serializable]
+        public class PanelProximitySensorInfo
+        {
+            /// <summary>
+            /// 浼犳劅鍣ㄤ娇鑳�
+            ///false-disable  true-enable
+            /// </summary>
+            public bool enable;
+
+            /// <summary>
+            ///浼犳劅鍣ㄨ窛绂�
+            /// </summary>
+            public int sensorDistance = -1;
+
+            /// <summary>
+            /// 浼犳劅鍣ㄨЕ鍙戝欢杩熸椂闂�
+            /// </summary>
+            public int sensorDelayTime = -1;
+        }
+        #endregion
+
         #region 閰嶇疆鎸夐敭鎸囩ず鐏潯鐪犵粍鍒嗭紙鏆傛椂涓嶅仛锛�
         ///<summary >
         ///鑾峰彇鎸夐敭鎸囩ず鐏潯鐪犵粍
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
index b85b2c0..609a015 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/ZbGateway.cs
@@ -101,7 +101,7 @@
             }
         }
 
-        #region variable 
+        #region variable
         /// <summary>
         /// 杩滅▼杩炴帴鎴愬姛鏃剁殑鏃堕棿
         /// </summary>
@@ -160,12 +160,6 @@
         /// </summary>
         [Newtonsoft.Json.JsonIgnore]
         public List<Scene.GetSceneDeviceListInfo> SceneDeviceList = new List<Scene.GetSceneDeviceListInfo>();
-
-        /// <summary>
-        /// 缃戝叧涓�昏緫鍒楄〃
-        /// </summary>
-        [Newtonsoft.Json.JsonIgnore]
-        public static List<Logic.GetLogicInfoResponseData> LogicList = new List<Logic.GetLogicInfoResponseData>();
 
         /// <summary>
         /// 缃戝叧涓環dl绉佹湁鎸夐敭缁戝畾鍒楄〃
@@ -3054,22 +3048,6 @@
         public static readonly System.Collections.Generic.List<IStatus> StatusList = new System.Collections.Generic.List<IStatus>();
 
         /// <summary>
-        /// 璁惧鐘舵�佹洿鏂�
-        /// </summary>
-        /// <param name="commonDevice">Common device.</param>
-        public static void UpdateDeviceStatus(CommonDevice commonDevice)
-        {
-            if (commonDevice == null)
-            {
-                return;
-            }
-            for (int i = 0; i < StatusList.Count; i++)
-            {
-                StatusList[i].Changed(commonDevice);
-            }
-        }
-
-        /// <summary>
         /// 璁惧淇℃伅鍙樺寲
         /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para>
         /// <para>type锛氬鏋滀负 IASInfoReport:RemoveDeviceRespon</para>
@@ -3324,7 +3302,7 @@
         /// 杩滅▼MqttClient
         /// </summary>
         public static IMqttClient RemoteMqttClient= new MqttFactory().CreateMqttClient();
-        static bool remoteIsConnected; 
+        static bool remoteIsConnected;
         private int IsLogin = 0;
         [Newtonsoft.Json.JsonIgnore]
         static Action actionTemp;
@@ -3495,6 +3473,9 @@
                                 AllowRemoteCtrl = false;
                                 return;
                             }
+                            //铏界劧涓嶇煡閬撳鎸や笅绾块偅涓�鍧楁湁娌℃湁鐢�,涓嶈繃鍏堣繖涔堝紕
+                            await System.Threading.Tasks.Task.Delay(1500);
+
                             var responseData = jobject["ResponseData"];
                             if (responseData != null)
                             {
@@ -3550,7 +3531,7 @@
                     localIsConnected = false;
                     DebugPrintLog($"Local涓诲姩鏂紑_{s}");
                     //await localMqttClient.DisconnectAsync(new MQTTnet.Client.Disconnecting.MqttClientDisconnectOptions {  }, CancellationToken.None);
-                    await localMqttClient.DisconnectAsync(); 
+                    await localMqttClient.DisconnectAsync();
                 }
             }
             catch (Exception ex)
@@ -3574,7 +3555,7 @@
                     await RemoteMqttClient.DisconnectAsync();
                 }
             }
-            catch(Exception e) { 
+            catch(Exception e) {
                 DebugPrintLog($"Remote鏂紑閫氳杩炴帴鍑哄紓甯�:{e.Message}");
             }
         }
@@ -4013,8 +3994,7 @@
                         DebugPrintLog("DeviceInComingRespon宸茬粡閫氱煡");
                         gwa.ReportAction("DeviceInComingRespon", tempDevice.getNewDeviceInfo);
                     }
-                    UpdateDeviceInfo(tempDevice, "DeviceInComingRespon");
-                    UpdateDeviceStatus(gwa);
+                    UpdateDeviceInfo(tempDevice, "DeviceInComingRespon");
                 }
                 #endregion
                 #region 璁惧鍦ㄧ嚎鐘舵�佹洿鏂板弽棣�
@@ -4032,7 +4012,6 @@
                     if (infoTempDevice == null)
                     {
                         gwa.DeviceList.Add(tempDevice);
-                        UpdateDeviceStatus(tempDevice);
                         UpdateDeviceInfo(tempDevice, "OnlineStatusChange");
                     }
                     else
@@ -4042,7 +4021,6 @@
                             infoTempDevice.DeviceInfo.IsOnline = infoTempDevice.IsOnline;
                         }
                         UpdateDeviceInfo(infoTempDevice, "OnlineStatusChange");
-                        UpdateDeviceStatus(infoTempDevice);
                     }
                 }
                 #endregion
@@ -4068,7 +4046,6 @@
                                     }
                                     else
                                     {
-                                        UpdateDeviceStatus(tempDevice);
                                         UpdateDeviceInfo(tempDevice, "RemoveDeviceRespon");
                                         if (tempDevice.removeDeviceResponseData.Result == 0)
                                         {
@@ -4096,7 +4073,6 @@
 
                     var tempDevice = new CommonDevice { DeviceID = deviceID, DeviceAddr = deviceAddr, DeviceEpoint = tempEpoint, DataID = dataId };
                     tempDevice.DeviceStatusReport = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.DeviceStatusReportData>(jobject["Data"].ToString());
-                    UpdateDeviceStatus(tempDevice);
                     UpdateDeviceInfo(tempDevice, "DeviceStatusReport");
                 }
                 #endregion
@@ -4118,7 +4094,6 @@
                                 DebugPrintLog("DoorLockProgrammingEventNotificationCommand宸茬粡閫氱煡");
                                 gwa.ReportAction("DoorLockProgrammingEventNotificationCommand", doorLock);
                             }
-                            UpdateDeviceStatus(doorLock);
                             UpdateDeviceInfo(doorLock, "DoorLockProgrammingEventNotificationCommand");
                             break;
                     }
@@ -4142,7 +4117,6 @@
                                 DebugPrintLog("DoorLockProgrammingEventNotificationCommand宸茬粡閫氱煡");
                                 gwa.ReportAction("DoorLockProgrammingEventNotificationCommand", doorLock);
                             }
-                            UpdateDeviceStatus(doorLock);
                             UpdateDeviceInfo(doorLock, "DoorLockProgrammingEventNotificationCommand");
                             break;
                     }
@@ -4164,8 +4138,6 @@
                                 //ias.Save();
                                 gwa.ReportAction("IASInfoReport", ias.iASInfo);
                             }
-
-                            UpdateDeviceStatus(ias);
                             UpdateDeviceInfo(ias, "IASInfoReport");
                             break;
                     }
@@ -4280,37 +4252,37 @@
                 #region 閫昏緫琚皟鐢ㄥ弽棣�
                 else if (topic == gatewayID + "/" + "Logic/Execute_Respon")
                 {
-                    var logic = new Logic() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.getGatewayBaseInfo.gwID };
-                    logic.logicExecuteRespo = Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.ExecuteResponse>(jobject["Data"].ToString());
+                    //var logic = new Logic() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.getGatewayBaseInfo.gwID };
+                    //logic.logicExecuteRespo = Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.ExecuteResponse>(jobject["Data"].ToString());
 
-                    if (logic.logicExecuteRespo == null)
-                    {
-                        return;
-                    }
-                    //涓婃姤绫诲瀷閫氱煡
-                    if (gwa.ReportAction != null)
-                    {
-                        DebugPrintLog("LogicExecuteReport宸茬粡閫氱煡");
-                        gwa.ReportAction("LogicExecuteReport", logic.logicExecuteRespo);
-                    }
+                    //if (logic.logicExecuteRespo == null)
+                    //{
+                    //    return;
+                    //}
+                    ////涓婃姤绫诲瀷閫氱煡
+                    //if (gwa.ReportAction != null)
+                    //{
+                    //    DebugPrintLog("LogicExecuteReport宸茬粡閫氱煡");
+                    //    gwa.ReportAction("LogicExecuteReport", logic.logicExecuteRespo);
+                    //}
                 }
                 #endregion
                 #region 鏃堕棿鐐规潯浠舵帹杩熸墽琛�
                 else if (topic == gatewayID + "/" + "Logic/TimingWillArrive")
                 {
-                    var logic = new Logic() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.getGatewayBaseInfo.gwID };
-                    logic.timingWillArriveData = Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.TimingWillArriveData>(jobject["Data"].ToString());
+                    //var logic = new Logic() { DataID = jobject.Value<int>("Data_ID"), GateWayId = gwa.getGatewayBaseInfo.gwID };
+                    //logic.timingWillArriveData = Newtonsoft.Json.JsonConvert.DeserializeObject<Logic.TimingWillArriveData>(jobject["Data"].ToString());
 
-                    if (logic.timingWillArriveData == null)
-                    {
-                        return;
-                    }
-                    //涓婃姤绫诲瀷閫氱煡
-                    if (gwa.ReportAction != null)
-                    {
-                        DebugPrintLog("TimingWillArrive宸茬粡閫氱煡");
-                        gwa.ReportAction("TimingWillArrive", logic.timingWillArriveData);
-                    }
+                    //if (logic.timingWillArriveData == null)
+                    //{
+                    //    return;
+                    //}
+                    ////涓婃姤绫诲瀷閫氱煡
+                    //if (gwa.ReportAction != null)
+                    //{
+                    //    DebugPrintLog("TimingWillArrive宸茬粡閫氱煡");
+                    //    gwa.ReportAction("TimingWillArrive", logic.timingWillArriveData);
+                    //}
                 }
                 #endregion
                 #region 妯″紡瀹夐槻鍔ㄤ綔琚渶缁堟縺娲绘椂鍙戦�佹姤璀︿俊鎭�
diff --git a/ZigbeeApp/Shared/R.cs b/ZigbeeApp/Shared/R.cs
index 959a1ae..97529af 100644
--- a/ZigbeeApp/Shared/R.cs
+++ b/ZigbeeApp/Shared/R.cs
@@ -316,28 +316,152 @@
         public readonly static int DistributeSuccess = 229;
         public readonly static int SureToUnFreeze = 230;
 
-        public readonly static int RemindSetting = 548;
-        public readonly static int AddNewUser = 650;
-        public readonly static int Headshot = 551;
-        public readonly static int Edited = 552;
-        public readonly static int UneditFingerprint = 553;
-        public readonly static int UneditPassword = 554;
-        public readonly static int UneditProximityCard = 555;
-        public readonly static int EditScence = 556;
-        public readonly static int UnEditedScene = 557;
-        public readonly static int NewName = 558;
-        public readonly static int OldName = 559;
-        public readonly static int SystemSetting = 560;
-        public readonly static int PasswordList = 561;
-        public readonly static int UserRemark = 562;
-        public readonly static int UserTempPassword = 563;
-        public readonly static int ProximityCard = 564;
-        public readonly static int MaxValicCount = 668;
-        public readonly static int ValidCount = 670;
-        public readonly static int AllRecord = 639;
-        public readonly static int ReFresh = 681;
-        public static readonly int AccountRegisterSuccess = 691;
+        /// <summary>
+        /// 鎺ヨ繎鎰熷簲
+        /// </summary>
+        public const int ProximitySensors = 231;
 
+        /// <summary>
+        /// 鎺ヨ繎鎰熷簲鍔熻兘璁剧疆缃け璐�
+        /// </summary>
+        public const int SetPannelProximityFail = 232;
+        /// <summary>
+        /// 鑾峰彇鎺ヨ繎鎰熷簲鍔熻兘澶辫触
+        /// </summary>
+        public const int GetPanelProximityFail = 233;
+        /// <summary>
+        /// 闀滃儚ID涓�2310鐨勮澶囩殑榛樿鍚嶅瓧锛氭柟鎮︽柊椋庡皬妯″潡
+        /// </summary>
+        public const int DeviceModelId2310 = 234;
+        /// <summary>
+        /// 闀滃儚ID涓�2310鐨勮澶囩殑榛樿鍚嶅瓧锛氭柟鎮︽柊椋庡皬妯″潡
+        /// </summary>
+        public const int AddFreshAirPanelMsg = 235;
+        /// <summary>
+        ///缁胯壊鎸囩ず鐏棯鐑�
+        /// </summary>
+        public const int GreenLightLighting = 236;
+        /// <summary>
+        /// 鎸囩ず鐏�
+        /// </summary>
+        public const int IndicatorLight = 237;
+        /// <summary>
+        /// 闀挎寜5绉掞紙鎸夐敭锛�
+        /// </summary>
+        public const int LongPressFiveSecond = 238;
+        /// <summary>
+        /// 闀挎寜
+        /// </summary>
+        public const int AddFreshAirModulPanelMsg = 239;
+        /// <summary>
+        /// 闀滃儚ID涓�2802鐨勮澶囩殑榛樿鍚嶅瓧锛歋-one
+        /// </summary>
+        public const int uDeviceModelId2802 = 240;
+        /// <summary>
+        /// 璁剧疆甯稿紑妯″紡鍚庯紝鎮ㄧ殑闂ㄩ攣灏嗗缁坽0}澶勪簬鎵撳紑鐘舵�侊紝纭寮�鍚紵
+        /// </summary>
+        public const int SetDoorLockNomallyOpen = 241;
+        /// <summary>
+        /// 鐢甸噺
+        /// </summary>
+        public const int DoorLockPower = 242;
+        /// <summary>
+        /// 甯稿紑妯″紡宸插紑鍚�
+        /// </summary>
+        public const int NomallyModeIsTurnOn = 243;
+        /// <summary>
+        /// 澶辨晥璁剧疆
+        /// </summary>
+        public const int DoorLockInValidSetting = 244;
+        /// <summary>
+        /// 鑷姩鍖�
+        /// </summary>
+        public const int DoorLockLogic = 245;
+        /// <summary>
+        /// 闂ㄩ攣濮嬬粓鎵撳紑{0}灏忔椂
+        /// </summary>
+        public const int DoorLockOpenAllTheTime = 246;
+        /// <summary>
+        /// 褰撳墠鏃跺尯
+        /// </summary>
+        public const int DoorLockCurrentZone = 247;
+        /// <summary>
+        /// 鍙栨秷甯稿紑
+        /// </summary>
+        public const int CancelNomallyMode = 248;
+        /// <summary>
+        /// 鎮ㄧ殑甯稿紑妯″紡灏嗚鍙栨秷
+        /// </summary>
+        public const int NomallyModeIsCanceled = 249;
+        /// <summary>
+        /// 淇濇寔甯稿紑
+        /// </summary>
+        public const int KeepNomallyMode = 250;
+        /// <summary>
+        /// 纭鍙栨秷
+        /// </summary>
+        public const int SureCancel = 251;
+        /// <summary>
+        /// (鏈鎿嶄綔浠呬负鍗曟鍙栨秷锛岃嫢闇�瑕佸仠姝㈡墽琛寋0}鑷姩鍖栵紝璇烽�夋嫨鍒嗙被-鑷姩鍖栬繘琛岃缃�)
+        /// </summary>
+        public const int XingTip = 252;
+
+        /// <summary>
+        /// 鑾峰彇闂ㄩ攣甯稿紑妯″紡澶辫触
+        /// </summary>
+        public const int GetNormallyOpenModeFailed = 253;
+        /// <summary>
+        /// 鎵撳紑闂ㄩ攣甯稿紑妯″紡鎴愬姛
+        /// </summary>
+        public const int OpenNormallyOpenModeSuccess = 254;
+        /// <summary>
+        /// 鎵撳紑闂ㄩ攣甯稿紑妯″紡澶辫触
+        /// </summary>
+        public const int OpenNormallyOpenModeFailed = 255;
+        /// <summary>
+        /// 鍏抽棴闂ㄩ攣甯稿紑妯″紡鎴愬姛
+        /// </summary>
+        public const int CloseNormallyOpenModeSuccess = 256;
+        /// <summary>
+        /// 鍏抽棴闂ㄩ攣甯稿紑妯″紡澶辫触
+        /// </summary>
+        public const int CloseNormallyOpenModeFailed = 257;
+        /// <summary>
+        /// 闂ㄩ攣宸茬粡寮�鍚�
+        /// </summary>
+        public const int CurrentNormallyOpenMode = 258;
+        /// <summary>
+        /// 澶辨晥鏃堕棿涓嶅悎娉曪紝璇烽噸鍐欒缃�
+        /// </summary>
+        public const int NormallyOpenModeInvalidTimeTip = 259;
+        /// <summary>
+        /// 闊抽噺璁剧疆澶辫触
+        /// </summary>
+        public const int SetVolumeFailed = 260;
+        /// <summary>
+        /// 闊抽噺璁剧疆鎴愬姛
+        /// </summary>
+        public const int SetVolumeSuccess = 261;
+        /// <summary>
+        /// 褰撳墠鏃跺尯聽
+        /// </summary>
+        public const int CurZone = 262;
+        /// <summary>
+        /// 鍖郝�
+        /// </summary>
+        public const int CurZoneText = 263;
+        /// <summary>
+        /// 涓溌�
+        /// </summary>
+        public const int East = 264;
+        /// <summary>
+        /// 瑗柯�
+        /// </summary>
+        public const int West = 265;
+        /// <summary>
+        /// 褰撳墠璁惧涓嶆敮鎸佽鍔熻兘
+        /// </summary>
+        public const int NoSupport = 266;
 
         public readonly static int cancel = 5097;
         public readonly static int confrim = 5098;
@@ -1363,7 +1487,7 @@
         #endregion
 
 
-        
+
 
 
 
@@ -5332,7 +5456,10 @@
         /// 鎵撳紑
         /// </summary>
         public const int uOpen1 = 16073;
-
+        /// <summary>
+        /// 鏃ョ珛绌鸿皟妯″潡
+        /// </summary>
+        public const int uHitachiAirConditioningModule = 16074;
 
 
         //鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄帴鍙g殑杩斿洖淇℃伅缈昏瘧,浠�18000寮�濮嬧槄鈽呪槄鈽�
@@ -5560,6 +5687,10 @@
         /// 鏂规偊鐜闈㈡澘 -> 鎸変綇闈㈡澘鍔熻兘(function)鎸夐敭锛屾墍鏈夋寜閿畕0}鎸囩ず鐏寒璧凤紝鍒欓厤缃戞垚鍔�
         /// </summary>
         public const int uAddFangyueEnvironmentPanelMsg = 21021;
+        /// <summary>
+        /// 绐楀笜闈㈡澘 -> 闀挎寜闈㈡澘宸︿笂瑙掓寜閿紝鎵�鏈夋寜閿畕0}鎸囩ず鐏寒璧凤紝鍒欓厤缃戞垚鍔�
+        /// </summary>
+        public const int uAddCurtaunPanelMsg = 21022;
 
 
         //鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄ā鍧桰D鐨勭炕璇戝悕瀛�,浠�30000寮�濮嬧槄鈽呪槄鈽�
@@ -5707,6 +5838,10 @@
         /// 闀滃儚ID涓�226鐨勮澶囩殑榛樿鍚嶅瓧锛氱畝绾�2璺獥甯橀潰鏉�
         /// </summary>
         public const int uDeviceModelId226 = 30035;
+        /// <summary>
+        /// 闀滃儚ID涓�256鐨勮澶囩殑榛樿鍚嶅瓧锛氭柟鎮�/2璺獥甯橀潰鏉�-Z
+        /// </summary>
+        public const int uDeviceModelId256 = 30036;
 
 
         //鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄澶囨墍灞炵绫荤殑缈昏瘧鍚嶅瓧,浠�40000寮�濮嬧槄鈽呪槄鈽�
diff --git a/ZigbeeApp/Shared/Shared.projitems b/ZigbeeApp/Shared/Shared.projitems
index 7ad7a9a..4767eb9 100644
--- a/ZigbeeApp/Shared/Shared.projitems
+++ b/ZigbeeApp/Shared/Shared.projitems
@@ -19,6 +19,16 @@
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\ResultPack.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\UserLoginLocalRegionRes.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Pad\MainPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\CategoryMainForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\Base\DeviceRowCommon.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DeviceAcRowControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DeviceAirSwitchRowControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DeviceColorLightRowControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DeviceCurtainRowControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DeviceDoorLockRowControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DeviceRelayRowControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DeviceSensorRowControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Category\Controls\DeviceRow\DeviceTemperatureRowControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\CurrentDeviceState.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\LogicView\AddDeviceView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\LogicView\Addview.cs" />
@@ -117,7 +127,10 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Room\RoomHumiditySetting.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Room\RoomShareSetting.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Room\RoomTemperatureSetting.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Room\UnallocatedRoom.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceCard\DeviceDryContactCardControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceFunctionUnallocatedControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceSelectUnallocatedControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\UnallocatedRoomForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceCard\Base\DeviceCardCommon.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceCard\DeviceAcCardControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceCard\DeviceAirSwitchCardControl.cs" />
@@ -127,9 +140,10 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceCard\DeviceRelayCardControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceCard\DeviceSensorCardControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceCard\DeviceTemperatureCardControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\ListRoomCardControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\SafetyShortcutControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\SceneCardControl.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\UserHomeView2.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\HomeMainPageForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Abount\AbountForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Abount\SLAForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Common\AccountOption.cs" />
@@ -184,9 +198,12 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\CommonForm\DirectionCommonForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\CurtainAutoOpenDirectionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\CurtainSiphonateDirectionForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\PanelCurtainDirectionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\PanelFangyueEightButtonDirectionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\PanelFangyueEnvironmentDirectionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\PanelFangyueFourButtonDirectionForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\PanelFangyueFreshAirDirectionForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\PanelFangyueFreshAirModulDirectionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\PanelFangyueTwoButtonDirectionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\RepeaterZigbeeDirectionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorCarbonMonoxideDirectionForm.cs" />
@@ -196,10 +213,13 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorPirDirectionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorTemperatureHumidityForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Direction\SensorWaterDirectionForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelBackLighWithSensorForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueButtonSettionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueEnvironmentButtonSettionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueEnvironmentLightSettionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueEnvironmentTargetForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFreshAirBackLightSettionForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFreshAirButtonSettionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFunctionSettionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\PirSensor\PirSensorDimmingModeForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\PirSensor\PirSensorTargetSelectForm.cs" />
@@ -213,6 +233,7 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\FunctionSetting.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\MasterManagementPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\MemberFrozenPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\ShowDoorLockMsgControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\TemporaryPassword.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\TimeSettignPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\DoorLock\UndistributeDoorlockUserPage.cs" />
@@ -428,7 +449,7 @@
     <Compile Include="$(MSBuildThisFileDirectory)Common\SendDataToServer.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserView\UserHomeView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\Room.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Room\RoomManagement.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\MainPage\ListRoomViewFrom.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Room\AddRoomSelectPicByLocal.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\CompoundControls\ProgressBar.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\CompoundControls\SearchEditText.cs" />
@@ -467,7 +488,6 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Device\HDLbutton.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Device\IASZone.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Device\LigthtBase.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Device\Logic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Device\LogicBase.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Device\OTADevice.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\ZigBee\Device\Panel.cs" />
@@ -491,7 +511,6 @@
     <Folder Include="$(MSBuildThisFileDirectory)Phone\Device\Curtain\" />
     <Folder Include="$(MSBuildThisFileDirectory)Phone\CommonForm\" />
     <Folder Include="$(MSBuildThisFileDirectory)Phone\MainPage\Controls\DeviceCard\Base\" />
-    <Folder Include="$(MSBuildThisFileDirectory)Phone\Device\CurtainPanel\" />
   </ItemGroup>
   <ItemGroup>
     <None Include="$(MSBuildThisFileDirectory)DLL\Android\Shared.Droid.dll" />
@@ -521,4 +540,4 @@
     <None Include="$(MSBuildThisFileDirectory)DLL\ZigBee.Droid.dll" />
     <None Include="$(MSBuildThisFileDirectory)DLL\ZigBee.Ios.xml" />
   </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>

--
Gitblit v1.8.0