From c7698e163e43cea9e7f8ee45f8e3f91c9265cca4 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 04 十一月 2019 19:11:41 +0800
Subject: [PATCH] 合并了全部的代码

---
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorPir.png                                          |    0 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs                                  |   10 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/CurtainSiphonate.png                                   |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddDevice.cs                                  |   74 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs                             |   44 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Item/GarrisonList.png                                          |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayThreeLoad.png                                      |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/AccountOption.cs                                |   10 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs                                 |   20 
 ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorBindTargetSettionForm.cs                |    1 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/CurtainAutoOpen.png                                    |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitSettionForm.cs                    |    4 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorInfrared.png                                      |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorCarbonMonoxide.png                               |    0 
 ZigbeeApp/Shared/Phone/Device/Light/PlugControl.cs                                                  |   13 
 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs               |    2 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelOne.png                                     |    0 
 ZigbeeApp/Shared/DLL/Android/Shared.Droid.HDLWidget.dll                                             |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorInfrared.png                                     |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/TimePage.cs                                                     |    2 
 ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceDetailInfo.cs                                        |  273 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs                       |   18 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/ButtonBase.cs          |    2 
 ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs                                                    |    2 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorDoorWindowDirectionForm.cs                 |    4 
 ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs                          |   11 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordAddNewForm.cs                                      |   30 
 ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs                                         |    7 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/CutPictureControl.cs         |  220 
 ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs                          |    2 
 ZigbeeApp/Shared/Phone/Device/Logic/LogicDevicePage.cs                                              |   74 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Relay.png                                              |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs                              |   16 
 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs                           |    2 
 ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoRow.cs                                           |   22 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaExistSensorForm.cs                             |  109 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/IntelligentLocks.png                                   |    0 
 ZigbeeApp/Shared/Phone/Device/Account/AccountRegister.cs                                            |    6 
 ZigbeeApp/Shared/Phone/Device/Logic/TemplatePage.cs                                                 |    2 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/PswSecondarySecurityForm.cs                       |   11 
 ZigbeeApp/Shared/Common/ResponseEntity/AuthUserRes.cs                                               |   26 
 ZigbeeApp/Shared/Phone/Device/Logic/CyclicCycle.cs                                                  |    2 
 ZigbeeApp/Shared/Phone/Device/Account/AccountRegisterSuccess.cs                                     |   41 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelOne.png                                      |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ColorLight.png                                         |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCarbonMonoxide.png                                |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLight.png                                       |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperature.png                                   |    0 
 ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll                                                       |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/EveryyearPage.cs                                                |    2 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Switch.png                                             |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafeguardLogControl.cs       |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitch.png                                           |    0 
 ZigbeeApp/GateWay.Droid/packages.config                                                             |   11 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SearchEditText.cs            |    2 
 ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotSecondaryPasswordForm.cs                           |    3 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareInfoForm.cs                                  |   17 
 ZigbeeApp/Shared/Phone/UserCenter/Member/SubAccountLevelUpSuccessForm.cs                            |   45 
 ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs                                                      |  198 
 ZigbeeApp/Shared/Phone/Device/Logic/Cycle.cs                                                        |    2 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RelayThreeLoad.png                                     |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/DownSelected.png                                   |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareUpdateForm.cs                       |  219 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Item/PswSettion.png                                            |    0 
 ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs                                                       |    5 
 ZigbeeApp/Shared/Phone/Device/Logic/LogicMain.cs                                                    |  744 ++
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchCloudContr.png                                 |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs                                    |   84 
 ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Media.Compat.dll                               |    0 
 ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs                                               |  173 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFour.png                                     |    0 
 ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Arch.Core.Common.dll                                   |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ThirdPartyDevice.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Open.png                                           |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Item/PswSettionSelected.png                                   |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/DeviceStateCondition.cs                                         |  126 
 ZigbeeApp/Shared/Phone/Device/Logic/WeekPage.cs                                                     |    2 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddNewForm.cs                                     |   56 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs                             |   10 
 ZigbeeApp/Shared/Phone/Device/Logic/DelayTime.cs                                                    |    5 
 ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs                                                     |   49 
 ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs                                                     |    2 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAutoBackupLogic.cs                            |    7 
 ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs                                  |   15 
 ZigbeeApp/Shared/Phone/UserCenter/Member/MemberManagementForm.cs                                    |   15 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPir.png                                           |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/TimePoint.cs                                                    |    2 
 ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll                                                             |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/SelectDeviceWithSeekBarRow.cs                              |    4 
 ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Stop.png                                           |    0 
 ZigbeeApp/Shared/Phone/Device/Room/RoomTemperatureSetting.cs                                        |   79 
 ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj                                                        |  124 
 ZigbeeApp/Shared/Common/CommonPage.cs                                                               |    4 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs |    7 
 ZigbeeApp/Shared/Phone/Device/Logic/Send.cs                                                         |  325 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/WithdrawGarrisonSelected.png                        |    0 
 ZigbeeApp/GateWay.Droid/Application.cs                                                              |   78 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainAutoOpen.png                                     |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DryContact.png                                          |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionAtHomeSelected.png                        |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Sensor.png                                              |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelThree.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Socket1.png                                             |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Close.png                                          |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorFire.png                                         |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/SelectedLogicState.cs                                           |    2 
 ZigbeeApp/Shared/Phone/Device/CommonForm/BackButton.cs                                              |    8 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/VerificationCodeControl.cs   |    2 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Item/GarrisonList.png                                         |    0 
 ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml                                              |    2 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs                                           |  200 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionAtHome.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/SceneSimpleSelectControl.cs     |    2 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlCheckLogic.cs                                 |    8 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionRemoveHome.png                             |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Relay.png                                               |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaDelayedSettionForm.cs                          |  105 
 ZigbeeApp/Shared/Phone/ZigBee/Device/Safeguard.cs                                                   |  134 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Account/Wechat.png                                             |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddSceneForm.cs                                 |  173 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Curtain.png                                            |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelFour.png                                    |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanel.png                                         |    0 
 ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Animated.Vector.Drawable.dll                   |    0 
 ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Fragment.dll                                   |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswEditorForm.cs                                     |  280 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanel.png                                        |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/DialogCommonForm.cs                          |   38 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs                                    |    5 
 ZigbeeApp/Shared/Phone/Device/CommonForm/CategoryFunctionForWinRow.cs                               |  274 
 ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/OpenSelected.png                                   |    0 
 ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs                                         |  573 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs                                      |   18 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Switch.png                                              |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddScene.cs                                   |   78 
 ZigbeeApp/Shared/DLL/IOS/Xamarin.Essentials.dll                                                     |    0 
 ZigbeeApp/Shared/R.cs                                                                               |  277 
 ZigbeeApp/Shared/Phone/Device/Logic/AddScenePage.cs                                                 |   80 
 ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/UpSelected.png                                    |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksH06C.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlLogLogic.cs                                   |   10 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordUserEditorForm.cs                                  |  140 
 ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs                                   |  111 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/SafetyShortcutSelected.png                          |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Item/GarrisonListSelected.png                                  |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceInfoIconControl.cs       |    6 
 ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs                                          |  242 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerZbGateway.png                             |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/RowLayoutControl.cs         |   44 
 ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs                           |    4 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorCarbonMonoxideDirectionForm.cs             |   19 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MasterManagementPage.cs                                  |   11 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirSwitchCloudContr.png                                |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/CloseSelected.png                                 |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs                                 |   20 
 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewayListForm.cs                               |    8 
 ZigbeeApp/Shared/Phone/Device/Logic/LogicListAutomation.cs                                          |    2 
 ZigbeeApp/Shared/Phone/Device/CommonForm/TopFrameLayout.cs                                          |    3 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RelayEpoint.png                                        |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/FrameLayoutControls/FrameListControl.cs       |    4 
 ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs                            |  705 +
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DryContact.png                                         |    0 
 ZigbeeApp/Shared/DLL/Android/Shared.Droid.TouchID.dll                                               |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/FirmwareUpdateResourse.cs                     |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorWater.png                                         |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirSwitch.png                                          |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelThree.png                                    |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs                                  |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/UpSelected.png                                     |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/TemplateDeviceAction.cs                                         |   76 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs                          |    2 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs                                |  102 
 ZigbeeApp/Shared/Common/Room.cs                                                                     |   38 
 ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Arch.Lifecycle.Common.dll                              |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoWithZoneRow.cs                                   |   33 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectCurtainForm.cs                       |  319 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Light.png                                              |    0 
 ZigbeeApp/GateWay.Droid/Assets/Language.ini                                                         |   81 
 ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs                                              | 5536 ++++++++++++++-
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DimmableLightOneLoad.png                               |    0 
 ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs                                          |   18 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/WithdrawGarrison.png                                |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/SceneRoomControl.cs             |   41 
 ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Stop.png                                          |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSiphonate.png                                    |    0 
 ZigbeeApp/Shared/Common/DeviceUI.cs                                                                 |  109 
 ZigbeeApp/Shared/Phone/Device/Category/Category.cs                                                  |  605 
 ZigbeeApp/GateWay.Ios/GateWay.Ios.csproj                                                            |  328 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Sensor.png                                             |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorFire.png                                          |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/DirectoryFileNameResourse.cs                  |    4 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareUpdateForm.cs                                |    4 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocks.png                                    |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ColorLight.png                                          |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs                                                   |   47 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLightSettionForm.cs                         |   10 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetExistSettionForm.cs                             |  332 
 ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs                                                 |    4 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordListUserForm.cs                                    |  149 
 ZigbeeApp/Shared/Phone/UserCenter/UserMain/SecondAuthenticationForm.cs                              |   53 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/SelectDeviceForm.cs                               |    7 
 ZigbeeApp/Shared/Phone/ZigBee/Common/Config.cs                                                      |    3 
 ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.v4.dll                                         |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Item/GarrisonListSelected.png                                 |    0 
 ZigbeeApp/Shared/DLL/IOS/Shared.IOS.TBL.dll                                                         |    0 
 ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.v7.AppCompat.dll                               |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafetyMasterControl.cs       |    8 
 ZigbeeApp/Shared/Phone/Device/Light/AirSwitchControl.cs                                             |  532 +
 ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Annotations.dll                                |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/IntelligentLocksH06C.png                               |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/PswGestureInputControl.cs    |  164 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaSettionMenuForm.cs                             |  206 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs                               |    4 
 ZigbeeApp/Shared/Phone/UserCenter/Member/AddMemberSuccessForm.cs                                    |    2 
 ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Down.png                                          |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/SafeguardPasswordGround.png                         |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddAction.cs                                      |    2 
 ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs                                            |    6 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayEpoint.png                                         |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs         |    2 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/AreaCodeSelectForm.cs                             |    4 
 ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/OpenSelected.png                                  |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Account/Wechat.png                                            |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/PswNumberInputControl.cs     |   88 
 ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs                                        |    2 
 ZigbeeApp/Shared/Phone/Device/Account/AccountForgetPWD.cs                                           |    4 
 ZigbeeApp/Shared/Phone/Device/Room/RoomHumiditySetting.cs                                           |   75 
 ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Core.UI.dll                                    |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionAtHome.png                                 |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorTemperature.png                                  |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorWater.png                                        |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddDeviceForm.cs                                |  266 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceRoomControl.cs           |   51 
 ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Up.png                                             |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs            |    4 
 ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/CloseSelected.png                                  |    0 
 ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Core.Utils.dll                                 |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/IMessageCommon.cs                               |   11 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/CommonFormBase.cs                            |   13 
 ZigbeeApp/Shared/Phone/Device/Account/PhoneEmailForm.cs                                             |   26 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs                        |   26 
 ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Close.png                                         |    0 
 ZigbeeApp/Shared/Shared.projitems                                                                   |   85 
 ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/DownSelected.png                                  |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/CustomText.cs                                                   |    2 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs                                       |  400 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs                                      |  402 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionRemoveHomeSelected.png                    |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/SafetyShortcut.png                                  |    0 
 ZigbeeApp/Shared/Common/SendDataToServer.cs                                                         |   42 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditioner.png                                      |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Up.png                                            |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Item/PhoneBook.png                                             |    0 
 ZigbeeApp/GateWay.Ios/Resources/Language.ini                                                        |   84 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionAtHomeSelected.png                         |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/SafetyShortcutSelected.png                           |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelTwo.png                                     |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/EditorCommonForm.cs                          |   13 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Item/HadAuthority.png                                         |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceUpdateLogic.cs                          |    3 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/SafeguardPasswordGround.png                          |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Socket1.png                                            |    0 
 ZigbeeApp/Shared/Phone/UserCenter/UserMain/QRCodeForm.cs                                            |    7 
 ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/StopSelected.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/SafetyShortcut.png                                   |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorDoorWindow.png                                    |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/EverymonthPage.cs                                               |    2 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs                                        |   23 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterZigbee.png                                      |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionRemoveHome.png                            |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Item/PhoneBook.png                                            |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotAccountPasswordForm.cs                             |    2 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightOneLoad.png                                |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Light.png                                               |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirConditioner.png                                     |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/WithdrawGarrisonSelected.png                         |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareInfoForm.cs                         |  298 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafetySensorStatuControl.cs  |    2 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs                                  |  432 
 ZigbeeApp/Shared/Phone/Device/CommonForm/SelectZone.cs                                              |   33 
 ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs                                   |   14 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelTwo.png                                      |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DimmableLight.png                                      |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/StopSelected.png                                  |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/WithdrawGarrison.png                                 |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Down.png                                           |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Account/QQ.png                                                 |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Account/QQ.png                                                |    0 
 ZigbeeApp/Shared/Phone/Device/CommonForm/CategoryFunctionRow.cs                                     |   26 
 ZigbeeApp/Shared/Phone/Device/Light/DimmableLightControl.cs                                         |   12 
 ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs                             |  252 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs                                  |  418 +
 ZigbeeApp/Shared/Phone/Device/Logic/TemplateDeviceCondition.cs                                      |  110 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddContactForm.cs                                 |  228 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Curtain.png                                             |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectLightForm.cs                         |  312 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/PswGestureSecirityForm.cs                         |   47 
 ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Arch.Lifecycle.Runtime.dll                             |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/TextInputControls/TextInputExControl.cs       |   16 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs                            |    2 
 ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AirSwitchCloudContrDirectionForm.cs              |    4 
 ZigbeeApp/Shared/Common/Device.cs                                                                   |  196 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDevice.png                                    |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RepeaterZigbee.png                                     |    0 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Item/HadAuthority.png                                          |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/SecurityMode.cs                                                 |    2 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs                               |   43 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionRemoveHomeSelected.png                     |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs                                                 |   15 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Item/PswSettionSelected.png                                    |    0 
 ZigbeeApp/Shared/Phone/Device/Light/OnOffControl.cs                                                 |   13 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaListMenuForm.cs                                |    7 
 ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Compat.dll                                     |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/SelectedLogicStatus.cs                                          |    2 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Item/PswSettion.png                                           |    0 
 ZigbeeApp/Shared/Phone/Device/Logic/DeviceTarget.cs                                                 |    7 
 ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorHumidity.png                                      |    0 
 /dev/null                                                                                           |  114 
 ZigbeeApp/Shared/Phone/Device/Logic/LogicListPage.cs                                                |    2 
 ZigbeeApp/Shared/Phone/UserCenter/Password/EditorSecondaryPasswordForm.cs                           |   77 
 ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Open.png                                          |    0 
 ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs                                                |   12 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirConditionerZbGateway.png                            |    0 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorDoorWindow.png                                   |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockScreeningTypeForm.cs                      |    4 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectSwitchForm.cs                        |  267 
 ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorHumidity.png                                     |    0 
 ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordMenuForm.cs                                        |  130 
 ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Vector.Drawable.dll                            |    0 
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayUpdateLogic.cs                         |  309 
 330 files changed, 17,376 insertions(+), 3,561 deletions(-)

diff --git a/ZigbeeApp/GateWay.Droid/Application.cs b/ZigbeeApp/GateWay.Droid/Application.cs
index fc32ae7..b200e36 100755
--- a/ZigbeeApp/GateWay.Droid/Application.cs
+++ b/ZigbeeApp/GateWay.Droid/Application.cs
@@ -14,15 +14,87 @@
 using Microsoft.AppCenter;
 using Microsoft.AppCenter.Analytics;
 using Microsoft.AppCenter.Crashes;
+using Com.Tencent.MM.Sdk.Openapi;
 
 namespace com.hdl.home
 {
-     /// <summary>鈥�    /// 璁惧畾涓洪粯璁ゅ惎鍔ㄧ殑Application鈥�    /// </summary>鈥�    [Android.App.Application]鈥�    public class Application : Android.App.Application鈥�    {鈥�        public Application(IntPtr handle, Android.Runtime.JniHandleOwnership ownerShip) : base(handle, ownerShip) { }鈥ㄢ��        public override void OnCreate()鈥�        {鈥�            //瀹夊崜閰嶇綉鍒濆鈥�            //var result = Com.Mediatek.Elian.ElianNative.LoadLib();鈥�            //if (!result)鈥�            //{鈥�            //    System.Console.WriteLine("Error,can't load elianjni lib");鈥�            //}
 
-            initAll();鈥�            base.OnCreate();鈥�        }
+    [Activity(Name = "com.hdl.home.wxapi.WXEntryActivity", Exported = true, Theme = "@android:style/Theme.Translucent", LaunchMode = Android.Content.PM.LaunchMode.SingleTask)]
+    class WXEntryActivity : Android.App.Activity, IWXAPIEventHandler
+    {
+        public void OnReq(BaseReq p0)
+        {
 
+        }
+        protected override void OnNewIntent(Intent intent)
+        {
+            base.OnNewIntent(intent);
+            Intent = intent;
+            com.hdl.home.Application.api.HandleIntent(intent, this);
+            //Finish();
+        }
+        public static Action<string> RespAction;
+        public void OnResp(BaseResp p0)
+        {
 
+            if (p0 is SendAuth.Resp)
+            {
+                var resp = p0 as SendAuth.Resp;
 
+                switch (resp.ErrCode)
+                {
+                    case SendAuth.Resp.InnerErrCode.ErrOk:
+                        var result = new System.Net.WebClient { }.DownloadString($"https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx2ec8f53f6fa36e82&secret=a08585cd6ff2ce64570b9e7e6525dd8e&code={resp.Token}&grant_type=authorization_code");
+                        RespAction?.Invoke(result);
+                        break;
+                    default:
+                        RespAction?.Invoke(null);
+                        break;
+
+                    //case SendAuth.Resp.InnerErrCode.ErrUserCancel:
+                    //    break;
+                    //case SendAuth.Resp.InnerErrCode.ErrAuthDenied:
+                    //    break;
+
+                }
+            }
+            
+            this.Finish();
+        }
+        //IWXAPI api;
+        protected override void OnCreate(Bundle savedInstanceState)
+        {
+            base.OnCreate(savedInstanceState);
+            // 閫氳繃WXAPIFactory宸ュ巶锛岃幏鍙朓WXAPI鐨勫疄渚�
+            //api = WXAPIFactory.CreateWXAPI(this, "wx2ec8f53f6fa36e82", false);
+
+            // 灏嗗簲鐢ㄧ殑appId娉ㄥ唽鍒板井淇�
+            //api.RegisterApp("wx2ec8f53f6fa36e82");
+
+          com.hdl.home.Application.api.HandleIntent(Intent, this);
+        }
+    }
+    /// <summary>鈥�    /// 璁惧畾涓洪粯璁ゅ惎鍔ㄧ殑Application鈥�    /// </summary>鈥�    [Android.App.Application]鈥�    public class Application : Android.App.Application鈥�    {鈥�        public Application(IntPtr handle, Android.Runtime.JniHandleOwnership ownerShip) : base(handle, ownerShip) { }鈥ㄢ��        public override void OnCreate()鈥�        {
+            //瀹夊崜閰嶇綉鍒濆
+            //var result = Com.Mediatek.Elian.ElianNative.LoadLib();
+            //if (!result)
+            //{
+            //    System.Console.WriteLine("Error,can't load elianjni lib");
+            //}
+            initAll();鈥�            base.OnCreate();
+            // 閫氳繃WXAPIFactory宸ュ巶锛岃幏鍙朓WXAPI鐨勫疄渚�
+            api = WXAPIFactory.CreateWXAPI(this, "wx2ec8f53f6fa36e82", true);
+
+            // 灏嗗簲鐢ㄧ殑appId娉ㄥ唽鍒板井淇�
+            api.RegisterApp("wx2ec8f53f6fa36e82");
+        }
+
+       internal static IWXAPI api;
+
+        public static void WXLogin() {
+            var req = new SendAuth.Req { Scope = "snsapi_userinfo", State = "ZigbeeApp" };
+            api.SendReq(req);
+        }
         /// <summary>鈥�        /// 鎵�鏈夊垵濮嬪寲鍏ㄩ儴鍦ㄨ繖涓柟娉曞疄鐜扳��        /// </summary>鈥�        void initAll()鈥�        {鈥�            BaseActivity.IsEnnableGPS = false;
             //璁剧疆鏋佸厜璋冭瘯妯″紡锛屼负false鏃跺彧鎵撳嵃璀﹀憡淇℃伅
             // System.Console.WriteLine($"AAA : {System.DateTime.Now.ToString()}");
@@ -82,7 +154,7 @@
                 AppCenter.Start("4802834a-e7e9-4dd8-93f1-c2f88f0bd464", typeof(Analytics), typeof(Crashes));鈥�#if Release鈥�                //淇濆瓨鑾峰彇鐨勬瀬鍏夋湇鍔″櫒涓婄殑娉ㄥ唽ID鍒版湰鍦版枃浠垛��                var registrationId = JPushInterface.GetRegistrationID(activity);
                 System.Console.WriteLine("registrationId-鏋佸厜id=" + registrationId);
                 if (!string.IsNullOrEmpty(registrationId))鈥�                {鈥�                    Shared.Common.Config.Instance.RegistrationID = registrationId;鈥�                    Shared.Common.Config.Instance.Save();鈥�                }鈥�#endif鈥�            };鈥�            BaseActivity.RefreshUIAction += (activity) => {鈥�                Shared.Language.CurrentLanguage = "Chinese";鈥�                Shared.Common.CommonPage.Instance.Show();鈥�             };鈥�            BaseActivity.OnResumeAction += (activity) => {鈥�             };鈥�            BaseActivity.NetworkStateChanged += (v) =>鈥�            {鈥�                //缃戠粶鐘舵�佸彉鍖栧鐞嗕簨浠�
-                Shared.Common.CommonPage.nowNetworkMode = v;鈥�            };鈥�            BaseActivity.OnDestroyAction += (activity) => {鈥�            //socket鍋滄杩炴帴鈥�            //ZigBee.Device.ZbGateway.FindGateWaySocket.Stop();鈥�            };鈥ㄢ��         }鈥ㄢ��        public static bool IsShowTip = true;鈥�        JpushNotificationReceiver myReceiver = new JpushNotificationReceiver { };鈥ㄢ��        /// <summary>鈥�        /// 椤圭洰鍚姩鏃剁綉缁滄煡璇⑩��        /// </summary>鈥�        void checkSomeInfo()鈥�        {鈥�            var status = isNetworkAvailable(this);鈥�            string internetStatus = "Available";鈥�            if (!status)鈥�            {鈥�                internetStatus = "UnaVailable";鈥�            }鈥�            else鈥�            {鈥�                var isWifi = isWifiConnected(this);鈥�                if (isWifi)鈥�                {鈥�                    internetStatus = "WiFiConnect";鈥�                }鈥�                else鈥�                {鈥�                    internetStatus = "MobileConnect";鈥�                }鈥�            }鈥ㄢ��            int connectState = 0;鈥�            if (internetStatus == "UnaVailable")鈥�            {鈥�                connectState = 0;鈥�            }鈥�            else if (internetStatus == "WiFiConnect")鈥�            {鈥�                connectState = 2;鈥�            }鈥�            else鈥�            {鈥�                connectState = 1;鈥�            }鈥�            //ZigBee.Device.ZbGateway.CheckConnection(connectState);鈥�         }鈥ㄢ��        /// <summary>鈥�        /// 缃戠粶鏄惁鍙敤鈥�        /// </summary>鈥�        /// <returns><c>true</c>, if network available was ised, <c>false</c> otherwise.</returns>鈥�        /// <param name="context">Context.</param>鈥�        bool isNetworkAvailable(Context context)鈥�        {鈥�            var cm = (ConnectivityManager)context.GetSystemService(ConnectivityService);鈥ㄢ��            if (cm == null || cm.ActiveNetworkInfo == null)鈥�            {鈥�                //褰撳墠缃戠粶涓嶅彲鐢ㄢ��                return false;鈥�            }鈥�            else鈥�            {鈥�                return cm.ActiveNetworkInfo.IsAvailable;鈥�            }鈥�        }鈥ㄢ��        /// <summary>鈥�        /// 缃戠粶鏄惁杩炴帴鈥�        /// </summary>鈥�        /// <returns><c>true</c>, if wifi connected was ised, <c>false</c> otherwise.</returns>鈥�        /// <param name="context">Context.</param>鈥�        bool isWifiConnected(Context context)鈥�        {鈥�            if (context != null)鈥�            {鈥�                var cm = (ConnectivityManager)context.GetSystemService(ConnectivityService);鈥ㄢ��                var mWiFiNetworkInfo = cm.GetNetworkInfo(ConnectivityType.Wifi);鈥�                if (Android.Net.NetworkInfo.State.Connected == mWiFiNetworkInfo.GetState())鈥�                {鈥�                    //褰撳墠缃戠粶鏄疻i-Fi杩炴帴鈥�                    return true;鈥�                }鈥ㄢ��                var moWiFiNetworkInfo = cm.GetNetworkInfo(ConnectivityType.Mobile);鈥�                if (Android.Net.NetworkInfo.State.Connected == moWiFiNetworkInfo.GetState())鈥�                {鈥�                    //褰撳墠缃戠粶鏄疢obile杩炴帴鈥�                    return false;鈥�                }鈥�            }鈥�            return false;鈥�        }
+                Shared.Common.CommonPage.nowNetworkMode = v;鈥�            };鈥�            BaseActivity.OnDestroyAction += (activity) => {鈥�            //socket鍋滄杩炴帴鈥�            //ZigBee.Device.ZbGateway.FindGateWaySocket.Stop();鈥�            };鈥ㄢ��            HDLUtils.SetAuthoritiesName("com.hdl.home.fileProvider");鈥�         }鈥ㄢ��        public static bool IsShowTip = true;鈥�        JpushNotificationReceiver myReceiver = new JpushNotificationReceiver { };鈥ㄢ��        /// <summary>鈥�        /// 椤圭洰鍚姩鏃剁綉缁滄煡璇⑩��        /// </summary>鈥�        void checkSomeInfo()鈥�        {鈥�            var status = isNetworkAvailable(this);鈥�            string internetStatus = "Available";鈥�            if (!status)鈥�            {鈥�                internetStatus = "UnaVailable";鈥�            }鈥�            else鈥�            {鈥�                var isWifi = isWifiConnected(this);鈥�                if (isWifi)鈥�                {鈥�                    internetStatus = "WiFiConnect";鈥�                }鈥�                else鈥�                {鈥�                    internetStatus = "MobileConnect";鈥�                }鈥�            }鈥ㄢ��            int connectState = 0;鈥�            if (internetStatus == "UnaVailable")鈥�            {鈥�                connectState = 0;鈥�            }鈥�            else if (internetStatus == "WiFiConnect")鈥�            {鈥�                connectState = 2;鈥�            }鈥�            else鈥�            {鈥�                connectState = 1;鈥�            }鈥�            //ZigBee.Device.ZbGateway.CheckConnection(connectState);鈥�         }鈥ㄢ��        /// <summary>鈥�        /// 缃戠粶鏄惁鍙敤鈥�        /// </summary>鈥�        /// <returns><c>true</c>, if network available was ised, <c>false</c> otherwise.</returns>鈥�        /// <param name="context">Context.</param>鈥�        bool isNetworkAvailable(Context context)鈥�        {鈥�            var cm = (ConnectivityManager)context.GetSystemService(ConnectivityService);鈥ㄢ��            if (cm == null || cm.ActiveNetworkInfo == null)鈥�            {鈥�                //褰撳墠缃戠粶涓嶅彲鐢ㄢ��                return false;鈥�            }鈥�            else鈥�            {鈥�                return cm.ActiveNetworkInfo.IsAvailable;鈥�            }鈥�        }鈥ㄢ��        /// <summary>鈥�        /// 缃戠粶鏄惁杩炴帴鈥�        /// </summary>鈥�        /// <returns><c>true</c>, if wifi connected was ised, <c>false</c> otherwise.</returns>鈥�        /// <param name="context">Context.</param>鈥�        bool isWifiConnected(Context context)鈥�        {鈥�            if (context != null)鈥�            {鈥�                var cm = (ConnectivityManager)context.GetSystemService(ConnectivityService);鈥ㄢ��                var mWiFiNetworkInfo = cm.GetNetworkInfo(ConnectivityType.Wifi);鈥�                if (Android.Net.NetworkInfo.State.Connected == mWiFiNetworkInfo.GetState())鈥�                {鈥�                    //褰撳墠缃戠粶鏄疻i-Fi杩炴帴鈥�                    return true;鈥�                }鈥ㄢ��                var moWiFiNetworkInfo = cm.GetNetworkInfo(ConnectivityType.Mobile);鈥�                if (Android.Net.NetworkInfo.State.Connected == moWiFiNetworkInfo.GetState())鈥�                {鈥�                    //褰撳墠缃戠粶鏄疢obile杩炴帴鈥�                    return false;鈥�                }鈥�            }鈥�            return false;鈥�        }
     }
 
     public class JpushNotificationReceiver : BroadcastReceiver
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Language.ini b/ZigbeeApp/GateWay.Droid/Assets/Language.ini
index b45939a..f03d643 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Language.ini
+++ b/ZigbeeApp/GateWay.Droid/Assets/Language.ini
@@ -181,7 +181,7 @@
 175=淇敼澶辫触
 176=璇ョ敤鎴峰彧鑳藉湪璁惧绔垹闄�
 177=鏈垎閰�
-178=楠岃瘉棰戠箒锛岃30绉掑悗鍐嶈瘯
+178=楠岃瘉棰戠箒锛岃15绉掑悗鍐嶈瘯
 179=鎿嶄綔澶辫触
 180=杩滅▼寮�閿佺粦瀹氭垚鍔�
 181=璇疯缃簩娆″畨鍏ㄩ獙璇佹柟寮�
@@ -206,6 +206,7 @@
 200= 淇敼涓存椂瀵嗙爜淇℃伅鍓�
 201=璇风偣鍑诲彸涓婅鈥滄竻闄ゅ瘑鐮佲��
 202=涓�妤�
+203=缃戝叧鍥炲瓒呮椂
 
 548=鎻愰啋璁剧疆
 550=鏂板鐢ㄦ埛
@@ -581,6 +582,8 @@
 5364=閫夋嫨寮�閿佹柟寮�
 5365=娣诲姞鍔ㄤ綔
 5366=鑱斿姩浜嬩欢
+5367=褰撳墠
+5368=閫夋嫨妤煎眰
 
 
 
@@ -614,6 +617,14 @@
 10124=纭閲嶇疆
 10125=淇敼鎴愬姛
 10126=浣犵殑瀵嗙爜淇敼鎴愬姛锛岃閲嶆柊鐧诲綍
+10127=璇烽�夋嫨鍖哄彿
+10128=鏈縺娲�
+10129=璇ョ敤鎴峰睘浜庤皟璇曡处鍙凤紝骞舵湭鍚敤
+10130=鏁版嵁骞朵笉鍦ㄦHDL鍖哄煙鏈嶅姟鍣�
+10131=璐﹀彿鎴栧瘑鐮侀敊璇�
+10132=璐﹀彿涓嶅瓨鍦紝璇峰厛娉ㄥ唽
+10133=璇疯緭鍏ラ獙璇佺爜
+10134=鍗冲皢閫氳繃寰俊鎺堟潈鐧诲綍
 
 11000=鍔熻兘
 11001=鍦烘櫙
@@ -643,6 +654,7 @@
 11031=娣诲姞鎵ц鐩爣
 11032=閫夋嫨鍖哄煙
 11033=閫夋嫨鍦烘櫙鍥剧墖
+
 
 12100=鏈煡璁惧
 12101=鎺у埗闈㈡澘
@@ -698,11 +710,13 @@
 13139=璇ュ満鏅凡瀛樺湪
 13140=缂栬緫
 13141=缂栬緫鍦烘櫙
-
-
-
-
-
+13142=鏈垎閰嶅尯鍩�
+13143=鍔熻兘绫诲瀷
+13144=澶辫触锛岃閲嶈瘯
+13145=鎴愬姛
+13146=榛樿鍥惧簱
+13147=鎷嶇収
+13148=鎴戠殑鐩稿唽
 
 
 15000=瀵嗙爜闀垮害涓簕0}涓瓧绗�
@@ -819,7 +833,7 @@
 15117=璇疯緭鍏ユ挙闃插瘑鐮�
 15118=璇疯緭鍏ュ瘑鐮�
 15119=瀹夐槻瀵嗙爜璁剧疆
-15120=鐢ㄦ埛瀵嗙爜
+15120=瀹夐槻瀵嗙爜
 15121=鑳佽揩瀵嗙爜
 15122=绯荤粺瀵嗙爜璁剧疆
 15123=璇疯緭鍏ョ郴缁熷瘑鐮�
@@ -892,10 +906,10 @@
 15190=娣诲姞浼犳劅鍣�
 15191=甯冮槻
 15192=纭畾鎺堟潈銆寋0}銆嶆垚涓虹鐞嗗憳?
-15193=纭畾瑕佹挙閿�璇ユ垚鍛樼鐞嗘潈闄愬悧锛�
+15193=纭畾鍙栨秷銆寋0}銆嶇鐞嗗憳鏉冮檺锛�
 15194=鎴愬憳鎺堟潈
-15195=鎴愬憳鎺堟潈鎴愬姛
-15196=璇ユ垚鍛樺凡鎴愪负绠$悊鍛榹0}鎮ㄧ殑鎺у埗鏉儃1}宸茬Щ浜�
+15195=鎺堟潈鎴愬姛!
+15196=璇ユ垚鍛樺凡鎴愪负绠$悊鍛�
 15197=纭畾瑕佺Щ闄よ瀹跺涵鎴愬憳鍚楋紵
 15198=鍒锋柊
 15199=鏈垎閰嶅尯鍩�
@@ -1014,7 +1028,7 @@
 15345=鏈缃�
 15346=娣诲姞瀵嗙爜
 15347=璇疯緭鍏ョ敤鎴峰瘑鐮�
-15348=鐢ㄦ埛瀵嗙爜宸叉洿鏂�
+15348=瀹夐槻瀵嗙爜璁剧疆鎴愬姛
 15349=淇敼鐢ㄦ埛瀵嗙爜澶辫触
 15350=鐢ㄦ埛瀵嗙爜鏁板凡婊�(鏈�澶�4涓�)
 15351=鐢ㄦ埛瀵嗙爜閲嶅
@@ -1442,7 +1456,7 @@
 15800=鏂瑰悜
 15801=闄愪綅
 15802=寮�闄愪綅
-15803=鍏抽檺浣�
+15803=鍚堥檺浣�
 15804=閲嶇疆鐢垫満
 15805=閲嶇疆鐢垫満灏嗗垵濮嬪寲{0}鏂瑰悜涓庨檺浣嶈缃紝纭缁х画锛�
 15806=閫夋嫨鏂瑰悜
@@ -1482,8 +1496,8 @@
 15840=2.鍚屾椂闇�纭搴旂敤鐨勫畾浣嶆潈闄愭湭琚叧闂�傝嫢鎵嬪姩鍏抽棴浜嗗簲鐢ㄥ畾浣嶆潈闄愬彲鑳藉鑷存棤娉曡嚜鎷斿彂鐜拌澶囥��
 15841=3.濡傛灉浠嶅缁堟棤娉曞彂鐜拌澶囷紝鍙兘鍥犱负璁惧宸茬粡琚粬浜虹粦瀹氫簡銆傚鏋滀綘骞朵笉娓呮鏄皝杩炴帴浜嗚澶囷紝鍙互杩涜閲嶇疆锛岄噸缃柟寮忚鏌ラ槄璇存槑涔︼紝鏍规嵁鎸囧紩鎿嶄綔銆�
 15842=鎴块棿鍒楄〃
-15843=杩樻病鏈夋坊鍔犲満鏅摝
-15844=杩樻病鏈夋坊鍔犺澶囧摝
+15843=杩樻病鏈夋坊鍔犲満鏅�
+15844=杩樻病鏈夋坊鍔犺澶�
 15845=鎴块棿鍚嶇О宸茬粡瀛樺湪
 15846=瀹ゅ唴鏈鸿缃�
 15847=绌鸿皟妯″紡
@@ -1498,6 +1512,45 @@
 15856=璇锋敞鎰忔竻娲楁护缃戝摝
 15857=鏃犲彲鍏变韩鐨勫満鏅�
 15858=鏃犲彲鍏变韩鐨勮澶�
+15859=鏃犲彲鍙栨秷鍏变韩鐨勫満鏅�
+15860=鏃犲彲鍙栨秷鍏变韩鐨勮澶�
+15861=纭鍒犻櫎閫夋嫨鐨勫叡浜満鏅拰鍔熻兘锛�
+15862=纭畾鍒涘缓銆屽畨闃层�嶆嵎寰勫埌涓婚〉锛�
+15863=纭畾鍙栨秷涓婚〉鐨勩�屽畨闃层�嶆嵎寰勶紵
+15864=璇峰墠寰�涓汉涓績{0}璁剧疆浜屾瀹夊叏楠岃瘉鏂瑰紡
+15865=24灏忔椂闃插尯涓嶅彈甯冮槻銆佹挙闃插奖鍝峽0}闃插尯琚Е鍙戠珛鍗虫姤璀0}涓�鑸缃儫闆俱�佺噧姘斻�佹按娴哥瓑浼犳劅鍣�
+15866=鍦ㄧ瀹跺竷闃叉ā寮忎笅锛屽唴閮ㄩ槻鍖轰紶鎰熷櫒瑙﹀彂{0}绔嬪嵆鎶ヨ銆傚湪鍦ㄥ甯冮槻妯″紡涓媨0}鍐呴儴闃插尯鎵�鏈変紶鎰熷櫒涓嶅弬涓庢姤璀�
+15867=绂诲甯冮槻妯″紡鎴栧湪瀹跺竷闃叉ā寮忎笅{0}鍛ㄧ晫闃插尯浼犳劅鍣ㄨЕ鍙戠珛鍗虫姤璀�
+15868=鍦ㄥ竷闃插悗绯荤粺鎻愪緵涓�瀹氱殑寤惰繜鏃堕棿銆傚嚭闂ㄦ椂{0}澶栧嚭寤舵椂缁撴潫鍚庯紝绯荤粺瑙﹀彂鐩爣鎶ヨ{0}鍥炲鏃讹紝杩涘叆寤舵椂缁撴潫鍚庯紝绯荤粺瑙﹀彂鐩爣鎶ヨ
+15869=闈欓煶闃插尯涓嶅彈甯冮槻銆佹挙闃插奖鍝嶏紝闃插尯琚珄0}瑙﹀彂绔嬪嵆鎶ヨ锛岄�氬父涓嶄骇鐢熷0闊虫垨{0}鍏朵粬鎻愮ず锛屽彧鍙戦�佷俊鎭埌鐗瑰畾鐨勬帴鏀惰��
+15870=杩樻病鏈夎缃紶鎰熷櫒
+15871=杩樻病鏈夎缃姤璀︾洰鏍�
+15872=鏃犳硶璇嗗埆鐨勮澶�
+15873=鎷嶇収
+15874=浠庣浉鍐屼腑閫夋嫨
+15875=鍑虹幇鏈煡閿欒
+15876=璇疯緭鍏ユ墜鍔�
+15877=璇峰啀娆¤緭鍏ユ墜鍔�
+15878=鏇存敼鎵嬪娍锛岃杈撳叆鎵嬪娍
+15879=纭鎵嬪娍閿欒锛岃閲嶆柊璁剧疆
+15880=鎵嬪娍閿欒锛岃閲嶆柊杈撳叆
+15881=鎵嬪娍瀵嗙爜闀垮害蹇呴』澶т簬{0}
+15882=蹇樿鎵嬪娍锛�
+15883=鐢ㄤ簬鍦ㄥ甯冮槻銆佺瀹跺竷闃层�佹挙闃叉搷浣�
+15884=杈撳叆璇ュ瘑鐮侊紝绔嬪嵆閫氱煡浠栦汉
+15885=鍙栨秷鎴愬姛
+15886=璇ョ鐞嗗憳宸叉垚涓烘垚鍛�
+15887=璇疯緭鍏ユ柊鎵嬪娍
+15888=鐢ㄦ埛瀵嗙爜
+15889=褰撳墠浣跨敤瀵嗙爜
+15890=澶囨敞淇℃伅
+15891=璇疯緭鍏ュ娉ㄥ唴瀹�
+15892=淇敼澶囨敞淇℃伅鎴愬姛!
+15893=杈撳叆鍐呭杩囬暱,鏈�澶0}瀛楄妭
+15894=淇敼澶囨敞淇℃伅澶辫触
+15895=璇疯緭鍏ユ柊鑳佽揩瀵嗙爜
+15896=璇烽噸澶嶈緭鍏ユ柊鑳佽揩瀵嗙爜
+15897=鑳佽揩瀵嗙爜璁剧疆鎴愬姛
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄帴鍙g殑杩斿洖淇℃伅缈昏瘧,浠�18000寮�濮嬧槄鈽呪槄鈽�
 18004=鎸囧畾缃戝叧宸茬粡琚粦瀹�
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Account/QQ.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Account/QQ.png
new file mode 100755
index 0000000..1f731ad
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Account/QQ.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Account/Wechat.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Account/Wechat.png
new file mode 100755
index 0000000..d8eec5a
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Account/Wechat.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditioner.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditioner.png
index a2b3cf4..b084aab 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditioner.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditioner.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerZbGateway.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerZbGateway.png
index a2b3cf4..b084aab 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerZbGateway.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirConditionerZbGateway.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitch.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitch.png
index 5e8f7c0..f0b894e 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitch.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitch.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchCloudContr.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchCloudContr.png
index 5e8f7c0..f0b894e 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchCloudContr.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/AirSwitchCloudContr.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanel.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanel.png
index b1f5267..4dbdaca 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanel.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanel.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFour.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFour.png
index b1f5267..4dbdaca 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFour.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelFour.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelOne.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelOne.png
index 45eed0c..f4ca2c9 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelOne.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelOne.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelThree.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelThree.png
index 0f13687..047660c 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelThree.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelThree.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelTwo.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelTwo.png
index 592a43b..7aaeb7c 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelTwo.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ButtonPanelTwo.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ColorLight.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ColorLight.png
index ad8aa4b..78f6bcc 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ColorLight.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ColorLight.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Curtain.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Curtain.png
index 3f58fd5..c8b49d3 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Curtain.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Curtain.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainAutoOpen.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainAutoOpen.png
index 3f58fd5..c8b49d3 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainAutoOpen.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainAutoOpen.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSiphonate.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSiphonate.png
index 3f58fd5..c8b49d3 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSiphonate.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/CurtainSiphonate.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLight.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLight.png
index 2acb7b1..8eec2e6 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLight.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLight.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightOneLoad.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightOneLoad.png
index 2acb7b1..8eec2e6 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightOneLoad.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DimmableLightOneLoad.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DryContact.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DryContact.png
index 5768b92..7b9ca4d 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DryContact.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/DryContact.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocks.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocks.png
index 022adfd..25a2697 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocks.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocks.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksH06C.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksH06C.png
index 022adfd..25a2697 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksH06C.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/IntelligentLocksH06C.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Light.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Light.png
index ad8aa4b..78f6bcc 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Light.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Light.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Relay.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Relay.png
index 0d925dc..a63d393 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Relay.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Relay.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayEpoint.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayEpoint.png
index f4bd325..1447780 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayEpoint.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayEpoint.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayThreeLoad.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayThreeLoad.png
index 0d925dc..a63d393 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayThreeLoad.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RelayThreeLoad.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterZigbee.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterZigbee.png
index 36983c3..04711b6 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterZigbee.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/RepeaterZigbee.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Sensor.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Sensor.png
index 3378eb3..80a9bcb 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Sensor.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Sensor.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCarbonMonoxide.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCarbonMonoxide.png
index 257914b..7d014fa 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCarbonMonoxide.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorCarbonMonoxide.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorDoorWindow.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorDoorWindow.png
index fcdd1c2..5d8e8f5 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorDoorWindow.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorDoorWindow.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorFire.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorFire.png
index 72aa396..20a2127 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorFire.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorFire.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorHumidity.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorHumidity.png
index 6a57353..966153e 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorHumidity.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorHumidity.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorInfrared.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorInfrared.png
index 50b6ef0..48718b3 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorInfrared.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorInfrared.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPir.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPir.png
index ad9e3b4..8b3140e 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPir.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorPir.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperature.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperature.png
index dc6aba3..54cf106 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperature.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorTemperature.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorWater.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorWater.png
index 55110d5..94ba0b8 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorWater.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/SensorWater.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Socket1.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Socket1.png
index 651eb85..d9f5b51 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Socket1.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Socket1.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Switch.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Switch.png
index 5e8f7c0..3267570 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Switch.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/Switch.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/ThirdPartyDevice.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDevice.png
similarity index 100%
rename from ZigbeeApp/GateWay.Droid/Assets/Phone/Item/ThirdPartyDevice.png
rename to ZigbeeApp/GateWay.Droid/Assets/Phone/Device/ThirdPartyDevice.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/GarrisonList.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/GarrisonList.png
index 247af21..37746f1 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/GarrisonList.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/GarrisonList.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/GarrisonListSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/GarrisonListSelected.png
index 0f48c11..3ebd863 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/GarrisonListSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/GarrisonListSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/HadAuthority.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/HadAuthority.png
new file mode 100755
index 0000000..6710a03
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/HadAuthority.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/PhoneBook.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/PhoneBook.png
new file mode 100755
index 0000000..49441f6
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/PhoneBook.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/PswSettion.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/PswSettion.png
index 3ccfa5d..c622dfe 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/PswSettion.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/PswSettion.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/PswSettionSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/PswSettionSelected.png
index a7adde5..5692b8e 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/PswSettionSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/PswSettionSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/Scene.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/Scene.png
deleted file mode 100755
index 48b2002..0000000
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Item/Scene.png
+++ /dev/null
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Close.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Close.png
new file mode 100755
index 0000000..4b365d8
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Close.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/CloseSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/CloseSelected.png
new file mode 100755
index 0000000..a0d290e
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/CloseSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Down.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Down.png
new file mode 100755
index 0000000..b73d7c7
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Down.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/DownSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/DownSelected.png
new file mode 100755
index 0000000..da3c7d3
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/DownSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Open.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Open.png
new file mode 100755
index 0000000..b1f89c6
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Open.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/OpenSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/OpenSelected.png
new file mode 100755
index 0000000..df795b7
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/OpenSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Stop.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Stop.png
new file mode 100755
index 0000000..96010a1
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Stop.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/StopSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/StopSelected.png
new file mode 100755
index 0000000..d4eb1da
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/StopSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Up.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Up.png
new file mode 100755
index 0000000..34042d0
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/Up.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/UpSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/UpSelected.png
new file mode 100755
index 0000000..5d5409c
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/RollerShade/UpSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionAtHome.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionAtHome.png
index 326e682..5368885 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionAtHome.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionAtHome.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionAtHomeSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionAtHomeSelected.png
index 5370f12..f67de56 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionAtHomeSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionAtHomeSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionRemoveHome.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionRemoveHome.png
index 3c22c7d..d7844be 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionRemoveHome.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionRemoveHome.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionRemoveHomeSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionRemoveHomeSelected.png
index f908612..8e78586 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionRemoveHomeSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/ProtectionRemoveHomeSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/SafeguardPasswordGround.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/SafeguardPasswordGround.png
new file mode 100755
index 0000000..8d81e26
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/SafeguardPasswordGround.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/SafetyShortcut.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/SafetyShortcut.png
new file mode 100755
index 0000000..f413ed8
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/SafetyShortcut.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/SafetyShortcutSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/SafetyShortcutSelected.png
new file mode 100755
index 0000000..a8e8568
--- /dev/null
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/SafetyShortcutSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/WithdrawGarrison.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/WithdrawGarrison.png
index 7d5ef6b..f636537 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/WithdrawGarrison.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/WithdrawGarrison.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/WithdrawGarrisonSelected.png b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/WithdrawGarrisonSelected.png
index f80d65d..d422c7e 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/WithdrawGarrisonSelected.png
+++ b/ZigbeeApp/GateWay.Droid/Assets/Phone/Safeguard/WithdrawGarrisonSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj b/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
index 2f9c150..a76c5db 100755
--- a/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
+++ b/ZigbeeApp/GateWay.Droid/GateWay.Droid.csproj
@@ -92,8 +92,14 @@
     <Reference Include="MQTTnet.Core, Version=2.4.0.0, Culture=neutral, processorArchitecture=MSIL">
       <HintPath>..\packages\MQTTnet.2.4.0\lib\netstandard1.3\MQTTnet.Core.dll</HintPath>
     </Reference>
+    <Reference Include="Shared.Droid">
+      <HintPath>..\Shared\DLL\Android\Shared.Droid.dll</HintPath>
+    </Reference>
+    <Reference Include="Shared.Droid.HDLWidget">
+      <HintPath>..\Shared\DLL\Android\Shared.Droid.HDLWidget.dll</HintPath>
+    </Reference>
     <Reference Include="Shared.Droid.TouchID">
-      <HintPath>..\Shared\DLL\Shared.Droid.TouchID.dll</HintPath>
+      <HintPath>..\Shared\DLL\Android\Shared.Droid.TouchID.dll</HintPath>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.IO.Compression" />
@@ -137,38 +143,44 @@
     <Reference Include="Microsoft.AppCenter.Analytics">
       <HintPath>..\packages\Microsoft.AppCenter.Analytics.1.14.0\lib\MonoAndroid403\Microsoft.AppCenter.Analytics.dll</HintPath>
     </Reference>
-    <Reference Include="Shared.Droid.HDLWidget">
-      <HintPath>..\Shared\DLL\Shared.Droid.HDLWidget.dll</HintPath>
+    <Reference Include="Xamarin.Android.Arch.Core.Common">
+      <HintPath>..\Shared\DLL\Android\Xamarin.Android.Arch.Core.Common.dll</HintPath>
     </Reference>
-    <Reference Include="Xamarin.Android.Support.Annotations">
-      <HintPath>..\packages\Xamarin.Android.Support.Annotations.26.0.2\lib\MonoAndroid80\Xamarin.Android.Support.Annotations.dll</HintPath>
+    <Reference Include="Xamarin.Android.Arch.Lifecycle.Common">
+      <HintPath>..\Shared\DLL\Android\Xamarin.Android.Arch.Lifecycle.Common.dll</HintPath>
     </Reference>
-    <Reference Include="Xamarin.Android.Support.Compat">
-      <HintPath>..\packages\Xamarin.Android.Support.Compat.26.0.2\lib\MonoAndroid80\Xamarin.Android.Support.Compat.dll</HintPath>
-    </Reference>
-    <Reference Include="Xamarin.Android.Support.Core.UI">
-      <HintPath>..\packages\Xamarin.Android.Support.Core.UI.26.0.2\lib\MonoAndroid80\Xamarin.Android.Support.Core.UI.dll</HintPath>
-    </Reference>
-    <Reference Include="Xamarin.Android.Support.Core.Utils">
-      <HintPath>..\packages\Xamarin.Android.Support.Core.Utils.26.0.2\lib\MonoAndroid80\Xamarin.Android.Support.Core.Utils.dll</HintPath>
-    </Reference>
-    <Reference Include="Xamarin.Android.Support.Media.Compat">
-      <HintPath>..\packages\Xamarin.Android.Support.Media.Compat.26.0.2\lib\MonoAndroid80\Xamarin.Android.Support.Media.Compat.dll</HintPath>
-    </Reference>
-    <Reference Include="Xamarin.Android.Support.Fragment">
-      <HintPath>..\packages\Xamarin.Android.Support.Fragment.26.0.2\lib\MonoAndroid80\Xamarin.Android.Support.Fragment.dll</HintPath>
-    </Reference>
-    <Reference Include="Xamarin.Android.Support.v4">
-      <HintPath>..\packages\Xamarin.Android.Support.v4.26.0.2\lib\MonoAndroid80\Xamarin.Android.Support.v4.dll</HintPath>
-    </Reference>
-    <Reference Include="Xamarin.Android.Support.Vector.Drawable">
-      <HintPath>..\packages\Xamarin.Android.Support.Vector.Drawable.26.0.2\lib\MonoAndroid80\Xamarin.Android.Support.Vector.Drawable.dll</HintPath>
+    <Reference Include="Xamarin.Android.Arch.Lifecycle.Runtime">
+      <HintPath>..\Shared\DLL\Android\Xamarin.Android.Arch.Lifecycle.Runtime.dll</HintPath>
     </Reference>
     <Reference Include="Xamarin.Android.Support.Animated.Vector.Drawable">
-      <HintPath>..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.26.0.2\lib\MonoAndroid80\Xamarin.Android.Support.Animated.Vector.Drawable.dll</HintPath>
+      <HintPath>..\Shared\DLL\Android\Xamarin.Android.Support.Animated.Vector.Drawable.dll</HintPath>
     </Reference>
-    <Reference Include="Shared.Droid">
-      <HintPath>..\Shared\DLL\Shared.Droid.dll</HintPath>
+    <Reference Include="Xamarin.Android.Support.Annotations">
+      <HintPath>..\Shared\DLL\Android\Xamarin.Android.Support.Annotations.dll</HintPath>
+    </Reference>
+    <Reference Include="Xamarin.Android.Support.Compat">
+      <HintPath>..\Shared\DLL\Android\Xamarin.Android.Support.Compat.dll</HintPath>
+    </Reference>
+    <Reference Include="Xamarin.Android.Support.Core.UI">
+      <HintPath>..\Shared\DLL\Android\Xamarin.Android.Support.Core.UI.dll</HintPath>
+    </Reference>
+    <Reference Include="Xamarin.Android.Support.Core.Utils">
+      <HintPath>..\Shared\DLL\Android\Xamarin.Android.Support.Core.Utils.dll</HintPath>
+    </Reference>
+    <Reference Include="Xamarin.Android.Support.Fragment">
+      <HintPath>..\Shared\DLL\Android\Xamarin.Android.Support.Fragment.dll</HintPath>
+    </Reference>
+    <Reference Include="Xamarin.Android.Support.Media.Compat">
+      <HintPath>..\Shared\DLL\Android\Xamarin.Android.Support.Media.Compat.dll</HintPath>
+    </Reference>
+    <Reference Include="Xamarin.Android.Support.v4">
+      <HintPath>..\Shared\DLL\Android\Xamarin.Android.Support.v4.dll</HintPath>
+    </Reference>
+    <Reference Include="Xamarin.Android.Support.v7.AppCompat">
+      <HintPath>..\Shared\DLL\Android\Xamarin.Android.Support.v7.AppCompat.dll</HintPath>
+    </Reference>
+    <Reference Include="Xamarin.Android.Support.Vector.Drawable">
+      <HintPath>..\Shared\DLL\Android\Xamarin.Android.Support.Vector.Drawable.dll</HintPath>
     </Reference>
   </ItemGroup>
   <ItemGroup>
@@ -481,7 +493,6 @@
     <AndroidAsset Include="Assets\Phone\Item\RightIcon.png" />
     <AndroidAsset Include="Assets\Phone\Item\Room.png" />
     <AndroidAsset Include="Assets\Phone\Item\RoomIcon.png" />
-    <AndroidAsset Include="Assets\Phone\Item\Scene.png" />
     <AndroidAsset Include="Assets\Phone\Item\SceneCard.png" />
     <AndroidAsset Include="Assets\Phone\Item\SceneFunctionBG.png" />
     <AndroidAsset Include="Assets\Phone\Item\ScreeningType.png" />
@@ -495,7 +506,6 @@
     <AndroidAsset Include="Assets\Phone\Item\Switch2Selected.png" />
     <AndroidAsset Include="Assets\Phone\Item\SwitchSelected.png" />
     <AndroidAsset Include="Assets\Phone\Item\SwitchSelected1.png" />
-    <AndroidAsset Include="Assets\Phone\Item\ThirdPartyDevice.png" />
     <AndroidAsset Include="Assets\Phone\Item\Time.png" />
     <AndroidAsset Include="Assets\Phone\Item\Timer.png" />
     <AndroidAsset Include="Assets\Phone\Item\Tips.png" />
@@ -968,6 +978,60 @@
   <ItemGroup>
     <AndroidAsset Include="Assets\Phone\Scene\Selected.png" />
   </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Safeguard\SafetyShortcut.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Safeguard\SafetyShortcutSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Device\ThirdPartyDevice.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Account\QQ.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Account\Wechat.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Item\HadAuthority.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Safeguard\SafeguardPasswordGround.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\Item\PhoneBook.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\RollerShade\Close.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\RollerShade\CloseSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\RollerShade\Down.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\RollerShade\DownSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\RollerShade\Open.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\RollerShade\OpenSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\RollerShade\Stop.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\RollerShade\StopSelected.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\RollerShade\Up.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <AndroidAsset Include="Assets\Phone\RollerShade\UpSelected.png" />
+  </ItemGroup>
   <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" />
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
   <Import Project="..\packages\Xamarin.Android.Support.Annotations.26.0.2\build\MonoAndroid80\Xamarin.Android.Support.Annotations.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Annotations.26.0.2\build\MonoAndroid80\Xamarin.Android.Support.Annotations.targets')" />
diff --git a/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml b/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml
index 2e3097c..353ac42 100755
--- a/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml
+++ b/ZigbeeApp/GateWay.Droid/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.home" android:versionCode="2019102801" android:installLocation="auto" android:versionName="1.0.19102801">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.home" android:versionCode="2019103101" android:installLocation="auto" android:versionName="1.0.19103101">
 	<uses-sdk android:minSdkVersion="26" android:targetSdkVersion="26" />
 	<permission android:name="com.hdl.home.permission.JPUSH_MESSAGE" android:protectionLevel="signature" />
 	<uses-permission android:name="android.permission.WAKE_LOCK" />
diff --git a/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs b/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
index e731163..6d6037a 100755
--- a/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
+++ b/ZigbeeApp/GateWay.Droid/Resources/Resource.designer.cs
@@ -32,184 +32,220 @@
 		{
 			
 			// aapt resource value: 0x7F010000
-			public const int fingerprint_draw_off_animation_interpolator_0 = 2130771968;
+			public const int abc_fade_in = 2130771968;
 			
 			// aapt resource value: 0x7F010001
-			public const int fingerprint_draw_off_animation_interpolator_1 = 2130771969;
+			public const int abc_fade_out = 2130771969;
 			
 			// aapt resource value: 0x7F010002
-			public const int fingerprint_draw_off_ridge_1_path_animation = 2130771970;
+			public const int abc_grow_fade_in_from_bottom = 2130771970;
 			
 			// aapt resource value: 0x7F010003
-			public const int fingerprint_draw_off_ridge_2_path_animation = 2130771971;
+			public const int abc_popup_enter = 2130771971;
 			
 			// aapt resource value: 0x7F010004
-			public const int fingerprint_draw_off_ridge_5_path_animation = 2130771972;
+			public const int abc_popup_exit = 2130771972;
 			
 			// aapt resource value: 0x7F010005
-			public const int fingerprint_draw_off_ridge_6_path_animation = 2130771973;
+			public const int abc_shrink_fade_out_from_bottom = 2130771973;
 			
 			// aapt resource value: 0x7F010006
-			public const int fingerprint_draw_off_ridge_7_path_animation = 2130771974;
+			public const int abc_slide_in_bottom = 2130771974;
 			
 			// aapt resource value: 0x7F010007
-			public const int fingerprint_draw_on_animation_interpolator_0 = 2130771975;
+			public const int abc_slide_in_top = 2130771975;
 			
 			// aapt resource value: 0x7F010008
-			public const int fingerprint_draw_on_animation_interpolator_1 = 2130771976;
+			public const int abc_slide_out_bottom = 2130771976;
 			
 			// aapt resource value: 0x7F010009
-			public const int fingerprint_draw_on_ridge_1_path_animation = 2130771977;
+			public const int abc_slide_out_top = 2130771977;
 			
 			// aapt resource value: 0x7F01000A
-			public const int fingerprint_draw_on_ridge_2_path_animation = 2130771978;
+			public const int fingerprint_draw_off_animation_interpolator_0 = 2130771978;
 			
 			// aapt resource value: 0x7F01000B
-			public const int fingerprint_draw_on_ridge_5_path_animation = 2130771979;
+			public const int fingerprint_draw_off_animation_interpolator_1 = 2130771979;
 			
 			// aapt resource value: 0x7F01000C
-			public const int fingerprint_draw_on_ridge_6_path_animation = 2130771980;
+			public const int fingerprint_draw_off_ridge_1_path_animation = 2130771980;
 			
 			// aapt resource value: 0x7F01000D
-			public const int fingerprint_draw_on_ridge_7_path_animation = 2130771981;
+			public const int fingerprint_draw_off_ridge_2_path_animation = 2130771981;
 			
 			// aapt resource value: 0x7F01000E
-			public const int fingerprint_error_state_to_fp_animation_interpolator_0 = 2130771982;
+			public const int fingerprint_draw_off_ridge_5_path_animation = 2130771982;
 			
 			// aapt resource value: 0x7F01000F
-			public const int fingerprint_error_state_to_fp_animation_interpolator_1 = 2130771983;
+			public const int fingerprint_draw_off_ridge_6_path_animation = 2130771983;
 			
 			// aapt resource value: 0x7F010010
-			public const int fingerprint_error_state_to_fp_animation_interpolator_2 = 2130771984;
+			public const int fingerprint_draw_off_ridge_7_path_animation = 2130771984;
 			
 			// aapt resource value: 0x7F010011
-			public const int fingerprint_error_state_to_fp_animation_interpolator_3 = 2130771985;
+			public const int fingerprint_draw_on_animation_interpolator_0 = 2130771985;
 			
 			// aapt resource value: 0x7F010012
-			public const int fingerprint_error_state_to_fp_animation_interpolator_4 = 2130771986;
+			public const int fingerprint_draw_on_animation_interpolator_1 = 2130771986;
 			
 			// aapt resource value: 0x7F010013
-			public const int fingerprint_error_state_to_fp_animation_interpolator_5 = 2130771987;
+			public const int fingerprint_draw_on_ridge_1_path_animation = 2130771987;
 			
 			// aapt resource value: 0x7F010014
-			public const int fingerprint_error_state_to_fp_group_1_animation = 2130771988;
+			public const int fingerprint_draw_on_ridge_2_path_animation = 2130771988;
 			
 			// aapt resource value: 0x7F010015
-			public const int fingerprint_error_state_to_fp_group_2_animation = 2130771989;
+			public const int fingerprint_draw_on_ridge_5_path_animation = 2130771989;
 			
 			// aapt resource value: 0x7F010016
-			public const int fingerprint_error_state_to_fp_path_1_animation = 2130771990;
+			public const int fingerprint_draw_on_ridge_6_path_animation = 2130771990;
 			
 			// aapt resource value: 0x7F010017
-			public const int fingerprint_error_state_to_fp_path_2_animation = 2130771991;
+			public const int fingerprint_draw_on_ridge_7_path_animation = 2130771991;
 			
 			// aapt resource value: 0x7F010018
-			public const int fingerprint_error_state_to_fp_path_3_animation = 2130771992;
+			public const int fingerprint_error_state_to_fp_animation_interpolator_0 = 2130771992;
 			
 			// aapt resource value: 0x7F010019
-			public const int fingerprint_error_state_to_fp_ridge_1_path_animation = 2130771993;
+			public const int fingerprint_error_state_to_fp_animation_interpolator_1 = 2130771993;
 			
 			// aapt resource value: 0x7F01001A
-			public const int fingerprint_error_state_to_fp_ridge_2_path_animation = 2130771994;
+			public const int fingerprint_error_state_to_fp_animation_interpolator_2 = 2130771994;
 			
 			// aapt resource value: 0x7F01001B
-			public const int fingerprint_error_state_to_fp_ridge_5_path_animation = 2130771995;
+			public const int fingerprint_error_state_to_fp_animation_interpolator_3 = 2130771995;
 			
 			// aapt resource value: 0x7F01001C
-			public const int fingerprint_error_state_to_fp_ridge_6_path_animation = 2130771996;
+			public const int fingerprint_error_state_to_fp_animation_interpolator_4 = 2130771996;
 			
 			// aapt resource value: 0x7F01001D
-			public const int fingerprint_error_state_to_fp_ridge_7_path_animation = 2130771997;
+			public const int fingerprint_error_state_to_fp_animation_interpolator_5 = 2130771997;
 			
 			// aapt resource value: 0x7F01001E
-			public const int fingerprint_error_state_to_fp_white_fingerprint_ridges_animation = 2130771998;
+			public const int fingerprint_error_state_to_fp_group_1_animation = 2130771998;
 			
 			// aapt resource value: 0x7F01001F
-			public const int fingerprint_fp_to_error_state_animation_interpolator_0 = 2130771999;
+			public const int fingerprint_error_state_to_fp_group_2_animation = 2130771999;
 			
 			// aapt resource value: 0x7F010020
-			public const int fingerprint_fp_to_error_state_animation_interpolator_1 = 2130772000;
+			public const int fingerprint_error_state_to_fp_path_1_animation = 2130772000;
 			
 			// aapt resource value: 0x7F010021
-			public const int fingerprint_fp_to_error_state_animation_interpolator_2 = 2130772001;
+			public const int fingerprint_error_state_to_fp_path_2_animation = 2130772001;
 			
 			// aapt resource value: 0x7F010022
-			public const int fingerprint_fp_to_error_state_animation_interpolator_3 = 2130772002;
+			public const int fingerprint_error_state_to_fp_path_3_animation = 2130772002;
 			
 			// aapt resource value: 0x7F010023
-			public const int fingerprint_fp_to_error_state_animation_interpolator_4 = 2130772003;
+			public const int fingerprint_error_state_to_fp_ridge_1_path_animation = 2130772003;
 			
 			// aapt resource value: 0x7F010024
-			public const int fingerprint_fp_to_error_state_animation_interpolator_5 = 2130772004;
+			public const int fingerprint_error_state_to_fp_ridge_2_path_animation = 2130772004;
 			
 			// aapt resource value: 0x7F010025
-			public const int fingerprint_fp_to_error_state_fingerprint_ridges_animation = 2130772005;
+			public const int fingerprint_error_state_to_fp_ridge_5_path_animation = 2130772005;
 			
 			// aapt resource value: 0x7F010026
-			public const int fingerprint_fp_to_error_state_group_1_animation = 2130772006;
+			public const int fingerprint_error_state_to_fp_ridge_6_path_animation = 2130772006;
 			
 			// aapt resource value: 0x7F010027
-			public const int fingerprint_fp_to_error_state_group_2_animation = 2130772007;
+			public const int fingerprint_error_state_to_fp_ridge_7_path_animation = 2130772007;
 			
 			// aapt resource value: 0x7F010028
-			public const int fingerprint_fp_to_error_state_path_1_animation = 2130772008;
+			public const int fingerprint_error_state_to_fp_white_fingerprint_ridges_animation = 2130772008;
 			
 			// aapt resource value: 0x7F010029
-			public const int fingerprint_fp_to_error_state_path_2_animation = 2130772009;
+			public const int fingerprint_fp_to_error_state_animation_interpolator_0 = 2130772009;
 			
 			// aapt resource value: 0x7F01002A
-			public const int fingerprint_fp_to_error_state_path_3_animation = 2130772010;
+			public const int fingerprint_fp_to_error_state_animation_interpolator_1 = 2130772010;
 			
 			// aapt resource value: 0x7F01002B
-			public const int fingerprint_fp_to_error_state_ridge_1_path_0_animation = 2130772011;
+			public const int fingerprint_fp_to_error_state_animation_interpolator_2 = 2130772011;
 			
 			// aapt resource value: 0x7F01002C
-			public const int fingerprint_fp_to_error_state_ridge_1_path_animation = 2130772012;
+			public const int fingerprint_fp_to_error_state_animation_interpolator_3 = 2130772012;
 			
 			// aapt resource value: 0x7F01002D
-			public const int fingerprint_fp_to_error_state_ridge_2_path_0_animation = 2130772013;
+			public const int fingerprint_fp_to_error_state_animation_interpolator_4 = 2130772013;
 			
 			// aapt resource value: 0x7F01002E
-			public const int fingerprint_fp_to_error_state_ridge_2_path_animation = 2130772014;
+			public const int fingerprint_fp_to_error_state_animation_interpolator_5 = 2130772014;
 			
 			// aapt resource value: 0x7F01002F
-			public const int fingerprint_fp_to_error_state_ridge_5_path_0_animation = 2130772015;
+			public const int fingerprint_fp_to_error_state_fingerprint_ridges_animation = 2130772015;
 			
 			// aapt resource value: 0x7F010030
-			public const int fingerprint_fp_to_error_state_ridge_5_path_animation = 2130772016;
+			public const int fingerprint_fp_to_error_state_group_1_animation = 2130772016;
 			
 			// aapt resource value: 0x7F010031
-			public const int fingerprint_fp_to_error_state_ridge_6_path_0_animation = 2130772017;
+			public const int fingerprint_fp_to_error_state_group_2_animation = 2130772017;
 			
 			// aapt resource value: 0x7F010032
-			public const int fingerprint_fp_to_error_state_ridge_6_path_animation = 2130772018;
+			public const int fingerprint_fp_to_error_state_path_1_animation = 2130772018;
 			
 			// aapt resource value: 0x7F010033
-			public const int fingerprint_fp_to_error_state_ridge_7_path_0_animation = 2130772019;
+			public const int fingerprint_fp_to_error_state_path_2_animation = 2130772019;
 			
 			// aapt resource value: 0x7F010034
-			public const int fingerprint_fp_to_error_state_ridge_7_path_animation = 2130772020;
+			public const int fingerprint_fp_to_error_state_path_3_animation = 2130772020;
 			
 			// aapt resource value: 0x7F010035
-			public const int fingerprint_fp_to_error_state_white_fingerprint_ridges_animation = 2130772021;
+			public const int fingerprint_fp_to_error_state_ridge_1_path_0_animation = 2130772021;
 			
 			// aapt resource value: 0x7F010036
-			public const int move_in = 2130772022;
+			public const int fingerprint_fp_to_error_state_ridge_1_path_animation = 2130772022;
 			
 			// aapt resource value: 0x7F010037
-			public const int move_out = 2130772023;
+			public const int fingerprint_fp_to_error_state_ridge_2_path_0_animation = 2130772023;
 			
 			// aapt resource value: 0x7F010038
-			public const int pickerview_dialog_scale_in = 2130772024;
+			public const int fingerprint_fp_to_error_state_ridge_2_path_animation = 2130772024;
 			
 			// aapt resource value: 0x7F010039
-			public const int pickerview_dialog_scale_out = 2130772025;
+			public const int fingerprint_fp_to_error_state_ridge_5_path_0_animation = 2130772025;
 			
 			// aapt resource value: 0x7F01003A
-			public const int pickerview_slide_in_bottom = 2130772026;
+			public const int fingerprint_fp_to_error_state_ridge_5_path_animation = 2130772026;
 			
 			// aapt resource value: 0x7F01003B
-			public const int pickerview_slide_out_bottom = 2130772027;
+			public const int fingerprint_fp_to_error_state_ridge_6_path_0_animation = 2130772027;
+			
+			// aapt resource value: 0x7F01003C
+			public const int fingerprint_fp_to_error_state_ridge_6_path_animation = 2130772028;
+			
+			// aapt resource value: 0x7F01003D
+			public const int fingerprint_fp_to_error_state_ridge_7_path_0_animation = 2130772029;
+			
+			// aapt resource value: 0x7F01003E
+			public const int fingerprint_fp_to_error_state_ridge_7_path_animation = 2130772030;
+			
+			// aapt resource value: 0x7F01003F
+			public const int fingerprint_fp_to_error_state_white_fingerprint_ridges_animation = 2130772031;
+			
+			// aapt resource value: 0x7F010040
+			public const int move_in = 2130772032;
+			
+			// aapt resource value: 0x7F010041
+			public const int move_out = 2130772033;
+			
+			// aapt resource value: 0x7F010042
+			public const int pickerview_dialog_scale_in = 2130772034;
+			
+			// aapt resource value: 0x7F010043
+			public const int pickerview_dialog_scale_out = 2130772035;
+			
+			// aapt resource value: 0x7F010044
+			public const int pickerview_slide_in_bottom = 2130772036;
+			
+			// aapt resource value: 0x7F010045
+			public const int pickerview_slide_out_bottom = 2130772037;
+			
+			// aapt resource value: 0x7F010046
+			public const int tooltip_enter = 2130772038;
+			
+			// aapt resource value: 0x7F010047
+			public const int tooltip_exit = 2130772039;
 			
 			static Animation()
 			{
@@ -241,124 +277,880 @@
 		{
 			
 			// aapt resource value: 0x7F030000
-			public const int arc_border_color = 2130903040;
+			public const int actionBarDivider = 2130903040;
 			
 			// aapt resource value: 0x7F030001
-			public const int arc_border_width = 2130903041;
+			public const int actionBarItemBackground = 2130903041;
 			
 			// aapt resource value: 0x7F030002
-			public const int arc_colors = 2130903042;
+			public const int actionBarPopupTheme = 2130903042;
 			
 			// aapt resource value: 0x7F030003
-			public const int arc_max = 2130903043;
+			public const int actionBarSize = 2130903043;
 			
 			// aapt resource value: 0x7F030004
-			public const int arc_min = 2130903044;
+			public const int actionBarSplitStyle = 2130903044;
 			
 			// aapt resource value: 0x7F030005
-			public const int arc_open_angle = 2130903045;
+			public const int actionBarStyle = 2130903045;
 			
 			// aapt resource value: 0x7F030006
-			public const int arc_progress = 2130903046;
+			public const int actionBarTabBarStyle = 2130903046;
 			
 			// aapt resource value: 0x7F030007
-			public const int arc_progress_bar_color = 2130903047;
+			public const int actionBarTabStyle = 2130903047;
 			
 			// aapt resource value: 0x7F030008
-			public const int arc_progress_bar_text_unit = 2130903048;
+			public const int actionBarTabTextStyle = 2130903048;
 			
 			// aapt resource value: 0x7F030009
-			public const int arc_rotate_angle = 2130903049;
+			public const int actionBarTheme = 2130903049;
 			
 			// aapt resource value: 0x7F03000A
-			public const int arc_shadow_radius = 2130903050;
+			public const int actionBarWidgetTheme = 2130903050;
 			
 			// aapt resource value: 0x7F03000B
-			public const int arc_thumb_color = 2130903051;
+			public const int actionButtonStyle = 2130903051;
 			
 			// aapt resource value: 0x7F03000C
-			public const int arc_thumb_radius = 2130903052;
+			public const int actionDropDownStyle = 2130903052;
 			
 			// aapt resource value: 0x7F03000D
-			public const int arc_thumb_shadow_color = 2130903053;
+			public const int actionLayout = 2130903053;
 			
 			// aapt resource value: 0x7F03000E
-			public const int arc_thumb_shadow_radius = 2130903054;
+			public const int actionMenuTextAppearance = 2130903054;
 			
 			// aapt resource value: 0x7F03000F
-			public const int arc_thumb_width = 2130903055;
+			public const int actionMenuTextColor = 2130903055;
 			
 			// aapt resource value: 0x7F030010
-			public const int arc_width = 2130903056;
+			public const int actionModeBackground = 2130903056;
 			
 			// aapt resource value: 0x7F030011
-			public const int biometricPromptDialogTheme = 2130903057;
+			public const int actionModeCloseButtonStyle = 2130903057;
 			
 			// aapt resource value: 0x7F030012
-			public const int font = 2130903058;
+			public const int actionModeCloseDrawable = 2130903058;
 			
 			// aapt resource value: 0x7F030013
-			public const int fontProviderAuthority = 2130903059;
+			public const int actionModeCopyDrawable = 2130903059;
 			
 			// aapt resource value: 0x7F030014
-			public const int fontProviderCerts = 2130903060;
+			public const int actionModeCutDrawable = 2130903060;
 			
 			// aapt resource value: 0x7F030015
-			public const int fontProviderFetchStrategy = 2130903061;
+			public const int actionModeFindDrawable = 2130903061;
 			
 			// aapt resource value: 0x7F030016
-			public const int fontProviderFetchTimeout = 2130903062;
+			public const int actionModePasteDrawable = 2130903062;
 			
 			// aapt resource value: 0x7F030017
-			public const int fontProviderPackage = 2130903063;
+			public const int actionModePopupWindowStyle = 2130903063;
 			
 			// aapt resource value: 0x7F030018
-			public const int fontProviderQuery = 2130903064;
+			public const int actionModeSelectAllDrawable = 2130903064;
 			
 			// aapt resource value: 0x7F030019
-			public const int fontStyle = 2130903065;
+			public const int actionModeShareDrawable = 2130903065;
 			
 			// aapt resource value: 0x7F03001A
-			public const int fontWeight = 2130903066;
+			public const int actionModeSplitBackground = 2130903066;
 			
 			// aapt resource value: 0x7F03001B
-			public const int hdl_arc_thumb_mode = 2130903067;
+			public const int actionModeStyle = 2130903067;
 			
 			// aapt resource value: 0x7F03001C
-			public const int second_wave_color = 2130903068;
+			public const int actionModeWebSearchDrawable = 2130903068;
 			
 			// aapt resource value: 0x7F03001D
-			public const int wave_bg_color = 2130903069;
+			public const int actionOverflowButtonStyle = 2130903069;
 			
 			// aapt resource value: 0x7F03001E
-			public const int wave_border_color = 2130903070;
+			public const int actionOverflowMenuStyle = 2130903070;
 			
 			// aapt resource value: 0x7F03001F
-			public const int wave_color = 2130903071;
+			public const int actionProviderClass = 2130903071;
 			
 			// aapt resource value: 0x7F030020
-			public const int wave_height = 2130903072;
+			public const int actionViewClass = 2130903072;
 			
 			// aapt resource value: 0x7F030021
-			public const int wave_width = 2130903073;
+			public const int activityChooserViewStyle = 2130903073;
 			
 			// aapt resource value: 0x7F030022
-			public const int wheelview_dividerColor = 2130903074;
+			public const int alertDialogButtonGroupStyle = 2130903074;
 			
 			// aapt resource value: 0x7F030023
-			public const int wheelview_gravity = 2130903075;
+			public const int alertDialogCenterButtons = 2130903075;
 			
 			// aapt resource value: 0x7F030024
-			public const int wheelview_lineSpacingMultiplier = 2130903076;
+			public const int alertDialogStyle = 2130903076;
 			
 			// aapt resource value: 0x7F030025
-			public const int wheelview_textColorCenter = 2130903077;
+			public const int alertDialogTheme = 2130903077;
 			
 			// aapt resource value: 0x7F030026
-			public const int wheelview_textColorOut = 2130903078;
+			public const int allowStacking = 2130903078;
 			
 			// aapt resource value: 0x7F030027
-			public const int wheelview_textSize = 2130903079;
+			public const int alpha = 2130903079;
+			
+			// aapt resource value: 0x7F030028
+			public const int alphabeticModifiers = 2130903080;
+			
+			// aapt resource value: 0x7F030029
+			public const int arc_border_color = 2130903081;
+			
+			// aapt resource value: 0x7F03002A
+			public const int arc_border_width = 2130903082;
+			
+			// aapt resource value: 0x7F03002B
+			public const int arc_colors = 2130903083;
+			
+			// aapt resource value: 0x7F03002C
+			public const int arc_max = 2130903084;
+			
+			// aapt resource value: 0x7F03002D
+			public const int arc_min = 2130903085;
+			
+			// aapt resource value: 0x7F03002E
+			public const int arc_open_angle = 2130903086;
+			
+			// aapt resource value: 0x7F03002F
+			public const int arc_progress = 2130903087;
+			
+			// aapt resource value: 0x7F030030
+			public const int arc_progress_bar_color = 2130903088;
+			
+			// aapt resource value: 0x7F030031
+			public const int arc_progress_bar_text_unit = 2130903089;
+			
+			// aapt resource value: 0x7F030032
+			public const int arc_rotate_angle = 2130903090;
+			
+			// aapt resource value: 0x7F030033
+			public const int arc_shadow_radius = 2130903091;
+			
+			// aapt resource value: 0x7F030034
+			public const int arc_thumb_color = 2130903092;
+			
+			// aapt resource value: 0x7F030035
+			public const int arc_thumb_radius = 2130903093;
+			
+			// aapt resource value: 0x7F030036
+			public const int arc_thumb_shadow_color = 2130903094;
+			
+			// aapt resource value: 0x7F030037
+			public const int arc_thumb_shadow_radius = 2130903095;
+			
+			// aapt resource value: 0x7F030038
+			public const int arc_thumb_width = 2130903096;
+			
+			// aapt resource value: 0x7F030039
+			public const int arc_width = 2130903097;
+			
+			// aapt resource value: 0x7F03003A
+			public const int arrowHeadLength = 2130903098;
+			
+			// aapt resource value: 0x7F03003B
+			public const int arrowShaftLength = 2130903099;
+			
+			// aapt resource value: 0x7F03003C
+			public const int autoCompleteTextViewStyle = 2130903100;
+			
+			// aapt resource value: 0x7F03003D
+			public const int autoSizeMaxTextSize = 2130903101;
+			
+			// aapt resource value: 0x7F03003E
+			public const int autoSizeMinTextSize = 2130903102;
+			
+			// aapt resource value: 0x7F03003F
+			public const int autoSizePresetSizes = 2130903103;
+			
+			// aapt resource value: 0x7F030040
+			public const int autoSizeStepGranularity = 2130903104;
+			
+			// aapt resource value: 0x7F030041
+			public const int autoSizeTextType = 2130903105;
+			
+			// aapt resource value: 0x7F030042
+			public const int background = 2130903106;
+			
+			// aapt resource value: 0x7F030043
+			public const int backgroundSplit = 2130903107;
+			
+			// aapt resource value: 0x7F030044
+			public const int backgroundStacked = 2130903108;
+			
+			// aapt resource value: 0x7F030045
+			public const int backgroundTint = 2130903109;
+			
+			// aapt resource value: 0x7F030046
+			public const int backgroundTintMode = 2130903110;
+			
+			// aapt resource value: 0x7F030047
+			public const int barLength = 2130903111;
+			
+			// aapt resource value: 0x7F030048
+			public const int biometricPromptDialogTheme = 2130903112;
+			
+			// aapt resource value: 0x7F030049
+			public const int borderlessButtonStyle = 2130903113;
+			
+			// aapt resource value: 0x7F03004A
+			public const int buttonBarButtonStyle = 2130903114;
+			
+			// aapt resource value: 0x7F03004B
+			public const int buttonBarNegativeButtonStyle = 2130903115;
+			
+			// aapt resource value: 0x7F03004C
+			public const int buttonBarNeutralButtonStyle = 2130903116;
+			
+			// aapt resource value: 0x7F03004D
+			public const int buttonBarPositiveButtonStyle = 2130903117;
+			
+			// aapt resource value: 0x7F03004E
+			public const int buttonBarStyle = 2130903118;
+			
+			// aapt resource value: 0x7F03004F
+			public const int buttonGravity = 2130903119;
+			
+			// aapt resource value: 0x7F030050
+			public const int buttonPanelSideLayout = 2130903120;
+			
+			// aapt resource value: 0x7F030051
+			public const int buttonStyle = 2130903121;
+			
+			// aapt resource value: 0x7F030052
+			public const int buttonStyleSmall = 2130903122;
+			
+			// aapt resource value: 0x7F030053
+			public const int buttonTint = 2130903123;
+			
+			// aapt resource value: 0x7F030054
+			public const int buttonTintMode = 2130903124;
+			
+			// aapt resource value: 0x7F030055
+			public const int checkboxStyle = 2130903125;
+			
+			// aapt resource value: 0x7F030056
+			public const int checkedTextViewStyle = 2130903126;
+			
+			// aapt resource value: 0x7F030057
+			public const int closeIcon = 2130903127;
+			
+			// aapt resource value: 0x7F030058
+			public const int closeItemLayout = 2130903128;
+			
+			// aapt resource value: 0x7F030059
+			public const int collapseContentDescription = 2130903129;
+			
+			// aapt resource value: 0x7F03005A
+			public const int collapseIcon = 2130903130;
+			
+			// aapt resource value: 0x7F03005B
+			public const int color = 2130903131;
+			
+			// aapt resource value: 0x7F03005C
+			public const int colorAccent = 2130903132;
+			
+			// aapt resource value: 0x7F03005D
+			public const int colorBackgroundFloating = 2130903133;
+			
+			// aapt resource value: 0x7F03005E
+			public const int colorButtonNormal = 2130903134;
+			
+			// aapt resource value: 0x7F03005F
+			public const int colorControlActivated = 2130903135;
+			
+			// aapt resource value: 0x7F030060
+			public const int colorControlHighlight = 2130903136;
+			
+			// aapt resource value: 0x7F030061
+			public const int colorControlNormal = 2130903137;
+			
+			// aapt resource value: 0x7F030062
+			public const int colorError = 2130903138;
+			
+			// aapt resource value: 0x7F030063
+			public const int colorPrimary = 2130903139;
+			
+			// aapt resource value: 0x7F030064
+			public const int colorPrimaryDark = 2130903140;
+			
+			// aapt resource value: 0x7F030065
+			public const int colorSwitchThumbNormal = 2130903141;
+			
+			// aapt resource value: 0x7F030066
+			public const int commitIcon = 2130903142;
+			
+			// aapt resource value: 0x7F030067
+			public const int contentDescription = 2130903143;
+			
+			// aapt resource value: 0x7F030068
+			public const int contentInsetEnd = 2130903144;
+			
+			// aapt resource value: 0x7F030069
+			public const int contentInsetEndWithActions = 2130903145;
+			
+			// aapt resource value: 0x7F03006A
+			public const int contentInsetLeft = 2130903146;
+			
+			// aapt resource value: 0x7F03006B
+			public const int contentInsetRight = 2130903147;
+			
+			// aapt resource value: 0x7F03006C
+			public const int contentInsetStart = 2130903148;
+			
+			// aapt resource value: 0x7F03006D
+			public const int contentInsetStartWithNavigation = 2130903149;
+			
+			// aapt resource value: 0x7F03006E
+			public const int controlBackground = 2130903150;
+			
+			// aapt resource value: 0x7F03006F
+			public const int curtain_bar_bg_color = 2130903151;
+			
+			// aapt resource value: 0x7F030070
+			public const int curtain_bar_border_color = 2130903152;
+			
+			// aapt resource value: 0x7F030071
+			public const int curtain_bar_color = 2130903153;
+			
+			// aapt resource value: 0x7F030072
+			public const int curtain_bar_height = 2130903154;
+			
+			// aapt resource value: 0x7F030073
+			public const int curtain_bar_width = 2130903155;
+			
+			// aapt resource value: 0x7F030074
+			public const int customNavigationLayout = 2130903156;
+			
+			// aapt resource value: 0x7F030075
+			public const int defaultQueryHint = 2130903157;
+			
+			// aapt resource value: 0x7F030076
+			public const int dialogPreferredPadding = 2130903158;
+			
+			// aapt resource value: 0x7F030077
+			public const int dialogTheme = 2130903159;
+			
+			// aapt resource value: 0x7F030078
+			public const int displayOptions = 2130903160;
+			
+			// aapt resource value: 0x7F030079
+			public const int divider = 2130903161;
+			
+			// aapt resource value: 0x7F03007A
+			public const int dividerHorizontal = 2130903162;
+			
+			// aapt resource value: 0x7F03007B
+			public const int dividerPadding = 2130903163;
+			
+			// aapt resource value: 0x7F03007C
+			public const int dividerVertical = 2130903164;
+			
+			// aapt resource value: 0x7F03007D
+			public const int drawableSize = 2130903165;
+			
+			// aapt resource value: 0x7F03007E
+			public const int drawerArrowStyle = 2130903166;
+			
+			// aapt resource value: 0x7F030080
+			public const int dropdownListPreferredItemHeight = 2130903168;
+			
+			// aapt resource value: 0x7F03007F
+			public const int dropDownListViewStyle = 2130903167;
+			
+			// aapt resource value: 0x7F030081
+			public const int editTextBackground = 2130903169;
+			
+			// aapt resource value: 0x7F030082
+			public const int editTextColor = 2130903170;
+			
+			// aapt resource value: 0x7F030083
+			public const int editTextStyle = 2130903171;
+			
+			// aapt resource value: 0x7F030084
+			public const int elevation = 2130903172;
+			
+			// aapt resource value: 0x7F030085
+			public const int expandActivityOverflowButtonDrawable = 2130903173;
+			
+			// aapt resource value: 0x7F030086
+			public const int font = 2130903174;
+			
+			// aapt resource value: 0x7F030087
+			public const int fontFamily = 2130903175;
+			
+			// aapt resource value: 0x7F030088
+			public const int fontProviderAuthority = 2130903176;
+			
+			// aapt resource value: 0x7F030089
+			public const int fontProviderCerts = 2130903177;
+			
+			// aapt resource value: 0x7F03008A
+			public const int fontProviderFetchStrategy = 2130903178;
+			
+			// aapt resource value: 0x7F03008B
+			public const int fontProviderFetchTimeout = 2130903179;
+			
+			// aapt resource value: 0x7F03008C
+			public const int fontProviderPackage = 2130903180;
+			
+			// aapt resource value: 0x7F03008D
+			public const int fontProviderQuery = 2130903181;
+			
+			// aapt resource value: 0x7F03008E
+			public const int fontStyle = 2130903182;
+			
+			// aapt resource value: 0x7F03008F
+			public const int fontWeight = 2130903183;
+			
+			// aapt resource value: 0x7F030090
+			public const int gapBetweenBars = 2130903184;
+			
+			// aapt resource value: 0x7F030091
+			public const int goIcon = 2130903185;
+			
+			// aapt resource value: 0x7F030092
+			public const int hdl_arc_thumb_mode = 2130903186;
+			
+			// aapt resource value: 0x7F030093
+			public const int height = 2130903187;
+			
+			// aapt resource value: 0x7F030094
+			public const int hideOnContentScroll = 2130903188;
+			
+			// aapt resource value: 0x7F030095
+			public const int homeAsUpIndicator = 2130903189;
+			
+			// aapt resource value: 0x7F030096
+			public const int homeLayout = 2130903190;
+			
+			// aapt resource value: 0x7F030097
+			public const int icon = 2130903191;
+			
+			// aapt resource value: 0x7F03009A
+			public const int iconifiedByDefault = 2130903194;
+			
+			// aapt resource value: 0x7F030098
+			public const int iconTint = 2130903192;
+			
+			// aapt resource value: 0x7F030099
+			public const int iconTintMode = 2130903193;
+			
+			// aapt resource value: 0x7F03009B
+			public const int imageButtonStyle = 2130903195;
+			
+			// aapt resource value: 0x7F03009C
+			public const int indeterminateProgressStyle = 2130903196;
+			
+			// aapt resource value: 0x7F03009D
+			public const int initialActivityCount = 2130903197;
+			
+			// aapt resource value: 0x7F03009E
+			public const int isLightTheme = 2130903198;
+			
+			// aapt resource value: 0x7F03009F
+			public const int itemPadding = 2130903199;
+			
+			// aapt resource value: 0x7F0300A0
+			public const int layout = 2130903200;
+			
+			// aapt resource value: 0x7F0300A1
+			public const int listChoiceBackgroundIndicator = 2130903201;
+			
+			// aapt resource value: 0x7F0300A2
+			public const int listDividerAlertDialog = 2130903202;
+			
+			// aapt resource value: 0x7F0300A3
+			public const int listItemLayout = 2130903203;
+			
+			// aapt resource value: 0x7F0300A4
+			public const int listLayout = 2130903204;
+			
+			// aapt resource value: 0x7F0300A5
+			public const int listMenuViewStyle = 2130903205;
+			
+			// aapt resource value: 0x7F0300A6
+			public const int listPopupWindowStyle = 2130903206;
+			
+			// aapt resource value: 0x7F0300A7
+			public const int listPreferredItemHeight = 2130903207;
+			
+			// aapt resource value: 0x7F0300A8
+			public const int listPreferredItemHeightLarge = 2130903208;
+			
+			// aapt resource value: 0x7F0300A9
+			public const int listPreferredItemHeightSmall = 2130903209;
+			
+			// aapt resource value: 0x7F0300AA
+			public const int listPreferredItemPaddingLeft = 2130903210;
+			
+			// aapt resource value: 0x7F0300AB
+			public const int listPreferredItemPaddingRight = 2130903211;
+			
+			// aapt resource value: 0x7F0300AC
+			public const int logo = 2130903212;
+			
+			// aapt resource value: 0x7F0300AD
+			public const int logoDescription = 2130903213;
+			
+			// aapt resource value: 0x7F0300AE
+			public const int maxButtonHeight = 2130903214;
+			
+			// aapt resource value: 0x7F0300AF
+			public const int measureWithLargestChild = 2130903215;
+			
+			// aapt resource value: 0x7F0300B0
+			public const int multiChoiceItemLayout = 2130903216;
+			
+			// aapt resource value: 0x7F0300B1
+			public const int navigationContentDescription = 2130903217;
+			
+			// aapt resource value: 0x7F0300B2
+			public const int navigationIcon = 2130903218;
+			
+			// aapt resource value: 0x7F0300B3
+			public const int navigationMode = 2130903219;
+			
+			// aapt resource value: 0x7F0300B4
+			public const int numericModifiers = 2130903220;
+			
+			// aapt resource value: 0x7F0300B5
+			public const int overlapAnchor = 2130903221;
+			
+			// aapt resource value: 0x7F0300B6
+			public const int paddingBottomNoButtons = 2130903222;
+			
+			// aapt resource value: 0x7F0300B7
+			public const int paddingEnd = 2130903223;
+			
+			// aapt resource value: 0x7F0300B8
+			public const int paddingStart = 2130903224;
+			
+			// aapt resource value: 0x7F0300B9
+			public const int paddingTopNoTitle = 2130903225;
+			
+			// aapt resource value: 0x7F0300BA
+			public const int panelBackground = 2130903226;
+			
+			// aapt resource value: 0x7F0300BB
+			public const int panelMenuListTheme = 2130903227;
+			
+			// aapt resource value: 0x7F0300BC
+			public const int panelMenuListWidth = 2130903228;
+			
+			// aapt resource value: 0x7F0300BD
+			public const int popupMenuStyle = 2130903229;
+			
+			// aapt resource value: 0x7F0300BE
+			public const int popupTheme = 2130903230;
+			
+			// aapt resource value: 0x7F0300BF
+			public const int popupWindowStyle = 2130903231;
+			
+			// aapt resource value: 0x7F0300C0
+			public const int preserveIconSpacing = 2130903232;
+			
+			// aapt resource value: 0x7F0300C1
+			public const int progressBarPadding = 2130903233;
+			
+			// aapt resource value: 0x7F0300C2
+			public const int progressBarStyle = 2130903234;
+			
+			// aapt resource value: 0x7F0300C3
+			public const int queryBackground = 2130903235;
+			
+			// aapt resource value: 0x7F0300C4
+			public const int queryHint = 2130903236;
+			
+			// aapt resource value: 0x7F0300C5
+			public const int radioButtonStyle = 2130903237;
+			
+			// aapt resource value: 0x7F0300C6
+			public const int ratingBarStyle = 2130903238;
+			
+			// aapt resource value: 0x7F0300C7
+			public const int ratingBarStyleIndicator = 2130903239;
+			
+			// aapt resource value: 0x7F0300C8
+			public const int ratingBarStyleSmall = 2130903240;
+			
+			// aapt resource value: 0x7F0300C9
+			public const int searchHintIcon = 2130903241;
+			
+			// aapt resource value: 0x7F0300CA
+			public const int searchIcon = 2130903242;
+			
+			// aapt resource value: 0x7F0300CB
+			public const int searchViewStyle = 2130903243;
+			
+			// aapt resource value: 0x7F0300CC
+			public const int second_curtain_bar_color = 2130903244;
+			
+			// aapt resource value: 0x7F0300CD
+			public const int second_wave_color = 2130903245;
+			
+			// aapt resource value: 0x7F0300CE
+			public const int seekBarStyle = 2130903246;
+			
+			// aapt resource value: 0x7F0300CF
+			public const int selectableItemBackground = 2130903247;
+			
+			// aapt resource value: 0x7F0300D0
+			public const int selectableItemBackgroundBorderless = 2130903248;
+			
+			// aapt resource value: 0x7F0300D1
+			public const int showAsAction = 2130903249;
+			
+			// aapt resource value: 0x7F0300D2
+			public const int showDividers = 2130903250;
+			
+			// aapt resource value: 0x7F0300D3
+			public const int showText = 2130903251;
+			
+			// aapt resource value: 0x7F0300D4
+			public const int showTitle = 2130903252;
+			
+			// aapt resource value: 0x7F0300D5
+			public const int singleChoiceItemLayout = 2130903253;
+			
+			// aapt resource value: 0x7F0300D6
+			public const int spinBars = 2130903254;
+			
+			// aapt resource value: 0x7F0300D7
+			public const int spinnerDropDownItemStyle = 2130903255;
+			
+			// aapt resource value: 0x7F0300D8
+			public const int spinnerStyle = 2130903256;
+			
+			// aapt resource value: 0x7F0300D9
+			public const int splitTrack = 2130903257;
+			
+			// aapt resource value: 0x7F0300DA
+			public const int srcCompat = 2130903258;
+			
+			// aapt resource value: 0x7F0300DB
+			public const int state_above_anchor = 2130903259;
+			
+			// aapt resource value: 0x7F0300DC
+			public const int subMenuArrow = 2130903260;
+			
+			// aapt resource value: 0x7F0300DD
+			public const int submitBackground = 2130903261;
+			
+			// aapt resource value: 0x7F0300DE
+			public const int subtitle = 2130903262;
+			
+			// aapt resource value: 0x7F0300DF
+			public const int subtitleTextAppearance = 2130903263;
+			
+			// aapt resource value: 0x7F0300E0
+			public const int subtitleTextColor = 2130903264;
+			
+			// aapt resource value: 0x7F0300E1
+			public const int subtitleTextStyle = 2130903265;
+			
+			// aapt resource value: 0x7F0300E2
+			public const int suggestionRowLayout = 2130903266;
+			
+			// aapt resource value: 0x7F0300E3
+			public const int switchMinWidth = 2130903267;
+			
+			// aapt resource value: 0x7F0300E4
+			public const int switchPadding = 2130903268;
+			
+			// aapt resource value: 0x7F0300E5
+			public const int switchStyle = 2130903269;
+			
+			// aapt resource value: 0x7F0300E6
+			public const int switchTextAppearance = 2130903270;
+			
+			// aapt resource value: 0x7F0300E7
+			public const int textAllCaps = 2130903271;
+			
+			// aapt resource value: 0x7F0300E8
+			public const int textAppearanceLargePopupMenu = 2130903272;
+			
+			// aapt resource value: 0x7F0300E9
+			public const int textAppearanceListItem = 2130903273;
+			
+			// aapt resource value: 0x7F0300EA
+			public const int textAppearanceListItemSecondary = 2130903274;
+			
+			// aapt resource value: 0x7F0300EB
+			public const int textAppearanceListItemSmall = 2130903275;
+			
+			// aapt resource value: 0x7F0300EC
+			public const int textAppearancePopupMenuHeader = 2130903276;
+			
+			// aapt resource value: 0x7F0300ED
+			public const int textAppearanceSearchResultSubtitle = 2130903277;
+			
+			// aapt resource value: 0x7F0300EE
+			public const int textAppearanceSearchResultTitle = 2130903278;
+			
+			// aapt resource value: 0x7F0300EF
+			public const int textAppearanceSmallPopupMenu = 2130903279;
+			
+			// aapt resource value: 0x7F0300F0
+			public const int textColorAlertDialogListItem = 2130903280;
+			
+			// aapt resource value: 0x7F0300F1
+			public const int textColorSearchUrl = 2130903281;
+			
+			// aapt resource value: 0x7F0300F2
+			public const int theme = 2130903282;
+			
+			// aapt resource value: 0x7F0300F3
+			public const int thickness = 2130903283;
+			
+			// aapt resource value: 0x7F0300F4
+			public const int thumbTextPadding = 2130903284;
+			
+			// aapt resource value: 0x7F0300F5
+			public const int thumbTint = 2130903285;
+			
+			// aapt resource value: 0x7F0300F6
+			public const int thumbTintMode = 2130903286;
+			
+			// aapt resource value: 0x7F0300F7
+			public const int tickMark = 2130903287;
+			
+			// aapt resource value: 0x7F0300F8
+			public const int tickMarkTint = 2130903288;
+			
+			// aapt resource value: 0x7F0300F9
+			public const int tickMarkTintMode = 2130903289;
+			
+			// aapt resource value: 0x7F0300FA
+			public const int tint = 2130903290;
+			
+			// aapt resource value: 0x7F0300FB
+			public const int tintMode = 2130903291;
+			
+			// aapt resource value: 0x7F0300FC
+			public const int title = 2130903292;
+			
+			// aapt resource value: 0x7F0300FD
+			public const int titleMargin = 2130903293;
+			
+			// aapt resource value: 0x7F0300FE
+			public const int titleMarginBottom = 2130903294;
+			
+			// aapt resource value: 0x7F0300FF
+			public const int titleMarginEnd = 2130903295;
+			
+			// aapt resource value: 0x7F030102
+			public const int titleMargins = 2130903298;
+			
+			// aapt resource value: 0x7F030100
+			public const int titleMarginStart = 2130903296;
+			
+			// aapt resource value: 0x7F030101
+			public const int titleMarginTop = 2130903297;
+			
+			// aapt resource value: 0x7F030103
+			public const int titleTextAppearance = 2130903299;
+			
+			// aapt resource value: 0x7F030104
+			public const int titleTextColor = 2130903300;
+			
+			// aapt resource value: 0x7F030105
+			public const int titleTextStyle = 2130903301;
+			
+			// aapt resource value: 0x7F030106
+			public const int toolbarNavigationButtonStyle = 2130903302;
+			
+			// aapt resource value: 0x7F030107
+			public const int toolbarStyle = 2130903303;
+			
+			// aapt resource value: 0x7F030108
+			public const int tooltipForegroundColor = 2130903304;
+			
+			// aapt resource value: 0x7F030109
+			public const int tooltipFrameBackground = 2130903305;
+			
+			// aapt resource value: 0x7F03010A
+			public const int tooltipText = 2130903306;
+			
+			// aapt resource value: 0x7F03010B
+			public const int track = 2130903307;
+			
+			// aapt resource value: 0x7F03010C
+			public const int trackTint = 2130903308;
+			
+			// aapt resource value: 0x7F03010D
+			public const int trackTintMode = 2130903309;
+			
+			// aapt resource value: 0x7F03010E
+			public const int voiceIcon = 2130903310;
+			
+			// aapt resource value: 0x7F03010F
+			public const int wave_bg_color = 2130903311;
+			
+			// aapt resource value: 0x7F030110
+			public const int wave_border_color = 2130903312;
+			
+			// aapt resource value: 0x7F030111
+			public const int wave_color = 2130903313;
+			
+			// aapt resource value: 0x7F030112
+			public const int wave_height = 2130903314;
+			
+			// aapt resource value: 0x7F030113
+			public const int wave_width = 2130903315;
+			
+			// aapt resource value: 0x7F030114
+			public const int wheelview_dividerColor = 2130903316;
+			
+			// aapt resource value: 0x7F030115
+			public const int wheelview_gravity = 2130903317;
+			
+			// aapt resource value: 0x7F030116
+			public const int wheelview_lineSpacingMultiplier = 2130903318;
+			
+			// aapt resource value: 0x7F030117
+			public const int wheelview_textColorCenter = 2130903319;
+			
+			// aapt resource value: 0x7F030118
+			public const int wheelview_textColorOut = 2130903320;
+			
+			// aapt resource value: 0x7F030119
+			public const int wheelview_textSize = 2130903321;
+			
+			// aapt resource value: 0x7F03011A
+			public const int windowActionBar = 2130903322;
+			
+			// aapt resource value: 0x7F03011B
+			public const int windowActionBarOverlay = 2130903323;
+			
+			// aapt resource value: 0x7F03011C
+			public const int windowActionModeOverlay = 2130903324;
+			
+			// aapt resource value: 0x7F03011D
+			public const int windowFixedHeightMajor = 2130903325;
+			
+			// aapt resource value: 0x7F03011E
+			public const int windowFixedHeightMinor = 2130903326;
+			
+			// aapt resource value: 0x7F03011F
+			public const int windowFixedWidthMajor = 2130903327;
+			
+			// aapt resource value: 0x7F030120
+			public const int windowFixedWidthMinor = 2130903328;
+			
+			// aapt resource value: 0x7F030121
+			public const int windowMinWidthMajor = 2130903329;
+			
+			// aapt resource value: 0x7F030122
+			public const int windowMinWidthMinor = 2130903330;
+			
+			// aapt resource value: 0x7F030123
+			public const int windowNoTitle = 2130903331;
 			
 			static Attribute()
 			{
@@ -376,6 +1168,18 @@
 			// aapt resource value: 0x7F040000
 			public const int abc_action_bar_embed_tabs = 2130968576;
 			
+			// aapt resource value: 0x7F040001
+			public const int abc_allow_stacked_button_bar = 2130968577;
+			
+			// aapt resource value: 0x7F040002
+			public const int abc_config_actionMenuItemAllCaps = 2130968578;
+			
+			// aapt resource value: 0x7F040003
+			public const int abc_config_closeDialogWhenTouchOutside = 2130968579;
+			
+			// aapt resource value: 0x7F040004
+			public const int abc_config_showMenuShortcutsWhenKeyboardPresent = 2130968580;
+			
 			static Boolean()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
@@ -390,64 +1194,286 @@
 		{
 			
 			// aapt resource value: 0x7F050000
-			public const int material_grey_100 = 2131034112;
+			public const int abc_background_cache_hint_selector_material_dark = 2131034112;
 			
 			// aapt resource value: 0x7F050001
-			public const int material_grey_300 = 2131034113;
+			public const int abc_background_cache_hint_selector_material_light = 2131034113;
 			
 			// aapt resource value: 0x7F050002
-			public const int material_grey_50 = 2131034114;
+			public const int abc_btn_colored_borderless_text_material = 2131034114;
 			
 			// aapt resource value: 0x7F050003
-			public const int material_red_500 = 2131034115;
+			public const int abc_btn_colored_text_material = 2131034115;
 			
 			// aapt resource value: 0x7F050004
-			public const int notification_action_color_filter = 2131034116;
+			public const int abc_color_highlight_material = 2131034116;
 			
 			// aapt resource value: 0x7F050005
-			public const int notification_icon_bg_color = 2131034117;
+			public const int abc_hint_foreground_material_dark = 2131034117;
 			
 			// aapt resource value: 0x7F050006
-			public const int notification_material_background_media_default_color = 2131034118;
+			public const int abc_hint_foreground_material_light = 2131034118;
 			
 			// aapt resource value: 0x7F050007
-			public const int pickerview_bgColor_default = 2131034119;
+			public const int abc_input_method_navigation_guard = 2131034119;
 			
 			// aapt resource value: 0x7F050008
-			public const int pickerview_bgColor_overlay = 2131034120;
+			public const int abc_primary_text_disable_only_material_dark = 2131034120;
 			
 			// aapt resource value: 0x7F050009
-			public const int pickerview_bg_topbar = 2131034121;
+			public const int abc_primary_text_disable_only_material_light = 2131034121;
 			
 			// aapt resource value: 0x7F05000A
-			public const int pickerview_timebtn_nor = 2131034122;
+			public const int abc_primary_text_material_dark = 2131034122;
 			
 			// aapt resource value: 0x7F05000B
-			public const int pickerview_timebtn_pre = 2131034123;
+			public const int abc_primary_text_material_light = 2131034123;
 			
 			// aapt resource value: 0x7F05000C
-			public const int pickerview_topbar_title = 2131034124;
+			public const int abc_search_url_text = 2131034124;
 			
 			// aapt resource value: 0x7F05000D
-			public const int pickerview_wheelview_textcolor_center = 2131034125;
+			public const int abc_search_url_text_normal = 2131034125;
 			
 			// aapt resource value: 0x7F05000E
-			public const int pickerview_wheelview_textcolor_divider = 2131034126;
+			public const int abc_search_url_text_pressed = 2131034126;
 			
 			// aapt resource value: 0x7F05000F
-			public const int pickerview_wheelview_textcolor_out = 2131034127;
+			public const int abc_search_url_text_selected = 2131034127;
 			
 			// aapt resource value: 0x7F050010
-			public const int primary_text_default_material_dark = 2131034128;
+			public const int abc_secondary_text_material_dark = 2131034128;
 			
 			// aapt resource value: 0x7F050011
-			public const int ripple_material_light = 2131034129;
+			public const int abc_secondary_text_material_light = 2131034129;
 			
 			// aapt resource value: 0x7F050012
-			public const int secondary_text_default_material_dark = 2131034130;
+			public const int abc_tint_btn_checkable = 2131034130;
 			
 			// aapt resource value: 0x7F050013
-			public const int secondary_text_default_material_light = 2131034131;
+			public const int abc_tint_default = 2131034131;
+			
+			// aapt resource value: 0x7F050014
+			public const int abc_tint_edittext = 2131034132;
+			
+			// aapt resource value: 0x7F050015
+			public const int abc_tint_seek_thumb = 2131034133;
+			
+			// aapt resource value: 0x7F050016
+			public const int abc_tint_spinner = 2131034134;
+			
+			// aapt resource value: 0x7F050017
+			public const int abc_tint_switch_track = 2131034135;
+			
+			// aapt resource value: 0x7F050018
+			public const int accent_material_dark = 2131034136;
+			
+			// aapt resource value: 0x7F050019
+			public const int accent_material_light = 2131034137;
+			
+			// aapt resource value: 0x7F05001A
+			public const int background_floating_material_dark = 2131034138;
+			
+			// aapt resource value: 0x7F05001B
+			public const int background_floating_material_light = 2131034139;
+			
+			// aapt resource value: 0x7F05001C
+			public const int background_material_dark = 2131034140;
+			
+			// aapt resource value: 0x7F05001D
+			public const int background_material_light = 2131034141;
+			
+			// aapt resource value: 0x7F05001E
+			public const int bright_foreground_disabled_material_dark = 2131034142;
+			
+			// aapt resource value: 0x7F05001F
+			public const int bright_foreground_disabled_material_light = 2131034143;
+			
+			// aapt resource value: 0x7F050020
+			public const int bright_foreground_inverse_material_dark = 2131034144;
+			
+			// aapt resource value: 0x7F050021
+			public const int bright_foreground_inverse_material_light = 2131034145;
+			
+			// aapt resource value: 0x7F050022
+			public const int bright_foreground_material_dark = 2131034146;
+			
+			// aapt resource value: 0x7F050023
+			public const int bright_foreground_material_light = 2131034147;
+			
+			// aapt resource value: 0x7F050024
+			public const int button_material_dark = 2131034148;
+			
+			// aapt resource value: 0x7F050025
+			public const int button_material_light = 2131034149;
+			
+			// aapt resource value: 0x7F050026
+			public const int dim_foreground_disabled_material_dark = 2131034150;
+			
+			// aapt resource value: 0x7F050027
+			public const int dim_foreground_disabled_material_light = 2131034151;
+			
+			// aapt resource value: 0x7F050028
+			public const int dim_foreground_material_dark = 2131034152;
+			
+			// aapt resource value: 0x7F050029
+			public const int dim_foreground_material_light = 2131034153;
+			
+			// aapt resource value: 0x7F05002A
+			public const int error_color_material = 2131034154;
+			
+			// aapt resource value: 0x7F05002B
+			public const int foreground_material_dark = 2131034155;
+			
+			// aapt resource value: 0x7F05002C
+			public const int foreground_material_light = 2131034156;
+			
+			// aapt resource value: 0x7F05002D
+			public const int highlighted_text_material_dark = 2131034157;
+			
+			// aapt resource value: 0x7F05002E
+			public const int highlighted_text_material_light = 2131034158;
+			
+			// aapt resource value: 0x7F05002F
+			public const int material_blue_grey_800 = 2131034159;
+			
+			// aapt resource value: 0x7F050030
+			public const int material_blue_grey_900 = 2131034160;
+			
+			// aapt resource value: 0x7F050031
+			public const int material_blue_grey_950 = 2131034161;
+			
+			// aapt resource value: 0x7F050032
+			public const int material_deep_teal_200 = 2131034162;
+			
+			// aapt resource value: 0x7F050033
+			public const int material_deep_teal_500 = 2131034163;
+			
+			// aapt resource value: 0x7F050034
+			public const int material_grey_100 = 2131034164;
+			
+			// aapt resource value: 0x7F050035
+			public const int material_grey_300 = 2131034165;
+			
+			// aapt resource value: 0x7F050036
+			public const int material_grey_50 = 2131034166;
+			
+			// aapt resource value: 0x7F050037
+			public const int material_grey_600 = 2131034167;
+			
+			// aapt resource value: 0x7F050038
+			public const int material_grey_800 = 2131034168;
+			
+			// aapt resource value: 0x7F050039
+			public const int material_grey_850 = 2131034169;
+			
+			// aapt resource value: 0x7F05003A
+			public const int material_grey_900 = 2131034170;
+			
+			// aapt resource value: 0x7F05003B
+			public const int material_red_500 = 2131034171;
+			
+			// aapt resource value: 0x7F05003C
+			public const int notification_action_color_filter = 2131034172;
+			
+			// aapt resource value: 0x7F05003D
+			public const int notification_icon_bg_color = 2131034173;
+			
+			// aapt resource value: 0x7F05003E
+			public const int notification_material_background_media_default_color = 2131034174;
+			
+			// aapt resource value: 0x7F05003F
+			public const int pickerview_bgColor_default = 2131034175;
+			
+			// aapt resource value: 0x7F050040
+			public const int pickerview_bgColor_overlay = 2131034176;
+			
+			// aapt resource value: 0x7F050041
+			public const int pickerview_bg_topbar = 2131034177;
+			
+			// aapt resource value: 0x7F050042
+			public const int pickerview_timebtn_nor = 2131034178;
+			
+			// aapt resource value: 0x7F050043
+			public const int pickerview_timebtn_pre = 2131034179;
+			
+			// aapt resource value: 0x7F050044
+			public const int pickerview_topbar_title = 2131034180;
+			
+			// aapt resource value: 0x7F050045
+			public const int pickerview_wheelview_textcolor_center = 2131034181;
+			
+			// aapt resource value: 0x7F050046
+			public const int pickerview_wheelview_textcolor_divider = 2131034182;
+			
+			// aapt resource value: 0x7F050047
+			public const int pickerview_wheelview_textcolor_out = 2131034183;
+			
+			// aapt resource value: 0x7F050048
+			public const int primary_dark_material_dark = 2131034184;
+			
+			// aapt resource value: 0x7F050049
+			public const int primary_dark_material_light = 2131034185;
+			
+			// aapt resource value: 0x7F05004A
+			public const int primary_material_dark = 2131034186;
+			
+			// aapt resource value: 0x7F05004B
+			public const int primary_material_light = 2131034187;
+			
+			// aapt resource value: 0x7F05004C
+			public const int primary_text_default_material_dark = 2131034188;
+			
+			// aapt resource value: 0x7F05004D
+			public const int primary_text_default_material_light = 2131034189;
+			
+			// aapt resource value: 0x7F05004E
+			public const int primary_text_disabled_material_dark = 2131034190;
+			
+			// aapt resource value: 0x7F05004F
+			public const int primary_text_disabled_material_light = 2131034191;
+			
+			// aapt resource value: 0x7F050050
+			public const int ripple_material_dark = 2131034192;
+			
+			// aapt resource value: 0x7F050051
+			public const int ripple_material_light = 2131034193;
+			
+			// aapt resource value: 0x7F050052
+			public const int secondary_text_default_material_dark = 2131034194;
+			
+			// aapt resource value: 0x7F050053
+			public const int secondary_text_default_material_light = 2131034195;
+			
+			// aapt resource value: 0x7F050054
+			public const int secondary_text_disabled_material_dark = 2131034196;
+			
+			// aapt resource value: 0x7F050055
+			public const int secondary_text_disabled_material_light = 2131034197;
+			
+			// aapt resource value: 0x7F050056
+			public const int switch_thumb_disabled_material_dark = 2131034198;
+			
+			// aapt resource value: 0x7F050057
+			public const int switch_thumb_disabled_material_light = 2131034199;
+			
+			// aapt resource value: 0x7F050058
+			public const int switch_thumb_material_dark = 2131034200;
+			
+			// aapt resource value: 0x7F050059
+			public const int switch_thumb_material_light = 2131034201;
+			
+			// aapt resource value: 0x7F05005A
+			public const int switch_thumb_normal_material_dark = 2131034202;
+			
+			// aapt resource value: 0x7F05005B
+			public const int switch_thumb_normal_material_light = 2131034203;
+			
+			// aapt resource value: 0x7F05005C
+			public const int tooltip_background_dark = 2131034204;
+			
+			// aapt resource value: 0x7F05005D
+			public const int tooltip_background_light = 2131034205;
 			
 			static Color()
 			{
@@ -463,85 +1489,358 @@
 		{
 			
 			// aapt resource value: 0x7F060000
-			public const int compat_button_inset_horizontal_material = 2131099648;
+			public const int abc_action_bar_content_inset_material = 2131099648;
 			
 			// aapt resource value: 0x7F060001
-			public const int compat_button_inset_vertical_material = 2131099649;
+			public const int abc_action_bar_content_inset_with_nav = 2131099649;
 			
 			// aapt resource value: 0x7F060002
-			public const int compat_button_padding_horizontal_material = 2131099650;
+			public const int abc_action_bar_default_height_material = 2131099650;
 			
 			// aapt resource value: 0x7F060003
-			public const int compat_button_padding_vertical_material = 2131099651;
+			public const int abc_action_bar_default_padding_end_material = 2131099651;
 			
 			// aapt resource value: 0x7F060004
-			public const int compat_control_corner_material = 2131099652;
+			public const int abc_action_bar_default_padding_start_material = 2131099652;
 			
 			// aapt resource value: 0x7F060005
-			public const int fingerprint_icon_size = 2131099653;
+			public const int abc_action_bar_elevation_material = 2131099653;
 			
 			// aapt resource value: 0x7F060006
-			public const int fingerprint_status_layout_margin_vertical = 2131099654;
+			public const int abc_action_bar_icon_vertical_padding_material = 2131099654;
 			
 			// aapt resource value: 0x7F060007
-			public const int notification_action_icon_size = 2131099655;
+			public const int abc_action_bar_overflow_padding_end_material = 2131099655;
 			
 			// aapt resource value: 0x7F060008
-			public const int notification_action_text_size = 2131099656;
+			public const int abc_action_bar_overflow_padding_start_material = 2131099656;
 			
 			// aapt resource value: 0x7F060009
-			public const int notification_big_circle_margin = 2131099657;
+			public const int abc_action_bar_progress_bar_size = 2131099657;
 			
 			// aapt resource value: 0x7F06000A
-			public const int notification_content_margin_start = 2131099658;
+			public const int abc_action_bar_stacked_max_height = 2131099658;
 			
 			// aapt resource value: 0x7F06000B
-			public const int notification_large_icon_height = 2131099659;
+			public const int abc_action_bar_stacked_tab_max_width = 2131099659;
 			
 			// aapt resource value: 0x7F06000C
-			public const int notification_large_icon_width = 2131099660;
+			public const int abc_action_bar_subtitle_bottom_margin_material = 2131099660;
 			
 			// aapt resource value: 0x7F06000D
-			public const int notification_main_column_padding_top = 2131099661;
+			public const int abc_action_bar_subtitle_top_margin_material = 2131099661;
 			
 			// aapt resource value: 0x7F06000E
-			public const int notification_media_narrow_margin = 2131099662;
+			public const int abc_action_button_min_height_material = 2131099662;
 			
 			// aapt resource value: 0x7F06000F
-			public const int notification_right_icon_size = 2131099663;
+			public const int abc_action_button_min_width_material = 2131099663;
 			
 			// aapt resource value: 0x7F060010
-			public const int notification_right_side_padding_top = 2131099664;
+			public const int abc_action_button_min_width_overflow_material = 2131099664;
 			
 			// aapt resource value: 0x7F060011
-			public const int notification_small_icon_background_padding = 2131099665;
+			public const int abc_alert_dialog_button_bar_height = 2131099665;
 			
 			// aapt resource value: 0x7F060012
-			public const int notification_small_icon_size_as_large = 2131099666;
+			public const int abc_button_inset_horizontal_material = 2131099666;
 			
 			// aapt resource value: 0x7F060013
-			public const int notification_subtext_size = 2131099667;
+			public const int abc_button_inset_vertical_material = 2131099667;
 			
 			// aapt resource value: 0x7F060014
-			public const int notification_top_pad = 2131099668;
+			public const int abc_button_padding_horizontal_material = 2131099668;
 			
 			// aapt resource value: 0x7F060015
-			public const int notification_top_pad_large_text = 2131099669;
+			public const int abc_button_padding_vertical_material = 2131099669;
 			
 			// aapt resource value: 0x7F060016
-			public const int pickerview_textsize = 2131099670;
+			public const int abc_cascading_menus_min_smallest_width = 2131099670;
 			
 			// aapt resource value: 0x7F060017
-			public const int pickerview_topbar_btn_textsize = 2131099671;
+			public const int abc_config_prefDialogWidth = 2131099671;
 			
 			// aapt resource value: 0x7F060018
-			public const int pickerview_topbar_height = 2131099672;
+			public const int abc_control_corner_material = 2131099672;
 			
 			// aapt resource value: 0x7F060019
-			public const int pickerview_topbar_padding = 2131099673;
+			public const int abc_control_inset_material = 2131099673;
 			
 			// aapt resource value: 0x7F06001A
-			public const int pickerview_topbar_title_textsize = 2131099674;
+			public const int abc_control_padding_material = 2131099674;
+			
+			// aapt resource value: 0x7F06001B
+			public const int abc_dialog_fixed_height_major = 2131099675;
+			
+			// aapt resource value: 0x7F06001C
+			public const int abc_dialog_fixed_height_minor = 2131099676;
+			
+			// aapt resource value: 0x7F06001D
+			public const int abc_dialog_fixed_width_major = 2131099677;
+			
+			// aapt resource value: 0x7F06001E
+			public const int abc_dialog_fixed_width_minor = 2131099678;
+			
+			// aapt resource value: 0x7F06001F
+			public const int abc_dialog_list_padding_bottom_no_buttons = 2131099679;
+			
+			// aapt resource value: 0x7F060020
+			public const int abc_dialog_list_padding_top_no_title = 2131099680;
+			
+			// aapt resource value: 0x7F060021
+			public const int abc_dialog_min_width_major = 2131099681;
+			
+			// aapt resource value: 0x7F060022
+			public const int abc_dialog_min_width_minor = 2131099682;
+			
+			// aapt resource value: 0x7F060023
+			public const int abc_dialog_padding_material = 2131099683;
+			
+			// aapt resource value: 0x7F060024
+			public const int abc_dialog_padding_top_material = 2131099684;
+			
+			// aapt resource value: 0x7F060025
+			public const int abc_dialog_title_divider_material = 2131099685;
+			
+			// aapt resource value: 0x7F060026
+			public const int abc_disabled_alpha_material_dark = 2131099686;
+			
+			// aapt resource value: 0x7F060027
+			public const int abc_disabled_alpha_material_light = 2131099687;
+			
+			// aapt resource value: 0x7F060028
+			public const int abc_dropdownitem_icon_width = 2131099688;
+			
+			// aapt resource value: 0x7F060029
+			public const int abc_dropdownitem_text_padding_left = 2131099689;
+			
+			// aapt resource value: 0x7F06002A
+			public const int abc_dropdownitem_text_padding_right = 2131099690;
+			
+			// aapt resource value: 0x7F06002B
+			public const int abc_edit_text_inset_bottom_material = 2131099691;
+			
+			// aapt resource value: 0x7F06002C
+			public const int abc_edit_text_inset_horizontal_material = 2131099692;
+			
+			// aapt resource value: 0x7F06002D
+			public const int abc_edit_text_inset_top_material = 2131099693;
+			
+			// aapt resource value: 0x7F06002E
+			public const int abc_floating_window_z = 2131099694;
+			
+			// aapt resource value: 0x7F06002F
+			public const int abc_list_item_padding_horizontal_material = 2131099695;
+			
+			// aapt resource value: 0x7F060030
+			public const int abc_panel_menu_list_width = 2131099696;
+			
+			// aapt resource value: 0x7F060031
+			public const int abc_progress_bar_height_material = 2131099697;
+			
+			// aapt resource value: 0x7F060032
+			public const int abc_search_view_preferred_height = 2131099698;
+			
+			// aapt resource value: 0x7F060033
+			public const int abc_search_view_preferred_width = 2131099699;
+			
+			// aapt resource value: 0x7F060034
+			public const int abc_seekbar_track_background_height_material = 2131099700;
+			
+			// aapt resource value: 0x7F060035
+			public const int abc_seekbar_track_progress_height_material = 2131099701;
+			
+			// aapt resource value: 0x7F060036
+			public const int abc_select_dialog_padding_start_material = 2131099702;
+			
+			// aapt resource value: 0x7F060037
+			public const int abc_switch_padding = 2131099703;
+			
+			// aapt resource value: 0x7F060038
+			public const int abc_text_size_body_1_material = 2131099704;
+			
+			// aapt resource value: 0x7F060039
+			public const int abc_text_size_body_2_material = 2131099705;
+			
+			// aapt resource value: 0x7F06003A
+			public const int abc_text_size_button_material = 2131099706;
+			
+			// aapt resource value: 0x7F06003B
+			public const int abc_text_size_caption_material = 2131099707;
+			
+			// aapt resource value: 0x7F06003C
+			public const int abc_text_size_display_1_material = 2131099708;
+			
+			// aapt resource value: 0x7F06003D
+			public const int abc_text_size_display_2_material = 2131099709;
+			
+			// aapt resource value: 0x7F06003E
+			public const int abc_text_size_display_3_material = 2131099710;
+			
+			// aapt resource value: 0x7F06003F
+			public const int abc_text_size_display_4_material = 2131099711;
+			
+			// aapt resource value: 0x7F060040
+			public const int abc_text_size_headline_material = 2131099712;
+			
+			// aapt resource value: 0x7F060041
+			public const int abc_text_size_large_material = 2131099713;
+			
+			// aapt resource value: 0x7F060042
+			public const int abc_text_size_medium_material = 2131099714;
+			
+			// aapt resource value: 0x7F060043
+			public const int abc_text_size_menu_header_material = 2131099715;
+			
+			// aapt resource value: 0x7F060044
+			public const int abc_text_size_menu_material = 2131099716;
+			
+			// aapt resource value: 0x7F060045
+			public const int abc_text_size_small_material = 2131099717;
+			
+			// aapt resource value: 0x7F060046
+			public const int abc_text_size_subhead_material = 2131099718;
+			
+			// aapt resource value: 0x7F060047
+			public const int abc_text_size_subtitle_material_toolbar = 2131099719;
+			
+			// aapt resource value: 0x7F060048
+			public const int abc_text_size_title_material = 2131099720;
+			
+			// aapt resource value: 0x7F060049
+			public const int abc_text_size_title_material_toolbar = 2131099721;
+			
+			// aapt resource value: 0x7F06004A
+			public const int compat_button_inset_horizontal_material = 2131099722;
+			
+			// aapt resource value: 0x7F06004B
+			public const int compat_button_inset_vertical_material = 2131099723;
+			
+			// aapt resource value: 0x7F06004C
+			public const int compat_button_padding_horizontal_material = 2131099724;
+			
+			// aapt resource value: 0x7F06004D
+			public const int compat_button_padding_vertical_material = 2131099725;
+			
+			// aapt resource value: 0x7F06004E
+			public const int compat_control_corner_material = 2131099726;
+			
+			// aapt resource value: 0x7F06004F
+			public const int disabled_alpha_material_dark = 2131099727;
+			
+			// aapt resource value: 0x7F060050
+			public const int disabled_alpha_material_light = 2131099728;
+			
+			// aapt resource value: 0x7F060051
+			public const int fingerprint_icon_size = 2131099729;
+			
+			// aapt resource value: 0x7F060052
+			public const int fingerprint_status_layout_margin_vertical = 2131099730;
+			
+			// aapt resource value: 0x7F060053
+			public const int highlight_alpha_material_colored = 2131099731;
+			
+			// aapt resource value: 0x7F060054
+			public const int highlight_alpha_material_dark = 2131099732;
+			
+			// aapt resource value: 0x7F060055
+			public const int highlight_alpha_material_light = 2131099733;
+			
+			// aapt resource value: 0x7F060056
+			public const int hint_alpha_material_dark = 2131099734;
+			
+			// aapt resource value: 0x7F060057
+			public const int hint_alpha_material_light = 2131099735;
+			
+			// aapt resource value: 0x7F060058
+			public const int hint_pressed_alpha_material_dark = 2131099736;
+			
+			// aapt resource value: 0x7F060059
+			public const int hint_pressed_alpha_material_light = 2131099737;
+			
+			// aapt resource value: 0x7F06005A
+			public const int notification_action_icon_size = 2131099738;
+			
+			// aapt resource value: 0x7F06005B
+			public const int notification_action_text_size = 2131099739;
+			
+			// aapt resource value: 0x7F06005C
+			public const int notification_big_circle_margin = 2131099740;
+			
+			// aapt resource value: 0x7F06005D
+			public const int notification_content_margin_start = 2131099741;
+			
+			// aapt resource value: 0x7F06005E
+			public const int notification_large_icon_height = 2131099742;
+			
+			// aapt resource value: 0x7F06005F
+			public const int notification_large_icon_width = 2131099743;
+			
+			// aapt resource value: 0x7F060060
+			public const int notification_main_column_padding_top = 2131099744;
+			
+			// aapt resource value: 0x7F060061
+			public const int notification_media_narrow_margin = 2131099745;
+			
+			// aapt resource value: 0x7F060062
+			public const int notification_right_icon_size = 2131099746;
+			
+			// aapt resource value: 0x7F060063
+			public const int notification_right_side_padding_top = 2131099747;
+			
+			// aapt resource value: 0x7F060064
+			public const int notification_small_icon_background_padding = 2131099748;
+			
+			// aapt resource value: 0x7F060065
+			public const int notification_small_icon_size_as_large = 2131099749;
+			
+			// aapt resource value: 0x7F060066
+			public const int notification_subtext_size = 2131099750;
+			
+			// aapt resource value: 0x7F060067
+			public const int notification_top_pad = 2131099751;
+			
+			// aapt resource value: 0x7F060068
+			public const int notification_top_pad_large_text = 2131099752;
+			
+			// aapt resource value: 0x7F060069
+			public const int pickerview_textsize = 2131099753;
+			
+			// aapt resource value: 0x7F06006A
+			public const int pickerview_topbar_btn_textsize = 2131099754;
+			
+			// aapt resource value: 0x7F06006B
+			public const int pickerview_topbar_height = 2131099755;
+			
+			// aapt resource value: 0x7F06006C
+			public const int pickerview_topbar_padding = 2131099756;
+			
+			// aapt resource value: 0x7F06006D
+			public const int pickerview_topbar_title_textsize = 2131099757;
+			
+			// aapt resource value: 0x7F06006E
+			public const int tooltip_corner_radius = 2131099758;
+			
+			// aapt resource value: 0x7F06006F
+			public const int tooltip_horizontal_padding = 2131099759;
+			
+			// aapt resource value: 0x7F060070
+			public const int tooltip_margin = 2131099760;
+			
+			// aapt resource value: 0x7F060071
+			public const int tooltip_precise_anchor_extra_offset = 2131099761;
+			
+			// aapt resource value: 0x7F060072
+			public const int tooltip_precise_anchor_threshold = 2131099762;
+			
+			// aapt resource value: 0x7F060073
+			public const int tooltip_vertical_padding = 2131099763;
+			
+			// aapt resource value: 0x7F060074
+			public const int tooltip_y_offset_non_touch = 2131099764;
+			
+			// aapt resource value: 0x7F060075
+			public const int tooltip_y_offset_touch = 2131099765;
 			
 			static Dimension()
 			{
@@ -557,133 +1856,397 @@
 		{
 			
 			// aapt resource value: 0x7F070000
-			public const int fingerprint_draw_off = 2131165184;
+			public const int abc_ab_share_pack_mtrl_alpha = 2131165184;
 			
 			// aapt resource value: 0x7F070001
-			public const int fingerprint_draw_off_animation = 2131165185;
+			public const int abc_action_bar_item_background_material = 2131165185;
 			
 			// aapt resource value: 0x7F070002
-			public const int fingerprint_draw_on = 2131165186;
+			public const int abc_btn_borderless_material = 2131165186;
 			
 			// aapt resource value: 0x7F070003
-			public const int fingerprint_draw_on_animation = 2131165187;
+			public const int abc_btn_check_material = 2131165187;
 			
 			// aapt resource value: 0x7F070004
-			public const int fingerprint_error = 2131165188;
+			public const int abc_btn_check_to_on_mtrl_000 = 2131165188;
 			
 			// aapt resource value: 0x7F070005
-			public const int fingerprint_error_off = 2131165189;
+			public const int abc_btn_check_to_on_mtrl_015 = 2131165189;
 			
 			// aapt resource value: 0x7F070006
-			public const int fingerprint_error_off_animation = 2131165190;
+			public const int abc_btn_colored_material = 2131165190;
 			
 			// aapt resource value: 0x7F070007
-			public const int fingerprint_error_on = 2131165191;
+			public const int abc_btn_default_mtrl_shape = 2131165191;
 			
 			// aapt resource value: 0x7F070008
-			public const int fingerprint_error_on_animation = 2131165192;
+			public const int abc_btn_radio_material = 2131165192;
 			
 			// aapt resource value: 0x7F070009
-			public const int fingerprint_error_state_to_fp = 2131165193;
+			public const int abc_btn_radio_to_on_mtrl_000 = 2131165193;
 			
 			// aapt resource value: 0x7F07000A
-			public const int fingerprint_error_state_to_fp_animation = 2131165194;
+			public const int abc_btn_radio_to_on_mtrl_015 = 2131165194;
 			
 			// aapt resource value: 0x7F07000B
-			public const int fingerprint_fingerprint = 2131165195;
+			public const int abc_btn_switch_to_on_mtrl_00001 = 2131165195;
 			
 			// aapt resource value: 0x7F07000C
-			public const int fingerprint_fp_to_error_state = 2131165196;
+			public const int abc_btn_switch_to_on_mtrl_00012 = 2131165196;
 			
 			// aapt resource value: 0x7F07000D
-			public const int fingerprint_fp_to_error_state_animation = 2131165197;
+			public const int abc_cab_background_internal_bg = 2131165197;
 			
 			// aapt resource value: 0x7F07000E
-			public const int gd_btn_shape_app_b = 2131165198;
+			public const int abc_cab_background_top_material = 2131165198;
 			
 			// aapt resource value: 0x7F07000F
-			public const int gd_btn_shape_app_g = 2131165199;
+			public const int abc_cab_background_top_mtrl_alpha = 2131165199;
 			
 			// aapt resource value: 0x7F070010
-			public const int gd_btn_shape_app_w = 2131165200;
+			public const int abc_control_background_material = 2131165200;
 			
 			// aapt resource value: 0x7F070011
-			public const int gd_btn_shape_shadow_w = 2131165201;
+			public const int abc_dialog_material_background = 2131165201;
 			
 			// aapt resource value: 0x7F070012
-			public const int gd_click_effect_select = 2131165202;
-			
-			// aapt resource value: 0x7F07001C
-			public const int Icon = 2131165212;
+			public const int abc_edit_text_material = 2131165202;
 			
 			// aapt resource value: 0x7F070013
-			public const int ic_gdmap_add = 2131165203;
+			public const int abc_ic_ab_back_material = 2131165203;
 			
 			// aapt resource value: 0x7F070014
-			public const int ic_gdmap_back = 2131165204;
+			public const int abc_ic_arrow_drop_right_black_24dp = 2131165204;
 			
 			// aapt resource value: 0x7F070015
-			public const int ic_gdmap_delete = 2131165205;
+			public const int abc_ic_clear_material = 2131165205;
 			
 			// aapt resource value: 0x7F070016
-			public const int ic_gdmap_home = 2131165206;
+			public const int abc_ic_commit_search_api_mtrl_alpha = 2131165206;
 			
 			// aapt resource value: 0x7F070017
-			public const int ic_gdmap_mylocation = 2131165207;
+			public const int abc_ic_go_search_api_material = 2131165207;
 			
 			// aapt resource value: 0x7F070018
-			public const int ic_gdmap_now = 2131165208;
+			public const int abc_ic_menu_copy_mtrl_am_alpha = 2131165208;
 			
 			// aapt resource value: 0x7F070019
-			public const int ic_gdmap_search = 2131165209;
+			public const int abc_ic_menu_cut_mtrl_alpha = 2131165209;
 			
 			// aapt resource value: 0x7F07001A
-			public const int ic_gdmap_zoom_out = 2131165210;
+			public const int abc_ic_menu_overflow_material = 2131165210;
 			
 			// aapt resource value: 0x7F07001B
-			public const int ic_gps_point = 2131165211;
+			public const int abc_ic_menu_paste_mtrl_am_alpha = 2131165211;
+			
+			// aapt resource value: 0x7F07001C
+			public const int abc_ic_menu_selectall_mtrl_alpha = 2131165212;
 			
 			// aapt resource value: 0x7F07001D
-			public const int Loading = 2131165213;
+			public const int abc_ic_menu_share_mtrl_alpha = 2131165213;
 			
 			// aapt resource value: 0x7F07001E
-			public const int notification_action_background = 2131165214;
+			public const int abc_ic_search_api_material = 2131165214;
 			
 			// aapt resource value: 0x7F07001F
-			public const int notification_bg = 2131165215;
+			public const int abc_ic_star_black_16dp = 2131165215;
 			
 			// aapt resource value: 0x7F070020
-			public const int notification_bg_low = 2131165216;
+			public const int abc_ic_star_black_36dp = 2131165216;
 			
 			// aapt resource value: 0x7F070021
-			public const int notification_bg_low_normal = 2131165217;
+			public const int abc_ic_star_black_48dp = 2131165217;
 			
 			// aapt resource value: 0x7F070022
-			public const int notification_bg_low_pressed = 2131165218;
+			public const int abc_ic_star_half_black_16dp = 2131165218;
 			
 			// aapt resource value: 0x7F070023
-			public const int notification_bg_normal = 2131165219;
+			public const int abc_ic_star_half_black_36dp = 2131165219;
 			
 			// aapt resource value: 0x7F070024
-			public const int notification_bg_normal_pressed = 2131165220;
+			public const int abc_ic_star_half_black_48dp = 2131165220;
 			
 			// aapt resource value: 0x7F070025
-			public const int notification_icon_background = 2131165221;
+			public const int abc_ic_voice_search_api_material = 2131165221;
 			
 			// aapt resource value: 0x7F070026
-			public const int notification_template_icon_bg = 2131165222;
+			public const int abc_item_background_holo_dark = 2131165222;
 			
 			// aapt resource value: 0x7F070027
-			public const int notification_template_icon_low_bg = 2131165223;
+			public const int abc_item_background_holo_light = 2131165223;
 			
 			// aapt resource value: 0x7F070028
-			public const int notification_tile_bg = 2131165224;
+			public const int abc_list_divider_mtrl_alpha = 2131165224;
 			
 			// aapt resource value: 0x7F070029
-			public const int notify_panel_notification_icon_bg = 2131165225;
+			public const int abc_list_focused_holo = 2131165225;
 			
 			// aapt resource value: 0x7F07002A
-			public const int selector_pickerview_btn = 2131165226;
+			public const int abc_list_longpressed_holo = 2131165226;
+			
+			// aapt resource value: 0x7F07002B
+			public const int abc_list_pressed_holo_dark = 2131165227;
+			
+			// aapt resource value: 0x7F07002C
+			public const int abc_list_pressed_holo_light = 2131165228;
+			
+			// aapt resource value: 0x7F07002D
+			public const int abc_list_selector_background_transition_holo_dark = 2131165229;
+			
+			// aapt resource value: 0x7F07002E
+			public const int abc_list_selector_background_transition_holo_light = 2131165230;
+			
+			// aapt resource value: 0x7F07002F
+			public const int abc_list_selector_disabled_holo_dark = 2131165231;
+			
+			// aapt resource value: 0x7F070030
+			public const int abc_list_selector_disabled_holo_light = 2131165232;
+			
+			// aapt resource value: 0x7F070031
+			public const int abc_list_selector_holo_dark = 2131165233;
+			
+			// aapt resource value: 0x7F070032
+			public const int abc_list_selector_holo_light = 2131165234;
+			
+			// aapt resource value: 0x7F070033
+			public const int abc_menu_hardkey_panel_mtrl_mult = 2131165235;
+			
+			// aapt resource value: 0x7F070034
+			public const int abc_popup_background_mtrl_mult = 2131165236;
+			
+			// aapt resource value: 0x7F070035
+			public const int abc_ratingbar_indicator_material = 2131165237;
+			
+			// aapt resource value: 0x7F070036
+			public const int abc_ratingbar_material = 2131165238;
+			
+			// aapt resource value: 0x7F070037
+			public const int abc_ratingbar_small_material = 2131165239;
+			
+			// aapt resource value: 0x7F070038
+			public const int abc_scrubber_control_off_mtrl_alpha = 2131165240;
+			
+			// aapt resource value: 0x7F070039
+			public const int abc_scrubber_control_to_pressed_mtrl_000 = 2131165241;
+			
+			// aapt resource value: 0x7F07003A
+			public const int abc_scrubber_control_to_pressed_mtrl_005 = 2131165242;
+			
+			// aapt resource value: 0x7F07003B
+			public const int abc_scrubber_primary_mtrl_alpha = 2131165243;
+			
+			// aapt resource value: 0x7F07003C
+			public const int abc_scrubber_track_mtrl_alpha = 2131165244;
+			
+			// aapt resource value: 0x7F07003D
+			public const int abc_seekbar_thumb_material = 2131165245;
+			
+			// aapt resource value: 0x7F07003E
+			public const int abc_seekbar_tick_mark_material = 2131165246;
+			
+			// aapt resource value: 0x7F07003F
+			public const int abc_seekbar_track_material = 2131165247;
+			
+			// aapt resource value: 0x7F070040
+			public const int abc_spinner_mtrl_am_alpha = 2131165248;
+			
+			// aapt resource value: 0x7F070041
+			public const int abc_spinner_textfield_background_material = 2131165249;
+			
+			// aapt resource value: 0x7F070042
+			public const int abc_switch_thumb_material = 2131165250;
+			
+			// aapt resource value: 0x7F070043
+			public const int abc_switch_track_mtrl_alpha = 2131165251;
+			
+			// aapt resource value: 0x7F070044
+			public const int abc_tab_indicator_material = 2131165252;
+			
+			// aapt resource value: 0x7F070045
+			public const int abc_tab_indicator_mtrl_alpha = 2131165253;
+			
+			// aapt resource value: 0x7F07004D
+			public const int abc_textfield_activated_mtrl_alpha = 2131165261;
+			
+			// aapt resource value: 0x7F07004E
+			public const int abc_textfield_default_mtrl_alpha = 2131165262;
+			
+			// aapt resource value: 0x7F07004F
+			public const int abc_textfield_search_activated_mtrl_alpha = 2131165263;
+			
+			// aapt resource value: 0x7F070050
+			public const int abc_textfield_search_default_mtrl_alpha = 2131165264;
+			
+			// aapt resource value: 0x7F070051
+			public const int abc_textfield_search_material = 2131165265;
+			
+			// aapt resource value: 0x7F070046
+			public const int abc_text_cursor_material = 2131165254;
+			
+			// aapt resource value: 0x7F070047
+			public const int abc_text_select_handle_left_mtrl_dark = 2131165255;
+			
+			// aapt resource value: 0x7F070048
+			public const int abc_text_select_handle_left_mtrl_light = 2131165256;
+			
+			// aapt resource value: 0x7F070049
+			public const int abc_text_select_handle_middle_mtrl_dark = 2131165257;
+			
+			// aapt resource value: 0x7F07004A
+			public const int abc_text_select_handle_middle_mtrl_light = 2131165258;
+			
+			// aapt resource value: 0x7F07004B
+			public const int abc_text_select_handle_right_mtrl_dark = 2131165259;
+			
+			// aapt resource value: 0x7F07004C
+			public const int abc_text_select_handle_right_mtrl_light = 2131165260;
+			
+			// aapt resource value: 0x7F070052
+			public const int abc_vector_test = 2131165266;
+			
+			// aapt resource value: 0x7F070053
+			public const int fingerprint_draw_off = 2131165267;
+			
+			// aapt resource value: 0x7F070054
+			public const int fingerprint_draw_off_animation = 2131165268;
+			
+			// aapt resource value: 0x7F070055
+			public const int fingerprint_draw_on = 2131165269;
+			
+			// aapt resource value: 0x7F070056
+			public const int fingerprint_draw_on_animation = 2131165270;
+			
+			// aapt resource value: 0x7F070057
+			public const int fingerprint_error = 2131165271;
+			
+			// aapt resource value: 0x7F070058
+			public const int fingerprint_error_off = 2131165272;
+			
+			// aapt resource value: 0x7F070059
+			public const int fingerprint_error_off_animation = 2131165273;
+			
+			// aapt resource value: 0x7F07005A
+			public const int fingerprint_error_on = 2131165274;
+			
+			// aapt resource value: 0x7F07005B
+			public const int fingerprint_error_on_animation = 2131165275;
+			
+			// aapt resource value: 0x7F07005C
+			public const int fingerprint_error_state_to_fp = 2131165276;
+			
+			// aapt resource value: 0x7F07005D
+			public const int fingerprint_error_state_to_fp_animation = 2131165277;
+			
+			// aapt resource value: 0x7F07005E
+			public const int fingerprint_fingerprint = 2131165278;
+			
+			// aapt resource value: 0x7F07005F
+			public const int fingerprint_fp_to_error_state = 2131165279;
+			
+			// aapt resource value: 0x7F070060
+			public const int fingerprint_fp_to_error_state_animation = 2131165280;
+			
+			// aapt resource value: 0x7F070061
+			public const int gd_btn_shape_app_b = 2131165281;
+			
+			// aapt resource value: 0x7F070062
+			public const int gd_btn_shape_app_g = 2131165282;
+			
+			// aapt resource value: 0x7F070063
+			public const int gd_btn_shape_app_w = 2131165283;
+			
+			// aapt resource value: 0x7F070064
+			public const int gd_btn_shape_shadow_w = 2131165284;
+			
+			// aapt resource value: 0x7F070065
+			public const int gd_click_effect_select = 2131165285;
+			
+			// aapt resource value: 0x7F070072
+			public const int Icon = 2131165298;
+			
+			// aapt resource value: 0x7F070066
+			public const int ic_gdmap_add = 2131165286;
+			
+			// aapt resource value: 0x7F070067
+			public const int ic_gdmap_back = 2131165287;
+			
+			// aapt resource value: 0x7F070068
+			public const int ic_gdmap_delete = 2131165288;
+			
+			// aapt resource value: 0x7F070069
+			public const int ic_gdmap_home = 2131165289;
+			
+			// aapt resource value: 0x7F07006A
+			public const int ic_gdmap_mylocation = 2131165290;
+			
+			// aapt resource value: 0x7F07006B
+			public const int ic_gdmap_now = 2131165291;
+			
+			// aapt resource value: 0x7F07006C
+			public const int ic_gdmap_search = 2131165292;
+			
+			// aapt resource value: 0x7F07006D
+			public const int ic_gdmap_zoom_out = 2131165293;
+			
+			// aapt resource value: 0x7F07006E
+			public const int ic_gps_point = 2131165294;
+			
+			// aapt resource value: 0x7F07006F
+			public const int ic_seekbar_open = 2131165295;
+			
+			// aapt resource value: 0x7F070070
+			public const int ic_wd_curtain_bg = 2131165296;
+			
+			// aapt resource value: 0x7F070071
+			public const int ic_wd_seekbar_open = 2131165297;
+			
+			// aapt resource value: 0x7F070073
+			public const int Loading = 2131165299;
+			
+			// aapt resource value: 0x7F070074
+			public const int notification_action_background = 2131165300;
+			
+			// aapt resource value: 0x7F070075
+			public const int notification_bg = 2131165301;
+			
+			// aapt resource value: 0x7F070076
+			public const int notification_bg_low = 2131165302;
+			
+			// aapt resource value: 0x7F070077
+			public const int notification_bg_low_normal = 2131165303;
+			
+			// aapt resource value: 0x7F070078
+			public const int notification_bg_low_pressed = 2131165304;
+			
+			// aapt resource value: 0x7F070079
+			public const int notification_bg_normal = 2131165305;
+			
+			// aapt resource value: 0x7F07007A
+			public const int notification_bg_normal_pressed = 2131165306;
+			
+			// aapt resource value: 0x7F07007B
+			public const int notification_icon_background = 2131165307;
+			
+			// aapt resource value: 0x7F07007C
+			public const int notification_template_icon_bg = 2131165308;
+			
+			// aapt resource value: 0x7F07007D
+			public const int notification_template_icon_low_bg = 2131165309;
+			
+			// aapt resource value: 0x7F07007E
+			public const int notification_tile_bg = 2131165310;
+			
+			// aapt resource value: 0x7F07007F
+			public const int notify_panel_notification_icon_bg = 2131165311;
+			
+			// aapt resource value: 0x7F070080
+			public const int selector_pickerview_btn = 2131165312;
+			
+			// aapt resource value: 0x7F070081
+			public const int tooltip_frame_dark = 2131165313;
+			
+			// aapt resource value: 0x7F070082
+			public const int tooltip_frame_light = 2131165314;
 			
 			static Drawable()
 			{
@@ -698,230 +2261,503 @@
 		public partial class Id
 		{
 			
-			// aapt resource value: 0x7F080003
-			public const int action0 = 2131230723;
-			
-			// aapt resource value: 0x7F080008
-			public const int actions = 2131230728;
-			
-			// aapt resource value: 0x7F080004
-			public const int action_container = 2131230724;
-			
-			// aapt resource value: 0x7F080005
-			public const int action_divider = 2131230725;
-			
-			// aapt resource value: 0x7F080006
-			public const int action_image = 2131230726;
-			
-			// aapt resource value: 0x7F080007
-			public const int action_text = 2131230727;
-			
 			// aapt resource value: 0x7F080009
-			public const int async = 2131230729;
-			
-			// aapt resource value: 0x7F08000A
-			public const int blocking = 2131230730;
-			
-			// aapt resource value: 0x7F08000B
-			public const int btnCancel = 2131230731;
-			
-			// aapt resource value: 0x7F08000C
-			public const int btnSubmit = 2131230732;
-			
-			// aapt resource value: 0x7F08000D
-			public const int cancel_action = 2131230733;
-			
-			// aapt resource value: 0x7F08000E
-			public const int center = 2131230734;
-			
-			// aapt resource value: 0x7F08000F
-			public const int chronometer = 2131230735;
-			
-			// aapt resource value: 0x7F080010
-			public const int content_container = 2131230736;
-			
-			// aapt resource value: 0x7F080011
-			public const int day = 2131230737;
-			
-			// aapt resource value: 0x7F080012
-			public const int description = 2131230738;
-			
-			// aapt resource value: 0x7F080013
-			public const int end_padder = 2131230739;
-			
-			// aapt resource value: 0x7F080000
-			public const int FILL = 2131230720;
-			
-			// aapt resource value: 0x7F080001
-			public const int FILL_STROKE = 2131230721;
-			
-			// aapt resource value: 0x7F080014
-			public const int fingerprint_icon = 2131230740;
-			
-			// aapt resource value: 0x7F080015
-			public const int forever = 2131230741;
-			
-			// aapt resource value: 0x7F080016
-			public const int gd_btn_back = 2131230742;
-			
-			// aapt resource value: 0x7F080017
-			public const int gd_btn_myLocation = 2131230743;
-			
-			// aapt resource value: 0x7F080018
-			public const int gd_btn_save = 2131230744;
-			
-			// aapt resource value: 0x7F080019
-			public const int gd_img_search_delete = 2131230745;
-			
-			// aapt resource value: 0x7F08001A
-			public const int gd_ll_myhome = 2131230746;
+			public const int action0 = 2131230729;
 			
 			// aapt resource value: 0x7F08001B
-			public const int gd_ll_search = 2131230747;
+			public const int actions = 2131230747;
+			
+			// aapt resource value: 0x7F08000A
+			public const int action_bar = 2131230730;
+			
+			// aapt resource value: 0x7F08000B
+			public const int action_bar_activity_content = 2131230731;
+			
+			// aapt resource value: 0x7F08000C
+			public const int action_bar_container = 2131230732;
+			
+			// aapt resource value: 0x7F08000D
+			public const int action_bar_root = 2131230733;
+			
+			// aapt resource value: 0x7F08000E
+			public const int action_bar_spinner = 2131230734;
+			
+			// aapt resource value: 0x7F08000F
+			public const int action_bar_subtitle = 2131230735;
+			
+			// aapt resource value: 0x7F080010
+			public const int action_bar_title = 2131230736;
+			
+			// aapt resource value: 0x7F080011
+			public const int action_container = 2131230737;
+			
+			// aapt resource value: 0x7F080012
+			public const int action_context_bar = 2131230738;
+			
+			// aapt resource value: 0x7F080013
+			public const int action_divider = 2131230739;
+			
+			// aapt resource value: 0x7F080014
+			public const int action_image = 2131230740;
+			
+			// aapt resource value: 0x7F080015
+			public const int action_menu_divider = 2131230741;
+			
+			// aapt resource value: 0x7F080016
+			public const int action_menu_presenter = 2131230742;
+			
+			// aapt resource value: 0x7F080017
+			public const int action_mode_bar = 2131230743;
+			
+			// aapt resource value: 0x7F080018
+			public const int action_mode_bar_stub = 2131230744;
+			
+			// aapt resource value: 0x7F080019
+			public const int action_mode_close_button = 2131230745;
+			
+			// aapt resource value: 0x7F08001A
+			public const int action_text = 2131230746;
 			
 			// aapt resource value: 0x7F08001C
-			public const int gd_mapView = 2131230748;
+			public const int activity_chooser_view_content = 2131230748;
 			
 			// aapt resource value: 0x7F08001D
-			public const int gd_rl_topview = 2131230749;
+			public const int add = 2131230749;
 			
 			// aapt resource value: 0x7F08001E
-			public const int gd_tv_activity_title = 2131230750;
+			public const int alertTitle = 2131230750;
+			
+			// aapt resource value: 0x7F080000
+			public const int ALT = 2131230720;
 			
 			// aapt resource value: 0x7F08001F
-			public const int gd_tv_radius = 2131230751;
+			public const int always = 2131230751;
 			
 			// aapt resource value: 0x7F080020
-			public const int gd_tv_search_title = 2131230752;
+			public const int async = 2131230752;
 			
 			// aapt resource value: 0x7F080021
-			public const int hdl_gallery_rootView = 2131230753;
+			public const int beginning = 2131230753;
 			
 			// aapt resource value: 0x7F080022
-			public const int hdl_gallery_viewPager = 2131230754;
+			public const int blocking = 2131230754;
 			
 			// aapt resource value: 0x7F080023
-			public const int hdl_options1 = 2131230755;
+			public const int bottom = 2131230755;
 			
 			// aapt resource value: 0x7F080024
-			public const int hdl_options2 = 2131230756;
+			public const int btnCancel = 2131230756;
 			
 			// aapt resource value: 0x7F080025
-			public const int hdl_options3 = 2131230757;
+			public const int btnSubmit = 2131230757;
 			
 			// aapt resource value: 0x7F080026
-			public const int hdl_pickerview_ll = 2131230758;
+			public const int buttonPanel = 2131230758;
 			
 			// aapt resource value: 0x7F080027
-			public const int hour = 2131230759;
+			public const int cancel_action = 2131230759;
 			
 			// aapt resource value: 0x7F080028
-			public const int icon = 2131230760;
+			public const int center = 2131230760;
 			
 			// aapt resource value: 0x7F080029
-			public const int icon_group = 2131230761;
+			public const int checkbox = 2131230761;
 			
 			// aapt resource value: 0x7F08002A
-			public const int info = 2131230762;
+			public const int chronometer = 2131230762;
 			
 			// aapt resource value: 0x7F08002B
-			public const int italic = 2131230763;
+			public const int collapseActionView = 2131230763;
 			
 			// aapt resource value: 0x7F08002C
-			public const int left = 2131230764;
+			public const int contentPanel = 2131230764;
 			
 			// aapt resource value: 0x7F08002D
-			public const int line1 = 2131230765;
+			public const int content_container = 2131230765;
+			
+			// aapt resource value: 0x7F080001
+			public const int CTRL = 2131230721;
 			
 			// aapt resource value: 0x7F08002E
-			public const int line3 = 2131230766;
+			public const int custom = 2131230766;
 			
 			// aapt resource value: 0x7F08002F
-			public const int media_actions = 2131230767;
+			public const int customPanel = 2131230767;
 			
 			// aapt resource value: 0x7F080030
-			public const int min = 2131230768;
+			public const int day = 2131230768;
 			
 			// aapt resource value: 0x7F080031
-			public const int month = 2131230769;
+			public const int decor_content_parent = 2131230769;
 			
 			// aapt resource value: 0x7F080032
-			public const int myButton = 2131230770;
+			public const int default_activity_button = 2131230770;
 			
 			// aapt resource value: 0x7F080033
-			public const int normal = 2131230771;
+			public const int description = 2131230771;
 			
 			// aapt resource value: 0x7F080034
-			public const int notification_background = 2131230772;
+			public const int disableHome = 2131230772;
 			
 			// aapt resource value: 0x7F080035
-			public const int notification_main_column = 2131230773;
+			public const int edit_query = 2131230773;
 			
 			// aapt resource value: 0x7F080036
-			public const int notification_main_column_container = 2131230774;
+			public const int end = 2131230774;
 			
 			// aapt resource value: 0x7F080037
-			public const int options1 = 2131230775;
-			
-			// aapt resource value: 0x7F080038
-			public const int options2 = 2131230776;
+			public const int end_padder = 2131230775;
 			
 			// aapt resource value: 0x7F080039
-			public const int options3 = 2131230777;
+			public const int expanded_menu = 2131230777;
 			
-			// aapt resource value: 0x7F08003A
-			public const int optionspicker = 2131230778;
-			
-			// aapt resource value: 0x7F08003B
-			public const int outmost_container = 2131230779;
-			
-			// aapt resource value: 0x7F08003C
-			public const int right = 2131230780;
-			
-			// aapt resource value: 0x7F08003D
-			public const int right_icon = 2131230781;
-			
-			// aapt resource value: 0x7F08003E
-			public const int right_side = 2131230782;
-			
-			// aapt resource value: 0x7F08003F
-			public const int rv_topbar = 2131230783;
-			
-			// aapt resource value: 0x7F080040
-			public const int second = 2131230784;
-			
-			// aapt resource value: 0x7F080041
-			public const int status = 2131230785;
-			
-			// aapt resource value: 0x7F080042
-			public const int status_bar_latest_event_content = 2131230786;
+			// aapt resource value: 0x7F080038
+			public const int expand_activities_button = 2131230776;
 			
 			// aapt resource value: 0x7F080002
-			public const int STROKE = 2131230722;
+			public const int FILL = 2131230722;
+			
+			// aapt resource value: 0x7F080003
+			public const int FILL_STROKE = 2131230723;
+			
+			// aapt resource value: 0x7F08003A
+			public const int fingerprint_icon = 2131230778;
+			
+			// aapt resource value: 0x7F08003B
+			public const int forever = 2131230779;
+			
+			// aapt resource value: 0x7F080004
+			public const int FUNCTION = 2131230724;
+			
+			// aapt resource value: 0x7F08003C
+			public const int gd_btn_back = 2131230780;
+			
+			// aapt resource value: 0x7F08003D
+			public const int gd_btn_myLocation = 2131230781;
+			
+			// aapt resource value: 0x7F08003E
+			public const int gd_btn_save = 2131230782;
+			
+			// aapt resource value: 0x7F08003F
+			public const int gd_img_search_delete = 2131230783;
+			
+			// aapt resource value: 0x7F080040
+			public const int gd_ll_myhome = 2131230784;
+			
+			// aapt resource value: 0x7F080041
+			public const int gd_ll_search = 2131230785;
+			
+			// aapt resource value: 0x7F080042
+			public const int gd_mapView = 2131230786;
 			
 			// aapt resource value: 0x7F080043
-			public const int subtitle = 2131230787;
+			public const int gd_rl_topview = 2131230787;
 			
 			// aapt resource value: 0x7F080044
-			public const int text = 2131230788;
+			public const int gd_tv_activity_title = 2131230788;
 			
 			// aapt resource value: 0x7F080045
-			public const int text2 = 2131230789;
+			public const int gd_tv_radius = 2131230789;
 			
 			// aapt resource value: 0x7F080046
-			public const int time = 2131230790;
+			public const int gd_tv_search_title = 2131230790;
 			
 			// aapt resource value: 0x7F080047
-			public const int timepicker = 2131230791;
+			public const int hdl_gallery_rootView = 2131230791;
 			
 			// aapt resource value: 0x7F080048
-			public const int title = 2131230792;
+			public const int hdl_gallery_viewPager = 2131230792;
 			
 			// aapt resource value: 0x7F080049
-			public const int tvTitle = 2131230793;
+			public const int hdl_options1 = 2131230793;
 			
 			// aapt resource value: 0x7F08004A
-			public const int year = 2131230794;
+			public const int hdl_options2 = 2131230794;
+			
+			// aapt resource value: 0x7F08004B
+			public const int hdl_options3 = 2131230795;
+			
+			// aapt resource value: 0x7F08004C
+			public const int hdl_pickerview_ll = 2131230796;
+			
+			// aapt resource value: 0x7F08004D
+			public const int home = 2131230797;
+			
+			// aapt resource value: 0x7F08004E
+			public const int homeAsUp = 2131230798;
+			
+			// aapt resource value: 0x7F08004F
+			public const int hour = 2131230799;
+			
+			// aapt resource value: 0x7F080050
+			public const int icon = 2131230800;
+			
+			// aapt resource value: 0x7F080051
+			public const int icon_group = 2131230801;
+			
+			// aapt resource value: 0x7F080052
+			public const int ifRoom = 2131230802;
+			
+			// aapt resource value: 0x7F080053
+			public const int image = 2131230803;
+			
+			// aapt resource value: 0x7F080054
+			public const int info = 2131230804;
+			
+			// aapt resource value: 0x7F080055
+			public const int italic = 2131230805;
+			
+			// aapt resource value: 0x7F080056
+			public const int left = 2131230806;
+			
+			// aapt resource value: 0x7F080057
+			public const int line1 = 2131230807;
+			
+			// aapt resource value: 0x7F080058
+			public const int line3 = 2131230808;
+			
+			// aapt resource value: 0x7F080059
+			public const int listMode = 2131230809;
+			
+			// aapt resource value: 0x7F08005A
+			public const int list_item = 2131230810;
+			
+			// aapt resource value: 0x7F08005B
+			public const int media_actions = 2131230811;
+			
+			// aapt resource value: 0x7F08005C
+			public const int message = 2131230812;
+			
+			// aapt resource value: 0x7F080005
+			public const int META = 2131230725;
+			
+			// aapt resource value: 0x7F08005D
+			public const int middle = 2131230813;
+			
+			// aapt resource value: 0x7F08005E
+			public const int min = 2131230814;
+			
+			// aapt resource value: 0x7F08005F
+			public const int month = 2131230815;
+			
+			// aapt resource value: 0x7F080060
+			public const int multiply = 2131230816;
+			
+			// aapt resource value: 0x7F080061
+			public const int myButton = 2131230817;
+			
+			// aapt resource value: 0x7F080062
+			public const int never = 2131230818;
+			
+			// aapt resource value: 0x7F080063
+			public const int none = 2131230819;
+			
+			// aapt resource value: 0x7F080064
+			public const int normal = 2131230820;
+			
+			// aapt resource value: 0x7F080065
+			public const int notification_background = 2131230821;
+			
+			// aapt resource value: 0x7F080066
+			public const int notification_main_column = 2131230822;
+			
+			// aapt resource value: 0x7F080067
+			public const int notification_main_column_container = 2131230823;
+			
+			// aapt resource value: 0x7F080068
+			public const int options1 = 2131230824;
+			
+			// aapt resource value: 0x7F080069
+			public const int options2 = 2131230825;
+			
+			// aapt resource value: 0x7F08006A
+			public const int options3 = 2131230826;
+			
+			// aapt resource value: 0x7F08006B
+			public const int optionspicker = 2131230827;
+			
+			// aapt resource value: 0x7F08006C
+			public const int outmost_container = 2131230828;
+			
+			// aapt resource value: 0x7F08006D
+			public const int parentPanel = 2131230829;
+			
+			// aapt resource value: 0x7F08006E
+			public const int progress_circular = 2131230830;
+			
+			// aapt resource value: 0x7F08006F
+			public const int progress_horizontal = 2131230831;
+			
+			// aapt resource value: 0x7F080070
+			public const int radio = 2131230832;
+			
+			// aapt resource value: 0x7F080071
+			public const int right = 2131230833;
+			
+			// aapt resource value: 0x7F080072
+			public const int right_icon = 2131230834;
+			
+			// aapt resource value: 0x7F080073
+			public const int right_side = 2131230835;
+			
+			// aapt resource value: 0x7F080074
+			public const int rv_topbar = 2131230836;
+			
+			// aapt resource value: 0x7F080075
+			public const int screen = 2131230837;
+			
+			// aapt resource value: 0x7F080076
+			public const int scrollIndicatorDown = 2131230838;
+			
+			// aapt resource value: 0x7F080077
+			public const int scrollIndicatorUp = 2131230839;
+			
+			// aapt resource value: 0x7F080078
+			public const int scrollView = 2131230840;
+			
+			// aapt resource value: 0x7F080079
+			public const int search_badge = 2131230841;
+			
+			// aapt resource value: 0x7F08007A
+			public const int search_bar = 2131230842;
+			
+			// aapt resource value: 0x7F08007B
+			public const int search_button = 2131230843;
+			
+			// aapt resource value: 0x7F08007C
+			public const int search_close_btn = 2131230844;
+			
+			// aapt resource value: 0x7F08007D
+			public const int search_edit_frame = 2131230845;
+			
+			// aapt resource value: 0x7F08007E
+			public const int search_go_btn = 2131230846;
+			
+			// aapt resource value: 0x7F08007F
+			public const int search_mag_icon = 2131230847;
+			
+			// aapt resource value: 0x7F080080
+			public const int search_plate = 2131230848;
+			
+			// aapt resource value: 0x7F080081
+			public const int search_src_text = 2131230849;
+			
+			// aapt resource value: 0x7F080082
+			public const int search_voice_btn = 2131230850;
+			
+			// aapt resource value: 0x7F080083
+			public const int second = 2131230851;
+			
+			// aapt resource value: 0x7F080084
+			public const int select_dialog_listview = 2131230852;
+			
+			// aapt resource value: 0x7F080006
+			public const int SHIFT = 2131230726;
+			
+			// aapt resource value: 0x7F080085
+			public const int shortcut = 2131230853;
+			
+			// aapt resource value: 0x7F080086
+			public const int showCustom = 2131230854;
+			
+			// aapt resource value: 0x7F080087
+			public const int showHome = 2131230855;
+			
+			// aapt resource value: 0x7F080088
+			public const int showTitle = 2131230856;
+			
+			// aapt resource value: 0x7F080089
+			public const int spacer = 2131230857;
+			
+			// aapt resource value: 0x7F08008A
+			public const int split_action_bar = 2131230858;
+			
+			// aapt resource value: 0x7F08008B
+			public const int src_atop = 2131230859;
+			
+			// aapt resource value: 0x7F08008C
+			public const int src_in = 2131230860;
+			
+			// aapt resource value: 0x7F08008D
+			public const int src_over = 2131230861;
+			
+			// aapt resource value: 0x7F08008E
+			public const int status = 2131230862;
+			
+			// aapt resource value: 0x7F08008F
+			public const int status_bar_latest_event_content = 2131230863;
+			
+			// aapt resource value: 0x7F080007
+			public const int STROKE = 2131230727;
+			
+			// aapt resource value: 0x7F080090
+			public const int submenuarrow = 2131230864;
+			
+			// aapt resource value: 0x7F080091
+			public const int submit_area = 2131230865;
+			
+			// aapt resource value: 0x7F080092
+			public const int subtitle = 2131230866;
+			
+			// aapt resource value: 0x7F080008
+			public const int SYM = 2131230728;
+			
+			// aapt resource value: 0x7F080093
+			public const int tabMode = 2131230867;
+			
+			// aapt resource value: 0x7F080094
+			public const int text = 2131230868;
+			
+			// aapt resource value: 0x7F080095
+			public const int text2 = 2131230869;
+			
+			// aapt resource value: 0x7F080096
+			public const int textSpacerNoButtons = 2131230870;
+			
+			// aapt resource value: 0x7F080097
+			public const int textSpacerNoTitle = 2131230871;
+			
+			// aapt resource value: 0x7F080098
+			public const int time = 2131230872;
+			
+			// aapt resource value: 0x7F080099
+			public const int timepicker = 2131230873;
+			
+			// aapt resource value: 0x7F08009A
+			public const int title = 2131230874;
+			
+			// aapt resource value: 0x7F08009B
+			public const int titleDividerNoCustom = 2131230875;
+			
+			// aapt resource value: 0x7F08009C
+			public const int title_template = 2131230876;
+			
+			// aapt resource value: 0x7F08009D
+			public const int top = 2131230877;
+			
+			// aapt resource value: 0x7F08009E
+			public const int topPanel = 2131230878;
+			
+			// aapt resource value: 0x7F08009F
+			public const int tvTitle = 2131230879;
+			
+			// aapt resource value: 0x7F0800A0
+			public const int uniform = 2131230880;
+			
+			// aapt resource value: 0x7F0800A1
+			public const int up = 2131230881;
+			
+			// aapt resource value: 0x7F0800A2
+			public const int useLogo = 2131230882;
+			
+			// aapt resource value: 0x7F0800A3
+			public const int withText = 2131230883;
+			
+			// aapt resource value: 0x7F0800A4
+			public const int wrap_content = 2131230884;
+			
+			// aapt resource value: 0x7F0800A5
+			public const int year = 2131230885;
 			
 			static Id()
 			{
@@ -937,13 +2773,22 @@
 		{
 			
 			// aapt resource value: 0x7F090000
-			public const int animation_default_duration = 2131296256;
+			public const int abc_config_activityDefaultDur = 2131296256;
 			
 			// aapt resource value: 0x7F090001
-			public const int cancel_button_image_alpha = 2131296257;
+			public const int abc_config_activityShortDur = 2131296257;
 			
 			// aapt resource value: 0x7F090002
-			public const int status_bar_notification_info_maxnum = 2131296258;
+			public const int animation_default_duration = 2131296258;
+			
+			// aapt resource value: 0x7F090003
+			public const int cancel_button_image_alpha = 2131296259;
+			
+			// aapt resource value: 0x7F090004
+			public const int config_tooltipAnimTime = 2131296260;
+			
+			// aapt resource value: 0x7F090005
+			public const int status_bar_notification_info_maxnum = 2131296261;
 			
 			static Integer()
 			{
@@ -959,76 +2804,175 @@
 		{
 			
 			// aapt resource value: 0x7F0A0000
-			public const int activity_geofence_round = 2131361792;
+			public const int abc_action_bar_title_item = 2131361792;
 			
 			// aapt resource value: 0x7F0A0001
-			public const int biometric_prompt_dialog_content = 2131361793;
+			public const int abc_action_bar_up_container = 2131361793;
 			
 			// aapt resource value: 0x7F0A0002
-			public const int hdl_gallery_banner_view_layout = 2131361794;
+			public const int abc_action_bar_view_list_nav_layout = 2131361794;
 			
 			// aapt resource value: 0x7F0A0003
-			public const int hdl_pickerview = 2131361795;
+			public const int abc_action_menu_item_layout = 2131361795;
 			
 			// aapt resource value: 0x7F0A0004
-			public const int include_pickerview_topbar = 2131361796;
+			public const int abc_action_menu_layout = 2131361796;
 			
 			// aapt resource value: 0x7F0A0005
-			public const int layout_basepickerview = 2131361797;
+			public const int abc_action_mode_bar = 2131361797;
 			
 			// aapt resource value: 0x7F0A0006
-			public const int Main = 2131361798;
+			public const int abc_action_mode_close_item_material = 2131361798;
 			
 			// aapt resource value: 0x7F0A0007
-			public const int notification_action = 2131361799;
+			public const int abc_activity_chooser_view = 2131361799;
 			
 			// aapt resource value: 0x7F0A0008
-			public const int notification_action_tombstone = 2131361800;
+			public const int abc_activity_chooser_view_list_item = 2131361800;
 			
 			// aapt resource value: 0x7F0A0009
-			public const int notification_media_action = 2131361801;
+			public const int abc_alert_dialog_button_bar_material = 2131361801;
 			
 			// aapt resource value: 0x7F0A000A
-			public const int notification_media_cancel_action = 2131361802;
+			public const int abc_alert_dialog_material = 2131361802;
 			
 			// aapt resource value: 0x7F0A000B
-			public const int notification_template_big_media = 2131361803;
+			public const int abc_alert_dialog_title_material = 2131361803;
 			
 			// aapt resource value: 0x7F0A000C
-			public const int notification_template_big_media_custom = 2131361804;
+			public const int abc_dialog_title_material = 2131361804;
 			
 			// aapt resource value: 0x7F0A000D
-			public const int notification_template_big_media_narrow = 2131361805;
+			public const int abc_expanded_menu_layout = 2131361805;
 			
 			// aapt resource value: 0x7F0A000E
-			public const int notification_template_big_media_narrow_custom = 2131361806;
+			public const int abc_list_menu_item_checkbox = 2131361806;
 			
 			// aapt resource value: 0x7F0A000F
-			public const int notification_template_custom_big = 2131361807;
+			public const int abc_list_menu_item_icon = 2131361807;
 			
 			// aapt resource value: 0x7F0A0010
-			public const int notification_template_icon_group = 2131361808;
+			public const int abc_list_menu_item_layout = 2131361808;
 			
 			// aapt resource value: 0x7F0A0011
-			public const int notification_template_lines_media = 2131361809;
+			public const int abc_list_menu_item_radio = 2131361809;
 			
 			// aapt resource value: 0x7F0A0012
-			public const int notification_template_media = 2131361810;
+			public const int abc_popup_menu_header_item_layout = 2131361810;
 			
 			// aapt resource value: 0x7F0A0013
-			public const int notification_template_media_custom = 2131361811;
+			public const int abc_popup_menu_item_layout = 2131361811;
 			
 			// aapt resource value: 0x7F0A0014
-			public const int notification_template_part_chronometer = 2131361812;
+			public const int abc_screen_content_include = 2131361812;
 			
 			// aapt resource value: 0x7F0A0015
-			public const int notification_template_part_time = 2131361813;
+			public const int abc_screen_simple = 2131361813;
 			
 			// aapt resource value: 0x7F0A0016
-			public const int pickerview_options = 2131361814;
+			public const int abc_screen_simple_overlay_action_mode = 2131361814;
 			
 			// aapt resource value: 0x7F0A0017
-			public const int pickerview_time = 2131361815;
+			public const int abc_screen_toolbar = 2131361815;
+			
+			// aapt resource value: 0x7F0A0018
+			public const int abc_search_dropdown_item_icons_2line = 2131361816;
+			
+			// aapt resource value: 0x7F0A0019
+			public const int abc_search_view = 2131361817;
+			
+			// aapt resource value: 0x7F0A001A
+			public const int abc_select_dialog_material = 2131361818;
+			
+			// aapt resource value: 0x7F0A001B
+			public const int biometric_prompt_dialog_content = 2131361819;
+			
+			// aapt resource value: 0x7F0A001C
+			public const int hdl_gallery_banner_view_layout = 2131361820;
+			
+			// aapt resource value: 0x7F0A001D
+			public const int hdl_widget_activity_crop_image = 2131361821;
+			
+			// aapt resource value: 0x7F0A001E
+			public const int hdl_widget_activity_geofence_round = 2131361822;
+			
+			// aapt resource value: 0x7F0A001F
+			public const int hdl_widget_include_pickerview_topbar = 2131361823;
+			
+			// aapt resource value: 0x7F0A0020
+			public const int hdl_widget_layout_basepickerview = 2131361824;
+			
+			// aapt resource value: 0x7F0A0021
+			public const int hdl_widget_pickerview = 2131361825;
+			
+			// aapt resource value: 0x7F0A0022
+			public const int hdl_widget_pickerview_options = 2131361826;
+			
+			// aapt resource value: 0x7F0A0023
+			public const int hdl_widget_pickerview_time = 2131361827;
+			
+			// aapt resource value: 0x7F0A0024
+			public const int Main = 2131361828;
+			
+			// aapt resource value: 0x7F0A0025
+			public const int notification_action = 2131361829;
+			
+			// aapt resource value: 0x7F0A0026
+			public const int notification_action_tombstone = 2131361830;
+			
+			// aapt resource value: 0x7F0A0027
+			public const int notification_media_action = 2131361831;
+			
+			// aapt resource value: 0x7F0A0028
+			public const int notification_media_cancel_action = 2131361832;
+			
+			// aapt resource value: 0x7F0A0029
+			public const int notification_template_big_media = 2131361833;
+			
+			// aapt resource value: 0x7F0A002A
+			public const int notification_template_big_media_custom = 2131361834;
+			
+			// aapt resource value: 0x7F0A002B
+			public const int notification_template_big_media_narrow = 2131361835;
+			
+			// aapt resource value: 0x7F0A002C
+			public const int notification_template_big_media_narrow_custom = 2131361836;
+			
+			// aapt resource value: 0x7F0A002D
+			public const int notification_template_custom_big = 2131361837;
+			
+			// aapt resource value: 0x7F0A002E
+			public const int notification_template_icon_group = 2131361838;
+			
+			// aapt resource value: 0x7F0A002F
+			public const int notification_template_lines_media = 2131361839;
+			
+			// aapt resource value: 0x7F0A0030
+			public const int notification_template_media = 2131361840;
+			
+			// aapt resource value: 0x7F0A0031
+			public const int notification_template_media_custom = 2131361841;
+			
+			// aapt resource value: 0x7F0A0032
+			public const int notification_template_part_chronometer = 2131361842;
+			
+			// aapt resource value: 0x7F0A0033
+			public const int notification_template_part_time = 2131361843;
+			
+			// aapt resource value: 0x7F0A0034
+			public const int select_dialog_item_material = 2131361844;
+			
+			// aapt resource value: 0x7F0A0035
+			public const int select_dialog_multichoice_material = 2131361845;
+			
+			// aapt resource value: 0x7F0A0036
+			public const int select_dialog_singlechoice_material = 2131361846;
+			
+			// aapt resource value: 0x7F0A0037
+			public const int support_simple_spinner_dropdown_item = 2131361847;
+			
+			// aapt resource value: 0x7F0A0038
+			public const int tooltip = 2131361848;
 			
 			static Layout()
 			{
@@ -1060,67 +3004,163 @@
 		{
 			
 			// aapt resource value: 0x7F0C0000
-			public const int app_name = 2131492864;
+			public const int abc_action_bar_home_description = 2131492864;
 			
 			// aapt resource value: 0x7F0C0001
-			public const int gd_activity_title = 2131492865;
+			public const int abc_action_bar_home_description_format = 2131492865;
 			
 			// aapt resource value: 0x7F0C0002
-			public const int gd_cancel = 2131492866;
+			public const int abc_action_bar_home_subtitle_description_format = 2131492866;
 			
 			// aapt resource value: 0x7F0C0003
-			public const int gd_myhome = 2131492867;
+			public const int abc_action_bar_up_description = 2131492867;
 			
 			// aapt resource value: 0x7F0C0004
-			public const int gd_notifyMsg = 2131492868;
+			public const int abc_action_menu_overflow_description = 2131492868;
 			
 			// aapt resource value: 0x7F0C0005
-			public const int gd_notifyTitle = 2131492869;
-			
-			// aapt resource value: 0x7F0C0006
-			public const int gd_save = 2131492870;
+			public const int abc_action_mode_done = 2131492869;
 			
 			// aapt resource value: 0x7F0C0007
-			public const int gd_search_tip = 2131492871;
+			public const int abc_activitychooserview_choose_application = 2131492871;
+			
+			// aapt resource value: 0x7F0C0006
+			public const int abc_activity_chooser_view_see_all = 2131492870;
 			
 			// aapt resource value: 0x7F0C0008
-			public const int gd_setting = 2131492872;
+			public const int abc_capital_off = 2131492872;
 			
 			// aapt resource value: 0x7F0C0009
-			public const int hello = 2131492873;
+			public const int abc_capital_on = 2131492873;
 			
 			// aapt resource value: 0x7F0C000A
-			public const int not_recognized_fingerprint_hint = 2131492874;
+			public const int abc_font_family_body_1_material = 2131492874;
 			
 			// aapt resource value: 0x7F0C000B
-			public const int pickerview_cancel = 2131492875;
+			public const int abc_font_family_body_2_material = 2131492875;
 			
 			// aapt resource value: 0x7F0C000C
-			public const int pickerview_day = 2131492876;
+			public const int abc_font_family_button_material = 2131492876;
 			
 			// aapt resource value: 0x7F0C000D
-			public const int pickerview_hours = 2131492877;
+			public const int abc_font_family_caption_material = 2131492877;
 			
 			// aapt resource value: 0x7F0C000E
-			public const int pickerview_minutes = 2131492878;
+			public const int abc_font_family_display_1_material = 2131492878;
 			
 			// aapt resource value: 0x7F0C000F
-			public const int pickerview_month = 2131492879;
+			public const int abc_font_family_display_2_material = 2131492879;
 			
 			// aapt resource value: 0x7F0C0010
-			public const int pickerview_seconds = 2131492880;
+			public const int abc_font_family_display_3_material = 2131492880;
 			
 			// aapt resource value: 0x7F0C0011
-			public const int pickerview_submit = 2131492881;
+			public const int abc_font_family_display_4_material = 2131492881;
 			
 			// aapt resource value: 0x7F0C0012
-			public const int pickerview_year = 2131492882;
+			public const int abc_font_family_headline_material = 2131492882;
 			
 			// aapt resource value: 0x7F0C0013
-			public const int status_bar_notification_info_overflow = 2131492883;
+			public const int abc_font_family_menu_material = 2131492883;
 			
 			// aapt resource value: 0x7F0C0014
-			public const int touch_fingerprint_sensor_hint = 2131492884;
+			public const int abc_font_family_subhead_material = 2131492884;
+			
+			// aapt resource value: 0x7F0C0015
+			public const int abc_font_family_title_material = 2131492885;
+			
+			// aapt resource value: 0x7F0C0017
+			public const int abc_searchview_description_clear = 2131492887;
+			
+			// aapt resource value: 0x7F0C0018
+			public const int abc_searchview_description_query = 2131492888;
+			
+			// aapt resource value: 0x7F0C0019
+			public const int abc_searchview_description_search = 2131492889;
+			
+			// aapt resource value: 0x7F0C001A
+			public const int abc_searchview_description_submit = 2131492890;
+			
+			// aapt resource value: 0x7F0C001B
+			public const int abc_searchview_description_voice = 2131492891;
+			
+			// aapt resource value: 0x7F0C0016
+			public const int abc_search_hint = 2131492886;
+			
+			// aapt resource value: 0x7F0C001C
+			public const int abc_shareactionprovider_share_with = 2131492892;
+			
+			// aapt resource value: 0x7F0C001D
+			public const int abc_shareactionprovider_share_with_application = 2131492893;
+			
+			// aapt resource value: 0x7F0C001E
+			public const int abc_toolbar_collapse_description = 2131492894;
+			
+			// aapt resource value: 0x7F0C001F
+			public const int app_name = 2131492895;
+			
+			// aapt resource value: 0x7F0C0020
+			public const int gd_activity_title = 2131492896;
+			
+			// aapt resource value: 0x7F0C0021
+			public const int gd_cancel = 2131492897;
+			
+			// aapt resource value: 0x7F0C0022
+			public const int gd_myhome = 2131492898;
+			
+			// aapt resource value: 0x7F0C0023
+			public const int gd_notifyMsg = 2131492899;
+			
+			// aapt resource value: 0x7F0C0024
+			public const int gd_notifyTitle = 2131492900;
+			
+			// aapt resource value: 0x7F0C0025
+			public const int gd_save = 2131492901;
+			
+			// aapt resource value: 0x7F0C0026
+			public const int gd_search_tip = 2131492902;
+			
+			// aapt resource value: 0x7F0C0027
+			public const int gd_setting = 2131492903;
+			
+			// aapt resource value: 0x7F0C0028
+			public const int hello = 2131492904;
+			
+			// aapt resource value: 0x7F0C0029
+			public const int not_recognized_fingerprint_hint = 2131492905;
+			
+			// aapt resource value: 0x7F0C002A
+			public const int pickerview_cancel = 2131492906;
+			
+			// aapt resource value: 0x7F0C002B
+			public const int pickerview_day = 2131492907;
+			
+			// aapt resource value: 0x7F0C002C
+			public const int pickerview_hours = 2131492908;
+			
+			// aapt resource value: 0x7F0C002D
+			public const int pickerview_minutes = 2131492909;
+			
+			// aapt resource value: 0x7F0C002E
+			public const int pickerview_month = 2131492910;
+			
+			// aapt resource value: 0x7F0C002F
+			public const int pickerview_seconds = 2131492911;
+			
+			// aapt resource value: 0x7F0C0030
+			public const int pickerview_submit = 2131492912;
+			
+			// aapt resource value: 0x7F0C0031
+			public const int pickerview_year = 2131492913;
+			
+			// aapt resource value: 0x7F0C0032
+			public const int search_menu_title = 2131492914;
+			
+			// aapt resource value: 0x7F0C0033
+			public const int status_bar_notification_info_overflow = 2131492915;
+			
+			// aapt resource value: 0x7F0C0034
+			public const int touch_fingerprint_sensor_hint = 2131492916;
 			
 			static String()
 			{
@@ -1136,58 +3176,1114 @@
 		{
 			
 			// aapt resource value: 0x7F0D0000
-			public const int BottomSheetDialogAnimation = 2131558400;
-			
-			// aapt resource value: 0x7F0D000F
-			public const int custom_dialog2 = 2131558415;
+			public const int AlertDialog_AppCompat = 2131558400;
 			
 			// aapt resource value: 0x7F0D0001
-			public const int MyTheme = 2131558401;
-			
-			// aapt resource value: 0x7F0D0010
-			public const int picker_view_scale_anim = 2131558416;
-			
-			// aapt resource value: 0x7F0D0011
-			public const int picker_view_slide_anim = 2131558417;
+			public const int AlertDialog_AppCompat_Light = 2131558401;
 			
 			// aapt resource value: 0x7F0D0002
-			public const int TextAppearance_Compat_Notification = 2131558402;
+			public const int Animation_AppCompat_Dialog = 2131558402;
 			
 			// aapt resource value: 0x7F0D0003
-			public const int TextAppearance_Compat_Notification_Info = 2131558403;
+			public const int Animation_AppCompat_DropDownUp = 2131558403;
 			
 			// aapt resource value: 0x7F0D0004
-			public const int TextAppearance_Compat_Notification_Info_Media = 2131558404;
+			public const int Animation_AppCompat_Tooltip = 2131558404;
 			
 			// aapt resource value: 0x7F0D0005
-			public const int TextAppearance_Compat_Notification_Line2 = 2131558405;
+			public const int Base_AlertDialog_AppCompat = 2131558405;
 			
 			// aapt resource value: 0x7F0D0006
-			public const int TextAppearance_Compat_Notification_Line2_Media = 2131558406;
+			public const int Base_AlertDialog_AppCompat_Light = 2131558406;
 			
 			// aapt resource value: 0x7F0D0007
-			public const int TextAppearance_Compat_Notification_Media = 2131558407;
+			public const int Base_Animation_AppCompat_Dialog = 2131558407;
 			
 			// aapt resource value: 0x7F0D0008
-			public const int TextAppearance_Compat_Notification_Time = 2131558408;
+			public const int Base_Animation_AppCompat_DropDownUp = 2131558408;
 			
 			// aapt resource value: 0x7F0D0009
-			public const int TextAppearance_Compat_Notification_Time_Media = 2131558409;
-			
-			// aapt resource value: 0x7F0D000A
-			public const int TextAppearance_Compat_Notification_Title = 2131558410;
+			public const int Base_Animation_AppCompat_Tooltip = 2131558409;
 			
 			// aapt resource value: 0x7F0D000B
-			public const int TextAppearance_Compat_Notification_Title_Media = 2131558411;
+			public const int Base_DialogWindowTitleBackground_AppCompat = 2131558411;
+			
+			// aapt resource value: 0x7F0D000A
+			public const int Base_DialogWindowTitle_AppCompat = 2131558410;
 			
 			// aapt resource value: 0x7F0D000C
-			public const int Theme_BiometricPromptDialog = 2131558412;
+			public const int Base_TextAppearance_AppCompat = 2131558412;
 			
 			// aapt resource value: 0x7F0D000D
-			public const int Widget_Compat_NotificationActionContainer = 2131558413;
+			public const int Base_TextAppearance_AppCompat_Body1 = 2131558413;
 			
 			// aapt resource value: 0x7F0D000E
-			public const int Widget_Compat_NotificationActionText = 2131558414;
+			public const int Base_TextAppearance_AppCompat_Body2 = 2131558414;
+			
+			// aapt resource value: 0x7F0D000F
+			public const int Base_TextAppearance_AppCompat_Button = 2131558415;
+			
+			// aapt resource value: 0x7F0D0010
+			public const int Base_TextAppearance_AppCompat_Caption = 2131558416;
+			
+			// aapt resource value: 0x7F0D0011
+			public const int Base_TextAppearance_AppCompat_Display1 = 2131558417;
+			
+			// aapt resource value: 0x7F0D0012
+			public const int Base_TextAppearance_AppCompat_Display2 = 2131558418;
+			
+			// aapt resource value: 0x7F0D0013
+			public const int Base_TextAppearance_AppCompat_Display3 = 2131558419;
+			
+			// aapt resource value: 0x7F0D0014
+			public const int Base_TextAppearance_AppCompat_Display4 = 2131558420;
+			
+			// aapt resource value: 0x7F0D0015
+			public const int Base_TextAppearance_AppCompat_Headline = 2131558421;
+			
+			// aapt resource value: 0x7F0D0016
+			public const int Base_TextAppearance_AppCompat_Inverse = 2131558422;
+			
+			// aapt resource value: 0x7F0D0017
+			public const int Base_TextAppearance_AppCompat_Large = 2131558423;
+			
+			// aapt resource value: 0x7F0D0018
+			public const int Base_TextAppearance_AppCompat_Large_Inverse = 2131558424;
+			
+			// aapt resource value: 0x7F0D0019
+			public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131558425;
+			
+			// aapt resource value: 0x7F0D001A
+			public const int Base_TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131558426;
+			
+			// aapt resource value: 0x7F0D001B
+			public const int Base_TextAppearance_AppCompat_Medium = 2131558427;
+			
+			// aapt resource value: 0x7F0D001C
+			public const int Base_TextAppearance_AppCompat_Medium_Inverse = 2131558428;
+			
+			// aapt resource value: 0x7F0D001D
+			public const int Base_TextAppearance_AppCompat_Menu = 2131558429;
+			
+			// aapt resource value: 0x7F0D001E
+			public const int Base_TextAppearance_AppCompat_SearchResult = 2131558430;
+			
+			// aapt resource value: 0x7F0D001F
+			public const int Base_TextAppearance_AppCompat_SearchResult_Subtitle = 2131558431;
+			
+			// aapt resource value: 0x7F0D0020
+			public const int Base_TextAppearance_AppCompat_SearchResult_Title = 2131558432;
+			
+			// aapt resource value: 0x7F0D0021
+			public const int Base_TextAppearance_AppCompat_Small = 2131558433;
+			
+			// aapt resource value: 0x7F0D0022
+			public const int Base_TextAppearance_AppCompat_Small_Inverse = 2131558434;
+			
+			// aapt resource value: 0x7F0D0023
+			public const int Base_TextAppearance_AppCompat_Subhead = 2131558435;
+			
+			// aapt resource value: 0x7F0D0024
+			public const int Base_TextAppearance_AppCompat_Subhead_Inverse = 2131558436;
+			
+			// aapt resource value: 0x7F0D0025
+			public const int Base_TextAppearance_AppCompat_Title = 2131558437;
+			
+			// aapt resource value: 0x7F0D0026
+			public const int Base_TextAppearance_AppCompat_Title_Inverse = 2131558438;
+			
+			// aapt resource value: 0x7F0D0027
+			public const int Base_TextAppearance_AppCompat_Tooltip = 2131558439;
+			
+			// aapt resource value: 0x7F0D0028
+			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131558440;
+			
+			// aapt resource value: 0x7F0D0029
+			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131558441;
+			
+			// aapt resource value: 0x7F0D002A
+			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131558442;
+			
+			// aapt resource value: 0x7F0D002B
+			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title = 2131558443;
+			
+			// aapt resource value: 0x7F0D002C
+			public const int Base_TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131558444;
+			
+			// aapt resource value: 0x7F0D002D
+			public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131558445;
+			
+			// aapt resource value: 0x7F0D002E
+			public const int Base_TextAppearance_AppCompat_Widget_ActionMode_Title = 2131558446;
+			
+			// aapt resource value: 0x7F0D002F
+			public const int Base_TextAppearance_AppCompat_Widget_Button = 2131558447;
+			
+			// aapt resource value: 0x7F0D0030
+			public const int Base_TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131558448;
+			
+			// aapt resource value: 0x7F0D0031
+			public const int Base_TextAppearance_AppCompat_Widget_Button_Colored = 2131558449;
+			
+			// aapt resource value: 0x7F0D0032
+			public const int Base_TextAppearance_AppCompat_Widget_Button_Inverse = 2131558450;
+			
+			// aapt resource value: 0x7F0D0033
+			public const int Base_TextAppearance_AppCompat_Widget_DropDownItem = 2131558451;
+			
+			// aapt resource value: 0x7F0D0034
+			public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131558452;
+			
+			// aapt resource value: 0x7F0D0035
+			public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131558453;
+			
+			// aapt resource value: 0x7F0D0036
+			public const int Base_TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131558454;
+			
+			// aapt resource value: 0x7F0D0037
+			public const int Base_TextAppearance_AppCompat_Widget_Switch = 2131558455;
+			
+			// aapt resource value: 0x7F0D0038
+			public const int Base_TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131558456;
+			
+			// aapt resource value: 0x7F0D0039
+			public const int Base_TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131558457;
+			
+			// aapt resource value: 0x7F0D003A
+			public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131558458;
+			
+			// aapt resource value: 0x7F0D003B
+			public const int Base_TextAppearance_Widget_AppCompat_Toolbar_Title = 2131558459;
+			
+			// aapt resource value: 0x7F0D004A
+			public const int Base_ThemeOverlay_AppCompat = 2131558474;
+			
+			// aapt resource value: 0x7F0D004B
+			public const int Base_ThemeOverlay_AppCompat_ActionBar = 2131558475;
+			
+			// aapt resource value: 0x7F0D004C
+			public const int Base_ThemeOverlay_AppCompat_Dark = 2131558476;
+			
+			// aapt resource value: 0x7F0D004D
+			public const int Base_ThemeOverlay_AppCompat_Dark_ActionBar = 2131558477;
+			
+			// aapt resource value: 0x7F0D004E
+			public const int Base_ThemeOverlay_AppCompat_Dialog = 2131558478;
+			
+			// aapt resource value: 0x7F0D004F
+			public const int Base_ThemeOverlay_AppCompat_Dialog_Alert = 2131558479;
+			
+			// aapt resource value: 0x7F0D0050
+			public const int Base_ThemeOverlay_AppCompat_Light = 2131558480;
+			
+			// aapt resource value: 0x7F0D003C
+			public const int Base_Theme_AppCompat = 2131558460;
+			
+			// aapt resource value: 0x7F0D003D
+			public const int Base_Theme_AppCompat_CompactMenu = 2131558461;
+			
+			// aapt resource value: 0x7F0D003E
+			public const int Base_Theme_AppCompat_Dialog = 2131558462;
+			
+			// aapt resource value: 0x7F0D0042
+			public const int Base_Theme_AppCompat_DialogWhenLarge = 2131558466;
+			
+			// aapt resource value: 0x7F0D003F
+			public const int Base_Theme_AppCompat_Dialog_Alert = 2131558463;
+			
+			// aapt resource value: 0x7F0D0040
+			public const int Base_Theme_AppCompat_Dialog_FixedSize = 2131558464;
+			
+			// aapt resource value: 0x7F0D0041
+			public const int Base_Theme_AppCompat_Dialog_MinWidth = 2131558465;
+			
+			// aapt resource value: 0x7F0D0043
+			public const int Base_Theme_AppCompat_Light = 2131558467;
+			
+			// aapt resource value: 0x7F0D0044
+			public const int Base_Theme_AppCompat_Light_DarkActionBar = 2131558468;
+			
+			// aapt resource value: 0x7F0D0045
+			public const int Base_Theme_AppCompat_Light_Dialog = 2131558469;
+			
+			// aapt resource value: 0x7F0D0049
+			public const int Base_Theme_AppCompat_Light_DialogWhenLarge = 2131558473;
+			
+			// aapt resource value: 0x7F0D0046
+			public const int Base_Theme_AppCompat_Light_Dialog_Alert = 2131558470;
+			
+			// aapt resource value: 0x7F0D0047
+			public const int Base_Theme_AppCompat_Light_Dialog_FixedSize = 2131558471;
+			
+			// aapt resource value: 0x7F0D0048
+			public const int Base_Theme_AppCompat_Light_Dialog_MinWidth = 2131558472;
+			
+			// aapt resource value: 0x7F0D0053
+			public const int Base_V11_ThemeOverlay_AppCompat_Dialog = 2131558483;
+			
+			// aapt resource value: 0x7F0D0051
+			public const int Base_V11_Theme_AppCompat_Dialog = 2131558481;
+			
+			// aapt resource value: 0x7F0D0052
+			public const int Base_V11_Theme_AppCompat_Light_Dialog = 2131558482;
+			
+			// aapt resource value: 0x7F0D0054
+			public const int Base_V12_Widget_AppCompat_AutoCompleteTextView = 2131558484;
+			
+			// aapt resource value: 0x7F0D0055
+			public const int Base_V12_Widget_AppCompat_EditText = 2131558485;
+			
+			// aapt resource value: 0x7F0D005A
+			public const int Base_V21_ThemeOverlay_AppCompat_Dialog = 2131558490;
+			
+			// aapt resource value: 0x7F0D0056
+			public const int Base_V21_Theme_AppCompat = 2131558486;
+			
+			// aapt resource value: 0x7F0D0057
+			public const int Base_V21_Theme_AppCompat_Dialog = 2131558487;
+			
+			// aapt resource value: 0x7F0D0058
+			public const int Base_V21_Theme_AppCompat_Light = 2131558488;
+			
+			// aapt resource value: 0x7F0D0059
+			public const int Base_V21_Theme_AppCompat_Light_Dialog = 2131558489;
+			
+			// aapt resource value: 0x7F0D005B
+			public const int Base_V22_Theme_AppCompat = 2131558491;
+			
+			// aapt resource value: 0x7F0D005C
+			public const int Base_V22_Theme_AppCompat_Light = 2131558492;
+			
+			// aapt resource value: 0x7F0D005D
+			public const int Base_V23_Theme_AppCompat = 2131558493;
+			
+			// aapt resource value: 0x7F0D005E
+			public const int Base_V23_Theme_AppCompat_Light = 2131558494;
+			
+			// aapt resource value: 0x7F0D005F
+			public const int Base_V26_Theme_AppCompat = 2131558495;
+			
+			// aapt resource value: 0x7F0D0060
+			public const int Base_V26_Theme_AppCompat_Light = 2131558496;
+			
+			// aapt resource value: 0x7F0D0061
+			public const int Base_V26_Widget_AppCompat_Toolbar = 2131558497;
+			
+			// aapt resource value: 0x7F0D0066
+			public const int Base_V7_ThemeOverlay_AppCompat_Dialog = 2131558502;
+			
+			// aapt resource value: 0x7F0D0062
+			public const int Base_V7_Theme_AppCompat = 2131558498;
+			
+			// aapt resource value: 0x7F0D0063
+			public const int Base_V7_Theme_AppCompat_Dialog = 2131558499;
+			
+			// aapt resource value: 0x7F0D0064
+			public const int Base_V7_Theme_AppCompat_Light = 2131558500;
+			
+			// aapt resource value: 0x7F0D0065
+			public const int Base_V7_Theme_AppCompat_Light_Dialog = 2131558501;
+			
+			// aapt resource value: 0x7F0D0067
+			public const int Base_V7_Widget_AppCompat_AutoCompleteTextView = 2131558503;
+			
+			// aapt resource value: 0x7F0D0068
+			public const int Base_V7_Widget_AppCompat_EditText = 2131558504;
+			
+			// aapt resource value: 0x7F0D0069
+			public const int Base_V7_Widget_AppCompat_Toolbar = 2131558505;
+			
+			// aapt resource value: 0x7F0D006A
+			public const int Base_Widget_AppCompat_ActionBar = 2131558506;
+			
+			// aapt resource value: 0x7F0D006B
+			public const int Base_Widget_AppCompat_ActionBar_Solid = 2131558507;
+			
+			// aapt resource value: 0x7F0D006C
+			public const int Base_Widget_AppCompat_ActionBar_TabBar = 2131558508;
+			
+			// aapt resource value: 0x7F0D006D
+			public const int Base_Widget_AppCompat_ActionBar_TabText = 2131558509;
+			
+			// aapt resource value: 0x7F0D006E
+			public const int Base_Widget_AppCompat_ActionBar_TabView = 2131558510;
+			
+			// aapt resource value: 0x7F0D006F
+			public const int Base_Widget_AppCompat_ActionButton = 2131558511;
+			
+			// aapt resource value: 0x7F0D0070
+			public const int Base_Widget_AppCompat_ActionButton_CloseMode = 2131558512;
+			
+			// aapt resource value: 0x7F0D0071
+			public const int Base_Widget_AppCompat_ActionButton_Overflow = 2131558513;
+			
+			// aapt resource value: 0x7F0D0072
+			public const int Base_Widget_AppCompat_ActionMode = 2131558514;
+			
+			// aapt resource value: 0x7F0D0073
+			public const int Base_Widget_AppCompat_ActivityChooserView = 2131558515;
+			
+			// aapt resource value: 0x7F0D0074
+			public const int Base_Widget_AppCompat_AutoCompleteTextView = 2131558516;
+			
+			// aapt resource value: 0x7F0D0075
+			public const int Base_Widget_AppCompat_Button = 2131558517;
+			
+			// aapt resource value: 0x7F0D007B
+			public const int Base_Widget_AppCompat_ButtonBar = 2131558523;
+			
+			// aapt resource value: 0x7F0D007C
+			public const int Base_Widget_AppCompat_ButtonBar_AlertDialog = 2131558524;
+			
+			// aapt resource value: 0x7F0D0076
+			public const int Base_Widget_AppCompat_Button_Borderless = 2131558518;
+			
+			// aapt resource value: 0x7F0D0077
+			public const int Base_Widget_AppCompat_Button_Borderless_Colored = 2131558519;
+			
+			// aapt resource value: 0x7F0D0078
+			public const int Base_Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131558520;
+			
+			// aapt resource value: 0x7F0D0079
+			public const int Base_Widget_AppCompat_Button_Colored = 2131558521;
+			
+			// aapt resource value: 0x7F0D007A
+			public const int Base_Widget_AppCompat_Button_Small = 2131558522;
+			
+			// aapt resource value: 0x7F0D007D
+			public const int Base_Widget_AppCompat_CompoundButton_CheckBox = 2131558525;
+			
+			// aapt resource value: 0x7F0D007E
+			public const int Base_Widget_AppCompat_CompoundButton_RadioButton = 2131558526;
+			
+			// aapt resource value: 0x7F0D007F
+			public const int Base_Widget_AppCompat_CompoundButton_Switch = 2131558527;
+			
+			// aapt resource value: 0x7F0D0080
+			public const int Base_Widget_AppCompat_DrawerArrowToggle = 2131558528;
+			
+			// aapt resource value: 0x7F0D0081
+			public const int Base_Widget_AppCompat_DrawerArrowToggle_Common = 2131558529;
+			
+			// aapt resource value: 0x7F0D0082
+			public const int Base_Widget_AppCompat_DropDownItem_Spinner = 2131558530;
+			
+			// aapt resource value: 0x7F0D0083
+			public const int Base_Widget_AppCompat_EditText = 2131558531;
+			
+			// aapt resource value: 0x7F0D0084
+			public const int Base_Widget_AppCompat_ImageButton = 2131558532;
+			
+			// aapt resource value: 0x7F0D0085
+			public const int Base_Widget_AppCompat_Light_ActionBar = 2131558533;
+			
+			// aapt resource value: 0x7F0D0086
+			public const int Base_Widget_AppCompat_Light_ActionBar_Solid = 2131558534;
+			
+			// aapt resource value: 0x7F0D0087
+			public const int Base_Widget_AppCompat_Light_ActionBar_TabBar = 2131558535;
+			
+			// aapt resource value: 0x7F0D0088
+			public const int Base_Widget_AppCompat_Light_ActionBar_TabText = 2131558536;
+			
+			// aapt resource value: 0x7F0D0089
+			public const int Base_Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131558537;
+			
+			// aapt resource value: 0x7F0D008A
+			public const int Base_Widget_AppCompat_Light_ActionBar_TabView = 2131558538;
+			
+			// aapt resource value: 0x7F0D008B
+			public const int Base_Widget_AppCompat_Light_PopupMenu = 2131558539;
+			
+			// aapt resource value: 0x7F0D008C
+			public const int Base_Widget_AppCompat_Light_PopupMenu_Overflow = 2131558540;
+			
+			// aapt resource value: 0x7F0D008D
+			public const int Base_Widget_AppCompat_ListMenuView = 2131558541;
+			
+			// aapt resource value: 0x7F0D008E
+			public const int Base_Widget_AppCompat_ListPopupWindow = 2131558542;
+			
+			// aapt resource value: 0x7F0D008F
+			public const int Base_Widget_AppCompat_ListView = 2131558543;
+			
+			// aapt resource value: 0x7F0D0090
+			public const int Base_Widget_AppCompat_ListView_DropDown = 2131558544;
+			
+			// aapt resource value: 0x7F0D0091
+			public const int Base_Widget_AppCompat_ListView_Menu = 2131558545;
+			
+			// aapt resource value: 0x7F0D0092
+			public const int Base_Widget_AppCompat_PopupMenu = 2131558546;
+			
+			// aapt resource value: 0x7F0D0093
+			public const int Base_Widget_AppCompat_PopupMenu_Overflow = 2131558547;
+			
+			// aapt resource value: 0x7F0D0094
+			public const int Base_Widget_AppCompat_PopupWindow = 2131558548;
+			
+			// aapt resource value: 0x7F0D0095
+			public const int Base_Widget_AppCompat_ProgressBar = 2131558549;
+			
+			// aapt resource value: 0x7F0D0096
+			public const int Base_Widget_AppCompat_ProgressBar_Horizontal = 2131558550;
+			
+			// aapt resource value: 0x7F0D0097
+			public const int Base_Widget_AppCompat_RatingBar = 2131558551;
+			
+			// aapt resource value: 0x7F0D0098
+			public const int Base_Widget_AppCompat_RatingBar_Indicator = 2131558552;
+			
+			// aapt resource value: 0x7F0D0099
+			public const int Base_Widget_AppCompat_RatingBar_Small = 2131558553;
+			
+			// aapt resource value: 0x7F0D009A
+			public const int Base_Widget_AppCompat_SearchView = 2131558554;
+			
+			// aapt resource value: 0x7F0D009B
+			public const int Base_Widget_AppCompat_SearchView_ActionBar = 2131558555;
+			
+			// aapt resource value: 0x7F0D009C
+			public const int Base_Widget_AppCompat_SeekBar = 2131558556;
+			
+			// aapt resource value: 0x7F0D009D
+			public const int Base_Widget_AppCompat_SeekBar_Discrete = 2131558557;
+			
+			// aapt resource value: 0x7F0D009E
+			public const int Base_Widget_AppCompat_Spinner = 2131558558;
+			
+			// aapt resource value: 0x7F0D009F
+			public const int Base_Widget_AppCompat_Spinner_Underlined = 2131558559;
+			
+			// aapt resource value: 0x7F0D00A0
+			public const int Base_Widget_AppCompat_TextView_SpinnerItem = 2131558560;
+			
+			// aapt resource value: 0x7F0D00A1
+			public const int Base_Widget_AppCompat_Toolbar = 2131558561;
+			
+			// aapt resource value: 0x7F0D00A2
+			public const int Base_Widget_AppCompat_Toolbar_Button_Navigation = 2131558562;
+			
+			// aapt resource value: 0x7F0D00A3
+			public const int BottomSheetDialogAnimation = 2131558563;
+			
+			// aapt resource value: 0x7F0D016F
+			public const int custom_dialog2 = 2131558767;
+			
+			// aapt resource value: 0x7F0D00A4
+			public const int MyTheme = 2131558564;
+			
+			// aapt resource value: 0x7F0D0170
+			public const int picker_view_scale_anim = 2131558768;
+			
+			// aapt resource value: 0x7F0D0171
+			public const int picker_view_slide_anim = 2131558769;
+			
+			// aapt resource value: 0x7F0D00A5
+			public const int Platform_AppCompat = 2131558565;
+			
+			// aapt resource value: 0x7F0D00A6
+			public const int Platform_AppCompat_Light = 2131558566;
+			
+			// aapt resource value: 0x7F0D00A7
+			public const int Platform_ThemeOverlay_AppCompat = 2131558567;
+			
+			// aapt resource value: 0x7F0D00A8
+			public const int Platform_ThemeOverlay_AppCompat_Dark = 2131558568;
+			
+			// aapt resource value: 0x7F0D00A9
+			public const int Platform_ThemeOverlay_AppCompat_Light = 2131558569;
+			
+			// aapt resource value: 0x7F0D00AA
+			public const int Platform_V11_AppCompat = 2131558570;
+			
+			// aapt resource value: 0x7F0D00AB
+			public const int Platform_V11_AppCompat_Light = 2131558571;
+			
+			// aapt resource value: 0x7F0D00AC
+			public const int Platform_V14_AppCompat = 2131558572;
+			
+			// aapt resource value: 0x7F0D00AD
+			public const int Platform_V14_AppCompat_Light = 2131558573;
+			
+			// aapt resource value: 0x7F0D00AE
+			public const int Platform_V21_AppCompat = 2131558574;
+			
+			// aapt resource value: 0x7F0D00AF
+			public const int Platform_V21_AppCompat_Light = 2131558575;
+			
+			// aapt resource value: 0x7F0D00B0
+			public const int Platform_V25_AppCompat = 2131558576;
+			
+			// aapt resource value: 0x7F0D00B1
+			public const int Platform_V25_AppCompat_Light = 2131558577;
+			
+			// aapt resource value: 0x7F0D00B2
+			public const int Platform_Widget_AppCompat_Spinner = 2131558578;
+			
+			// aapt resource value: 0x7F0D00B3
+			public const int RtlOverlay_DialogWindowTitle_AppCompat = 2131558579;
+			
+			// aapt resource value: 0x7F0D00B4
+			public const int RtlOverlay_Widget_AppCompat_ActionBar_TitleItem = 2131558580;
+			
+			// aapt resource value: 0x7F0D00B5
+			public const int RtlOverlay_Widget_AppCompat_DialogTitle_Icon = 2131558581;
+			
+			// aapt resource value: 0x7F0D00B6
+			public const int RtlOverlay_Widget_AppCompat_PopupMenuItem = 2131558582;
+			
+			// aapt resource value: 0x7F0D00B7
+			public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_InternalGroup = 2131558583;
+			
+			// aapt resource value: 0x7F0D00B8
+			public const int RtlOverlay_Widget_AppCompat_PopupMenuItem_Text = 2131558584;
+			
+			// aapt resource value: 0x7F0D00BE
+			public const int RtlOverlay_Widget_AppCompat_SearchView_MagIcon = 2131558590;
+			
+			// aapt resource value: 0x7F0D00B9
+			public const int RtlOverlay_Widget_AppCompat_Search_DropDown = 2131558585;
+			
+			// aapt resource value: 0x7F0D00BA
+			public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon1 = 2131558586;
+			
+			// aapt resource value: 0x7F0D00BB
+			public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Icon2 = 2131558587;
+			
+			// aapt resource value: 0x7F0D00BC
+			public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Query = 2131558588;
+			
+			// aapt resource value: 0x7F0D00BD
+			public const int RtlOverlay_Widget_AppCompat_Search_DropDown_Text = 2131558589;
+			
+			// aapt resource value: 0x7F0D00BF
+			public const int RtlUnderlay_Widget_AppCompat_ActionButton = 2131558591;
+			
+			// aapt resource value: 0x7F0D00C0
+			public const int RtlUnderlay_Widget_AppCompat_ActionButton_Overflow = 2131558592;
+			
+			// aapt resource value: 0x7F0D00C1
+			public const int TextAppearance_AppCompat = 2131558593;
+			
+			// aapt resource value: 0x7F0D00C2
+			public const int TextAppearance_AppCompat_Body1 = 2131558594;
+			
+			// aapt resource value: 0x7F0D00C3
+			public const int TextAppearance_AppCompat_Body2 = 2131558595;
+			
+			// aapt resource value: 0x7F0D00C4
+			public const int TextAppearance_AppCompat_Button = 2131558596;
+			
+			// aapt resource value: 0x7F0D00C5
+			public const int TextAppearance_AppCompat_Caption = 2131558597;
+			
+			// aapt resource value: 0x7F0D00C6
+			public const int TextAppearance_AppCompat_Display1 = 2131558598;
+			
+			// aapt resource value: 0x7F0D00C7
+			public const int TextAppearance_AppCompat_Display2 = 2131558599;
+			
+			// aapt resource value: 0x7F0D00C8
+			public const int TextAppearance_AppCompat_Display3 = 2131558600;
+			
+			// aapt resource value: 0x7F0D00C9
+			public const int TextAppearance_AppCompat_Display4 = 2131558601;
+			
+			// aapt resource value: 0x7F0D00CA
+			public const int TextAppearance_AppCompat_Headline = 2131558602;
+			
+			// aapt resource value: 0x7F0D00CB
+			public const int TextAppearance_AppCompat_Inverse = 2131558603;
+			
+			// aapt resource value: 0x7F0D00CC
+			public const int TextAppearance_AppCompat_Large = 2131558604;
+			
+			// aapt resource value: 0x7F0D00CD
+			public const int TextAppearance_AppCompat_Large_Inverse = 2131558605;
+			
+			// aapt resource value: 0x7F0D00CE
+			public const int TextAppearance_AppCompat_Light_SearchResult_Subtitle = 2131558606;
+			
+			// aapt resource value: 0x7F0D00CF
+			public const int TextAppearance_AppCompat_Light_SearchResult_Title = 2131558607;
+			
+			// aapt resource value: 0x7F0D00D0
+			public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Large = 2131558608;
+			
+			// aapt resource value: 0x7F0D00D1
+			public const int TextAppearance_AppCompat_Light_Widget_PopupMenu_Small = 2131558609;
+			
+			// aapt resource value: 0x7F0D00D2
+			public const int TextAppearance_AppCompat_Medium = 2131558610;
+			
+			// aapt resource value: 0x7F0D00D3
+			public const int TextAppearance_AppCompat_Medium_Inverse = 2131558611;
+			
+			// aapt resource value: 0x7F0D00D4
+			public const int TextAppearance_AppCompat_Menu = 2131558612;
+			
+			// aapt resource value: 0x7F0D00D5
+			public const int TextAppearance_AppCompat_Notification = 2131558613;
+			
+			// aapt resource value: 0x7F0D00D6
+			public const int TextAppearance_AppCompat_Notification_Info = 2131558614;
+			
+			// aapt resource value: 0x7F0D00D7
+			public const int TextAppearance_AppCompat_Notification_Info_Media = 2131558615;
+			
+			// aapt resource value: 0x7F0D00D8
+			public const int TextAppearance_AppCompat_Notification_Line2 = 2131558616;
+			
+			// aapt resource value: 0x7F0D00D9
+			public const int TextAppearance_AppCompat_Notification_Line2_Media = 2131558617;
+			
+			// aapt resource value: 0x7F0D00DA
+			public const int TextAppearance_AppCompat_Notification_Media = 2131558618;
+			
+			// aapt resource value: 0x7F0D00DB
+			public const int TextAppearance_AppCompat_Notification_Time = 2131558619;
+			
+			// aapt resource value: 0x7F0D00DC
+			public const int TextAppearance_AppCompat_Notification_Time_Media = 2131558620;
+			
+			// aapt resource value: 0x7F0D00DD
+			public const int TextAppearance_AppCompat_Notification_Title = 2131558621;
+			
+			// aapt resource value: 0x7F0D00DE
+			public const int TextAppearance_AppCompat_Notification_Title_Media = 2131558622;
+			
+			// aapt resource value: 0x7F0D00DF
+			public const int TextAppearance_AppCompat_SearchResult_Subtitle = 2131558623;
+			
+			// aapt resource value: 0x7F0D00E0
+			public const int TextAppearance_AppCompat_SearchResult_Title = 2131558624;
+			
+			// aapt resource value: 0x7F0D00E1
+			public const int TextAppearance_AppCompat_Small = 2131558625;
+			
+			// aapt resource value: 0x7F0D00E2
+			public const int TextAppearance_AppCompat_Small_Inverse = 2131558626;
+			
+			// aapt resource value: 0x7F0D00E3
+			public const int TextAppearance_AppCompat_Subhead = 2131558627;
+			
+			// aapt resource value: 0x7F0D00E4
+			public const int TextAppearance_AppCompat_Subhead_Inverse = 2131558628;
+			
+			// aapt resource value: 0x7F0D00E5
+			public const int TextAppearance_AppCompat_Title = 2131558629;
+			
+			// aapt resource value: 0x7F0D00E6
+			public const int TextAppearance_AppCompat_Title_Inverse = 2131558630;
+			
+			// aapt resource value: 0x7F0D00E7
+			public const int TextAppearance_AppCompat_Tooltip = 2131558631;
+			
+			// aapt resource value: 0x7F0D00E8
+			public const int TextAppearance_AppCompat_Widget_ActionBar_Menu = 2131558632;
+			
+			// aapt resource value: 0x7F0D00E9
+			public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle = 2131558633;
+			
+			// aapt resource value: 0x7F0D00EA
+			public const int TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse = 2131558634;
+			
+			// aapt resource value: 0x7F0D00EB
+			public const int TextAppearance_AppCompat_Widget_ActionBar_Title = 2131558635;
+			
+			// aapt resource value: 0x7F0D00EC
+			public const int TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse = 2131558636;
+			
+			// aapt resource value: 0x7F0D00ED
+			public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle = 2131558637;
+			
+			// aapt resource value: 0x7F0D00EE
+			public const int TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse = 2131558638;
+			
+			// aapt resource value: 0x7F0D00EF
+			public const int TextAppearance_AppCompat_Widget_ActionMode_Title = 2131558639;
+			
+			// aapt resource value: 0x7F0D00F0
+			public const int TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse = 2131558640;
+			
+			// aapt resource value: 0x7F0D00F1
+			public const int TextAppearance_AppCompat_Widget_Button = 2131558641;
+			
+			// aapt resource value: 0x7F0D00F2
+			public const int TextAppearance_AppCompat_Widget_Button_Borderless_Colored = 2131558642;
+			
+			// aapt resource value: 0x7F0D00F3
+			public const int TextAppearance_AppCompat_Widget_Button_Colored = 2131558643;
+			
+			// aapt resource value: 0x7F0D00F4
+			public const int TextAppearance_AppCompat_Widget_Button_Inverse = 2131558644;
+			
+			// aapt resource value: 0x7F0D00F5
+			public const int TextAppearance_AppCompat_Widget_DropDownItem = 2131558645;
+			
+			// aapt resource value: 0x7F0D00F6
+			public const int TextAppearance_AppCompat_Widget_PopupMenu_Header = 2131558646;
+			
+			// aapt resource value: 0x7F0D00F7
+			public const int TextAppearance_AppCompat_Widget_PopupMenu_Large = 2131558647;
+			
+			// aapt resource value: 0x7F0D00F8
+			public const int TextAppearance_AppCompat_Widget_PopupMenu_Small = 2131558648;
+			
+			// aapt resource value: 0x7F0D00F9
+			public const int TextAppearance_AppCompat_Widget_Switch = 2131558649;
+			
+			// aapt resource value: 0x7F0D00FA
+			public const int TextAppearance_AppCompat_Widget_TextView_SpinnerItem = 2131558650;
+			
+			// aapt resource value: 0x7F0D00FB
+			public const int TextAppearance_Compat_Notification = 2131558651;
+			
+			// aapt resource value: 0x7F0D00FC
+			public const int TextAppearance_Compat_Notification_Info = 2131558652;
+			
+			// aapt resource value: 0x7F0D00FD
+			public const int TextAppearance_Compat_Notification_Info_Media = 2131558653;
+			
+			// aapt resource value: 0x7F0D00FE
+			public const int TextAppearance_Compat_Notification_Line2 = 2131558654;
+			
+			// aapt resource value: 0x7F0D00FF
+			public const int TextAppearance_Compat_Notification_Line2_Media = 2131558655;
+			
+			// aapt resource value: 0x7F0D0100
+			public const int TextAppearance_Compat_Notification_Media = 2131558656;
+			
+			// aapt resource value: 0x7F0D0101
+			public const int TextAppearance_Compat_Notification_Time = 2131558657;
+			
+			// aapt resource value: 0x7F0D0102
+			public const int TextAppearance_Compat_Notification_Time_Media = 2131558658;
+			
+			// aapt resource value: 0x7F0D0103
+			public const int TextAppearance_Compat_Notification_Title = 2131558659;
+			
+			// aapt resource value: 0x7F0D0104
+			public const int TextAppearance_Compat_Notification_Title_Media = 2131558660;
+			
+			// aapt resource value: 0x7F0D0105
+			public const int TextAppearance_Widget_AppCompat_ExpandedMenu_Item = 2131558661;
+			
+			// aapt resource value: 0x7F0D0106
+			public const int TextAppearance_Widget_AppCompat_Toolbar_Subtitle = 2131558662;
+			
+			// aapt resource value: 0x7F0D0107
+			public const int TextAppearance_Widget_AppCompat_Toolbar_Title = 2131558663;
+			
+			// aapt resource value: 0x7F0D011E
+			public const int ThemeOverlay_AppCompat = 2131558686;
+			
+			// aapt resource value: 0x7F0D011F
+			public const int ThemeOverlay_AppCompat_ActionBar = 2131558687;
+			
+			// aapt resource value: 0x7F0D0120
+			public const int ThemeOverlay_AppCompat_Dark = 2131558688;
+			
+			// aapt resource value: 0x7F0D0121
+			public const int ThemeOverlay_AppCompat_Dark_ActionBar = 2131558689;
+			
+			// aapt resource value: 0x7F0D0122
+			public const int ThemeOverlay_AppCompat_Dialog = 2131558690;
+			
+			// aapt resource value: 0x7F0D0123
+			public const int ThemeOverlay_AppCompat_Dialog_Alert = 2131558691;
+			
+			// aapt resource value: 0x7F0D0124
+			public const int ThemeOverlay_AppCompat_Light = 2131558692;
+			
+			// aapt resource value: 0x7F0D0108
+			public const int Theme_AppCompat = 2131558664;
+			
+			// aapt resource value: 0x7F0D0109
+			public const int Theme_AppCompat_CompactMenu = 2131558665;
+			
+			// aapt resource value: 0x7F0D010A
+			public const int Theme_AppCompat_DayNight = 2131558666;
+			
+			// aapt resource value: 0x7F0D010B
+			public const int Theme_AppCompat_DayNight_DarkActionBar = 2131558667;
+			
+			// aapt resource value: 0x7F0D010C
+			public const int Theme_AppCompat_DayNight_Dialog = 2131558668;
+			
+			// aapt resource value: 0x7F0D010F
+			public const int Theme_AppCompat_DayNight_DialogWhenLarge = 2131558671;
+			
+			// aapt resource value: 0x7F0D010D
+			public const int Theme_AppCompat_DayNight_Dialog_Alert = 2131558669;
+			
+			// aapt resource value: 0x7F0D010E
+			public const int Theme_AppCompat_DayNight_Dialog_MinWidth = 2131558670;
+			
+			// aapt resource value: 0x7F0D0110
+			public const int Theme_AppCompat_DayNight_NoActionBar = 2131558672;
+			
+			// aapt resource value: 0x7F0D0111
+			public const int Theme_AppCompat_Dialog = 2131558673;
+			
+			// aapt resource value: 0x7F0D0114
+			public const int Theme_AppCompat_DialogWhenLarge = 2131558676;
+			
+			// aapt resource value: 0x7F0D0112
+			public const int Theme_AppCompat_Dialog_Alert = 2131558674;
+			
+			// aapt resource value: 0x7F0D0113
+			public const int Theme_AppCompat_Dialog_MinWidth = 2131558675;
+			
+			// aapt resource value: 0x7F0D0115
+			public const int Theme_AppCompat_Light = 2131558677;
+			
+			// aapt resource value: 0x7F0D0116
+			public const int Theme_AppCompat_Light_DarkActionBar = 2131558678;
+			
+			// aapt resource value: 0x7F0D0117
+			public const int Theme_AppCompat_Light_Dialog = 2131558679;
+			
+			// aapt resource value: 0x7F0D011A
+			public const int Theme_AppCompat_Light_DialogWhenLarge = 2131558682;
+			
+			// aapt resource value: 0x7F0D0118
+			public const int Theme_AppCompat_Light_Dialog_Alert = 2131558680;
+			
+			// aapt resource value: 0x7F0D0119
+			public const int Theme_AppCompat_Light_Dialog_MinWidth = 2131558681;
+			
+			// aapt resource value: 0x7F0D011B
+			public const int Theme_AppCompat_Light_NoActionBar = 2131558683;
+			
+			// aapt resource value: 0x7F0D011C
+			public const int Theme_AppCompat_NoActionBar = 2131558684;
+			
+			// aapt resource value: 0x7F0D011D
+			public const int Theme_BiometricPromptDialog = 2131558685;
+			
+			// aapt resource value: 0x7F0D0125
+			public const int Widget_AppCompat_ActionBar = 2131558693;
+			
+			// aapt resource value: 0x7F0D0126
+			public const int Widget_AppCompat_ActionBar_Solid = 2131558694;
+			
+			// aapt resource value: 0x7F0D0127
+			public const int Widget_AppCompat_ActionBar_TabBar = 2131558695;
+			
+			// aapt resource value: 0x7F0D0128
+			public const int Widget_AppCompat_ActionBar_TabText = 2131558696;
+			
+			// aapt resource value: 0x7F0D0129
+			public const int Widget_AppCompat_ActionBar_TabView = 2131558697;
+			
+			// aapt resource value: 0x7F0D012A
+			public const int Widget_AppCompat_ActionButton = 2131558698;
+			
+			// aapt resource value: 0x7F0D012B
+			public const int Widget_AppCompat_ActionButton_CloseMode = 2131558699;
+			
+			// aapt resource value: 0x7F0D012C
+			public const int Widget_AppCompat_ActionButton_Overflow = 2131558700;
+			
+			// aapt resource value: 0x7F0D012D
+			public const int Widget_AppCompat_ActionMode = 2131558701;
+			
+			// aapt resource value: 0x7F0D012E
+			public const int Widget_AppCompat_ActivityChooserView = 2131558702;
+			
+			// aapt resource value: 0x7F0D012F
+			public const int Widget_AppCompat_AutoCompleteTextView = 2131558703;
+			
+			// aapt resource value: 0x7F0D0130
+			public const int Widget_AppCompat_Button = 2131558704;
+			
+			// aapt resource value: 0x7F0D0136
+			public const int Widget_AppCompat_ButtonBar = 2131558710;
+			
+			// aapt resource value: 0x7F0D0137
+			public const int Widget_AppCompat_ButtonBar_AlertDialog = 2131558711;
+			
+			// aapt resource value: 0x7F0D0131
+			public const int Widget_AppCompat_Button_Borderless = 2131558705;
+			
+			// aapt resource value: 0x7F0D0132
+			public const int Widget_AppCompat_Button_Borderless_Colored = 2131558706;
+			
+			// aapt resource value: 0x7F0D0133
+			public const int Widget_AppCompat_Button_ButtonBar_AlertDialog = 2131558707;
+			
+			// aapt resource value: 0x7F0D0134
+			public const int Widget_AppCompat_Button_Colored = 2131558708;
+			
+			// aapt resource value: 0x7F0D0135
+			public const int Widget_AppCompat_Button_Small = 2131558709;
+			
+			// aapt resource value: 0x7F0D0138
+			public const int Widget_AppCompat_CompoundButton_CheckBox = 2131558712;
+			
+			// aapt resource value: 0x7F0D0139
+			public const int Widget_AppCompat_CompoundButton_RadioButton = 2131558713;
+			
+			// aapt resource value: 0x7F0D013A
+			public const int Widget_AppCompat_CompoundButton_Switch = 2131558714;
+			
+			// aapt resource value: 0x7F0D013B
+			public const int Widget_AppCompat_DrawerArrowToggle = 2131558715;
+			
+			// aapt resource value: 0x7F0D013C
+			public const int Widget_AppCompat_DropDownItem_Spinner = 2131558716;
+			
+			// aapt resource value: 0x7F0D013D
+			public const int Widget_AppCompat_EditText = 2131558717;
+			
+			// aapt resource value: 0x7F0D013E
+			public const int Widget_AppCompat_ImageButton = 2131558718;
+			
+			// aapt resource value: 0x7F0D013F
+			public const int Widget_AppCompat_Light_ActionBar = 2131558719;
+			
+			// aapt resource value: 0x7F0D0140
+			public const int Widget_AppCompat_Light_ActionBar_Solid = 2131558720;
+			
+			// aapt resource value: 0x7F0D0141
+			public const int Widget_AppCompat_Light_ActionBar_Solid_Inverse = 2131558721;
+			
+			// aapt resource value: 0x7F0D0142
+			public const int Widget_AppCompat_Light_ActionBar_TabBar = 2131558722;
+			
+			// aapt resource value: 0x7F0D0143
+			public const int Widget_AppCompat_Light_ActionBar_TabBar_Inverse = 2131558723;
+			
+			// aapt resource value: 0x7F0D0144
+			public const int Widget_AppCompat_Light_ActionBar_TabText = 2131558724;
+			
+			// aapt resource value: 0x7F0D0145
+			public const int Widget_AppCompat_Light_ActionBar_TabText_Inverse = 2131558725;
+			
+			// aapt resource value: 0x7F0D0146
+			public const int Widget_AppCompat_Light_ActionBar_TabView = 2131558726;
+			
+			// aapt resource value: 0x7F0D0147
+			public const int Widget_AppCompat_Light_ActionBar_TabView_Inverse = 2131558727;
+			
+			// aapt resource value: 0x7F0D0148
+			public const int Widget_AppCompat_Light_ActionButton = 2131558728;
+			
+			// aapt resource value: 0x7F0D0149
+			public const int Widget_AppCompat_Light_ActionButton_CloseMode = 2131558729;
+			
+			// aapt resource value: 0x7F0D014A
+			public const int Widget_AppCompat_Light_ActionButton_Overflow = 2131558730;
+			
+			// aapt resource value: 0x7F0D014B
+			public const int Widget_AppCompat_Light_ActionMode_Inverse = 2131558731;
+			
+			// aapt resource value: 0x7F0D014C
+			public const int Widget_AppCompat_Light_ActivityChooserView = 2131558732;
+			
+			// aapt resource value: 0x7F0D014D
+			public const int Widget_AppCompat_Light_AutoCompleteTextView = 2131558733;
+			
+			// aapt resource value: 0x7F0D014E
+			public const int Widget_AppCompat_Light_DropDownItem_Spinner = 2131558734;
+			
+			// aapt resource value: 0x7F0D014F
+			public const int Widget_AppCompat_Light_ListPopupWindow = 2131558735;
+			
+			// aapt resource value: 0x7F0D0150
+			public const int Widget_AppCompat_Light_ListView_DropDown = 2131558736;
+			
+			// aapt resource value: 0x7F0D0151
+			public const int Widget_AppCompat_Light_PopupMenu = 2131558737;
+			
+			// aapt resource value: 0x7F0D0152
+			public const int Widget_AppCompat_Light_PopupMenu_Overflow = 2131558738;
+			
+			// aapt resource value: 0x7F0D0153
+			public const int Widget_AppCompat_Light_SearchView = 2131558739;
+			
+			// aapt resource value: 0x7F0D0154
+			public const int Widget_AppCompat_Light_Spinner_DropDown_ActionBar = 2131558740;
+			
+			// aapt resource value: 0x7F0D0155
+			public const int Widget_AppCompat_ListMenuView = 2131558741;
+			
+			// aapt resource value: 0x7F0D0156
+			public const int Widget_AppCompat_ListPopupWindow = 2131558742;
+			
+			// aapt resource value: 0x7F0D0157
+			public const int Widget_AppCompat_ListView = 2131558743;
+			
+			// aapt resource value: 0x7F0D0158
+			public const int Widget_AppCompat_ListView_DropDown = 2131558744;
+			
+			// aapt resource value: 0x7F0D0159
+			public const int Widget_AppCompat_ListView_Menu = 2131558745;
+			
+			// aapt resource value: 0x7F0D015A
+			public const int Widget_AppCompat_PopupMenu = 2131558746;
+			
+			// aapt resource value: 0x7F0D015B
+			public const int Widget_AppCompat_PopupMenu_Overflow = 2131558747;
+			
+			// aapt resource value: 0x7F0D015C
+			public const int Widget_AppCompat_PopupWindow = 2131558748;
+			
+			// aapt resource value: 0x7F0D015D
+			public const int Widget_AppCompat_ProgressBar = 2131558749;
+			
+			// aapt resource value: 0x7F0D015E
+			public const int Widget_AppCompat_ProgressBar_Horizontal = 2131558750;
+			
+			// aapt resource value: 0x7F0D015F
+			public const int Widget_AppCompat_RatingBar = 2131558751;
+			
+			// aapt resource value: 0x7F0D0160
+			public const int Widget_AppCompat_RatingBar_Indicator = 2131558752;
+			
+			// aapt resource value: 0x7F0D0161
+			public const int Widget_AppCompat_RatingBar_Small = 2131558753;
+			
+			// aapt resource value: 0x7F0D0162
+			public const int Widget_AppCompat_SearchView = 2131558754;
+			
+			// aapt resource value: 0x7F0D0163
+			public const int Widget_AppCompat_SearchView_ActionBar = 2131558755;
+			
+			// aapt resource value: 0x7F0D0164
+			public const int Widget_AppCompat_SeekBar = 2131558756;
+			
+			// aapt resource value: 0x7F0D0165
+			public const int Widget_AppCompat_SeekBar_Discrete = 2131558757;
+			
+			// aapt resource value: 0x7F0D0166
+			public const int Widget_AppCompat_Spinner = 2131558758;
+			
+			// aapt resource value: 0x7F0D0167
+			public const int Widget_AppCompat_Spinner_DropDown = 2131558759;
+			
+			// aapt resource value: 0x7F0D0168
+			public const int Widget_AppCompat_Spinner_DropDown_ActionBar = 2131558760;
+			
+			// aapt resource value: 0x7F0D0169
+			public const int Widget_AppCompat_Spinner_Underlined = 2131558761;
+			
+			// aapt resource value: 0x7F0D016A
+			public const int Widget_AppCompat_TextView_SpinnerItem = 2131558762;
+			
+			// aapt resource value: 0x7F0D016B
+			public const int Widget_AppCompat_Toolbar = 2131558763;
+			
+			// aapt resource value: 0x7F0D016C
+			public const int Widget_AppCompat_Toolbar_Button_Navigation = 2131558764;
+			
+			// aapt resource value: 0x7F0D016D
+			public const int Widget_Compat_NotificationActionContainer = 2131558765;
+			
+			// aapt resource value: 0x7F0D016E
+			public const int Widget_Compat_NotificationActionText = 2131558766;
 			
 			static Style()
 			{
@@ -1202,20 +4298,881 @@
 		public partial class Styleable
 		{
 			
-			// aapt resource value: { 0x7F030013,0x7F030014,0x7F030015,0x7F030016,0x7F030017,0x7F030018 }
-			public static int[] FontFamily = new int[] {
+			// aapt resource value: { 0x7F030042,0x7F030043,0x7F030044,0x7F030068,0x7F030069,0x7F03006A,0x7F03006B,0x7F03006C,0x7F03006D,0x7F030074,0x7F030078,0x7F030079,0x7F030084,0x7F030093,0x7F030094,0x7F030095,0x7F030096,0x7F030097,0x7F03009C,0x7F03009F,0x7F0300AC,0x7F0300B3,0x7F0300BE,0x7F0300C1,0x7F0300C2,0x7F0300DE,0x7F0300E1,0x7F0300FC,0x7F030105 }
+			public static int[] ActionBar = new int[] {
+					2130903106,
+					2130903107,
+					2130903108,
+					2130903144,
+					2130903145,
+					2130903146,
+					2130903147,
+					2130903148,
+					2130903149,
+					2130903156,
+					2130903160,
+					2130903161,
+					2130903172,
+					2130903187,
+					2130903188,
+					2130903189,
+					2130903190,
+					2130903191,
+					2130903196,
+					2130903199,
+					2130903212,
+					2130903219,
+					2130903230,
+					2130903233,
+					2130903234,
+					2130903262,
+					2130903265,
+					2130903292,
+					2130903301};
+			
+			// 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: { 0x7F030042,0x7F030043,0x7F030058,0x7F030093,0x7F0300E1,0x7F030105 }
+			public static int[] ActionMode = new int[] {
+					2130903106,
+					2130903107,
+					2130903128,
+					2130903187,
+					2130903265,
+					2130903301};
+			
+			// 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: { 0x7F030085,0x7F03009D }
+			public static int[] ActivityChooserView = new int[] {
+					2130903173,
+					2130903197};
+			
+			// aapt resource value: 0
+			public const int ActivityChooserView_expandActivityOverflowButtonDrawable = 0;
+			
+			// aapt resource value: 1
+			public const int ActivityChooserView_initialActivityCount = 1;
+			
+			// aapt resource value: { 0x10100F2,0x7F030050,0x7F0300A3,0x7F0300A4,0x7F0300B0,0x7F0300D4,0x7F0300D5 }
+			public static int[] AlertDialog = new int[] {
+					16842994,
+					2130903120,
+					2130903203,
+					2130903204,
+					2130903216,
+					2130903252,
+					2130903253};
+			
+			// 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: { 0x1010119,0x7F0300DA,0x7F0300FA,0x7F0300FB }
+			public static int[] AppCompatImageView = new int[] {
+					16843033,
+					2130903258,
+					2130903290,
+					2130903291};
+			
+			// 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,0x7F0300F7,0x7F0300F8,0x7F0300F9 }
+			public static int[] AppCompatSeekBar = new int[] {
+					16843074,
+					2130903287,
+					2130903288,
+					2130903289};
+			
+			// 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,
+					16843117,
+					16843118,
+					16843119,
+					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,0x7F03003D,0x7F03003E,0x7F03003F,0x7F030040,0x7F030041,0x7F030087,0x7F0300E7 }
+			public static int[] AppCompatTextView = new int[] {
+					16842804,
+					2130903101,
+					2130903102,
+					2130903103,
+					2130903104,
+					2130903105,
+					2130903175,
+					2130903271};
+			
+			// 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,0x7F030000,0x7F030001,0x7F030002,0x7F030003,0x7F030004,0x7F030005,0x7F030006,0x7F030007,0x7F030008,0x7F030009,0x7F03000A,0x7F03000B,0x7F03000C,0x7F03000E,0x7F03000F,0x7F030010,0x7F030011,0x7F030012,0x7F030013,0x7F030014,0x7F030015,0x7F030016,0x7F030017,0x7F030018,0x7F030019,0x7F03001A,0x7F03001B,0x7F03001C,0x7F03001D,0x7F03001E,0x7F030021,0x7F030022,0x7F030023,0x7F030024,0x7F030025,0x7F03003C,0x7F030049,0x7F03004A,0x7F03004B,0x7F03004C,0x7F03004D,0x7F03004E,0x7F030051,0x7F030052,0x7F030055,0x7F030056,0x7F03005C,0x7F03005D,0x7F03005E,0x7F03005F,0x7F030060,0x7F030061,0x7F030062,0x7F030063,0x7F030064,0x7F030065,0x7F03006E,0x7F030076,0x7F030077,0x7F03007A,0x7F03007C,0x7F03007F,0x7F030080,0x7F030081,0x7F030082,0x7F030083,0x7F030095,0x7F03009B,0x7F0300A1,0x7F0300A2,0x7F0300A5,0x7F0300A6,0x7F0300A7,0x7F0300A8,0x7F0300A9,0x7F0300AA,0x7F0300AB,0x7F0300BA,0x7F0300BB,0x7F0300BC,0x7F0300BD,0x7F0300BF,0x7F0300C5,0x7F0300C6,0x7F0300C7,0x7F0300C8,0x7F0300CB,0x7F0300CE,0x7F0300CF,0x7F0300D0,0x7F0300D7,0x7F0300D8,0x7F0300E5,0x7F0300E8,0x7F0300E9,0x7F0300EA,0x7F0300EB,0x7F0300EC,0x7F0300ED,0x7F0300EE,0x7F0300EF,0x7F0300F0,0x7F0300F1,0x7F030106,0x7F030107,0x7F030108,0x7F030109,0x7F03011A,0x7F03011B,0x7F03011C,0x7F03011D,0x7F03011E,0x7F03011F,0x7F030120,0x7F030121,0x7F030122,0x7F030123 }
+			public static int[] AppCompatTheme = new int[] {
+					16842839,
+					16842926,
+					2130903040,
+					2130903041,
+					2130903042,
+					2130903043,
+					2130903044,
+					2130903045,
+					2130903046,
+					2130903047,
+					2130903048,
+					2130903049,
+					2130903050,
+					2130903051,
+					2130903052,
+					2130903054,
+					2130903055,
+					2130903056,
+					2130903057,
+					2130903058,
 					2130903059,
 					2130903060,
 					2130903061,
 					2130903062,
 					2130903063,
-					2130903064};
-			
-			// aapt resource value: { 0x7F030012,0x7F030019,0x7F03001A }
-			public static int[] FontFamilyFont = new int[] {
-					2130903058,
+					2130903064,
 					2130903065,
-					2130903066};
+					2130903066,
+					2130903067,
+					2130903068,
+					2130903069,
+					2130903070,
+					2130903073,
+					2130903074,
+					2130903075,
+					2130903076,
+					2130903077,
+					2130903100,
+					2130903113,
+					2130903114,
+					2130903115,
+					2130903116,
+					2130903117,
+					2130903118,
+					2130903121,
+					2130903122,
+					2130903125,
+					2130903126,
+					2130903132,
+					2130903133,
+					2130903134,
+					2130903135,
+					2130903136,
+					2130903137,
+					2130903138,
+					2130903139,
+					2130903140,
+					2130903141,
+					2130903150,
+					2130903158,
+					2130903159,
+					2130903162,
+					2130903164,
+					2130903167,
+					2130903168,
+					2130903169,
+					2130903170,
+					2130903171,
+					2130903189,
+					2130903195,
+					2130903201,
+					2130903202,
+					2130903205,
+					2130903206,
+					2130903207,
+					2130903208,
+					2130903209,
+					2130903210,
+					2130903211,
+					2130903226,
+					2130903227,
+					2130903228,
+					2130903229,
+					2130903231,
+					2130903237,
+					2130903238,
+					2130903239,
+					2130903240,
+					2130903243,
+					2130903246,
+					2130903247,
+					2130903248,
+					2130903255,
+					2130903256,
+					2130903269,
+					2130903272,
+					2130903273,
+					2130903274,
+					2130903275,
+					2130903276,
+					2130903277,
+					2130903278,
+					2130903279,
+					2130903280,
+					2130903281,
+					2130903302,
+					2130903303,
+					2130903304,
+					2130903305,
+					2130903322,
+					2130903323,
+					2130903324,
+					2130903325,
+					2130903326,
+					2130903327,
+					2130903328,
+					2130903329,
+					2130903330,
+					2130903331};
+			
+			// 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: { 0x7F030026 }
+			public static int[] ButtonBarLayout = new int[] {
+					2130903078};
+			
+			// aapt resource value: 0
+			public const int ButtonBarLayout_allowStacking = 0;
+			
+			// aapt resource value: { 0x10101A5,0x101031F,0x7F030027 }
+			public static int[] ColorStateListItem = new int[] {
+					16843173,
+					16843551,
+					2130903079};
+			
+			// 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,0x7F030053,0x7F030054 }
+			public static int[] CompoundButton = new int[] {
+					16843015,
+					2130903123,
+					2130903124};
+			
+			// 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;
+			
+			// aapt resource value: { 0x7F03003A,0x7F03003B,0x7F030047,0x7F03005B,0x7F03007D,0x7F030090,0x7F0300D6,0x7F0300F3 }
+			public static int[] DrawerArrowToggle = new int[] {
+					2130903098,
+					2130903099,
+					2130903111,
+					2130903131,
+					2130903165,
+					2130903184,
+					2130903254,
+					2130903283};
+			
+			// 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: { 0x7F030088,0x7F030089,0x7F03008A,0x7F03008B,0x7F03008C,0x7F03008D }
+			public static int[] FontFamily = new int[] {
+					2130903176,
+					2130903177,
+					2130903178,
+					2130903179,
+					2130903180,
+					2130903181};
+			
+			// aapt resource value: { 0x7F030086,0x7F03008E,0x7F03008F }
+			public static int[] FontFamilyFont = new int[] {
+					2130903174,
+					2130903182,
+					2130903183};
 			
 			// aapt resource value: 0
 			public const int FontFamilyFont_font = 0;
@@ -1244,26 +5201,26 @@
 			// aapt resource value: 5
 			public const int FontFamily_fontProviderQuery = 5;
 			
-			// aapt resource value: { 0x7F030000,0x7F030001,0x7F030002,0x7F030003,0x7F030004,0x7F030005,0x7F030006,0x7F030007,0x7F030008,0x7F030009,0x7F03000A,0x7F03000B,0x7F03000C,0x7F03000D,0x7F03000E,0x7F03000F,0x7F030010,0x7F03001B }
+			// aapt resource value: { 0x7F030029,0x7F03002A,0x7F03002B,0x7F03002C,0x7F03002D,0x7F03002E,0x7F03002F,0x7F030030,0x7F030031,0x7F030032,0x7F030033,0x7F030034,0x7F030035,0x7F030036,0x7F030037,0x7F030038,0x7F030039,0x7F030092 }
 			public static int[] HDLArcSeekBar = new int[] {
-					2130903040,
-					2130903041,
-					2130903042,
-					2130903043,
-					2130903044,
-					2130903045,
-					2130903046,
-					2130903047,
-					2130903048,
-					2130903049,
-					2130903050,
-					2130903051,
-					2130903052,
-					2130903053,
-					2130903054,
-					2130903055,
-					2130903056,
-					2130903067};
+					2130903081,
+					2130903082,
+					2130903083,
+					2130903084,
+					2130903085,
+					2130903086,
+					2130903087,
+					2130903088,
+					2130903089,
+					2130903090,
+					2130903091,
+					2130903092,
+					2130903093,
+					2130903094,
+					2130903095,
+					2130903096,
+					2130903097,
+					2130903186};
 			
 			// aapt resource value: 0
 			public const int HDLArcSeekBar_arc_border_color = 0;
@@ -1319,14 +5276,41 @@
 			// aapt resource value: 17
 			public const int HDLArcSeekBar_hdl_arc_thumb_mode = 17;
 			
-			// aapt resource value: { 0x7F03001C,0x7F03001D,0x7F03001E,0x7F03001F,0x7F030020,0x7F030021 }
+			// aapt resource value: { 0x7F03006F,0x7F030070,0x7F030071,0x7F030072,0x7F030073,0x7F0300CC }
+			public static int[] HDLCurtainSeekBar = new int[] {
+					2130903151,
+					2130903152,
+					2130903153,
+					2130903154,
+					2130903155,
+					2130903244};
+			
+			// 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: { 0x7F0300CD,0x7F03010F,0x7F030110,0x7F030111,0x7F030112,0x7F030113 }
 			public static int[] HDLWaveSeekBar = new int[] {
-					2130903068,
-					2130903069,
-					2130903070,
-					2130903071,
-					2130903072,
-					2130903073};
+					2130903245,
+					2130903311,
+					2130903312,
+					2130903313,
+					2130903314,
+					2130903315};
 			
 			// aapt resource value: 0
 			public const int HDLWaveSeekBar_second_wave_color = 0;
@@ -1346,14 +5330,244 @@
 			// aapt resource value: 5
 			public const int HDLWaveSeekBar_wave_width = 5;
 			
-			// aapt resource value: { 0x7F030022,0x7F030023,0x7F030024,0x7F030025,0x7F030026,0x7F030027 }
+			// aapt resource value: { 0x10100AF,0x10100C4,0x1010126,0x1010127,0x1010128,0x7F030079,0x7F03007B,0x7F0300AF,0x7F0300D2 }
+			public static int[] LinearLayoutCompat = new int[] {
+					16842927,
+					16842948,
+					16843046,
+					16843047,
+					16843048,
+					2130903161,
+					2130903163,
+					2130903215,
+					2130903250};
+			
+			// 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,
+					16842960,
+					16843156,
+					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,0x7F03000D,0x7F03001F,0x7F030020,0x7F030028,0x7F030067,0x7F030098,0x7F030099,0x7F0300B4,0x7F0300D1,0x7F03010A }
+			public static int[] MenuItem = new int[] {
+					16842754,
+					16842766,
+					16842960,
+					16843014,
+					16843156,
+					16843230,
+					16843231,
+					16843233,
+					16843234,
+					16843235,
+					16843236,
+					16843237,
+					16843375,
+					2130903053,
+					2130903071,
+					2130903072,
+					2130903080,
+					2130903143,
+					2130903192,
+					2130903193,
+					2130903220,
+					2130903249,
+					2130903306};
+			
+			// 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,0x7F0300C0,0x7F0300DC }
+			public static int[] MenuView = new int[] {
+					16842926,
+					16843052,
+					16843053,
+					16843054,
+					16843055,
+					16843056,
+					16843057,
+					2130903232,
+					2130903260};
+			
+			// 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: { 0x7F030114,0x7F030115,0x7F030116,0x7F030117,0x7F030118,0x7F030119 }
 			public static int[] pickerview = new int[] {
-					2130903074,
-					2130903075,
-					2130903076,
-					2130903077,
-					2130903078,
-					2130903079};
+					2130903316,
+					2130903317,
+					2130903318,
+					2130903319,
+					2130903320,
+					2130903321};
 			
 			// aapt resource value: 0
 			public const int pickerview_wheelview_dividerColor = 0;
@@ -1373,6 +5587,419 @@
 			// aapt resource value: 5
 			public const int pickerview_wheelview_textSize = 5;
 			
+			// aapt resource value: { 0x1010176,0x10102C9,0x7F0300B5 }
+			public static int[] PopupWindow = new int[] {
+					16843126,
+					16843465,
+					2130903221};
+			
+			// aapt resource value: { 0x7F0300DB }
+			public static int[] PopupWindowBackgroundState = new int[] {
+					2130903259};
+			
+			// 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: { 0x7F0300B6,0x7F0300B9 }
+			public static int[] RecycleListView = new int[] {
+					2130903222,
+					2130903225};
+			
+			// aapt resource value: 0
+			public const int RecycleListView_paddingBottomNoButtons = 0;
+			
+			// aapt resource value: 1
+			public const int RecycleListView_paddingTopNoTitle = 1;
+			
+			// aapt resource value: { 0x10100DA,0x101011F,0x1010220,0x1010264,0x7F030057,0x7F030066,0x7F030075,0x7F030091,0x7F03009A,0x7F0300A0,0x7F0300C3,0x7F0300C4,0x7F0300C9,0x7F0300CA,0x7F0300DD,0x7F0300E2,0x7F03010E }
+			public static int[] SearchView = new int[] {
+					16842970,
+					16843039,
+					16843296,
+					16843364,
+					2130903127,
+					2130903142,
+					2130903157,
+					2130903185,
+					2130903194,
+					2130903200,
+					2130903235,
+					2130903236,
+					2130903241,
+					2130903242,
+					2130903261,
+					2130903266,
+					2130903310};
+			
+			// 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: { 0x10100B2,0x1010176,0x101017B,0x1010262,0x7F0300BE }
+			public static int[] Spinner = new int[] {
+					16842930,
+					16843126,
+					16843131,
+					16843362,
+					2130903230};
+			
+			// 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,0x7F0300D3,0x7F0300D9,0x7F0300E3,0x7F0300E4,0x7F0300E6,0x7F0300F4,0x7F0300F5,0x7F0300F6,0x7F03010B,0x7F03010C,0x7F03010D }
+			public static int[] SwitchCompat = new int[] {
+					16843044,
+					16843045,
+					16843074,
+					2130903251,
+					2130903257,
+					2130903267,
+					2130903268,
+					2130903270,
+					2130903284,
+					2130903285,
+					2130903286,
+					2130903307,
+					2130903308,
+					2130903309};
+			
+			// 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: { 0x1010095,0x1010096,0x1010097,0x1010098,0x101009A,0x101009B,0x1010161,0x1010162,0x1010163,0x1010164,0x10103AC,0x7F030087,0x7F0300E7 }
+			public static int[] TextAppearance = new int[] {
+					16842901,
+					16842902,
+					16842903,
+					16842904,
+					16842906,
+					16842907,
+					16843105,
+					16843106,
+					16843107,
+					16843108,
+					16843692,
+					2130903175,
+					2130903271};
+			
+			// 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: { 0x10100AF,0x1010140,0x7F03004F,0x7F030059,0x7F03005A,0x7F030068,0x7F030069,0x7F03006A,0x7F03006B,0x7F03006C,0x7F03006D,0x7F0300AC,0x7F0300AD,0x7F0300AE,0x7F0300B1,0x7F0300B2,0x7F0300BE,0x7F0300DE,0x7F0300DF,0x7F0300E0,0x7F0300FC,0x7F0300FD,0x7F0300FE,0x7F0300FF,0x7F030100,0x7F030101,0x7F030102,0x7F030103,0x7F030104 }
+			public static int[] Toolbar = new int[] {
+					16842927,
+					16843072,
+					2130903119,
+					2130903129,
+					2130903130,
+					2130903144,
+					2130903145,
+					2130903146,
+					2130903147,
+					2130903148,
+					2130903149,
+					2130903212,
+					2130903213,
+					2130903214,
+					2130903217,
+					2130903218,
+					2130903230,
+					2130903262,
+					2130903263,
+					2130903264,
+					2130903292,
+					2130903293,
+					2130903294,
+					2130903295,
+					2130903296,
+					2130903297,
+					2130903298,
+					2130903299,
+					2130903300};
+			
+			// 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;
+			
+			// 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: { 0x1010000,0x10100DA,0x7F0300B7,0x7F0300B8,0x7F0300F2 }
+			public static int[] View = new int[] {
+					16842752,
+					16842970,
+					2130903223,
+					2130903224,
+					2130903282};
+			
+			// aapt resource value: { 0x10100D4,0x7F030045,0x7F030046 }
+			public static int[] ViewBackgroundHelper = new int[] {
+					16842964,
+					2130903109,
+					2130903110};
+			
+			// 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;
+			
+			// 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();
@@ -1389,6 +6016,9 @@
 			// aapt resource value: 0x7F0F0000
 			public const int file_paths = 2131689472;
 			
+			// aapt resource value: 0x7F0F0001
+			public const int hdl_filepaths = 2131689473;
+			
 			static Xml()
 			{
 				global::Android.Runtime.ResourceIdManager.UpdateIdValues();
diff --git a/ZigbeeApp/GateWay.Droid/packages.config b/ZigbeeApp/GateWay.Droid/packages.config
index 76b3111..c0b7b93 100755
--- a/ZigbeeApp/GateWay.Droid/packages.config
+++ b/ZigbeeApp/GateWay.Droid/packages.config
@@ -51,13 +51,4 @@
   <package id="System.Threading.Timer" version="4.3.0" targetFramework="monoandroid60" />
   <package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="monoandroid60" />
   <package id="System.Xml.XDocument" version="4.3.0" targetFramework="monoandroid60" />
-  <package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="26.0.2" targetFramework="monoandroid80" />
-  <package id="Xamarin.Android.Support.Annotations" version="26.0.2" targetFramework="monoandroid80" />
-  <package id="Xamarin.Android.Support.Compat" version="26.0.2" targetFramework="monoandroid80" />
-  <package id="Xamarin.Android.Support.Core.UI" version="26.0.2" targetFramework="monoandroid80" />
-  <package id="Xamarin.Android.Support.Core.Utils" version="26.0.2" targetFramework="monoandroid80" />
-  <package id="Xamarin.Android.Support.Fragment" version="26.0.2" targetFramework="monoandroid80" />
-  <package id="Xamarin.Android.Support.Media.Compat" version="26.0.2" targetFramework="monoandroid80" />
-  <package id="Xamarin.Android.Support.v4" version="26.0.2" targetFramework="monoandroid80" />
-  <package id="Xamarin.Android.Support.Vector.Drawable" version="26.0.2" targetFramework="monoandroid80" />
-</packages>
\ No newline at end of file
+  </packages>
\ No newline at end of file
diff --git a/ZigbeeApp/GateWay.Ios/GateWay.Ios.csproj b/ZigbeeApp/GateWay.Ios/GateWay.Ios.csproj
index e1d6a8a..4352f86 100644
--- a/ZigbeeApp/GateWay.Ios/GateWay.Ios.csproj
+++ b/ZigbeeApp/GateWay.Ios/GateWay.Ios.csproj
@@ -201,6 +201,52 @@
   </ItemGroup>
   <ItemGroup>
     <BundleResource Include="Resources\Language.ini" />
+    <BundleResource Include="Resources\Phone\AC\Add.png" />
+    <BundleResource Include="Resources\Phone\AC\Fan_Height.png" />
+    <BundleResource Include="Resources\Phone\AC\Fan_HeightSelected.png" />
+    <BundleResource Include="Resources\Phone\AC\Fan_Low.png" />
+    <BundleResource Include="Resources\Phone\AC\Fan_LowSelected.png" />
+    <BundleResource Include="Resources\Phone\AC\Fan_Middle.png" />
+    <BundleResource Include="Resources\Phone\AC\Fan_MiddleSelected.png" />
+    <BundleResource Include="Resources\Phone\AC\Group.png" />
+    <BundleResource Include="Resources\Phone\AC\Mode_Auto.png" />
+    <BundleResource Include="Resources\Phone\AC\Mode_AutoSelected.png" />
+    <BundleResource Include="Resources\Phone\AC\Mode_Cool.png" />
+    <BundleResource Include="Resources\Phone\AC\Mode_Cool2.png" />
+    <BundleResource Include="Resources\Phone\AC\Mode_CoolSelected.png" />
+    <BundleResource Include="Resources\Phone\AC\Mode_Dry.png" />
+    <BundleResource Include="Resources\Phone\AC\Mode_Dry2.png" />
+    <BundleResource Include="Resources\Phone\AC\Mode_DrySelected.png" />
+    <BundleResource Include="Resources\Phone\AC\Mode_Fan.png" />
+    <BundleResource Include="Resources\Phone\AC\Mode_Fan2.png" />
+    <BundleResource Include="Resources\Phone\AC\Mode_FanSelected.png" />
+    <BundleResource Include="Resources\Phone\AC\Mode_Heat.png" />
+    <BundleResource Include="Resources\Phone\AC\Mode_Heat2.png" />
+    <BundleResource Include="Resources\Phone\AC\Mode_HeatSelected.png" />
+    <BundleResource Include="Resources\Phone\AC\OpenOrClose.png" />
+    <BundleResource Include="Resources\Phone\AC\OpenOrCloseSelected.png" />
+    <BundleResource Include="Resources\Phone\AC\Path.png" />
+    <BundleResource Include="Resources\Phone\AC\Reduce.png" />
+    <BundleResource Include="Resources\Phone\AC\SelectedFanModeBG.png" />
+    <BundleResource Include="Resources\Phone\AC\SelectedModeBG.png" />
+    <BundleResource Include="Resources\Phone\Account\Account.png" />
+    <BundleResource Include="Resources\Phone\Account\Cancle.png" />
+    <BundleResource Include="Resources\Phone\Account\Cat.png" />
+    <BundleResource Include="Resources\Phone\Account\ChangeSuccess.png" />
+    <BundleResource Include="Resources\Phone\Account\Code.png" />
+    <BundleResource Include="Resources\Phone\Account\HidePwd.png" />
+    <BundleResource Include="Resources\Phone\Account\Logo_White.png" />
+    <BundleResource Include="Resources\Phone\Account\Logo_loginBG.png" />
+    <BundleResource Include="Resources\Phone\Account\Password.png" />
+    <BundleResource Include="Resources\Phone\Account\PhoneEmail_White.png" />
+    <BundleResource Include="Resources\Phone\Account\UnhidePwd.png" />
+    <BundleResource Include="Resources\Phone\BindPic\BindAdd.png" />
+    <BundleResource Include="Resources\Phone\BindPic\BindDown.png" />
+    <BundleResource Include="Resources\Phone\BindPic\BindEmptyPic.png" />
+    <BundleResource Include="Resources\Phone\BindPic\BindLeft.png" />
+    <BundleResource Include="Resources\Phone\BindPic\BindRight.png" />
+    <BundleResource Include="Resources\Phone\BindPic\BindRoomColor.png" />
+    <BundleResource Include="Resources\Phone\BindPic\BindRoomColorOn.png" />
     <BundleResource Include="Resources\Phone\Center\Abount.png" />
     <BundleResource Include="Resources\Phone\Center\Admin.png" />
     <BundleResource Include="Resources\Phone\Center\Backup.png" />
@@ -212,6 +258,7 @@
     <BundleResource Include="Resources\Phone\Center\SafetyManagement.png" />
     <BundleResource Include="Resources\Phone\Device\AirConditioner.png" />
     <BundleResource Include="Resources\Phone\Device\AirConditionerEpoint.png" />
+    <BundleResource Include="Resources\Phone\Device\AirConditionerEpointSelected.png" />
     <BundleResource Include="Resources\Phone\Device\AirConditionerZbGateway.png" />
     <BundleResource Include="Resources\Phone\Device\AirSwitch.png" />
     <BundleResource Include="Resources\Phone\Device\AirSwitchCloudContr.png" />
@@ -220,7 +267,7 @@
     <BundleResource Include="Resources\Phone\Device\ButtonPanelOne.png" />
     <BundleResource Include="Resources\Phone\Device\ButtonPanelThree.png" />
     <BundleResource Include="Resources\Phone\Device\ButtonPanelTwo.png" />
-    <BundleResource Include="Resources\Phone\Device\ColorDimmableLight.png" />
+    <BundleResource Include="Resources\Phone\Device\ColorLight.png" />
     <BundleResource Include="Resources\Phone\Device\Converter.png" />
     <BundleResource Include="Resources\Phone\Device\ConverterZb485.png" />
     <BundleResource Include="Resources\Phone\Device\Curtain.png" />
@@ -231,35 +278,141 @@
     <BundleResource Include="Resources\Phone\Device\DryContact.png" />
     <BundleResource Include="Resources\Phone\Device\IntelligentLocks.png" />
     <BundleResource Include="Resources\Phone\Device\IntelligentLocksH06C.png" />
+    <BundleResource Include="Resources\Phone\Device\Light.png" />
     <BundleResource Include="Resources\Phone\Device\PanelTable.png" />
     <BundleResource Include="Resources\Phone\Device\Relay.png" />
     <BundleResource Include="Resources\Phone\Device\RelayEpoint.png" />
     <BundleResource Include="Resources\Phone\Device\RelayThreeLoad.png" />
     <BundleResource Include="Resources\Phone\Device\Repeater.png" />
+    <BundleResource Include="Resources\Phone\Device\RepeaterZigbee.png" />
     <BundleResource Include="Resources\Phone\Device\Sensor.png" />
     <BundleResource Include="Resources\Phone\Device\SensorCarbonMonoxide.png" />
     <BundleResource Include="Resources\Phone\Device\SensorDoorWindow.png" />
     <BundleResource Include="Resources\Phone\Device\SensorEmergencyButton.png" />
     <BundleResource Include="Resources\Phone\Device\SensorFire.png" />
+    <BundleResource Include="Resources\Phone\Device\SensorHumidity.png" />
     <BundleResource Include="Resources\Phone\Device\SensorInfrared.png" />
     <BundleResource Include="Resources\Phone\Device\SensorMotion.png" />
     <BundleResource Include="Resources\Phone\Device\SensorPir.png" />
+    <BundleResource Include="Resources\Phone\Device\SensorTemperature.png" />
     <BundleResource Include="Resources\Phone\Device\SensorWater.png" />
+    <BundleResource Include="Resources\Phone\Device\Socket1.png" />
+    <BundleResource Include="Resources\Phone\Device\Switch.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\AddFailedPic.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\AddFingerprintTipPic.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\AddIcCardTipPic.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\AddIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\AddPasswordTicPic.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\AllMethod.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\AllMethodIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\AllMethodOn.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\CancelIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\DateIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\DelBackground.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\DelIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\DistributeUnlockIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\DooorLockPicOpen.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\DoorLockClose.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\DoorLockOpen.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\DoorLockPicClose.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\DoorLockUserPic.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\DoorlockIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\DoorlockPicture.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\EntrySuccessIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\FavoriteIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\Fingerprint.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\Fingerprint207.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\FingerprintOn.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\Left.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\MemberIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\Password.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\PasswordOn.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\RecordIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\RemoteUnlockIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\RightIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\RoomPic.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\SelectedIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\SettingIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\ShareIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\SideslipPic.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\Switch.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\SwitchOn.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\TemPasswordInvisiable.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\TemPasswordVisiable.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\TempPasswordBackground.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\TempPasswordBackground1.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\TypeIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\UnLockBlankPic.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\UnLockButton.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\UnLockSideslipIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\UndistributeIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\UnlockFailed.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\UnlockSuccess.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\UnselectedIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\VisitorIcon.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\proximityCard.png" />
+    <BundleResource Include="Resources\Phone\DoorLock\proximityCardOn.png" />
+    <BundleResource Include="Resources\Phone\Floor\Floor.png" />
+    <BundleResource Include="Resources\Phone\Floor\FloorSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\10Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\10IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\11Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\11IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\12Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\12IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\13Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\13IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\14Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\14IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\15Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\15IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\16Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\16IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\17Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\17IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\18Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\18IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\19Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\19IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\1Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\1IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\20Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\20IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\2Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\2IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\3Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\3IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\4Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\4IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\5Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\5IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\6Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\6IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\7Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\7IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\8Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\8IconSelected.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\9Icon.png" />
+    <BundleResource Include="Resources\Phone\FunctionIcon\9IconSelected.png" />
     <BundleResource Include="Resources\Phone\Gateway\GatewayIcon1.png" />
     <BundleResource Include="Resources\Phone\Gateway\GatewayIcon1Selected.png" />
     <BundleResource Include="Resources\Phone\Gateway\GatewayIcon6.png" />
     <BundleResource Include="Resources\Phone\Gateway\GatewayIcon6Selected.png" />
-    <BundleResource Include="Resources\Phone\Gateway\PhoneImage.png" />
     <BundleResource Include="Resources\Phone\Gateway\RealGateway1.png" />
     <BundleResource Include="Resources\Phone\Gateway\RealGateway6.png" />
     <BundleResource Include="Resources\Phone\Gateway\SearchGateway.png" />
     <BundleResource Include="Resources\Phone\Gateway\WiredGateway.png" />
     <BundleResource Include="Resources\Phone\Gateway\WiredGatewayInstruct.png" />
+    <BundleResource Include="Resources\Phone\Gateway\WiredGatewaySearching.png" />
     <BundleResource Include="Resources\Phone\Gateway\WiredGatewaySelected.png" />
     <BundleResource Include="Resources\Phone\Gateway\WirelessGateway.png" />
     <BundleResource Include="Resources\Phone\Gateway\WirelessGatewayImage.png" />
     <BundleResource Include="Resources\Phone\Gateway\WirelessGatewayInstruct.png" />
     <BundleResource Include="Resources\Phone\Gateway\WirelessGatewaySelected.png" />
+    <BundleResource Include="Resources\Phone\Instruct\AirConditionerZbGateway.png" />
+    <BundleResource Include="Resources\Phone\Instruct\AirSwitchCloudContr.png" />
+    <BundleResource Include="Resources\Phone\Instruct\CurtainAutoOpen.png" />
+    <BundleResource Include="Resources\Phone\Instruct\CurtainSiphonate.png" />
     <BundleResource Include="Resources\Phone\Instruct\DeviceSearch.png" />
     <BundleResource Include="Resources\Phone\Instruct\DimmableLightOneLoad.png" />
     <BundleResource Include="Resources\Phone\Instruct\IntelligentLocksH06C.png" />
@@ -267,53 +420,120 @@
     <BundleResource Include="Resources\Phone\Instruct\PanelThreeButton.png" />
     <BundleResource Include="Resources\Phone\Instruct\PanelTwoButton.png" />
     <BundleResource Include="Resources\Phone\Instruct\RelayThreeLoad.png" />
+    <BundleResource Include="Resources\Phone\Instruct\RepeaterZigbee.png" />
+    <BundleResource Include="Resources\Phone\Instruct\SensorCarbonMonoxide.png" />
+    <BundleResource Include="Resources\Phone\Instruct\SensorDoorWindow.png" />
+    <BundleResource Include="Resources\Phone\Instruct\SensorFire.png" />
+    <BundleResource Include="Resources\Phone\Instruct\SensorInfrared.png" />
+    <BundleResource Include="Resources\Phone\Instruct\SensorWater.png" />
     <BundleResource Include="Resources\Phone\Item\Add.png" />
+    <BundleResource Include="Resources\Phone\Item\Add_Category.png" />
+    <BundleResource Include="Resources\Phone\Item\Add_GW.png" />
     <BundleResource Include="Resources\Phone\Item\Back.png" />
+    <BundleResource Include="Resources\Phone\Item\BottomButtonGround.png" />
+    <BundleResource Include="Resources\Phone\Item\BottomShadow.png" />
     <BundleResource Include="Resources\Phone\Item\CancelIcon.png" />
+    <BundleResource Include="Resources\Phone\Item\Category_FunctionBG.png" />
+    <BundleResource Include="Resources\Phone\Item\Category_FunctionBGSelected.png" />
     <BundleResource Include="Resources\Phone\Item\Check.png" />
     <BundleResource Include="Resources\Phone\Item\CloseIcon.png" />
+    <BundleResource Include="Resources\Phone\Item\Collection.png" />
+    <BundleResource Include="Resources\Phone\Item\Collection1.png" />
+    <BundleResource Include="Resources\Phone\Item\CollectionSelected.png" />
+    <BundleResource Include="Resources\Phone\Item\CollectionSelected1.png" />
+    <BundleResource Include="Resources\Phone\Item\CreatFloor.png" />
+    <BundleResource Include="Resources\Phone\Item\CreatFloorSelected.png" />
     <BundleResource Include="Resources\Phone\Item\DateSearchIcon.png" />
     <BundleResource Include="Resources\Phone\Item\DeleteIcon1.png" />
     <BundleResource Include="Resources\Phone\Item\DeleteIcon2.png" />
     <BundleResource Include="Resources\Phone\Item\DeleteIcon2Selected.png" />
+    <BundleResource Include="Resources\Phone\Item\DeviceLimitGround.png" />
+    <BundleResource Include="Resources\Phone\Item\DeviceLimitGroundSelected.png" />
     <BundleResource Include="Resources\Phone\Item\Down.png" />
     <BundleResource Include="Resources\Phone\Item\DownLoad.png" />
+    <BundleResource Include="Resources\Phone\Item\DownTriangle.png" />
+    <BundleResource Include="Resources\Phone\Item\Drop_Down.png" />
+    <BundleResource Include="Resources\Phone\Item\FailIcon.png" />
     <BundleResource Include="Resources\Phone\Item\FixedPosition.png" />
     <BundleResource Include="Resources\Phone\Item\FixedPositionSelected.png" />
+    <BundleResource Include="Resources\Phone\Item\Floor.png" />
     <BundleResource Include="Resources\Phone\Item\ForgotPswList.png" />
+    <BundleResource Include="Resources\Phone\Item\FunctionCardView.png" />
+    <BundleResource Include="Resources\Phone\Item\FunctionCardViewSelected.png" />
+    <BundleResource Include="Resources\Phone\Item\FunctionViewBG.png" />
     <BundleResource Include="Resources\Phone\Item\GarrisonList.png" />
     <BundleResource Include="Resources\Phone\Item\GarrisonListSelected.png" />
+    <BundleResource Include="Resources\Phone\Item\GwSwitchIcon.png" />
+    <BundleResource Include="Resources\Phone\Item\GwSwitchIconSelected.png" />
     <BundleResource Include="Resources\Phone\Item\HidenPWD.png" />
+    <BundleResource Include="Resources\Phone\Item\House.png" />
+    <BundleResource Include="Resources\Phone\Item\HouseSelected.png" />
+    <BundleResource Include="Resources\Phone\Item\IndoorUnitGround.png" />
+    <BundleResource Include="Resources\Phone\Item\InputAccountIcon.png" />
+    <BundleResource Include="Resources\Phone\Item\InputAccountIconSelected.png" />
+    <BundleResource Include="Resources\Phone\Item\ItemSelected.png" />
+    <BundleResource Include="Resources\Phone\Item\ItemUnSelected.png" />
+    <BundleResource Include="Resources\Phone\Item\MemberNotEsixtPic.png" />
+    <BundleResource Include="Resources\Phone\Item\Message.png" />
+    <BundleResource Include="Resources\Phone\Item\MessageSelected.png" />
     <BundleResource Include="Resources\Phone\Item\More.png" />
+    <BundleResource Include="Resources\Phone\Item\MyHome.png" />
     <BundleResource Include="Resources\Phone\Item\NewVersion.png" />
     <BundleResource Include="Resources\Phone\Item\Next.png" />
+    <BundleResource Include="Resources\Phone\Item\NextSelected.png" />
+    <BundleResource Include="Resources\Phone\Item\NoBindGW.png" />
+    <BundleResource Include="Resources\Phone\Item\NoFunction.png" />
+    <BundleResource Include="Resources\Phone\Item\NotAuthority.png" />
+    <BundleResource Include="Resources\Phone\Item\NotShardPic.png" />
     <BundleResource Include="Resources\Phone\Item\OpenIcon.png" />
     <BundleResource Include="Resources\Phone\Item\PersentIcon.png" />
     <BundleResource Include="Resources\Phone\Item\PickerColorWheel.png" />
-    <BundleResource Include="Resources\Phone\Item\PirSensorLightScale.png" />
-    <BundleResource Include="Resources\Phone\Item\PirSensorLightScaleButton.png" />
     <BundleResource Include="Resources\Phone\Item\Point.png" />
     <BundleResource Include="Resources\Phone\Item\ProgressMsg.png" />
     <BundleResource Include="Resources\Phone\Item\PswSettion.png" />
     <BundleResource Include="Resources\Phone\Item\PswSettionSelected.png" />
     <BundleResource Include="Resources\Phone\Item\QRCode.png" />
     <BundleResource Include="Resources\Phone\Item\Remote.png" />
+    <BundleResource Include="Resources\Phone\Item\ResidenceIcon.png" />
     <BundleResource Include="Resources\Phone\Item\RightIcon.png" />
+    <BundleResource Include="Resources\Phone\Item\Room.png" />
+    <BundleResource Include="Resources\Phone\Item\RoomIcon.png" />
+    <BundleResource Include="Resources\Phone\Item\RoomIconBackground.png" />
+    <BundleResource Include="Resources\Phone\Item\RoomIconBackgroundSelected.png" />
+    <BundleResource Include="Resources\Phone\Item\RoomIconSelected.png" />
+    <BundleResource Include="Resources\Phone\Item\ScanQRcodeIcon.png" />
+    <BundleResource Include="Resources\Phone\Item\ScanQRcodeIconSelected.png" />
     <BundleResource Include="Resources\Phone\Item\Scene.png" />
+    <BundleResource Include="Resources\Phone\Item\SceneCard.png" />
+    <BundleResource Include="Resources\Phone\Item\SceneFunctionBG.png" />
     <BundleResource Include="Resources\Phone\Item\ScreeningType.png" />
     <BundleResource Include="Resources\Phone\Item\Search.png" />
+    <BundleResource Include="Resources\Phone\Item\SelectFloor_Left.png" />
+    <BundleResource Include="Resources\Phone\Item\SelectFloor_Right.png" />
+    <BundleResource Include="Resources\Phone\Item\SelectHouse.png" />
     <BundleResource Include="Resources\Phone\Item\ShardMenu.png" />
+    <BundleResource Include="Resources\Phone\Item\Shared.png" />
     <BundleResource Include="Resources\Phone\Item\Switch.png" />
+    <BundleResource Include="Resources\Phone\Item\Switch1.png" />
+    <BundleResource Include="Resources\Phone\Item\Switch2.png" />
+    <BundleResource Include="Resources\Phone\Item\Switch2Selected.png" />
     <BundleResource Include="Resources\Phone\Item\SwitchSelected.png" />
+    <BundleResource Include="Resources\Phone\Item\SwitchSelected1.png" />
     <BundleResource Include="Resources\Phone\Item\ThirdPartyDevice.png" />
-    <BundleResource Include="Resources\Phone\Item\Tick.png" />
+    <BundleResource Include="Resources\Phone\Item\Time.png" />
     <BundleResource Include="Resources\Phone\Item\Timer.png" />
     <BundleResource Include="Resources\Phone\Item\Tips.png" />
     <BundleResource Include="Resources\Phone\Item\UnHidenPWD.png" />
     <BundleResource Include="Resources\Phone\Item\UnLockFail.png" />
     <BundleResource Include="Resources\Phone\Item\UnLockSuccess.png" />
+    <BundleResource Include="Resources\Phone\Item\UpTriangle.png" />
     <BundleResource Include="Resources\Phone\Item\UpperTriangle.png" />
+    <BundleResource Include="Resources\Phone\Item\VirtualFrame.png" />
+    <BundleResource Include="Resources\Phone\Item\WarningIcon1.png" />
     <BundleResource Include="Resources\Phone\Item\WrongIcon.png" />
+    <BundleResource Include="Resources\Phone\Light\DeskLamp.png" />
+    <BundleResource Include="Resources\Phone\Light\DeskLampSelected.png" />
+    <BundleResource Include="Resources\Phone\Logo\Logo.png" />
     <BundleResource Include="Resources\Phone\Navigation\Category.png" />
     <BundleResource Include="Resources\Phone\Navigation\CategorySelected.png" />
     <BundleResource Include="Resources\Phone\Navigation\Home.png" />
@@ -321,6 +541,7 @@
     <BundleResource Include="Resources\Phone\Navigation\Setting.png" />
     <BundleResource Include="Resources\Phone\Navigation\SettingSelected.png" />
     <BundleResource Include="Resources\Phone\RealDevice\AirSwitchCloudContr.png" />
+    <BundleResource Include="Resources\Phone\RealDevice\CommonDevice.png" />
     <BundleResource Include="Resources\Phone\RealDevice\CurtainAutoOpen.png" />
     <BundleResource Include="Resources\Phone\RealDevice\CurtainSiphonate.png" />
     <BundleResource Include="Resources\Phone\RealDevice\PanelFourButton.png" />
@@ -335,12 +556,109 @@
     <BundleResource Include="Resources\Phone\RealDevice\SensorMotion.png" />
     <BundleResource Include="Resources\Phone\RealDevice\SensorPir.png" />
     <BundleResource Include="Resources\Phone\RealDevice\SensorWater.png" />
+    <BundleResource Include="Resources\Phone\Room\FavoriteRoom.png" />
+    <BundleResource Include="Resources\Phone\Room\ItemSelected.png" />
+    <BundleResource Include="Resources\Phone\Room\ItemUnSelected.png" />
+    <BundleResource Include="Resources\Phone\Room\ItemUnSelected_Black.png" />
+    <BundleResource Include="Resources\Phone\Room\NoNameRoom.png" />
+    <BundleResource Include="Resources\Phone\Room\RoomCardView.png" />
+    <BundleResource Include="Resources\Phone\Room\RoomCardView_Name.png" />
+    <BundleResource Include="Resources\Phone\Room\Room_Rectangle.png" />
     <BundleResource Include="Resources\Phone\Safeguard\ProtectionAtHome.png" />
     <BundleResource Include="Resources\Phone\Safeguard\ProtectionAtHomeSelected.png" />
     <BundleResource Include="Resources\Phone\Safeguard\ProtectionRemoveHome.png" />
     <BundleResource Include="Resources\Phone\Safeguard\ProtectionRemoveHomeSelected.png" />
     <BundleResource Include="Resources\Phone\Safeguard\WithdrawGarrison.png" />
     <BundleResource Include="Resources\Phone\Safeguard\WithdrawGarrisonSelected.png" />
+    <BundleResource Include="Resources\Phone\Scene\SceneIcon.png" />
+    <BundleResource Include="Resources\Phone\Scene\Selected.png" />
+    <BundleResource Include="Resources\Phone\SceneIcon\1.png" />
+    <BundleResource Include="Resources\Phone\SceneIcon\2.png" />
+    <BundleResource Include="Resources\Phone\SceneIcon\3.png" />
+    <BundleResource Include="Resources\Phone\SceneIcon\4.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\1.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\2.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\3.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\AddSelected.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\Ddmmablelight.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\ac.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\add.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\airswitch.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\athome.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\back.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\connect.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\curtain.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\delay.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\delay1.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\deviceselectedbackgroundcolor.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\deviceunselectedbackgroundcolor.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\dimmableLight.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\doorlock.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\drop-down.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\dropdown.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\function.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\function1.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\humidity.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\iconBackgroundColor.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\iconSelectedBackgroundColor.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\leavehome.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\light.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\light_1.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\lockadd.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\logicaddcolor.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\logicbj1.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\logicbj2.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\logicclose.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\logicopen.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\next.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\nodelay.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\nofunction.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\noon.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\noscene.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\nosecurity.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\panel.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\point.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\position.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\scene.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\scene1.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\security.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\security1.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selected.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedac.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedairswitch.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedcurtain.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selecteddimmableLight.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selecteddoorlock.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedhumidity.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedlight.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedmonth.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedpanel.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsenor.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor13.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor21.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor22.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor277.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor40.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor42.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor43.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor44.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\selectedtemperature.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\sensor13.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\sensor21.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\sensor22.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\sensor277.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\sensor40.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\sensor42.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\sensor43.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\sensor44.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\sign.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\sunrise.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\sunset.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\temperature.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\time.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\timeparagraph.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\timepoint.png" />
+    <BundleResource Include="Resources\Phone\ZigeeLogic\withdrawal.png" />
   </ItemGroup>
   <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" />
   <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Language.ini b/ZigbeeApp/GateWay.Ios/Resources/Language.ini
index 25ab4d2..f03d643 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Language.ini
+++ b/ZigbeeApp/GateWay.Ios/Resources/Language.ini
@@ -181,7 +181,7 @@
 175=淇敼澶辫触
 176=璇ョ敤鎴峰彧鑳藉湪璁惧绔垹闄�
 177=鏈垎閰�
-178=楠岃瘉棰戠箒锛岃30绉掑悗鍐嶈瘯
+178=楠岃瘉棰戠箒锛岃15绉掑悗鍐嶈瘯
 179=鎿嶄綔澶辫触
 180=杩滅▼寮�閿佺粦瀹氭垚鍔�
 181=璇疯缃簩娆″畨鍏ㄩ獙璇佹柟寮�
@@ -206,6 +206,7 @@
 200= 淇敼涓存椂瀵嗙爜淇℃伅鍓�
 201=璇风偣鍑诲彸涓婅鈥滄竻闄ゅ瘑鐮佲��
 202=涓�妤�
+203=缃戝叧鍥炲瓒呮椂
 
 548=鎻愰啋璁剧疆
 550=鏂板鐢ㄦ埛
@@ -581,6 +582,8 @@
 5364=閫夋嫨寮�閿佹柟寮�
 5365=娣诲姞鍔ㄤ綔
 5366=鑱斿姩浜嬩欢
+5367=褰撳墠
+5368=閫夋嫨妤煎眰
 
 
 
@@ -614,6 +617,14 @@
 10124=纭閲嶇疆
 10125=淇敼鎴愬姛
 10126=浣犵殑瀵嗙爜淇敼鎴愬姛锛岃閲嶆柊鐧诲綍
+10127=璇烽�夋嫨鍖哄彿
+10128=鏈縺娲�
+10129=璇ョ敤鎴峰睘浜庤皟璇曡处鍙凤紝骞舵湭鍚敤
+10130=鏁版嵁骞朵笉鍦ㄦHDL鍖哄煙鏈嶅姟鍣�
+10131=璐﹀彿鎴栧瘑鐮侀敊璇�
+10132=璐﹀彿涓嶅瓨鍦紝璇峰厛娉ㄥ唽
+10133=璇疯緭鍏ラ獙璇佺爜
+10134=鍗冲皢閫氳繃寰俊鎺堟潈鐧诲綍
 
 11000=鍔熻兘
 11001=鍦烘櫙
@@ -643,6 +654,7 @@
 11031=娣诲姞鎵ц鐩爣
 11032=閫夋嫨鍖哄煙
 11033=閫夋嫨鍦烘櫙鍥剧墖
+
 
 12100=鏈煡璁惧
 12101=鎺у埗闈㈡澘
@@ -698,11 +710,13 @@
 13139=璇ュ満鏅凡瀛樺湪
 13140=缂栬緫
 13141=缂栬緫鍦烘櫙
-
-
-
-
-
+13142=鏈垎閰嶅尯鍩�
+13143=鍔熻兘绫诲瀷
+13144=澶辫触锛岃閲嶈瘯
+13145=鎴愬姛
+13146=榛樿鍥惧簱
+13147=鎷嶇収
+13148=鎴戠殑鐩稿唽
 
 
 15000=瀵嗙爜闀垮害涓簕0}涓瓧绗�
@@ -819,7 +833,7 @@
 15117=璇疯緭鍏ユ挙闃插瘑鐮�
 15118=璇疯緭鍏ュ瘑鐮�
 15119=瀹夐槻瀵嗙爜璁剧疆
-15120=鐢ㄦ埛瀵嗙爜
+15120=瀹夐槻瀵嗙爜
 15121=鑳佽揩瀵嗙爜
 15122=绯荤粺瀵嗙爜璁剧疆
 15123=璇疯緭鍏ョ郴缁熷瘑鐮�
@@ -892,10 +906,10 @@
 15190=娣诲姞浼犳劅鍣�
 15191=甯冮槻
 15192=纭畾鎺堟潈銆寋0}銆嶆垚涓虹鐞嗗憳?
-15193=纭畾瑕佹挙閿�璇ユ垚鍛樼鐞嗘潈闄愬悧锛�
+15193=纭畾鍙栨秷銆寋0}銆嶇鐞嗗憳鏉冮檺锛�
 15194=鎴愬憳鎺堟潈
-15195=鎴愬憳鎺堟潈鎴愬姛
-15196=璇ユ垚鍛樺凡鎴愪负绠$悊鍛榹0}鎮ㄧ殑鎺у埗鏉儃1}宸茬Щ浜�
+15195=鎺堟潈鎴愬姛!
+15196=璇ユ垚鍛樺凡鎴愪负绠$悊鍛�
 15197=纭畾瑕佺Щ闄よ瀹跺涵鎴愬憳鍚楋紵
 15198=鍒锋柊
 15199=鏈垎閰嶅尯鍩�
@@ -1014,7 +1028,7 @@
 15345=鏈缃�
 15346=娣诲姞瀵嗙爜
 15347=璇疯緭鍏ョ敤鎴峰瘑鐮�
-15348=鐢ㄦ埛瀵嗙爜宸叉洿鏂�
+15348=瀹夐槻瀵嗙爜璁剧疆鎴愬姛
 15349=淇敼鐢ㄦ埛瀵嗙爜澶辫触
 15350=鐢ㄦ埛瀵嗙爜鏁板凡婊�(鏈�澶�4涓�)
 15351=鐢ㄦ埛瀵嗙爜閲嶅
@@ -1442,7 +1456,7 @@
 15800=鏂瑰悜
 15801=闄愪綅
 15802=寮�闄愪綅
-15803=鍏抽檺浣�
+15803=鍚堥檺浣�
 15804=閲嶇疆鐢垫満
 15805=閲嶇疆鐢垫満灏嗗垵濮嬪寲{0}鏂瑰悜涓庨檺浣嶈缃紝纭缁х画锛�
 15806=閫夋嫨鏂瑰悜
@@ -1482,8 +1496,8 @@
 15840=2.鍚屾椂闇�纭搴旂敤鐨勫畾浣嶆潈闄愭湭琚叧闂�傝嫢鎵嬪姩鍏抽棴浜嗗簲鐢ㄥ畾浣嶆潈闄愬彲鑳藉鑷存棤娉曡嚜鎷斿彂鐜拌澶囥��
 15841=3.濡傛灉浠嶅缁堟棤娉曞彂鐜拌澶囷紝鍙兘鍥犱负璁惧宸茬粡琚粬浜虹粦瀹氫簡銆傚鏋滀綘骞朵笉娓呮鏄皝杩炴帴浜嗚澶囷紝鍙互杩涜閲嶇疆锛岄噸缃柟寮忚鏌ラ槄璇存槑涔︼紝鏍规嵁鎸囧紩鎿嶄綔銆�
 15842=鎴块棿鍒楄〃
-15843=杩樻病鏈夋坊鍔犲満鏅摝
-15844=杩樻病鏈夋坊鍔犺澶囧摝
+15843=杩樻病鏈夋坊鍔犲満鏅�
+15844=杩樻病鏈夋坊鍔犺澶�
 15845=鎴块棿鍚嶇О宸茬粡瀛樺湪
 15846=瀹ゅ唴鏈鸿缃�
 15847=绌鸿皟妯″紡
@@ -1495,6 +1509,48 @@
 15853=闄ゆ箍
 15854=鎵撳紑绌鸿皟澶辫触
 15855=鍏抽棴绌鸿皟澶辫触
+15856=璇锋敞鎰忔竻娲楁护缃戝摝
+15857=鏃犲彲鍏变韩鐨勫満鏅�
+15858=鏃犲彲鍏变韩鐨勮澶�
+15859=鏃犲彲鍙栨秷鍏变韩鐨勫満鏅�
+15860=鏃犲彲鍙栨秷鍏变韩鐨勮澶�
+15861=纭鍒犻櫎閫夋嫨鐨勫叡浜満鏅拰鍔熻兘锛�
+15862=纭畾鍒涘缓銆屽畨闃层�嶆嵎寰勫埌涓婚〉锛�
+15863=纭畾鍙栨秷涓婚〉鐨勩�屽畨闃层�嶆嵎寰勶紵
+15864=璇峰墠寰�涓汉涓績{0}璁剧疆浜屾瀹夊叏楠岃瘉鏂瑰紡
+15865=24灏忔椂闃插尯涓嶅彈甯冮槻銆佹挙闃插奖鍝峽0}闃插尯琚Е鍙戠珛鍗虫姤璀0}涓�鑸缃儫闆俱�佺噧姘斻�佹按娴哥瓑浼犳劅鍣�
+15866=鍦ㄧ瀹跺竷闃叉ā寮忎笅锛屽唴閮ㄩ槻鍖轰紶鎰熷櫒瑙﹀彂{0}绔嬪嵆鎶ヨ銆傚湪鍦ㄥ甯冮槻妯″紡涓媨0}鍐呴儴闃插尯鎵�鏈変紶鎰熷櫒涓嶅弬涓庢姤璀�
+15867=绂诲甯冮槻妯″紡鎴栧湪瀹跺竷闃叉ā寮忎笅{0}鍛ㄧ晫闃插尯浼犳劅鍣ㄨЕ鍙戠珛鍗虫姤璀�
+15868=鍦ㄥ竷闃插悗绯荤粺鎻愪緵涓�瀹氱殑寤惰繜鏃堕棿銆傚嚭闂ㄦ椂{0}澶栧嚭寤舵椂缁撴潫鍚庯紝绯荤粺瑙﹀彂鐩爣鎶ヨ{0}鍥炲鏃讹紝杩涘叆寤舵椂缁撴潫鍚庯紝绯荤粺瑙﹀彂鐩爣鎶ヨ
+15869=闈欓煶闃插尯涓嶅彈甯冮槻銆佹挙闃插奖鍝嶏紝闃插尯琚珄0}瑙﹀彂绔嬪嵆鎶ヨ锛岄�氬父涓嶄骇鐢熷0闊虫垨{0}鍏朵粬鎻愮ず锛屽彧鍙戦�佷俊鎭埌鐗瑰畾鐨勬帴鏀惰��
+15870=杩樻病鏈夎缃紶鎰熷櫒
+15871=杩樻病鏈夎缃姤璀︾洰鏍�
+15872=鏃犳硶璇嗗埆鐨勮澶�
+15873=鎷嶇収
+15874=浠庣浉鍐屼腑閫夋嫨
+15875=鍑虹幇鏈煡閿欒
+15876=璇疯緭鍏ユ墜鍔�
+15877=璇峰啀娆¤緭鍏ユ墜鍔�
+15878=鏇存敼鎵嬪娍锛岃杈撳叆鎵嬪娍
+15879=纭鎵嬪娍閿欒锛岃閲嶆柊璁剧疆
+15880=鎵嬪娍閿欒锛岃閲嶆柊杈撳叆
+15881=鎵嬪娍瀵嗙爜闀垮害蹇呴』澶т簬{0}
+15882=蹇樿鎵嬪娍锛�
+15883=鐢ㄤ簬鍦ㄥ甯冮槻銆佺瀹跺竷闃层�佹挙闃叉搷浣�
+15884=杈撳叆璇ュ瘑鐮侊紝绔嬪嵆閫氱煡浠栦汉
+15885=鍙栨秷鎴愬姛
+15886=璇ョ鐞嗗憳宸叉垚涓烘垚鍛�
+15887=璇疯緭鍏ユ柊鎵嬪娍
+15888=鐢ㄦ埛瀵嗙爜
+15889=褰撳墠浣跨敤瀵嗙爜
+15890=澶囨敞淇℃伅
+15891=璇疯緭鍏ュ娉ㄥ唴瀹�
+15892=淇敼澶囨敞淇℃伅鎴愬姛!
+15893=杈撳叆鍐呭杩囬暱,鏈�澶0}瀛楄妭
+15894=淇敼澶囨敞淇℃伅澶辫触
+15895=璇疯緭鍏ユ柊鑳佽揩瀵嗙爜
+15896=璇烽噸澶嶈緭鍏ユ柊鑳佽揩瀵嗙爜
+15897=鑳佽揩瀵嗙爜璁剧疆鎴愬姛
 
 ;鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄帴鍙g殑杩斿洖淇℃伅缈昏瘧,浠�18000寮�濮嬧槄鈽呪槄鈽�
 18004=鎸囧畾缃戝叧宸茬粡琚粦瀹�
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Account/QQ.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Account/QQ.png
new file mode 100755
index 0000000..1f731ad
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Account/QQ.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Account/Wechat.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Account/Wechat.png
new file mode 100755
index 0000000..d8eec5a
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Account/Wechat.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirConditioner.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirConditioner.png
index a2b3cf4..b084aab 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirConditioner.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirConditioner.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirConditionerZbGateway.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirConditionerZbGateway.png
index a2b3cf4..b084aab 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirConditionerZbGateway.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirConditionerZbGateway.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirSwitch.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirSwitch.png
index 5e8f7c0..f0b894e 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirSwitch.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirSwitch.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirSwitchCloudContr.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirSwitchCloudContr.png
index 5e8f7c0..f0b894e 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirSwitchCloudContr.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/AirSwitchCloudContr.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanel.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanel.png
index b1f5267..4dbdaca 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanel.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanel.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelFour.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelFour.png
index b1f5267..4dbdaca 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelFour.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelFour.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelOne.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelOne.png
index 45eed0c..f4ca2c9 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelOne.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelOne.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelThree.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelThree.png
index 0f13687..047660c 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelThree.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelThree.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelTwo.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelTwo.png
index 592a43b..7aaeb7c 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelTwo.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ButtonPanelTwo.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ColorLight.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ColorLight.png
index ad8aa4b..78f6bcc 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ColorLight.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ColorLight.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Curtain.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Curtain.png
index 3f58fd5..c8b49d3 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Curtain.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Curtain.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/CurtainAutoOpen.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/CurtainAutoOpen.png
index 3f58fd5..c8b49d3 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/CurtainAutoOpen.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/CurtainAutoOpen.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/CurtainSiphonate.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/CurtainSiphonate.png
index 3f58fd5..c8b49d3 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/CurtainSiphonate.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/CurtainSiphonate.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DimmableLight.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DimmableLight.png
index 2acb7b1..8eec2e6 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DimmableLight.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DimmableLight.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DimmableLightOneLoad.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DimmableLightOneLoad.png
index 2acb7b1..8eec2e6 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DimmableLightOneLoad.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DimmableLightOneLoad.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DryContact.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DryContact.png
index 5768b92..7b9ca4d 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DryContact.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/DryContact.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/IntelligentLocks.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/IntelligentLocks.png
index 022adfd..25a2697 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/IntelligentLocks.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/IntelligentLocks.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/IntelligentLocksH06C.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/IntelligentLocksH06C.png
index 022adfd..25a2697 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/IntelligentLocksH06C.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/IntelligentLocksH06C.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Light.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Light.png
index ad8aa4b..78f6bcc 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Light.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Light.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Relay.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Relay.png
index 0d925dc..a63d393 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Relay.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Relay.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RelayEpoint.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RelayEpoint.png
index f4bd325..1447780 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RelayEpoint.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RelayEpoint.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RelayThreeLoad.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RelayThreeLoad.png
index 0d925dc..a63d393 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RelayThreeLoad.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RelayThreeLoad.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RepeaterZigbee.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RepeaterZigbee.png
index 36983c3..04711b6 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RepeaterZigbee.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/RepeaterZigbee.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Sensor.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Sensor.png
index 3378eb3..80a9bcb 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Sensor.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Sensor.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorCarbonMonoxide.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorCarbonMonoxide.png
index 257914b..7d014fa 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorCarbonMonoxide.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorCarbonMonoxide.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorDoorWindow.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorDoorWindow.png
index fcdd1c2..5d8e8f5 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorDoorWindow.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorDoorWindow.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorFire.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorFire.png
index 72aa396..20a2127 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorFire.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorFire.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorHumidity.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorHumidity.png
index 6a57353..966153e 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorHumidity.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorHumidity.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorInfrared.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorInfrared.png
index 50b6ef0..48718b3 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorInfrared.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorInfrared.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorPir.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorPir.png
index ad9e3b4..8b3140e 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorPir.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorPir.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorTemperature.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorTemperature.png
index dc6aba3..54cf106 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorTemperature.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorTemperature.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorWater.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorWater.png
index 55110d5..94ba0b8 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorWater.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/SensorWater.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Socket1.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Socket1.png
index 651eb85..d9f5b51 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Socket1.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Socket1.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Switch.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Switch.png
index 5e8f7c0..3267570 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Switch.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/Switch.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/ThirdPartyDevice.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ThirdPartyDevice.png
similarity index 100%
rename from ZigbeeApp/GateWay.Ios/Resources/Phone/Item/ThirdPartyDevice.png
rename to ZigbeeApp/GateWay.Ios/Resources/Phone/Device/ThirdPartyDevice.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/GarrisonList.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/GarrisonList.png
index 247af21..37746f1 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/GarrisonList.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/GarrisonList.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/GarrisonListSelected.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/GarrisonListSelected.png
index 0f48c11..3ebd863 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/GarrisonListSelected.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/GarrisonListSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/HadAuthority.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/HadAuthority.png
new file mode 100755
index 0000000..6710a03
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/HadAuthority.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/PhoneBook.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/PhoneBook.png
new file mode 100755
index 0000000..49441f6
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/PhoneBook.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/PswSettion.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/PswSettion.png
index 3ccfa5d..c622dfe 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/PswSettion.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/PswSettion.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/PswSettionSelected.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/PswSettionSelected.png
index a7adde5..5692b8e 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/PswSettionSelected.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/PswSettionSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/Scene.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/Scene.png
deleted file mode 100755
index 48b2002..0000000
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Item/Scene.png
+++ /dev/null
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Close.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Close.png
new file mode 100755
index 0000000..4b365d8
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Close.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/CloseSelected.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/CloseSelected.png
new file mode 100755
index 0000000..a0d290e
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/CloseSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Down.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Down.png
new file mode 100755
index 0000000..b73d7c7
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Down.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/DownSelected.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/DownSelected.png
new file mode 100755
index 0000000..da3c7d3
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/DownSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Open.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Open.png
new file mode 100755
index 0000000..b1f89c6
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Open.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/OpenSelected.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/OpenSelected.png
new file mode 100755
index 0000000..df795b7
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/OpenSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Stop.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Stop.png
new file mode 100755
index 0000000..96010a1
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Stop.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/StopSelected.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/StopSelected.png
new file mode 100755
index 0000000..d4eb1da
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/StopSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Up.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Up.png
new file mode 100755
index 0000000..34042d0
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/Up.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/UpSelected.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/UpSelected.png
new file mode 100755
index 0000000..5d5409c
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/RollerShade/UpSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionAtHome.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionAtHome.png
index 326e682..5368885 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionAtHome.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionAtHome.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionAtHomeSelected.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionAtHomeSelected.png
index 5370f12..f67de56 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionAtHomeSelected.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionAtHomeSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionRemoveHome.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionRemoveHome.png
index 3c22c7d..d7844be 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionRemoveHome.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionRemoveHome.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionRemoveHomeSelected.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionRemoveHomeSelected.png
index f908612..8e78586 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionRemoveHomeSelected.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/ProtectionRemoveHomeSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/SafeguardPasswordGround.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/SafeguardPasswordGround.png
new file mode 100755
index 0000000..8d81e26
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/SafeguardPasswordGround.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/SafetyShortcut.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/SafetyShortcut.png
new file mode 100755
index 0000000..f413ed8
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/SafetyShortcut.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/SafetyShortcutSelected.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/SafetyShortcutSelected.png
new file mode 100755
index 0000000..a8e8568
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/SafetyShortcutSelected.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/WithdrawGarrison.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/WithdrawGarrison.png
index 7d5ef6b..f636537 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/WithdrawGarrison.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/WithdrawGarrison.png
Binary files differ
diff --git a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/WithdrawGarrisonSelected.png b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/WithdrawGarrisonSelected.png
index f80d65d..d422c7e 100755
--- a/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/WithdrawGarrisonSelected.png
+++ b/ZigbeeApp/GateWay.Ios/Resources/Phone/Safeguard/WithdrawGarrisonSelected.png
Binary files differ
diff --git a/ZigbeeApp/Shared/.DS_Store b/ZigbeeApp/Shared/.DS_Store
deleted file mode 100755
index 8024ef0..0000000
--- a/ZigbeeApp/Shared/.DS_Store
+++ /dev/null
Binary files differ
diff --git a/ZigbeeApp/Shared/Common/CommonPage.cs b/ZigbeeApp/Shared/Common/CommonPage.cs
index 8857fa6..354c51a 100755
--- a/ZigbeeApp/Shared/Common/CommonPage.cs
+++ b/ZigbeeApp/Shared/Common/CommonPage.cs
@@ -57,7 +57,7 @@
         /// <summary>
         /// 鐗堟湰鍙�
         /// </summary>
-        public static string CodeIDString = "1.0.19102801";
+        public static string CodeIDString = "1.0.19103101";
         /// <summary>
         /// 娉ㄥ唽鏉ユ簮(0:HDL On 1:Zigbee)
         /// </summary>
@@ -74,7 +74,7 @@
         /// <summary>
         /// 璇锋眰鐗堟湰鍙�
         /// </summary>
-        public static string RequestVersion = "1.0";
+        public static string RequestVersion = "2.0";
         /// <summary>
         /// 宸﹁竟璺濈灞忓箷鐨勫搴�--58
         /// </summary>
diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs
index c175a45..5e8b4ad 100755
--- a/ZigbeeApp/Shared/Common/Device.cs
+++ b/ZigbeeApp/Shared/Common/Device.cs
@@ -37,22 +37,21 @@
             }
         }
         /// <summary>
-        /// 鏈湴鎵�鏈夎澶囩殑缂撳瓨
+        /// 鏈湴鎵�鏈夎澶囩殑缂撳瓨(鎺掑簭)
         /// </summary>
         public List<CommonDevice> listAllDevice
         {
             get
             {
-                var list = new List<CommonDevice>();
-                foreach (var listMac in this.dicDeviceSort.Values)
+                lock (dicAllDevice)
                 {
-                    foreach (var strMac in listMac)
+                    var list = new List<CommonDevice>();
+                    foreach (var device in dicAllDevice.Values)
                     {
-                        var listTemp = this.GetDevicesByMac(strMac);
-                        list.AddRange(listTemp);
+                        list.Add(device);
                     }
+                    return list;
                 }
-                return list;
             }
         }
 
@@ -85,13 +84,9 @@
         /// </summary>
         private Dictionary<string, HashSet<int>> dicDeviceEpoint = new Dictionary<string, HashSet<int>>();
         /// <summary>
-        /// 璁惧Mac椤哄簭(閲岄潰鏄疢ac鍦板潃)
+        /// 鐗╃悊璁惧灞炰簬鍝釜鎴块棿鐨勮褰�
         /// </summary>
-        private Dictionary<string, List<string>> dicDeviceSort = null;
-        /// <summary>
-        /// 璁惧鏂囦欢鐨勫墠缂�鍚嶅瓧
-        /// </summary>
-        public const string deviceFirstName = "Device_";
+        private Dictionary<string, string> dicDeviceRoomId = null;
 
         #endregion
 
@@ -175,9 +170,9 @@
                 }
             }
             //鎴愬憳韬唤鐨勬椂鍊�,鍒犻櫎鎺夐潪娉曠殑缃戝叧鏂囦欢
-            this.DeleteGatewayFileByMemberModel();
-            //鍒濆鍖栬澶囬『搴�
-            this.InitDeviceSort();
+            this.DeleteGatewayFileByMemberModel();
+            //鍒濆鍖栫墿鐞嗚澶囨墍灞炴埧闂寸殑璁板綍
+            this.InitRealDeviceRoomId();
         }
 
         /// <summary>
@@ -312,16 +307,6 @@
         /// <param name="device">璁惧瀵硅薄(杩欎釜涓滆タ鏈夊彲鑳戒細琚洿鏀�)</param>
         public void AddDeviceToMemory(ref CommonDevice device)
         {
-            if (dicDeviceSort.ContainsKey(device.CurrentGateWayId) == false)
-            {
-                dicDeviceSort[device.CurrentGateWayId] = new List<string>();
-            }
-            if (dicDeviceSort[device.CurrentGateWayId].Contains(device.DeviceAddr) == false)
-            {
-                //淇濆瓨椤哄簭
-                dicDeviceSort[device.CurrentGateWayId].Add(device.DeviceAddr);
-                UserCenterLogic.SaveFileContent(UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DeviceSortFile), dicDeviceSort);
-            }
             string mainKeys = this.GetDeviceMainKeys(device);
             //濡傛灉瀹冩槸鍗囩骇鐨勯《绔鐐�,鍒欎笉鑳借瀹冨姞鍏ュ埌缂撳瓨锛屼絾鏄彲浠ヨ浠栫敓鎴愭枃浠�
             if (device is OTADevice)
@@ -521,18 +506,17 @@
                 this.ShowErrorMsg(msg);
                 return false;
             }
-            if (dicDeviceSort.ContainsKey(listdevice[0].CurrentGateWayId) == true &&
-                dicDeviceSort[listdevice[0].CurrentGateWayId].Contains(info.DeviceAddr) == true)
-            {
-                //淇濆瓨椤哄簭
-                dicDeviceSort[listdevice[0].CurrentGateWayId].Remove(info.DeviceAddr);
-                UserCenterLogic.SaveFileContent(UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DeviceSortFile), dicDeviceSort);
-            }
 
             //鍒犻櫎鏂囦欢
             foreach (CommonDevice device in listdevice)
             {
                 this.DeleteMemmoryDevice(device);
+            }
+            if (this.dicDeviceRoomId.ContainsKey(listdevice[0].DeviceAddr) == true)
+            {
+                //绉婚櫎鐪熷疄璁惧鐨勬埧闂寸储寮�
+                this.dicDeviceRoomId.Remove(listdevice[0].DeviceAddr);
+                this.SaveRealDeviceRoomId(null, null);
             }
             return true;
         }
@@ -683,32 +667,14 @@
             List<CommonDevice> list = new List<CommonDevice>();
             lock (dicAllDevice)
             {
-                List<string> listSort = null;
-                if (dicDeviceSort.ContainsKey(gwId) == false)
-                {
-                    dicDeviceSort[gwId] = new List<string>();
-                }
-                listSort = dicDeviceSort[gwId];
-
                 //鍚勭綉鍏崇殑鎵�鏈夎澶�
                 foreach (CommonDevice device in this.dicAllDevice.Values)
                 {
                     if (gwId == device.CurrentGateWayId)
                     {
-                        if (listSort.Contains(device.DeviceAddr) == false)
-                        {
-                            listSort.Add(device.DeviceAddr);
-                        }
+                        list.Add(device);
                     }
                 }
-                //鎺掑簭
-                foreach (var strMac in listSort)
-                {
-                    var listTemp = this.GetDevicesByMac(strMac);
-                    list.AddRange(listTemp);
-                }
-                //淇濆瓨椤哄簭
-                UserCenterLogic.SaveFileContent(UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DeviceSortFile), dicDeviceSort);
             }
 
             return list;
@@ -783,9 +749,10 @@
         {
             List<string> listDeviceFile = new List<string>();
             List<string> listAllFile = Global.FileListByHomeId();
+
             foreach (string file in listAllFile)
             {
-                if (file.StartsWith(deviceFirstName) == false)
+                if (file.StartsWith("Device_") == false)
                 {
                     //濡傛灉涓嶆槸璁惧鏂囦欢
                     continue;
@@ -1000,6 +967,11 @@
         /// <returns></returns>
         public void SetDeviceIconToControl(Button btnIcon, CommonDevice device)
         {
+            if (device == null)
+            {
+                btnIcon.UnSelectedImagePath = "Device/ThirdPartyDevice.png";
+                return;
+            }
             string unSelectFilePath = string.Empty;
             string selectFilePath = string.Empty;
 
@@ -1512,89 +1484,75 @@
 
         #endregion
 
-        #region 鈻� 璁惧鎺掑簭___________________________
+        #region 鈻� 鐗╃悊璁惧鎵�灞炴埧闂確__________________
 
         /// <summary>
-        /// 鍒濆鍖栬澶囬『搴�
+        /// 鍒濆鍖栫墿鐞嗚澶囨墍灞炴埧闂寸殑璁板綍
         /// </summary>
-        private void InitDeviceSort()
+        private void InitRealDeviceRoomId()
         {
-            //璇诲彇璁惧椤哄簭
-            this.dicDeviceSort = new Dictionary<string, List<string>>();
-            string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DeviceSortFile);
+            this.dicDeviceRoomId = new Dictionary<string, string>();
+            string fullName = UserCenterLogic.CombinePath(DirNameResourse.DeviceRoomIdFile);
             var strData = UserCenterLogic.LoadFileContent(fullName);
             if (strData != null)
             {
-                this.dicDeviceSort = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, List<string>>>(strData);
+                this.dicDeviceRoomId = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(strData);
             }
-            foreach (var device in dicAllDevice.Values)
-            {
-                if (dicDeviceSort.ContainsKey(device.CurrentGateWayId) == false)
-                {
-                    dicDeviceSort[device.CurrentGateWayId] = new List<string>();
-                }
-                if (dicDeviceSort[device.CurrentGateWayId].Contains(device.DeviceAddr) == false)
-                {
-                    //鏂版坊鍔犵殑璁惧
-                    dicDeviceSort[device.CurrentGateWayId].Add(device.DeviceAddr);
-                }
-            }
-            foreach (var keys in dicDeviceSort.Keys)
-            {
-                var list = dicDeviceSort[keys];
-                for (int i = 0; i < list.Count; i++)
-                {
-                    if (this.dicDeviceEpoint.ContainsKey(list[i]) == false)
-                    {
-                        //杩欎釜涓滆タ鑾悕鐨勪笉瑙佷簡锛熷拰璁惧鍒楄〃鍖归厤涓嶄笂?
-                        list.RemoveAt(i);
-                        i--;
-                    }
-                }
-            }
-
-            //淇濆瓨椤哄簭
-            UserCenterLogic.SaveFileContent(fullName, dicDeviceEpoint);
         }
 
         /// <summary>
-        /// 璁惧鎺掑簭
+        /// 淇濆瓨鐗╃悊璁惧鎵�灞炴埧闂寸殑璁板綍
         /// </summary>
-        /// <param name="listDevice">闇�瑕佹帓搴忕殑璁惧鍒楄〃</param>
-        /// <returns></returns>
-        public List<CommonDevice> SortDevice(List<CommonDevice> listDevice)
+        /// <param name="listDevice">闇�瑕佷繚瀛樼殑璁惧瀵硅薄</param>
+        /// <param name="roomId">闇�瑕佷繚瀛樼殑鍝釜璁惧鐨勬埧闂碔D</param>
+        public void SaveRealDeviceRoomId(List<CommonDevice> listDevice, string roomId)
         {
-            var dic = new Dictionary<string, List<CommonDevice>>();
-            for (int i = 0; i < listDevice.Count; i++)
+            this.dicDeviceRoomId[listDevice[0].DeviceAddr] = roomId;
+
+            //淇濆瓨璁板綍
+            string fullName = UserCenterLogic.CombinePath(DirNameResourse.DeviceRoomIdFile);
+            UserCenterLogic.SaveFileContent(fullName, this.dicDeviceRoomId);
+
+            //濡傛灉璁惧鍙湁涓�涓洖璺紝濡傛灉鏀瑰彉浜嗙湡瀹炶澶囧尯鍩燂紝鍒欏畠鐨勫洖璺殑鍖哄煙涔熶竴璧锋敼浜�
+            if (listDevice.Count == 1)
             {
-                if (dic.ContainsKey(listDevice[i].DeviceAddr) == false)
-                {
-                    dic[listDevice[i].DeviceAddr] = new List<CommonDevice>();
-                }
-                dic[listDevice[i].DeviceAddr].Add(listDevice[i]);
+                Common.Room.CurrentRoom.ChangedRoom(listDevice[0], roomId);
             }
-            var list = new List<CommonDevice>();
-            var listCheck = new HashSet<string>();
-            foreach (var listSort in this.dicDeviceSort.Values)
+        }
+
+        /// <summary>
+        /// 鑾峰彇鐪熷疄鐗╃悊璁惧鐨勬埧闂村悕瀛�
+        /// </summary>
+        /// <param name="device">璁惧鐨勬煇涓�涓洖璺�</param>
+        /// <returns></returns>
+        public string GeteRealDeviceRoomName(CommonDevice device)
+        {
+            if (this.dicDeviceRoomId.ContainsKey(device.DeviceAddr) == false)
             {
-                for (int i = 0; i < listSort.Count; i++)
-                {
-                    if (dic.ContainsKey(listSort[i]) == true && listCheck.Contains(listSort[i]) == false)
-                    {
-                        listCheck.Add(listSort[i]);
-                        dic[listSort[i]].Sort((obj1, obj2) =>
-                        {
-                            if (obj1.DeviceEpoint > obj2.DeviceEpoint)
-                            {
-                                return 1;
-                            }
-                            return -1;
-                        });
-                        list.AddRange(dic[listSort[i]]);
-                    }
-                }
+                //鏈垎閰嶅尯鍩�
+                return Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
             }
-            return list;
+            var room = Room.CurrentRoom.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
+            if (room != null)
+            {
+                return room.Name;
+            }
+            //鏈垎閰嶅尯鍩�
+            return Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+        }
+
+        /// <summary>
+        /// 鑾峰彇鐪熷疄鐗╃悊璁惧灞炰簬鍝釜鎴块棿
+        /// </summary>
+        /// <param name="device">璁惧鐨勬煇涓�涓洖璺�</param>
+        /// <returns></returns>
+        public Room GeteRealDeviceRoom(CommonDevice device)
+        {
+            if (this.dicDeviceRoomId.ContainsKey(device.DeviceAddr) == false)
+            {
+                return null;
+            }
+            return Room.CurrentRoom.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Common/DeviceUI.cs b/ZigbeeApp/Shared/Common/DeviceUI.cs
index 7bad709..4e36b30 100755
--- a/ZigbeeApp/Shared/Common/DeviceUI.cs
+++ b/ZigbeeApp/Shared/Common/DeviceUI.cs
@@ -324,9 +324,9 @@
             var room = Room.CurrentRoom.GetRoomByDevice(CommonDevice);
             if (room == null)
             {
-                return null;
+                return Language.StringByID(R.MyInternationalizationString.UnallocatedArea);
             }
-            var floorName = Shared.Common.Config.Instance.Home.GetFloorNameById(room.FloorId);
+            var floorName = Config.Instance.Home.GetFloorNameById(room.FloorId);
             if (floorName == null)
             {
                 return room.Name;
@@ -335,5 +335,110 @@
         }
 
         #endregion
+
+        /// <summary>
+        /// GetDeviceStatu
+        /// </summary>
+        /// <returns></returns>
+        public string GetDeviceStatu()
+        {
+            if (CommonDevice.Type == DeviceType.OnOffOutput)
+            {
+                if ((CommonDevice as ToggleLight).OnOffStatus == 1)
+                {
+                    return Language.StringByID(R.MyInternationalizationString.Open);
+                }
+                return Language.StringByID(R.MyInternationalizationString.Shut);
+            }
+            else if (CommonDevice.Type == DeviceType.AirSwitch)
+            {
+                if ((CommonDevice as ZigBee.Device.AirSwitch).OnOffStatus == 1)
+                {
+                    return Language.StringByID(R.MyInternationalizationString.Open);
+                }
+                return Language.StringByID(R.MyInternationalizationString.Shut);
+            }
+            else if (CommonDevice.Type == DeviceType.DimmableLight)
+            {
+                if ((CommonDevice as DimmableLight).OnOffStatus == 0 || (CommonDevice as DimmableLight).Level == 0)
+                {
+                    return Language.StringByID(R.MyInternationalizationString.Shut);
+                }
+                return $"{(int)((CommonDevice as DimmableLight).Level * 1.0 / 254 * 100)}%";
+            }
+            else if (CommonDevice.Type == DeviceType.WindowCoveringDevice)
+            {
+                if ((CommonDevice as ZigBee.Device.Rollershade).WcdCurrentPositionLiftPercentage == 0)
+                {
+                    return Language.StringByID(R.MyInternationalizationString.Shut);
+                }
+                return $"{(CommonDevice as ZigBee.Device.Rollershade).WcdCurrentPositionLiftPercentage}%";
+            }
+            //else if (CommonDevice.Type == DeviceType.Thermostat)
+            //{
+            ////娓╁害锛屾ā寮忥紝椋庨��
+            //string tempareture = string.Empty;
+            //string model = string.Empty;
+            //string wind = string.Empty;
+            //if (TaskList.Count == 0)
+            //{
+            //    return null;
+            //}
+            //foreach (var taskListInfo in TaskList)
+            //{
+            //    if (taskListInfo.Data1 == 3)
+            //    {
+            //        if (taskListInfo.Data2 == 0)
+            //        {
+            //            return Language.StringByID(R.MyInternationalizationString.Shut);
+            //        }
+            //        else if (taskListInfo.Data2 == 1)
+            //        {
+            //            model = Language.StringByID(R.MyInternationalizationString.Mode_Auto);
+            //        }
+            //        else if (taskListInfo.Data2 == 3)
+            //        {
+            //            model = Language.StringByID(R.MyInternationalizationString.Mode_Cool);
+            //        }
+            //        else if (taskListInfo.Data2 == 4)
+            //        {
+            //            model = Language.StringByID(R.MyInternationalizationString.Mode_Heat);
+            //        }
+            //        else if (taskListInfo.Data2 == 7)
+            //        {
+            //            model = Language.StringByID(R.MyInternationalizationString.Mode_FanOnly);
+            //        }
+            //        else if (taskListInfo.Data2 == 8)
+            //        {
+            //            model = Language.StringByID(R.MyInternationalizationString.Mode_Dry);
+            //        }
+            //    }
+            //    else if (taskListInfo.Data1 == 4 || taskListInfo.Data1 == 5)
+            //    {
+            //        tempareture = $"{ taskListInfo.Data2} 鈩�";
+            //    }
+            //    else if (taskListInfo.Data1 == 6)
+            //    {
+            //        if (taskListInfo.Data2 == 1)
+            //        {
+            //            wind = Language.StringByID(R.MyInternationalizationString.Fan_Low);
+            //        }
+            //        else if (taskListInfo.Data2 == 2)
+            //        {
+            //            wind = Language.StringByID(R.MyInternationalizationString.Fan_Middle);
+            //        }
+            //        else if (taskListInfo.Data2 == 3)
+            //        {
+            //            wind = Language.StringByID(R.MyInternationalizationString.Fan_Height);
+            //        }
+            //    }
+            //}
+            //return $"{tempareture},{model},{wind}";
+            //}
+            else
+            {
+                return null;
+            }
+        }
     }
 }
diff --git a/ZigbeeApp/Shared/Common/ResponseEntity/AuthUserRes.cs b/ZigbeeApp/Shared/Common/ResponseEntity/AuthUserRes.cs
new file mode 100755
index 0000000..22cc366
--- /dev/null
+++ b/ZigbeeApp/Shared/Common/ResponseEntity/AuthUserRes.cs
@@ -0,0 +1,26 @@
+锘縰sing System;
+using System.Collections.Generic;
+namespace Shared.Common.ResponseEntity
+{
+    [Serializable]
+    public class AuthUserRes
+    {
+        ///<summary>
+        /// 绗笁鏂箃oken
+        /// </summary>
+        public string access_token;
+        /// <summary>
+        /// 鍒锋柊token
+        /// </summary>
+        public string refresh_token;
+        /// <summary>
+        ///绗笁鏂圭敤鎴峰敮涓�鏍囪瘑
+        /// </summary>
+        public string openid;
+
+        public int expires_in;
+        public string scope;
+        public string unionid;
+
+    }
+}
\ No newline at end of file
diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs
index c7a830e..fd52a18 100755
--- a/ZigbeeApp/Shared/Common/Room.cs
+++ b/ZigbeeApp/Shared/Common/Room.cs
@@ -493,6 +493,10 @@
         /// <param name="roomId">鎴块棿ID</param>
         public Room GetRoomById(string roomId)
         {
+            if (string.IsNullOrEmpty(roomId))
+            {
+                return null;
+            }
             return Lists.Find((obj) => obj.Id == roomId);
         }
 
@@ -534,11 +538,8 @@
         /// <param name="device">璁惧瀵硅薄</param>
         public Room GetRoomByDevice(CommonDevice device)
         {
-            var deviceUI = new DeviceUI { };
-            deviceUI.DeviceAddr = device.DeviceAddr;
-            deviceUI.DeviceEpoint = device.DeviceEpoint;
-
-            return Lists.Find((obj) => obj.IsLove == false && obj.DeviceUIFilePathList.Contains(deviceUI.FileName));
+            string deviceFile = device.FilePath;
+            return Lists.Find((obj) => obj.IsLove == false && obj.DeviceUIFilePathList.Contains(deviceFile));
         }
 
         /// <summary>
@@ -747,9 +748,8 @@
             {
                 return;
             }
-            var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(deviceUIFilePath));
-            var deviceUI = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceUI>(jsonInfo);
-            if (null == deviceUI || null == deviceUI.CommonDevice)
+            var deviceUI = Common.LocalDevice.Current.GetDeviceUI(deviceUIFilePath);
+            if (null == deviceUI.CommonDevice)
             {
                 //褰撳墠瀵硅薄鏁版嵁鏃犳晥
                 return;
@@ -779,7 +779,7 @@
             //娣诲姞鑷姩澶囦唤
             HdlAutoBackupLogic.AddOrEditorFile(device.FilePath);
 
-            DeviceUI deviceUI = Common.LocalDevice.Current.GetDeviceUI(device);
+            var deviceUI = Common.LocalDevice.Current.GetDeviceUI(device);
             if (DeviceUIFilePathList.Contains(deviceUI.FileName) == false)
             {
                 DeviceUIFilePathList.Add(deviceUI.FileName);
@@ -802,11 +802,10 @@
         public void DeleteDevice(string deviceUIFilePath)
         {
             if (deviceUIFilePath == null) return;
-            if (DeviceUIFilePathList.Contains(deviceUIFilePath) && Global.IsExistsByHomeId(deviceUIFilePath))
+            if (DeviceUIFilePathList.Contains(deviceUIFilePath))
             {
                 DeviceUIFilePathList.Remove(deviceUIFilePath);
                 DeviceUIList.RemoveAll((obj) => obj.FileName == deviceUIFilePath);
-                HdlAutoBackupLogic.DeleteFile(deviceUIFilePath);
                 Save();
             }
         }
@@ -821,24 +820,21 @@
             {
                 return;
             }
-            DeviceUI deviceUI = new DeviceUI();
-            deviceUI.DeviceAddr = device.DeviceAddr;
-            deviceUI.DeviceEpoint = device.DeviceEpoint;
-
             //鏍规嵁璁惧锛岃幏鍙栨墍鍦ㄧ殑鎴块棿
             var room = this.GetRoomByDevice(device);
             if (room == null)
             {
                 return;
             }
+            string deviceFile = device.FilePath;
             //绉婚櫎缂撳瓨
-            if (room.DeviceUIFilePathList.Contains(deviceUI.FileName) == false)
+            if (room.DeviceUIFilePathList.Contains(deviceFile) == false)
             {
                 return;
             }
-            room.DeviceUIFilePathList.Remove(deviceUI.FileName);
+            room.DeviceUIFilePathList.Remove(deviceFile);
 
-            room.DeviceUIList.RemoveAll((obj) => obj.FileName == deviceUI.FileName);
+            room.DeviceUIList.RemoveAll((obj) => obj.FileName == deviceFile);
             room.Save();
             //鏇存敼鑷姩澶囦唤
             HdlAutoBackupLogic.AddOrEditorFile(room.FileName);
@@ -873,11 +869,7 @@
                 }
                 listDevice.Add(device.CommonDevice);
             }
-            if (listDevice.Count == 0)
-            {
-                return listDevice;
-            }
-            return Common.LocalDevice.Current.SortDevice(listDevice);
+            return listDevice;
         }
 
         /// <summary>
diff --git a/ZigbeeApp/Shared/Common/SendDataToServer.cs b/ZigbeeApp/Shared/Common/SendDataToServer.cs
index b4c0f6a..a47e25b 100755
--- a/ZigbeeApp/Shared/Common/SendDataToServer.cs
+++ b/ZigbeeApp/Shared/Common/SendDataToServer.cs
@@ -205,6 +205,48 @@
         }
         #endregion
 
+        #region 绗笁鏂圭櫥褰�
+
+       
+        /// <summary>
+        /// 娣诲姞鎴栬�呮洿鏂板井淇℃巿鏉冪櫥褰曚俊鎭�
+        /// </summary>
+        [System.Serializable]
+        public class AuthUser
+        {
+            /// <summary>
+            /// 绗笁鏂箃oken
+            /// </summary>
+            public string AccessToken;
+            /// <summary>
+            /// 鍒锋柊token
+            /// </summary>
+            public string RefreshToken;
+            /// <summary>
+            ///绗笁鏂圭敤鎴峰敮涓�鏍囪瘑
+            /// </summary>
+            public string OpenID;
+        }
+
+        /// <summary>
+        /// 绗笁鏂圭粦瀹氳处鍙�
+        /// </summary>
+        [System.Serializable]
+        public class BindAuthUser
+        {
+            /// <summary>
+            /// 璐﹀彿鐨処d
+            /// </summary>
+            public string AccountGuid;
+            /// <summary>
+            ///绗笁鏂圭敤鎴峰敮涓�鏍囪瘑
+            /// </summary>
+            public string OpenID;
+        }
+
+        #endregion
+
+
         #region ForgetPasswordAction 鍔熻兘鎻忚堪锛氬繕璁板瘑鐮侊紝鎵嬫満鍙锋壘鍥炲瘑鐮佹柟娉�
         /// <summary>
         /// 蹇樿瀵嗙爜
diff --git a/ZigbeeApp/Shared/DLL/Shared.Droid.HDLWidget.dll b/ZigbeeApp/Shared/DLL/Android/Shared.Droid.HDLWidget.dll
similarity index 89%
rename from ZigbeeApp/Shared/DLL/Shared.Droid.HDLWidget.dll
rename to ZigbeeApp/Shared/DLL/Android/Shared.Droid.HDLWidget.dll
index 65e9deb..5d5933f 100755
--- a/ZigbeeApp/Shared/DLL/Shared.Droid.HDLWidget.dll
+++ b/ZigbeeApp/Shared/DLL/Android/Shared.Droid.HDLWidget.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Shared.Droid.TouchID.dll b/ZigbeeApp/Shared/DLL/Android/Shared.Droid.TouchID.dll
similarity index 90%
rename from ZigbeeApp/Shared/DLL/Shared.Droid.TouchID.dll
rename to ZigbeeApp/Shared/DLL/Android/Shared.Droid.TouchID.dll
index 484bf27..0fdaa8e 100755
--- a/ZigbeeApp/Shared/DLL/Shared.Droid.TouchID.dll
+++ b/ZigbeeApp/Shared/DLL/Android/Shared.Droid.TouchID.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll b/ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll
new file mode 100755
index 0000000..b5c515c
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Arch.Core.Common.dll b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Arch.Core.Common.dll
new file mode 100755
index 0000000..069193a
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Arch.Core.Common.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Arch.Lifecycle.Common.dll b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Arch.Lifecycle.Common.dll
new file mode 100755
index 0000000..951a579
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Arch.Lifecycle.Common.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Arch.Lifecycle.Runtime.dll b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Arch.Lifecycle.Runtime.dll
new file mode 100755
index 0000000..d9c2b94
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Arch.Lifecycle.Runtime.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Animated.Vector.Drawable.dll b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Animated.Vector.Drawable.dll
new file mode 100755
index 0000000..094b9fd
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Animated.Vector.Drawable.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Annotations.dll b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Annotations.dll
new file mode 100755
index 0000000..f320c42
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Annotations.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Compat.dll b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Compat.dll
new file mode 100755
index 0000000..a2138ea
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Compat.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Core.UI.dll b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Core.UI.dll
new file mode 100755
index 0000000..8cfa0ed
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Core.UI.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Core.Utils.dll b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Core.Utils.dll
new file mode 100755
index 0000000..abd396b
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Core.Utils.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Fragment.dll b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Fragment.dll
new file mode 100755
index 0000000..afe2d75
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Fragment.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Media.Compat.dll b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Media.Compat.dll
new file mode 100755
index 0000000..1262bd6
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Media.Compat.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Vector.Drawable.dll b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Vector.Drawable.dll
new file mode 100755
index 0000000..63ef6cc
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.Vector.Drawable.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.v4.dll b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.v4.dll
new file mode 100755
index 0000000..dfb0593
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.v4.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.v7.AppCompat.dll b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.v7.AppCompat.dll
new file mode 100755
index 0000000..6becc95
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/Android/Xamarin.Android.Support.v7.AppCompat.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Shared.IOS.TBL.dll b/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.TBL.dll
similarity index 83%
rename from ZigbeeApp/Shared/DLL/Shared.IOS.TBL.dll
rename to ZigbeeApp/Shared/DLL/IOS/Shared.IOS.TBL.dll
index cd3a196..ef1fa70 100755
--- a/ZigbeeApp/Shared/DLL/Shared.IOS.TBL.dll
+++ b/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.TBL.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Shared.IOS.dll b/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll
similarity index 97%
rename from ZigbeeApp/Shared/DLL/Shared.IOS.dll
rename to ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll
index 163972f..e131936 100755
--- a/ZigbeeApp/Shared/DLL/Shared.IOS.dll
+++ b/ZigbeeApp/Shared/DLL/IOS/Shared.IOS.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/IOS/Xamarin.Essentials.dll b/ZigbeeApp/Shared/DLL/IOS/Xamarin.Essentials.dll
new file mode 100755
index 0000000..0bc709e
--- /dev/null
+++ b/ZigbeeApp/Shared/DLL/IOS/Xamarin.Essentials.dll
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Shared.Droid.dll b/ZigbeeApp/Shared/DLL/Shared.Droid.dll
deleted file mode 100755
index 92348ee..0000000
--- a/ZigbeeApp/Shared/DLL/Shared.Droid.dll
+++ /dev/null
Binary files differ
diff --git a/ZigbeeApp/Shared/DLL/Xamarin.Essentials.dll b/ZigbeeApp/Shared/DLL/Xamarin.Essentials.dll
deleted file mode 100755
index 2953d8b..0000000
--- a/ZigbeeApp/Shared/DLL/Xamarin.Essentials.dll
+++ /dev/null
Binary files differ
diff --git a/ZigbeeApp/Shared/Phone/Device/Account/AccountForgetPWD.cs b/ZigbeeApp/Shared/Phone/Device/Account/AccountForgetPWD.cs
index 60a77c2..c232736 100755
--- a/ZigbeeApp/Shared/Phone/Device/Account/AccountForgetPWD.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Account/AccountForgetPWD.cs
@@ -123,7 +123,7 @@
                 Width = Application.GetRealWidth(942),
                 Gravity = Gravity.CenterHorizontal,
                 BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                Radius = (uint)Application.GetRealHeight(30)
+                Radius = (uint)Application.GetRealHeight(17)
             };
             bodyFrameLayout.AddChidren(accountCodeFL);
 
@@ -249,7 +249,7 @@
             {
                 codeRow.SendCodeBtn.Enable = codeRow.SendCodeBtn.IsSelected = false;
             }
-            account = (sender as EditText).Text.Trim();
+            //account = (sender as EditText).Text.Trim();
         }
 
         /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs b/ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs
index 2f5882d..5dcf41b 100755
--- a/ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Account/AccountLogin.cs
@@ -5,6 +5,7 @@
 using Shared.Common;
 using Shared.Phone.UserView;
 using Shared.Phone.Device.CommonForm;
+using Com.Tencent.MM.Sdk.Openapi;
 
 namespace Shared.Phone.Device.Account
 {
@@ -67,6 +68,14 @@
         /// 瀵嗙爜
         /// </summary>
         private string password;
+        /// <summary>
+        /// wechat
+        /// </summary>
+        private Button wechatBtn;
+        /// <summary>
+        /// qq
+        /// </summary>
+        private Button qqBtn;
 
 
         #endregion
@@ -187,7 +196,7 @@
                 Width = Application.GetRealWidth(942),
                 Gravity = Gravity.CenterHorizontal,
                 BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                Radius = (uint)Application.GetRealHeight(30)
+                Radius = (uint)Application.GetRealHeight(17)
             };
             midFrameLayout.AddChidren(accountPwdFL);
 
@@ -227,7 +236,7 @@
             loginByCodeBtn = new Button()
             {
                 X=Application.GetRealWidth(98),
-                Y = Application.GetRealHeight(1431),
+                Y = Application.GetRealHeight(1466),
                 Width = Application.GetRealWidth(300),
                 Height = Application.GetRealHeight(49),
                 TextID = R.MyInternationalizationString.LoginByCode,
@@ -240,7 +249,7 @@
             registerBtn = new Button()
             {
                 X = Application.GetRealWidth(738),
-                Y = Application.GetRealHeight(1431),
+                Y = Application.GetRealHeight(1466),
                 Width = Application.GetRealWidth(244),
                 Height = Application.GetRealHeight(49),
                 TextID = R.MyInternationalizationString.Register,
@@ -249,6 +258,26 @@
                 TextSize = CommonFormResouce.loginTextSize
             };
             midFrameLayout.AddChidren(registerBtn);
+
+            wechatBtn = new Button
+            {
+                X = Application.GetRealWidth(395),
+                Y = Application.GetRealHeight(1737),
+                Width = Application.GetMinRealAverage(115),
+                Height = Application.GetMinRealAverage(115),
+                UnSelectedImagePath = "Account/Wechat.png"
+            };
+            midFrameLayout.AddChidren(wechatBtn);
+
+            qqBtn = new Button
+            {
+                X = Application.GetRealWidth(567),
+                Y = Application.GetRealHeight(1737),
+                Width = Application.GetMinRealAverage(115),
+                Height = Application.GetMinRealAverage(115),
+                UnSelectedImagePath = "Account/QQ.png"
+            };
+            midFrameLayout.AddChidren(qqBtn);
 
             #endregion
 
@@ -275,7 +304,10 @@
             registerBtn.MouseUpEventHandler += Register;
             //蹇樿瀵嗙爜
             forgotPasswordBtn.MouseUpEventHandler += ForgetPWD_MouseUpEvent;
-
+            //wechat
+            wechatBtn.MouseUpEventHandler += LoginByWechat;
+            //qq
+            qqBtn.MouseUpEventHandler += LoginByQQ;
         }
 
         #endregion
@@ -443,11 +475,140 @@
         /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
         private void LoginByCode(object sender,MouseEventArgs mouseEventArgs)
         {
-            this.RemoveFromParent();
+            //this.RemoveFromParent();
             var loginByCodePage = new AccountLoginByCode();
             CommonPage.Instance.AddChidren(loginByCodePage);
             loginByCodePage.Show();
         }
+
+        /// <summary>
+        /// wechat鐧诲綍
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="mouseEventArgs"></param>
+        private void LoginByWechat(object sender, MouseEventArgs mouseEventArgs)
+        {
+#if Android
+            var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP),
+                Language.StringByID(R.MyInternationalizationString.LoginByWechat),
+                Language.StringByID(R.MyInternationalizationString.Cancel),
+                Language.StringByID(R.MyInternationalizationString.Confrim));
+            alert.Show();
+            alert.ResultEventHandler += (send, e) =>
+            {
+                if (e)
+                {
+                    com.hdl.home.Application.WXLogin();
+                    com.hdl.home.WXEntryActivity.RespAction = (authStr) =>
+                    {
+                        if (authStr == null)
+                        {
+
+                        }
+                        else
+                        {
+                            new System.Threading.Thread(async () =>
+                            {
+
+                                var re = await isBindAuthAsync(authStr);
+                                if (re)
+                                {
+                                    //鐩存帴鐧诲綍
+                                    //this.RemoveFromParent();
+
+                                    //UserPage.Instance.Fresh();
+                                    //鍚姩ZigBee
+                                    ZigBee.Common.Application.Init();
+                                    var resultRegID = await Shared.Common.CommonPage.Instance.PushRegID();
+                                    var homes = await House.GetHomeLists();
+                                    //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼
+                                    await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread();
+                                    Shared.Common.Room.CanInitAllRoom = true;
+                                    Shared.Common.Room.InitAllRoom();
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        this.RemoveFromParent();
+                                        UserPage.Instance.Fresh();
+                                    });
+                                }
+                                else
+                                {
+                                    var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        var registerPage = new AccountRegister();
+                                        Shared.Common.CommonPage.Instance.AddChidren(registerPage);
+                                        registerPage.OpenID = authRes.openid;
+                                        registerPage.Show();
+                                    });
+                                }
+                            })
+                            { IsBackground = true }.Start();
+                        }
+                    };
+                }
+            };
+#endif
+
+        }
+
+        /// <summary>
+        /// qq鐧诲綍
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="mouseEventArgs"></param>
+        private void LoginByQQ(object sender, MouseEventArgs mouseEventArgs)
+        {
+
+        }
+
+        /// <summary>
+        /// 鏄惁宸茬粦瀹�
+        /// </summary>
+        /// <param name="authStr"></param>
+        /// <returns></returns>
+        private async System.Threading.Tasks.Task<bool> isBindAuthAsync(string authStr)
+        {
+            var authRes = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.ResponseEntity.AuthUserRes>(authStr);
+            var auth = new SendDataToServer.AuthUser()
+            {
+                AccessToken = authRes.access_token,
+                RefreshToken = authRes.refresh_token,
+                OpenID = authRes.openid
+            };
+            var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(auth);
+            var revertObj = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/InsertOrUpdateAuthUser", System.Text.Encoding.UTF8.GetBytes(requestJson));
+            if (revertObj == null)
+            {
+                return false;
+            }
+            var stateCodeStr = revertObj.StateCode.ToUpper();
+            if (stateCodeStr == "SUCCESS")
+            {
+                var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.UserLoginRes>(revertObj.ResponseData.ToString());
+                var revertData = responseDataObj;
+                Config.Instance.Account = revertData.Account;
+                Config.Instance.MD5PWD = revertData.MD5PWD;
+                Config.Instance.Guid = revertData.Guid;
+                Config.Instance.MqttKey = revertData.MqttKey;
+                Config.Instance.LoginDateTime = DateTime.Now;
+                Config.Instance.ConnectZigbeeMqttBrokerPwd = revertData.ConnectZigbeeMqttBrokerPwd;
+                Config.Instance.ConnectZigbeeMqttClientId = revertData.ConnectZigbeeMqttClientId;
+                Config.Instance.ZigbeeMqttBrokerLoadSubDomain = revertData.ZigbeeMqttBrokerLoadSubDomain;
+                if (Config.Instance.AccountList.Find((obj) => obj == revertData.Account) == null)
+                {
+                    Config.Instance.AccountList.Add(revertData.Account);
+                }
+                Config.Instance.Save();
+                return true;
+            }
+            else 
+            {
+                return false;
+            }
+        }
+
+      
 
         /// <summary>
         /// phone/email 閫夋嫨
@@ -547,7 +708,7 @@
         private void Pwd_TextChange(object sender,string mouseEventArgs)
         {
             loginErrorBtn.Text = "";
-            if (1 <= pwdRow.PasswrodET.Text.Trim().Length && pwdRow.PasswrodET.Text.Trim().Length <= 16 && phoneRow.AccountET.Text.Trim().Length > 0)
+            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))
             {
                 loginBtn.Enable = loginBtn.IsSelected = true;
             }
diff --git a/ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs b/ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs
index a7232bc..59a8102 100755
--- a/ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Account/AccountLoginByCode.cs
@@ -176,7 +176,7 @@
                 Width = Application.GetRealWidth(942),
                 Gravity = Gravity.CenterHorizontal,
                 BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                Radius = (uint)Application.GetRealHeight(30)
+                Radius = (uint)Application.GetRealHeight(17)
             };
             midFrameLayout.AddChidren(accountCodeFL);
 
@@ -216,7 +216,7 @@
             LoginByAccountPWDBtn = new Button()
             {
                 X = Application.GetRealWidth(98),
-                Y = Application.GetRealHeight(1446),
+                Y = Application.GetRealHeight(1466),
                 Width = Application.GetRealWidth(300),
                 Height = Application.GetRealHeight(49),
                 TextID = R.MyInternationalizationString.LoginByAccountPWD,
@@ -229,7 +229,7 @@
             registerBtn = new Button()
             {
                 X = Application.GetRealWidth(738),
-                Y = Application.GetRealHeight(1446),
+                Y = Application.GetRealHeight(1466),
                 Width = Application.GetRealWidth(244),
                 Height = Application.GetRealHeight(49),
                 TextID = R.MyInternationalizationString.Register,
@@ -477,7 +477,6 @@
                 IsRightAccount = false;
                 codeRow.SendCodeBtn.Enable = codeRow.SendCodeBtn.IsSelected = false;
             }
-            account = (sender as EditText).Text.Trim();
         }
 
         /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/Device/Account/AccountRegister.cs b/ZigbeeApp/Shared/Phone/Device/Account/AccountRegister.cs
index b8d089e..815216b 100755
--- a/ZigbeeApp/Shared/Phone/Device/Account/AccountRegister.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Account/AccountRegister.cs
@@ -55,6 +55,10 @@
         /// 璐﹀彿
         /// </summary>
         private string account;
+        /// <summary>
+        /// OpenID
+        /// </summary>
+        public string OpenID;
 
         #endregion
 
@@ -281,7 +285,7 @@
                 {
                     var registerSuccess = new Account.AccountRegisterSuccess();
                     CommonPage.Instance.AddChidren(registerSuccess);
-                    registerSuccess.Show(account, pwdRow.PasswrodET.Text.Trim());
+                    registerSuccess.Show(account, pwdRow.PasswrodET.Text.Trim(), OpenID);
                 }
                 else if (stateCodeStr == "EXIST")
                 {
diff --git a/ZigbeeApp/Shared/Phone/Device/Account/AccountRegisterSuccess.cs b/ZigbeeApp/Shared/Phone/Device/Account/AccountRegisterSuccess.cs
index d94509b..448dc50 100755
--- a/ZigbeeApp/Shared/Phone/Device/Account/AccountRegisterSuccess.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Account/AccountRegisterSuccess.cs
@@ -1,4 +1,5 @@
 锘縰sing System;
+using System.Text;
 using Shared.Common;
 using Shared.Phone.UserView;
 
@@ -11,7 +12,7 @@
         /// </summary>
         /// <param name="account"></param>
         /// <param name="password"></param>
-        public void Show(string account, string password)
+        public void Show(string account, string password,string OpenID="")
         {
             var dialog = new FrameLayout()
             {
@@ -85,7 +86,7 @@
             };
             AddChidren(willLogin);
 
-            AutoLogin(account, password);
+            AutoLogin(account, password,OpenID);
         }
 
         /// <summary>
@@ -93,7 +94,7 @@
         /// </summary>
         /// <param name="account"></param>
         /// <param name="password"></param>
-        private void AutoLogin(string account, string password)
+        private void AutoLogin(string account, string password, string OpenID = "")
         {
             new System.Threading.Thread(() =>
             {
@@ -106,10 +107,14 @@
                         CommonPage.Loading.Start(Language.StringByID(R.MyInternationalizationString.Logining));
                         Action action = async () => {
                             var loginSuccess = await HomePage.Instance.LoginByPWDAsync(account, password);
-                            if (loginSuccess == 1)
+                            if (loginSuccess==1)
                             {
                                 new System.Threading.Thread(async () =>
                                 {
+                                    if (string.IsNullOrEmpty(OpenID)==false)
+                                    {
+                                        BindAuthUser(Config.Instance.Guid, OpenID);
+                                    }
                                     ZigBee.Common.Application.Init();
 
                                     //鐧诲綍鎴愬姛
@@ -125,6 +130,9 @@
                                     {
                                         UserPage.Instance.Fresh();
                                         CommonPage.Loading.Hide();
+                                        this.RemoveFromParent();
+                                        CommonPage.Instance.RemoveViewByTag("Register");
+                                        CommonPage.Instance.RemoveViewByTag("Login");
                                     });
                                 })
                                 { IsBackground = true }.Start();
@@ -149,13 +157,32 @@
                     finally
                     {
                         CommonPage.Loading.Hide();
-                        this.RemoveFromParent();
-                        CommonPage.Instance.RemoveViewByTag("Register");
-                        CommonPage.Instance.RemoveViewByTag("Login");
                     }
                 });
             })
             { IsBackground = true }.Start();
         }
+
+        /// <summary>
+        /// 缁戝畾
+        /// </summary>
+        /// <param name="guid"></param>
+        /// <param name="openId"></param>
+        private void BindAuthUser(string guid, string openId)
+        {
+            new System.Threading.Thread(async () =>
+            {
+                var auth = new SendDataToServer.BindAuthUser
+                {
+                    AccountGuid = guid,
+                    OpenID = openId
+                };
+                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(auth);
+                var revert = await CommonPage.Instance.RequestHttpsZigbeeAsync("ZigbeeUsers/BindAuthUserToAccount", Encoding.UTF8.GetBytes(requestJson));
+            })
+            {
+                IsBackground = true
+            }.Start();
+        }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/Account/PhoneEmailForm.cs b/ZigbeeApp/Shared/Phone/Device/Account/PhoneEmailForm.cs
index cb975be..194a6bb 100755
--- a/ZigbeeApp/Shared/Phone/Device/Account/PhoneEmailForm.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Account/PhoneEmailForm.cs
@@ -2,6 +2,7 @@
 using System.Timers;
 using Shared.Common;
 using Shared.Phone.Device.CommonForm;
+using Shared.Phone.UserCenter;
 
 namespace Shared.Phone.Device.Account
 {
@@ -141,14 +142,23 @@
             accountFL.AddChidren(PhoneZoneBtn);
             PhoneZoneBtn.MouseUpEventHandler += (sender, e) =>
             {
-                var zoneListView = new PhoneZone { };
-                zoneListView.ActionSelectedZone += (zone) =>
+                var form = new AreaCodeSelectForm();
+                parFL.AddChidren(form);
+                form.InitForm();
+                form.ShowForm();
+                form.FinishSelectEvent += (code) =>
                 {
-                    var t = CommonPage.PhoneZoneStr;
-                    (sender as Button).Text = "+" + zone;
+                    (sender as Button).Text = "+" + code;
                 };
-                parFL.AddChidren(zoneListView);
-                zoneListView.Show();
+
+                //var zoneListView = new PhoneZone { };
+                //zoneListView.ActionSelectedZone += (zone) =>
+                //{
+                //    var t = CommonPage.PhoneZoneStr;
+                //    (sender as Button).Text = "+" + zone;
+                //};
+                //parFL.AddChidren(zoneListView);
+                //zoneListView.Show();
             };
 
             AccountET = new EditText()
@@ -891,7 +901,7 @@
                 SelectedBackgroundColor=ZigbeeColor.Current.GXCButtonSelectedColor,
                 Enable = false,
                 IsSelected = false,
-                Radius=(uint)Application.GetRealHeight(20)
+                Radius=(uint)Application.GetRealHeight(12)
             };
             codeFL.AddChidren(SendCodeBtn);
 
@@ -1039,7 +1049,7 @@
                 SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonSelectedColor,
                 Enable = false,
                 IsSelected = false,
-                Radius = (uint)Application.GetRealHeight(20)
+                Radius = (uint)Application.GetRealHeight(12)
             };
             codeFL.AddChidren(SendCodeBtn);
 
diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
index 3aed5d9..2c7eb8b 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -166,45 +166,25 @@
                                     {
                                         var light = deviceUI.CommonDevice as ToggleLight;
                                         light.DeviceStatusReport = common.DeviceStatusReport;
-                                        for (int j = 0; j < rowLayout.ChildrenCount; j++)
+                                        //璁板綍銆佹洿鏂扮姸鎬�
+                                        if (light.DeviceStatusReport.AttriBute == null || light.DeviceStatusReport.AttriBute.Count == 0)
                                         {
-                                            var tempView = rowLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_OnOffStatus)
-                                            {
-                                                //璁板綍銆佹洿鏂扮姸鎬�
-                                                if (light.DeviceStatusReport.AttriBute == null || light.DeviceStatusReport.AttriBute.Count == 0)
-                                                {
-                                                    continue;
-                                                }
-                                                light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                                (tempView as Button).IsSelected = light.OnOffStatus == 1;
-                                                //璁板綍鍥炲鏃堕棿
-                                                light.LastDateTime = DateTime.Now;
-                                            }
+                                            continue;
                                         }
+                                        light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                        var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
+
+                                        row.SetStatu(light.OnOffStatus == 1);
+                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        //璁板綍鍥炲鏃堕棿
+                                        light.LastDateTime = DateTime.Now;
                                     }
                                     if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        var light = deviceUI.CommonDevice as ToggleLight;
-                                        light.IsOnline = 1;
-                                        //璁板綍鍥炲鏃堕棿
-                                        light.LastDateTime = DateTime.Now;
-                                        for (int j = 0; j < rowLayout.ChildrenCount; j++)
-                                        {
-                                            var tempView = rowLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_Online)
-                                            {
-                                                (tempView as Button).IsSelected = light.IsOnline == 1;
-                                            }
-                                        }
+                                        deviceUI.CommonDevice.IsOnline = 1;
+                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                        var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
+                                        row.SetStatu(true);
                                     }
                                     break;
 
@@ -214,66 +194,55 @@
                                     {
                                         var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
                                         airSwitch.DeviceStatusReport = common.DeviceStatusReport;
-                                        for (int j = 0; j < rowLayout.ChildrenCount; j++)
+                                        //璁板綍銆佹洿鏂扮姸鎬�
+                                        if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0)
                                         {
-                                            var tempView = rowLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_OnOffStatus)
-                                            {
-                                                //璁板綍銆佹洿鏂扮姸鎬�
-                                                if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0)
-                                                {
-                                                    return;
-                                                }
-                                                airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                                (tempView as Button).IsSelected = airSwitch.OnOffStatus == 1;
-                                                //璁板綍鍥炲鏃堕棿
-                                                airSwitch.LastDateTime = DateTime.Now;
-                                            }
+                                            return;
                                         }
+                                        airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                        var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
+                                        row.SetStatu(airSwitch.OnOffStatus == 1);
+                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        //璁板綍鍥炲鏃堕棿
+                                        airSwitch.LastDateTime = DateTime.Now;
                                     }
                                     if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
-                                        airSwitch.IsOnline = 1;
-                                        //璁板綍鍥炲鏃堕棿
-                                        airSwitch.LastDateTime = DateTime.Now;
-                                        for (int j = 0; j < rowLayout.ChildrenCount; j++)
-                                        {
-                                            var tempView = rowLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_Online)
-                                            {
-                                                (tempView as Button).IsSelected = airSwitch.IsOnline == 1;
-                                            }
-                                        }
+                                        deviceUI.CommonDevice.IsOnline = 1;
+                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                        var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
+                                        row.SetStatu(true);
                                     }
                                     break;
                                 case DeviceType.WindowCoveringDevice:
+
+                                    if (common.DeviceStatusReport.CluterID == 258)
+                                    {
+                                        if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0)
+                                        {
+                                            //绐楀笜绫诲瀷
+                                            var rollerShade = deviceUI.CommonDevice as Rollershade;
+                                            rollerShade.DeviceStatusReport = common.DeviceStatusReport;
+                                            rollerShade.WcdType = common.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                            rollerShade.LastDateTime = DateTime.Now;
+                                        }
+                                        if (common.DeviceStatusReport.AttriBute[0].AttributeId == 8)
+                                        {
+                                            var row = rowLayout.GetChildren(0) as CategoryFunctionForWinRow;
+                                            //绐楀笜鐧惧垎姣�
+                                            var rollerShade = deviceUI.CommonDevice as Rollershade;
+                                            rollerShade.DeviceStatusReport = common.DeviceStatusReport;
+                                            rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                            row.SetStatuText($"{Language.StringByID(R.MyInternationalizationString.Current)} { deviceUI.GetDeviceStatu()}");
+                                            rollerShade.LastDateTime = DateTime.Now;
+                                        }
+                                    }
                                     if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        var rollerShape = deviceUI.CommonDevice as Rollershade;
-                                        //璁板綍鍥炲鏃堕棿
-                                        rollerShape.LastDateTime = DateTime.Now;
-                                        rollerShape.IsOnline = 1;
-                                        for (int j = 0; j < rowLayout.ChildrenCount; j++)
-                                        {
-                                            var tempView = rowLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_Online)
-                                            {
-                                                (tempView as Button).IsSelected = rollerShape.IsOnline == 1;
-                                            }
-                                        }
+                                        deviceUI.CommonDevice.IsOnline = 1;
+                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                        var row = rowLayout.GetChildren(0) as CategoryFunctionForWinRow;
+                                        row.SetStatu(true);
                                     }
                                     break;
 
@@ -360,47 +329,27 @@
                                     //璋冨厜鐏姛鑳�
                                     if (common.DeviceStatusReport.CluterID == 6)
                                     {
-                                        var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
+                                        var dimmableLight = deviceUI.CommonDevice as DimmableLight;
                                         dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
-                                        for (int j = 0; j < rowLayout.ChildrenCount; j++)
+                                        //璁板綍銆佹洿鏂扮姸鎬�
+                                        if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0)
                                         {
-                                            var tempView = rowLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_OnOffStatus)
-                                            {
-                                                //璁板綍銆佹洿鏂扮姸鎬�
-                                                if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0)
-                                                {
-                                                    return;
-                                                }
-                                                dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                                (tempView as Button).IsSelected = dimmableLight.OnOffStatus == 1;
-                                                //璁板綍鍥炲鏃堕棿
-                                                dimmableLight.LastDateTime = DateTime.Now;
-                                            }
+                                            continue;
                                         }
+                                        dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                        var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
+
+                                        row.SetStatu(dimmableLight.OnOffStatus == 1);
+                                        row.SetStatuText(deviceUI.GetDeviceStatu());
+                                        //璁板綍鍥炲鏃堕棿
+                                        dimmableLight.LastDateTime = DateTime.Now;
                                     }
                                     if (common.DeviceStatusReport.CluterID == 3)
                                     {
-                                        var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
-                                        dimmableLight.IsOnline = 1;
-                                        //璁板綍鍥炲鏃堕棿
-                                        dimmableLight.LastDateTime = DateTime.Now;
-                                        for (int j = 0; j < rowLayout.ChildrenCount; j++)
-                                        {
-                                            var tempView = rowLayout.GetChildren(j);
-                                            if (tempView.Tag == null)
-                                            {
-                                                continue;
-                                            }
-                                            if (tempView.Tag.ToString() == deviceStatus_Online)
-                                            {
-                                                (tempView as Button).IsSelected = dimmableLight.IsOnline == 1;
-                                            }
-                                        }
+                                        deviceUI.CommonDevice.IsOnline = 1;
+                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                        var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
+                                        row.SetStatu(true);
                                     }
                                     break;
                             }
@@ -433,77 +382,35 @@
                             switch (deviceUI.CommonDevice.Type)
                             {
                                 case DeviceType.OnOffOutput:
-                                    var light = deviceUI.CommonDevice as ToggleLight;
-                                    light.IsOnline = (common as ToggleLight).IsOnline;
-                                    //璁板綍鍥炲鏃堕棿
-                                    light.LastDateTime = DateTime.Now;
-                                    for (int j = 0; j < rowLayout.ChildrenCount; j++)
-                                    {
-                                        var tempView = rowLayout.GetChildren(j);
-                                        if (tempView.Tag == null)
-                                        {
-                                            continue;
-                                        }
-                                        if (tempView.Tag.ToString() == deviceStatus_Online)
-                                        {
-                                            (tempView as Button).IsSelected = light.IsOnline == 1;
-                                        }
-                                    }
+                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
+                                    var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
+                                    row.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
+                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
                                     break;
                                 case DeviceType.AirSwitch:
-                                    var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
-                                    airSwitch.IsOnline = (common as ZigBee.Device.AirSwitch).IsOnline;
-                                    //璁板綍鍥炲鏃堕棿
-                                    airSwitch.LastDateTime = DateTime.Now;
-                                    for (int j = 0; j < rowLayout.ChildrenCount; j++)
-                                    {
-                                        var tempView = rowLayout.GetChildren(j);
-                                        if (tempView.Tag == null)
-                                        {
-                                            continue;
-                                        }
-                                        if (tempView.Tag.ToString() == deviceStatus_Online)
-                                        {
-                                            (tempView as Button).IsSelected = airSwitch.IsOnline == 1;
-                                        }
-                                    }
+                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
+                                    var row1 = rowLayout.GetChildren(0) as CategoryFunctionRow;
+                                    row1.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
+                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
                                     break;
                                 case DeviceType.WindowCoveringDevice:
-                                    var rollerShape = deviceUI.CommonDevice as Rollershade;
-                                    //璁板綍鍥炲鏃堕棿
-                                    rollerShape.LastDateTime = DateTime.Now;
-                                    rollerShape.IsOnline = (common as Rollershade).IsOnline;
-                                    for (int j = 0; j < rowLayout.ChildrenCount; j++)
-                                    {
-                                        var tempView = rowLayout.GetChildren(j);
-                                        if (tempView.Tag == null)
-                                        {
-                                            continue;
-                                        }
-                                        if (tempView.Tag.ToString() == deviceStatus_Online)
-                                        {
-                                            (tempView as Button).IsSelected = rollerShape.IsOnline == 1;
-                                        }
-                                    }
+                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
+                                    var row2 = rowLayout.GetChildren(0) as CategoryFunctionForWinRow;
+                                    row2.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
                                     break;
 
+                                case DeviceType.DimmableLight:
+                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
+                                    var row3 = rowLayout.GetChildren(0) as CategoryFunctionRow;
+                                    row3.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
+                                    break;
                                 case DeviceType.Thermostat:
-                                    var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
-                                    //璁板綍鍥炲鏃堕棿
-                                    ac.LastDateTime = DateTime.Now;
-                                    ac.IsOnline = (common as ZigBee.Device.AC).IsOnline;
-                                    for (int j = 0; j < rowLayout.ChildrenCount; j++)
-                                    {
-                                        var tempView = rowLayout.GetChildren(j);
-                                        if (tempView.Tag == null)
-                                        {
-                                            continue;
-                                        }
-                                        if (tempView.Tag.ToString() == deviceStatus_Online)
-                                        {
-                                            (tempView as Button).IsSelected = ac.IsOnline == 1;
-                                        }
-                                    }
+                                    deviceUI.CommonDevice.LastDateTime = DateTime.Now;
+                                    deviceUI.CommonDevice.IsOnline = common.IsOnline;
+                                    //var row4 = rowLayout.GetChildren(0) as CategoryFunctionRow;
+                                    //row4.SetStatu(deviceUI.CommonDevice.IsOnline == 1);
                                     break;
                             }
                         }
@@ -746,7 +653,12 @@
         /// <param name="sender">Sender.</param>
         /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
         private void AutomationBtn_MouseUpEventHandler(object sender, MouseEventArgs mouseEventArgs)
-        {
+        {
+            Common.Logic.LogicDviceList.Clear();
+            if (Common.Logic.LogicDviceList.Count == 0)
+            {
+                Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
+            }
             functionBtn.IsSelected = false;
             sceneBtn.IsSelected = false;
             automationBtn.IsSelected = true;
@@ -994,8 +906,9 @@
                             var deviceRow = new CategoryFunctionRow(0, 35);
                             deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                             deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                            deviceRow.SetStatu(light.IsOnline == 1);
-                            deviceRow.SetZoneText(deviceUI.GetZone());
+                            deviceRow.SetOnLineStatu(light.IsOnline == 1);
+                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                            deviceRow.SetStatu(light.OnOffStatus == 1);
                             deviceTypeRowLayout.AddChidren(deviceRow);
 
                             deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
@@ -1014,6 +927,7 @@
                                 {
                                     light.SwitchControl(0);
                                 }
+                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                 //鎺у埗寤舵椂鍥炶皟
                                 DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
                                 {
@@ -1034,7 +948,7 @@
                                 var lightControl = new Phone.Device.Light.LightControl();
                                 UserView.HomePage.Instance.AddChidren(lightControl);
                                 UserView.HomePage.Instance.PageIndex += 1;
-                                lightControl.action = RefreshBodyView;
+                                //lightControl.action = RefreshBodyView;
                                 lightControl.Show(deviceUI, room);
                             };
                             
@@ -1082,7 +996,7 @@
 
                             var deviceTypeRowLayout = new RowLayout()
                             {
-                                Height = Application.GetRealHeight(127 + 35),
+                                Height = Application.GetRealHeight(129 + 35),
                                 LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                 Tag = deviceUI
                             };
@@ -1091,8 +1005,9 @@
                             var deviceRow = new CategoryFunctionRow(0, 35);
                             deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                             deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                            deviceRow.SetStatu(airSwitch.IsOnline == 1);
-                            deviceRow.SetZoneText(deviceUI.GetZone());
+                            deviceRow.SetOnLineStatu(airSwitch.IsOnline == 1);
+                            deviceRow.SetStatu(airSwitch.OnOffStatus == 1);
+                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                             deviceTypeRowLayout.AddChidren(deviceRow);
 
                             deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
@@ -1102,8 +1017,8 @@
                                 zbGateway.ReportAction += UpdateDeviceControllStatu;
                                 AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
 
-                                (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
-                                if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
+                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
+                                if ((send2 as Button).IsSelected)
                                 {
                                     airSwitch.SwitchControl(1);
                                 }
@@ -1111,6 +1026,7 @@
                                 {
                                     airSwitch.SwitchControl(0);
                                 }
+                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                 //鎺у埗寤舵椂鍥炶皟
                                 DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
                                 {
@@ -1128,10 +1044,10 @@
 
                             deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                             {
-                                var lightControl = new Phone.Device.Light.LightControl();
+                                var lightControl = new Phone.Device.Light.AirSwitchControl();
                                 UserView.HomePage.Instance.AddChidren(lightControl);
                                 UserView.HomePage.Instance.PageIndex += 1;
-                                lightControl.action = RefreshBodyView;
+                                //lightControl.action = RefreshBodyView;
                                 lightControl.Show(deviceUI, room);
                             };
 
@@ -1190,8 +1106,9 @@
                             var deviceRow = new CategoryFunctionRow(0, 35);
                             deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                             deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                            deviceRow.SetStatu(dimmableLight.IsOnline == 1);
-                            deviceRow.SetZoneText(deviceUI.GetZone());
+                            deviceRow.SetOnLineStatu(dimmableLight.IsOnline == 1);
+                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                            deviceRow.SetStatu(dimmableLight.OnOffStatus == 1);
                             deviceTypeRowLayout.AddChidren(deviceRow);
 
                             deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
@@ -1201,8 +1118,8 @@
                                 zbGateway.ReportAction += UpdateDeviceControllStatu;
                                 AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
 
-                                (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
-                                if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
+                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
+                                if ((send2 as Button).IsSelected)
                                 {
                                     dimmableLight.SwitchControl(1);
                                 }
@@ -1210,6 +1127,7 @@
                                 {
                                     dimmableLight.SwitchControl(0);
                                 }
+                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                 //鎺у埗寤舵椂鍥炶皟
                                 DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
                                 {
@@ -1231,7 +1149,7 @@
                                 UserView.HomePage.Instance.AddChidren(dimmableLightControl);
                                 UserView.HomePage.Instance.PageIndex += 1;
                                 UserView.HomePage.Instance.ScrollEnabled = false;
-                                dimmableLightControl.action = RefreshBodyView;
+                                //dimmableLightControl.action = RefreshBodyView;
                                 dimmableLightControl.Show(deviceUI, room);
                             };
 
@@ -1296,10 +1214,12 @@
                             };
                             deviceListScrolView.AddChidren(deviceTypeRowLayout);
 
-                            var deviceRow = new FunctionRow(0, 35);
+                            var deviceRow = new CategoryFunctionRow(0, 35);
                             deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                             deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                            deviceRow.SetStatu(ac.IsOnline == 1);
+                            deviceRow.SetOnLineStatu(ac.IsOnline == 1);
+                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                            deviceRow.SetStatu(ac.currentSystemMode != 1);
                             deviceTypeRowLayout.AddChidren(deviceRow);
 
                             deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
@@ -1318,6 +1238,7 @@
                                 {
                                     ac.Close();
                                 }
+                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                 //鎺у埗寤舵椂鍥炶皟
                                 DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
                                 {
@@ -1377,17 +1298,37 @@
 
                             var deviceTypeRowLayout = new RowLayout()
                             {
-                                Height = Application.GetRealHeight(127 + 35),
-                                LineColor = ZigbeeColor.Current.GXCLineColor,
+                                Height = Application.GetRealHeight(129 + 35),
+                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                 Tag = deviceUI
                             };
                             deviceListScrolView.AddChidren(deviceTypeRowLayout);
 
-                            var deviceRow = new FunctionRow(0, 35);
-                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+                            var deviceRow = new CategoryFunctionForWinRow(0, 35);
+                            deviceRow.Init(deviceUI);
                             deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
-                            deviceRow.SetStatu(rollerShade.IsOnline == 1);
+                            deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1);
+                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
+                            deviceRow.SetStatu(rollerShade.WcdCurrentPositionLiftPercentage != 0);
+                            deviceRow.SetRollerShadeIcon(rollerShade.WcdType);
                             deviceTypeRowLayout.AddChidren(deviceRow);
+
+                            if (rollerShade.WcdType == -1)
+                            {
+                                CommonPage.Loading.Start();
+                                new System.Threading.Thread(() =>
+                                {
+                                    Rollershade.ReadWcdTypeAction(rollerShade, () =>
+                                    {
+                                        Application.RunOnMainThread(() =>
+                                        {
+                                            deviceRow.SetRollerShadeIcon(rollerShade.WcdType);
+                                            CommonPage.Loading.Hide();
+                                        });
+                                    });
+                                })
+                                { IsBackground = true }.Start();
+                            }
 
                             var editBtn = new CommonForm.RowLayoutEditButton()
                             {
@@ -1405,37 +1346,14 @@
                             deviceTypeRowLayout.AddRightView(delBtn);
                             delBtn.MouseUpEventHandler += delEvent;
 
-
-                            deviceRow.SwitchBtn.MouseUpEventHandler += (sender, e) =>
+                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                             {
-                                zbGateway = deviceUI.CommonDevice.Gateway;
-                                sendedControlCommand = false;
-                                zbGateway.ReportAction += UpdateDeviceControllStatu;
-                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-
-                                (sender as CommonForm.SelectedStatuButton).IsSelected = !(sender as CommonForm.SelectedStatuButton).IsSelected;
-                                if ((sender as CommonForm.SelectedStatuButton).IsSelected)
-                                {
-                                    rollerShade.CurtainUpDownStopControl(0);
-                                }
-                                else
-                                {
-                                    rollerShade.CurtainUpDownStopControl(1);
-                                }
-
-                                //鎺у埗寤舵椂鍥炶皟
-                                DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
-                                {
-                                    if (Parent == null)
-                                    {
-                                        return;
-                                    }
-                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
-                                    if (sendedControlCommand == false)
-                                    {
-                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
-                                    }
-                                });
+                                var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl();
+                                UserView.HomePage.Instance.AddChidren(rollerShadeControl);
+                                UserView.HomePage.Instance.PageIndex += 1;
+                                UserView.HomePage.Instance.ScrollEnabled = false;
+                                //rollerShadeControl.action = RefreshBodyView;
+                                rollerShadeControl.Show(deviceUI, room);
                             };
                         }
                         else
@@ -1463,7 +1381,7 @@
                     typeRowLayout.AddChidren(functionTypeIMG);
 
                     functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction;
-                   
+
 
                     if (deviceType == room.DeviceUIList[0].CommonDevice.Type)
                     {
@@ -1854,7 +1772,6 @@
         {
 
             functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
-            
             var bjFrameLayout = new FrameLayout
             {
                 Width = Application.GetRealWidth(1080 - 58),
@@ -1987,12 +1904,7 @@
                             }
                             else
                             {
-                                Common.Logic.LogicDviceList.Clear();
-                                if (Common.Logic.LogicDviceList.Count == 0)
-                                {
-                                    Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
-                                }
-                                Common.Logic.CurrentLogic.LogicType = 2;
+
                                 Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text;
                                 Logic.TemplatePage templatePage = new Logic.TemplatePage();
                                 Logic.TemplatePage.s = logiciocnBtn.Tag.ToString();
@@ -2011,7 +1923,7 @@
                     Yheight = 0;
                 }
                 logicScrolView.Y = scenehorizontalScrol.Bottom + Yheight;
-                logicScrolView.Height = functionSceneBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30) - Yheight;
+                logicScrolView.Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30) - Yheight;
                 Automationview(logicScrolView);
             };
 
@@ -2037,6 +1949,7 @@
             //鑷姩鍖�
             Automationview(logicScrolView);
             CommonPage.Loading.Hide();
+            
         }
 
         /// <summary>
@@ -2048,32 +1961,26 @@
             refresview.RemoveAll();
             foreach (var logic in Common.Logic.LogicList)
             {
-                var bjRow = new RowLayout
-                {
-                    Width = Application.GetRealWidth(1080 - 58),
-                    Height = Application.GetRealHeight(220),
-                    LineColor = ZigbeeColor.Current.LogicBackgroundColor,
-                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
 
-                };
-                refresview.AddChidren(bjRow);
 
                 var logicRowlayout = new RowLayout
                 {
-                    Y = Application.GetRealHeight(220 - 190),
-                    Height = Application.GetRealHeight(190),
-                    Width = Application.GetRealWidth(1080 - 58 - 46),
-                    LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
-                    X = Application.GetRealWidth(46),
+                    Height = Application.GetRealHeight(190 + 30),
+                    Width = Application.GetRealWidth(1080),
+                    LineColor = ZigbeeColor.Current.LogicBackgroundColor,
+                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
                 };
-                bjRow.AddChidren(logicRowlayout);
+                refresview.AddChidren(logicRowlayout);
+
+
 
                 var logicnameBtn = new Button
                 {
                     Height = Application.GetRealHeight(58),
                     Width = Application.GetRealWidth(350),
                     Text = logic.LogicName,
-                    X = Application.GetRealWidth(12),
+                    X = Application.GetRealWidth(12 + 46),
+                    Y = Application.GetRealHeight(30),
                     TextAlignment = TextAlignment.CenterLeft,
                     TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 };
@@ -2086,8 +1993,8 @@
                     Height = Application.GetMinRealAverage(63),
                     UnSelectedImagePath = "ZigeeLogic/logicclose.png",
                     SelectedImagePath = "ZigeeLogic/logicopen.png",
-                    X = logicRowlayout.Width - Application.GetRealWidth(104 + 58),
-                    Y = Application.GetRealHeight(58 + 30 + 9),
+                    X = logicRowlayout.Width - Application.GetRealWidth(104 + 58 + 58),
+                    Y = Application.GetRealHeight(58 + 30 + 9 + 30),
                 };
                 logicRowlayout.AddChidren(logicswitchBtn);
 
@@ -2131,11 +2038,6 @@
                 logicRowlayout.AddRightView(edit);
                 edit.MouseUpEventHandler += (sender, e) =>
                 {
-                    Common.Logic.LogicDviceList.Clear();
-                    if (Common.Logic.LogicDviceList.Count == 0)
-                    {
-                        Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
-                    }
                     Common.Logic.CurrentLogic = logic;
                     var logicCommunalPage = new Logic.LogicCommunalPage();
                     HomePage.Instance.AddChidren(logicCommunalPage);
@@ -2169,91 +2071,32 @@
                     alert.Show();
 
                 };
-
-            }
-
-
-        }
-
-        #region 鈼� 鎺у埗鐘舵�乢________________________
-
-        /// <summary>
-        /// 鏄剧ず璁惧鎺у埗鐘舵��
-        /// </summary>
-        /// <param name="command">Command.</param>
-        /// <param name="objValue">Object value.</param>
-        private void UpdateDeviceControllStatu(string command, object objValue)
-        {
-            if (command != "DeviceDefaultAck" || objValue == null)
-            {
-                return;
-            }
-            var tempDevice = (CommonDevice)objValue;
-            if (null == commonDeviceList.Find((obj) => obj.DeviceEpoint == tempDevice.DeviceEpoint && obj.DeviceAddr == tempDevice.DeviceAddr))
-            {
-                return;
-            }
-            //鏍囪宸茬粡鍙戦�佹帶鍒跺懡浠ゅ埌缃戝叧
-            sendedControlCommand = true;
-            //DeviceUI.ShowStatuTip(R.MyInternationalizationString.Success);
-        }
-
-        /// <summary>
-        /// 绉婚櫎鍏ㄩ儴鏇存柊鎺у埗璁惧鐨刟ction
-        /// </summary>
-        private void RemoveAllUpdateControlDeviceStatuAction()
-        {
-            foreach (var gateway in zbGatewayList)
-            {
-                //绉婚櫎action
-                if (gateway != null)
+                var line = new Button
                 {
-                    gateway.ReportAction -= UpdateDeviceControllStatu;
-                }
+                    Y = Application.GetRealHeight(215),
+                    Height = Application.GetRealHeight(5),
+                    Width = Application.GetRealWidth(1080 - 58),
+                    BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+                    X = Application.GetRealWidth(58),
+                };
+                logicRowlayout.AddChidren(line);
             }
-        }
 
+        }
         /// <summary>
-        /// 绉婚櫎鍗曚釜鎺у埗璁惧鐨勬洿鏂扮姸鎬乤ction
+        /// 鏄剧ず鍥炬爣鐨勯鑹�
         /// </summary>
-        /// <param name="gateway">Gateway.</param>
-        private void RemoveUpdateControlDeviceStatuAction(ZbGateway gateway)
-        {
-            //绉婚櫎action
-            if (gateway != null)
-            {
-                gateway.ReportAction -= UpdateDeviceControllStatu;
-            }
-        }
-
-        /// <summary>
-        /// 娣诲姞闇�瑕佺洃鎺у洖璋冪姸鎬佺殑缃戝叧鍜岃澶�
-        /// </summary>
-        /// <param name="gatewayList">Gateway list.</param>
-        /// <param name="gateway">Gateway.</param>
-        /// <param name="deviceList">Device list.</param>
-        /// <param name="common">Common.</param>
-        private void AddZbGateway(List<ZbGateway> gatewayList, ZbGateway gateway, List<CommonDevice> deviceList, CommonDevice common)
-        {
-            if (null == gatewayList.Find((obj) => obj.getGatewayBaseInfo.gwID == gateway.getGatewayBaseInfo.gwID))
-            {
-                gatewayList.Add(gateway);
-            }
-            if (null == commonDeviceList.Find((obj) => obj.DeviceEpoint == common.DeviceEpoint && obj.DeviceAddr == common.DeviceAddr))
-            {
-                commonDeviceList.Add(common);
-            }
-        }
-
-        #endregion
-
+        /// <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),
+                Width = logicRowlayout.Width - Application.GetRealWidth(58 + 12 + 350 + 58),
+                Y = Application.GetRealHeight(30),
                 X = Application.GetRealWidth(365),
                 TextAlignment = TextAlignment.CenterRight,
                 TextColor = ZigbeeColor.Current.LogicListWeekTextColor,
@@ -2544,8 +2387,8 @@
                 {
                     Width = Application.GetRealWidth(82),
                     Height = Application.GetRealHeight(82),
-                    X = Application.GetRealWidth(12 + (12 + 82 + 45 + 12) * i),
-                    Y = Application.GetRealHeight(58 + 30),
+                    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,
                 };
@@ -2563,7 +2406,7 @@
                 var connectIconBtn = new Button
                 {
                     Y = typebjBtn.Y + Application.GetRealHeight(35),
-                    X = Application.GetRealWidth((12 + 82 + 12) + (12 + 45 + 82 + 12) * i),
+                    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",
@@ -2641,5 +2484,79 @@
             }
         }
         #endregion
+
+        #region 鈼� 鎺у埗鐘舵�乢________________________
+
+        /// <summary>
+        /// 鏄剧ず璁惧鎺у埗鐘舵��
+        /// </summary>
+        /// <param name="command">Command.</param>
+        /// <param name="objValue">Object value.</param>
+        private void UpdateDeviceControllStatu(string command, object objValue)
+        {
+            if (command != "DeviceDefaultAck" || objValue == null)
+            {
+                return;
+            }
+            var tempDevice = (CommonDevice)objValue;
+            if (null == commonDeviceList.Find((obj) => obj.DeviceEpoint == tempDevice.DeviceEpoint && obj.DeviceAddr == tempDevice.DeviceAddr))
+            {
+                return;
+            }
+            //鏍囪宸茬粡鍙戦�佹帶鍒跺懡浠ゅ埌缃戝叧
+            sendedControlCommand = true;
+            //DeviceUI.ShowStatuTip(R.MyInternationalizationString.Success);
+        }
+
+        /// <summary>
+        /// 绉婚櫎鍏ㄩ儴鏇存柊鎺у埗璁惧鐨刟ction
+        /// </summary>
+        private void RemoveAllUpdateControlDeviceStatuAction()
+        {
+            foreach (var gateway in zbGatewayList)
+            {
+                //绉婚櫎action
+                if (gateway != null)
+                {
+                    gateway.ReportAction -= UpdateDeviceControllStatu;
+                }
+            }
+        }
+
+        /// <summary>
+        /// 绉婚櫎鍗曚釜鎺у埗璁惧鐨勬洿鏂扮姸鎬乤ction
+        /// </summary>
+        /// <param name="gateway">Gateway.</param>
+        private void RemoveUpdateControlDeviceStatuAction(ZbGateway gateway)
+        {
+            //绉婚櫎action
+            if (gateway != null)
+            {
+                gateway.ReportAction -= UpdateDeviceControllStatu;
+            }
+        }
+
+        /// <summary>
+        /// 娣诲姞闇�瑕佺洃鎺у洖璋冪姸鎬佺殑缃戝叧鍜岃澶�
+        /// </summary>
+        /// <param name="gatewayList">Gateway list.</param>
+        /// <param name="gateway">Gateway.</param>
+        /// <param name="deviceList">Device list.</param>
+        /// <param name="common">Common.</param>
+        private void AddZbGateway(List<ZbGateway> gatewayList, ZbGateway gateway, List<CommonDevice> deviceList, CommonDevice common)
+        {
+            if (null == gatewayList.Find((obj) => obj.getGatewayBaseInfo.gwID == gateway.getGatewayBaseInfo.gwID))
+            {
+                gatewayList.Add(gateway);
+            }
+            if (null == commonDeviceList.Find((obj) => obj.DeviceEpoint == common.DeviceEpoint && obj.DeviceAddr == common.DeviceAddr))
+            {
+                commonDeviceList.Add(common);
+            }
+        }
+
+        #endregion
+
+   
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs b/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
index 8d287f2..2cbca49 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
@@ -15,22 +15,22 @@
         /// bodyFrameLayout
         /// </summary>
         private FrameLayout bodyFrameLayout;
-        /// <summary>
-        /// floorIds
-        /// </summary>
-        List<string> floorIds = new List<string> { };
-        /// <summary>
-        /// floorNames
-        /// </summary>
-        List<string> floorNames = new List<string> { };
-        /// <summary>
-        /// roomNames
-        /// </summary>
-        List<List<string>> roomNames = new List<List<string>> { };
-        /// <summary>
-        /// roomNames
-        /// </summary>
-        List<List<Common.Room>> rooms = new List<List<Common.Room>> { };
+        ///// <summary>
+        ///// floorIds
+        ///// </summary>
+        //List<string> floorIds = new List<string> { };
+        ///// <summary>
+        ///// floorNames
+        ///// </summary>
+        //List<string> floorNames = new List<string> { };
+        ///// <summary>
+        ///// roomNames
+        ///// </summary>
+        //List<List<string>> roomNames = new List<List<string>> { };
+        ///// <summary>
+        ///// roomNames
+        ///// </summary>
+        //List<List<Common.Room>> rooms = new List<List<Common.Room>> { };
         /// <summary>
         /// ImagePath
         /// </summary>
@@ -273,16 +273,16 @@
         /// </summary>
         private void Init()
         {
-            foreach (var floor in Config.Instance.Home.FloorDics)
-            {
-                floorIds.Add(floor.Key);
-                floorNames.Add(floor.Value);
-                if(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key).Count>0)
-                {
-                    roomNames.Add(Common.Room.CurrentRoom.GetRoomNamesByFloorId(floor.Key));
-                    rooms.Add(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key));
-                }
-            }
+            //foreach (var floor in Config.Instance.Home.FloorDics)
+            //{
+            //    floorIds.Add(floor.Key);
+            //    floorNames.Add(floor.Value);
+            //    if(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key).Count>0)
+            //    {
+            //        roomNames.Add(Common.Room.CurrentRoom.GetRoomNamesByFloorId(floor.Key));
+            //        rooms.Add(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key));
+            //    }
+            //}
         }
 
         /// <summary>
@@ -370,7 +370,7 @@
             zoneRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongZone)}:");
             //zoneRow.SetTitle(curRoom.Name);
             infoFL.AddChidren(zoneRow);
-            zoneRow.HideLine(false);
+            zoneRow.HideLine(true);
 
             var targetFL = new FrameLayout()
             {
@@ -452,43 +452,182 @@
             //閫夋嫨鑳屾櫙鍥�
             EventHandler<MouseEventArgs> backGroundIMGHander = (sender, e) =>
             {
-                if (curRoom == null)
-                {
-                    RoomCommon.ShowTipNoRoom();
-                    return;
-                }
-                if (curRoom.IsSharedRoom)
+                if (curRoom != null && curRoom.IsSharedRoom)
                 {
                     RoomCommon.ShowTipRoomIsShared();
                     return;
                 }
 
-                var localPic = new CategorySceneSelectImgByLocal();
-                Shared.Phone.UserView.HomePage.Instance.AddChidren(localPic);
-                Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                localPic.Show();
-                localPic.action = (imgPath) =>
+                int selectRow_Height = 150;
+                int selectRow_Width = 1034;
+                var selectFL = new FrameLayout()
                 {
-                    IconPathType = 0;
-                    backGround.UnSelectedImagePath = imgPath;
+                    BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
+                };
+                AddChidren(selectFL);
+
+                var itemFL = new FrameLayout()
+                {
+                    Y = Application.GetRealHeight(1276),
+                    Height = Application.GetRealHeight(450),
+                    Width = Application.GetRealWidth(selectRow_Width),
+                    Gravity = Gravity.CenterHorizontal,
+                    Radius = (uint)Application.GetRealHeight(17),
+                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor
+                };
+                selectFL.AddChidren(itemFL);
+                itemFL.Animate = Animate.DownToUp;
+
+                var selectLocalPicture = new Button()
+                {
+                    Height = Application.GetRealHeight(selectRow_Height) - 1,
+                    TextID = R.MyInternationalizationString.LocalPicture,
+                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4
+                };
+                itemFL.AddChidren(selectLocalPicture);
+                var selectLocalLine = new Button()
+                {
+                    Y = selectLocalPicture.Bottom,
+                    Height = 1,
+                    BackgroundColor = ZigbeeColor.Current.GXCLineColor
+                };
+                itemFL.AddChidren(selectLocalLine);
+
+                var selectPhotographBtn = new Button()
+                {
+                    Y = selectLocalLine.Bottom,
+                    Height = Application.GetRealHeight(selectRow_Height) - 1,
+                    TextID = R.MyInternationalizationString.Photograph,
+                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4
+                };
+                itemFL.AddChidren(selectPhotographBtn);
+                var selectPhotographLine = new Button()
+                {
+                    Y = selectPhotographBtn.Bottom,
+                    Height = 1,
+                    BackgroundColor = ZigbeeColor.Current.GXCLineColor,
+                };
+                itemFL.AddChidren(selectPhotographLine);
+
+                var selectAblumsBtn = new Button()
+                {
+                    Y = selectPhotographLine.Bottom,
+                    Height = Application.GetRealHeight(selectRow_Height) - 1,
+                    TextID = R.MyInternationalizationString.MyAblums,
+                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4
+                };
+                itemFL.AddChidren(selectAblumsBtn);
+
+                var cancelBtn = new Button()
+                {
+                    Y = Application.GetRealHeight(1742),
+                    Height = Application.GetRealHeight(selectRow_Height),
+                    Width = Application.GetRealWidth(selectRow_Width),
+                    Gravity = Gravity.CenterHorizontal,
+                    TextID = R.MyInternationalizationString.Cancel,
+                    TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+                    BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor,
+                    Radius = (uint)Application.GetRealHeight(17)
+                };
+                selectFL.AddChidren(cancelBtn);
+
+                selectLocalPicture.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                    var localPic = new CategorySceneSelectImgByLocal();
+                    Shared.Phone.UserView.HomePage.Instance.AddChidren(localPic);
+                    Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                    localPic.Show();
+                    localPic.action = (imgPath) =>
+                    {
+                        IconPathType = 0;
+                        backGround.UnSelectedImagePath = imgPath;
+                    };
+                };
+                selectPhotographBtn.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                    IconPathType = 1;
+                    //閫氳繃鐩告満鎷嶇収瑁佸壀
+                    CropImage.TakePicture((imagePath) =>
+                    {
+                        Console.WriteLine("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
+                    }, "HDLPIC");
+                };
+               
+                selectAblumsBtn.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                    IconPathType = 2;
+                    //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
+                    CropImage.SelectPicture((imagePath) =>
+                    {
+                        Console.WriteLine("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
+                    }, "HDLPIC");
                 };
 
+                cancelBtn.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                };
+                selectFL.MouseUpEventHandler += (send, ee) =>
+                {
+                    selectFL.RemoveFromParent();
+                };
             };
             backGround.MouseUpEventHandler += backGroundIMGHander;
 
             //鍖哄煙
             EventHandler<MouseEventArgs> zoneHander = (sender, e) =>
             {
-                PickerView.ShowSecondary(floorNames, roomNames, (index1, index2) =>
+                List<string> floorIds = new List<string> { };
+                List<string> floorNames = new List<string> { };
+                List<List<string>> roomNames = new List<List<string>> { };
+                List<List<Common.Room>> rooms = new List<List<Common.Room>> { };
+                List<Common.Room> rs = new List<Common.Room> { };
+                List<string> rNames = new List<string> { };
+                if (Config.Instance.Home.FloorDics.Count > 0)
                 {
-                    curRoom = rooms[index1][index2];
-                    zoneRow.NameText.Text = $"{Config.Instance.Home.GetFloorNameById(floorIds[index1])} , {rooms[index1][index2].Name}";
-                }, 0, 0, Language.StringByID(R.MyInternationalizationString.BelongFloor), Language.StringByID(R.MyInternationalizationString.Confrim), Language.StringByID(R.MyInternationalizationString.Cancel));
+                    foreach (var floor in Config.Instance.Home.FloorDics)
+                    {
+                        floorIds.Add(floor.Key);
+                        floorNames.Add(floor.Value);
+                        if (Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key).Count > 0)
+                        {
+                            roomNames.Add(Common.Room.CurrentRoom.GetRoomNamesByFloorId(floor.Key));
+                            rooms.Add(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key));
+                        }
+                    }
+                    PickerView.ShowSecondary(floorNames, roomNames, (index1, index2) =>
+                    {
+                        curRoom = rooms[index1][index2];
+                        zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(floorIds[index1])} , {rooms[index1][index2].Name}");
+                    }, 0, 0, Language.StringByID(R.MyInternationalizationString.BelongFloor),
+                   Language.StringByID(R.MyInternationalizationString.Confrim),
+                   Language.StringByID(R.MyInternationalizationString.Cancel));
+                }
+                else
+                {
+                    for (int i = 0; i < Common.Room.Lists.Count; i++)
+                    {
+                        var r = Common.Room.Lists[i];
+                        if (r.IsLove)
+                        {
+                            continue;
+                        }
+                        rs.Add(r);
+                        rNames.Add(r.Name);
+                    }
+                    PickerView.Show(rNames, (index1) =>
+                    {
+                        curRoom = rs[index1];
+                        zoneRow.SetTitle(rs[index1].Name);
+                    }, 0, Language.StringByID(R.MyInternationalizationString.BelongFloor),
+                   Language.StringByID(R.MyInternationalizationString.Confrim),
+                   Language.StringByID(R.MyInternationalizationString.Cancel));
+                }
             };
-            zoneRow.NextBtn.MouseUpEventHandler += zoneHander;
-            zoneRow.TipBtn.MouseUpEventHandler += zoneHander;
-            zoneRow.NameText.MouseUpEventHandler += zoneHander;
-            zoneRow.MouseUpEventHandler += zoneHander;
+            zoneRow.ClickBtn.MouseUpEventHandler += zoneHander;
 
             //鎵ц鐩爣-娣诲姞鎵ц璁惧
             EventHandler<MouseEventArgs> targetAddHander = (sender, e) =>
@@ -523,6 +662,7 @@
                     BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor
                 };
                 selectFL.AddChidren(itemFL);
+                itemFL.Animate = Animate.DownToUp;
 
                 var selectedFunctionBtn = new Button()
                 {
@@ -699,7 +839,8 @@
                             {
 
                             }
-                            
+                            modifySceneUI.IconPath = backGround.UnSelectedImagePath;
+
                             CommonPage.Loading.Start();
                             var memberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData>();
                             for (int i = 0; i < sceneTargetDevicesList.Count; i++)
@@ -797,6 +938,7 @@
                             {
                                 if (modifyRoom != curRoom)
                                 {
+                                   
                                     modifyRoom.SceneUIList.Remove(modifySceneUI);
                                     modifyRoom.SceneUIFilePathList.Remove(modifySceneUI.FileName);
                                     curRoom.SceneUIList.Add(modifySceneUI);
@@ -931,7 +1073,5 @@
         }
 
         #endregion
-
-
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/BackButton.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/BackButton.cs
index 3c71b0f..5bce277 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/BackButton.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/BackButton.cs
@@ -5,16 +5,16 @@
     /// <summary>
     /// Back button.
     /// </summary>
-    public class BackButton:SelectedStatuButton
+    public class BackButton:Button
     {
         /// <summary>
         /// Initializes a new instance of the <see cref="T:Shared.Phone.Device.CommonForm.BackButton"/> class.
         /// </summary>
         public BackButton()
         {
-            X = Application.GetRealWidth(CommonPage.Navigation_X);
-            Height = Application.GetMinReal(110);
-            Width = Application.GetMinReal(110);
+            X = Application.GetRealWidth(58);
+            Height = Application.GetMinRealAverage(58);
+            Width = Application.GetMinRealAverage(58);
             UnSelectedImagePath = "Item/Back.png";
             SelectedImagePath = "Item/BackSelected.png";
             Gravity = Gravity.CenterVertical;
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/CategoryFunctionForWinRow.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/CategoryFunctionForWinRow.cs
new file mode 100755
index 0000000..b149316
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/CategoryFunctionForWinRow.cs
@@ -0,0 +1,274 @@
+锘縰sing System;
+using Shared.Common;
+
+namespace Shared.Phone.Device.CommonForm
+{
+    public class CategoryFunctionForWinRow:FrameLayout
+    {
+        /// <summary>
+        /// name
+        /// </summary>
+        public Button NameBtn;
+        /// <summary>
+        /// Image
+        /// </summary>
+        public Button ImageBtn;
+        /// <summary>
+        /// ImageBG
+        /// </summary>
+        public Button ImageBG;
+        /// <summary>
+        /// ZoneBtn
+        /// </summary>
+        private Button StatuBtn;
+        /// <summary>
+        /// OpenOrUpBtn
+        /// </summary>
+        public Button OpenOrUpBtn;
+        /// <summary>
+        /// OpenOrUpBtn
+        /// </summary>
+        public Button CloseOrDownBtn;
+        /// <summary>
+        /// StopBtn
+        /// </summary>
+        public Button StopBtn;
+
+        /// <summary>
+        /// ClickBtn
+        /// </summary>
+        public Button ClickBtn;
+        /// <summary>
+        /// v_Selected
+        /// </summary>
+        private bool v_Selected;
+        /// <summary>
+        /// IsSelected
+        /// </summary>
+        public bool IsSelected
+        {
+            set
+            {
+                v_Selected = value;
+                try
+                {
+                    SetOnLineStatu(v_Selected);
+                }
+                catch
+                {
+
+                }
+            }
+            get
+            {
+                return v_Selected;
+            }
+        }
+        /// <summary>
+        /// CategoryFunctionForWinRow
+        /// </summary>
+        /// <param name="x"></param>
+        /// <param name="y"></param>
+        public CategoryFunctionForWinRow(int x = 0, int y = 0)
+        {
+            X = Application.GetRealWidth(x);
+            Y = Application.GetRealHeight(y);
+            Width = Application.GetRealWidth(1022);
+            Height = Application.GetRealHeight(127);
+            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+        }
+
+        /// <summary>
+        /// Init
+        /// </summary>
+        /// <param name="device"></param>
+        public void Init(DeviceUI device)
+        {
+            ImageBG = new Button()
+            {
+                X = Application.GetRealWidth(45),
+                Width = Application.GetMinRealAverage(112),
+                Height = Application.GetMinRealAverage(112),
+                Gravity = Gravity.CenterVertical,
+                Radius = (uint)Application.GetMinRealAverage(112 / 2),
+                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
+                SelectedBackgroundColor = ZigbeeColor.Current.GXCSelectedBackgroundColor,
+            };
+            AddChidren(ImageBG);
+
+            ImageBtn = new Button()
+            {
+                X = Application.GetRealWidth(63),
+                Width = Application.GetMinRealAverage(78),
+                Height = Application.GetMinRealAverage(78),
+                Gravity = Gravity.CenterVertical,
+                UnSelectedImagePath = device.IconPath,
+                SelectedImagePath = device.OnlineIconPath,
+            };
+            AddChidren(ImageBtn);
+
+            NameBtn = new Button()
+            {
+                X = Application.GetRealWidth(181),
+                Y = Application.GetRealHeight(14),
+                Width = Application.GetRealWidth(400),
+                Height = Application.GetRealHeight(58),
+                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                SelectedTextColor = ZigbeeColor.Current.GXCTextSelectedColor,
+                TextAlignment = TextAlignment.CenterLeft,
+            };
+            AddChidren(NameBtn);
+
+            StatuBtn = new Button
+            {
+                X = Application.GetRealWidth(181),
+                Y = Application.GetRealHeight(72),
+                Width = Application.GetRealWidth(400),
+                Height = Application.GetRealHeight(49),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor2
+            };
+            AddChidren(StatuBtn);
+
+            OpenOrUpBtn = new Button
+            {
+                X = Application.GetRealWidth(625),
+                Width = Application.GetMinRealAverage(69),
+                Height = Application.GetMinRealAverage(69),
+                SelectedImagePath = "RollerShade/OpenSelected.png",
+                UnSelectedImagePath = "RollerShade/Open.png",
+                Gravity = Gravity.CenterVertical
+            };
+            AddChidren(OpenOrUpBtn);
+            OpenOrUpBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                (device.CommonDevice as ZigBee.Device.Rollershade).CurtainUpDownStopControl(0);
+            };
+
+            StopBtn = new Button
+            {
+                X = Application.GetRealWidth(769),
+                Width = Application.GetMinRealAverage(69),
+                Height = Application.GetMinRealAverage(69),
+                SelectedImagePath = "RollerShade/StopSelected.png",
+                UnSelectedImagePath = "RollerShade/Stop.png",
+                Gravity = Gravity.CenterVertical
+            };
+            AddChidren(StopBtn);
+            StopBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                (device.CommonDevice as ZigBee.Device.Rollershade).CurtainUpDownStopControl(2);
+            };
+
+            CloseOrDownBtn = new Button
+            {
+                X = Application.GetRealWidth(896),
+                Width = Application.GetMinRealAverage(69),
+                Height = Application.GetMinRealAverage(69),
+                SelectedImagePath = "RollerShade/CloseSelected.png",
+                UnSelectedImagePath = "RollerShade/Close.png",
+                Gravity = Gravity.CenterVertical
+            };
+            AddChidren(CloseOrDownBtn);
+            CloseOrDownBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                (device.CommonDevice as ZigBee.Device.Rollershade).CurtainUpDownStopControl(1);
+            };
+
+            var line = new Button()
+            {
+                X = Application.GetRealWidth(200),
+                Y = Height - 2,
+                Width = Application.GetRealWidth(821),
+                Height = 2,
+                BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor,
+                Tag = Tag
+            };
+            AddChidren(line);
+
+            ClickBtn = new Button
+            {
+                Width = Application.GetRealWidth(600)
+            };
+            AddChidren(ClickBtn);
+        }
+
+        /// <summary>
+        /// SetTitle
+        /// </summary>
+        /// <param name="title"></param>
+        public void SetTitle(string title)
+        {
+            NameBtn.Text = title;
+        }
+        /// <summary>
+        /// SetTitle
+        /// </summary>
+        /// <param name="title"></param>
+        public void SetTitle(int title)
+        {
+            SetTitle(Language.StringByID(title));
+        }
+
+        /// <summary>
+        /// SetZoneText
+        /// </summary>
+        /// <param name="title"></param>
+        public void SetStatuText(string title)
+        {
+            StatuBtn.Text = title;
+        }
+        /// <summary>
+        /// SetStatu
+        /// </summary>
+        /// <param name="statu"></param>
+        public void SetStatu(bool statu)
+        {
+            OpenOrUpBtn.IsSelected = CloseOrDownBtn.IsSelected = StopBtn.IsSelected = statu;
+        }
+
+        /// <summary>
+        /// SetStatu
+        /// </summary>
+        /// <param name="statu"></param>
+        public void SetOnLineStatu(bool statu)
+        {
+            NameBtn.IsSelected = ImageBG.IsSelected = ImageBtn.IsSelected = statu;
+
+        }
+
+        /// <summary>
+        /// HideSwitchBtn
+        /// </summary>
+        /// <param name="statu"></param>
+        public void HideSwitchBtn(bool statu)
+        {
+            
+        }
+
+        /// <summary>
+        /// WcdType=4锛氬紑鍚堝笜
+        /// WcdType=0锛氬嵎甯�
+        /// </summary>
+        /// <param name="type"></param>
+        public void SetRollerShadeIcon(int type)
+        {
+            if(type==0)
+            {
+                OpenOrUpBtn.UnSelectedImagePath = "RollerShade/Up.png";
+                OpenOrUpBtn.SelectedImagePath = "RollerShade/UpSelected.png";
+
+                CloseOrDownBtn.UnSelectedImagePath = "RollerShade/Down.png";
+                CloseOrDownBtn.SelectedImagePath = "RollerShade/DownSelected.png";
+            }
+            else
+            {
+                OpenOrUpBtn.UnSelectedImagePath = "RollerShade/Open.png";
+                OpenOrUpBtn.SelectedImagePath = "RollerShade/OpenSelected.png";
+
+                CloseOrDownBtn.UnSelectedImagePath = "RollerShade/Close.png";
+                CloseOrDownBtn.SelectedImagePath = "RollerShade/CloseSelected.png";
+            }
+        }
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/CategoryFunctionRow.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/CategoryFunctionRow.cs
index efb483a..c86f41d 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/CategoryFunctionRow.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/CategoryFunctionRow.cs
@@ -23,7 +23,7 @@
         /// <summary>
         /// ZoneBtn
         /// </summary>
-        private Button ZoneBtn;
+        private Button StatuBtn;
         /// <summary>
         /// ClickBtn
         /// </summary>
@@ -42,7 +42,7 @@
                 v_Selected = value;
                 try
                 {
-                    SetStatu(v_Selected);
+                    SetOnLineStatu(v_Selected);
                 }
                 catch
                 {
@@ -114,7 +114,7 @@
             };
             AddChidren(NameBtn);
 
-            ZoneBtn = new Button
+            StatuBtn = new Button
             {
                 X = Application.GetRealWidth(181),
                 Y = Application.GetRealHeight(72),
@@ -123,7 +123,7 @@
                 TextAlignment = TextAlignment.CenterLeft,
                 TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor2
             };
-            AddChidren(ZoneBtn);
+            AddChidren(StatuBtn);
 
             SwitchBtn = new Button()
             {
@@ -176,18 +176,26 @@
         /// SetZoneText
         /// </summary>
         /// <param name="title"></param>
-        public void SetZoneText(string title)
+        public void SetStatuText(string title)
         {
-            ZoneBtn.Text = title;
+            StatuBtn.Text = title;
         }
-
         /// <summary>
         /// SetStatu
         /// </summary>
         /// <param name="statu"></param>
         public void SetStatu(bool statu)
         {
-            NameBtn.IsSelected = ImageBG.IsSelected = ImageBtn.IsSelected = SwitchBtn.IsSelected = statu;
+            SwitchBtn.IsSelected = statu;
+        }
+
+        /// <summary>
+        /// SetStatu
+        /// </summary>
+        /// <param name="statu"></param>
+        public void SetOnLineStatu(bool statu)
+        {
+            NameBtn.IsSelected = ImageBG.IsSelected = ImageBtn.IsSelected =  statu;
         }
 
         /// <summary>
@@ -196,7 +204,7 @@
         /// <param name="statu"></param>
         public void HideSwitchBtn(bool statu)
         {
-            SwitchBtn.Visible = statu;
+            SwitchBtn.Visible = !statu;
         }
     }
 }
\ No newline at end of file
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceDetailInfo.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceDetailInfo.cs
index 61d8f23..6e89f8d 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceDetailInfo.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceDetailInfo.cs
@@ -2,6 +2,8 @@
 using System.Collections.Generic;
 using System.Globalization;
 using Shared.Common;
+using Shared.Phone.UserCenter;
+using ZigBee.Device;
 
 namespace Shared.Phone.Device.CommonForm
 {
@@ -20,6 +22,22 @@
         /// action
         /// </summary>
         public Action action;
+        /// <summary>
+        /// curRoom
+        /// </summary>
+        private Common.Room curRoom;
+        /// <summary>
+        /// curRoom
+        /// </summary>
+        private Common.Room befRoom;
+        /// <summary>
+        /// sharedRow
+        /// </summary>
+        private DeviceInfoRow sharedRow;
+        /// <summary>
+        /// functionTypeRow
+        /// </summary>
+        private DeviceInfoRow functionTypeRow;
 
         #endregion
 
@@ -100,7 +118,7 @@
                 Height = Application.GetMinRealAverage(207),
                 Gravity = Gravity.CenterHorizontal,
                 BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                Radius=(uint)Application.GetMinRealAverage(207)
+                Radius = (uint)Application.GetMinRealAverage(207)
             };
             bodyFrameLayout.AddChidren(deviceBG);
 
@@ -174,14 +192,100 @@
             modelRow.Init();
             modelRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongModel)} : ");
             modelRow.SetTitle(string.IsNullOrEmpty(device.CommonDevice.DeviceName) ? Language.StringByID(R.MyInternationalizationString.UNKnown) : device.CommonDevice.DeviceName);
+            modelRow.HideNext(true);
             infoFL.AddChidren(modelRow);
 
-            var sharedRow = new DeviceInfoRow(585);
-            sharedRow.Init();
-            sharedRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.Share)} : ");
-            sharedRow.SetTitle("2浜�");
-            infoFL.AddChidren(sharedRow);
+            if (device.CommonDevice.Type==ZigBee.Device.DeviceType.OnOffOutput)
+            {
+                functionTypeRow = new DeviceInfoRow(585);
+                functionTypeRow.Init();
+                functionTypeRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.FunctionType)} : ");
+                //functionTypeRow.SetTitle(device.CommonDevice.DfunctionType);
+                infoFL.AddChidren(functionTypeRow);
+                var dfunctionType = device.CommonDevice.DfunctionType;
 
+                //鍔熻兘绫诲瀷鐨勭炕璇戝悕瀛�
+                string strT = string.Empty;
+                if (dfunctionType == DeviceFunctionType.A鐏厜)
+                {
+                    strT = Language.StringByID(R.MyInternationalizationString.uLight);
+                }
+                else if (dfunctionType == DeviceFunctionType.A寮�鍏�)
+                {
+                    strT = Language.StringByID(R.MyInternationalizationString.uSwitch);
+                }
+                else if (dfunctionType == DeviceFunctionType.A鎻掑骇)
+                {
+                    strT = Language.StringByID(R.MyInternationalizationString.uSocket1);
+                }
+                functionTypeRow.SetTitle(strT);
+
+                functionTypeRow.ClickBtn.MouseUpEventHandler += (sender, e) =>
+                {
+                    var DfunctionType = device.CommonDevice.DfunctionType;
+                    
+                    //鍔熻兘绫诲瀷鐨勭炕璇戝悕瀛�
+                    int nowSelectNo = 1;
+                    string strType = string.Empty;
+                    if (DfunctionType == DeviceFunctionType.A鐏厜)
+                    {
+                        strType = Language.StringByID(R.MyInternationalizationString.uLight);
+                        nowSelectNo = 1;
+                    }
+                    else if (DfunctionType == DeviceFunctionType.A寮�鍏�)
+                    {
+                        strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
+                        nowSelectNo = 0;
+                    }
+                    else if (DfunctionType == DeviceFunctionType.A鎻掑骇)
+                    {
+                        strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
+                        nowSelectNo = 2;
+                    }
+                    //鏄剧ず鍒楄〃
+                    var listText = new List<string>();
+                    listText.Add(Language.StringByID(R.MyInternationalizationString.uSwitch));//寮�鍏�
+                    listText.Add(Language.StringByID(R.MyInternationalizationString.uLight));//鐏厜
+                    listText.Add(Language.StringByID(R.MyInternationalizationString.uSocket1));//鎻掑骇
+                                                                                               //鏍囬:閫夋嫨鍔熻兘绫诲瀷
+                    var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType);
+
+                    var form = new BottomDialogSelectForm();
+                    form.AddForm(title, listText, nowSelectNo);
+                    form.FinishSelectEvent += (selectNo) =>
+                    {
+                        functionTypeRow.NameText.Text = listText[selectNo];
+                        nowSelectNo = selectNo;
+                        //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨�
+                        if (selectNo == 0)
+                        {
+                            device.CommonDevice.DfunctionType  = DeviceFunctionType.A寮�鍏�;
+                        }
+                        else if (selectNo == 1)
+                        {
+                            device.CommonDevice.DfunctionType = DeviceFunctionType.A鐏厜;
+                        }
+                        else
+                        {
+                            device.CommonDevice.DfunctionType = DeviceFunctionType.A鎻掑骇;
+                        }
+                    };
+                };
+
+                sharedRow = new DeviceInfoRow(723);
+                sharedRow.Init();
+                sharedRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.Share)} : ");
+                sharedRow.SetTitle("2浜�");
+                infoFL.AddChidren(sharedRow);
+            }
+            else
+            {
+                sharedRow = new DeviceInfoRow(585);
+                sharedRow.Init();
+                sharedRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.Share)} : ");
+                sharedRow.SetTitle("2浜�");
+                infoFL.AddChidren(sharedRow);
+            }
 
             var confirmBtn = new CommonForm.CompleteButton(962, 907, 127);
             confirmBtn.SetTitle(R.MyInternationalizationString.Confrim);
@@ -190,17 +294,54 @@
             #region event
             EventHandler<MouseEventArgs> selectZoneEvent = (sender, e) =>
             {
-                //UserCenter.SelectRoomForm selectedRoom = new UserCenter.SelectRoomForm();
-                //selectedRoom.AddForm(selectedRoom, roomNameList);
-                //selectedRoom.ActionSelectRoom += ((rList) =>
-                //{
-                //    roomNameList = rList;
-                //    zone.Text = Shared.Common.Room.CurrentRoom.GetRoomName(roomNameList);
-                //});
+                List<string> floorIds = new List<string> { };
+                List<string> floorNames = new List<string> { };
+                List<List<string>> roomNames = new List<List<string>> { };
+                List<List<Common.Room>> rooms = new List<List<Common.Room>> { };
+                List<Common.Room> rs = new List<Common.Room> { };
+                List<string> rNames = new List<string> { };
+                if (Config.Instance.Home.FloorDics.Count>0)
+                {
+                    foreach (var floor in Config.Instance.Home.FloorDics)
+                    {
+                        floorIds.Add(floor.Key);
+                        floorNames.Add(floor.Value);
+                        if (Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key).Count > 0)
+                        {
+                            roomNames.Add(Common.Room.CurrentRoom.GetRoomNamesByFloorId(floor.Key));
+                            rooms.Add(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key));
+                        }
+                    }
+                    PickerView.ShowSecondary(floorNames, roomNames, (index1, index2) =>
+                    {
+                        curRoom = rooms[index1][index2];
+                        zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(floorIds[index1])} , {rooms[index1][index2].Name}");
+                    }, 0, 0, Language.StringByID(R.MyInternationalizationString.BelongFloor),
+                   Language.StringByID(R.MyInternationalizationString.Confrim),
+                   Language.StringByID(R.MyInternationalizationString.Cancel));
+                }
+                else
+                {
+                    for(int i=0;i<Common.Room.Lists.Count;i++)
+                    {
+                        var r = Common.Room.Lists[i];
+                        if (r.IsLove)
+                        {
+                            continue;
+                        }
+                        rs.Add(r);
+                        rNames.Add(r.Name);
+                    }
+                    PickerView.Show(rNames, (index1) =>
+                    {
+                        curRoom = rs[index1];
+                        zoneRow.SetTitle(rs[index1].Name);
+                    }, 0,Language.StringByID(R.MyInternationalizationString.BelongFloor),
+                   Language.StringByID(R.MyInternationalizationString.Confrim),
+                   Language.StringByID(R.MyInternationalizationString.Cancel));
+                }
             };
-            //zoneRight.MouseUpEventHandler += selectZoneEvent;
-            //zoneFL.MouseUpEventHandler += selectZoneEvent;
-            //zone.MouseUpEventHandler += selectZoneEvent;
+            zoneRow.ClickBtn.MouseUpEventHandler += selectZoneEvent;
 
             EventHandler<MouseEventArgs> selectDeviceIconEvent = (sender, e) =>
             {
@@ -212,38 +353,80 @@
                 {
                     deviceIMG.UnSelectedImagePath = unSelectedImagePath;
                     deviceIMG.SelectedImagePath = selectedImagePath;
+                    device.CommonDevice.IsCustomizeImage = true;
                 };
             };
             deviceIMG.MouseUpEventHandler += selectDeviceIconEvent;
 
-            confirmBtn.MouseUpEventHandler += async (sender, e) =>
+            confirmBtn.MouseUpEventHandler +=  (sender, e) =>
             {
-                //if (device.CommonDevice == null)
-                //{
-                //    CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
-                //    return;
-                //}
-                //var result = await Shared.Common.LocalDevice.Current.ReName(device.CommonDevice, deviceName.Text.Trim());
-                //if (result)
-                //{
-                //    var alertSuccess = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.Success), Language.StringByID(R.MyInternationalizationString.Confrim));
-                //    alertSuccess.Show();
-                //    alertSuccess.ResultEventHandler += (senderSuccess, eSuccess) =>
-                //    {
-                //        //鏀瑰浘鐗�
-                //        device.IconPath = deviceIMG.UnSelectedImagePath;
-                //        device.IsCustomizeImage = true;
-                //        device.ReSave();
-                //        //鏀规埧闂�
-                //        Shared.Common.Room.CurrentRoom.ChangedRoom(device.CommonDevice, roomNameList);
-                //        RemoveFromParent();
-                //    };
-                //}
-                //else
-                //{
-                //    return;
-                //    //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
-                //}
+                try
+                {
+                    CommonPage.Loading.Start();
+                    if (device.CommonDevice == null)
+                    {
+                        CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
+                        return;
+                    }
+                    if (device.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput)
+                    {
+                        if (device.IsCustomizeImage == false)
+                        {
+                            if (device.CommonDevice.DfunctionType == DeviceFunctionType.A寮�鍏�)
+                            {
+                                device.CommonDevice.IconPath = "Device/Switch.png";
+                            }
+                            else if (device.CommonDevice.DfunctionType == DeviceFunctionType.A鎻掑骇)
+                            {
+                                device.CommonDevice.IconPath = "Device/Socket1.png";
+                            }
+                            else if (device.CommonDevice.DfunctionType == DeviceFunctionType.A鐏厜)
+                            {
+                                device.CommonDevice.IconPath = "Device/Light.png";
+                            }
+                        }
+                        else
+                        {
+                            //鏀瑰浘鐗�
+                            device.CommonDevice.IconPath = deviceIMG.UnSelectedImagePath;
+                        }
+                    }
+                    else
+                    {
+                        //鏀瑰浘鐗�
+                        device.CommonDevice.IconPath = deviceIMG.UnSelectedImagePath;
+                    }
+                    bool result;
+                    new System.Threading.Thread(async () =>
+                    {
+                        result = await LocalDevice.Current.ReName(device.CommonDevice, nameRow.NameText.Text.Trim());
+                        Application.RunOnMainThread(() =>
+                        {
+                            CommonPage.Loading.Hide();
+                            if (result)
+                            {
+                                var alertSuccess = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.Success), Language.StringByID(R.MyInternationalizationString.Confrim));
+                                alertSuccess.Show();
+                                alertSuccess.ResultEventHandler += (senderSuccess, eSuccess) =>
+                                {
+                                    //鏀规埧闂�
+                                    Shared.Common.Room.CurrentRoom.ChangedRoom(device.CommonDevice, curRoom.Id);
+                                    device.CommonDevice.ReSave();
+                                    RemoveFromParent();
+                                };
+                            }
+                            else
+                            {
+                                CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
+                            }
+                        });
+                    })
+                    { IsBackground = true }.Start();
+                }
+                catch
+                {
+                    CommonPage.Loading.Hide();
+                }
             };
 
             #endregion
@@ -255,7 +438,9 @@
         /// <param name="device"></param>
         public void Init(DeviceUI device)
         {
-            roomName = Common.Room.CurrentRoom.GetRoomNameByDevice(device.CommonDevice);
+            roomName = device.GetZone();
+            befRoom = Common.Room.CurrentRoom.GetRoomByDevice(device.CommonDevice);
+            curRoom = Common.Room.CurrentRoom.GetRoomByDevice(device.CommonDevice);
         }
         #endregion
     }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoRow.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoRow.cs
index 69b0a79..74c4422 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoRow.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoRow.cs
@@ -17,6 +17,10 @@
         /// </summary>
         public Button NextBtn;
         /// <summary>
+        /// ClickBtn
+        /// </summary>
+        public Button ClickBtn;
+        /// <summary>
         /// line
         /// </summary>
         private Button line;
@@ -79,6 +83,9 @@
                 BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2,
             };
             AddChidren(line);
+
+            ClickBtn = new Button();
+            AddChidren(ClickBtn);
         }
 
         /// <summary>
@@ -118,9 +125,22 @@
             SetTipTitle(Language.StringByID(title));
         }
 
+        /// <summary>
+        /// HideLine
+        /// </summary>
+        /// <param name="hiden"></param>
         public void HideLine(bool hiden)
         {
-            line.Visible = hiden;
+            line.Visible = !hiden;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="hiden"></param>
+        public void HideNext(bool hiden)
+        {
+            NextBtn.Visible = !hiden;
         }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoWithZoneRow.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoWithZoneRow.cs
index 2da32e0..2edd7e7 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoWithZoneRow.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/DeviceInfoWithZoneRow.cs
@@ -19,7 +19,11 @@
         /// <summary>
         /// NextBtn
         /// </summary>
-        public Button NextBtn;
+        public Button SelectBtn;
+        /// <summary>
+        /// ClickButton
+        /// </summary>
+        public Button ClickButton;
         /// <summary>
         /// DeviceInfoWithZoneRow
         /// </summary>
@@ -68,16 +72,16 @@
             };
             AddChidren(ZoneButton);
 
-            NextBtn = new Button
+            SelectBtn = new Button
             {
                 X = Application.GetRealWidth(910),
                 Width = Application.GetMinRealAverage(100),
                 Height = Application.GetMinRealAverage(100),
                 Gravity = Gravity.CenterVertical,
-                SelectedImagePath = "Item/Next.png",
-                UnSelectedImagePath = "Item/NextSelected.png"
+                UnSelectedImagePath = "Scene/Selected.png",
+                Visible = false
             };
-            AddChidren(NextBtn);
+            AddChidren(SelectBtn);
 
             var line = new Button()
             {
@@ -88,6 +92,11 @@
                 BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2,
             };
             AddChidren(line);
+            ClickButton = new Button
+            {
+
+            };
+            AddChidren(ClickButton);
         }
 
         /// <summary>
@@ -96,7 +105,7 @@
         /// <param name="title"></param>
         public void SetName(string title)
         {
-            ZoneButton.Text = title;
+            NameButton.Text = title;
         }
         
 
@@ -106,7 +115,7 @@
         /// <param name="title"></param>
         public void SetZone(string title)
         {
-            NameButton.Text = title;
+            ZoneButton.Text = title;
         }
 
         /// <summary>
@@ -117,7 +126,15 @@
         {
             IconButton.UnSelectedImagePath = imagePath;
         }
-        
+
+        /// <summary>
+        /// SetStatu
+        /// </summary>
+        /// <param name="statu"></param>
+        public void SetStatu(bool statu)
+        {
+            SelectBtn.Visible = statu;
+        }
 
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectDeviceWithSeekBarRow.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectDeviceWithSeekBarRow.cs
index 4f9dd8f..b1dce70 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectDeviceWithSeekBarRow.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectDeviceWithSeekBarRow.cs
@@ -113,7 +113,7 @@
                 ProgressColor = ZigbeeColor.Current.GXCProgressColor,
                 ThumbColor = ZigbeeColor.Current.GXCBackgroundColor,
                 Max = MaxLevel,
-                Progress = max
+                Progress = MaxLevel
             };
             AddChidren(SeekBar);
 
@@ -123,7 +123,7 @@
                 Height = Application.GetRealHeight(50),
                 Width = Application.GetRealWidth(200),
                 Gravity = Gravity.CenterHorizontal,
-                Text = $"{SeekBar.Progress} %",
+                Text = $"{(int)(SeekBar.Progress * 1.0 / MaxLevel * 100)} %",
                 TextColor = ZigbeeColor.Current.GXCTextGrayColor
             };
             AddChidren(SeekBarTitle);
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectZone.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectZone.cs
index 213da61..caedc18 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectZone.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/SelectZone.cs
@@ -43,6 +43,8 @@
             };
             dialog.AddChidren(backgroundFL);
 
+            backgroundFL.Animate = Animate.DownToUp;
+
             var topView = new FrameLayout
             {
                 Height = Application.GetRealHeight(138)
@@ -83,31 +85,41 @@
 
             pickView = new UIPickerView
             {
-                Y = Application.GetRealHeight(20+138),
+                Y = Application.GetRealHeight(20 + 138),
                 Height = Application.GetRealHeight(450)
             };
             backgroundFL.AddChidren(pickView);
 
-            foreach(var floor in Config.Instance.Home.FloorDics)
+            foreach (var floor in Config.Instance.Home.FloorDics)
             {
                 floorList.Add(floor.Value);
             }
-            foreach(var room in Shared.Common.Room.Lists)
+            foreach (var room in Shared.Common.Room.Lists)
             {
                 roomList.Add(room.Name);
                 roomIdList.Add(room.Id);
             }
-            pickView.setNPicker(floorList, roomList, null);
 
-            pickView.OnSelectChangeEvent += (l1, l2, l3) =>
+            if (floorList.Count == 0)
             {
-                currentId = roomIdList[l2];
-            };
+                pickView.setNPicker(roomList, null, null);
+                pickView.OnSelectChangeEvent += (l1, l2, l3) =>
+                {
+                    currentId = roomIdList[l1];
+                };
+            }
+            else
+            {
+                pickView.setNPicker(floorList, roomList, null);
+                pickView.OnSelectChangeEvent += (l1, l2, l3) =>
+                {
+                    currentId = roomIdList[l2];
+                };
+            }
 
             cancle.MouseUpEventHandler += Close;
             confrim.MouseUpEventHandler += Confrim_MouseEvent;
         }
-
 
         /// <summary>
         /// Close
@@ -126,7 +138,10 @@
         /// <param name="mouseEventArgs"></param>
         private void Confrim_MouseEvent(object sender, MouseEventArgs mouseEventArgs)
         {
-            ZoneAction?.Invoke(Shared.Common.Room.CurrentRoom.GetRoomById(currentId));
+            if (Shared.Common.Room.CurrentRoom.GetRoomById(currentId) != null)
+            {
+                ZoneAction?.Invoke(Shared.Common.Room.CurrentRoom.GetRoomById(currentId));
+            }
             RemoveFromParent();
         }
     }
diff --git a/ZigbeeApp/Shared/Phone/Device/CommonForm/TopFrameLayout.cs b/ZigbeeApp/Shared/Phone/Device/CommonForm/TopFrameLayout.cs
index e3379a5..a18180f 100755
--- a/ZigbeeApp/Shared/Phone/Device/CommonForm/TopFrameLayout.cs
+++ b/ZigbeeApp/Shared/Phone/Device/CommonForm/TopFrameLayout.cs
@@ -110,11 +110,12 @@
         {
             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,
-                Gravity = Gravity.CenterHorizontal,
+                TextAlignment=TextAlignment.CenterLeft
             };
             topView.AddChidren(topTitle);
         }
diff --git a/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs b/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs
index ded3c3d..681e7eb 100755
--- a/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
 using Shared.Common;
+using Shared.Phone.Device.CommonForm;
 using Shared.Phone.UserView;
 using ZigBee.Device;
 
@@ -9,41 +10,14 @@
     {
         #region 鈼� 鍙橀噺__________________________
         /// <summary>
-        /// 璁惧鏄惁鍦ㄧ嚎鏍囪瘑--Online
+        /// The action.
         /// </summary>
-        private readonly string DeviceStatus_Online = "Online";
-        public HorizontalSeekBar SeekBar;
-        public Button seekBarTitle;
         public Action action;
-        public Button rollerShadeIMG;
+
         /// <summary>
         /// 鏀惰棌鎸夐挳
         /// </summary>
-        public Button collectionBtn;
-        /// <summary>
-        /// 鏇村璁剧疆
-        /// </summary>
-        private Button moreBtn;
-        /// <summary>
-        /// 涓嬨�佸叧
-        /// </summary>
-        private Button downBtn;
-        /// <summary>
-        /// 鍋�
-        /// </summary>
-        private Button stopBtn;
-        /// <summary>
-        /// 涓娿�佸紑
-        /// </summary>
-        private Button upBtn;
-        /// <summary>
-        /// 鎴块棿
-        /// </summary>
-        private Button roomBtn;
-        /// <summary>
-        /// 鎴块棿鍚�
-        /// </summary>
-        private Button roomName;
+        private Button collectionBtn;
         /// <summary>
         /// 浼犺繃鏉ョ殑璁惧
         /// </summary>
@@ -52,6 +26,15 @@
         /// 浼犺繃鏉ョ殑鎴块棿
         /// </summary>
         private Shared.Common.Room room;
+
+        /// <summary>
+        /// 鎴块棿
+        /// </summary>
+        private Button roomBtn;
+        /// <summary>
+        /// 鎴块棿鍚�
+        /// </summary>
+        private Button roomName;
         /// <summary>
         /// 缃戝叧
         /// </summary>
@@ -62,10 +45,26 @@
         private bool sendedControlCommand = false;
 
         /// <summary>
-        ///寤舵椂 300姣
+        /// bodyFrameLayout
         /// </summary>
-        private int sleepSpan = 300;
+        private FrameLayout bodyFrameLayout;
+        /// <summary>
+        /// StatuBtn
+        /// </summary>
+        private Button StatuBtn;
 
+        /// <summary>
+        /// OpenOrUpBtn
+        /// </summary>
+        public Button OpenOrUpBtn;
+        /// <summary>
+        /// OpenOrUpBtn
+        /// </summary>
+        public Button CloseOrDownBtn;
+        /// <summary>
+        /// StopBtn
+        /// </summary>
+        public Button StopBtn;
         #endregion
 
         #region 鈼� 鎺ュ彛___________________________
@@ -96,7 +95,7 @@
                 {
                     try
                     {
-                        var deviceUI = SeekBar.Tag as DeviceUI;
+                        var deviceUI = this.device;
                         //璁惧涓虹┖
                         if (deviceUI.CommonDevice == null)
                         {
@@ -115,14 +114,15 @@
                                 var rollerShade = deviceUI.CommonDevice as Rollershade;
                                 rollerShade.DeviceStatusReport = common.DeviceStatusReport;
                                 rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData;
-                                SeekBar.Progress = rollerShade.WcdCurrentPositionLiftPercentage;
-                                seekBarTitle.Text = $"{SeekBar.Progress} %";
+                                StatuBtn.Text = $"{Language.StringByID(R.MyInternationalizationString.Current)} { deviceUI.GetDeviceStatu()}";
+                                //SeekBar.Progress = rollerShade.WcdCurrentPositionLiftPercentage;
+                                //seekBarTitle.Text = $"{SeekBar.Progress} %";
                                 rollerShade.LastDateTime = DateTime.Now;
                             }
                             else if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0)
                             {
-                                //绐楀笜绫诲瀷
-                                var rollerShade = deviceUI.CommonDevice as Rollershade;
+                                ////绐楀笜绫诲瀷
+                                var rollerShade = device.CommonDevice as Rollershade;
                                 rollerShade.DeviceStatusReport = common.DeviceStatusReport;
                                 rollerShade.WcdType = common.DeviceStatusReport.AttriBute[0].AttriButeData;
                                 rollerShade.LastDateTime = DateTime.Now;
@@ -131,10 +131,10 @@
                         //***鏂版敼***璁惧鐘舵�佷笂鎶ヤ腑锛屽綋CluterID=3,璇佹槑璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁�
                         else if (common.DeviceStatusReport.CluterID == 3)
                         {
-                            var rollerShade = deviceUI.CommonDevice as Rollershade;
-                            rollerShade.IsOnline = 1;
-                            rollerShadeIMG.IsSelected = rollerShade.IsOnline == 1;
-                            rollerShade.LastDateTime = DateTime.Now;
+                            //var rollerShade = deviceUI.CommonDevice as Rollershade;
+                            //rollerShade.IsOnline = 1;
+                            //rollerShadeIMG.IsSelected = rollerShade.IsOnline == 1;
+                            //rollerShade.LastDateTime = DateTime.Now;
                         }
                     }
                     catch (Exception ex)
@@ -149,21 +149,21 @@
                 {
                     try
                     {
-                        var deviceUI = SeekBar.Tag as DeviceUI;
-                        //璁惧涓虹┖
-                        if (deviceUI.CommonDevice == null)
-                        {
-                            return;
-                        }
-                        //鏄惁涓哄綋鍓嶈澶�
-                        if (deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint || deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr)
-                        {
-                            return;
-                        }
-                        var rollerShade = deviceUI.CommonDevice as Rollershade;
-                        rollerShade.IsOnline = common.IsOnline;
-                        rollerShadeIMG.IsSelected = rollerShade.IsOnline == 1;
-                        rollerShade.LastDateTime = DateTime.Now;
+                        //var deviceUI = SeekBar.Tag as DeviceUI;
+                        ////璁惧涓虹┖
+                        //if (deviceUI.CommonDevice == null)
+                        //{
+                        //    return;
+                        //}
+                        ////鏄惁涓哄綋鍓嶈澶�
+                        //if (deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint || deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr)
+                        //{
+                        //    return;
+                        //}
+                        //var rollerShade = deviceUI.CommonDevice as Rollershade;
+                        //rollerShade.IsOnline = (common as Rollershade).IsOnline;
+                        //rollerShadeIMG.IsSelected = rollerShade.IsOnline == 1;
+                        //rollerShade.LastDateTime = DateTime.Now;
                     }
                     catch (Exception ex)
                     {
@@ -212,8 +212,8 @@
         {
             UserView.HomePage.Instance.ScrollEnabled = true;
             ZigBee.Device.ZbGateway.StatusList.Remove(this);
-            action();
-            action = null;
+            //action();
+            //action = null;
             RemoveUpdateControlDeviceStatuAction();
             base.RemoveFromParent();
         }
@@ -223,36 +223,20 @@
         #region 鈼� 鏄剧ず鐣岄潰________________________
 
         /// <summary>
-        /// 鏄剧ず鍗峰笜鎺у埗鐣岄潰
+        /// 鏄剧ず鐣岄潰
         /// </summary>
-        public void Show(DeviceUI device, Shared.Common.Room room)
+        /// <param name="dev">Device.</param>
+        /// <param name="room">Room.</param>
+        public void Show(DeviceUI dev, Shared.Common.Room room)
         {
-            #region topview
-            var topBGView = new FrameLayout()鈥�            {鈥�                Height = Application.GetRealHeight(CommonPage.Navigation_Height),鈥�                BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor鈥�            };鈥�            AddChidren(topBGView);鈥�            var topView = new FrameLayout()鈥�            {鈥�                Y = Application.GetRealHeight(CommonPage.NavigationTitle_Y),鈥�                Height = Application.GetRealHeight(CommonPage.Navigation_Height - CommonPage.NavigationTitle_Y),鈥�                BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor,鈥�            };鈥�            AddChidren(topView);
-
-            moreBtn = new Device.CommonForm.SelectedStatuButton()
-            {
-                X = Application.GetRealWidth(CommonPage.AppRealWidth - 150),
-                Width = Application.GetMinReal(110),
-                Height = Application.GetMinReal(110),
-                Gravity = Gravity.CenterVertical,
-                UnSelectedImagePath = "Item/More.png",
-                SelectedImagePath = "Item/MoreSelected.png",
-            };
-            topView.AddChidren(moreBtn);
-
-            var back = new Device.CommonForm.BackButton() { };鈥�            topView.AddChidren(back);
-            back.MouseUpEventHandler += (sender, e) =>
-            {
-                this.RemoveFromParent();
-            };
-            if (device == null || device.CommonDevice == null || room == null)
-            {
-                return;
-            }
-            this.device = device;
-            this.zbGateway = this.device.CommonDevice.Gateway;
+            device = dev;
+            zbGateway = this.device.CommonDevice.Gateway;
             this.room = room;
+
+            AddTop();
+
+            AddBodyView(device);
+
 
             var rollerShade = device.CommonDevice as ZigBee.Device.Rollershade;
             //涓嶄笂闈炶繙绋�
@@ -264,8 +248,8 @@
             {
                 UserHomeView.ReadStatus(rollerShade, () =>
                 {
-                    rollerShade.ReadWcdCurrentPositionLiftPercentage();
                     rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+                    rollerShade.ReadWcdCurrentPositionLiftPercentage();
                 });
             }
             else
@@ -278,163 +262,8 @@
                 }
             }
 
-            #endregion
-
-            #region midFL
-            var midFL = new FrameLayout()
-            {
-                Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.Navigation_Height),
-                Y = topView.Bottom,
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-            };
-            this.AddChidren(midFL);
-
-            var itemView = new FrameLayout()
-            {
-                Y = Application.GetRealHeight(50),
-                Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonPage.XLeft*2),
-                Height = midFL.Height - Application.GetRealHeight(100),
-                Radius = CommonPage.BigFormRadius,
-                Gravity = Gravity.CenterHorizontal,
-                BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor
-            };
-            midFL.AddChidren(itemView);
-            var rollerShadeView = new FrameLayout()
-            {
-                X = 2,
-                Y = 2,
-                Width = itemView.Width - 4,
-                Height = itemView.Height - Application.GetRealHeight(130),
-                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
-                Tag=device
-            };
-            itemView.AddChidren(rollerShadeView);
-
-            collectionBtn = new Button()
-            {
-                X = rollerShadeView.Width - Application.GetRealWidth(130),
-                Y = Application.GetRealHeight(20),
-                Width = Application.GetMinReal(110),
-                Height = Application.GetMinReal(110),
-                UnSelectedImagePath = "Item/Collection.png",
-                SelectedImagePath = "Item/CollectionSelected.png"
-            };
-            rollerShadeView.AddChidren(collectionBtn);
-
-             rollerShadeIMG = new Button()
-            {
-                Y = Application.GetRealHeight(80),
-                Height = Application.GetMinRealAverage(240),
-                Width = Application.GetMinRealAverage(240),
-                Gravity = Gravity.CenterHorizontal,
-                UnSelectedImagePath = device.IconPath,
-                SelectedImagePath = device.OnlineIconPath,
-                IsSelected=rollerShade.IsOnline==1,
-                Tag=DeviceStatus_Online
-            };
-            rollerShadeView.AddChidren(rollerShadeIMG);
-
-            var rollerShadeName = new Button()
-            {
-                Y = rollerShadeIMG.Bottom,
-                Height = Application.GetRealHeight(85),
-                Width = rollerShadeView.Width - Application.GetRealWidth(100),
-                Gravity = Gravity.CenterHorizontal,
-                Text = device.CommonDevice.DeviceEpointName,
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor
-            };
-            rollerShadeView.AddChidren(rollerShadeName);
-            //婊戞潯
-            SeekBar = new HorizontalSeekBar()
-            {
-                Y = rollerShadeName.Bottom + Application.GetRealHeight(350),
-                Width = rollerShadeView.Width - Application.GetRealWidth(100),
-                Height = Application.GetRealHeight(80),
-                Gravity = Gravity.CenterHorizontal,
-                BackgroundColor = ZigbeeColor.Current.GXCSliderUnSelectedColor,
-                ThumbColor = ZigbeeColor.Current.GXCButtonBlueColor,
-                BorderColor = ZigbeeColor.Current.GXCButtonBlueColor,
-                ProgressColor = ZigbeeColor.Current.GXCButtonBlueColor,
-                Max = 100,
-                Tag=device,
-                Progress = rollerShade.WcdCurrentPositionLiftPercentage,
-                SleepTime=sleepSpan
-            };
-            rollerShadeView.AddChidren(SeekBar);
-
-            seekBarTitle = new Button()
-            {
-                Y = rollerShadeName.Bottom + Application.GetRealHeight(250),
-                Width = Application.GetRealWidth(300),
-                Height = Application.GetRealHeight(80),
-                Gravity = Gravity.CenterHorizontal,
-                Text = $"{SeekBar.Progress}%",
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                Tag=device
-            };
-            rollerShadeView.AddChidren(seekBarTitle);
-
-            downBtn = new Device.CommonForm.SelectedStatuButton()
-            {
-                X = Application.GetRealWidth(50),
-                Y = Application.GetRealHeight(300) + SeekBar.Bottom,
-                Width = Application.GetMinRealAverage(160),
-                Height = Application.GetMinRealAverage(160),
-                UnSelectedImagePath = "WindowCovering/RollerShadeClose.png",
-                SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png",
-                //IsSelected = !((device.CommonDevice as ZigBee.Device.Rollershade).WcdCurrentPositionLiftPercentage > 0)
-            };
-            rollerShadeView.AddChidren(downBtn);
-
-            stopBtn = new Device.CommonForm.SelectedStatuButton()
-            {
-                X = Application.GetRealWidth(200) + downBtn.Right,
-                Y = Application.GetRealHeight(300) + SeekBar.Bottom,
-                Width = Application.GetMinRealAverage(160),
-                Height = Application.GetMinRealAverage(160),
-                UnSelectedImagePath = "WindowCovering/RollerShadeStop.png",
-                SelectedImagePath = "WindowCovering/RollerShadeStopSelected.png",
-            };
-            rollerShadeView.AddChidren(stopBtn);
-
-            upBtn = new Device.CommonForm.SelectedStatuButton()
-            {
-                X = Application.GetRealWidth(200) + stopBtn.Right,
-                Y = Application.GetRealHeight(300) + SeekBar.Bottom,
-                Width = Application.GetMinRealAverage(160),
-                Height = Application.GetMinRealAverage(160),
-                UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png",
-                SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png",
-                //IsSelected = (device.CommonDevice as ZigBee.Device.Rollershade).WcdCurrentPositionLiftPercentage > 0
-            };
-            rollerShadeView.AddChidren(upBtn);
-
-            roomBtn = new Button()
-            {
-                X = Application.GetRealWidth(50),
-                Y = Application.GetRealHeight(25) + rollerShadeView.Bottom,
-                Width = Application.GetMinReal(80),
-                Height = Application.GetMinReal(80),
-                UnSelectedImagePath = "Item/Room.png",
-                SelectedImagePath = "Item/RoomSelected.png"
-            };
-            itemView.AddChidren(roomBtn);
-
-            roomName = new Button()
-            {
-                X = roomBtn.Right + Application.GetRealWidth(20),
-                Y = roomBtn.Y,
-                Width = Application.GetRealWidth(400),
-                Height = Application.GetRealHeight(80),
-                Text = room.Name,
-                TextAlignment = TextAlignment.CenterLeft,
-                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
-                SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor
-            };
-            itemView.AddChidren(roomName);
-
-            var dev =Shared.Common.Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
-            if (dev == null)
+            var de = Shared.Common.Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
+            if (de == null)
             {
                 collectionBtn.IsSelected = false;
             }
@@ -443,53 +272,206 @@
                 collectionBtn.IsSelected = true;
             }
 
-            if (rollerShade.WcdType == -1)
+
+            BindEvent();
+
+        }
+
+        #endregion
+
+        #region 鈼� Add______________________________
+
+        /// <summary>
+        /// AddTop
+        /// </summary>
+        public void AddTop()
+        {
+            var top = new TopFrameLayout();
+            AddChidren(top);
+            top.InitTopview();
+            top.backButton.MouseUpEventHandler += (sender, e) =>
+            {
+                RemoveFromParent();
+            };
+
+            var sharedBtn = new Button
+            {
+                X = Application.GetRealWidth(850),
+                Width = Application.GetMinReal(69),
+                Height = Application.GetMinReal(69),
+                Gravity = Gravity.CenterVertical,
+                UnSelectedImagePath = "Item/Shared.png"
+            };
+            top.topView.AddChidren(sharedBtn);
+
+            var moreBtn = new Button
+            {
+                X = Application.GetRealWidth(953),
+                Width = Application.GetMinReal(69),
+                Height = Application.GetMinReal(69),
+                Gravity = Gravity.CenterVertical,
+                UnSelectedImagePath = "Item/More.png"
+            };
+            top.topView.AddChidren(moreBtn);
+
+            moreBtn.MouseUpEventHandler += More;
+
+        }
+        /// <summary>
+        /// AddBodyView
+        /// </summary>
+        public void AddBodyView(DeviceUI device)
+        {
+            bodyFrameLayout = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(184),
+                Height = Application.GetRealHeight(1737),
+                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
+            };
+            AddChidren(bodyFrameLayout);
+
+            var itemView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(115),
+                Width = Application.GetRealWidth(965),
+                Height = Application.GetRealHeight(1316),
+                Radius = (uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius),
+                Gravity = Gravity.CenterHorizontal,
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+            };
+            bodyFrameLayout.AddChidren(itemView);
+
+            collectionBtn = new Button()
+            {
+                X = Application.GetRealWidth(850),
+                Y = Application.GetRealHeight(46),
+                Width = Application.GetMinReal(69),
+                Height = Application.GetMinReal(69),
+                UnSelectedImagePath = "Item/Collection.png",
+                SelectedImagePath = "Item/CollectionSelected.png"
+            };
+            itemView.AddChidren(collectionBtn);
+
+            var deviceNameBtn = new Button()
+            {
+                Y = Application.GetRealHeight(46),
+                Width = Application.GetRealWidth(500),
+                Height = Application.GetRealHeight(60),
+                Gravity = Gravity.CenterHorizontal,
+                Text = device.CommonDevice.DeviceEpointName,
+                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                TextSize = 15
+            };
+            itemView.AddChidren(deviceNameBtn);
+
+            StatuBtn = new Button
+            {
+                Y = Application.GetRealHeight(118),
+                Width = Application.GetRealWidth(600),
+                Height = Application.GetRealHeight(60),
+                Gravity = Gravity.CenterHorizontal,
+                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+                Text = $"{Language.StringByID(R.MyInternationalizationString.Current)} {device.GetDeviceStatu()}"
+            };
+            itemView.AddChidren(StatuBtn);
+
+
+            OpenOrUpBtn = new Button
+            {
+                X = Application.GetRealWidth(253),
+                Y = Application.GetRealHeight(994),
+                Width = Application.GetMinRealAverage(81),
+                Height = Application.GetMinRealAverage(81)
+            };
+            itemView.AddChidren(OpenOrUpBtn);
+            OpenOrUpBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                (device.CommonDevice as ZigBee.Device.Rollershade).CurtainUpDownStopControl(0);
+            };
+
+            StopBtn = new Button
+            {
+                X = Application.GetRealWidth(441),
+                Y=Application.GetRealHeight(994),
+                Width = Application.GetMinRealAverage(81),
+                Height = Application.GetMinRealAverage(81),
+                SelectedImagePath = "RollerShade/StopSelected.png",
+                UnSelectedImagePath = "RollerShade/Stop.png",
+            };
+            itemView.AddChidren(StopBtn);
+            StopBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                (device.CommonDevice as ZigBee.Device.Rollershade).CurtainUpDownStopControl(2);
+            };
+
+            CloseOrDownBtn = new Button
+            {
+                X = Application.GetRealWidth(631),
+                Y = Application.GetRealHeight(994),
+                Width = Application.GetMinRealAverage(81),
+                Height = Application.GetMinRealAverage(81)
+            };
+            itemView.AddChidren(CloseOrDownBtn);
+            CloseOrDownBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                (device.CommonDevice as ZigBee.Device.Rollershade).CurtainUpDownStopControl(1);
+            };
+
+            SetRollerShadeIcon((device.CommonDevice as Rollershade).WcdType);
+            if ((device.CommonDevice as Rollershade).WcdType == -1)
             {
                 CommonPage.Loading.Start();
                 new System.Threading.Thread(() =>
                 {
-                    ZigBee.Device.Rollershade.ReadWcdTypeAction(rollerShade, () =>
+                    Rollershade.ReadWcdTypeAction(device.CommonDevice, () =>
                     {
                         Application.RunOnMainThread(() =>
                         {
-                            if (rollerShade.WcdType == 0)
-                            {
-                                downBtn.UnSelectedImagePath = "WindowCovering/RollerShadeDown.png";
-                                downBtn.SelectedImagePath = "WindowCovering/RollerShadeDownSelected.png";
-                                upBtn.UnSelectedImagePath = "WindowCovering/RollerShadeUp.png";
-                                upBtn.SelectedImagePath = "WindowCovering/RollerShadeUpSelected.png";
-                            }
-                            else
-                            {
-                                downBtn.UnSelectedImagePath = "WindowCovering/RollerShadeClose.png";
-                                downBtn.SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png";
-                                upBtn.UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png";
-                                upBtn.SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png";
-                            }
+                            SetRollerShadeIcon((device.CommonDevice as Rollershade).WcdType);
                             CommonPage.Loading.Hide();
                         });
                     });
                 })
                 { IsBackground = true }.Start();
             }
-            else if(rollerShade.WcdType == 0)
+            var roomBG = new Button
             {
-                downBtn.UnSelectedImagePath = "WindowCovering/RollerShadeDown.png";
-                downBtn.SelectedImagePath = "WindowCovering/RollerShadeDownSelected.png";
-                upBtn.UnSelectedImagePath = "WindowCovering/RollerShadeUp.png";
-                upBtn.SelectedImagePath = "WindowCovering/RollerShadeUpSelected.png";
-            }
-            else
+                Y = Application.GetRealHeight(1178 - 50),
+                Height = Application.GetRealHeight(138 + 50),
+                BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor,
+                Radius = (uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius)
+            };
+            itemView.AddChidren(roomBG);
+
+            var roomBG2 = new Button
             {
-                downBtn.UnSelectedImagePath = "WindowCovering/RollerShadeClose.png";
-                downBtn.SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png";
-                upBtn.UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png";
-                upBtn.SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png";
-            }
-            #endregion
+                Y = Application.GetRealHeight(1178 - 50),
+                Height = Application.GetRealHeight(50),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
+            };
+            itemView.AddChidren(roomBG2);
 
+            roomBtn = new Button()
+            {
+                X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                Y = Application.GetRealHeight(1207),
+                Width = Application.GetMinReal(80),
+                Height = Application.GetMinReal(80),
+                UnSelectedImagePath = "Item/Room.png"
+            };
+            itemView.AddChidren(roomBtn);
 
-            BindEvent();
+            roomName = new Button()
+            {
+                X = Application.GetRealWidth(150),
+                Y = Application.GetRealHeight(1224),
+                Width = Application.GetRealWidth(400),
+                Height = Application.GetRealHeight(50),
+                Text = room.Name,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = ZigbeeColor.Current.GXCTextWhiteColor
+            };
+            itemView.AddChidren(roomName);
         }
 
         #endregion
@@ -501,14 +483,14 @@
         /// </summary>
         private void BindEvent()
         {
-            upBtn.MouseUpEventHandler += Up;
-            stopBtn.MouseUpEventHandler += Stop;
-            downBtn.MouseUpEventHandler += Down;
-            SeekBar.ProgressChanged += SeekBar_ProgressChange;
-            collectionBtn.MouseUpEventHandler += Collection;
-            moreBtn.MouseUpEventHandler += More;
-            roomBtn.MouseUpEventHandler += BackToRoomHandler;
-            roomName.MouseUpEventHandler += BackToRoomHandler;
+            //upBtn.MouseUpEventHandler += Up;
+            //stopBtn.MouseUpEventHandler += Stop;
+            //downBtn.MouseUpEventHandler += Down;
+            //SeekBar.ProgressChanged += SeekBar_ProgressChange;
+            //collectionBtn.MouseUpEventHandler += Collection;
+            //moreBtn.MouseUpEventHandler += More;
+            //roomBtn.MouseUpEventHandler += BackToRoomHandler;
+            //roomName.MouseUpEventHandler += BackToRoomHandler;
         }
 
         #endregion
@@ -522,8 +504,8 @@
         /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
         private void SeekBar_ProgressChange(object sender, int mouseEventArgs)
         {
-            seekBarTitle.Text = $"{SeekBar.Progress}%";
-            (device.CommonDevice as ZigBee.Device.Rollershade).WcdGoToTiltValue(SeekBar.Progress);
+            //seekBarTitle.Text = $"{SeekBar.Progress}%";
+            //(device.CommonDevice as ZigBee.Device.Rollershade).WcdGoToTiltValue(SeekBar.Progress);
         }
 
 
@@ -662,6 +644,31 @@
             };
         }
 
+        /// <summary>
+        /// WcdType=4锛氬紑鍚堝笜
+        /// WcdType=0锛氬嵎甯�
+        /// </summary>
+        /// <param name="type"></param>
+        public void SetRollerShadeIcon(int type)
+        {
+            if (type == 0)
+            {
+                OpenOrUpBtn.UnSelectedImagePath = "RollerShade/Up.png";
+                OpenOrUpBtn.SelectedImagePath = "RollerShade/UpSelected.png";
+
+                CloseOrDownBtn.UnSelectedImagePath = "RollerShade/Down.png";
+                CloseOrDownBtn.SelectedImagePath = "RollerShade/DownSelected.png";
+            }
+            else
+            {
+                OpenOrUpBtn.UnSelectedImagePath = "RollerShade/Open.png";
+                OpenOrUpBtn.SelectedImagePath = "RollerShade/OpenSelected.png";
+
+                CloseOrDownBtn.UnSelectedImagePath = "RollerShade/Close.png";
+                CloseOrDownBtn.SelectedImagePath = "RollerShade/CloseSelected.png";
+            }
+        }
+
         #endregion
 
         #region 鈼� 鏀惰棌鍒颁富椤礯______________________
diff --git a/ZigbeeApp/Shared/Phone/Device/Light/AirSwitchControl.cs b/ZigbeeApp/Shared/Phone/Device/Light/AirSwitchControl.cs
new file mode 100755
index 0000000..5e8a5be
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Device/Light/AirSwitchControl.cs
@@ -0,0 +1,532 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Shared.Common;
+using Shared.Phone.Device.CommonForm;
+using Shared.Phone.UserView;
+using ZigBee.Device;
+namespace Shared.Phone.Device.Light
+{
+    /// <summary>
+    /// 鐏厜鎺у埗鐣岄潰
+    /// </summary>
+    public class AirSwitchControl : FrameLayout, ZigBee.Common.IStatus
+    {
+        #region 鈼� 鍙橀噺__________________________
+        /// <summary>
+        /// 寮�鍏�
+        /// </summary>
+        private Button switchBtn;
+        /// <summary>
+        /// The action.
+        /// </summary>
+        public Action action;
+
+        /// <summary>
+        /// The light image.
+        /// </summary>
+        private Button deviceIMG;
+        /// <summary>
+        /// 鏀惰棌鎸夐挳
+        /// </summary>
+        private Button collectionBtn;
+        /// <summary>
+        /// 浼犺繃鏉ョ殑璁惧
+        /// </summary>
+        private DeviceUI device;
+        /// <summary>
+        /// 浼犺繃鏉ョ殑鎴块棿
+        /// </summary>
+        private Shared.Common.Room room;
+
+        /// <summary>
+        /// 鎴块棿
+        /// </summary>
+        private Button roomBtn;
+        /// <summary>
+        /// 鎴块棿鍚�
+        /// </summary>
+        private Button roomName;
+        /// <summary>
+        /// 缃戝叧
+        /// </summary>
+        private ZbGateway zbGateway = null;
+        /// <summary>
+        /// 鏄惁鍙戦�佹帶鍒跺懡浠ゆ垚鍔熶簡
+        /// </summary>
+        private bool sendedControlCommand = false;
+
+        /// <summary>
+        /// bodyFrameLayout
+        /// </summary>
+        private FrameLayout bodyFrameLayout;
+
+        private Button StatuBtn;
+
+        #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>
+        /// <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)
+        {
+            if (typeTag == "DeviceStatusReport")
+            {
+                Application.RunOnMainThread(() =>
+                {
+                    try
+                    {
+                        var deviceUI = device;
+                        //璁惧涓虹┖
+                        if (deviceUI.CommonDevice == null)
+                        {
+                            return;
+                        }
+                        //鏄惁涓哄綋鍓嶈澶�
+                        if (deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint || deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr)
+                        {
+                            return;
+                        }
+                        if (deviceUI.CommonDevice.Type == DeviceType.AirSwitch)
+                        {
+                            if (common.DeviceStatusReport.CluterID == 6)
+                            {
+                                var light = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
+                                light.DeviceStatusReport = common.DeviceStatusReport;
+                                //璁板綍銆佹洿鏂扮姸鎬�
+                                if (light.DeviceStatusReport.AttriBute == null || light.DeviceStatusReport.AttriBute.Count == 0)
+                                {
+                                    return;
+                                }
+                                light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData;
+                                deviceIMG.IsSelected = switchBtn.IsSelected = light.OnOffStatus == 1;
+                                StatuBtn.Text = CommonFormResouce.GetSwitchStatu(deviceIMG.IsSelected);
+                                light.LastDateTime = DateTime.Now;
+                            }
+                        }
+                    }
+                    catch (Exception ex)
+                    {
+                        System.Console.WriteLine($"Error:{ex.Message}");
+                    }
+                });
+            }
+            else if (typeTag == "OnlineStatusChange")
+            {
+
+            }
+        }
+        #endregion
+
+        #region 鈼� 鍒濆鍖朹____________________
+        /// <summary>
+        /// 閲嶅啓绉婚櫎鏂规硶
+        /// </summary>
+        public override void RemoveFromParent()
+        {
+            ZbGateway.StatusList.Remove(this);
+            action();
+            action = null;
+            RemoveUpdateControlDeviceStatuAction();
+            base.RemoveFromParent();
+        }
+
+        /// <summary>
+        /// 鏋勯�犳柟娉�
+        /// </summary>
+        public AirSwitchControl()
+        {
+            BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor;
+            ZbGateway.StatusList.Add(this);
+        }
+        /// <summary>
+        /// 鏄剧ず鐣岄潰
+        /// </summary>
+        /// <param name="dev">Device.</param>
+        /// <param name="room">Room.</param>
+        public void Show(DeviceUI dev, Shared.Common.Room room)
+        {
+            device = dev;
+            zbGateway = this.device.CommonDevice.Gateway;
+            this.room = room;
+
+            AddTop();
+
+            AddBodyView(device);
+
+
+            var light = dev.CommonDevice as ZigBee.Device.AirSwitch;
+            //琛ヤ笂闈炶繙绋�
+            if (light.Gateway == null)
+            {
+                return;
+            }
+            if (light.Gateway.IsVirtual)
+            {
+                UserHomeView.ReadStatus(light, () =>
+                {
+                    light.ReadOnOffStatus();
+                    light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+                });
+            }
+            else
+            {
+                //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵��
+                if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds)
+                {
+                    light.ReadOnOffStatus();
+                    light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+                }
+            }
+
+            var de = Shared.Common.Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
+            if (de == null)
+            {
+                collectionBtn.IsSelected = false;
+            }
+            else
+            {
+                collectionBtn.IsSelected = true;
+            }
+
+
+            BindEvent();
+
+        }
+
+        #endregion
+
+        #region 鈼� Add______________________________
+
+        /// <summary>
+        /// AddTop
+        /// </summary>
+        public void AddTop()
+        {
+            var top = new TopFrameLayout();
+            AddChidren(top);
+            top.InitTopview();
+            top.backButton.MouseUpEventHandler += (sender, e) =>
+            {
+                RemoveFromParent();
+            };
+
+            var sharedBtn = new Button
+            {
+                X = Application.GetRealWidth(850),
+                Width = Application.GetMinReal(69),
+                Height = Application.GetMinReal(69),
+                Gravity = Gravity.CenterVertical,
+                UnSelectedImagePath = "Item/Shared.png"
+            };
+            top.topView.AddChidren(sharedBtn);
+
+            var moreBtn = new Button
+            {
+                X = Application.GetRealWidth(953),
+                Width = Application.GetMinReal(69),
+                Height = Application.GetMinReal(69),
+                Gravity = Gravity.CenterVertical,
+                UnSelectedImagePath = "Item/More.png"
+            };
+            top.topView.AddChidren(moreBtn);
+
+            moreBtn.MouseUpEventHandler += More;
+
+        }
+        /// <summary>
+        /// AddBodyView
+        /// </summary>
+        public void AddBodyView(DeviceUI device)
+        {
+            bodyFrameLayout = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(184),
+                Height = Application.GetRealHeight(1737),
+                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
+            };
+            AddChidren(bodyFrameLayout);
+
+            var itemView = new FrameLayout()
+            {
+                Y = Application.GetRealHeight(115),
+                Width = Application.GetRealWidth(965),
+                Height = Application.GetRealHeight(1316),
+                Radius = (uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius),
+                Gravity = Gravity.CenterHorizontal,
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+            };
+            bodyFrameLayout.AddChidren(itemView);
+
+            collectionBtn = new Button()
+            {
+                X = Application.GetRealWidth(850),
+                Y = Application.GetRealHeight(46),
+                Width = Application.GetMinReal(69),
+                Height = Application.GetMinReal(69),
+                UnSelectedImagePath = "Item/Collection.png",
+                SelectedImagePath = "Item/CollectionSelected.png"
+            };
+            itemView.AddChidren(collectionBtn);
+
+            var deviceNameBtn = new Button()
+            {
+                Y = Application.GetRealHeight(46),
+                Width = Application.GetRealWidth(500),
+                Height = Application.GetRealHeight(60),
+                Gravity = Gravity.CenterHorizontal,
+                Text = device.CommonDevice.DeviceEpointName,
+                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+                TextSize = 15
+            };
+            itemView.AddChidren(deviceNameBtn);
+
+            StatuBtn = new Button
+            {
+                Y = Application.GetRealHeight(118),
+                Width = Application.GetRealWidth(600),
+                Height = Application.GetRealHeight(60),
+                Gravity = Gravity.CenterHorizontal,
+                TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+                Text = CommonFormResouce.GetSwitchStatu(device.CommonDevice.IsOnline == 1)
+            };
+            itemView.AddChidren(StatuBtn);
+
+            deviceIMG = new Button()
+            {
+                Y = Application.GetRealHeight(389),
+                Width = Application.GetMinRealAverage(377),
+                Height = Application.GetMinRealAverage(435),
+                Gravity = Gravity.CenterHorizontal,
+                UnSelectedImagePath = "Light/DeskLamp.png",
+                SelectedImagePath = "Light/DeskLampSelected.png",
+                IsSelected = (device.CommonDevice as ZigBee.Device.AirSwitch).OnOffStatus == 1
+            };
+            itemView.AddChidren(deviceIMG);
+
+            switchBtn = new Button()
+            {
+                Y = Application.GetRealHeight(996),
+                Width = Application.GetMinRealAverage(81),
+                Height = Application.GetMinRealAverage(81),
+                Gravity = Gravity.CenterHorizontal,
+                UnSelectedImagePath = "Item/Switch.png",
+                SelectedImagePath = "Item/SwitchSelected.png",
+                IsSelected = (device.CommonDevice as ZigBee.Device.AirSwitch).OnOffStatus == 1
+            };
+            itemView.AddChidren(switchBtn);
+
+            var roomBG = new Button
+            {
+                Y = Application.GetRealHeight(1178 - 50),
+                Height = Application.GetRealHeight(138 + 50),
+                BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor,
+                Radius = (uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius)
+            };
+            itemView.AddChidren(roomBG);
+
+            var roomBG2 = new Button
+            {
+                Y = Application.GetRealHeight(1178 - 50),
+                Height = Application.GetRealHeight(50),
+                BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor,
+            };
+            itemView.AddChidren(roomBG2);
+
+            roomBtn = new Button()
+            {
+                X = Application.GetRealWidth(CommonFormResouce.X_Left),
+                Y = Application.GetRealHeight(1207),
+                Width = Application.GetMinReal(80),
+                Height = Application.GetMinReal(80),
+                UnSelectedImagePath = "Item/Room.png"
+            };
+            itemView.AddChidren(roomBtn);
+
+            roomName = new Button()
+            {
+                X = Application.GetRealWidth(150),
+                Y = Application.GetRealHeight(1224),
+                Width = Application.GetRealWidth(400),
+                Height = Application.GetRealHeight(50),
+                Text = room.Name,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = ZigbeeColor.Current.GXCTextWhiteColor
+            };
+            itemView.AddChidren(roomName);
+        }
+
+        #endregion
+
+        #region 鈼� 缁戝畾鎸夐挳_______________________
+        /// <summary>
+        /// 缁戝畾鎸夐挳鐨勪簨浠�
+        /// </summary>
+        private void BindEvent()
+        {
+            switchBtn.MouseUpEventHandler += Switch;
+            deviceIMG.MouseUpEventHandler += Switch;
+            collectionBtn.MouseUpEventHandler += Collection;
+        }
+
+        #endregion
+
+        #region 鈼� 寮�鍏砡_________________________
+
+        /// <summary>
+        /// 寮�鍏宠缃�
+        /// </summary>
+        /// <param name="sender">Sender.</param>
+        /// <param name="eventArgs">Event arguments.</param>
+        private void Switch(object sender, MouseEventArgs eventArgs)
+        {
+            sendedControlCommand = false;
+            zbGateway.ReportAction += UpdateDeviceControllStatu;
+            switchBtn.IsSelected = !switchBtn.IsSelected;
+            deviceIMG.IsSelected = !deviceIMG.IsSelected;
+            StatuBtn.Text = CommonFormResouce.GetSwitchStatu(deviceIMG.IsSelected);
+            if (switchBtn.IsSelected == true)
+            {
+                (device.CommonDevice as ZigBee.Device.AirSwitch).SwitchControl(1);
+            }
+            else
+            {
+                (device.CommonDevice as ZigBee.Device.AirSwitch).SwitchControl(0);
+            }
+            //鎺у埗寤舵椂鍥炶皟
+            DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
+            {
+                if (Parent == null)
+                {
+                    return;
+                }
+                RemoveUpdateControlDeviceStatuAction();
+                if (sendedControlCommand == false)
+                {
+                    DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+                }
+            });
+        }
+
+
+
+        #endregion
+
+        #region 鈼� 璁剧疆__________________________
+        /// <summary>
+        /// 鏇村璁剧疆
+        /// </summary>
+        /// <param name="sender">Sender.</param>
+        /// <param name="e">E.</param>
+        private void More(object sender, MouseEventArgs e)
+        {
+            var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
+            UserView.HomePage.Instance.AddChidren(detailInfo);
+            UserView.HomePage.Instance.PageIndex += 1;
+            detailInfo.Show(device, room);
+            detailInfo.action = () =>
+            {
+                Show(device, room);
+            };
+        }
+
+        #endregion
+
+        #region 鈼� 鏀惰棌__________________________
+        /// <summary>
+        /// 鏀惰棌鍒颁富椤�
+        /// </summary>
+        /// <param name="sender">Sender.</param>
+        /// <param name="e">E.</param>
+        private void Collection(object sender, MouseEventArgs e)
+        {
+            //collection
+            if ((sender as Button).IsSelected)
+            {
+                Shared.Common.Room.CurrentRoom.GetLoveRoom().DeleteDevice(device.FileName);
+                (sender as Button).IsSelected = false;
+            }
+            else
+            {
+                Shared.Common.Room.CurrentRoom.GetLoveRoom().AddDevice(device.FileName);
+                (sender as Button).IsSelected = true;
+            }
+        }
+
+        #endregion
+
+        #region 鈼� 璁惧鎺у埗鐘舵�乢____________________
+
+        /// <summary>
+        /// 鏄剧ず璁惧鎺у埗鐘舵��
+        /// </summary>
+        /// <param name="command">Command.</param>
+        /// <param name="objValue">Object value.</param>
+        private void UpdateDeviceControllStatu(string command, object objValue)
+        {
+            if (Parent == null)
+            {
+                return;
+            }
+            if (command != "DeviceDefaultAck" || objValue == null)
+            {
+                return;
+            }
+            var tempDevice = (CommonDevice)objValue;
+            if (tempDevice.DeviceEpoint != this.device.CommonDevice.DeviceEpoint || tempDevice.DeviceAddr != this.device.CommonDevice.DeviceAddr)
+            {
+                //涓嶆槸褰撳墠璁惧鐨勬帹閫侊紝鍒欎笉澶勭悊
+                return;
+            }
+            //鏍囪宸茬粡鍙戦�佹帶鍒跺懡浠ゅ埌缃戝叧
+            sendedControlCommand = true;
+            //DeviceUI.ShowStatuTip(R.MyInternationalizationString.Success);
+        }
+
+        /// <summary>
+        /// 绉婚櫎鏇存柊鎺у埗璁惧鐨刟ction
+        /// </summary>
+        private void RemoveUpdateControlDeviceStatuAction()
+        {
+            //绉婚櫎action
+            if (zbGateway != null)
+            {
+                zbGateway.ReportAction -= UpdateDeviceControllStatu;
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/Device/Light/DimmableLightControl.cs b/ZigbeeApp/Shared/Phone/Device/Light/DimmableLightControl.cs
index 5dd0ba7..4fb4f82 100755
--- a/ZigbeeApp/Shared/Phone/Device/Light/DimmableLightControl.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Light/DimmableLightControl.cs
@@ -120,10 +120,10 @@
                         }
                         if (deviceUI.CommonDevice.Type == DeviceType.DimmableLight)
                         {
-                            if (common.DeviceStatusReport.CluterID == 6)
+                            if ((common as DimmableLight).DeviceStatusReport.CluterID == 6)
                             {
                                 dimmableLight = deviceUI.CommonDevice as DimmableLight;
-                                dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
+                                dimmableLight.DeviceStatusReport = (common as DimmableLight).DeviceStatusReport;
                                 //璁板綍銆佹洿鏂扮姸鎬�
                                 if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0)
                                 {
@@ -146,10 +146,10 @@
                                 dimmableLight.LastDateTime = DateTime.Now;
                             }
                             //浜害
-                            if (common.DeviceStatusReport.CluterID == 8)
+                            if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 8)
                             {
                                 dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
-                                dimmableLight.DeviceStatusReport = common.DeviceStatusReport;
+                                dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport;
                                 var attriButeList = dimmableLight.DeviceStatusReport.AttriBute;
                                 if (attriButeList == null || attriButeList.Count == 0)
                                 {
@@ -191,8 +191,8 @@
         {
             ZbGateway.StatusList.Remove(this);
             UserView.HomePage.Instance.ScrollEnabled = true;
-            action();
-            action = null;
+            //action();
+            //action = null;
             base.RemoveFromParent();
         }
 
diff --git a/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs b/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs
index 946630a..ae5cd7d 100755
--- a/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Light/LightControl.cs
@@ -157,8 +157,8 @@
         public override void RemoveFromParent()
         {
             ZbGateway.StatusList.Remove(this);
-            action();
-            action = null;
+            //action();
+            //action = null;
             RemoveUpdateControlDeviceStatuAction();
             base.RemoveFromParent();
         }
diff --git a/ZigbeeApp/Shared/Phone/Device/Light/OnOffControl.cs b/ZigbeeApp/Shared/Phone/Device/Light/OnOffControl.cs
new file mode 100755
index 0000000..2c82b6e
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Device/Light/OnOffControl.cs
@@ -0,0 +1,13 @@
+锘縰sing System;
+namespace Shared.Phone.Device.Light
+{
+    /// <summary>
+    /// 寮�鍏�
+    /// </summary>
+    public class OnOffControl
+    {
+        public OnOffControl()
+        {
+        }
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/Device/Light/PlugControl.cs b/ZigbeeApp/Shared/Phone/Device/Light/PlugControl.cs
new file mode 100755
index 0000000..04fa9fa
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Device/Light/PlugControl.cs
@@ -0,0 +1,13 @@
+锘縰sing System;
+namespace Shared.Phone.Device.Light
+{
+    /// <summary>
+    /// 鎻掑骇
+    /// </summary>
+    public class PlugControl
+    {
+        public PlugControl()
+        {
+        }
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs
index df2d07c..1b5ddfc 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs
@@ -1,4 +1,4 @@
-锘縰sing System;
+锘�       using System;
 using System.Collections.Generic;
 using Shared;
 using Shared.Common;
@@ -14,7 +14,7 @@
         {
             Tag = "Logic";
         }
-        public void Show()
+        public void Show()                                                                                                                                                                                                                                                                                                                    
         {
 
             #region  鏈�涓婇潰鐨勫竷灞�浠g爜
@@ -31,7 +31,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.selection,
@@ -129,8 +129,8 @@
             timeiconBtn.MouseUpEventHandler += timeclick;
             timerow.MouseUpEventHandler += timeclick;
 
-            #endregion
-
+            #endregion                
+                                                                                                                                              
             #region   ----璁惧鐘舵�佹潯浠�----
             var deviceframelayout = new FrameLayout
             {
@@ -183,11 +183,6 @@
 
             EventHandler<MouseEventArgs> devicestateclick = (sender, e) =>
             {
-                Common.Logic.LogicDviceList.Clear();
-                if (Common.Logic.LogicDviceList.Count == 0)
-                {
-                    Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
-                }
                 var deviceStateCondition = new DeviceStateCondition();
                 UserView.HomePage.Instance.AddChidren(deviceStateCondition);
                 UserView.HomePage.Instance.PageIndex += 1;
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/AddScenePage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/AddScenePage.cs
index 5f7b17b..1c4c759 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/AddScenePage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/AddScenePage.cs
@@ -43,7 +43,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(160),
-                Width = Application.GetRealWidth(300),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.addscene,
@@ -169,49 +169,87 @@
 
             };
 
-            ///閫変腑妤煎眰
-            foolrname.MouseUpEventHandler += (sender, e) =>
+         
+
+            ///妤煎眰鐐瑰嚮浜嬩欢
+            EventHandler<MouseEventArgs> foorlclick = (sender, e) =>
             {
+
                 var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
                 this.AddChidren(flMain);
                 flMain.MouseUpEventHandler += (sender2, e2) =>
                 {
                     flMain.RemoveFromParent();
                 };
+                var foolrbjicon = new FrameLayout
+                {
+
+                    Width = Application.GetRealWidth(450),
+                    Height = Application.GetRealHeight(780),
+                    X = Application.GetRealWidth(1080 - 468 - 35),
+                    Y = Application.GetRealHeight(184),
+                    BackgroundImagePath = "Item/SelectFloor_Right.png",
+                };
+                flMain.AddChidren(foolrbjicon);
+
+                var btnfoolrtext = new Button
+                {
+                    Width = Application.GetRealWidth(450),
+                    Height = Application.GetRealHeight(150),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    X = Application.GetRealWidth(80),
+                    TextID = MyInternationalizationString.selecfoolr,
+                };
+                foolrbjicon.AddChidren(btnfoolrtext);
+
                 var foolrbj = new VerticalScrolViewLayout
                 {
 
-                    Width = Application.GetRealWidth(400),
-                    Height = Application.GetRealHeight(600),
-                    X = Application.GetRealWidth(1080 - 400 - 60),
-                    Y = Application.GetRealHeight(184 + 50),
-                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
-                    Radius = (uint)Application.GetRealHeight(30),
+                    Width = Application.GetRealWidth(450),
+                    Height = foolrbjicon.Height - btnfoolrtext.Height,
+                    X = Application.GetRealWidth(80),
+                    Y = btnfoolrtext.Bottom,
                 };
-                flMain.AddChidren(foolrbj);
-                ///榛樿璋冭瘯
+                foolrbjicon.AddChidren(foolrbj);
 
                 foreach (var foolr in Config.Instance.Home.FloorDics)
                 {
-                    var foolrRowLayout = new FrameLayout
+                    var foolrRowLayout = new RowLayout
                     {
                         Height = Application.GetRealHeight(150),
+                        LineColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
                     };
                     foolrbj.AddChidren(foolrRowLayout);
+
+                    var btnfoolricon = new Button
+                    {
+                        Width = Application.GetRealWidth(81),
+                        Height = Application.GetRealHeight(81),
+                        UnSelectedImagePath = "Floor/Floor.png",
+                        Gravity = Gravity.CenterVertical,
+                    };
+                    foolrRowLayout.AddChidren(btnfoolricon);
+
 
                     var btnfoolrname = new Button
                     {
                         Width = Application.GetRealWidth(250),
-                        Height = Application.GetRealHeight(160),
+                        Height = Application.GetRealHeight(150),
                         Text = foolr.Value,
-                        TextAlignment = TextAlignment.Center,
-                        TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                        TextAlignment = TextAlignment.CenterLeft,
+                        TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                         Tag = foolr.Key,
+                        X = btnfoolricon.Right + Application.GetRealWidth(12),
                     };
                     foolrRowLayout.AddChidren(btnfoolrname);
+                    if (foolrname.Text == foolr.Value)
+                    {
+                        btnfoolricon.UnSelectedImagePath = "Floor/FloorSelected.png";
+                        btnfoolrname.TextColor = ZigbeeColor.Current.LogicTextBlackColor;
+                    }
 
-
-                    EventHandler<MouseEventArgs> foolrclick = (sender13, e13) =>
+                    EventHandler<MouseEventArgs> foolrnameclick = (sender13, e13) =>
                     {
                         roomhorizontalScrol.RemoveAll();
                         foolrname.Text = btnfoolrname.Text;
@@ -219,13 +257,17 @@
                         flMain.RemoveFromParent();
                         var list = Send.GetRoomList(btnfoolrname.Tag.ToString());
                         AllRoomView(list);
+
                     };
-                    foolrRowLayout.MouseUpEventHandler += foolrclick;
-                    btnfoolrname.MouseUpEventHandler += foolrclick;
+                    foolrRowLayout.MouseUpEventHandler += foolrnameclick;
+                    btnfoolrname.MouseUpEventHandler += foolrnameclick;
 
 
                 }
+
             };
+            foolrname.MouseUpEventHandler += foorlclick;
+            dropdown.MouseUpEventHandler += foorlclick;
 
             ///绗竴娆¤繘鏉�
             var roomlists = new List<Common.Room>();
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/CustomText.cs b/ZigbeeApp/Shared/Phone/Device/Logic/CustomText.cs
index 2d8c58c..35e6f82 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/CustomText.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/CustomText.cs
@@ -26,7 +26,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.custompush,
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Cycle.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Cycle.cs
index f257172..4235535 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/Cycle.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/Cycle.cs
@@ -35,7 +35,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.cycle,
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/CyclicCycle.cs b/ZigbeeApp/Shared/Phone/Device/Logic/CyclicCycle.cs
index 547865c..c19809a 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/CyclicCycle.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/CyclicCycle.cs
@@ -34,7 +34,7 @@
             var titleName = new Button
             {
                 TextID = MyInternationalizationString.cycle,
-                TextSize = 17,
+                TextSize = 16,
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(150),
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DelayTime.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DelayTime.cs
index 26cc142..9d9c77d 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DelayTime.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DelayTime.cs
@@ -196,7 +196,10 @@
             ///瀹屾垚鐐瑰嚮浜嬩欢
             btnsave.MouseUpEventHandler += (sender, e) =>
             {
-                
+                if (timevalue == 0)
+                {
+                    return;
+                }
                 if (selectde != ""|| timevalue==5)
                 {
                     Dictionary<string, object> actionsInfo = new Dictionary<string, object>();
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DeviceStateCondition.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DeviceStateCondition.cs
index 59e67bb..e88eec2 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DeviceStateCondition.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DeviceStateCondition.cs
@@ -23,7 +23,6 @@
         FrameLayout clickframeLayout = new FrameLayout();
         Button clickbutton = new Button();
         Button clicktextcolcrbutton = new Button();
-
         public void Show()
         {
 
@@ -44,7 +43,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(160),
-                Width = Application.GetRealWidth(300),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.devicestate,
@@ -145,7 +144,7 @@
 
             middle = new VerticalScrolViewLayout();
             middle.Y = devicetypehorizontalScrol.Bottom + Application.GetRealHeight(40);
-            middle.Height = Application.GetRealHeight(1920) - devicetypehorizontalScrol.Y;
+            middle.Height =Application.GetRealHeight(1920-40) - devicetypehorizontalScrol.Bottom;
             middle.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
             middle.X = Application.GetRealWidth(58);
             middle.Radius = (uint)Application.GetRealHeight(50);
@@ -170,47 +169,83 @@
                 {
                     flMain.RemoveFromParent();
                 };
+                var foolrbjicon = new FrameLayout
+                {
+
+                    Width = Application.GetRealWidth(450),
+                    Height = Application.GetRealHeight(780),
+                    X = Application.GetRealWidth(1080 - 468 - 35),
+                    Y = Application.GetRealHeight(184),
+                    BackgroundImagePath= "Item/SelectFloor_Right.png",
+                };
+                flMain.AddChidren(foolrbjicon);
+
+                var btnfoolrtext = new Button
+                {
+                    Width = Application.GetRealWidth(450),
+                    Height = Application.GetRealHeight(150),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    X = Application.GetRealWidth(80),
+                    TextID = MyInternationalizationString.selecfoolr,
+                };
+                foolrbjicon.AddChidren(btnfoolrtext);
+
                 var foolrbj = new VerticalScrolViewLayout
                 {
 
-                    Width = Application.GetRealWidth(400),
-                    Height = Application.GetRealHeight(600),
-                    X = Application.GetRealWidth(1080 - 400 - 60),
-                    Y = Application.GetRealHeight(184 + 50),
-                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
-                    Radius = (uint)Application.GetRealHeight(30),
+                    Width = Application.GetRealWidth(450),
+                    Height =foolrbjicon.Height - btnfoolrtext.Height,
+                    X = Application.GetRealWidth(80),
+                    Y = btnfoolrtext.Bottom,
                 };
-                flMain.AddChidren(foolrbj);
+                foolrbjicon.AddChidren(foolrbj);
+
                 foreach (var foolr in Config.Instance.Home.FloorDics)
                 {
-
-                    var foolrRowLayout = new FrameLayout
+                    var foolrRowLayout = new RowLayout
                     {
                         Height = Application.GetRealHeight(150),
+                        LineColor= ZigbeeColor.Current.LogicMiddleBackgroundColor,
                     };
                     foolrbj.AddChidren(foolrRowLayout);
+
+                    var btnfoolricon = new Button
+                    {
+                        Width = Application.GetRealWidth(81),
+                        Height = Application.GetRealHeight(81),
+                        UnSelectedImagePath = "Floor/Floor.png",
+                        Gravity=Gravity.CenterVertical,
+                    };
+                    foolrRowLayout.AddChidren(btnfoolricon);
+
 
                     var btnfoolrname = new Button
                     {
                         Width = Application.GetRealWidth(250),
-                        Height = Application.GetRealHeight(160),
+                        Height = Application.GetRealHeight(150),
                         Text = foolr.Value,
-                        TextAlignment = TextAlignment.Center,
-                        TextColor = ZigbeeColor.Current.LogicTextBlackColor,
-                        //SelectedTextColor=0xfffc744b,
+                        TextAlignment = TextAlignment.CenterLeft,
+                        TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                         Tag = foolr.Key,
+                        X= btnfoolricon.Right+Application.GetRealWidth(12),
                     };
                     foolrRowLayout.AddChidren(btnfoolrname);
-
+                    if (foolrname.Text == foolr.Value) {
+                        btnfoolricon.UnSelectedImagePath = "Floor/FloorSelected.png";
+                        btnfoolrname.TextColor = ZigbeeColor.Current.LogicTextBlackColor;
+                    }
 
                     EventHandler<MouseEventArgs> foolrnameclick = (sender13, e13) =>
                     {
+
                         roomhorizontalScrol.RemoveAll();
                         devicetypehorizontalScrol.RemoveAll();
                         middle.RemoveAll();
                         foolrname.Text = btnfoolrname.Text;
                         flMain.RemoveFromParent();
                         var list = Send.GetRoomList(btnfoolrname.Tag.ToString());
+                   
                         AllRoomView(list, deviceTypeList, roomhorizontalScrol, devicetypehorizontalScrol);
                     };
                     foolrRowLayout.MouseUpEventHandler += foolrnameclick;
@@ -308,6 +343,7 @@
                         }
                         list.Add(device);
                     }
+                 
                     AllDeviceTypeView(list, devicetypehorizontalScrol);
 
                 }
@@ -337,6 +373,7 @@
                         }
                         list.Add(device);
                     }
+                    
                     AllDeviceTypeView(list, devicetypehorizontalScrol);
 
 
@@ -715,9 +752,9 @@
                 TextID = MyInternationalizationString.security,
                 TextColor = ZigbeeColor.Current.LogicBtnTypeColor,
                 Height = Application.GetRealHeight(140),
-                Width = Application.GetRealWidth(320),
+                Width = Application.GetRealWidth(420),
                 TextAlignment = TextAlignment.Center,
-                X = Btncancel.Right + Application.GetRealWidth(100),
+                X = Btncancel.Right + Application.GetRealWidth(50),
                 TextSize = 16,
                 Text = common.DeviceEpointName,
             };
@@ -729,7 +766,7 @@
                 Height = Application.GetRealHeight(140),
                 Width = Application.GetRealWidth(200),
                 TextAlignment = TextAlignment.CenterRight,
-                X = Btntitle.Right + Application.GetRealWidth(100),
+                X = Btntitle.Right + Application.GetRealWidth(50),
 
             };
             timetype.AddChidren(Btncomplete);
@@ -1370,52 +1407,19 @@
                     break;
                 case DeviceType.DoorLock:
                     {
-                        #region  ------
-                        var doorlockifonlist = Send.ReadDoorLockIfon("ccccccfffe300347");
-                        //var list = Send.ReadDoorLockIfon(common.DeviceAddr);
-                        var pra = new UserCenter.MemberListInfoPra();
-                        string result = await UserCenter.UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
-                        var listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UserCenter.MemberInfoRes>>(result);
-                        Send.UserList.Clear();
-                        for (int i = 0; i < listInfo.Count; i++)
-                        {
-                            var membership = new Send.MembershipIfon();
-                            var membershipifon = listInfo[i];
-                            for (int j = 0; j < doorlockifonlist.Count; j++)
-                            {
-                                ///鏌ユ壘鎴愬憳浠ュ強鎴愬憳闂ㄩ攣瑙﹀彂婧�(1鎸夐敭/3鍗�/15鎸囩汗)
-                                if (doorlockifonlist[j].CloudAccountId == membershipifon.SubAccountDistributedMark)
-                                {
-                                    membership.UserIdMode.Add(doorlockifonlist[j].UserIdMode);
-                                    membership.MembershipName = membershipifon.UserName;
-                                    membership.MembershipId = membershipifon.SubAccountDistributedMark;
 
-                                }
-
-                            }
-                            if (membership.UserIdMode.Count != 0)
-                            {
-                                ///杩囨护鎺夐噸澶嶆暟鎹紱
-                                var str = Send.UserList.Find((c) => { return c.MembershipId == membership.MembershipId; });
-                                if (str == null)
-                                {
-                                    Send.UserList.Add(membership);
-                                }
-                            }
-
-                        }
-                        #endregion
 
                         var memberList = new MemberList();
                         UserView.HomePage.Instance.AddChidren(memberList);
                         UserView.HomePage.Instance.PageIndex += 1;
                         MemberList.action += () => { flMain.RemoveFromParent(); };
+                        MemberList.edit = false;
                         memberList.Show(common);
                     }
                     break;
-
                 case DeviceType.TemperatureSensor:
                     {
+                        string current = Language.StringByID(MyInternationalizationString.current);
                         devicefra.Y = Application.GetRealHeight(1920 - 140 - 160 * 2 - 20 - 50);
                         devicefra.Height = Application.GetRealHeight(140 + 160 * 2 + 20 + 50);
                         var temperatureSensor = common as TemperatureSensor;
@@ -1450,12 +1454,12 @@
                             {
                                 dictionary(deviceConditionsInfo, "AttriButeData1", horizontalSeekBarVol.Progress.ToString());
 
-                                Btntemperaturevalue.Text = "褰撳墠>" + horizontalSeekBarVol.Progress.ToString() + "鈩�";
+                                Btntemperaturevalue.Text = current + ">" + horizontalSeekBarVol.Progress.ToString() + "鈩�";
 
                             }
                             else
                             {
-                                Btntemperaturevalue.Text = "褰撳墠<" + horizontalSeekBarVol.Progress.ToString() + "%";
+                                Btntemperaturevalue.Text = current + "<" + horizontalSeekBarVol.Progress.ToString() + "%";
                                 dictionary(deviceConditionsInfo, "AttriButeData1", horizontalSeekBarVol.Progress.ToString());//娓╁害鍊�
                             }
                         };
@@ -1469,12 +1473,12 @@
                             dictionary(deviceConditionsInfo, "Range", "0");//0澶т簬AttriButeData1鏃惰Е鍙戝姩浣�
                             dictionary(deviceConditionsInfo, "AttriButeData1", "0");
                             dictionary(deviceConditionsInfo, "AttriButeData2", "0");
-                            Btntemperaturevalue.Text = "褰撳墠>0鈩�";
+                            Btntemperaturevalue.Text = current + ">0鈩�";
 
                         }
                         else
                         {
-                            Btntemperaturevalue.Text = "褰撳墠<0%";
+                            Btntemperaturevalue.Text = current + "<0%";
                             dictionary(deviceConditionsInfo, "Cluster_ID", "1029");
                             dictionary(deviceConditionsInfo, "AttriButeId", "0");
                             dictionary(deviceConditionsInfo, "Range", "2");//2灏忎簬AttriButeData1鏃惰Е鍙戝姩浣�
@@ -1488,12 +1492,12 @@
                             if (temperatureSensor.SensorDiv == 1)
                             {
 
-                                Btntemperaturevalue.Text = "褰撳墠>" + devices["AttriButeData1"] + "鈩�";
+                                Btntemperaturevalue.Text = current + ">" + devices["AttriButeData1"] + "鈩�";
 
                             }
                             else
                             {
-                                Btntemperaturevalue.Text = "褰撳墠<" + devices["AttriButeData1"] + "%";
+                                Btntemperaturevalue.Text = current + "<" + devices["AttriButeData1"] + "%";
                             }
                         }
 
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DeviceTarget.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DeviceTarget.cs
index 6d8fc64..b7f601e 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DeviceTarget.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DeviceTarget.cs
@@ -33,7 +33,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.addaction,
@@ -127,11 +127,6 @@
 
             EventHandler<MouseEventArgs> devicestateclick = (sender, e) =>
             {
-                Common.Logic.LogicDviceList.Clear();
-                if (Common.Logic.LogicDviceList.Count == 0)
-                {
-                    Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
-                }
                 var logicDevicePage = new LogicDevicePage();
                 UserView.HomePage.Instance.AddChidren(logicDevicePage);
                 UserView.HomePage.Instance.PageIndex += 1;
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddAction.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddAction.cs
index 139489c..203bd87 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddAction.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddAction.cs
@@ -31,7 +31,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.addaction,
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs
index 577d841..2c95b60 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/AddCondition.cs
@@ -14,7 +14,7 @@
         Button selectedIcon = new Button();
        
         public int conditionsIndex = -1;
-        public void Show()
+        public async void Show()
         {
             #region  鏈�涓婇潰鐨勫竷灞�浠g爜
             var topRowLayout = new RowLayout
@@ -31,11 +31,11 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
-                //TextID = MyInternationalizationString.selection,
-                Text = "閫夋嫨鐢ㄦ埛",
+                TextID = MyInternationalizationString.userlist,
+                //Text = "閫夋嫨鐢ㄦ埛",
             };
             topRowLayout.AddChidren(titleName);
 
@@ -77,28 +77,24 @@
             this.AddChidren(middle);
 
 
-            var userlist = new List<ZigBee.Device.DoorLock.LocaDoorLockObj>();
-            userlist.Clear();
-            ///鍒ゆ柇APP鐧诲綍杩涙潵鐢ㄦ埛韬唤(涓讳汉锛岀鐞嗗憳锛屾垚鍛�)
-            if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3)
+            if (Send.LinkageventLockList.Count == 0)
             {
-                var list = LockIfon.GetUserIfon(LockIfon.UserMemberInfoRes.SubAccountDistributedMark);
-                foreach (var o in list)
-                {
-                    if (userlist.Count != 0)
-                    {
-                        continue;
-                    }
-                    userlist.Add(o);
-                }
+                var allMemberslist = await Send.AllMembers(Send.CurrentDoorLock.DeviceAddr);
+                Send.LinkageventLockList.AddRange(allMemberslist);
             }
-            else
+            UserAllView(middle);
+
+        }
+        /// <summary>
+        /// 鏄剧ず鎵�鏈夌敤鎴�
+        /// </summary>
+        /// <param name="middle"></param>
+        void UserAllView(VerticalScrolViewLayout middle)
+        {
+
+            for (int i = 0; i < Send.LinkageventLockList.Count; i++)
             {
-                userlist = LockIfon.GetUserList();
-            }
-            for (int i = 0; i < userlist.Count; i++)
-            {
-                var user = userlist[i];
+                var user = Send.LinkageventLockList[i];
                 var userFramelayout = new FrameLayout
                 {
                     Height = Application.GetRealHeight(160),
@@ -118,12 +114,12 @@
 
                 var usernameBtn = new Button
                 {
-                    Text = user.UserName,
+                    Text = user.MembershipName,
                     TextAlignment = TextAlignment.CenterLeft,
                     TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                     Width = Application.GetRealWidth(600),
                     Height = Application.GetRealHeight(130),
-                    Tag = userlist[i].ConnectedAccount
+                    Tag = Send.LinkageventLockList[i],
                 };
                 userRow.AddChidren(usernameBtn);
 
@@ -140,8 +136,7 @@
 
                 EventHandler<MouseEventArgs> userclick = (sender, e) =>
                 {
-                    var uesrifonlist = LockIfon.GetUserIfon(usernameBtn.Tag.ToString());
-                    SelectedUserID(uesrifonlist, usernameBtn.Text);
+                    SelectedUserID(user.UserIdMode, usernameBtn.Text);
                 };
                 usernameBtn.MouseUpEventHandler += userclick;
                 btntimeback.MouseUpEventHandler += userclick;
@@ -151,13 +146,12 @@
 
             }
         }
-        
         /// <summary>
         /// 閫夋嫨鏌愪釜鐢ㄦ埛
         /// </summary>
-        /// <param name="uesrifonlist">瑙﹀彂婧愬垪琛�</param>
+        /// <param name="membershipIfon">瑙﹀彂婧愬垪琛�</param>
         /// <param name="userName">鐢ㄦ埛鍚嶅瓧</param>
-         void SelectedUserID(List<ZigBee.Device.DoorLock.LocaDoorLockObj> uesrifonlist,string userName) {
+        void SelectedUserID(List<Send.LockMode> membershipIfon, string userName) {
 
            var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
             this.AddChidren(flMain);
@@ -236,13 +230,13 @@
             #endregion
 
             string SelectedLockStatus = "";
-            lockcolorfra1.Y = Application.GetRealHeight(1920 - 140 - (160 * uesrifonlist.Count) - 20 - 50);
-            lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * uesrifonlist.Count) + 20 + 50);
+            lockcolorfra1.Y = Application.GetRealHeight(1920 - 140 - (160 * membershipIfon.Count) - 20 - 50);
+            lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * membershipIfon.Count) + 20 + 50);
             ///瀹氫箟涓や釜鍙橀噺璁板綍閫変腑鐘舵�侊紱
-            int attriButeId = 0, attriButeData2 = 0;
-            for (int j = 0; j < uesrifonlist.Count; j++)
+            string attriButeId ="", attriButeData2 ="";
+            for (int j = 0; j < membershipIfon.Count; j++)
             {
-                var userid = uesrifonlist[j];
+                var userIdmode = membershipIfon[j];
                 var doorlockfra = new FrameLayout
                 {
                     Height = Application.GetRealHeight(160),
@@ -268,19 +262,19 @@
                 };
                 doorlockRow.AddChidren(doorlockBtn);
                 //(0鎸夐敭/3鍗�/15鎸囩汗)
-                switch (userid.UnlockType)
+                switch (userIdmode.OpenMode.ToString())
                 {
-                    case 0:
+                    case "0":
                         {
                             doorlockBtn.Text = Language.StringByID(MyInternationalizationString.lockpassword);
                         }
                         break;
-                    case 3:
+                    case "3":
                         {
                             doorlockBtn.Text = Language.StringByID(MyInternationalizationString.ic);
                         }
                         break;
-                    case 15:
+                    case "15":
                         {
                             doorlockBtn.Text = Language.StringByID(MyInternationalizationString.fingerprint);
                         }
@@ -300,7 +294,7 @@
 
                 };
                 doorlockRow.AddChidren(doorlockSelected);
-                if ((uesrifonlist.Count - 1) == j)
+                if ((membershipIfon.Count - 1) == j)
                 {
                     doorlockRow.LineColor = ZigbeeColor.Current.LogicBackgroundColor;
                 }
@@ -311,8 +305,8 @@
                     selectedIcon = doorlockSelected;
                     doorlockSelected.Visible = true;
                     //doorlockBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
-                    attriButeId = userid.UnlockType;
-                    attriButeData2 = userid.UserID;
+                    attriButeId = userIdmode.OpenMode.ToString();
+                    attriButeData2 = userIdmode.UserId;
                 };
                 doorlockRow.MouseUpEventHandler += doorlockclick;
                 doorlockBtn.MouseUpEventHandler += doorlockclick;
@@ -322,7 +316,7 @@
                 if (conditionsIndex != -1)
                 {
                     var s = Common.Logic.CurrentLogic.Conditions[conditionsIndex];
-                    if (s["AttriButeId"] == userid.UnlockType.ToString() && s["AttriButeData2"] == userid.UserID.ToString())
+                    if (s["AttriButeId"] == userIdmode.OpenMode.ToString() && s["AttriButeData2"] == userIdmode.UserId)
                     {
                         selectedIcon.Visible = false;
                         selectedIcon = doorlockSelected;
@@ -336,18 +330,38 @@
                 var lockConditionsInfo = new Dictionary<string, string>();
                 lockConditionsInfo.Add("Type", "1");
                 lockConditionsInfo.Add("IsValid", "1");
-                lockConditionsInfo.Add("MacAddr", LockIfon.DoorLock.DeviceAddr);
-                lockConditionsInfo.Add("Epoint", LockIfon.DoorLock.DeviceEpoint.ToString());
+                lockConditionsInfo.Add("MacAddr", Send.CurrentDoorLock.DeviceAddr);
+                lockConditionsInfo.Add("Epoint", Send.CurrentDoorLock.DeviceEpoint.ToString());
                 lockConditionsInfo.Add("Cluster_ID", "64529");
-                lockConditionsInfo.Add("AttriButeId", attriButeId.ToString());
-                lockConditionsInfo.Add("AttriButeData2", attriButeData2.ToString());
+                lockConditionsInfo.Add("AttriButeId", attriButeId);
+                lockConditionsInfo.Add("AttriButeData2", attriButeData2);
                 lockConditionsInfo.Add("AttriButeData1", "2");
                 lockConditionsInfo.Add("Range", "0");
                 if (SelectedLockStatus != "")
                 {
                     if (conditionsIndex == -1)
                     {
-                        Common.Logic.CurrentLogic.Conditions.Add(lockConditionsInfo);
+                        bool add = false;
+                        for (int i = 0; i < Common.Logic.CurrentLogic.Conditions.Count; i++)
+                        {
+                            if (Common.Logic.CurrentLogic.Conditions[i]["Type"] == "1")
+                            {
+                                if ((Common.Logic.CurrentLogic.Conditions[i]["MacAddr"] == Send.CurrentDoorLock.DeviceAddr) && (Common.Logic.CurrentLogic.Conditions[i]["Epoint"] == Send.CurrentDoorLock.DeviceEpoint.ToString()))
+                                {
+                                    if (Common.Logic.CurrentLogic.Conditions[i]["AttriButeId"] == lockConditionsInfo["AttriButeId"] && Common.Logic.CurrentLogic.Conditions[i]["AttriButeData2"] == lockConditionsInfo["AttriButeData2"])
+                                    {
+                                        add = true;
+                                        break;
+                                    }
+                                }
+                            }
+                        }
+                        
+                        if (!add)
+                        {
+                            Common.Logic.CurrentLogic.Conditions.Add(lockConditionsInfo);
+                        }
+
                     }
                     else
                     {
@@ -373,5 +387,6 @@
                 lockLogicCommunalPage.Show(() => { });
             };
         }
+    
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddDevice.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddDevice.cs
index 7998d32..d5df4d1 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddDevice.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddDevice.cs
@@ -42,7 +42,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(160),
-                Width = Application.GetRealWidth(300),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.devicestate,
@@ -144,7 +144,7 @@
 
             middle = new VerticalScrolViewLayout();
             middle.Y = devicetypehorizontalScrol.Bottom + Application.GetRealHeight(40);
-            middle.Height = Application.GetRealHeight(1920) - devicetypehorizontalScrol.Y;
+            middle.Height = Application.GetRealHeight(1920 - 40) - devicetypehorizontalScrol.Bottom;
             middle.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
             middle.X = Application.GetRealWidth(58);
             middle.Radius = (uint)Application.GetRealHeight(50);
@@ -171,38 +171,73 @@
                 {
                     flMain.RemoveFromParent();
                 };
+                var foolrbjicon = new FrameLayout
+                {
+
+                    Width = Application.GetRealWidth(450),
+                    Height = Application.GetRealHeight(780),
+                    X = Application.GetRealWidth(1080 - 468 - 35),
+                    Y = Application.GetRealHeight(184),
+                    BackgroundImagePath = "Item/SelectFloor_Right.png",
+                };
+                flMain.AddChidren(foolrbjicon);
+
+                var btnfoolrtext = new Button
+                {
+                    Width = Application.GetRealWidth(450),
+                    Height = Application.GetRealHeight(150),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    X = Application.GetRealWidth(80),
+                    TextID = MyInternationalizationString.selecfoolr,
+                };
+                foolrbjicon.AddChidren(btnfoolrtext);
+
                 var foolrbj = new VerticalScrolViewLayout
                 {
 
-                    Width = Application.GetRealWidth(400),
-                    Height = Application.GetRealHeight(600),
-                    X = Application.GetRealWidth(1080 - 400 - 60),
-                    Y = Application.GetRealHeight(184 + 50),
-                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
-                    Radius = (uint)Application.GetRealHeight(30),
+                    Width = Application.GetRealWidth(450),
+                    Height = foolrbjicon.Height - btnfoolrtext.Height,
+                    X = Application.GetRealWidth(80),
+                    Y = btnfoolrtext.Bottom,
                 };
-                flMain.AddChidren(foolrbj);
+                foolrbjicon.AddChidren(foolrbj);
+
                 foreach (var foolr in Config.Instance.Home.FloorDics)
                 {
-
-                    var foolrRowLayout = new FrameLayout
+                    var foolrRowLayout = new RowLayout
                     {
                         Height = Application.GetRealHeight(150),
+                        LineColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
                     };
                     foolrbj.AddChidren(foolrRowLayout);
+
+                    var btnfoolricon = new Button
+                    {
+                        Width = Application.GetRealWidth(81),
+                        Height = Application.GetRealHeight(81),
+                        UnSelectedImagePath = "Floor/Floor.png",
+                        Gravity = Gravity.CenterVertical,
+                    };
+                    foolrRowLayout.AddChidren(btnfoolricon);
+
 
                     var btnfoolrname = new Button
                     {
                         Width = Application.GetRealWidth(250),
-                        Height = Application.GetRealHeight(160),
+                        Height = Application.GetRealHeight(150),
                         Text = foolr.Value,
-                        TextAlignment = TextAlignment.Center,
-                        TextColor = ZigbeeColor.Current.LogicTextBlackColor,
-                        //SelectedTextColor=0xfffc744b,
+                        TextAlignment = TextAlignment.CenterLeft,
+                        TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                         Tag = foolr.Key,
+                        X = btnfoolricon.Right + Application.GetRealWidth(12),
                     };
                     foolrRowLayout.AddChidren(btnfoolrname);
-
+                    if (foolrname.Text == foolr.Value)
+                    {
+                        btnfoolricon.UnSelectedImagePath = "Floor/FloorSelected.png";
+                        btnfoolrname.TextColor = ZigbeeColor.Current.LogicTextBlackColor;
+                    }
 
                     EventHandler<MouseEventArgs> foolrnameclick = (sender13, e13) =>
                     {
@@ -213,6 +248,7 @@
                         flMain.RemoveFromParent();
                         var list = Send.GetRoomList(btnfoolrname.Tag.ToString());
                         AllRoomView(list, deviceTypeList, roomhorizontalScrol, devicetypehorizontalScrol);
+
                     };
                     foolrRowLayout.MouseUpEventHandler += foolrnameclick;
                     btnfoolrname.MouseUpEventHandler += foolrnameclick;
@@ -673,9 +709,9 @@
                 TextID = MyInternationalizationString.security,
                 TextColor = ZigbeeColor.Current.LogicBtnTypeColor,
                 Height = Application.GetRealHeight(140),
-                Width = Application.GetRealWidth(320),
+                Width = Application.GetRealWidth(420),
                 TextAlignment = TextAlignment.Center,
-                X = Btncancel.Right + Application.GetRealWidth(100),
+                X = Btncancel.Right + Application.GetRealWidth(50),
                 TextSize = 16,
                 Text = common.DeviceEpointName,
             };
@@ -687,7 +723,7 @@
                 Height = Application.GetRealHeight(140),
                 Width = Application.GetRealWidth(200),
                 TextAlignment = TextAlignment.CenterRight,
-                X = Btntitle.Right + Application.GetRealWidth(100),
+                X = Btntitle.Right + Application.GetRealWidth(50),
 
             };
             timetype.AddChidren(Btncomplete);
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddScene.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddScene.cs
index fb4ffce..0010bc2 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddScene.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockAddScene.cs
@@ -41,7 +41,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(160),
-                Width = Application.GetRealWidth(300),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.addscene,
@@ -167,49 +167,85 @@
 
             };
 
-            ///閫変腑妤煎眰
-            foolrname.MouseUpEventHandler += (sender, e) =>
+            ///妤煎眰鐐瑰嚮浜嬩欢
+            EventHandler<MouseEventArgs> foorlclick = (sender, e) =>
             {
+
                 var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
                 this.AddChidren(flMain);
                 flMain.MouseUpEventHandler += (sender2, e2) =>
                 {
                     flMain.RemoveFromParent();
                 };
+                var foolrbjicon = new FrameLayout
+                {
+
+                    Width = Application.GetRealWidth(450),
+                    Height = Application.GetRealHeight(780),
+                    X = Application.GetRealWidth(1080 - 468 - 35),
+                    Y = Application.GetRealHeight(184),
+                    BackgroundImagePath = "Item/SelectFloor_Right.png",
+                };
+                flMain.AddChidren(foolrbjicon);
+
+                var btnfoolrtext = new Button
+                {
+                    Width = Application.GetRealWidth(450),
+                    Height = Application.GetRealHeight(150),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    X = Application.GetRealWidth(80),
+                    TextID = MyInternationalizationString.selecfoolr,
+                };
+                foolrbjicon.AddChidren(btnfoolrtext);
+
                 var foolrbj = new VerticalScrolViewLayout
                 {
 
-                    Width = Application.GetRealWidth(400),
-                    Height = Application.GetRealHeight(600),
-                    X = Application.GetRealWidth(1080 - 400 - 60),
-                    Y = Application.GetRealHeight(184 + 50),
-                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
-                    Radius = (uint)Application.GetRealHeight(30),
+                    Width = Application.GetRealWidth(450),
+                    Height = foolrbjicon.Height - btnfoolrtext.Height,
+                    X = Application.GetRealWidth(80),
+                    Y = btnfoolrtext.Bottom,
                 };
-                flMain.AddChidren(foolrbj);
-                ///榛樿璋冭瘯
+                foolrbjicon.AddChidren(foolrbj);
 
                 foreach (var foolr in Config.Instance.Home.FloorDics)
                 {
-                    var foolrRowLayout = new FrameLayout
+                    var foolrRowLayout = new RowLayout
                     {
                         Height = Application.GetRealHeight(150),
+                        LineColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
                     };
                     foolrbj.AddChidren(foolrRowLayout);
+
+                    var btnfoolricon = new Button
+                    {
+                        Width = Application.GetRealWidth(81),
+                        Height = Application.GetRealHeight(81),
+                        UnSelectedImagePath = "Floor/Floor.png",
+                        Gravity = Gravity.CenterVertical,
+                    };
+                    foolrRowLayout.AddChidren(btnfoolricon);
+
 
                     var btnfoolrname = new Button
                     {
                         Width = Application.GetRealWidth(250),
-                        Height = Application.GetRealHeight(160),
+                        Height = Application.GetRealHeight(150),
                         Text = foolr.Value,
-                        TextAlignment = TextAlignment.Center,
-                        TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                        TextAlignment = TextAlignment.CenterLeft,
+                        TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                         Tag = foolr.Key,
+                        X = btnfoolricon.Right + Application.GetRealWidth(12),
                     };
                     foolrRowLayout.AddChidren(btnfoolrname);
+                    if (foolrname.Text == foolr.Value)
+                    {
+                        btnfoolricon.UnSelectedImagePath = "Floor/FloorSelected.png";
+                        btnfoolrname.TextColor = ZigbeeColor.Current.LogicTextBlackColor;
+                    }
 
-
-                    EventHandler<MouseEventArgs> foolrclick = (sender13, e13) =>
+                    EventHandler<MouseEventArgs> foolrnameclick = (sender13, e13) =>
                     {
                         roomhorizontalScrol.RemoveAll();
                         foolrname.Text = btnfoolrname.Text;
@@ -217,13 +253,17 @@
                         flMain.RemoveFromParent();
                         var list = Send.GetRoomList(btnfoolrname.Tag.ToString());
                         AllRoomView(list);
+
                     };
-                    foolrRowLayout.MouseUpEventHandler += foolrclick;
-                    btnfoolrname.MouseUpEventHandler += foolrclick;
+                    foolrRowLayout.MouseUpEventHandler += foolrnameclick;
+                    btnfoolrname.MouseUpEventHandler += foolrnameclick;
 
 
                 }
+
             };
+            foolrname.MouseUpEventHandler += foorlclick;
+            dropdown.MouseUpEventHandler += foorlclick;
 
             ///绗竴娆¤繘鏉�
             var roomlists = new List<Common.Room>();
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockIfon.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockIfon.cs
deleted file mode 100755
index 1d13ab0..0000000
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockIfon.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using Shared;
-
-namespace Shared.Phone.Device.Logic.DoorLockLogic
-{
-    public class LockIfon
-    {
-        /// <summary>
-        /// 褰撳墠闂ㄩ攣
-        /// </summary>
-        public static ZigBee.Device.DoorLock DoorLock=null;
-        /// <summary>
-        /// 褰撳墠鎴愬憳鐨勪俊鎭�
-        /// </summary>
-        public static UserCenter.MemberInfoRes UserMemberInfoRes = null;
-        /// <summary>
-        /// 鑾峰彇闂ㄩ攣鎵�鏈夌殑鎴愬憳
-        /// </summary>
-        /// <returns></returns>
-        public static List<ZigBee.Device.DoorLock.LocaDoorLockObj> GetUserList()
-        {
-            var locaDoorLockObjlist = new List<ZigBee.Device.DoorLock.LocaDoorLockObj>();
-            locaDoorLockObjlist.Clear();
-            foreach (var dictionary in DoorLock.localDoorLockUserList)
-            {
-                if (string.IsNullOrEmpty(dictionary.Value.ConnectedAccount)) {
-                    //涓嶇煡閬撲紶杩囨潵ConnectedAccount涓轰粈涔堜负绌猴紝闃叉鎶涘紓甯革紱
-                    continue;
-                }
-                var @null = locaDoorLockObjlist.Find((o) => { return o.ConnectedAccount == dictionary.Value.ConnectedAccount; });
-                if (@null == null)
-                {
-                    locaDoorLockObjlist.Add(dictionary.Value);
-                }
-
-            }
-            return locaDoorLockObjlist;
-        }
-        /// <summary>
-        /// 鑾峰彇闂ㄩ攣鏌愪釜鎴愬憳鐨勪俊鎭�
-        /// </summary>
-        /// <returns></returns>
-        public static List<ZigBee.Device.DoorLock.LocaDoorLockObj> GetUserIfon(string SubAccountDistributedMark)
-        {
-            var locaDoorLockObjlist = new List<ZigBee.Device.DoorLock.LocaDoorLockObj>();
-            locaDoorLockObjlist.Clear();
-            foreach (var dictionary in DoorLock.localDoorLockUserList)
-            {
-                if (string.IsNullOrEmpty(dictionary.Value.ConnectedAccount))
-                {
-                    //涓嶇煡閬撲紶杩囨潵ConnectedAccount涓轰粈涔堜负绌猴紝闃叉鎶涘紓甯革紱
-                    continue;
-                }
-                if (dictionary.Value.ConnectedAccount ==SubAccountDistributedMark)
-                {
-                    locaDoorLockObjlist.Add(dictionary.Value);
-                }
-            }
-            return locaDoorLockObjlist;
-        }
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs
index 37ff757..87e2d2f 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs
@@ -36,7 +36,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.selection,
@@ -359,7 +359,7 @@
                                             //    {
                                             //        if (Common.Logic.CurrentLogic.Accounts[a]["UserId"] == conditions["AttriButeData2"])
                                             //        {
-                                            //            devicestatus.Text = conditions["Account"];
+                                            //            devicestatus.Text = Common.Logic.CurrentLogic.Accounts["Account"];
                                             //            break;
                                             //        }
                                             //    }
@@ -410,6 +410,7 @@
                         {
                             if (e1)
                             {
+                                Common.Logic.CurrentLogic.Conditions.Remove(conditions);
                                 var lockLogicCommunalPage = new LockLogicCommunalPage();
                                 UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage);
                                 UserView.HomePage.Instance.PageIndex += 1;
@@ -952,7 +953,11 @@
                             if (e1)
                             {
                                 Common.Logic.CurrentLogic.Actions.Remove(actions);
-                                                          }
+                                var lockLogicCommunalPage = new LockLogicCommunalPage();
+                                UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage);
+                                UserView.HomePage.Instance.PageIndex += 1;
+                                lockLogicCommunalPage.Show(() => { });
+                            }
                         };
                         alert.Show();
 
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs
index 8870208..8aa6678 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs
@@ -31,7 +31,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.linkageevent,
@@ -83,6 +83,7 @@
                 Common.Logic.CurrentLogic.Relationship = 1;
                 //Config.Instance.Guid鐢ㄦ潵璇嗗埆璐﹀彿韬唤锛�
                 var accounts = new System.Collections.Generic.Dictionary<string, string>();
+                accounts.Add("Type","1");
                 accounts.Add("Account", Config.Instance.Guid);
                 Common.Logic.CurrentLogic.Accounts.Add(accounts);
                 Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.automation1);
@@ -148,7 +149,7 @@
                 {
                     Width = Application.GetRealWidth(1080),
                     Height = Application.GetRealHeight(190),
-                    LineColor = ZigbeeColor.Current.LogicBackgroundColor,
+                    LineColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
                     BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
 
                 };
@@ -194,6 +195,14 @@
                     Send.LogicControlSwitch(logic);
 
                 };
+                if (logic.IsEnable == 1)
+                {
+                    logicswitchBtn.IsSelected = true;
+                }
+                else if (logic.IsEnable == 0)
+                {
+                    logicswitchBtn.IsSelected = false;
+                }
                 ///缂栬緫
                 var edit = new Button
                 {
@@ -229,7 +238,7 @@
                     {
                         if (e1)
                         {
-                            Common.Logic.LogicList.Remove(logic);
+                            Common.Logic.LockLogicList.Remove(logic);
                             Automationview();
                             Send.DelLogic(logic.LogicId);
                         }
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/EverymonthPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/EverymonthPage.cs
index 27e264e..b3615db 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/EverymonthPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/EverymonthPage.cs
@@ -33,7 +33,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 Text = titlename,
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/EveryyearPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/EveryyearPage.cs
index 8fe135a..fcde260 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/EveryyearPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/EveryyearPage.cs
@@ -25,7 +25,7 @@
             var titleName = new Button
             {
                 TextID = MyInternationalizationString.cycle,
-                TextSize = 17,
+                TextSize = 16,
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
             };
             topFrameLayout.AddChidren(titleName);
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
index 4f954b9..cf09619 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
@@ -36,7 +36,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.selection,
@@ -541,7 +541,7 @@
                                         UserView.HomePage.Instance.AddChidren(memberList);
                                         UserView.HomePage.Instance.PageIndex += 1;
                                         MemberList.edit = true;
-                                        memberList.Show(deviceinof);
+                                        memberList.Show(deviceinof, conditions);
                                     }
 
                                 };
@@ -725,7 +725,7 @@
                                                 {
                                                     if (Common.Logic.CurrentLogic.Accounts[a]["UserId"] == conditions["AttriButeData2"])
                                                     {
-                                                        devicestatus.Text = conditions["Account"];
+                                                        devicestatus.Text = Common.Logic.CurrentLogic.Accounts[a]["Account"];
                                                         break;
 
                                                     }
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicDevicePage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicDevicePage.cs
index cb9097a..3ca4d22 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/LogicDevicePage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicDevicePage.cs
@@ -43,7 +43,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(160),
-                Width = Application.GetRealWidth(300),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.devicestate,
@@ -145,7 +145,7 @@
 
             middle = new VerticalScrolViewLayout();
             middle.Y = devicetypehorizontalScrol.Bottom + Application.GetRealHeight(40);
-            middle.Height = Application.GetRealHeight(1920) - devicetypehorizontalScrol.Y;
+            middle.Height = Application.GetRealHeight(1920 - 40) - devicetypehorizontalScrol.Bottom;
             middle.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
             middle.X = Application.GetRealWidth(58);
             middle.Radius = (uint)Application.GetRealHeight(50);
@@ -172,38 +172,73 @@
                 {
                     flMain.RemoveFromParent();
                 };
+                var foolrbjicon = new FrameLayout
+                {
+
+                    Width = Application.GetRealWidth(450),
+                    Height = Application.GetRealHeight(780),
+                    X = Application.GetRealWidth(1080 - 468 - 35),
+                    Y = Application.GetRealHeight(184),
+                    BackgroundImagePath = "Item/SelectFloor_Right.png",
+                };
+                flMain.AddChidren(foolrbjicon);
+
+                var btnfoolrtext = new Button
+                {
+                    Width = Application.GetRealWidth(450),
+                    Height = Application.GetRealHeight(150),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    X = Application.GetRealWidth(80),
+                    TextID = MyInternationalizationString.selecfoolr,
+                };
+                foolrbjicon.AddChidren(btnfoolrtext);
+
                 var foolrbj = new VerticalScrolViewLayout
                 {
 
-                    Width = Application.GetRealWidth(400),
-                    Height = Application.GetRealHeight(600),
-                    X = Application.GetRealWidth(1080 - 400 - 60),
-                    Y = Application.GetRealHeight(184 + 50),
-                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
-                    Radius = (uint)Application.GetRealHeight(30),
+                    Width = Application.GetRealWidth(450),
+                    Height = foolrbjicon.Height - btnfoolrtext.Height,
+                    X = Application.GetRealWidth(80),
+                    Y = btnfoolrtext.Bottom,
                 };
-                flMain.AddChidren(foolrbj);
+                foolrbjicon.AddChidren(foolrbj);
+
                 foreach (var foolr in Config.Instance.Home.FloorDics)
                 {
-
-                    var foolrRowLayout = new FrameLayout
+                    var foolrRowLayout = new RowLayout
                     {
                         Height = Application.GetRealHeight(150),
+                        LineColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
                     };
                     foolrbj.AddChidren(foolrRowLayout);
+
+                    var btnfoolricon = new Button
+                    {
+                        Width = Application.GetRealWidth(81),
+                        Height = Application.GetRealHeight(81),
+                        UnSelectedImagePath = "Floor/Floor.png",
+                        Gravity = Gravity.CenterVertical,
+                    };
+                    foolrRowLayout.AddChidren(btnfoolricon);
+
 
                     var btnfoolrname = new Button
                     {
                         Width = Application.GetRealWidth(250),
-                        Height = Application.GetRealHeight(160),
+                        Height = Application.GetRealHeight(150),
                         Text = foolr.Value,
-                        TextAlignment = TextAlignment.Center,
-                        TextColor = ZigbeeColor.Current.LogicTextBlackColor,
-                        //SelectedTextColor=0xfffc744b,
+                        TextAlignment = TextAlignment.CenterLeft,
+                        TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                         Tag = foolr.Key,
+                        X = btnfoolricon.Right + Application.GetRealWidth(12),
                     };
                     foolrRowLayout.AddChidren(btnfoolrname);
-
+                    if (foolrname.Text == foolr.Value)
+                    {
+                        btnfoolricon.UnSelectedImagePath = "Floor/FloorSelected.png";
+                        btnfoolrname.TextColor = ZigbeeColor.Current.LogicTextBlackColor;
+                    }
 
                     EventHandler<MouseEventArgs> foolrnameclick = (sender13, e13) =>
                     {
@@ -214,6 +249,7 @@
                         flMain.RemoveFromParent();
                         var list = Send.GetRoomList(btnfoolrname.Tag.ToString());
                         AllRoomView(list, deviceTypeList, roomhorizontalScrol, devicetypehorizontalScrol);
+
                     };
                     foolrRowLayout.MouseUpEventHandler += foolrnameclick;
                     btnfoolrname.MouseUpEventHandler += foolrnameclick;
@@ -676,9 +712,9 @@
                 TextID = MyInternationalizationString.security,
                 TextColor = ZigbeeColor.Current.LogicBtnTypeColor,
                 Height = Application.GetRealHeight(140),
-                Width = Application.GetRealWidth(320),
+                Width = Application.GetRealWidth(420),
                 TextAlignment = TextAlignment.Center,
-                X = Btncancel.Right + Application.GetRealWidth(100),
+                X = Btncancel.Right + Application.GetRealWidth(50),
                 TextSize = 16,
                 Text = common.DeviceEpointName,
             };
@@ -690,7 +726,7 @@
                 Height = Application.GetRealHeight(140),
                 Width = Application.GetRealWidth(200),
                 TextAlignment = TextAlignment.CenterRight,
-                X = Btntitle.Right + Application.GetRealWidth(100),
+                X = Btntitle.Right + Application.GetRealWidth(50),
 
             };
             timetype.AddChidren(Btncomplete);
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicListAutomation.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicListAutomation.cs
index 1a4ae99..e2e67b1 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/LogicListAutomation.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicListAutomation.cs
@@ -30,7 +30,7 @@
 
             var titleName = new Button {
                 TextID = MyInternationalizationString.automation,
-                TextSize = 17,
+                TextSize = 16,
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
             };
             topFrameLayout.AddChidren (titleName);
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicListPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicListPage.cs
index 9a9cdfe..e88e06a 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/LogicListPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicListPage.cs
@@ -34,7 +34,7 @@
 
             var titleName = new Button {
                 TextID = MyInternationalizationString.automation,
-                TextSize = 17,
+                TextSize = 16,
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
             };
             topFrameLayout.AddChidren (titleName);
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicMain.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicMain.cs
new file mode 100755
index 0000000..d4bc80c
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicMain.cs
@@ -0,0 +1,744 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Shared.Common;
+using Shared.Phone.UserView;
+using Shared.R;
+
+namespace Shared.Phone.Device.Logic
+{
+    public class LogicMain
+    {
+        FrameLayout functionSceneAutoBodyView = null;
+        /// <summary>
+        /// 鑷姩鍖�
+        /// </summary>
+        public async void ShowAutotion(FrameLayout frameLayoutfunctionSceneAutoBodyView)
+        {
+            functionSceneAutoBodyView = frameLayoutfunctionSceneAutoBodyView;
+            functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+
+            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);
+
+            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,
+            };
+            bjFrameLayout.AddChidren(recommendtextBtn);
+
+            var recommendswitchBtn = new Button
+            {
+                Width = Application.GetMinRealAverage(104),
+                Height = Application.GetMinRealAverage(63),
+                UnSelectedImagePath = "ZigeeLogic/logicclose.png",
+                SelectedImagePath = "ZigeeLogic/logicopen.png",
+                X = bjFrameLayout.Width - Application.GetRealWidth(104 + 58),
+                Gravity = Gravity.CenterVertical,
+            };
+            bjFrameLayout.AddChidren(recommendswitchBtn);
+
+
+            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 VerticalScrolViewLayout
+            {
+                Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30),
+                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+                X = Application.GetRealWidth(58),
+                Radius = (uint)Application.GetRealHeight(50),
+                Y = scenehorizontalScrol.Bottom,
+            };
+            functionSceneAutoBodyView.AddChidren(logicScrolView);
+
+
+            recommendswitchBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                int Yheight = 0;
+                recommendswitchBtn.IsSelected = !recommendswitchBtn.IsSelected;
+                scenehorizontalScrol.RemoveAll();
+                if (recommendswitchBtn.IsSelected)
+                {
+                    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,
+                        };
+                        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;// Language.StringByID(MyInternationalizationString.automation1);
+                                var addLogicPage = new Logic.AddLogicPage();
+                                HomePage.Instance.AddChidren(addLogicPage);
+                                HomePage.Instance.PageIndex += 1;
+                                addLogicPage.Show();
+                            }
+                            else
+                            {
+
+                                Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text;
+                                Logic.TemplatePage templatePage = new Logic.TemplatePage();
+                                Logic.TemplatePage.s = logiciocnBtn.Tag.ToString();
+                                HomePage.Instance.AddChidren(templatePage);
+                                HomePage.Instance.PageIndex += 1;
+                                templatePage.Show();
+                            }
+                        };
+                        logiciocnBtn.MouseUpEventHandler += iconclick;
+                        logicnameBtn.MouseUpEventHandler += iconclick;
+                    }
+                }
+                else
+                {
+                    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);
+            };
+
+            CommonPage.Loading.Start();
+            if (Common.Logic.LogicList.Count == 0)
+            {
+                var Idlist = await Logic.Send.GetLogicId(0);
+                if (Idlist.Count != 0)
+                {
+                    var listlogic = await 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);
+            CommonPage.Loading.Hide();
+        }
+        /// <summary>
+        /// 鑷姩鍖栧垪琛ㄧ晫闈�
+        /// </summary>
+        /// <param name="refresview">Refresview.</param>
+        public async void Automationview(VerticalScrolViewLayout refresview)
+        {
+            refresview.RemoveAll();
+            foreach (var logic in Common.Logic.LogicList)
+            {
+
+
+                var logicRowlayout = new RowLayout
+                {
+                    Height = Application.GetRealHeight(190 + 30),
+                    Width = Application.GetRealWidth(1080),
+                    LineColor = ZigbeeColor.Current.LogicBackgroundColor,
+                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
+                };
+                refresview.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,
+                };
+                logicRowlayout.AddChidren(logicnameBtn);
+
+
+                var logicswitchBtn = new Button
+                {
+                    Width = Application.GetMinRealAverage(104),
+                    Height = Application.GetMinRealAverage(63),
+                    UnSelectedImagePath = "ZigeeLogic/logicclose.png",
+                    SelectedImagePath = "ZigeeLogic/logicopen.png",
+                    X = logicRowlayout.Width - Application.GetRealWidth(104 + 58 + 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);
+                    }
+                    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 Logic.LogicCommunalPage();
+                    HomePage.Instance.AddChidren(logicCommunalPage);
+                    HomePage.Instance.PageIndex += 1;
+                    logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview); });
+
+                };
+
+
+                ///鍒犻櫎
+                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);
+                            Logic.Send.DelLogic(logic.LogicId);
+                        }
+                    };
+                    alert.Show();
+
+                };
+                var line = new Button
+                {
+                    Y = Application.GetRealHeight(215),
+                    Height = Application.GetRealHeight(5),
+                    Width = Application.GetRealWidth(1080 - 58),
+                    BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
+                    X = Application.GetRealWidth(58),
+                };
+                logicRowlayout.AddChidren(line);
+            }
+
+        }
+        /// <summary>
+        /// 鏄剧ず鍥炬爣鐨勯鑹�
+        /// </summary>
+        /// <param name="logic"></param>
+        /// <param name="logicRowlayout"></param>
+        /// <param name="intvalue"></param>
+        public 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 + 58),
+                Y = Application.GetRealHeight(30),
+                X = Application.GetRealWidth(365),
+                TextAlignment = TextAlignment.CenterRight,
+                TextColor = ZigbeeColor.Current.LogicListWeekTextColor,
+            };
+            logicRowlayout.AddChidren(logictimeBtn);
+
+            ///鏄剧ず鎵ц鍛ㄦ湡
+            switch (logic.TimeAttribute.Repeat)
+            {
+                ///0:鍙墽琛屼竴娆★紝鎵ц鍚嶪sEnable鍊肩疆;1,浠婂勾鍐呮墽琛�;2锛氭瘡澶╂墽琛�;3锛氭瘡鏈堟墽琛�;4锛氭瘡骞存墽琛�;5锛氬懆閲嶅銆�
+                case 0:
+                    {
+                        logictimeBtn.Text = Language.StringByID(MyInternationalizationString.executeonce);
+                    }; break;
+                case 1: { }; break;
+                case 2:
+                    {
+                        logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyday);
+                    }; break;
+                case 3:
+                    {
+
+                        string len = "", value = "";
+                        var stringvalue = Convert.ToString(logic.TimeAttribute.MonthDate, 2);
+                        var str = stringvalue.Insert(0, new string('0', 32 - stringvalue.Length));
+                        for (int j = 31; j >= 0; j--)
+                        {
+                            len += str.Substring(j, 1);
+                        }
+                        for (int j = 0; j < len.Length; j++)
+                        {
+                            var strvalue = len.Substring(j, 1);
+                            if (strvalue == "1")
+                            {
+                                value += (j + 1).ToString() + ",";
+                            }
+                        }
+                        logictimeBtn.Text = Language.StringByID(MyInternationalizationString.monthly) + value.TrimEnd(',') + Language.StringByID(MyInternationalizationString.day);
+
+                    }; break;
+                case 4:
+                    {
+
+                        Dictionary<int, int> dictionary = new Dictionary<int, int>();
+                        ///鎵惧嚭鎵ц鐨勬湀浠藉拰澶╂暟
+                        if (logic.TimeAttribute.SelectMonDate.Count != 0)
+                        {
+                            for (int i = 0; i < logic.TimeAttribute.SelectMonDate.Count; i++)
+                            {
+                                var dayvalue = logic.TimeAttribute.SelectMonDate[i];
+                                if (dayvalue != 0)
+                                {
+                                    dictionary.Add(i + 1, dayvalue);
+                                }
+                            }
+                        }
+                        if (dictionary.Count != 0 && dictionary.Count == 1)
+                        {
+                            string len = "", leng = "";
+                            int minvalue = 0, Maximum = 0;
+                            foreach (var value in dictionary)
+                            {
+                                ///鍙栧嚭鏈堜唤
+                                var month = value.Key;
+                                ///鍙栧嚭鏃ユ暟
+                                var day = value.Value;
+                                var maxvalue = Convert.ToString(day, 2);
+                                var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length));
+                                for (int j = 31; j >= 0; j--)
+                                {
+                                    len += str.Substring(j, 1);
+                                }
+
+                                for (int j = 0; j < len.Length; j++)
+                                {
+                                    var strvalue = len.Substring(j, 1);
+                                    if (strvalue == "1")
+                                    {
+                                        minvalue = j + 1;
+                                        break;
+                                    }
+                                }
+                                for (int j = 0; j < len.Length; j++)
+                                {
+                                    var strvalue = len.Substring(j, 1);
+                                    if (strvalue == "1")
+                                    {
+                                        Maximum = j + 1;
+                                    }
+                                }
+
+                                if (month.ToString().Length < 2)
+                                {
+                                    leng = "0" + month.ToString();
+                                }
+                                else
+                                {
+                                    leng = month.ToString();
+                                }
+                                if (minvalue == Maximum)
+                                {
+                                    logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyyear) + leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString());
+                                }
+                                else
+                                {
+                                    logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyyear) + leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()) + "-" + leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString());
+                                }
+                            }
+
+                        }
+                        else
+                        {
+                            int b = 0;
+                            string stringtext = "";
+                            foreach (var value in dictionary)
+                            {
+                                string len = "", leng = "";
+                                int minvalue = 0, Maximum = 0;
+                                ///鍙栧嚭鏈堜唤
+                                var month = value.Key;
+                                ///鍙栧嚭鏃ユ暟
+                                var day = value.Value;
+                                var maxvalue = Convert.ToString(day, 2);
+                                var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length));
+                                for (int j = 31; j >= 0; j--)
+                                {
+                                    len += str.Substring(j, 1);
+                                }
+
+
+                                if (month.ToString().Length < 2)
+                                {
+                                    leng = "0" + month.ToString();
+                                }
+                                else
+                                {
+                                    leng = month.ToString();
+                                }
+
+
+
+                                if (b == 0)
+                                {
+                                    for (int j = 0; j < len.Length; j++)
+                                    {
+                                        var strvalue = len.Substring(j, 1);
+                                        if (strvalue == "1")
+                                        {
+                                            minvalue = j + 1;
+                                            break;
+                                        }
+                                    }
+                                    stringtext += leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()) + "-";
+
+                                }
+
+                                if (b == dictionary.Count - 1)
+                                {
+                                    for (int j = 0; j < len.Length; j++)
+                                    {
+                                        var strvalue = len.Substring(j, 1);
+                                        if (strvalue == "1")
+                                        {
+                                            Maximum = j + 1;
+                                        }
+                                    }
+                                    stringtext += leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString());
+
+                                }
+                                b++;
+                            }
+                            logictimeBtn.Text = Language.StringByID(MyInternationalizationString.everyyear) + stringtext;
+                        }
+
+                    }; break;
+                case 5:
+                    {
+                        string len = "", text = "";
+                        List<int> listvalueInt = new List<int>();
+                        listvalueInt.Clear();
+                        var maxvalue = Convert.ToString(logic.TimeAttribute.WeekDay, 2);
+                        var str = maxvalue.Insert(0, new string('0', 8 - maxvalue.Length));
+                        for (int j = 7; j >= 0; j--)
+                        {
+                            len += str.Substring(j, 1);
+                        }
+
+                        for (int j = 0; j < len.Length; j++)
+                        {
+                            var strvalue = len.Substring(j, 1);
+                            if (strvalue == "1")
+                            {
+                                listvalueInt.Add(j + 1);
+
+
+                                if ((j + 1) == 1)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.mon1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.mon) + ",";
+                                }
+                                else if ((j + 1) == 2)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.tue1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.tue) + ",";
+                                }
+                                else if ((j + 1) == 3)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.wed1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.wed) + ",";
+                                }
+                                else if ((j + 1) == 4)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.thu1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.thu) + ",";
+                                }
+                                else if ((j + 1) == 5)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.frl1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.frl) + ",";
+                                }
+                                else if ((j + 1) == 6)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.sat1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.sat) + ",";
+                                }
+                                else if ((j + 1) == 7)
+                                {
+                                    text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.sun1) + ",";
+                                    //text += Language.StringByID(MyInternationalizationString.sun) + ",";
+                                }
+
+
+                            }
+                        }
+                        //鏆傛椂闅愯棌鎺夛紝闇�瑕佹樉绀哄懆鏈拰宸ヤ綔鏃ュ啀鏀惧紑锛�
+                        //if (listvalueInt.Count == 5 && !listvalueInt.Contains(6) && !listvalueInt.Contains(7))
+                        //{
+                        //    btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.workingday);
+                        //}
+                        //else if (listvalueInt.Count == 2 && listvalueInt.Contains(6) && listvalueInt.Contains(7))
+                        //{
+                        //    btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.weekend);
+                        //}
+                        //else if (listvalueInt.Count == 7)
+                        //{
+                        //    btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyday);
+                        //}
+                        //else
+                        //{
+                        //    btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.week1) + text.Replace(Language.StringByID(MyInternationalizationString.week1), "").TrimEnd(',');
+                        //}
+                        logictimeBtn.Text = Language.StringByID(MyInternationalizationString.week1) + text.Replace(Language.StringByID(MyInternationalizationString.week1), "").TrimEnd(',');
+                        //btndisplaycycle.Text = text.TrimEnd(',');
+                    }; break;
+            }
+
+            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.GetRealWidth(82),
+                    Height = Application.GetRealHeight(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.GetRealWidth(58),
+                    Height = Application.GetRealHeight(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;
+
+                }
+            }
+        }
+
+        public void AddLogic() {
+            //new涓�涓柊閫昏緫瀵硅薄锛�
+            Common.Logic.CurrentLogic = new Common.Logic();
+            Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑
+            Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.automation1);
+            var addLogicPage = new AddLogicPage();
+            UserView.HomePage.Instance.AddChidren(addLogicPage);
+            UserView.HomePage.Instance.PageIndex += 1;
+            addLogicPage.Show();
+
+
+        }
+    }
+
+}
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs b/ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs
index 39fe971..c5f558d 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/MemberList.cs
@@ -9,14 +9,19 @@
 {
     public class MemberList : FrameLayout
     {
+        public MemberList()
+        {
+            Tag = "Logic";
+        }
         Button selectedIcon = new Button();
         public static Action action;
         public static bool edit=false;
         Dictionary<string, string> deviceConditionsInfo = new Dictionary<string, string>();
         Dictionary<string, string> userdictionary = new Dictionary<string, string>();
 
-        public void Show(CommonDevice common, Dictionary<string, string> editdeviceConditionsInfo=null)
+        public async void Show(CommonDevice common, Dictionary<string, string> editdeviceConditionsInfo=null)
         {
+         
             if (!edit)
             {
                 deviceConditionsInfo.Add("Type", "1");
@@ -45,7 +50,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.userlist,
@@ -88,7 +93,11 @@
                 BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
             };
             this.AddChidren(middle);
-
+            if (Send.UserList.Count == 0)
+            {
+                var allMemberslist = await Send.AllMembers(common.DeviceAddr);
+                Send.UserList.AddRange(allMemberslist);
+            }
             foreach (var user in Send.UserList)
             {
 
@@ -211,7 +220,7 @@
                     lockcolorfra1.Height = Application.GetRealHeight(140 + (160 * user.UserIdMode.Count) + 20 + 50);
                     for (int i = 0; i < user.UserIdMode.Count; i++)
                     {
-                        var userid = user.UserIdMode[i];
+                        var userifon = user.UserIdMode[i];
                         var doorlockfra = new FrameLayout
                         {
                             Height = Application.GetRealHeight(160),
@@ -237,8 +246,7 @@
                         };
                         doorlockRow.AddChidren(doorlockBtn);
                         //(1鎸夐敭/3鍗�/15鎸囩汗)
-                        string[] s = userid.Split('_');
-                        switch (s[1])
+                        switch (userifon.OpenMode.ToString())
                         {
                             case "0":
                                 {
@@ -286,8 +294,8 @@
                             {
                                 deviceConditionsInfo.Remove("AttriButeData2");
                             }
-                            deviceConditionsInfo.Add("AttriButeId", s[1]);
-                            deviceConditionsInfo.Add("AttriButeData2", s[0]);
+                            deviceConditionsInfo.Add("AttriButeId", userifon.OpenMode.ToString());
+                            deviceConditionsInfo.Add("AttriButeData2", userifon.UserId);
 
                             if (userdictionary.ContainsKey("Account"))
                             {
@@ -303,20 +311,20 @@
                             }
                             userdictionary.Add("Account", Btntitle.Text+doorlockBtn.Text);
                             userdictionary.Add("Type", "1");
-                            userdictionary.Add("UserId", s[0]);
+                            userdictionary.Add("UserId", userifon.UserId);
                         };
                         doorlockRow.MouseUpEventHandler += doorlockclick;
                         doorlockBtn.MouseUpEventHandler += doorlockclick;
                         doorlockSelected.MouseUpEventHandler += doorlockclick;
                         doorlockfra.MouseUpEventHandler += doorlockclick;
-                        if (edit)
+                        if (edit&&editdeviceConditionsInfo!=null)
                         {
-                            if (editdeviceConditionsInfo["AttriButeData2"] == s[1])
+                            deviceConditionsInfo = editdeviceConditionsInfo;
+                            if (editdeviceConditionsInfo["AttriButeData2"] == userifon.UserId.ToString())
                             {
                                 selectedIcon.Visible = false;
                                 selectedIcon = doorlockSelected;
                                 doorlockSelected.Visible = true;
-
                             }
                           
                         }
@@ -326,9 +334,10 @@
 
                     Btncomplete.MouseUpEventHandler += (sender3, e3) =>
                     {
+                    
                         if (SelectedDeviceStatuscondition != "")
                         {
-
+                            bool add = false;
                             for (int i = 0; i < Common.Logic.CurrentLogic.Conditions.Count; i++)
                             {
                                 if (Common.Logic.CurrentLogic.Conditions[i]["Type"] == "1")
@@ -347,14 +356,17 @@
                                                     Common.Logic.CurrentLogic.Accounts.Insert(j, userdictionary);
                                                 }
                                             }
-                                            return;
+                                            add = true;
+                                            break;
                                         }
                                     }
                                 }
                             }
-
-                            Common.Logic.CurrentLogic.Accounts.Add(userdictionary);
-                            Common.Logic.CurrentLogic.Conditions.Add(deviceConditionsInfo);
+                            if (!add)
+                            {
+                                Common.Logic.CurrentLogic.Accounts.Add(userdictionary);
+                                Common.Logic.CurrentLogic.Conditions.Add(deviceConditionsInfo);
+                            }
 
                         }
                         else
@@ -385,5 +397,6 @@
 
             }
         }
+
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SecurityMode.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SecurityMode.cs
index 395bc71..7e9a54c 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SecurityMode.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SecurityMode.cs
@@ -36,7 +36,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.securitymode,
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SelectedLogicState.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SelectedLogicState.cs
index 5f8a63b..c57ed36 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SelectedLogicState.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SelectedLogicState.cs
@@ -31,7 +31,7 @@
 
             var titleName = new Button {
                 TextID = MyInternationalizationString.automation,
-                TextSize = 17,
+                TextSize = 16,
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
             };
             topFrameLayout.AddChidren (titleName);
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/SelectedLogicStatus.cs b/ZigbeeApp/Shared/Phone/Device/Logic/SelectedLogicStatus.cs
index 77d79af..875aef2 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/SelectedLogicStatus.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/SelectedLogicStatus.cs
@@ -31,7 +31,7 @@
 
             var titleName = new Button {
                 TextID = MyInternationalizationString.automation,
-                TextSize = 17,
+                TextSize = 16,
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
             };
             topFrameLayout.AddChidren (titleName);
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
index 4c72631..a2ddf40 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
@@ -4,12 +4,13 @@
 using ZigBee.Device;
 using ZigBee.Common;
 using Shared.Common;
+using System.Collections.Specialized;
 
 namespace Shared.Phone.Device.Logic
 {
     public class Send
     {
-
+        #region  ----鑾峰彇Logic
         /// <summary>
         /// 鑾峰彇LogicId鐨勬柟娉�
         /// </summary>
@@ -611,6 +612,7 @@
                         logic.Relationship = int.Parse(Logicifon["Relationship"].ToString());
                         logic.TimeAttribute = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.TimeAttributeObj>(Logicifon["TimeAttribute"].ToString());
                         logic.Conditions = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(Logicifon["Conditions"].ToString());
+                        logic.Accounts = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(Logicifon["Accounts"].ToString());
                         List<Dictionary<string, object>> listactions = new List<Dictionary<string, object>>();
                         listactions = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(Logicifon["Actions"].ToString());
 
@@ -710,18 +712,20 @@
             return Common.Room.Lists.FindAll((obj) => obj.FloorId == floorId);
 
         }
+        #endregion
 
         #region  ----鑾峰彇闂ㄩ攣
-        public static List<DoorLock> ReadDoorLockIfon(string doorlockMac)
+        #region ---绗�1绉�
+        public static List<LogicLock> ReadDoorLockIfon(string doorlockMac)
         {
-            List<DoorLock> list = new List<DoorLock>();
+            List<LogicLock> list = new List<LogicLock>();
             string url = "https://global.hdlcontrol.com/HangZhouHdlCloudApi/App/GetHomePager";//瀛愯处鍙峰拰涓昏处鍙峰彲鑳介摼鎺ヤ笉鍚�
             System.Net.WebClient webClient = new System.Net.WebClient();
             System.Collections.Specialized.NameValueCollection postValues = new System.Collections.Specialized.NameValueCollection();
             postValues.Add("RequestVersion", CommonPage.RequestVersion);
             postValues.Add("ReqDto.LoginAccessToken", Config.Instance.Token);
             System.Threading.Tasks.Task.Run(() =>
-            {
+            {
                 try
                 {
 
@@ -781,9 +785,9 @@
 
         }
 
-        public static List<DoorLock> ReadToken(Residential residential)
+        public static List<LogicLock> ReadToken(Residential residential)
         {
-            List<DoorLock> list = new List<DoorLock>();
+            List<LogicLock> list = new List<LogicLock>();
             string url = "https://global.hdlcontrol.com/HangZhouHdlCloudApi/App/GetSharedHomeApiControl";
             System.Net.WebClient webClient = new System.Net.WebClient();
             System.Collections.Specialized.NameValueCollection postValues = new System.Collections.Specialized.NameValueCollection();
@@ -805,7 +809,7 @@
                     var RequestBaseUrl = jObject["ResponseData"]["RequestBaseUrl"].ToString();
                     var RequestToken = jObject["ResponseData"]["RequestToken"].ToString();
                     Residential lockifon = new Residential();
-                    lockifon.Url = RequestBaseUrl + "/App/GetDoorLockPager";
+                    lockifon.Url = RequestBaseUrl + "/DoorLock/GetDoorLockPager";
                     lockifon.Token = RequestToken;
                     lockifon.Id = Config.Instance.HomeId;
                     lockifon.IsOtherAccountCtrl = true;
@@ -826,9 +830,9 @@
             return list;
         }
 
-        public static List<DoorLock> ReadDoorLock(Residential lockifon)
+        public static List<LogicLock> ReadDoorLock(Residential lockifon)
         {
-            List<DoorLock> list = new List<DoorLock>();
+            List<LogicLock> list = new List<LogicLock>();
             System.Net.WebClient webClient = new System.Net.WebClient();
             System.Collections.Specialized.NameValueCollection postValues = new System.Collections.Specialized.NameValueCollection();
             postValues.Add("RequestVersion", CommonPage.RequestVersion);
@@ -853,7 +857,7 @@
                     for (int i = 0; i < datalist.Count; i++)
                     {
                         var data = JObject.Parse(datalist[i].ToString());
-                        DoorLock doorLock = new DoorLock();
+                        LogicLock doorLock = new LogicLock();
                         doorLock.DoorLockLocalUserId = data["DoorLockLocalUserId"].ToString();
                         doorLock.OpenLockMode = int.Parse(data["OpenLockMode"].ToString());
                         doorLock.CloudAccountId = data["CloudAccountId"].ToString();
@@ -861,9 +865,9 @@
                     }
 
                 }
-                catch
+                catch (Exception e)
                 {
-
+                    var s = e.Message;
                 }
 
             });
@@ -878,44 +882,309 @@
             return list;
         }
 
+        #endregion
+
+        #region ---绗�2绉�
+        /// <summary>
+        /// 鑾峰彇鑷繁+鍏朵粬鎴愬憳淇℃伅
+        /// </summary>
+        /// <param name="doorlockMac">闂ㄩ攣Mac</param>
+        /// <returns></returns>
+        public static async System.Threading.Tasks.Task<List<MembershipIfon>> AllMembers(string doorlockMac)
+        {
+            var userlist = new List<MembershipIfon>();
+            ///鍒ゆ柇APP鐧诲綍杩涙潵鐢ㄦ埛韬唤(涓讳汉锛岀鐞嗗憳锛屾垚鍛�)
+            var doorlockifonlist = await ReadUserListIfon(doorlockMac);
+            var membershipIfon = new MembershipIfon();
+            membershipIfon.MembershipId = Config.Instance.Guid;
+            if (string.IsNullOrEmpty(Config.Instance.Name))
+            {
+                membershipIfon.MembershipName = Config.Instance.Account;
+            }
+            else
+            {
+                membershipIfon.MembershipName = Config.Instance.Name;
+            }
+            foreach (var o in doorlockifonlist)
+            {
+                if (o.CloudAccountId == Config.Instance.Guid)
+                {
+                    LockMode lockMode = new LockMode();
+                    lockMode.OpenMode = o.OpenLockMode;
+                    lockMode.UserId = o.DoorLockLocalUserId;
+                    membershipIfon.UserIdMode.Add(lockMode);
+                }
+            }
+            if (membershipIfon.UserIdMode.Count != 0)
+            {
+                userlist.Add(membershipIfon);
+            }
+
+            if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo != 3)
+            {
+                var pra = new UserCenter.MemberListInfoPra();
+                string result = await UserCenter.UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
+                var listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UserCenter.MemberInfoRes>>(result);
+                for (int i = 0; i < listInfo.Count; i++)
+                {
+
+                    var membership = new MembershipIfon();
+                    var membershipifon = listInfo[i];
+                    membership.MembershipId = membershipifon.SubAccountDistributedMark;
+                    if (string.IsNullOrEmpty(membershipifon.UserName))
+                    {
+                        membership.MembershipName = membershipifon.Account;
+                    }
+                    else
+                    {
+                        membership.MembershipName = membershipifon.UserName;
+
+                    }
+                    for (int j = 0; j < doorlockifonlist.Count; j++)
+                    {
+                        ///鏌ユ壘鎴愬憳浠ュ強鎴愬憳闂ㄩ攣瑙﹀彂婧�(1鎸夐敭/3鍗�/15鎸囩汗)
+                        if (doorlockifonlist[j].CloudAccountId == membershipifon.SubAccountDistributedMark)
+                        {
+                            LockMode lockMode = new LockMode();
+                            lockMode.OpenMode = doorlockifonlist[j].OpenLockMode;
+                            lockMode.UserId = doorlockifonlist[j].DoorLockLocalUserId;
+                            membership.UserIdMode.Add(lockMode);
+                        }
+
+                    }
+                    if (membership.UserIdMode.Count != 0)
+                    {
+                        ///杩囨护鎺夐噸澶嶆暟鎹紱
+                        var str = userlist.Find((c) => { return c.MembershipId == membershipifon.SubAccountDistributedMark; });
+                        if (str == null)
+                        {
+                            userlist.Add(membership);
+                        }
+                    }
+
+                }
+
+            }
+            return userlist;
+        }
+        /// <summary>
+        /// 璇诲彇闂ㄩ攣鎵�鏈夋垚鍛樹俊鎭�
+        /// </summary>
+        /// <param name="doorlockMac">闂ㄩ攣Mac</param>
+        /// <returns></returns>
+        public static async System.Threading.Tasks.Task<List<LogicLock>> ReadUserListIfon(string doorlockMac)
+        {
+            List<LogicLock> list = new List<LogicLock>();
+            var s = await ReadUserList(doorlockMac);
+            var jObject = JObject.Parse(s);
+            if (jObject == null || jObject["StateCode"].ToString() != "Success")
+            {
+                return null;
+            }
+            var pageData = jObject["ResponseData"]["PageData"].ToString();
+            var datalist = JArray.Parse(pageData);
+            for (int i = 0; i < datalist.Count; i++)
+            {
+                var data = JObject.Parse(datalist[i].ToString());
+                LogicLock doorLock = new LogicLock();
+                doorLock.DoorLockLocalUserId = data["DoorLockLocalUserId"].ToString();
+                doorLock.OpenLockMode = int.Parse(data["OpenLockMode"].ToString());
+                doorLock.CloudAccountId = data["CloudAccountId"].ToString();
+                list.Add(doorLock);
+            }
+            return list;
+        }
+
+        public static async System.Threading.Tasks.Task<string> ReadUserList(string doorlockMac)
+        {
+            string s = null;
+            var str = await WebClientAsync(0, "https://global.hdlcontrol.com/HangZhouHdlCloudApi/App/GetHomePager");
+            var jObject = JObject.Parse(str);
+            if (jObject == null || jObject["StateCode"].ToString() != "Success")
+            {
+                return null;
+            }
+            var pageData = jObject["ResponseData"]["PageData"].ToString();
+            var datalist = JArray.Parse(pageData);
+            for (int i = 0; i < datalist.Count; i++)
+            {
+                var data = JObject.Parse(datalist[i].ToString());
+                if (Config.Instance.HomeId == data["Id"].ToString())
+                {
+                    Residential residential = new Residential();
+                    if (Convert.ToBoolean(data["IsOthreShare"].ToString()))
+                    {
+                        //鍒嗕韩鑰匢D
+                        residential.Id = data["Id"].ToString();
+                        //鏄惁鏄垎浜处鍙穂true(鏄垎浜�);false;(涓嶆槸鍒嗕韩)];
+                        residential.IsOthreShare = Convert.ToBoolean(data["IsOthreShare"].ToString());
+                        //鍒嗕韩鑰呬綇瀹匢D
+                        residential.MainUserDistributedMark = data["MainUserDistributedMark"].ToString();
+                        residential.IsOtherAccountCtrl = true;
+                        residential.doorlockmac = doorlockMac;
+                        residential.Url = "https://global.hdlcontrol.com/HangZhouHdlCloudApi/App/GetSharedHomeApiControl";
+                        s = await ReadUserDoorLock(residential);
+                    }
+                    else
+                    {
+                        residential.Url = "https://global.hdlcontrol.com/HangZhouHdlCloudApi/DoorLock/GetDoorLockPager";
+                        residential.Token = Config.Instance.Token;
+                        residential.Id = Config.Instance.HomeId;
+                        residential.IsOtherAccountCtrl = false;
+                        residential.doorlockmac = doorlockMac;
+                        s = await WebClientAsync(2, residential.Url, residential);
+                    }
+
+                }
+            }
+            return s;
+        }
+
+        public static async System.Threading.Tasks.Task<string> ReadUserDoorLock(Residential residential)
+        {
+
+            var s = await WebClientAsync(1, residential.Url, residential);
+
+            var jObject = JObject.Parse(s);
+            if (jObject == null || jObject["StateCode"].ToString() != "Success")
+            {
+                return null;
+            }
+            var RequestBaseUrl = jObject["ResponseData"]["RequestBaseUrl"].ToString();
+            var RequestToken = jObject["ResponseData"]["RequestToken"].ToString();
+            Residential lockifon = new Residential();
+            lockifon.Url = RequestBaseUrl + "/DoorLock/GetDoorLockPager";
+            lockifon.Token = RequestToken;
+            lockifon.Id = Config.Instance.HomeId;
+            lockifon.IsOtherAccountCtrl = true;
+            lockifon.doorlockmac = residential.doorlockmac;
+            return await WebClientAsync(2, lockifon.Url, lockifon);
+        }
+
+        /// <summary>
+        /// 璇锋眰鏈嶅姟鍣ㄧ殑鏂规硶
+        /// </summary>
+        /// <param name="postValues">post鍙傛暟</param>
+        /// <param name="url"></param>
+        /// <returns></returns>
+        public static async System.Threading.Tasks.Task<string> WebClientAsync(int value, string url, Residential residential = null)
+        {
+
+            NameValueCollection postValues = new NameValueCollection();
+            if (value == 0)
+            {
+                postValues.Add("RequestVersion", CommonPage.RequestVersion);
+                postValues.Add("ReqDto.LoginAccessToken", Config.Instance.Token);
+
+            }
+            else if (value == 1)
+            {
+                postValues.Add("RequestVersion", CommonPage.RequestVersion);
+                postValues.Add("LoginAccessToken", Config.Instance.Token);
+                postValues.Add("MainAccountId", residential.MainUserDistributedMark);
+                postValues.Add("SharedHid", residential.Id);
+            }
+            else if (value == 2)
+            {
+                postValues.Add("RequestVersion", CommonPage.RequestVersion);
+                postValues.Add("LoginAccessToken", residential.Token);
+                postValues.Add("HomeId", residential.Id);
+                postValues.Add("DoorLockId", residential.doorlockmac);//闂ㄩ攣Mac
+                postValues.Add("IsOtherAccountCtrl", residential.IsOtherAccountCtrl.ToString());
+            }
+            System.Net.WebClient webClient = new System.Net.WebClient();
+            byte[] responseArray = webClient.UploadValues(url, postValues);
+            return System.Text.Encoding.UTF8.GetString(responseArray);
+        }
+
+
+
+        #endregion
+
         public class Residential
         {
+            /// <summary>
+            /// 浣忓畢ID
+            /// </summary>
             public string Id = string.Empty;
+            /// <summary>
+            /// 褰撳墠浣忓畢鏄笉鏄叾浠栦富甯愬彿鍒嗕韩杩囨潵鐨�
+            /// </summary>
             public bool IsOthreShare;
+            /// <summary>
+            /// 褰撳墠浣忓畢鏄笉鏄叾浠栦富甯愬彿鍒嗕韩杩囨潵鐨勪富甯愬彿鐨勫垎甯冨紡Id
+            /// </summary>
             public string MainUserDistributedMark = string.Empty;
             public string Url = string.Empty;
             public string Token = string.Empty;
             public bool IsOtherAccountCtrl;
+            /// <summary>
+            /// 褰撳墠闂ㄩ攣mac
+            /// </summary>
             public string doorlockmac;
         }
 
-        public class DoorLock
+        public class LogicLock
         {
-            public string DoorLockLocalUserId = string.Empty;
-            public int OpenLockMode;
-            public string CloudAccountId = string.Empty;
             /// <summary>
-            /// 韬唤+瑙﹀彂婧�(0鎸夐敭/3鍗�/15鎸囩汗)
+            /// 瑙﹀彂婧怚D
             /// </summary>
-            public string UserIdMode
-            {
-                get
-                {
-                    return DoorLockLocalUserId + "_" + OpenLockMode.ToString();
-                }
-            }
+            public string DoorLockLocalUserId = string.Empty;
+            /// <summary>
+            /// 瑙﹀彂婧愭ā寮�(0:瀵嗙爜;3:鍗�;15:鎸囩汗;)
+            /// </summary>
+            public int OpenLockMode;
+            /// <summary>
+            /// 璇嗗埆鐢ㄦ埛韬唤
+            /// </summary>
+            public string CloudAccountId = string.Empty;
         }
 
         public class MembershipIfon
         {
+            /// <summary>
+            /// 璇嗗埆鐢ㄦ埛韬唤
+            /// </summary>
             public string MembershipId = string.Empty;
-            public List<string> UserIdMode = new List<string>();
+            /// <summary>
+            /// 瑙﹀彂婧怚D+妯″紡(0:瀵嗙爜;3:鍗�;15:鎸囩汗;)
+            /// </summary>
+            public List<LockMode> UserIdMode = new List<LockMode>();
+            /// <summary>
+            /// 鐢ㄦ埛鏄电О
+            /// </summary>
             public string MembershipName = string.Empty;
         }
 
-        public static List<MembershipIfon> UserList = new List<MembershipIfon>();
-
-
+        public class LockMode
+        {
+            /// <summary>
+            /// 瑙﹀彂婧怚D
+            /// </summary>
+            public string UserId = string.Empty;
+            /// <summary>
+            /// 瑙﹀彂婧愭ā寮�(0:瀵嗙爜;3:鍗�;15:鎸囩汗;)
+            /// </summary>
+            public int OpenMode;
+
+        }
+        /// <summary>
+        /// 鑷姩鍖栭棬閿佹垚鍛樹俊鎭綔涓烘潯浠跺垪琛�
+        /// </summary>
+        public static List<MembershipIfon> UserList = new List<MembershipIfon>();
+        /// <summary>
+        ///鑱斿姩浜嬩欢闂ㄩ攣鎴愬憳淇℃伅浣滀负鏉′欢鐨勫垪琛�
+        /// </summary>
+        public static List<MembershipIfon> LinkageventLockList = new List<MembershipIfon>();
+
+        /// <summary>
+        /// 褰撳墠闂ㄩ攣
+        /// </summary>
+        public static ZigBee.Device.DoorLock CurrentDoorLock = null;
+        /// <summary>
+        /// 褰撳墠鐢ㄦ埛鐨勪俊鎭�
+        /// </summary>
+        public static UserCenter.MemberInfoRes UserMemberInfoRes = null;
         #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/TemplateDeviceAction.cs b/ZigbeeApp/Shared/Phone/Device/Logic/TemplateDeviceAction.cs
index 6d20209..344aac1 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/TemplateDeviceAction.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/TemplateDeviceAction.cs
@@ -42,7 +42,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(160),
-                Width = Application.GetRealWidth(300),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.devicestate,
@@ -144,7 +144,7 @@
 
             middle = new VerticalScrolViewLayout();
             middle.Y = devicetypehorizontalScrol.Bottom + Application.GetRealHeight(40);
-            middle.Height = Application.GetRealHeight(1920) - devicetypehorizontalScrol.Y;
+            middle.Height = Application.GetRealHeight(1920 - 40) - devicetypehorizontalScrol.Bottom;
             middle.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
             middle.X = Application.GetRealWidth(58);
             middle.Radius = (uint)Application.GetRealHeight(50);
@@ -160,7 +160,6 @@
             };
 
 
-
             ///妤煎眰鐐瑰嚮浜嬩欢
             EventHandler<MouseEventArgs> foorlclick = (sender, e) =>
             {
@@ -171,38 +170,73 @@
                 {
                     flMain.RemoveFromParent();
                 };
+                var foolrbjicon = new FrameLayout
+                {
+
+                    Width = Application.GetRealWidth(450),
+                    Height = Application.GetRealHeight(780),
+                    X = Application.GetRealWidth(1080 - 468 - 35),
+                    Y = Application.GetRealHeight(184),
+                    BackgroundImagePath = "Item/SelectFloor_Right.png",
+                };
+                flMain.AddChidren(foolrbjicon);
+
+                var btnfoolrtext = new Button
+                {
+                    Width = Application.GetRealWidth(450),
+                    Height = Application.GetRealHeight(150),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    X = Application.GetRealWidth(80),
+                    TextID = MyInternationalizationString.selecfoolr,
+                };
+                foolrbjicon.AddChidren(btnfoolrtext);
+
                 var foolrbj = new VerticalScrolViewLayout
                 {
 
-                    Width = Application.GetRealWidth(400),
-                    Height = Application.GetRealHeight(600),
-                    X = Application.GetRealWidth(1080 - 400 - 60),
-                    Y = Application.GetRealHeight(184 + 50),
-                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
-                    Radius = (uint)Application.GetRealHeight(30),
+                    Width = Application.GetRealWidth(450),
+                    Height = foolrbjicon.Height - btnfoolrtext.Height,
+                    X = Application.GetRealWidth(80),
+                    Y = btnfoolrtext.Bottom,
                 };
-                flMain.AddChidren(foolrbj);
+                foolrbjicon.AddChidren(foolrbj);
+
                 foreach (var foolr in Config.Instance.Home.FloorDics)
                 {
-
-                    var foolrRowLayout = new FrameLayout
+                    var foolrRowLayout = new RowLayout
                     {
                         Height = Application.GetRealHeight(150),
+                        LineColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
                     };
                     foolrbj.AddChidren(foolrRowLayout);
+
+                    var btnfoolricon = new Button
+                    {
+                        Width = Application.GetRealWidth(81),
+                        Height = Application.GetRealHeight(81),
+                        UnSelectedImagePath = "Floor/Floor.png",
+                        Gravity = Gravity.CenterVertical,
+                    };
+                    foolrRowLayout.AddChidren(btnfoolricon);
+
 
                     var btnfoolrname = new Button
                     {
                         Width = Application.GetRealWidth(250),
-                        Height = Application.GetRealHeight(160),
+                        Height = Application.GetRealHeight(150),
                         Text = foolr.Value,
-                        TextAlignment = TextAlignment.Center,
-                        TextColor = ZigbeeColor.Current.LogicTextBlackColor,
-                        //SelectedTextColor=0xfffc744b,
+                        TextAlignment = TextAlignment.CenterLeft,
+                        TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                         Tag = foolr.Key,
+                        X = btnfoolricon.Right + Application.GetRealWidth(12),
                     };
                     foolrRowLayout.AddChidren(btnfoolrname);
-
+                    if (foolrname.Text == foolr.Value)
+                    {
+                        btnfoolricon.UnSelectedImagePath = "Floor/FloorSelected.png";
+                        btnfoolrname.TextColor = ZigbeeColor.Current.LogicTextBlackColor;
+                    }
 
                     EventHandler<MouseEventArgs> foolrnameclick = (sender13, e13) =>
                     {
@@ -213,6 +247,7 @@
                         flMain.RemoveFromParent();
                         var list = Send.GetRoomList(btnfoolrname.Tag.ToString());
                         AllRoomView(list, deviceTypeList, roomhorizontalScrol, devicetypehorizontalScrol);
+
                     };
                     foolrRowLayout.MouseUpEventHandler += foolrnameclick;
                     btnfoolrname.MouseUpEventHandler += foolrnameclick;
@@ -307,6 +342,7 @@
                         }
                         list.Add(device);
                     }
+                 
                     AllDeviceTypeView(list, devicetypehorizontalScrol);
 
                 }
@@ -672,9 +708,9 @@
                 TextID = MyInternationalizationString.security,
                 TextColor = ZigbeeColor.Current.LogicBtnTypeColor,
                 Height = Application.GetRealHeight(140),
-                Width = Application.GetRealWidth(320),
+                Width = Application.GetRealWidth(420),
                 TextAlignment = TextAlignment.Center,
-                X = Btncancel.Right + Application.GetRealWidth(100),
+                X = Btncancel.Right + Application.GetRealWidth(50),
                 TextSize = 16,
                 Text = common.DeviceEpointName,
             };
@@ -686,7 +722,7 @@
                 Height = Application.GetRealHeight(140),
                 Width = Application.GetRealWidth(200),
                 TextAlignment = TextAlignment.CenterRight,
-                X = Btntitle.Right + Application.GetRealWidth(100),
+                X = Btntitle.Right + Application.GetRealWidth(50),
 
             };
             timetype.AddChidren(Btncomplete);
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/TemplateDeviceCondition.cs b/ZigbeeApp/Shared/Phone/Device/Logic/TemplateDeviceCondition.cs
index 1489f2e..60c4509 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/TemplateDeviceCondition.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/TemplateDeviceCondition.cs
@@ -43,7 +43,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(160),
-                Width = Application.GetRealWidth(300),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.devicestate,
@@ -143,7 +143,7 @@
 
             middle = new VerticalScrolViewLayout();
             middle.Y = devicetypehorizontalScrol.Bottom + Application.GetRealHeight(40);
-            middle.Height = Application.GetRealHeight(1920) - devicetypehorizontalScrol.Y;
+            middle.Height = Application.GetRealHeight(1920 - 40) - devicetypehorizontalScrol.Bottom;
             middle.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
             middle.X = Application.GetRealWidth(58);
             middle.Radius = (uint)Application.GetRealHeight(50);
@@ -158,7 +158,7 @@
             };
 
             ///妤煎眰鐐瑰嚮浜嬩欢
-            EventHandler<MouseEventArgs> foorlclick=(sender,e) =>
+            EventHandler<MouseEventArgs> foorlclick = (sender, e) =>
             {
 
                 var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
@@ -167,37 +167,73 @@
                 {
                     flMain.RemoveFromParent();
                 };
+                var foolrbjicon = new FrameLayout
+                {
+
+                    Width = Application.GetRealWidth(450),
+                    Height = Application.GetRealHeight(780),
+                    X = Application.GetRealWidth(1080 - 468 - 35),
+                    Y = Application.GetRealHeight(184),
+                    BackgroundImagePath = "Item/SelectFloor_Right.png",
+                };
+                flMain.AddChidren(foolrbjicon);
+
+                var btnfoolrtext = new Button
+                {
+                    Width = Application.GetRealWidth(450),
+                    Height = Application.GetRealHeight(150),
+                    TextAlignment = TextAlignment.CenterLeft,
+                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                    X = Application.GetRealWidth(80),
+                    TextID = MyInternationalizationString.selecfoolr,
+                };
+                foolrbjicon.AddChidren(btnfoolrtext);
+
                 var foolrbj = new VerticalScrolViewLayout
                 {
 
-                    Width = Application.GetRealWidth(400),
-                    Height = Application.GetRealHeight(600),
-                    X = Application.GetRealWidth(1080 - 400 - 60),
-                    Y = Application.GetRealHeight(184 + 50),
-                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
-                    Radius = (uint)Application.GetRealHeight(30),
+                    Width = Application.GetRealWidth(450),
+                    Height = foolrbjicon.Height - btnfoolrtext.Height,
+                    X = Application.GetRealWidth(80),
+                    Y = btnfoolrtext.Bottom,
                 };
-                flMain.AddChidren(foolrbj);
-                ///榛樿璋冭瘯
+                foolrbjicon.AddChidren(foolrbj);
+
                 foreach (var foolr in Config.Instance.Home.FloorDics)
                 {
-                    var foolrRowLayout = new FrameLayout
+                    var foolrRowLayout = new RowLayout
                     {
                         Height = Application.GetRealHeight(150),
+                        LineColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
                     };
                     foolrbj.AddChidren(foolrRowLayout);
+
+                    var btnfoolricon = new Button
+                    {
+                        Width = Application.GetRealWidth(81),
+                        Height = Application.GetRealHeight(81),
+                        UnSelectedImagePath = "Floor/Floor.png",
+                        Gravity = Gravity.CenterVertical,
+                    };
+                    foolrRowLayout.AddChidren(btnfoolricon);
+
 
                     var btnfoolrname = new Button
                     {
                         Width = Application.GetRealWidth(250),
-                        Height = Application.GetRealHeight(160),
+                        Height = Application.GetRealHeight(150),
                         Text = foolr.Value,
-                        TextAlignment = TextAlignment.Center,
-                        TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+                        TextAlignment = TextAlignment.CenterLeft,
+                        TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                         Tag = foolr.Key,
+                        X = btnfoolricon.Right + Application.GetRealWidth(12),
                     };
                     foolrRowLayout.AddChidren(btnfoolrname);
-
+                    if (foolrname.Text == foolr.Value)
+                    {
+                        btnfoolricon.UnSelectedImagePath = "Floor/FloorSelected.png";
+                        btnfoolrname.TextColor = ZigbeeColor.Current.LogicTextBlackColor;
+                    }
 
                     EventHandler<MouseEventArgs> foolrnameclick = (sender13, e13) =>
                     {
@@ -705,9 +741,9 @@
                 TextID = MyInternationalizationString.security,
                 TextColor = ZigbeeColor.Current.LogicBtnTypeColor,
                 Height = Application.GetRealHeight(140),
-                Width = Application.GetRealWidth(320),
+                Width = Application.GetRealWidth(420),
                 TextAlignment = TextAlignment.Center,
-                X = Btncancel.Right + Application.GetRealWidth(100),
+                X = Btncancel.Right + Application.GetRealWidth(50),
                 TextSize = 16,
                 Text = common.DeviceEpointName,
             };
@@ -719,7 +755,7 @@
                 Height = Application.GetRealHeight(140),
                 Width = Application.GetRealWidth(200),
                 TextAlignment = TextAlignment.CenterRight,
-                X = Btntitle.Right + Application.GetRealWidth(100),
+                X = Btntitle.Right + Application.GetRealWidth(50),
 
             };
             timetype.AddChidren(Btncomplete);
@@ -1360,42 +1396,6 @@
                     break;
                 case DeviceType.DoorLock:
                     {
-                        #region  ------
-                        var doorlockifonlist = Send.ReadDoorLockIfon("ccccccfffe300347");
-                        //var list = Send.ReadDoorLockIfon(common.DeviceAddr);
-                        var pra = new UserCenter.MemberListInfoPra();
-                        string result = await UserCenter.UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
-                        var listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UserCenter.MemberInfoRes>>(result);
-                        Send.UserList.Clear();
-                        for (int i = 0; i < listInfo.Count; i++)
-                        {
-                            var membership = new Send.MembershipIfon();
-                            var membershipifon = listInfo[i];
-                            for (int j = 0; j < doorlockifonlist.Count; j++)
-                            {
-                                ///鏌ユ壘鎴愬憳浠ュ強鎴愬憳闂ㄩ攣瑙﹀彂婧�(1鎸夐敭/3鍗�/15鎸囩汗)
-                                if (doorlockifonlist[j].CloudAccountId == membershipifon.SubAccountDistributedMark)
-                                {
-                                    membership.UserIdMode.Add(doorlockifonlist[j].UserIdMode);
-                                    membership.MembershipName = membershipifon.UserName;
-                                    membership.MembershipId = membershipifon.SubAccountDistributedMark;
-
-                                }
-
-                            }
-                            if (membership.UserIdMode.Count != 0)
-                            {
-                                ///杩囨护鎺夐噸澶嶆暟鎹紱
-                                var str = Send.UserList.Find((c) => { return c.MembershipId == membership.MembershipId; });
-                                if (str == null)
-                                {
-                                    Send.UserList.Add(membership);
-                                }
-                            }
-
-                        }
-                        #endregion
-
                         var memberList = new MemberList();
                         UserView.HomePage.Instance.AddChidren(memberList);
                         UserView.HomePage.Instance.PageIndex += 1;
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/TemplatePage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/TemplatePage.cs
index f78d342..b761c62 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/TemplatePage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/TemplatePage.cs
@@ -40,7 +40,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.selection,
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/TimePage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/TimePage.cs
index f38c40f..74f0bea 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/TimePage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/TimePage.cs
@@ -36,7 +36,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.addtime,
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/TimePoint.cs b/ZigbeeApp/Shared/Phone/Device/Logic/TimePoint.cs
index dc7cbca..cc7cc44 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/TimePoint.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/TimePoint.cs
@@ -84,7 +84,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 TextID = MyInternationalizationString.addtime,
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/WeekPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/WeekPage.cs
index e23911d..60d76fb 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/WeekPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/WeekPage.cs
@@ -33,7 +33,7 @@
                 TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                 TextAlignment = TextAlignment.CenterLeft,
                 X = Application.GetRealWidth(176),
-                Width = Application.GetRealWidth(400),
+                Width = Application.GetRealWidth(600),
                 Height = Application.GetRealHeight(69),
                 Y = Application.GetRealHeight(92),
                 Text = titlename,
diff --git a/ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs b/ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs
index e28ed1a..4ff8617 100755
--- a/ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Room/EditRoom.cs
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using Shared.Common;
 using Shared.Phone.Device.CommonForm;
+using Shared.Phone.UserCenter;
 using Shared.Phone.UserView;
 
 namespace Shared.Phone.Device.Room
@@ -42,6 +43,14 @@
 
             AddBodyView();
 
+        }
+
+        public override void RemoveFromParent()
+        {
+            HdlDeviceAttributeLogic.Current.RemoveEvent("TemperatrueDevice");
+            HdlDeviceAttributeLogic.Current.RemoveEvent("HumidityDevice");
+
+            base.RemoveFromParent();
         }
 
         #region Add____________________________________
@@ -119,7 +128,7 @@
             var nameRow = new DeviceInfoEditRow(170);
             nameRow.Init();
             nameRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.RoomName)} :");
-            nameRow.SetPlaceHoldText(room.Name);
+            nameRow.SetTitle(room.Name);
             infoFL.AddChidren(nameRow);
 
             var floorRow = new DeviceInfoRow(308);
@@ -127,7 +136,7 @@
             floorRow.SetTipTitle($"{Language.StringByID(R.MyInternationalizationString.BelongFloor)} :");
             floorRow.SetTitle(room.FloorName);
             infoFL.AddChidren(floorRow);
-            floorRow.NextBtn.MouseUpEventHandler += (sender, e) =>
+            floorRow.ClickBtn.MouseUpEventHandler += (sender, e) =>
             {
                 if (Config.Instance.Home.FloorDics != null)
                 {
@@ -147,25 +156,118 @@
                 }
             };
 
+
             var temperatureRow = new DeviceInfoRow(446);
             temperatureRow.Init();
             temperatureRow.SetTipTitle(R.MyInternationalizationString.Temperature);
             temperatureRow.SetTitle("26.8鈩�");
             temperatureRow.NameText.TextAlignment = TextAlignment.CenterRight;
             infoFL.AddChidren(temperatureRow);
-            temperatureRow.NextBtn.MouseUpEventHandler += (sender, e) =>
+            temperatureRow.ClickBtn.MouseUpEventHandler += (sender, e) =>
             {
                 var tem = new RoomTemperatureSetting { };
                 HomePage.Instance.AddChidren(tem);
                 HomePage.Instance.PageIndex += 1;
+                tem.tempDevice = Common.LocalDevice.Current.GetDevice(room.TemperatrueDevice);
                 tem.Show(room);
-                tem.action = (selectTemp) =>
+                tem.selectDeviceAction = (selectTemp) =>
                 {
+                    if(selectTemp==null)
+                    {
+                        return;
+                    }
+                    room.TemperatrueDevice =$"{selectTemp.DeviceAddr}{selectTemp.DeviceEpoint}";
+                    
+                    HdlDeviceAttributeLogic.Current.RemoveEvent("TemperatrueDevice");
+                    HdlDeviceAttributeLogic.Current.AddAttributeEvent("TemperatrueDevice", "DeviceStatusReport", (Action<ZigBee.Device.CommonDevice>)((report) =>
+                    {
+                        string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(report);
+                        if (room.TemperatrueDevice != mainKeys)
+                        {
+                            return;
+                        }
+                        //绉婚櫎鎺変簨浠�
+                        HdlDeviceAttributeLogic.Current.RemoveEvent("TemperatrueDevice");
 
+                        foreach (var data in report.DeviceStatusReport.AttriBute)
+                        {
+                            if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
+                            {
+                                if (data.AttriButeData == 0)
+                                {
+                                    //0鈩�
+                                    temperatureRow.NameText.Text = "0.0鈩�";
+                                }
+                                else if (data.AttriButeData > 32767)
+                                {
+                                    //璐熸暟(鐗规畩澶勭悊)
+                                    string strValue = (data.AttriButeData - 65536).ToString();
+                                    //灏忔暟鐐归渶瑕佷竴浣�
+                                    strValue = strValue.Substring(0, strValue.Length - 1);
+                                    temperatureRow.NameText.Text = strValue.Insert(strValue.Length - 1, ".") + "鈩�";
+                                }
+                                else
+                                {
+                                    //灏忔暟鐐归渶瑕佷竴浣�
+                                    string strValue = data.AttriButeData.ToString();
+                                    strValue = strValue.Substring(0, strValue.Length - 1);
+                                    temperatureRow.NameText.Text = strValue.Insert(strValue.Length - 1, ".") + "鈩�";
+                                }
+                            }
+                        }
+                    }));
+                    //鍙戦�佽幏鍙栨俯搴︾殑鍛戒护
+                    (selectTemp as ZigBee.Device.TemperatureSensor).ReadTemperatureOrHumidity();
                 };
-
             };
 
+            if (string.IsNullOrEmpty(room.TemperatrueDevice) == false)
+            {
+                HdlDeviceAttributeLogic.Current.RemoveEvent("TemperatrueDevice");
+                HdlDeviceAttributeLogic.Current.AddAttributeEvent("TemperatrueDevice", "DeviceStatusReport", (Action<ZigBee.Device.CommonDevice>)((report) =>
+                {
+                    string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(report);
+                    if (room.TemperatrueDevice != mainKeys)
+                    {
+                        return;
+                    }
+                    //绉婚櫎鎺変簨浠�
+                    HdlDeviceAttributeLogic.Current.RemoveEvent("TemperatrueDevice");
+
+                    foreach (var data in report.DeviceStatusReport.AttriBute)
+                    {
+                        if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
+                        {
+                            if (data.AttriButeData == 0)
+                            {
+                                //0鈩�
+                                temperatureRow.NameText.Text = "0.0鈩�";
+                            }
+                            else if (data.AttriButeData > 32767)
+                            {
+                                //璐熸暟(鐗规畩澶勭悊)
+                                string strValue = (data.AttriButeData - 65536).ToString();
+                                //灏忔暟鐐归渶瑕佷竴浣�
+                                strValue = strValue.Substring(0, strValue.Length - 1);
+                                temperatureRow.NameText.Text = strValue.Insert(strValue.Length - 1, ".") + "鈩�";
+                            }
+                            else
+                            {
+                                //灏忔暟鐐归渶瑕佷竴浣�
+                                string strValue = data.AttriButeData.ToString();
+                                strValue = strValue.Substring(0, strValue.Length - 1);
+                                temperatureRow.NameText.Text = strValue.Insert(strValue.Length - 1, ".") + "鈩�";
+                            }
+                        }
+                    }
+                }));
+                //鍙戦�佽幏鍙栨俯搴︾殑鍛戒护
+                var dev = Common.LocalDevice.Current.GetDevice(room.TemperatrueDevice);
+                if (dev != null)
+                {
+                    (dev as ZigBee.Device.TemperatureSensor).ReadTemperatureOrHumidity();
+                }
+            }
 
             var humidityRow = new DeviceInfoRow(585);
             humidityRow.Init();
@@ -173,17 +275,91 @@
             humidityRow.SetTitle("66.5%");
             humidityRow.NameText.TextAlignment = TextAlignment.CenterRight;
             infoFL.AddChidren(humidityRow);
-            humidityRow.NextBtn.MouseUpEventHandler += (sender, e) =>
+            humidityRow.ClickBtn.MouseUpEventHandler += (sender, e) =>
             {
                 var tem = new RoomHumiditySetting { };
                 HomePage.Instance.AddChidren(tem);
                 HomePage.Instance.PageIndex += 1;
                 tem.Show(room);
-                tem.action = (selectTemp) =>
+                tem.selectDeviceAction = (selectTemp) =>
                 {
+                    if (selectTemp == null)
+                    {
+                        return;
+                    }
+                    room.HumidityDevice = $"{selectTemp.DeviceAddr}{selectTemp.DeviceEpoint}";
 
+                    HdlDeviceAttributeLogic.Current.RemoveEvent("HumidityDevice");
+                    HdlDeviceAttributeLogic.Current.AddAttributeEvent("HumidityDevice", "DeviceStatusReport", (report) =>
+                    {
+                        string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(report);
+                        if (room.HumidityDevice != mainKeys)
+                        {
+                            return;
+                        }
+                        //绉婚櫎鎺変簨浠�
+                        HdlDeviceAttributeLogic.Current.RemoveEvent("HumidityDevice");
+                        foreach (var data in report.DeviceStatusReport.AttriBute)
+                        {
+                            if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
+                            {
+                                if (data.AttriButeData == 0)
+                                {
+                                    //0
+                                    humidityRow.NameText.Text = "0.0%";
+                                }
+                                else
+                                {
+                                    //灏忔暟鐐归渶瑕佷竴浣�(婀垮害娌℃湁璐熸暟)
+                                    string strValue = data.AttriButeData.ToString();
+                                    strValue = strValue.Substring(0, strValue.Length - 1);
+                                    humidityRow.NameText.Text = strValue.Insert(strValue.Length - 1, ".") + "%";
+                                }
+                            }
+                        }
+                    });
+                    //鍙戦�佽幏鍙栨箍搴︾殑鍛戒护
+                    (selectTemp as ZigBee.Device.TemperatureSensor).ReadTemperatureOrHumidity();
                 };
             };
+            if (string.IsNullOrEmpty(room.HumidityDevice) == false)
+            {
+                HdlDeviceAttributeLogic.Current.RemoveEvent("HumidityDevice");
+                HdlDeviceAttributeLogic.Current.AddAttributeEvent("HumidityDevice", "DeviceStatusReport", (report) =>
+                {
+                    string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(report);
+                    if (room.HumidityDevice != mainKeys)
+                    {
+                        return;
+                    }
+                    //绉婚櫎鎺変簨浠�
+                    HdlDeviceAttributeLogic.Current.RemoveEvent("HumidityDevice");
+                    foreach (var data in report.DeviceStatusReport.AttriBute)
+                    {
+                        if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
+                        {
+                            if (data.AttriButeData == 0)
+                            {
+                                //0
+                                humidityRow.NameText.Text = "0.0%";
+                            }
+                            else
+                            {
+                                //灏忔暟鐐归渶瑕佷竴浣�(婀垮害娌℃湁璐熸暟)
+                                string strValue = data.AttriButeData.ToString();
+                                strValue = strValue.Substring(0, strValue.Length - 1);
+                                humidityRow.NameText.Text = strValue.Insert(strValue.Length - 1, ".") + "%";
+                            }
+                        }
+                    }
+                });
+                //鍙戦�佽幏鍙栨箍搴︾殑鍛戒护
+                var dev = Common.LocalDevice.Current.GetDevice(room.HumidityDevice);
+                if (dev != null)
+                {
+                    (dev as ZigBee.Device.TemperatureSensor).ReadTemperatureOrHumidity();
+                }
+            }
 
             var shareRow = new DeviceInfoRow(723);
             shareRow.Init();
@@ -201,14 +377,18 @@
                 {
 
                 };
-
             };
 
 
             var confirm = new Device.CommonForm.CompleteButton(1700, 700, 127);
             confirm.SetTitle(R.MyInternationalizationString.Confrim);
             AddChidren(confirm);
-
+            confirm.MouseUpEventHandler += (sender, e) =>
+            {
+                room.Name = nameRow.NameText.Text.Trim();
+                room.Save();
+                RemoveFromParent();
+            };
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/Device/Room/RoomHumiditySetting.cs b/ZigbeeApp/Shared/Phone/Device/Room/RoomHumiditySetting.cs
index 0dcac8e..83195f4 100755
--- a/ZigbeeApp/Shared/Phone/Device/Room/RoomHumiditySetting.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Room/RoomHumiditySetting.cs
@@ -1,6 +1,8 @@
 锘縰sing System;
+using System.Collections.Generic;
 using Shared.Common;
 using Shared.Phone.Device.CommonForm;
+using ZigBee.Device;
 
 namespace Shared.Phone.Device.Room
 {
@@ -22,7 +24,16 @@
         /// <summary>
         /// The action.
         /// </summary>
-        public Action<string> action;
+        public Action<CommonDevice> selectDeviceAction;
+
+        /// <summary>
+        /// tempDeviceRow
+        /// </summary>
+        private DeviceInfoWithZoneRow tempDeviceRow = null;
+        /// <summary>
+        /// tempDevice
+        /// </summary>
+        public CommonDevice tempDevice;
 
         #endregion
 
@@ -83,10 +94,50 @@
             var confirm = new Device.CommonForm.CompleteButton(1700, 700, 127);
             confirm.SetTitle(R.MyInternationalizationString.Save);
             AddChidren(confirm);
-
-            for (int i = 0; i < 15; i++)
+            confirm.MouseUpEventHandler += (sender, e) =>
             {
-                AddItem(verticalScrolView, 20 + i * (127 + 20));
+                RemoveFromParent();
+                if (tempDevice != null)
+                {
+                    selectDeviceAction?.Invoke(tempDevice);
+                }
+            };
+
+            var deviceList = GetHumidityDevice();
+
+            for (int i = 0; i < deviceList.Count; i++)
+            {
+                var device = deviceList[i];
+                var devRow = new DeviceInfoWithZoneRow(20 + i * (127 + 20));
+                verticalScrolView.AddChidren(devRow);
+                devRow.Init();
+                devRow.SetIcon(device.IconPath);
+                devRow.SetName(device.DeviceName);
+                devRow.SetZone(room.FloorName + ", " + room.Name);
+
+                if (tempDevice != null && tempDevice == device)
+                {
+                    tempDeviceRow = devRow;
+                    tempDevice = device;
+                    devRow.SetStatu(true);
+                }
+                else
+                {
+                    if (i == 0 && tempDevice == null)
+                    {
+                        tempDeviceRow = devRow;
+                        tempDevice = device;
+                        devRow.SetStatu(true);
+                    }
+                }
+
+                devRow.ClickButton.MouseUpEventHandler += (sender, e) =>
+                {
+                    tempDeviceRow.SetStatu(false);
+                    devRow.SetStatu(true);
+                    tempDeviceRow = devRow;
+                    tempDevice = device;
+                };
             }
 
         }
@@ -105,6 +156,22 @@
             dev.SetZone(room.FloorName + ", " + room.Name);
         }
 
+        /// <summary>
+        /// 婀垮害浼犳劅鍣ㄥ垪琛�
+        /// </summary>
+        private List<ZigBee.Device.CommonDevice> GetHumidityDevice()
+        {
+            var listDevice = new List<ZigBee.Device.CommonDevice>();
+            foreach (var device in Common.LocalDevice.Current.listAllDevice)
+            {
+                //鑾峰彇婀垮害浼犳劅鍣�
+                if (device is ZigBee.Device.TemperatureSensor && ((ZigBee.Device.TemperatureSensor)device).SensorDiv == 2)
+                {
+                    listDevice.Add(device);
+                }
+            }
+            return listDevice;
+        }
         #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/Device/Room/RoomTemperatureSetting.cs b/ZigbeeApp/Shared/Phone/Device/Room/RoomTemperatureSetting.cs
index eab1d72..bccc36e 100755
--- a/ZigbeeApp/Shared/Phone/Device/Room/RoomTemperatureSetting.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Room/RoomTemperatureSetting.cs
@@ -1,6 +1,8 @@
 锘縰sing System;
+using System.Collections.Generic;
 using Shared.Common;
 using Shared.Phone.Device.CommonForm;
+using ZigBee.Device;
 
 namespace Shared.Phone.Device.Room
 {
@@ -14,7 +16,7 @@
         /// <summary>
         /// The action.
         /// </summary>
-        public Action<string> action;
+        public Action<CommonDevice> selectDeviceAction;
         /// <summary>
         /// verticalScrolView
         /// </summary>
@@ -23,6 +25,14 @@
         /// The room.
         /// </summary>
         public Shared.Common.Room room;
+        /// <summary>
+        /// tempDeviceRow
+        /// </summary>
+        private DeviceInfoWithZoneRow tempDeviceRow = null;
+        /// <summary>
+        /// tempDevice
+        /// </summary>
+        public CommonDevice tempDevice;
 
         #endregion
 
@@ -83,26 +93,67 @@
             var confirm = new Device.CommonForm.CompleteButton(1700, 700, 127);
             confirm.SetTitle(R.MyInternationalizationString.Save);
             AddChidren(confirm);
-
-            for(int i=0;i<15;i++)
+            confirm.MouseUpEventHandler += (sender, e) =>
             {
-                AddItem(verticalScrolView, 20 + i * (127 + 20));
-            }
+                RemoveFromParent();
+                if(tempDevice!=null)
+                {
+                    selectDeviceAction?.Invoke(tempDevice);
+                }
+            };
 
+            var deviceList = GetTemperatrueDevices();
+            for (int i = 0; i < deviceList.Count; i++)
+            {
+                var device = deviceList[i];
+                var devRow = new DeviceInfoWithZoneRow(20 + i * (127 + 20));
+                verticalScrolView.AddChidren(devRow);
+                devRow.Init();
+                devRow.SetIcon(device.IconPath);
+                devRow.SetName(device.DeviceName);
+                devRow.SetZone(room.FloorName + ", " + room.Name);
+                
+                if(tempDevice!=null && tempDevice==device)
+                {
+                    tempDeviceRow = devRow;
+                    tempDevice = device;
+                    devRow.SetStatu(true);
+                }
+                else
+                {
+                    if (i == 0 && tempDevice == null)
+                    {
+                        tempDeviceRow = devRow;
+                        tempDevice = device;
+                        devRow.SetStatu(true);
+                    }
+                }
+
+                devRow.ClickButton.MouseUpEventHandler += (sender, e) =>
+                {
+                    tempDeviceRow.SetStatu(false);
+                    devRow.SetStatu(true);
+                    tempDeviceRow = devRow;
+                    tempDevice = device;
+                };
+            }
         }
 
         /// <summary>
-        /// AddItem
+        /// 娓╁害浼犳劅鍣ㄥ垪琛�
         /// </summary>
-        /// <param name="vertical"></param>
-        public void AddItem(VerticalScrolViewLayout vertical,int y)
+        private List<ZigBee.Device.CommonDevice> GetTemperatrueDevices()
         {
-            var dev = new DeviceInfoWithZoneRow(y);
-            vertical.AddChidren(dev);
-            dev.Init();
-            dev.SetIcon("DeviceIcon/1.png");
-            dev.SetName("娓╁害浼犳劅鍣�"+y);
-            dev.SetZone(room.FloorName + ", " + room.Name);
+            var listDevice = new List<ZigBee.Device.CommonDevice>();
+            foreach (var device in Common.LocalDevice.Current.listAllDevice)
+            {
+                //鑾峰彇娓╁害浼犳劅鍣�
+                if (device is ZigBee.Device.TemperatureSensor && ((ZigBee.Device.TemperatureSensor)device).SensorDiv == 1)
+                {
+                    listDevice.Add(device);
+                }
+            }
+            return listDevice;
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/AccountOption.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/AccountOption.cs
index 4257b39..87e1f1d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/AccountOption.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/AccountOption.cs
@@ -26,10 +26,19 @@
         /// </summary>
         public bool DoorUnLockByRemote = false;
         /// <summary>
+        /// 鏄惁浣跨敤瀹夐槻蹇嵎鏂瑰紡
+        /// </summary>
+        public bool SafetyShortcut = false;
+        /// <summary>
         /// 瀵嗙爜鍓╀綑鍙緭鍏ユ鏁�
         /// </summary>
         [Newtonsoft.Json.JsonIgnore]
         public int PasswordInputCount = 3;
+        /// <summary>
+        /// 鎵嬪娍瀵嗙爜鍓╀綑鍙緭鍏ユ鏁�
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public int PasswordGestureInputCount = 5;
         /// <summary>
         /// 妫�娴婣PP鏄惁鑳藉閫�鍑�
         /// </summary>
@@ -124,6 +133,7 @@
         public void ResetPasswordCount()
         {
             this.PasswordInputCount = 3;
+            this.PasswordGestureInputCount = 5;
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/IMessageCommon.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/IMessageCommon.cs
index 0dcddac..9720e27 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/IMessageCommon.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/IMessageCommon.cs
@@ -495,6 +495,15 @@
             dic["Fail"] = R.MyInternationalizationString.uOperationFailed;
             //璐﹀彿涓嶅瓨鍦�
             dic["AccountNoExists"] = R.MyInternationalizationString.uAccountNoExists;
+
+            //鏇存柊鐢ㄦ埛澶寸浉
+            keys = "ZigbeeUsers/UpdateHeadImage";
+            dicMsg[keys] = new Dictionary<string, int>();
+            dic = dicMsg[keys];
+            //璇锋眰鍙傛暟閿欒
+            dic["ParameterOrEmpty"] = R.MyInternationalizationString.uParameterError;
+            //纭瀵嗙爜涓嶄竴鑷达紝璇烽噸鏂拌緭鍏�
+            dic["NoLogin"] = R.MyInternationalizationString.uNoLogin;
         }
 
         /// <summary>
@@ -525,7 +534,7 @@
                 //鍦ㄥ唽鐨凪sg
                 return Language.StringByID(dicMsg[requestName][statuCode]);
             }
-            return "ERROR:NOT_DEFINE_MSG!";
+            return "ERROR:" + statuCode;
         }
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs
index da3d02d..5004d73 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/UserCenterCommon.cs
@@ -60,7 +60,17 @@
         /// <summary>
         /// 鐢ㄦ埛鍥炬爣鏂囦欢
         /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
         public string UserIconFile = string.Empty;
+        /// <summary>
+        /// 鐢ㄦ埛鍥炬爣鏂囦欢鏄惁鏀瑰彉
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public bool UserIconFileChanged = false;
+        /// <summary>
+        /// 鐢ㄦ埛澶村儚鏁版嵁
+        /// </summary>
+        public byte[] HeadImage = null;
     }
 
     /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/ButtonBase.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/ButtonBase.cs
index 9d754ef..95b6431 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/ButtonBase.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/ButtonBase.cs
@@ -134,7 +134,7 @@
                 catch (Exception ex)
                 {
                     //鍑虹幇鏈煡閿欒,鏁版嵁涓㈠け
-                    var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnknownErrorAndDataLost));
+                    var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
                     alert.Show();
                     //Log鍑哄姏
                     HdlLogLogic.Current.WriteLog(ex);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs
index 1e1babd..b0aca49 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/BelongAreaControl.cs
@@ -72,7 +72,7 @@
         /// <param name="i_listDevice">璁惧瀵硅薄</param>
         public void InitControl(string i_caption, List<ZigBee.Device.CommonDevice> i_listDevice)
         {
-            var room = Common.Room.CurrentRoom.GetRoomById(i_listDevice[0].DeviceRoomId);
+            var room = Common.LocalDevice.Current.GeteRealDeviceRoom(i_listDevice[0]);
             this.InitControl(i_caption, room);
         }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/CutPictureControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/CutPictureControl.cs
new file mode 100755
index 0000000..db5ff74
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/CutPictureControl.cs
@@ -0,0 +1,220 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter
+{
+    /// <summary>
+    /// 涓�涓兘澶熻繘琛岃鍓浘鐗囩殑鎺т欢
+    /// </summary>
+    public class CutPictureControl : ImageView
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 閫夋嫨鍥剧墖鐨勪簨浠�
+        /// </summary>
+        public Action<string> SelectPictrueEvent = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 涓�涓兘澶熻繘琛岃鍓浘鐗囩殑鎺т欢
+        /// </summary>
+        /// <param name="saveFullFileName">淇濆瓨瑁佸壀鍥剧墖鐨勬枃浠跺悕(鍏ㄨ矾寰�)</param>
+        /// <param name="i_Width">瀹藉害</param>
+        /// <param name="i_Height">楂樺害</param>
+        /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+        public CutPictureControl(string saveFullFileName, int i_Width, int i_Height, bool real = true)
+        {
+            if (real == true)
+            {
+                i_Width = Application.GetMinRealAverage(i_Width);
+                i_Height = Application.GetMinRealAverage(i_Height);
+            }
+            this.Height = i_Height;
+            this.Width = i_Width;
+
+            this.MouseUpEventHandler += (sender, e) =>
+            {
+                //鏄剧ず鑾峰彇鍥剧墖鏉ユ簮鐨勬柟寮�
+                this.ShowGetPictrueWayMenu(saveFullFileName);
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鏄剧ず鑾峰彇鍥剧墖鏉ユ簮鐨勬柟寮廮____________
+
+        /// <summary>
+        /// 鏄剧ず鑾峰彇鍥剧墖鏉ユ簮鐨勬柟寮�
+        /// </summary>
+        /// <param name="saveFullFileName">淇濆瓨瑁佸壀鍥剧墖鐨勬枃浠跺悕(鍏ㄨ矾寰�)</param>
+        private void ShowGetPictrueWayMenu(string saveFullFileName)
+        {
+            //鑷畾涔夎彍鍗曟帶浠�
+            var form = new PictrueWayMenuControl();
+            form.AddForm();
+            form.SelectPictrueEvent += (selectPic) =>
+            {
+                try
+                {
+                    if (System.IO.File.Exists(saveFullFileName) == true)
+                    {
+                        System.IO.File.Delete(saveFullFileName);
+                    }
+                    //绉诲姩鏂囦欢
+                    System.IO.File.Move(selectPic, saveFullFileName);
+
+                    //鏀瑰彉鍥剧墖
+                    this.ImagePath = saveFullFileName;
+                    //璋冪敤鍥炶皟鍑芥暟
+                    this.SelectPictrueEvent?.Invoke(saveFullFileName);
+                }
+                catch (Exception ex)
+                {
+                    //鍑虹幇鏈煡閿欒
+                    var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
+                    alert.Show();
+                    //Log
+                    HdlLogLogic.Current.WriteLog(ex);
+                }
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鎺т欢鎽ф瘉___________________________
+
+        /// <summary>
+        /// 鎺т欢鎽ф瘉
+        /// </summary>
+        public override void RemoveFromParent()
+        {
+            this.SelectPictrueEvent = null;
+
+            base.RemoveFromParent();
+        }
+
+        #endregion
+
+        #region 鈻� 鑿滃崟鎺т欢___________________________
+
+        /// <summary>
+        /// 鑿滃崟鎺т欢
+        /// </summary>
+        private class PictrueWayMenuControl : DialogCommonForm
+        {
+            #region 鈻� 鍙橀噺澹版槑___________________________
+
+            /// <summary>
+            /// 閫夋嫨鍥剧墖鐨勪簨浠�
+            /// </summary>
+            public Action<string> SelectPictrueEvent = null;
+
+            #endregion
+
+            #region 鈻� 鍒濆鍖朹____________________________
+
+            /// <summary>
+            /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+            /// </summary>
+            public void ShowForm()
+            {
+                var frameBack1 = new FrameLayoutControl();
+                frameBack1.UseClickStatu = false;
+                frameBack1.Y = Application.GetRealHeight(1420);
+                frameBack1.Gravity = Gravity.CenterHorizontal;
+                frameBack1.RadiusEx = 12;
+                frameBack1.Width = Application.GetRealWidth(1034);
+                frameBack1.Height = Application.GetRealHeight(300);
+                frameBack1.BackgroundColor = UserCenterColor.Current.White;
+                bodyFrameLayout.AddChidren(frameBack1);
+
+                //鎷嶇収
+                var btnTakePhone = new NormalViewControl(900, 156, true);
+                btnTakePhone.Gravity = Gravity.CenterHorizontal;
+                btnTakePhone.TextAlignment = TextAlignment.Center;
+                btnTakePhone.TextColor = 0xff0075ff;
+                btnTakePhone.TextSize = 17;
+                btnTakePhone.TextID = R.MyInternationalizationString.uTakePictrue;
+                frameBack1.AddChidren(btnTakePhone, ChidrenBindMode.NotBind);
+                btnTakePhone.ButtonClickEvent += (sender, e) =>
+                {
+                    //鍏抽棴鐣岄潰
+                    this.CloseForm();
+                    //閫氳繃鐩告満鎷嶇収瑁佸壀
+                    CropImage.TakePicture((imagePath) =>
+                    {
+                        if (string.IsNullOrEmpty(imagePath) == false)
+                        {
+                            //璋冪敤鍥炶皟鍑芥暟
+                            this.SelectPictrueEvent(imagePath);
+                        }
+                        this.SelectPictrueEvent = null;
+                    }, "HdlPicture");
+                };
+
+                //绾�
+                var btnLine = new NormalViewControl(frameBack1.Width, ControlCommonResourse.BottomLineHeight, false);
+                btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
+                btnLine.Y = btnTakePhone.Bottom;
+                frameBack1.AddChidren(btnLine, ChidrenBindMode.NotBind);
+                //浠庣浉鍐屼腑閫夋嫨
+                var btnAlbum = new NormalViewControl(900, 144, true);
+                btnAlbum.Y = btnLine.Bottom;
+                btnAlbum.Gravity = Gravity.CenterHorizontal;
+                btnAlbum.TextAlignment = TextAlignment.Center;
+                btnAlbum.TextColor = 0xff0075ff;
+                btnAlbum.TextSize = 17;
+                btnAlbum.TextID = R.MyInternationalizationString.uGetPictrueFromAlbum;
+                frameBack1.AddChidren(btnAlbum, ChidrenBindMode.NotBind);
+                btnAlbum.ButtonClickEvent += (sender, e) =>
+                {
+                    //鍏抽棴鐣岄潰
+                    this.CloseForm();
+                    //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
+                    CropImage.SelectPicture((imagePath) =>
+                    {
+                        if (string.IsNullOrEmpty(imagePath) == false)
+                        {
+                            //璋冪敤鍥炶皟鍑芥暟
+                            this.SelectPictrueEvent(imagePath);
+                        }
+                        this.SelectPictrueEvent = null;
+                    }, "HdlPicture");
+                };
+
+                var frameBack2 = new FrameLayoutControl();
+                frameBack2.UseClickStatu = false;
+                frameBack2.Y = frameBack1.Bottom + Application.GetRealHeight(23);
+                frameBack2.Gravity = Gravity.CenterHorizontal;
+                frameBack2.RadiusEx = 12;
+                frameBack2.Width = Application.GetRealWidth(1034);
+                frameBack2.Height = Application.GetRealHeight(156);
+                frameBack2.BackgroundColor = UserCenterColor.Current.White;
+                bodyFrameLayout.AddChidren(frameBack2);
+                //鍙栨秷
+                var btnCancel = new NormalViewControl(900, 156, true);
+                btnCancel.Gravity = Gravity.CenterHorizontal;
+                btnCancel.TextAlignment = TextAlignment.Center;
+                btnCancel.TextColor = 0xff0075ff;
+                btnCancel.TextSize = 17;
+                btnCancel.TextID = R.MyInternationalizationString.uCancel;
+                frameBack2.AddChidren(btnCancel, ChidrenBindMode.NotBind);
+                btnCancel.ButtonClickEvent += (sender, e) =>
+                {
+                    this.SelectPictrueEvent = null;
+                    //鍏抽棴鐣岄潰
+                    this.CloseForm();
+                };
+            }
+
+            #endregion
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/PswGestureInputControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/PswGestureInputControl.cs
new file mode 100755
index 0000000..487f079
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/PswGestureInputControl.cs
@@ -0,0 +1,164 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter
+{
+    /// <summary>
+    /// <para>鎵嬪娍瀵嗙爜杈撳叆鎺т欢(鑷埗鐨勬墜鍔胯緭鍏ョ被鍨�,璇峰疄鐜般�怓inishInputEvent銆戜簨浠�)</para>
+    /// <para>鏍囬鎺т欢鐨刌杞翠负0,涔熷氨鏄繖涓帶浠剁殑涓婇儴娌℃湁绌虹櫧鍖哄煙</para>
+    /// </summary>
+    public class PswGestureInputControl : FrameLayout
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 瀵嗙爜杈撳叆瀹屾垚鐨勪簨浠� value1:瀵嗙爜 value2:瀵嗙爜闀垮害
+        /// </summary>
+        public Action<string, int> FinishInputEvent = null;
+        /// <summary>
+        /// 鏍囬鎺т欢
+        /// </summary>
+        public NormalViewControl btnTitle = null;
+        /// <summary>
+        /// 閿欒淇℃伅鎻愮ず鎺т欢
+        /// </summary>
+        public NormalViewControl btnError = null;
+        /// <summary>
+        /// 鎵嬪娍鎺т欢(鏈夊彲鑳介渶瑕佽皟鏁村畠鐨勬湭鐭�)
+        /// </summary>
+        public GestureLockView gestureControl = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// <para>鎵嬪娍瀵嗙爜杈撳叆鎺т欢(鑷埗鐨勬墜鍔胯緭鍏ョ被鍨�,璇峰疄鐜般�怓inishInputEvent銆戜簨浠�)</para>
+        /// <para>鏍囬鎺т欢鐨刌杞翠负0,涔熷氨鏄繖涓帶浠剁殑涓婇儴娌℃湁绌虹櫧鍖哄煙</para>
+        /// </summary>
+        /// <param name="i_title">鍒濆鏍囬鏂囨湰淇℃伅</param>
+        public PswGestureInputControl(string i_title)
+        {
+            //鍔犻棿璺�
+            this.Width = Application.GetRealWidth(965);
+            this.Height = Application.GetRealHeight(1290);
+
+            this.btnTitle = new NormalViewControl(Application.CurrentWidth, Application.GetRealWidth(75), false);
+            btnTitle.Width = this.Width;
+            btnTitle.TextAlignment = TextAlignment.Center;
+            btnTitle.TextSize = 18;
+            btnTitle.Text = i_title;
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨帶浠�
+        /// </summary>
+        public void InitControl()
+        {
+            //鏍囬
+            this.AddChidren(btnTitle);
+
+            //閿欒淇℃伅鎻愮ず
+            this.btnError = new NormalViewControl(this.Width, Application.GetRealHeight(60), false);
+            btnError.Y = btnTitle.Bottom + Application.GetRealHeight(98);
+            btnError.TextAlignment = TextAlignment.Center;
+            btnError.TextColor = 0xfff75858;
+            this.AddChidren(btnError);
+
+            this.gestureControl = new GestureLockView();
+            gestureControl.Gravity = Gravity.CenterHorizontal;
+            gestureControl.Y = btnError.Bottom + Application.GetRealHeight(104);
+            gestureControl.Width = Application.GetRealWidth(786);
+            gestureControl.Height = Application.GetRealWidth(786);
+            //榛樿鍜屾纭� 鏃舵樉绀虹殑棰滆壊
+            //gestureControl.LockViewCorrectColor = 0xfffc744b;
+            //閿欒鏃� 鏄剧ず鐨勯鑹�
+            //gestureControl.LockViewErrorColor = 0xfffc744b;
+            this.AddChidren(gestureControl);
+
+            //婊戝姩缁撴潫 鍥炶皟瀵嗙爜缁撴灉鍜屽瘑鐮侀暱搴�
+            gestureControl.OnLockVerifyEvent += (selectNumStr, selectCount) =>
+            {
+                btnError.Text = string.Empty;
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    System.Threading.Thread.Sleep(1000);
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        this.FinishInputEvent?.Invoke(selectNumStr, selectCount);
+                    });
+                });
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 閲嶇疆鎺т欢___________________________
+
+        /// <summary>
+        /// 閲嶇疆鎺т欢
+        /// </summary>
+        /// <param name="i_title">鏍囬淇℃伅</param>
+        /// <param name="clearError">鏄惁娓呴櫎閿欒淇℃伅</param>
+        public void ResetControlInfo(string i_title, bool clearError = true)
+        {
+            //鏍囬
+            btnTitle.Text = i_title;
+            if (clearError == true)
+            {
+                //閿欒淇℃伅
+                btnError.Text = string.Empty;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 閿欒淇℃伅璁剧疆_______________________
+
+        /// <summary>
+        /// 鏄剧ず閿欒鐨勪俊鎭�
+        /// </summary>
+        /// <param name="i_msg"></param>
+        public void SetErrorMsg(string i_msg)
+        {
+            //鑷楠岃瘉瀵嗙爜锛屾彁绀烘纭垨鑰呴敊璇� false涓烘樉绀虹孩鑹查敊璇�, 鑷閫夋嫨璋冪敤鏃舵満
+            gestureControl.showCorrectStatus(false);
+            btnError.Text = i_msg;
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞鍏抽棴鎸夐挳_______________________
+
+        /// <summary>
+        /// 娣诲姞鍏抽棴鎸夐挳
+        /// </summary>
+        /// <returns></returns>
+        public IconViewControl AddCloseButton()
+        {
+            //鍏抽棴鎸夐挳
+            var btnClose = new IconViewControl(86);
+            btnClose.X = this.Width - btnClose.IconSize - Application.GetRealHeight(46);
+            btnClose.UnSelectedImagePath = "Item/CancelIcon.png";
+            this.AddChidren(btnClose);
+
+            return btnClose;
+        }
+
+        #endregion
+
+        #region 鈻� 鎺т欢鎽ф瘉___________________________
+
+        /// <summary>
+        /// 鎺т欢鎽ф瘉
+        /// </summary>
+        public override void RemoveFromParent()
+        {
+            FinishInputEvent = null;
+            base.RemoveFromParent();
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/PswNumberInputControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/PswNumberInputControl.cs
index 91f6b02..ab75e36 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/PswNumberInputControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/PswNumberInputControl.cs
@@ -5,7 +5,7 @@
 namespace Shared.Phone.UserCenter
 {
     /// <summary>
-    /// 瀵嗙爜杈撳叆鎺т欢(鑷埗鐨勬墜鍔ㄦ寜閿緭鍏ョ被鍨�,璇峰疄鐜般�怉ctionPswFinish銆戜簨浠�)
+    /// 鏁板瓧鎸夐敭瀵嗙爜杈撳叆鎺т欢(鑷埗鐨勬墜鍔ㄦ寜閿緭鍏ョ被鍨�,璇峰疄鐜般�怉ctionPswFinish銆戜簨浠�)
     /// </summary>
     public class PswNumberInputControl : FrameLayout
     {
@@ -38,11 +38,23 @@
         /// <summary>
         /// 鏍囬鎺т欢
         /// </summary>
-        private NormalViewControl btnTitle = null;
+        public NormalViewControl btnTitle = null;
         /// <summary>
         /// 閿欒淇℃伅鎻愮ず鎺т欢
         /// </summary>
-        private NormalViewControl btnError = null;
+        public NormalViewControl btnError = null;
+        /// <summary>
+        /// 鏄剧ず瀵嗙爜榛戠偣鐨凢rame(鏈夊彲鑳介渶瑕佽皟鏁村畠鐨勪綅缃�)
+        /// </summary>
+        public FrameLayout framePswIcon = null;
+        /// <summary>
+        /// 鏁板瓧琛ㄧ洏鐨凢rame(鏈夊彲鑳介渶瑕佽皟鏁村畠鐨勪綅缃�)
+        /// </summary>
+        public FrameLayout frameNumberIcon = null;
+        /// <summary>
+        /// 鏁板瓧琛ㄧ洏鎸夐敭鐨勮儗鏅壊
+        /// </summary>
+        public uint NumberIconBackColor = 0xfff5f6fa;
         /// <summary>
         /// 鍒犻櫎鎺т欢
         /// </summary>
@@ -69,7 +81,7 @@
             //鍔犻棿璺�
             this.Width = Application.GetMinRealAverage(NumberSize * 3 + NumberLeftRightSpace * 2 + 80);
             this.Height = Application.GetMinRealAverage(NumberSize * 4 + NumberTopButtomSpace * 3) + Application.GetRealHeight(368);
-            this.btnTitle = new NormalViewControl(Application.CurrentWidth, Application.GetRealWidth(63), false);
+            this.btnTitle = new NormalViewControl(Application.CurrentWidth, Application.GetRealWidth(75), false);
             btnTitle.Text = i_title;
         }
 
@@ -81,7 +93,7 @@
             //鏍囬
             btnTitle.Width = this.Width;
             btnTitle.TextAlignment = TextAlignment.Center;
-            btnTitle.TextSize = 16;
+            btnTitle.TextSize = 18;
             this.AddChidren(btnTitle);
 
             //鍒濆鍖栧瘑鐮佸浘鏍�
@@ -91,17 +103,16 @@
             this.InitNumberTableControl();
 
             //閿欒淇℃伅鎻愮ず
-            this.btnError = new NormalViewControl(this.Width, Application.GetRealHeight(58), false);
-            btnError.Y = Application.GetRealHeight(224);
+            this.btnError = new NormalViewControl(this.Width, Application.GetRealHeight(60), false);
+            btnError.Y = Application.GetRealHeight(222);
             btnError.TextAlignment = TextAlignment.Center;
             btnError.TextColor = 0xfff75858;
-            btnError.TextSize = 12;
             this.AddChidren(btnError);
 
             //鍒犻櫎鎺т欢
-            this.btnDelete = new NormalViewControl(200, 58, true);
+            this.btnDelete = new NormalViewControl(200, 60, true);
             btnDelete.X = this.Width - Application.GetRealWidth(200) - Application.GetMinRealAverage(40);
-            btnDelete.Y = this.Height - Application.GetRealHeight(58);
+            btnDelete.Y = this.Height - Application.GetRealHeight(60);
             btnDelete.TextColor = UserCenterColor.Current.TextGrayColor3;
             btnDelete.TextAlignment = TextAlignment.Center;
             btnDelete.TextID = R.MyInternationalizationString.uDelete;
@@ -147,12 +158,12 @@
                 space = value;
             }
 
-            var frameBack = new FrameLayout();
-            frameBack.Height = iconSize;
-            frameBack.Width = iconSize * passwordLength + space * (passwordLength - 1);
-            frameBack.Y = Application.GetRealHeight(149);
-            frameBack.Gravity = Gravity.CenterHorizontal;
-            this.AddChidren(frameBack);
+            this.framePswIcon = new FrameLayout();
+            framePswIcon.Height = iconSize;
+            framePswIcon.Width = iconSize * passwordLength + space * (passwordLength - 1);
+            framePswIcon.Y = Application.GetRealHeight(149);
+            framePswIcon.Gravity = Gravity.CenterHorizontal;
+            this.AddChidren(framePswIcon);
 
             for (int i = 0; i < passwordLength; i++)
             {
@@ -164,7 +175,7 @@
                 {
                     btnIcon.X = listPswIcon[listPswIcon.Count - 1].Right + space;
                 }
-                frameBack.AddChidren(btnIcon);
+                framePswIcon.AddChidren(btnIcon);
                 listPswIcon.Add(btnIcon);
             }
         }
@@ -178,12 +189,12 @@
         /// </summary>
         private void InitNumberTableControl()
         {
-            var frameBack = new FrameLayout();
-            frameBack.Y = Application.GetRealHeight(368);
-            frameBack.Width = this.Width;
-            frameBack.Gravity = Gravity.CenterHorizontal;
-            frameBack.Height = Application.GetMinRealAverage(NumberSize * 4 + NumberTopButtomSpace * 3);
-            this.AddChidren(frameBack);
+            this.frameNumberIcon = new FrameLayout();
+            frameNumberIcon.Y = Application.GetRealHeight(368);
+            frameNumberIcon.Width = this.Width;
+            frameNumberIcon.Gravity = Gravity.CenterHorizontal;
+            frameNumberIcon.Height = Application.GetMinRealAverage(NumberSize * 4 + NumberTopButtomSpace * 3);
+            this.AddChidren(frameNumberIcon);
 
             //鍓嶄竴涓帶浠剁殑鍙冲潗鏍�
             int btnTempRight = 0;
@@ -199,7 +210,7 @@
                     btnNum.X = btnTempRight + space;
                 }
 
-                frameBack.AddChidren(btnNum);
+                frameNumberIcon.AddChidren(btnNum);
                 btnNum.Y = (i - 1) / 3 * (btnNum.Height + Application.GetMinRealAverage(NumberTopButtomSpace));
                 btnNum.ButtonClickEvent += (sender, e) =>
                 {
@@ -216,11 +227,11 @@
 
             //0鐨勬暟瀛楃洏
             var btnNum0 = this.InitNumberControl();
-            btnNum0.X = Application.GetMinRealAverage(40) + frameBack.GetChildren(0).Height + space;
+            btnNum0.X = Application.GetMinRealAverage(40) + frameNumberIcon.GetChildren(0).Height + space;
             btnNum0.Text = "0";
 
-            frameBack.AddChidren(btnNum0);
-            btnNum0.Y = 3 * (frameBack.GetChildren(0).Height + Application.GetMinRealAverage(NumberTopButtomSpace));
+            frameNumberIcon.AddChidren(btnNum0);
+            btnNum0.Y = 3 * (frameNumberIcon.GetChildren(0).Height + Application.GetMinRealAverage(NumberTopButtomSpace));
             btnNum0.ButtonClickEvent += (sender, e) =>
             {
                 //鐐瑰嚮鏁板瓧鎸夐敭
@@ -237,7 +248,7 @@
             int iconSize = Application.GetMinRealAverage(NumberSize);
             var btnNum = new NormalClickButton(iconSize, iconSize, false);
             btnNum.X = Application.GetMinRealAverage(40);
-            btnNum.BackgroundColor = 0xfff5f6fa;
+            btnNum.BackgroundColor = this.NumberIconBackColor;
             btnNum.clickStatuColor = 0x7e656565;
             btnNum.Radius = (uint)iconSize / 2;
             btnNum.TextColor = UserCenterColor.Current.TextGrayColor3;
@@ -256,14 +267,13 @@
             {
                 return;
             }
+            if (btnError.Visible == true)
+            {
+                btnError.Visible = false;
+            }
             //鐗规晥鏀瑰彉
             listPswIcon[inputPassword.Length].BackgroundColor = 0xff333333;
             inputPassword += strNum;
-            if (inputPassword.Length == 1)
-            {
-                //灏嗘枃瀛椾粠鍙栨秷鍙樻洿涓哄垹闄�
-                btnDelete.TextID = R.MyInternationalizationString.uDelete;
-            }
             //杈撳叆缁撴潫
             if (FinishInputEvent != null && inputPassword.Length == passwordLength)
             {
@@ -280,7 +290,8 @@
         /// 閲嶇疆鎺т欢
         /// </summary>
         /// <param name="i_title">鏍囬淇℃伅</param>
-        public void ResetControlInfo(string i_title)
+        /// <param name="clearError">鏄惁娓呴櫎閿欒淇℃伅</param>
+        public void ResetControlInfo(string i_title, bool clearError = true)
         {
             //鏍囬
             btnTitle.Text = i_title;
@@ -291,8 +302,11 @@
             {
                 listPswIcon[i].BackgroundColor = UserCenterColor.Current.Transparent;
             }
-            //閿欒淇℃伅
-            btnError.Text = string.Empty;
+            if (clearError == true)
+            {
+                //閿欒淇℃伅
+                btnError.Text = string.Empty;
+            }
         }
 
         #endregion
@@ -317,7 +331,7 @@
         #region 鈻� 鍙樻洿鍒犻櫎鎸夐挳浣嶇疆___________________
 
         /// <summary>
-        /// 鍙樻洿鍒犻櫎鎸夐挳浣嶇疆(鐖舵帶浠剁殑楂樺害浼氳嚜鍔ㄨ皟鏁�)
+        /// 鍙樻洿鍒犻櫎鎸夐挳浣嶇疆,瀹冩渶鍒濈殑榛樿浣嶇疆鏄湪鏈�搴曢儴(鐖舵帶浠剁殑楂樺害浼氳嚜鍔ㄨ皟鏁�)
         /// </summary>
         /// <param name="XX">X杞�(涓嶅彉鏇磋璁剧疆涓�-1)</param>
         /// <param name="YY">Y杞�(涓嶅彉鏇磋璁剧疆涓�-1)</param>
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafeguardLogControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafeguardLogControl.cs
index 966b91e..112fde4 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafeguardLogControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafeguardLogControl.cs
@@ -34,7 +34,7 @@
         public SafeguardLogControl()
         {
             this.BackgroundColor = UserCenterColor.Current.White;
-            this.Radius = (uint)Application.GetMinRealAverage(17);
+            this.Radius = 17;
             this.Height = Application.GetRealHeight(260);
         }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafetyMasterControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafetyMasterControl.cs
index 70913a4..31075f1 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafetyMasterControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafetyMasterControl.cs
@@ -36,7 +36,7 @@
             this.Gravity = Gravity.CenterHorizontal;
             this.Width = Application.GetRealWidth(964);
             this.Height = Application.GetRealHeight(340);
-            this.Radius = (uint)Application.GetMinRealAverage(20);
+            this.Radius = 20;
             this.BackgroundColor = UserCenterColor.Current.White;
         }
 
@@ -52,14 +52,14 @@
             //鍙充笂鍦嗚鑳屾櫙
             var btnTopRight = new NormalViewControl(50, 50, true);
             btnTopRight.BackgroundColor = UserCenterColor.Current.White;
-            btnTopRight.Radius = (uint)Application.GetMinRealAverage(6);
+            btnTopRight.Radius = 6;
             this.AddChidren(btnTopRight);
             btnTopRight.X = this.Width - btnTopRight.Width;
 
             //宸︿笅鍦嗚鑳屾櫙
             var btnBottomRight = new NormalViewControl(50, 50, true);
             btnBottomRight.BackgroundColor = UserCenterColor.Current.White;
-            btnBottomRight.Radius = (uint)Application.GetMinRealAverage(6);
+            btnBottomRight.Radius = 6;
             this.AddChidren(btnBottomRight);
             btnBottomRight.Y = this.Height - btnBottomRight.Height;
 
@@ -373,7 +373,7 @@
                 int backHeight = Application.GetMinRealAverage(132);
                 btnBack = new NormalViewControl(backHeight, backHeight, false);
                 btnBack.Gravity = Gravity.CenterHorizontal;
-                btnBack.Radius = (uint)backHeight;
+                btnBack.Radius = (uint)backHeight / 2;
                 btnBack.BackgroundColor = UserCenterColor.Current.BodyFrameLayout;
                 this.AddChidren(btnBack, ChidrenBindMode.BindEventOnly);
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafetySensorStatuControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafetySensorStatuControl.cs
index 06f23c6..e67e3d1 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafetySensorStatuControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SafetySensorStatuControl.cs
@@ -36,7 +36,7 @@
         {
             this.Height = Application.GetRealHeight(256);
             this.BackgroundColor = UserCenterColor.Current.White;
-            this.Radius = (uint)Application.GetMinRealAverage(6);
+            this.Radius = 6;
         }
 
         /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SearchEditText.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SearchEditText.cs
index 47a9c79..42f91dc 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SearchEditText.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/SearchEditText.cs
@@ -60,7 +60,7 @@
             this.Width = Application.GetRealWidth(width);
             this.Height = Application.GetRealHeight(height);
             this.Gravity = Gravity.CenterHorizontal;
-            this.Radius = (uint)Application.GetMinRealAverage(6);
+            this.Radius = 6;
             this.BackgroundColor = 0xfff8f7f7;
         }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/VerificationCodeControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/VerificationCodeControl.cs
index dd06c58..6b26088 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/VerificationCodeControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/VerificationCodeControl.cs
@@ -64,7 +64,7 @@
                 frameCode.X = i * Application.GetRealWidth(115 + 49);
                 frameCode.Width = Application.GetRealWidth(115);
                 frameCode.Height = Application.GetRealHeight(104);
-                frameCode.Radius = (uint)Application.GetMinRealAverage(6);
+                frameCode.Radius = 6;
                 frameCode.BorderWidth = 1;
                 frameCode.BorderColor = UserCenterColor.Current.TextFrameColor;
                 this.AddChidren(frameCode);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceInfoIconControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceInfoIconControl.cs
index c93d200..1fb8732 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceInfoIconControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceInfoIconControl.cs
@@ -38,7 +38,7 @@
             this.Height = Application.GetMinRealAverage(207);
             this.Width = Application.GetMinRealAverage(207);
             this.BackgroundColor = UserCenterColor.Current.White;
-            this.Radius = (uint)Application.GetMinRealAverage(207);
+            this.Radius = (uint)Application.GetMinRealAverage(207) / 2;
         }
 
         /// <summary>
@@ -51,7 +51,7 @@
             //绗簩灞傚簳鑹�
             var btnIcon2 = new NormalViewControl(Application.GetMinRealAverage(184), Application.GetMinRealAverage(184), false);
             btnIcon2.BackgroundColor = 0xfffef1ed;
-            btnIcon2.Radius = (uint)Application.GetMinRealAverage(184);
+            btnIcon2.Radius = (uint)Application.GetMinRealAverage(184) / 2;
             btnIcon2.Gravity = Gravity.Center;
             this.AddChidren(btnIcon2);
 
@@ -72,7 +72,7 @@
             //绗簩灞傚簳鑹�
             var btnIcon2 = new NormalViewControl(Application.GetMinRealAverage(184), Application.GetMinRealAverage(184), false);
             btnIcon2.BackgroundColor = 0xfffef1ed;
-            btnIcon2.Radius = (uint)Application.GetMinRealAverage(184);
+            btnIcon2.Radius = (uint)Application.GetMinRealAverage(184) / 2;
             btnIcon2.Gravity = Gravity.Center;
             this.AddChidren(btnIcon2);
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceRoomControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceRoomControl.cs
index ad4ea10..1bb995a 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceRoomControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/DeviceControls/DeviceRoomControl.cs
@@ -68,30 +68,60 @@
         }
 
         /// <summary>
+        /// 鍋氭垚涓�涓樉绀鸿澶囧洖璺�+鎴块棿鐨凴owLayout
+        /// </summary>
+        /// <param name="deviceMac">璁惧Mac鍦板潃</param>
+        /// <param name="deviceEpoint">璁惧绔彛</param>
+        /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(鐪熷疄鍊�,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)</param>
+        public DeviceRoomControl(string deviceMac, int deviceEpoint, int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
+        {
+            this.mainKey = Common.LocalDevice.Current.GetDeviceMainKeys(deviceMac, deviceEpoint);
+        }
+
+        /// <summary>
         /// 鍒濆鍖栧唴閮ㄦ帶浠�
         /// </summary>
         public void InitControl()
         {
+            var tempDevice = device;
             //鍥炬爣
             btnIcon = frameTable.AddLeftIcon();
-            Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, device);
+            Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, tempDevice);
 
             //璁惧
-            string eName = Common.LocalDevice.Current.GetDeviceEpointName(device);
-            btnDevie = frameTable.AddLeftCaption(eName, 600, 60);
+            btnDevie = frameTable.AddLeftCaption("", 600, 60);
             btnDevie.TextSize = 15;
             //杩欎釜鍧愭爣鏈夌偣鐗规畩
             btnDevie.Y = Application.GetRealHeight(12) + this.chidrenYaxis;
             frameTable.AddChidren(btnDevie, ChidrenBindMode.BindEventOnly);
+            if (tempDevice != null)
+            {
+                btnDevie.Text = Common.LocalDevice.Current.GetDeviceEpointName(tempDevice);
+            }
+            else
+            {
+                //鏃犳硶璇嗗埆鐨勮澶�
+                btnDevie.Text = Language.StringByID(R.MyInternationalizationString.uUnDistinguishTheDevice);
+                btnDevie.TextColor = 0xfff62f48;
+            }
 
             //鎴块棿
-            string roomName = Common.Room.CurrentRoom.GetRoomNameByDevice(device);
-            btnRoom = frameTable.AddLeftCaption(roomName, 600, 50, true);
+            btnRoom = frameTable.AddLeftCaption("", 600, 50, true);
             //杩欎釜鍧愭爣鏈夌偣鐗规畩
             btnRoom.Y = Application.GetRealHeight(72) + this.chidrenYaxis;
             btnRoom.TextSize = 12;
             btnRoom.TextColor = UserCenterColor.Current.TextGrayColor1;
             frameTable.AddChidren(btnRoom, ChidrenBindMode.BindEventOnly);
+            if (tempDevice != null)
+            {
+                btnRoom.Text = Common.Room.CurrentRoom.GetRoomNameByDevice(tempDevice);
+            }
+            else
+            {
+                //鏈垎閰嶅尯鍩�
+                btnRoom.Text = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+                btnRoom.TextColor = 0xfff62f48;
+            }
         }
 
         #endregion
@@ -104,12 +134,17 @@
         /// <param name="i_device"></param>
         public void RefreshControlInfo()
         {
-            btnDevie.Text = Common.LocalDevice.Current.GetDeviceEpointName(device);
-            btnRoom.Text = Common.Room.CurrentRoom.GetRoomNameByDevice(device);
+            var tempDevice = device;
+            if (tempDevice == null)
+            {
+                return;
+            }
+            btnDevie.Text = Common.LocalDevice.Current.GetDeviceEpointName(tempDevice);
+            btnRoom.Text = Common.Room.CurrentRoom.GetRoomNameByDevice(tempDevice);
 
             string unSelectPath = string.Empty;
             string selectPath = string.Empty;
-            Common.LocalDevice.Current.GetDeviceIcon(device, ref unSelectPath, ref selectPath);
+            Common.LocalDevice.Current.GetDeviceIcon(tempDevice, ref unSelectPath, ref selectPath);
 
             btnIcon.UnSelectedImagePath = unSelectPath;
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/FrameLayoutControls/FrameListControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/FrameLayoutControls/FrameListControl.cs
index 92a82d0..a32a785 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/FrameLayoutControls/FrameListControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/FrameLayoutControls/FrameListControl.cs
@@ -5,7 +5,7 @@
 namespace Shared.Phone.UserCenter
 {
     /// <summary>
-    /// 鍋氭垚涓�涓垪琛ㄥ瀷鐨凢rameLayout(瀹冧笌VerticalListControl鍚屼竴鎬ц川,瀹冧細鏀瑰彉楂樺害)
+    /// 鍋氭垚涓�涓垪琛ㄥ瀷鐨凢rameLayout(瀹冧笌VerticalListControl鍚屼竴鎬ц川,浣嗘槸瀹冩槸FrameLayout,瀹冧細鏀瑰彉楂樺害)
     /// </summary>
     public class FrameListControl : FrameLayout
     {
@@ -15,7 +15,7 @@
         public int rowSpace = 0;
 
         /// <summary>
-        /// 鍋氭垚涓�涓垪琛ㄥ瀷鐨凢rameLayout(瀹冧笌VerticalListControl鍚屼竴鎬ц川,瀹冧細鏀瑰彉楂樺害)
+        /// 鍋氭垚涓�涓垪琛ㄥ瀷鐨凢rameLayout(瀹冧笌VerticalListControl鍚屼竴鎬ц川,浣嗘槸瀹冩槸FrameLayout,瀹冧細鏀瑰彉楂樺害)
         /// </summary>
         /// <param name="i_rowSpace">琛屼箣闂寸殑闂磋窛(杩欎釜鍊兼槸涓庤鎺т欢缁戝畾涓�璧蜂娇鐢ㄧ殑)</param>
         public FrameListControl(int i_rowSpace = 12)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs
index 4eb84cc..9fdbade 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/ListViewLayoutControls/VerticalListControl.cs
@@ -87,8 +87,11 @@
             {
                 frameBackTemp?.RemoveFromParent();
                 frameBackTemp = null;
-                //杩樺師涓烘渶澶ч珮搴�
-                this.Height = maxHeight;
+                if (maxHeight != -1)
+                {
+                    //杩樺師涓烘渶澶ч珮搴�
+                    this.Height = maxHeight;
+                }
                 return;
             }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/RowLayoutControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/RowLayoutControl.cs
index 8ac4d34..380731e 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/RowLayoutControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/RowLayoutControl.cs
@@ -62,5 +62,49 @@
         }
 
         #endregion
+
+        #region 鈻� 娣诲姞鍒犻櫎鎺т欢_______________________
+
+        /// <summary>
+        /// 娣诲姞鍒犻櫎鎺т欢
+        /// </summary>
+        /// <returns></returns>
+        public NormalViewControl AddDeleteControl()
+        {
+            //鍒犻櫎
+            var btnDelete = new NormalViewControl(Application.GetRealWidth(184), this.Height, false);
+            btnDelete.BackgroundColor = 0xfff75858;
+            btnDelete.TextSize = 12;
+            btnDelete.TextColor = UserCenterColor.Current.White;
+            btnDelete.TextAlignment = TextAlignment.Center;
+            btnDelete.TextID = R.MyInternationalizationString.uDelete;
+            this.AddRightView(btnDelete);
+
+            return btnDelete;
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞缂栬緫鎺т欢_______________________
+
+        /// <summary>
+        /// 娣诲姞缂栬緫鎺т欢
+        /// </summary>
+        /// <returns></returns>
+        public NormalViewControl AddEditorControl()
+        {
+            var btnEditor = new NormalViewControl(Application.GetRealWidth(184), this.Height, false);
+            btnEditor.BackgroundColor = 0xff4a4a4a;
+            btnEditor.TextSize = 12;
+            btnEditor.TextColor = UserCenterColor.Current.White;
+            btnEditor.TextAlignment = TextAlignment.Center;
+            btnEditor.TextID = R.MyInternationalizationString.uEditor;
+            this.AddRightView(btnEditor);
+
+            return btnEditor;
+        }
+
+        #endregion
+
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/SceneRoomControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/SceneRoomControl.cs
index c7c8e13..bf86249 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/SceneRoomControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/SceneRoomControl.cs
@@ -22,18 +22,11 @@
         /// <summary>
         /// 鍦烘櫙
         /// </summary>
-        public Common.SceneRoomUI Scene
+        public Common.SceneUI Scene
         {
             get
             {
-                for (int i = 0; i < Common.SceneRoomUI.AllSceneRoomUIList.Count; i++)
-                {
-                    if (Common.SceneRoomUI.AllSceneRoomUIList[i].sceneUI.Id == SceneId)
-                    {
-                        return Common.SceneRoomUI.AllSceneRoomUIList[i];
-                    }
-                }
-                return null;
+                return Common.Room.CurrentRoom.GetSceneUIBySceneId(SceneId);
             }
         }
 
@@ -55,7 +48,7 @@
             var sceneTemp = this.Scene;
             if (sceneTemp != null && string.IsNullOrEmpty(i_SceneName) == false)
             {
-                sceneTemp.sceneUI.Name = i_SceneName;
+                sceneTemp.Name = i_SceneName;
             }
         }
 
@@ -66,7 +59,7 @@
         {
             //鍥炬爣
             var btnIcon = frameTable.AddLeftIcon(81);
-            btnIcon.UnSelectedImagePath = "Item/Scene.png";
+            btnIcon.UnSelectedImagePath = "Scene/SceneIcon.png";
 
             //鍦烘櫙
             var btnSceneName = frameTable.AddLeftCaption(this.SceneName, 600, 60);
@@ -76,24 +69,24 @@
             frameTable.AddChidren(btnSceneName, ChidrenBindMode.BindEventOnly);
 
             //鎴块棿
-            string roomName = string.Empty;
-            var secneTemp = this.Scene;
-            if (secneTemp != null)
-            {
-                roomName = secneTemp.room.Name;
-            }
-            else
-            {
-                //鏈垎閰嶅尯鍩�
-                roomName = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
-            }
-
-            var btnRoom = frameTable.AddLeftCaption(roomName, 600, 50, true);
+            var btnRoom = frameTable.AddLeftCaption("", 600, 50, true);
             //杩欎釜鍧愭爣鏈夌偣鐗规畩
             btnRoom.Y = Application.GetRealHeight(72) + this.chidrenYaxis;
             btnRoom.TextSize = 12;
             btnRoom.TextColor = UserCenterColor.Current.TextGrayColor1;
             frameTable.AddChidren(btnRoom, ChidrenBindMode.BindEventOnly);
+
+            var room = Common.Room.CurrentRoom.GetRoomBySceneId(this.SceneId);
+            if (room != null)
+            {
+                btnRoom.Text = room.Name;
+            }
+            else
+            {
+                //鏈垎閰嶅尯鍩�
+                btnRoom.Text = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+            }
+
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/SceneSimpleSelectControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/SceneSimpleSelectControl.cs
index 39a74d5..80385a1 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/SceneSimpleSelectControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/SceneControls/SceneSimpleSelectControl.cs
@@ -84,7 +84,7 @@
 
             //鍥炬爣
             var btnIcon = this.AddLeftIcon();
-            btnIcon.UnSelectedImagePath = "Item/Scene.png";
+            btnIcon.UnSelectedImagePath = "Scene/SceneIcon.png";
 
             //鍦烘櫙
             var btnScene = this.AddLeftCaption(SceneTemp.Name, 850, 60);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/TextInputControls/TextInputExControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/TextInputControls/TextInputExControl.cs
index 6d9db74..23821be 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/TextInputControls/TextInputExControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/TextInputControls/TextInputExControl.cs
@@ -16,6 +16,10 @@
         /// </summary>
         public Action FinishInputEvent = null;
         /// <summary>
+        /// 鏈�澶ц緭鍏ラ暱搴�(鐩墠鍙拡瀵规寜涓嬪洖杞﹂敭鏃惰繘琛屾娴�,瓒呰繃鏃�,涓嶄細璋冪敤FinishInputEvent)
+        /// </summary>
+        public int MaxByte = 0;
+        /// <summary>
         /// 鏂囨湰鏄惁涓洪粦鑹插瓧浣�
         /// </summary>
         private bool IsTextBlack = false;
@@ -63,6 +67,18 @@
         /// <param name="view"></param>
         private void EditorEnterEvent(View view)
         {
+            if (this.MaxByte != 0)
+            {
+                if (Encoding.UTF8.GetBytes(this.Text.Trim()).Length > this.MaxByte)
+                {
+                    //杈撳叆鍐呭杩囬暱,鏈�澶0}瀛楄妭
+                    string msg = Language.StringByID(R.MyInternationalizationString.uInputContentIsOverLengthMsg);
+                    msg.Replace("{0}", this.MaxByte.ToString());
+                    var contr = new ShowMsgControl(ShowMsgType.Error, msg);
+                    contr.Show();
+                    return;
+                }
+            }
             this.TextColor = UserCenterColor.Current.TextGrayColor3;
             this.IsTextBlack = false;
             this.FinishInputEvent?.Invoke();
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/AreaCodeSelectForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/AreaCodeSelectForm.cs
index f72589e..b00607f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/AreaCodeSelectForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/AreaCodeSelectForm.cs
@@ -50,7 +50,7 @@
             var frameBack = new FrameLayout();
             frameBack.Width = Application.GetRealWidth(850);
             frameBack.Height = Application.GetRealHeight(1342);
-            frameBack.Radius = (uint)Application.GetMinRealAverage(6);
+            frameBack.Radius = 6;
             frameBack.BackgroundColor = UserCenterColor.Current.White;
             frameBack.Gravity = Gravity.CenterHorizontal;
             frameBack.Y = Application.GetRealHeight(328);
@@ -300,7 +300,7 @@
                 //妗屽竷鎺т欢
                 this.Width = Application.GetRealWidth(458);
                 this.Height = Application.GetRealHeight(104);
-                this.Radius = (uint)Application.GetMinRealAverage(6);
+                this.Radius = 6;
                 this.BorderColor = 0xffbfc1c2;
                 this.BorderWidth = (uint)Application.GetMinRealAverage(3);
             }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/CommonFormBase.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/CommonFormBase.cs
index b64f1d2..358e286 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/CommonFormBase.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/CommonFormBase.cs
@@ -395,18 +395,5 @@
         }
 
         #endregion
-
-        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
-
-        /// <summary>
-        /// <para>鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�</para>
-        /// <para>閲嶅啓鐨勬椂鍊欒繑鍥炲�艰杩斿洖1(杩斿洖鍊兼槸缁欏簳灞備娇鐢ㄧ殑)</para>
-        /// </summary>
-        public virtual int FormActionAgainEvent()
-        {
-            return -1;
-        }
-
-        #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/DialogCommonForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/DialogCommonForm.cs
index 932a5f7..a5c1673 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/DialogCommonForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/DialogCommonForm.cs
@@ -19,6 +19,10 @@
         /// 鐐瑰嚮鑳屾櫙鐨勬椂鍊欙紝鍏抽棴鐣岄潰
         /// </summary>
         public bool CloseFormByClickBack = true;
+        /// <summary>
+        /// 鍘熸潵鐨勬粦鍔ㄦ爣璇�
+        /// </summary>
+        private bool oldScrollEnabled = false;
 
         #endregion
 
@@ -28,18 +32,24 @@
         /// 鍒濆鍖栫晫闈㈡鏋�
         /// </summary>
         public override void InitForm()
-        {
+        {
+            this.oldScrollEnabled = UserView.HomePage.Instance.ScrollEnabled;
+            UserView.HomePage.Instance.ScrollEnabled = false;
+
             base.InitForm();
 
             bodyFrameLayout = new FrameLayout();
             bodyFrameLayout.BackgroundColor = UserCenterColor.Current.DialogBackColor;
             this.AddChidren(bodyFrameLayout);
 
-            bodyFrameLayout.MouseUpEventHandler += (sender, e) =>
+            if (CloseFormByClickBack == true)
             {
-                //鍏抽棴鑷韩
-                this.CloseForm();
-            };
+                bodyFrameLayout.MouseUpEventHandler += (sender, e) =>
+                {
+                    //鍏抽棴鑷韩
+                    this.CloseForm();
+                };
+            }
         }
 
         #endregion
@@ -74,5 +84,23 @@
         }
 
         #endregion
+
+        #region 鈻� 鍏抽棴鐣岄潰___________________________
+
+        /// <summary>
+        /// 鍏抽棴鐣岄潰
+        /// </summary>
+        public override void CloseForm()
+        {
+            if (this.oldScrollEnabled == true)
+            {
+                //濡傛灉瀹冨師鏉ュ氨鏄笉鍙互婊戝姩鐨勮瘽锛屼笉澶勭悊
+                UserView.HomePage.Instance.ScrollEnabled = true;
+            }
+
+            base.CloseForm();
+        }
+
+        #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/EditorCommonForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/EditorCommonForm.cs
index c9d5faf..2cca9c1 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/EditorCommonForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/Base/EditorCommonForm.cs
@@ -283,6 +283,19 @@
 
         #endregion
 
+        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+        /// <summary>
+        /// <para>鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�</para>
+        /// <para>閲嶅啓鐨勬椂鍊欒繑鍥炲�艰杩斿洖1(杩斿洖鍊兼槸缁欏簳灞備娇鐢ㄧ殑)</para>
+        /// </summary>
+        public virtual int FormActionAgainEvent()
+        {
+            return -1;
+        }
+
+        #endregion
+
         #region 鈻� 娓呯┖BodyFrame______________________
 
         /// <summary>
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/GesturePswSecirityForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/PswGestureSecirityForm.cs
similarity index 74%
rename from ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/GesturePswSecirityForm.cs
rename to ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/PswGestureSecirityForm.cs
index 66e5f5b..21e0727 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/GesturePswSecirityForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/PswGestureSecirityForm.cs
@@ -7,7 +7,7 @@
     /// <summary>
     /// 鎵嬪娍瀵嗙爜楠岃瘉鐣岄潰
     /// </summary>
-    public class GesturePswSecirityForm : DialogCommonForm
+    public class PswGestureSecirityForm : DialogCommonForm
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
 
@@ -43,11 +43,44 @@
             frameBack.Width = Application.GetRealWidth(965);
             frameBack.Height = Application.GetRealHeight(1486);
             frameBack.BackgroundColor = UserCenterColor.Current.White;
-            frameBack.Radius = (uint)Application.GetMinRealAverage(6);
+            frameBack.Radius = 6;
             bodyFrameLayout.AddChidren(frameBack);
 
-
-
+            //鎵嬪娍楠岃瘉鎺т欢
+            var gestureControl = new PswGestureInputControl(i_GestureText);
+            gestureControl.Y = Application.GetRealHeight(69);
+            frameBack.AddChidren(gestureControl);
+            gestureControl.InitControl();
+            //娣诲姞鍏抽棴鎸夐挳
+            var btnClose = gestureControl.AddCloseButton();
+            btnClose.ButtonClickEvent += (sender, e) =>
+            {
+                this.CloseForm();
+            };
+            gestureControl.FinishInputEvent += (Password, pswLeng) =>
+            {
+                if (UserCenterResourse.Option.GestureAuthentication != Password)
+                {
+                    UserCenterResourse.Option.PasswordGestureInputCount--;
+                    if (UserCenterResourse.Option.PasswordGestureInputCount <= 0)
+                    {
+                        //绠$悊鍛樿韩浠介獙璇佸け璐�,璇烽噸鏂扮櫥褰�
+                        string msg2 = Language.StringByID(R.MyInternationalizationString.uCheckAdministratorFailAndReload);
+                        this.ShowMassage(ShowMsgType.Tip, msg2);
+                        UserCenterLogic.ReLoginAgain(Common.Config.Instance.Account);
+                        return;
+                    }
+                    //瀵嗙爜閿欒锛岃閲嶆柊杈撳叆
+                    gestureControl.SetErrorMsg(Language.StringByID(R.MyInternationalizationString.uOldPsswordIsError));
+                    return;
+                }
+                //閲嶇疆鍓╀綑瀵嗙爜娆℃暟
+                UserCenterResourse.Option.ResetPasswordCount();
+                //鐣岄潰鍏抽棴
+                this.CloseForm();
+                SuccessAction?.Invoke();
+                SuccessAction = null;
+            };
 
             //Touch ID寮�閿�
             var btnTouch = new NormalClickButton(frameBack.Width / 2, Application.GetRealHeight(127));
@@ -90,13 +123,13 @@
                         //瀵嗙爜楠岃瘉
                         if (string.IsNullOrEmpty(UserCenterResourse.Option.PswAuthentication) == false)
                         {
-                            var form = new SecondaryPswSecurityForm();
+                            var form = new PswSecondarySecurityForm();
                             this.AddFromAndRemoveNowForm(form, i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
                         }
                         //鎵嬪娍楠岃瘉
                         else if (string.IsNullOrEmpty(UserCenterResourse.Option.GestureAuthentication) == false)
                         {
-                            var form = new GesturePswSecirityForm();
+                            var form = new PswGestureSecirityForm();
                             this.AddFromAndRemoveNowForm(form, i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
                         }
                         else
@@ -124,7 +157,7 @@
             }
             btnPsw.ButtonClickEvent += (sender, e) =>
             {
-                var form = new SecondaryPswSecurityForm();
+                var form = new PswSecondarySecurityForm();
                 this.AddFromAndRemoveNowForm(form, i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
             };
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/SecondaryPswSecurityForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/PswSecondarySecurityForm.cs
similarity index 95%
rename from ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/SecondaryPswSecurityForm.cs
rename to ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/PswSecondarySecurityForm.cs
index 7237f1f..7017148 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/SecondaryPswSecurityForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/PswSecondarySecurityForm.cs
@@ -7,7 +7,7 @@
     /// <summary>
     /// 浜屾瀵嗙爜楠岃瘉鐣岄潰
     /// </summary>
-    public class SecondaryPswSecurityForm : DialogCommonForm
+    public class PswSecondarySecurityForm : DialogCommonForm
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
 
@@ -43,7 +43,7 @@
             frameBack.Width = Application.GetRealWidth(965);
             frameBack.Height = Application.GetRealHeight(1711);
             frameBack.BackgroundColor = UserCenterColor.Current.White;
-            frameBack.Radius = (uint)Application.GetMinRealAverage(6);
+            frameBack.Radius = 6;
             bodyFrameLayout.AddChidren(frameBack);
 
             //瀵嗙爜杈撳叆鎺т欢
@@ -75,6 +75,7 @@
                     }
                     //瀵嗙爜閿欒锛岃閲嶆柊杈撳叆
                     pswControl.SetErrorMsg(Language.StringByID(R.MyInternationalizationString.uOldPsswordIsError));
+                    pswControl.ResetControlInfo(i_PasswordText, false);
                     return;
                 }
                 //閲嶇疆鍓╀綑瀵嗙爜娆℃暟
@@ -101,7 +102,7 @@
 
             btnGesture.ButtonClickEvent += (sender, e) =>
             {
-                var form = new GesturePswSecirityForm();
+                var form = new PswGestureSecirityForm();
                 this.AddFromAndRemoveNowForm(form, i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
             };
 
@@ -148,13 +149,13 @@
                         //瀵嗙爜楠岃瘉
                         if (string.IsNullOrEmpty(UserCenterResourse.Option.PswAuthentication) == false)
                         {
-                            var form = new SecondaryPswSecurityForm();
+                            var form = new PswSecondarySecurityForm();
                             this.AddFromAndRemoveNowForm(form, i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
                         }
                         //鎵嬪娍楠岃瘉
                         else if (string.IsNullOrEmpty(UserCenterResourse.Option.GestureAuthentication) == false)
                         {
-                            var form = new GesturePswSecirityForm();
+                            var form = new PswGestureSecirityForm();
                             this.AddFromAndRemoveNowForm(form, i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
                         }
                         else
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/SelectDeviceForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/SelectDeviceForm.cs
index 6b0e889..9e242ab 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/SelectDeviceForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Form/SelectDeviceForm.cs
@@ -57,6 +57,13 @@
             //娓呯┖bodyFrame
             this.ClearBodyFrame();
 
+            if (i_listShowDevice.Count == 0)
+            {
+                //娌℃湁鍙坊鍔犵殑鐩爣
+                this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uNotHadAddTarget));
+                return;
+            }
+
             listView = new VerticalListControl(29);
             listView.Y = Application.GetRealHeight(-6);
             listView.Height = bodyFrameLayout.Height + Application.GetRealHeight(6);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAutoBackupLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAutoBackupLogic.cs
index 1a83c35..e92ecfe 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAutoBackupLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAutoBackupLogic.cs
@@ -337,8 +337,8 @@
             //濡傛灉鏈湴宸茬粡鎷ユ湁浜嗚繖涓枃浠讹紝鍒欒鏄庝笉鏄柊鎵嬫満锛屼笉鍐嶈嚜鍔ㄨ繕鍘�
             if (System.IO.File.Exists(checkFile) == true)
             {
-                //鍚屾鏈嶅姟鍣ㄧ殑鍙栨秷浜嗙殑鍒嗕韩鍐呭
-                await HdlShardLogic.Current.SynchronizeDeleteSharedContent();
+                //鍚屾鏈嶅姟鍣ㄧ殑鍒嗕韩鍐呭
+                await HdlShardLogic.Current.SynchronizeDbSharedContent();
                 return 0;
             }
 
@@ -388,9 +388,6 @@
 
             //娌℃湁閿欒鐨勮瘽锛屽垯绉诲姩鍒板綋鍓嶄綇瀹呮枃浠跺す涓嬮潰
             Global.MoveDirectoryFileToHomeDirectory(tempDir, true);
-
-            //鍚屾鏈嶅姟鍣ㄧ殑鍙栨秷浜嗙殑鍒嗕韩鍐呭
-            await HdlShardLogic.Current.SynchronizeDeleteSharedContent();
 
             //鍒涘缓涓�涓┖鏂囦欢(鏍囪瘑宸茬粡瀹屾垚鍚屾)
             var file2 = System.IO.File.Create(checkFile);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlCheckLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlCheckLogic.cs
index 61978d7..2ca8eb4 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlCheckLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlCheckLogic.cs
@@ -256,13 +256,13 @@
                         //瀵嗙爜楠岃瘉
                         if (string.IsNullOrEmpty(UserCenterResourse.Option.PswAuthentication) == false)
                         {
-                            var form = new SecondaryPswSecurityForm();
+                            var form = new PswSecondarySecurityForm();
                             form.AddForm(i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
                         }
                         //鎵嬪娍楠岃瘉
                         else if (string.IsNullOrEmpty(UserCenterResourse.Option.GestureAuthentication) == false)
                         {
-                            var form = new GesturePswSecirityForm();
+                            var form = new PswGestureSecirityForm();
                             form.AddForm(i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
                         }
                         else
@@ -279,14 +279,14 @@
             else if (string.IsNullOrEmpty(UserCenterResourse.Option.PswAuthentication) == false)
             {
                 //瀵嗙爜楠岃瘉
-                var form = new SecondaryPswSecurityForm();
+                var form = new PswSecondarySecurityForm();
                 form.AddForm(i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
                 FailAction = null;
             }
             else if (string.IsNullOrEmpty(UserCenterResourse.Option.GestureAuthentication) == false)
             {
                 //鎵嬪娍楠岃瘉
-                var form = new GesturePswSecirityForm();
+                var form = new PswGestureSecirityForm();
                 form.AddForm(i_TouchText, i_PasswordText, i_GestureText, SuccessAction);
                 FailAction = null;
             }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs
index d56af50..63fc904 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceAttributeLogic.cs
@@ -145,14 +145,24 @@
                     //鍛戒护鍖哄垎涓�鑷存椂锛屽垯璋冪敤鍥炶皟鍑芥暟
                     list.Add(this.dicEvent[keys]);
                 }
-                HdlThreadLogic.Current.RunMain(() =>
+                //鏈夊彲鑳藉湪鍥炶皟鍑芥暟涓Щ闄や簡浜嬩欢锛屽鑷存姤閿欙紝鎵�浠ュ厛鏀堕泦锛屽啀璋冪敤
+                Application.RunOnMainThread(() =>
                 {
-                    //鏈夊彲鑳藉湪鍥炶皟鍑芥暟涓Щ闄や簡浜嬩欢锛屽鑷存姤閿欙紝鎵�浠ュ厛鏀堕泦锛屽啀璋冪敤
                     foreach (var action in list)
                     {
-                        action?.Invoke(common);
+                        try
+                        {
+                            action?.Invoke(common);
+                        }
+                        catch (Exception ex)
+                        {
+                            //Log鍑哄姏
+                            string msg = "褰撳墠婵�娲荤殑鐣岄潰[" + UserCenterResourse.NowActionFormID + "]";
+                            HdlLogLogic.Current.WriteLog(-1, msg);
+                            HdlLogLogic.Current.WriteLog(ex);
+                        }
+
                     }
-                    list.Clear();
                 });
             }
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceUpdateLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceUpdateLogic.cs
index b6ef03e..30dc880 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceUpdateLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceUpdateLogic.cs
@@ -19,6 +19,7 @@
         /// <para> 0:鏇存柊鐘舵�佹甯稿彉鍖�,鍚庨潰鐨勫�间负鐘舵�佸彉鏇寸殑鏂囨湰缈昏瘧</para>
         /// <para> 1:鍗囩骇鎴愬姛</para>
         /// <para> 2:涓诲姩缁堟鍗囩骇</para>
+        /// <para> 3:浠庣瓑寰呬腑鍙栨秷(鐩墠杩樻病鏈夌敤)</para>
         /// </summary>
         public Action<int, string> UpdateStatuChangedEvent = null;
         /// <summary>
@@ -92,7 +93,9 @@
                 {
                     FirmwareUpdateResourse.dicDeviceUpdateList.Remove(otaDevice.DeviceAddr);
                 }
+                //鍙栨秷
                 this.UpdateStatu = UpdateStatuMode.None;
+                this.UpdateStatuChangedEvent?.Invoke(3, "");
                 return;
             }
             //濡傛灉瀹冩湁鐘舵�侊紝鍒欒〃绀轰箣鍓嶅畠琚粈涔堥敊璇腑鏂簡
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs
index c9dd905..12fe130 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs
@@ -18,7 +18,7 @@
         public static void DoUpdateNextFirmware()
         {
             //涓嬩竴涓鎵ц鏇存柊鐨勭綉鍏�
-            GatewayFirmwareUpdateControl gwControl = null;
+            HdlGatewayUpdateLogic gwControl = null;
             foreach (var contr in FirmwareUpdateResourse.dicGatewayUpdateList.Values)
             {
                 //濡傛灉鍒殑杩樺湪鍗囩骇涓�,鍒欎笉鍐嶅鐞�
@@ -49,19 +49,21 @@
                     deviceControl = contr;
                 }
             }
-
-            if (gwControl != null)
+            HdlThreadLogic.Current.RunMain(() =>
             {
-                //寮�濮嬫墽琛屾洿鏂版搷浣�
-                gwControl.DoStartUpdate();
-                return;
-            }
+                if (gwControl != null)
+                {
+                    //寮�濮嬫墽琛屾洿鏂版搷浣�
+                    gwControl.DoStartUpdate();
+                    return;
+                }
 
-            if (deviceControl != null)
-            {
-                //寮�濮嬫墽琛屾洿鏂版搷浣�
-                deviceControl.DoStartUpdate();
-            }
+                if (deviceControl != null)
+                {
+                    //寮�濮嬫墽琛屾洿鏂版搷浣�
+                    deviceControl.DoStartUpdate();
+                }
+            });
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
index 97e642b..7bfa527 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs
@@ -2128,7 +2128,7 @@
             var listSaveFile = new HashSet<string>();
             foreach (string fileName in listBackFile)
             {
-                if (fileName.Length < 10 || fileName.StartsWith(Common.LocalDevice.deviceFirstName) == false)
+                if (fileName.Length < 10 || fileName.StartsWith("Device_") == false)
                 {
                     //涓嶆槸璁惧澶囦唤鏂囦欢
                     continue;
@@ -2188,7 +2188,7 @@
                 if (deleteFile.Length > 12)
                 {
                     string deviceFileName = deleteFile.Substring(5);
-                    if (deviceFileName.StartsWith(Common.LocalDevice.deviceFirstName) == false)
+                    if (deviceFileName.StartsWith("Device_") == false)
                     {
                         //涓嶆槸璁惧鏂囦欢
                         continue;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/GatewayFirmwareUpdateControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayUpdateLogic.cs
similarity index 73%
rename from ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/GatewayFirmwareUpdateControl.cs
rename to ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayUpdateLogic.cs
index 0d15b69..1d0ea04 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/GatewayFirmwareUpdateControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayUpdateLogic.cs
@@ -7,12 +7,25 @@
 namespace Shared.Phone.UserCenter
 {
     /// <summary>
-    /// 鍥轰欢鍗囩骇鎺т欢
+    /// 缃戝叧鐨勫崌绾ч�昏緫
     /// </summary>
-    public class GatewayFirmwareUpdateControl : RowLayout
+    public class HdlGatewayUpdateLogic
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
 
+        /// <summary>
+        /// <para>鏇存柊鐘舵�佸彉鍖栫殑浜嬩欢</para>
+        /// <para>绗竴涓弬鏁颁负:</para>
+        /// <para>-1:鏇存柊寮傚父,鍚庨潰鐨勫�间负寮傚父淇℃伅鐨勭炕璇戞枃鏈�</para>
+        /// <para> 0:鏇存柊鐘舵�佹甯稿彉鍖�,鍚庨潰鐨勫�间负鐘舵�佸彉鏇寸殑鏂囨湰缈昏瘧</para>
+        /// <para> 1:鍗囩骇鎴愬姛</para>
+        /// <para> 3:浠庣瓑寰呬腑鍙栨秷(鐩墠杩樻病鏈夌敤)</para>
+        /// </summary>
+        public Action<int, string> UpdateStatuChangedEvent = null;
+        /// <summary>
+        /// 杩涘害鍊间簨浠�
+        /// </summary>
+        public Action<decimal> ProgressEvent = null;
         /// <summary>
         /// 铏氭嫙璁惧鐨勫浐浠朵俊鎭�
         /// </summary>
@@ -26,11 +39,7 @@
         /// </summary>
         public FirmwareVersionInfo gatewayFirmware = null;
         /// <summary>
-        /// 鍗囩骇鎸夐挳(鐢卞閮ㄨ繘琛岃祴鍊�)
-        /// </summary>
-        public BottomClickButton btnUpdateButton = null;
-        /// <summary>
-        /// 褰撳墠鎵ц鐘舵��
+        /// 褰撳墠鎵ц鐘舵��(鍑虹幇閿欒鏃�,瀹冧篃浼氬彉鎴恡rue)
         /// </summary>
         public UpdateStatuMode UpdateStatu = UpdateStatuMode.None;
         /// <summary>
@@ -43,21 +52,9 @@
         /// </summary>
         private UpdateStatuMode oldUpdateStatu = UpdateStatuMode.None;
         /// <summary>
-        /// 杩涘害鎺т欢
-        /// </summary>
-        private FrameLayout frameBar = null;
-        /// <summary>
-        /// 鐧惧垎姣旇繘搴�
-        /// </summary>
-        private NormalViewControl btnProgress = null;
-        /// <summary>
         /// 瑕佸崌绾х殑缃戝叧
         /// </summary>
         private ZbGateway upDatezbGateway = null;
-        /// <summary>
-        /// 閿欒淇℃伅
-        /// </summary>
-        private string errorMsg = string.Empty;
 
         #endregion
 
@@ -71,72 +68,13 @@
         /// <param name="i_virtualFirmware">铏氭嫙璁惧鐨勫浐浠朵俊鎭�</param>
         /// <param name="i_coordinatorFirmware">鍗忚皟鍣ㄦ柊鐗堟湰鐨勫浐浠朵俊鎭�</param>
         /// <param name="i_gatewayFirmware">缃戝叧鏂扮増鏈殑鍥轰欢淇℃伅</param>
-        public GatewayFirmwareUpdateControl(VerticalScrolViewLayout listView, ZbGateway zbGateway,
-            FirmwareVersionInfo i_virtualFirmware, FirmwareVersionInfo i_coordinatorFirmware, FirmwareVersionInfo i_gatewayFirmware)
+        public HdlGatewayUpdateLogic(ZbGateway zbGateway, FirmwareVersionInfo i_virtualFirmware,
+            FirmwareVersionInfo i_coordinatorFirmware, FirmwareVersionInfo i_gatewayFirmware)
         {
             this.upDatezbGateway = zbGateway;
             this.virtualFirmware = i_virtualFirmware;
             this.coordinatorFirmware = i_coordinatorFirmware;
             this.gatewayFirmware = i_gatewayFirmware;
-
-            this.Height = ControlCommonResourse.ListViewRowHeight;
-            if (listView != null)
-            {
-                listView.AddChidren(this);
-                //鍒濆鍖栨帶浠�
-                this.InitChidrenControl();
-            }
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栨帶浠�
-        /// </summary>
-        public void InitChidrenControl()
-        {
-            this.RemoveAll();
-
-            //杩涘害鎺т欢(鑳屾櫙鑹蹭负缁胯壊锛屼細鍔ㄧ殑閭d釜)
-            this.frameBar = new FrameLayout();
-            this.frameBar.Width = 0;
-            this.frameBar.BackgroundColor = UserCenterColor.Current.Green;
-            this.AddChidren(frameBar);
-
-            //妗屽竷
-            var frameLayout = new RowLayoutControl();
-            frameLayout.BackgroundColor = UserCenterColor.Current.Transparent;
-            this.AddChidren(frameLayout);
-
-            //鍥炬爣
-            var btnIcon = frameLayout.frameTable.AddLeftIcon();
-            HdlGatewayLogic.Current.SetGatewayIcon(btnIcon, this.upDatezbGateway);
-
-            //鎸囧畾鐨勮澶�
-            var btnDevice = frameLayout.frameTable.AddLeftCaption("", 830);
-            //btnDevice.Y = UserCenterLogic.GetControlChidrenYaxis(ControlCommonResourse.ListViewRowHeight, ControlCommonResourse.ListViewRowHalfHeight, UViewAlignment.Top);
-            btnDevice.X = Application.GetRealWidth(200);
-            btnDevice.BackgroundColor = UserCenterColor.Current.Transparent;
-            btnDevice.Text = HdlGatewayLogic.Current.GetGatewayName(upDatezbGateway);
-
-            //鍥轰欢淇℃伅
-            this.btnProgress = frameLayout.frameTable.AddLeftCaption("", 830);
-            //btnDevice.Y = UserCenterLogic.GetControlChidrenYaxis(ControlCommonResourse.ListViewRowHeight, ControlCommonResourse.ListViewRowHalfHeight, UViewAlignment.Bottom);
-            btnDevice.X = Application.GetRealWidth(200);
-            btnProgress.BackgroundColor = UserCenterColor.Current.Transparent;
-            if (this.gatewayFirmware != null)
-            {
-                //鐗堟湰
-                btnProgress.Text = Common.LocalDevice.Current.AppendVersion(this.gatewayFirmware.FirmwareVersion);
-            }
-            else if (this.coordinatorFirmware != null)
-            {
-                //鐗堟湰
-                btnProgress.Text = Common.LocalDevice.Current.AppendVersion(this.coordinatorFirmware.FirmwareVersion);
-            }
-            else if (this.virtualFirmware != null)
-            {
-                //鐗堟湰
-                btnProgress.Text = Common.LocalDevice.Current.AppendVersion(this.virtualFirmware.FirmwareVersion);
-            }
         }
 
         #endregion
@@ -148,10 +86,6 @@
         /// </summary>
         public void StartUpdateReady()
         {
-            if (btnUpdateButton.CanClick == false)
-            {
-                return;
-            }
             if (this.UpdateStatu == UpdateStatuMode.Wait)
             {
                 //濡傛灉鏄瓑寰呮ā寮忥紝鍐嶆鐐瑰嚮鏃讹紝绉婚櫎鍒楄〃
@@ -160,10 +94,9 @@
                 {
                     FirmwareUpdateResourse.dicGatewayUpdateList.Remove(gwId);
                 }
-                //鍗囩骇
-                btnUpdateButton.TextID = R.MyInternationalizationString.uLevelUp;
-                btnUpdateButton.SetNotClickStatu();
                 this.UpdateStatu = UpdateStatuMode.None;
+                //鍙栨秷
+                this.UpdateStatuChangedEvent?.Invoke(3, "");
                 return;
             }
             //濡傛灉瀹冩湁鐘舵�侊紝鍒欒〃绀轰箣鍓嶅畠琚粈涔堥敊璇腑鏂簡
@@ -175,10 +108,10 @@
 
             //杩涘叆绛夊緟妯″紡
             this.UpdateStatu = UpdateStatuMode.Wait;
-            this.btnUpdateButton.TextID = R.MyInternationalizationString.uWaitting;
-            this.btnUpdateButton.SetClickStatu();
             string gwId2 = HdlGatewayLogic.Current.GetGatewayId(this.upDatezbGateway);
             FirmwareUpdateResourse.dicGatewayUpdateList[gwId2] = this;
+            //绛夊緟涓��
+            this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uWaitting));
 
             //鎵ц涓嬩竴涓彲鏇存柊鐨勫浐浠剁殑鏇存柊鎿嶄綔
             HdlFirmwareUpdateLogic.DoUpdateNextFirmware();
@@ -189,13 +122,9 @@
         /// </summary>
         public void DoStartUpdate()
         {
-            //娓呯┖閿欒淇℃伅
-            this.errorMsg = string.Empty;
             //鐘舵�佸彉鏇�
             this.IsFinishUpdate = false;
             this.UpdateStatu = UpdateStatuMode.Action;
-            //寮�濮嬫墽琛屾搷浣滅殑鏃跺�欙紝鎸夐敭涓嶈兘鍐嶇偣鍑�
-            this.btnUpdateButton.CanClick = false;
             //璁剧疆鎷ユ湁缃戝叧姝e湪鍗囩骇鐨勬爣璇�
             HdlGatewayLogic.Current.SetHadGatewayUpdateFlage(true);
             //鏍规嵁鐘舵�佹墽琛屾搷浣�
@@ -277,14 +206,8 @@
             }
 
             this.UpdateStatu = UpdateStatuMode.VirtualDownLoad;
-            Application.RunOnMainThread(() =>
-            {
-                this.btnUpdateButton.TextID = R.MyInternationalizationString.uDownLoading;
-            });
-
             //铏氭嫙椹卞姩鍥轰欢涓嬭浇涓�
-            string msg = Language.StringByID(R.MyInternationalizationString.uVirtualFirmwareDownLoading);
-            this.SetProgressValue(0, 100, msg);
+            this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uVirtualFirmwareDownLoading));
 
             //涓嬭浇铏氭嫙椹卞姩鏂囦欢鐨勮繘搴�
             this.upDatezbGateway.ReportAction += this.DownLoadVirtualFileProgress;
@@ -293,7 +216,6 @@
             var result = await this.upDatezbGateway.DownloadFileAsync(this.virtualFirmware.DistributedMark, this.virtualFirmware.Name);
             if (string.IsNullOrEmpty(result.errorMessageBase) == false)
             {
-                System.Console.WriteLine("鉁┾湬涓嬭浇铏氭嫙椹卞姩鏂囦欢鉁�" + result.errorResponData?.Error + " " + result.errorMessageBase);
                 if (result.errorResponData != null && result.errorResponData.Error == 2)
                 {
                     //鍥犱负tcp搴曞眰鍦ㄧ綉缁滀笉濂界殑鏃跺�欙紝鏈夊彲鑳戒細閲嶅彂澶氭锛屾墍浠ヨ繖閲屽拷鐣ユ帀銆愬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁銆戠殑閿欒
@@ -325,7 +247,6 @@
                 return;
             }
             var tempZb = (ZbGateway)objValue;
-            System.Console.WriteLine("鈽呪槄鈽呬笅杞介┍鍔�" + tempZb.CurrentGateWayId + " " + tempZb.downloadFileProgressResponData.Status + " " + tempZb.downloadFileProgressResponData.DownloadPercent);
             if (tempZb.CurrentGateWayId != HdlGatewayLogic.Current.GetGatewayId(this.upDatezbGateway))
             {
                 //涓嶆槸鑷繁鐨勭綉鍏虫帹閫侊紝鍒欎笉澶勭悊
@@ -339,8 +260,7 @@
             var responData = tempZb.downloadFileProgressResponData;
 
             //铏氭嫙椹卞姩鍥轰欢涓嬭浇涓�
-            string msg = Language.StringByID(R.MyInternationalizationString.uVirtualFirmwareDownLoading);
-            this.SetProgressValue(responData.DownloadPercent, 100, msg);
+            this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uVirtualFirmwareDownLoading));
 
             if (responData.Status == 2)
             {
@@ -375,6 +295,8 @@
             this.DownLoadTimeOutRefresh();
             //寮�鍚綉鍏冲崌绾ц櫄鎷熻繘搴︾嚎绋�
             this.StartUpdateVirtualThread();
+            //鍗囩骇涓�
+            this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uLevelUping));
 
             //濡傛灉铏氭嫙椹卞姩涓嶉渶瑕佸崌绾э紝鍒欑洿鎺ヨ烦杞笅涓�姝�
             if (this.virtualFirmware == null)
@@ -385,11 +307,6 @@
             }
 
             this.UpdateStatu = UpdateStatuMode.VirtualUpdateReady;
-            Application.RunOnMainThread(() =>
-            {
-                this.btnUpdateButton.TextID = R.MyInternationalizationString.uLevelUping;
-            });
-
             //鍗囩骇铏氭嫙椹卞姩鐨勮繘搴�
             this.upDatezbGateway.ReportAction += this.UpdateVirtualProgress;
 
@@ -397,7 +314,6 @@
             var result = await this.upDatezbGateway.VirtualDriveUpgradeAsync(this.virtualFirmware.Name, this.virtualFirmware.VirtualCode);
             if (string.IsNullOrEmpty(result.errorMessageBase) == false)
             {
-                System.Console.WriteLine("鉁┾湬铏氭嫙椹卞姩鍗囩骇鉁�" + result.errorResponData?.Error + " " + result.errorMessageBase);
                 if (result.errorResponData != null && result.errorResponData.Error == 2)
                 {
                     //鍥犱负tcp搴曞眰鍦ㄧ綉缁滀笉濂界殑鏃跺�欙紝鏈夊彲鑳戒細閲嶅彂澶氭锛屾墍浠ヨ繖閲屽拷鐣ユ帀銆愬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁銆戠殑閿欒
@@ -411,7 +327,7 @@
                 }
 
                 //铏氭嫙椹卞姩鍗囩骇澶辫触
-                this.errorMsg = Language.StringByID(R.MyInternationalizationString.uVirtualUpdatingFail);
+                this.UpdateStatuChangedEvent?.Invoke(-1, Language.StringByID(R.MyInternationalizationString.uVirtualUpdatingFail));
 
                 //鏄剧ず閲嶆柊瀹夎
                 this.ShowReSetupMsg();
@@ -434,7 +350,6 @@
                 return;
             }
             var tempZb = (ZbGateway)objValue;
-            System.Console.WriteLine("鈽呪槄鈽呭崌绾ч┍鍔�" + tempZb.CurrentGateWayId + " " + tempZb.virtualDriveUpgradeResponData.Flag + " " + tempZb.virtualDriveUpgradeResponData.Percent);
             if (tempZb.CurrentGateWayId != HdlGatewayLogic.Current.GetGatewayId(this.upDatezbGateway))
             {
                 //涓嶆槸鑷繁鐨勭綉鍏虫帹閫侊紝鍒欎笉澶勭悊
@@ -449,7 +364,7 @@
             if (responData.Flag != 0 && responData.Flag != 2)
             {
                 //铏氭嫙椹卞姩鍗囩骇澶辫触
-                this.errorMsg = Language.StringByID(R.MyInternationalizationString.uVirtualUpdatingFail);
+                this.UpdateStatuChangedEvent?.Invoke(-1, Language.StringByID(R.MyInternationalizationString.uVirtualUpdatingFail));
 
                 //鏄剧ず閲嶆柊瀹夎
                 this.ShowReSetupMsg();
@@ -492,17 +407,11 @@
             this.DownLoadTimeOutRefresh();
 
             this.UpdateStatu = UpdateStatuMode.CoordinatorDownLoad;
-            Application.RunOnMainThread(() =>
-            {
-                this.btnUpdateButton.TextID = R.MyInternationalizationString.uDownLoading;
-            });
-
             //绛変釜1绉�
             await Task.Delay(1000);
 
             //鍗忚皟鍣ㄥ浐浠朵笅杞戒腑
-            string msg = Language.StringByID(R.MyInternationalizationString.uCoordinatorFirmwareDownLoading);
-            this.SetProgressValue(0, 100, msg);
+            this.UpdateStatuChangedEvent(0, Language.StringByID(R.MyInternationalizationString.uCoordinatorFirmwareDownLoading));
 
             //涓嬭浇鍗忚皟鍣ㄦ枃浠剁殑杩涘害
             this.upDatezbGateway.ReportAction += this.DownLoadCoordinatorFileProgress;
@@ -511,7 +420,6 @@
             var result = await this.upDatezbGateway.DownloadFileAsync(this.coordinatorFirmware.DistributedMark, this.coordinatorFirmware.Name);
             if (string.IsNullOrEmpty(result.errorMessageBase) == false)
             {
-                System.Console.WriteLine("鉁┾湬涓嬭浇鍗忚皟鍣ㄦ枃浠垛湬" + result.errorResponData?.Error + " " + result.errorMessageBase);
                 if (result.errorResponData != null && result.errorResponData.Error == 2)
                 {
                     //鍥犱负tcp搴曞眰鍦ㄧ綉缁滀笉濂界殑鏃跺�欙紝鏈夊彲鑳戒細閲嶅彂澶氭锛屾墍浠ヨ繖閲屽拷鐣ユ帀銆愬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁銆戠殑閿欒
@@ -543,7 +451,6 @@
                 return;
             }
             var tempZb = (ZbGateway)objValue;
-            System.Console.WriteLine("鈽呪槄鈽呬笅杞藉崗璋冨櫒" + tempZb.CurrentGateWayId + " " + tempZb.downloadFileProgressResponData.Status + " " + tempZb.downloadFileProgressResponData.DownloadPercent);
             if (tempZb.CurrentGateWayId != HdlGatewayLogic.Current.GetGatewayId(this.upDatezbGateway))
             {
                 //涓嶆槸鑷繁鐨勭綉鍏虫帹閫侊紝鍒欎笉澶勭悊
@@ -557,8 +464,7 @@
             var responData = tempZb.downloadFileProgressResponData;
 
             //鍗忚皟鍣ㄥ浐浠朵笅杞戒腑
-            string msg = Language.StringByID(R.MyInternationalizationString.uCoordinatorFirmwareDownLoading);
-            this.SetProgressValue(responData.DownloadPercent, 100, msg);
+            this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uCoordinatorFirmwareDownLoading));
 
             if (responData.Status == 2)
             {
@@ -598,11 +504,6 @@
             }
 
             this.UpdateStatu = UpdateStatuMode.CoordinatorUpdateReady;
-            Application.RunOnMainThread(() =>
-            {
-                this.btnUpdateButton.TextID = R.MyInternationalizationString.uLevelUping;
-            });
-
             //鍗囩骇鍗忚皟鍣ㄧ殑杩涘害
             this.upDatezbGateway.ReportAction += this.UpdateCoordinatorProgress;
 
@@ -610,7 +511,6 @@
             var result = await this.upDatezbGateway.UpgradeNVAsync(this.coordinatorFirmware.Name);
             if (string.IsNullOrEmpty(result.errorMessageBase) == false)
             {
-                System.Console.WriteLine("鉁┾湬鍗忚皟鍣ㄥ崌绾р湬" + result.errorResponData?.Error + " " + result.errorMessageBase);
                 if (result.errorResponData != null && result.errorResponData.Error == 2)
                 {
                     //鍥犱负tcp搴曞眰鍦ㄧ綉缁滀笉濂界殑鏃跺�欙紝鏈夊彲鑳戒細閲嶅彂澶氭锛屾墍浠ヨ繖閲屽拷鐣ユ帀銆愬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁銆戠殑閿欒
@@ -624,7 +524,7 @@
                 }
 
                 //鍗忚皟鍣ㄥ崌绾уけ璐�
-                this.errorMsg = Language.StringByID(R.MyInternationalizationString.uCoordinatorUpdatingFail);
+                this.UpdateStatuChangedEvent?.Invoke(-1, Language.StringByID(R.MyInternationalizationString.uCoordinatorUpdatingFail));
 
                 //鏄剧ず閲嶆柊瀹夎
                 this.ShowReSetupMsg();
@@ -648,7 +548,6 @@
             }
 
             var tempZb = (ZbGateway)objValue;
-            System.Console.WriteLine("鈽呪槄鈽呭崌绾у崗璋冨櫒" + tempZb.CurrentGateWayId + " " + tempZb.zbGwOperationUpgradeData.Flag + " " + tempZb.zbGwOperationUpgradeData.Percent);
             if (tempZb.CurrentGateWayId != HdlGatewayLogic.Current.GetGatewayId(this.upDatezbGateway))
             {
                 //涓嶆槸鑷繁鐨勭綉鍏虫帹閫侊紝鍒欎笉澶勭悊
@@ -663,7 +562,7 @@
             if (responData.Flag != 0 && responData.Flag != 2)
             {
                 //鍗忚皟鍣ㄥ崌绾уけ璐�
-                this.errorMsg = Language.StringByID(R.MyInternationalizationString.uCoordinatorUpdatingFail);
+                this.UpdateStatuChangedEvent?.Invoke(-1, Language.StringByID(R.MyInternationalizationString.uCoordinatorUpdatingFail));
 
                 //鏄剧ず閲嶆柊瀹夎
                 this.ShowReSetupMsg();
@@ -702,10 +601,6 @@
                 return;
             }
             this.UpdateStatu = UpdateStatuMode.GatewayDownLoad;
-            Application.RunOnMainThread(() =>
-            {
-                this.btnUpdateButton.TextID = R.MyInternationalizationString.uDownLoading;
-            });
 
             //鍒锋柊瓒呮椂鏃堕棿
             this.DownLoadTimeOutRefresh();
@@ -714,8 +609,7 @@
             await Task.Delay(1000);
 
             //缃戝叧鍥轰欢涓嬭浇涓�
-            string msg = Language.StringByID(R.MyInternationalizationString.uGatewayFirmwareDownLoading);
-            this.SetProgressValue(0, 100, msg);
+            this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uGatewayFirmwareDownLoading));
 
             //涓嬭浇缃戝叧鏂囦欢鐨勮繘搴�
             this.upDatezbGateway.ReportAction += this.DownLoadGatewayFileProgress;
@@ -724,14 +618,13 @@
             var result = await this.upDatezbGateway.DownloadFileAsync(this.gatewayFirmware.DistributedMark, this.gatewayFirmware.Name);
             if (string.IsNullOrEmpty(result.errorMessageBase) == false)
             {
-                System.Console.WriteLine("鉁┾湬涓嬭浇缃戝叧鏂囦欢鉁�" + result.errorResponData?.Error + " " + result.errorMessageBase);
                 if (result.errorResponData != null && result.errorResponData.Error == 2)
                 {
                     //鍥犱负tcp搴曞眰鍦ㄧ綉缁滀笉濂界殑鏃跺�欙紝鏈夊彲鑳戒細閲嶅彂澶氭锛屾墍浠ヨ繖閲屽拷鐣ユ帀銆愬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁銆戠殑閿欒
                     return;
                 }
                 //缃戝叧鍥轰欢璧勬簮涓嬭浇澶辫触
-                this.ShowErrorMsg(Language.StringByID(R.MyInternationalizationString.uGatewayFirmwareDownLoadFail));
+                this.UpdateStatuChangedEvent?.Invoke(-1, Language.StringByID(R.MyInternationalizationString.uGatewayFirmwareDownLoadFail));
 
                 //鏄剧ず閲嶆柊涓嬭浇妯″紡
                 this.ShowReDownLoadMode();
@@ -754,7 +647,6 @@
                 return;
             }
             var tempZb = (ZbGateway)objValue;
-            System.Console.WriteLine("鈽呪槄鈽呬笅杞界綉鍏�" + tempZb.CurrentGateWayId + " " + tempZb.downloadFileProgressResponData.Status + " " + tempZb.downloadFileProgressResponData.DownloadPercent);
             if (tempZb.CurrentGateWayId != HdlGatewayLogic.Current.GetGatewayId(this.upDatezbGateway))
             {
                 //涓嶆槸鑷繁鐨勭綉鍏虫帹閫侊紝鍒欎笉澶勭悊
@@ -766,8 +658,8 @@
 
             //璁剧疆杩涘害
             var responData = tempZb.downloadFileProgressResponData;
-            string msg = Language.StringByID(R.MyInternationalizationString.uGatewayFirmwareDownLoading);
-            this.SetProgressValue(responData.DownloadPercent, 100, msg);
+            this.SetProgressValue(responData.DownloadPercent, 100);
+
             if (responData.Status == 2)
             {
                 //缃戝叧鍥轰欢璧勬簮涓嬭浇澶辫触
@@ -783,10 +675,6 @@
             else if (responData.Status == 0)
             {
                 this.upDatezbGateway.ReportAction -= this.DownLoadGatewayFileProgress;
-                if (this.Parent == null)
-                {
-                    return;
-                }
                 //鎵ц铏氭嫙椹卞姩鍗囩骇绋嬪簭
                 this.DoUpdateVirtual();
             }
@@ -810,16 +698,11 @@
             }
 
             this.UpdateStatu = UpdateStatuMode.GatewayUpdateReady;
-            Application.RunOnMainThread(() =>
-            {
-                this.btnUpdateButton.TextID = R.MyInternationalizationString.uLevelUping;
-            });
 
             //缃戝叧鍗囩骇
             var result = await this.upDatezbGateway.LinuxUpgradeAsync(this.gatewayFirmware.Name);
             if (string.IsNullOrEmpty(result.errorMessageBase) == false)
             {
-                System.Console.WriteLine("鉁┾湬缃戝叧鍗囩骇鉁�" + result.errorResponData?.Error + " " + result.errorMessageBase);
                 if (result.errorMessageBase.Contains("鍥炲瓒呮椂") == true)
                 {
                     //缃戝叧鍗囩骇鐨勬椂鍊欙紝鏈夊彲鑳藉畠涓嶅啀鍥炰粈涔堜俊鎭�
@@ -862,32 +745,16 @@
             {
                 //鐘舵�佸彉鏇�
                 this.IsFinishUpdate = true;
-                //璁╁埆鐨勭嚎绋嬪厛閫�鍑�
                 System.Threading.Thread.Sleep(2000);
 
                 //璁剧疆娌℃湁缃戝叧姝e湪鍗囩骇鐨勬爣璇�
                 HdlGatewayLogic.Current.SetHadGatewayUpdateFlage(false);
+
+                this.UpdateStatu = UpdateStatuMode.UpdateSuccess;
+                //鎵ц涓嬩竴涓崌绾�
+                HdlFirmwareUpdateLogic.DoUpdateNextFirmware();
                 //缃戝叧鍗囩骇鎴愬姛!
-                this.SetProgressValue(100, 100, Language.StringByID(R.MyInternationalizationString.uGatewayUpdateSuccess));
-
-                Application.RunOnMainThread(() =>
-                {
-                    if (UserCenterResourse.DicActionForm.ContainsKey("GatewayFirmwareInfoForm") == true)
-                    {
-                        //鍒锋柊璁惧淇℃伅鐣岄潰
-                        ((GatewayManage.GatewayFirmwareInfoForm)UserCenterResourse.DicActionForm["GatewayFirmwareInfoForm"]).ShowForm(upDatezbGateway);
-                    }
-                    this.UpdateStatu = UpdateStatuMode.UpdateSuccess;
-
-                    //鎵ц涓嬩竴涓崌绾�
-                    HdlFirmwareUpdateLogic.DoUpdateNextFirmware();
-
-                    //瀹屾垚
-                    this.btnUpdateButton.TextID = R.MyInternationalizationString.uFinish;
-                    this.btnUpdateButton.CanClick = true;
-                    this.btnUpdateButton.SetNotClickStatu();
-
-                });
+                this.UpdateStatuChangedEvent?.Invoke(1, "");
             });
         }
 
@@ -905,18 +772,8 @@
             //璁剧疆娌℃湁缃戝叧姝e湪鍗囩骇鐨勬爣璇�
             HdlGatewayLogic.Current.SetHadGatewayUpdateFlage(false);
 
-            Application.RunOnMainThread(() =>
-            {
-                //閲嶆柊鍗囩骇
-                this.btnUpdateButton.TextID = R.MyInternationalizationString.uReLevelUp;
-                this.btnUpdateButton.CanClick = true;
-                this.btnUpdateButton.SetNotClickStatu();
-                //娓呯┖杩涘害鏉�
-                this.frameBar.Width = 0;
-
-                //鎵ц涓嬩竴涓崌绾�
-                HdlFirmwareUpdateLogic.DoUpdateNextFirmware();
-            });
+            //鎵ц涓嬩竴涓崌绾�
+            HdlFirmwareUpdateLogic.DoUpdateNextFirmware();
         }
 
         /// <summary>
@@ -929,17 +786,8 @@
             //璁剧疆娌℃湁缃戝叧姝e湪鍗囩骇鐨勬爣璇�
             HdlGatewayLogic.Current.SetHadGatewayUpdateFlage(false);
 
-            Application.RunOnMainThread(() =>
-            {
-                this.btnUpdateButton.TextID = R.MyInternationalizationString.uReDownLoad;
-                this.btnUpdateButton.CanClick = true;
-                this.btnUpdateButton.SetNotClickStatu();
-                //娓呯┖杩涘害鏉�
-                this.frameBar.Width = 0;
-
-                //鎵ц涓嬩竴涓崌绾�
-                HdlFirmwareUpdateLogic.DoUpdateNextFirmware();
-            });
+            //鎵ц涓嬩竴涓崌绾�
+            HdlFirmwareUpdateLogic.DoUpdateNextFirmware();
         }
 
         #endregion
@@ -951,8 +799,7 @@
         /// </summary>
         /// <param name="value">杩涘害鍊�</param>
         /// <param name="maxValue">鏈�澶у��</param>
-        /// <param name="appendText">杩藉姞淇℃伅</param>
-        private void SetProgressValue(decimal value, decimal maxValue, string appendText = "")
+        private void SetProgressValue(decimal value, decimal maxValue)
         {
             if (value > maxValue)
             {
@@ -960,35 +807,7 @@
                 return;
             }
             decimal result = value / maxValue;
-
-            Application.RunOnMainThread(() =>
-            {
-                //鐧惧垎姣旀暟,鍙栨暣鏁伴儴鍒�
-                int percent = (int)(result * 100);
-                int width = (int)(result * this.Width);
-
-                if (appendText != string.Empty)
-                {
-                    this.btnProgress.Text = percent + "%  " + appendText;
-                }
-                else
-                {
-                    this.btnProgress.Text = percent + "%";
-                }
-                this.frameBar.Width = width;
-            });
-        }
-
-        /// <summary>
-        /// 璁惧畾杩涘害鍊�
-        /// </summary>
-        /// <param name="value">杩涘害鍊�</param>
-        private void SetProgressValue(string value)
-        {
-            Application.RunOnMainThread(() =>
-            {
-                this.btnProgress.Text = value;
-            });
+            this.ProgressEvent?.Invoke(value);
         }
 
         /// <summary>
@@ -997,13 +816,7 @@
         /// <param name="value"></param>
         private void ShowErrorMsg(string value)
         {
-            Application.RunOnMainThread(() =>
-            {
-                //璁剧疆閿欒淇℃伅
-                this.btnProgress.Text = value;
-                //娓呯┖杩涘害鏉�
-                this.frameBar.Width = 0;
-            });
+            this.UpdateStatuChangedEvent?.Invoke(-1, value);
         }
 
         #endregion
@@ -1096,7 +909,7 @@
                     if (updateTimeOutCount == 0)
                     {
                         //鍝嶅簲瓒呮椂,鍗囩骇澶辫触
-                        this.errorMsg = Language.StringByID(R.MyInternationalizationString.uResponseTimeoutsAndUpdateFail);
+                        this.UpdateStatuChangedEvent?.Invoke(-1, Language.StringByID(R.MyInternationalizationString.uResponseTimeoutsAndUpdateFail));
                         //浠庡ご鍐嶆潵
                         this.UpdateStatu = UpdateStatuMode.GatewayDownLoadFail;
                         //鏄剧ず閲嶆柊涓嬭浇妯″紡
@@ -1107,20 +920,15 @@
 
                     //鍓╀綑鏃堕棿
                     int remainingTime = timeCount - nowTimeCount;
-                    if (remainingTime == -1)
+                    if (remainingTime <= -1)
                     {
                         //鏃堕棿鐢ㄥ畬浜嗭紝鐩存帴鏄剧ず鎴愬姛
                         this.IsFinishUpdate = true;
                         break;
                     }
                     //璁剧疆杩涘害鍊�
-                    this.SetProgressValue(nowTimeCount, timeCount, msg + remainingTime + "s");
-                }
-                //鍗囩骇澶辫触
-                if (this.errorMsg != string.Empty)
-                {
-                    //璁剧疆閿欒淇℃伅
-                    this.ShowErrorMsg(this.errorMsg);
+                    this.UpdateStatuChangedEvent?.Invoke(0, msg + remainingTime + "s");
+                    this.SetProgressValue(nowTimeCount, timeCount);
                 }
             });
         }
@@ -1209,5 +1017,18 @@
         }
 
         #endregion
+
+        #region 鈻� 閲婃斁缂撳瓨___________________________
+
+        /// <summary>
+        /// 閲婃斁缂撳瓨
+        /// </summary>
+        public void Dispose()
+        {
+            this.ProgressEvent = null;
+            this.UpdateStatuChangedEvent = null;
+        }
+
+        #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlLogLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlLogLogic.cs
index 12b2406..2895fed 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlLogLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlLogLogic.cs
@@ -60,11 +60,11 @@
         {
             lock (objLock)
             {
-                //if (div != -1)
-                //{
-                //    //鏆傛椂鍙褰曞紓甯镐俊鎭�
-                //    return;
-                //}
+                if (div != -1)
+                {
+                    //鏆傛椂鍙褰曞紓甯镐俊鎭�
+                    return;
+                }
                 //Log鏂囦欢
                 System.IO.StreamWriter sw = null;
                 try
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs
index 49549c2..e5b8bcd 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs
@@ -969,13 +969,14 @@
         /// <summary>
         /// 淇敼鐢ㄦ埛瀵嗙爜(涓嶅瓨鍦ㄦ椂锛屽垯鏂板缓)
         /// </summary>
-        /// <param name="userId"></param>
-        /// <param name="password"></param>
+        /// <param name="userId">鐢ㄦ埛ID</param>
+        /// <param name="password">瀵嗙爜</param>
+        /// <param name="passWordTips">瀵嗙爜鎻愮ず</param>
         /// <returns></returns>
-        public async Task<bool> ChangedUserPassword(int userId, string password)
+        public async Task<bool> ChangedUserPassword(int userId, string password, string passWordTips)
         {
             //鍒涘缓鏂扮敤鎴�
-            var result = await Safeguard.SetUserPasswordAsync(userId, password, this.GetLoginToken());
+            var result = await Safeguard.SetUserPasswordAsync(userId, password, passWordTips, this.GetLoginToken());
             if (result == null || result.setUserPasswordResponseData == null)
             {
                 if (userId != 5)
@@ -1067,6 +1068,37 @@
                 }
             }
             return 0;
+        }
+
+        /// <summary>
+        /// 娣诲姞瀵嗙爜鐨勫娉�
+        /// </summary>
+        /// <param name="userId">鐢ㄦ埛ID</param>
+        /// <param name="password">缃戝叧璇撮渶瑕佸師鏉ョ殑瀵嗙爜,涔熶笉鐭ラ亾涓轰粈涔�</param>
+        /// <param name="passWordTips">瀵嗙爜澶囨敞</param>
+        /// <returns></returns>
+        public async Task<bool> AddPassWordTips(int userId, string password, string passWordTips)
+        {
+            var result = await Safeguard.SetPassWordTipsAsync(userId, password, passWordTips, this.GetLoginToken());
+            if (result == null || result.setUserPasswordResponseData == null)
+            {
+                //淇敼澶囨敞淇℃伅澶辫触
+                string msg = Language.StringByID(R.MyInternationalizationString.uEditorNoteInformationFail);
+                //鎷兼帴涓娿�愮綉鍏冲洖澶嶈秴鏃躲�戠殑Msg
+                msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, result);
+
+                this.ShowErrorMsg(msg);
+                return false;
+            }
+            if (result.setUserPasswordResponseData.Result != 0)
+            {
+                //淇敼澶囨敞淇℃伅澶辫触
+                string msg = Language.StringByID(R.MyInternationalizationString.uEditorNoteInformationFail);
+
+                this.ShowErrorMsg(msg);
+                return false;
+            }
+            return true;
         }
 
         #endregion
@@ -1635,7 +1667,7 @@
 
                 Dialogform = new DialogInputFrameControl(form, DialogFrameMode.OnlyPassword);
                 //鐢ㄦ埛瀵嗙爜
-                Dialogform.SetTitleText(Language.StringByID(R.MyInternationalizationString.uUserPassword));
+                Dialogform.SetTitleText(Language.StringByID(R.MyInternationalizationString.uSafetyPassword));
                 //璁剧疆鎻愮ず淇℃伅:璇疯緭鍏ョ敤鎴峰瘑鐮�
                 Dialogform.SetTipText(Language.StringByID(R.MyInternationalizationString.uPleaseInputUserPassword));
                 //纭鎸夐挳
@@ -1920,7 +1952,7 @@
         /// <returns></returns>
         public string GetLightAlarmStatuText(List<Safeguard.TaskListInfo> listTaskInfo)
         {
-            if (listTaskInfo == null)
+            if (listTaskInfo == null || listTaskInfo.Count == 0)
             {
                 //鏃犲姩浣�
                 return Language.StringByID(R.MyInternationalizationString.uNotAction);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs
index 66555a5..75734e9 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlShardLogic.cs
@@ -413,8 +413,10 @@
                 //鐢熸垚鏂囦欢
                 foreach (string fileName in listDbFile)
                 {
-                    var data = this.GetShardFileContent(fileName);
-                    Global.WriteFileByBytesByHomeId(fileName, data);
+                    var oldPath = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DownLoadShardDirectory, fileName);
+                    var newPath = System.IO.Path.Combine(Config.Instance.FullPath, fileName);
+                    System.IO.File.Copy(oldPath, newPath, true);
+
                     if (fileName.StartsWith("Room_") == true)
                     {
                         //鎴块棿鏂囦欢鐗规畩澶勭悊
@@ -480,13 +482,25 @@
             var listLocalFile = Global.FileListByHomeId();
             foreach (string fileName in listLocalFile)
             {
+                if (fileName == DirNameResourse.ShardFloorFile)
+                {
+                    //妤煎眰鏂囦欢
+                    var varData = Global.ReadFileByHomeId(fileName);
+                    var dicFloor = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(Encoding.UTF8.GetString(varData));
+                    Common.Config.Instance.Home.FloorDics = dicFloor;
+                    Common.Config.Instance.Home.Save(false);
+
+                    Global.DeleteFilebyHomeId(fileName);
+                }
+
                 if (listShardFile.Contains(fileName) == true)
                 {
                     //鏈湴鐨勮繖涓枃浠惰繕鍒嗕韩鐫�,娌℃湁闂
                     continue;
                 }
+
                 //妫�娴嬫湰鍦拌澶囨枃浠�,鏄惁瀛樺湪宸茬粡鍙栨秷浜嗗叡浜簡鐨�
-                if (fileName.StartsWith(Common.LocalDevice.deviceFirstName) == true)
+                if (fileName.StartsWith("Device_") == true)
                 {
                     //鍒犻櫎鎺夎繖涓澶囨枃浠�
                     Global.DeleteFilebyHomeId(fileName);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
index 6ac2ad1..9d45e5b 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
@@ -397,17 +397,21 @@
                         {
                             //璁剧疆褰撳墠婵�娲荤殑鐢婚潰ID
                             UserCenterResourse.NowActionFormID = UserCenterResourse.listActionFormId[index];
-                            if (UserCenterResourse.DicActionForm.ContainsKey(UserCenterResourse.NowActionFormID) == true)
+                            //杩藉姞鏉′欢涓�:鍏抽棴鐨勭晫闈负EditorCommonForm鐨勬椂鍊欐墠澶勭悊
+                            if ((form is EditorCommonForm) && UserCenterResourse.DicActionForm.ContainsKey(UserCenterResourse.NowActionFormID) == true)
                             {
                                 try
                                 {
                                     var Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID];
-                                    //瑙﹀彂鐣岄潰鍐嶆婵�娲荤殑浜嬩欢
-                                    int value = Myform.FormActionAgainEvent();
-                                    if (value == 1)
+                                    if (Myform is EditorCommonForm)
                                     {
-                                        //Log鍑哄姏
-                                        HdlLogLogic.Current.WriteLog(1, Myform.FormID + " 琚縺娲�");
+                                        //瑙﹀彂鐣岄潰鍐嶆婵�娲荤殑浜嬩欢
+                                        int value = ((EditorCommonForm)Myform).FormActionAgainEvent();
+                                        if (value == 1)
+                                        {
+                                            //Log鍑哄姏
+                                            HdlLogLogic.Current.WriteLog(1, Myform.FormID + " 琚縺娲�");
+                                        }
                                     }
                                 }
                                 catch (Exception ex)
@@ -428,17 +432,21 @@
                             {
                                 //璁剧疆褰撳墠婵�娲荤殑鐢婚潰ID
                                 UserCenterResourse.NowActionFormID = UserCenterResourse.listActionFormId[index];
-                                if (UserCenterResourse.DicActionForm.ContainsKey(UserCenterResourse.NowActionFormID) == true)
+                                //杩藉姞鏉′欢涓�:鍏抽棴鐨勭晫闈负EditorCommonForm鐨勬椂鍊欐墠澶勭悊
+                                if ((form is EditorCommonForm) && UserCenterResourse.DicActionForm.ContainsKey(UserCenterResourse.NowActionFormID) == true)
                                 {
                                     try
                                     {
                                         var Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID];
-                                        //瑙﹀彂鐣岄潰鍐嶆婵�娲荤殑浜嬩欢
-                                        int value = Myform.FormActionAgainEvent();
-                                        if (value == 1)
+                                        if (Myform is EditorCommonForm)
                                         {
-                                            //Log鍑哄姏
-                                            HdlLogLogic.Current.WriteLog(1, Myform.FormID + " 琚縺娲�");
+                                            //瑙﹀彂鐣岄潰鍐嶆婵�娲荤殑浜嬩欢
+                                            int value = ((EditorCommonForm)Myform).FormActionAgainEvent();
+                                            if (value == 1)
+                                            {
+                                                //Log鍑哄姏
+                                                HdlLogLogic.Current.WriteLog(1, Myform.FormID + " 琚縺娲�");
+                                            }
                                         }
                                     }
                                     catch (Exception ex)
@@ -946,6 +954,12 @@
 
             UserCenterResourse.UserInfo = userInfo;
             UserCenterResourse.UserInfo.UserIconFile = System.IO.Path.Combine(UserCenterResourse.Option.UserPictruePath, "Admin.png");
+            if (UserCenterResourse.UserInfo.HeadImage != null)
+            {
+                //鍐欏叆澶村儚鍐呭
+                Shared.IO.FileUtils.WriteFileByBytes(UserCenterResourse.UserInfo.UserIconFile, UserCenterResourse.UserInfo.HeadImage);
+            }
+            UserCenterResourse.UserInfo.HeadImage = null;
 
             //鍒濆鍖栫鐞嗗憳鎺у埗涓讳汉鐨勮繛鎺ュ湴鍧�(鍥犱负杩欎釜杩炴帴Token鏄笉浼氭敼鍙樼殑,鎵�浠ュ彧闇�瑕佸垵濮嬪寲涓�娆�)
             await InitAdminConnectMainInfo();
@@ -984,13 +998,12 @@
             {
                 return;
             }
-            string nowFile = System.IO.Path.Combine(UserCenterResourse.Option.UserPictruePath, "Admin.png");
-            if (System.IO.File.Exists(nowFile) == true)
+            if (System.IO.File.Exists(UserCenterResourse.UserInfo.UserIconFile) == true)
             {
                 return;
             }
             //澶嶅埗杩囧幓
-            System.IO.File.Copy(defultFile, nowFile);
+            System.IO.File.Copy(defultFile, UserCenterResourse.UserInfo.UserIconFile);
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/DirectoryFileNameResourse.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/DirectoryFileNameResourse.cs
index 2e07518..27d65b3 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/DirectoryFileNameResourse.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/DirectoryFileNameResourse.cs
@@ -110,5 +110,9 @@
         /// 鍒嗕韩妤煎眰鐨勩�愭枃浠躲��
         /// </summary>
         public const string ShardFloorFile = "5f05f7a6f26c51d1b096dc777f6c02f2";
+        /// <summary>
+        /// 鐗╃悊璁惧灞炰簬鍝釜鎴块棿鐨勩�愭枃浠躲��
+        /// </summary>
+        public const string DeviceRoomIdFile = "020945dd7966a7550090d3c04a04d93cd2278eb4e6aebcf6";
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/FirmwareUpdateResourse.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/FirmwareUpdateResourse.cs
index f48c119..c743b02 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/FirmwareUpdateResourse.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Resourse/FirmwareUpdateResourse.cs
@@ -16,7 +16,7 @@
         /// <summary>
         /// 缃戝叧鍗囩骇鍒楄〃
         /// </summary>
-        public static Dictionary<string, GatewayFirmwareUpdateControl> dicGatewayUpdateList = new Dictionary<string, GatewayFirmwareUpdateControl>();
+        public static Dictionary<string, HdlGatewayUpdateLogic> dicGatewayUpdateList = new Dictionary<string, HdlGatewayUpdateLogic>();
         /// <summary>
         /// 璁惧鍗囩骇鍒楄〃
         /// </summary>
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitSettionForm.cs
index 137ab61..38478e0 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/AirConditioner/IndoorUnitSettionForm.cs
@@ -110,10 +110,6 @@
             rowBeloneArea.AddBottomLine();
             rowBeloneArea.SelectRoomEvent += (roomKeys) =>
             {
-                //淇濆瓨杩欎釜璁惧灞炰簬鍝釜鍖哄煙
-                deviceAc.DeviceRoomId = roomKeys;
-                deviceAc.ReSave();
-
                 Common.Room.CurrentRoom.ChangedRoom(deviceAc, roomKeys);
             };
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs
index 5cb012c..b740b67 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddDevicePage.cs
@@ -49,12 +49,19 @@
         public Action<List<BindListResponseObj>> actionAddDevicePage;
         List<DeviceUI> curTypeDeviceList = new List<DeviceUI> { };
         string curDeviceBindType = "";
+        Button btnFloorText;
+        Dictionary<string, string> dicFloor;
+        Button btnChooseKeyMode;
+        bool IsInitEntry = false;//鏄惁棣栨杩涘叆璇ラ〉
+        List<DeviceUI> currentKeyAllRoomDeviceList = new List<DeviceUI>();
+        Dictionary<string, CommonDevice> oldTargetList = new Dictionary<string, CommonDevice> { };
         #endregion
 
         public void Show()
         {
             targetList.Clear();
             string titleText = "";
+            IsInitEntry = true;
             switch (curDeviceBindType)
             {
                 case "AddSwitch":
@@ -68,48 +75,50 @@
                     break;
             }
             this.TopFrameLayout(this, titleText);
-
             EventHandler<MouseEventArgs> eHandlerBack = (sender, e) =>
             {
                 RemoveFromParent();
             };
+            this.btnTitle.Width = Application.GetRealWidth(1080 - 161 - 200 - 58);
             this.btnBack.MouseUpEventHandler += eHandlerBack;
             this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack;
             this.MidFrameLayout(this);
 
             var btnAddFrameLayout = new FrameLayout
             {
-                X = Application.GetRealWidth(953),
-                Height = Application.GetRealHeight(72),
-                Width = Application.GetRealWidth(72),
+                X = Application.GetRealWidth(830),
+                Width = Application.GetRealWidth(200),
             };
             this.titleFrameLayout.AddChidren(btnAddFrameLayout);
 
-            var btnFloorText = new Button
+            btnFloorText = new Button
             {
-                Height = Application.GetRealHeight(84),
-                Width = Application.GetRealWidth(58),
-                X = Application.GetRealWidth(881),
-                Text = "涓�妤�",
+                Width = Application.GetRealWidth(110),
+                X = Application.GetRealWidth(15),
+                Text = Language.StringByID(R.MyInternationalizationString.FirstFloor),
                 TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
+                TextSize = 15,
+                TextAlignment = TextAlignment.CenterRight,
             };
             btnAddFrameLayout.AddChidren(btnFloorText);
 
             var btnBindDown = new Button
             {
-                Height = Application.GetRealHeight(72),
-                Width = Application.GetRealWidth(72),
-                //UnSelectedImagePath = "BindPic/BindDown.png",
+                Height = Application.GetRealHeight(69),
+                Width = Application.GetRealWidth(69),
+                X = Application.GetRealWidth(200 - 77),
+                UnSelectedImagePath = "BindPic/BindDown.png",
+                Gravity = Gravity.CenterVertical,
             };
             btnAddFrameLayout.AddChidren(btnBindDown);
             btnBindDown.MouseDownEventHandler += (sender, e) =>
             {
+                SideslipFramelayout();
             };
-
-            MidFrameLayoutContent();
+            MidFrameLayoutContent(btnFloorText);
         }
 
-        async void MidFrameLayoutContent()
+        async void MidFrameLayoutContent(Button btnFloorText)
         {
             #region UI
             var btnMidTopLayout = new FrameLayout
@@ -120,16 +129,9 @@
 
             btnHorizontalScrolViewLayout = new HorizontalScrolViewLayout
             {
+                X = Application.GetRealWidth(58),
             };
             btnMidTopLayout.AddChidren(btnHorizontalScrolViewLayout);
-
-            //var btnLine = new Button
-            //{
-            //    Y = btnMidTopLayout.Bottom,
-            //    Height = 1,
-            //    BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTitleLine,
-            //};
-            //this.midFrameLayout.AddChidren(btnLine);
 
             var btnmidVerticalScrolViewLayoutFrameLayout = new FrameLayout
             {
@@ -140,7 +142,6 @@
 
             midVerticalScrolViewLayout = new VerticalScrolViewLayout()
             {
-
             };
             btnmidVerticalScrolViewLayoutFrameLayout.AddChidren(midVerticalScrolViewLayout);
 
@@ -152,7 +153,7 @@
             };
             this.midFrameLayout.AddChidren(bottomFrameLayout);
 
-            var btnChooseKeyMode = new Button()
+            btnChooseKeyMode = new Button()
             {
                 Width = Application.GetRealWidth(907),
                 Gravity = Gravity.CenterHorizontal,
@@ -166,11 +167,56 @@
             #endregion
 
             #region 鏁版嵁澶勭悊
-            roomList = Shared.Common.Room.Lists;
+            //鑾峰彇妤煎眰
+            dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+            currentKey.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId();
+            btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName();
+            // 鑾峰彇妤煎眰瀵瑰簲瀵规埧闂�
+            foreach (var room in Shared.Common.Room.Lists)
+            {
+                if (room.FloorId == currentKey.currentSelectFloorId)
+                {
+                    roomList.Add(room);
+                }
+            }
+            //褰撳墠鎸夐敭鎵�鏈夋樉绀烘埧闂寸殑鎵�鏈夎澶囧鐞�
+            var aa = GetALlDispalyRoomDeviceList();
+            //棣栨鎷垮埌鎵�鏈夋埧闂翠腑鎸夐敭鐨勭洰鏍囧苟瀛樺偍
+            //if (IsInitEntry)
+            //{
+            //棣栨鎷垮埌鎵�鏈夋埧闂翠腑鎸夐敭鐨勭洰鏍囧苟瀛樺偍
+            if (currentKeyAllRoomDeviceList.Count != 0)
+            {
+                if (currentKey.bindList != null && currentKey.bindList.Count != 0)
+                {
+                    foreach (var devA in currentKeyAllRoomDeviceList)
+                    {
+                        var id = devA.CommonDevice?.DeviceAddr + devA.CommonDevice?.DeviceEpoint;
+                        var dev = currentKey.bindList.Find(obj => (obj != null) && (obj.BindMacAddr + obj.BindEpoint == id));
+                        if (dev != null)
+                        {
+                            if (!oldTargetList.ContainsKey(id))
+                            {
+                                oldTargetList.Add(id, devA.CommonDevice);
+                            }
+                        }
+                    }
+                }
+            }
+            if (oldTargetList != null)
+            {
+                foreach (var de in oldTargetList.Keys)
+                {
+                    var curDev = oldTargetList[de];
+                    targetList.Add(curDev);
+                }
+            }
+
+            //}
             Shared.Common.Room curRoom = roomList[0];
             int index = 0;
             RefreshRoomList(curRoom, btnChooseKeyMode, ref index);
-            RefreshDeviceList(roomList[index]);
+
             if (curTypeDeviceList.Count == 0)
             {
                 btnChooseKeyMode.Enable = false;
@@ -201,7 +247,7 @@
                     chooseKeyModePage.action += action;
                 }
             };
-            #endregion
+            #endregion 
         }
 
         /// <summary>
@@ -211,12 +257,28 @@
         /// <param name="key">Key.</param>
         void RefreshRoomList(Shared.Common.Room curRoom, Button btnChooseKeyMode, ref int index2)
         {
+            if (roomList.Count == 0)
+            {
+                return;
+            }
+            btnHorizontalScrolViewLayout.RemoveAll();
             Button curentOldRoom = null;
             FrameLayout curentOldRoomFrameLayout = null;
             int index = 0;
+            var roomTempList = new List<Room>();
             for (int i = 0; i < roomList.Count; i++)
             {
                 var room = roomList[i];
+                //妫�娴嬭鎴块棿鑳藉惁鏄剧ず
+                if (BindInfo.CheckCanShowRoom(room, curDeviceBindType) == false)
+                {
+                    continue;
+                }
+                roomTempList.Add(room);
+                if (roomTempList.Count != 0)
+                {
+                    curRoom = roomTempList[0];
+                }
 
                 var btnRoomFrameLayout = new FrameLayout
                 {
@@ -244,45 +306,15 @@
                 btnRoomFrameLayout.AddChidren(btnRoom);
 
                 btnRoom.IsSelected = false;
-                if (currentKey.RoomId == "")
+                if (index == 0)
                 {
-                    if (i == index)
-                    {
-                        btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
-                        btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
-                        btnRoomFrameLayout.BorderWidth = 0;
-                        btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
-                        curentOldRoom = btnRoom;
-                        curentOldRoomFrameLayout = btnRoomFrameLayout;
-                    }
-                    else
-                    {
-                        btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
-                        btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
-                        btnRoomFrameLayout.BorderWidth = 1;
-                    }
+                    btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+                    btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+                    btnRoomFrameLayout.BorderWidth = 0;
+                    btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
+                    curentOldRoom = btnRoom;
+                    curentOldRoomFrameLayout = btnRoomFrameLayout;
                 }
-                else
-                {
-                    if (currentKey.RoomId == room.Id)
-                    {
-                        btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
-                        btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
-                        btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
-                        btnRoomFrameLayout.BorderWidth = 0;
-                        curentOldRoom = btnRoom;
-                        curentOldRoomFrameLayout = btnRoomFrameLayout;
-                        curRoom = room;
-                        index2 = i;
-                    }
-                    else
-                    {
-                        btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
-                        btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
-                        btnRoomFrameLayout.BorderWidth = 1;
-                    }
-                }
-
                 EventHandler<MouseEventArgs> eHandlerRoom = (sender, e) =>
                 {
                     if (!btnRoom.IsSelected)
@@ -344,7 +376,96 @@
                     X = btnRoom.Right,
                 };
                 btnHorizontalScrolViewLayout.AddChidren(btnEmpty);
+                index++;
             }
+            BindInfo.FinishDisplay(roomTempList, btnChooseKeyMode);
+            RefreshDeviceList(curRoom);
+        }
+
+        //褰撳墠鎸夐敭鎵�鏈夋樉绀烘埧闂寸殑鎵�鏈夎澶囧鐞�
+        List<DeviceUI> GetALlDispalyRoomDeviceList()
+        {
+            currentKeyAllRoomDeviceList.Clear();
+            switch (curDeviceBindType)
+            {
+                case "AddSwitch":
+                    foreach (var r in Shared.Common.Room.Lists)
+                    {
+                        if (r.IsLove == true)
+                        {
+                            var aa = 0; ;
+                        }
+                        if (r.DeviceUIList.Count == 0)
+                        {
+                            continue;
+                        }
+                        if (r.IsLove == true)
+                        {
+                            continue;
+                        }
+                        foreach (var device in r.DeviceUIList)
+                        {
+                            if (device.CommonDevice != null)
+                            {
+                                var dev = device.CommonDevice.InClusterList.Find(obj => (obj != null) && (obj.InCluster == 6));
+                                if (dev != null)
+                                {
+                                    currentKeyAllRoomDeviceList.Add(device);
+                                }
+                            }
+                        }
+                    }
+                    break;
+                case "AddDimmer":
+                    foreach (var r in Shared.Common.Room.Lists)
+                    {
+                        if (r.DeviceUIList.Count == 0)
+                        {
+                            continue;
+                        }
+                        if (r.IsLove == true)
+                        {
+                            continue;
+                        }
+                        foreach (var device in r.DeviceUIList)
+                        {
+                            if (device.CommonDevice != null)
+                            {
+                                var dev = device.CommonDevice.InClusterList.Find(obj => (obj != null) && (obj.InCluster == 8));
+                                if (dev != null)
+                                {
+                                    currentKeyAllRoomDeviceList.Add(device);
+                                }
+                            }
+                        }
+                    }
+                    break;
+                case "AddCurtain":
+                    foreach (var r in Shared.Common.Room.Lists)
+                    {
+                        if (r.DeviceUIList.Count == 0)
+                        {
+                            continue;
+                        }
+                        if (r.IsLove == true)
+                        {
+                            continue;
+                        }
+                        foreach (var device in r.DeviceUIList)
+                        {
+                            if (device.CommonDevice != null)
+                            {
+                                var dev = device.CommonDevice.InClusterList.Find(obj => (obj != null) && (obj.InCluster == 258));
+                                if (dev != null)
+                                {
+                                    currentKeyAllRoomDeviceList.Add(device);
+                                }
+                            }
+                        }
+                    }
+                    break;
+            }
+            return currentKeyAllRoomDeviceList;
         }
 
         /// <summary>
@@ -355,7 +476,6 @@
         void RefreshDeviceList(Shared.Common.Room curRoom)
         {
             midVerticalScrolViewLayout.RemoveAll();
-
             curTypeDeviceList.Clear();
             switch (curDeviceBindType)
             {
@@ -492,19 +612,161 @@
                 {
                     btnBindName.Text = device.CommonDevice?.DeviceEpointName;
                 }
-
-                foreach (var bindedDev in currentKey.bindList)
+                foreach (var bindedDev in targetList)
                 {
                     var id = device.CommonDevice?.DeviceAddr + device.CommonDevice?.DeviceEpoint;
-                    if (id == bindedDev.BindMacAddr + bindedDev.BindEpoint)
+                    if (id == bindedDev.DeviceAddr + bindedDev.DeviceEpoint)
                     {
                         btnChoose.IsSelected = true;
                         btnChoose.Visible = true;
-                        targetList.Add(device.CommonDevice);
                     }
                 }
+
                 curIndex++;
             }
+            //IsInitEntry = false;
+        }
+
+        // 渚ц竟瀵艰埅鏍�
+        void SideslipFramelayout()
+        {
+            var dialog = new Dialog
+            {
+            };
+            dialog.Show();
+
+            var flMain = new FrameLayout { BackgroundColor = 0x00000000 };
+            dialog.AddChidren(flMain);
+            flMain.MouseUpEventHandler += (sender11, e11) =>
+            {
+                dialog.Close();
+            };
+
+            var sidelipFrameLayout = new FrameLayout()
+            {
+                Height = Application.GetRealHeight(783),
+                Width = Application.GetRealWidth(449),
+                Y = Application.GetRealHeight(161),
+                X = Application.GetRealWidth(596),
+                BackgroundImagePath = "DoorLock/SideslipPic.png",
+            };
+            flMain.AddChidren(sidelipFrameLayout);
+
+            var btnSelectFloor = new Button()
+            {
+                Width = Application.GetRealWidth(200),
+                Height = Application.GetRealHeight(58),
+                X = Application.GetRealWidth(81),
+                Y = Application.GetRealHeight(81),
+                TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+                TextSize = 14,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextID = R.MyInternationalizationString.SelectFloor,
+            };
+            sidelipFrameLayout.AddChidren(btnSelectFloor);
+
+            var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout()
+            {
+                Height = Application.GetRealHeight(600),
+                Y = btnSelectFloor.Bottom,
+            };
+            sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout);
+
+            Button oldbutton = null;
+            Button oldbuttonText = null;
+            foreach (var floorId in dicFloor.Keys)
+            {
+                var rowFrameLayout = new RowLayout()
+                {
+                    Height = Application.GetRealHeight(150),
+                    LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
+                    X = Application.GetRealWidth(81),
+                };
+                sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout);
+
+                var btnAllMethod = new Button()
+                {
+                    Width = Application.GetRealWidth(81),
+                    Height = Application.GetRealHeight(81),
+                    Y = Application.GetRealHeight(55),
+                    UnSelectedImagePath = "Floor/Floor.png",
+                    SelectedImagePath = "Floor/FloorSelected.png",
+                };
+                rowFrameLayout.AddChidren(btnAllMethod);
+
+                var btnMethodText = new Button()
+                {
+                    Width = Application.GetRealWidth(311),
+                    Height = Application.GetRealHeight(58),
+                    X = Application.GetRealWidth(92),
+                    Y = Application.GetRealHeight(69),
+                    TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
+                    TextSize = 14,
+                    TextAlignment = TextAlignment.CenterLeft,
+                    Text = dicFloor[floorId],
+                };
+                rowFrameLayout.AddChidren(btnMethodText);
+
+                if (currentKey.currentSelectFloorId == floorId)
+                {
+                    btnAllMethod.IsSelected = true;
+                    btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+                }
+
+                string curFloorId = floorId;
+                EventHandler<MouseEventArgs> hander = (sender, e) =>
+                {
+                    if (currentKey.currentSelectFloorId == curFloorId)
+                    {
+                        return;
+                    }
+                    currentKey.currentSelectFloorId = curFloorId;
+                    btnFloorText.Text = dicFloor[floorId];
+                    roomList.Clear();
+
+                    if (!btnMethodText.IsSelected)
+                    {
+                        if (oldbutton != null)
+                        {
+                            oldbutton.IsSelected = false;
+                        }
+                        if (oldbuttonText != null)
+                        {
+                            oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
+                        }
+                        oldbutton = btnMethodText;
+                        oldbuttonText = btnMethodText;
+                        btnMethodText.IsSelected = true;
+                        oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+                    }
+
+                    //鑾峰彇妤煎眰瀵瑰簲鐨勬埧闂�
+                    foreach (var room in Shared.Common.Room.Lists)
+                    {
+                        if (room.FloorId == currentKey.currentSelectFloorId)
+                        {
+                            roomList.Add(room);
+                        }
+                    }
+                    Shared.Common.Room curRoom = new Shared.Common.Room();
+                    if (roomList.Count != 0)
+                    {
+                        curRoom = roomList[0];
+                    }
+                    else
+                    {
+                        curRoom = new Shared.Common.Room();
+                        roomList.Add(curRoom);
+                    }
+                    int index = 0;
+                    RefreshRoomList(curRoom, btnChooseKeyMode, ref index);
+
+                    dialog.Close();
+                };
+                btnAllMethod.MouseUpEventHandler += hander;
+                rowFrameLayout.MouseUpEventHandler += hander;
+                btnMethodText.MouseUpEventHandler += hander;
+            }
         }
 
         public void DeviceInfoChange(CommonDevice common, string typeTag)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
index 4e81bfb..6c5273b 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/AddScenePage.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
+using Java.Util;
 using Microsoft.AppCenter.Crashes;
 using Shared.Common;
 using Shared.Phone.Device.Light;
@@ -7,6 +8,7 @@
 using ZigBee.Device;
 using static ZigBee.Device.BindObj;
 using static ZigBee.Device.Panel;
+
 namespace Shared.Phone.UserCenter.DeviceBind
 {
     public class AddScenePage : BindCommonLayout, ZigBee.Common.IStatus
@@ -42,6 +44,10 @@
         List<CommonDevice> targetList = new List<CommonDevice>();
         List<Room> roomList = new List<Room>();
         public Action<List<BindListResponseObj>> action;
+        Button btnFinifh;
+        Button btnFloorText;
+        Dictionary<string, string> dicFloor;
+
         #endregion
 
         public void Show()
@@ -60,12 +66,11 @@
             var btnAddFrameLayout = new FrameLayout
             {
                 X = Application.GetRealWidth(830),
-                Width = Application.GetRealWidth(0),//200
-                BackgroundColor = 0xff00ff00,
+                Width = Application.GetRealWidth(200),
             };
             this.titleFrameLayout.AddChidren(btnAddFrameLayout);
 
-            var btnFloorText = new Button
+            btnFloorText = new Button
             {
                 Width = Application.GetRealWidth(110),
                 X = Application.GetRealWidth(15),
@@ -73,7 +78,6 @@
                 TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
                 TextSize = 15,
                 TextAlignment = TextAlignment.CenterRight,
-                BackgroundColor = 0xffff0000,
             };
             btnAddFrameLayout.AddChidren(btnFloorText);
 
@@ -81,20 +85,19 @@
             {
                 Height = Application.GetRealHeight(69),
                 Width = Application.GetRealWidth(69),
-                X = Application.GetRealWidth(200 - 69),
+                X = Application.GetRealWidth(200 - 77),
                 UnSelectedImagePath = "BindPic/BindDown.png",
                 Gravity = Gravity.CenterVertical,
-                BackgroundColor = 0xff0000ff,
             };
             btnAddFrameLayout.AddChidren(btnBindDown);
             btnBindDown.MouseDownEventHandler += (sender, e) =>
             {
                 SideslipFramelayout();
             };
-            MidFrameLayoutContent();
+            MidFrameLayoutContent(btnFloorText);
         }
 
-        async void MidFrameLayoutContent()
+        async void MidFrameLayoutContent(Button btnFloorText)
         {
             #region UI
             var btnMidTopLayout = new FrameLayout
@@ -105,6 +108,7 @@
 
             btnHorizontalScrolViewLayout = new HorizontalScrolViewLayout
             {
+                X = Application.GetRealWidth(58),
             };
             btnMidTopLayout.AddChidren(btnHorizontalScrolViewLayout);
 
@@ -122,7 +126,7 @@
             };
             this.midFrameLayout.AddChidren(bottomFrameLayout);
 
-            var btnFinifh = new Button()
+            btnFinifh = new Button()
             {
                 Width = Application.GetRealWidth(907),
                 Height = Application.GetRealHeight(127),
@@ -136,8 +140,19 @@
             bottomFrameLayout.AddChidren(btnFinifh);
             #endregion
 
-            #region 鏁版嵁澶勭悊
-            roomList = Shared.Common.Room.Lists;
+            #region 鏁版嵁澶勭悊  
+            //鑾峰彇妤煎眰
+            dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+            currentKey.currentSelectFloorId = BindInfo.GetCurrentSelectFloorId();
+            btnFloorText.Text = BindInfo.GetCurrentSelectFloorIdName();
+            // 鑾峰彇妤煎眰瀵瑰簲瀵规埧闂�
+            foreach (var room in Shared.Common.Room.Lists)
+            {
+                if (room.FloorId == currentKey.currentSelectFloorId)
+                {
+                    roomList.Add(room);
+                }
+            }
             Shared.Common.Room curRoom = roomList[0];
             int index = 0;
             RefreshRoomList(curRoom, btnFinifh, ref index);
@@ -156,69 +171,88 @@
 
             btnFinifh.MouseUpEventHandler += async (sender, e) =>
             {
+                bool isFinish = false;
                 btnFinifh.Enable = false;
                 btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
-                if (currentKey.bindList.Count != 0)
+                try
                 {
-                    var bindResult = await currentKey.ClearBindInfoAsync();
-                    if (bindResult.clearBindInfoResponseData != null)
+                    Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); });
+                    if (currentKey.bindList.Count != 0)
                     {
-                        if (bindResult.clearBindInfoResponseData.Result != 0)
+                        var bindResult = await currentKey.ClearBindInfoAsync();
+                        if (bindResult != null && bindResult.clearBindInfoResponseData != null)
                         {
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
-                            CommonPage.Loading.Hide();
-                            this.RemoveFromParent();
+                            if (bindResult.clearBindInfoResponseData.Result != 0)
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                    CommonPage.Loading.Hide();
+                                });
+                                this.RemoveFromParent();
+                                btnFinifh.Enable = true;
+                                btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+                                return;
+                            }
+                            else
+                            {
+                                currentKey.bindList.Clear();
+                            }
+                        }
+                        else
+                        {
+                            var btn = new Button()
+                            {
+                                Gravity = Gravity.Center,
+                            };
+                            this.midFrameLayout.AddChidren(btn);
+                            Application.RunOnMainThread(() =>
+                            {
+                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btn);
+                            });
+                        }
+                    }
+
+                    var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Scene_Trigger);
+                    if (temp.setWritableValueResponData?.Status != 0)
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnFinifh);
                             btnFinifh.Enable = true;
                             btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                            return;
-                        }
-                        else
-                        {
-                            currentKey.bindList.Clear();
-                        }
+                        });
+                        return;
                     }
-                }
-
-                var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Scene_Trigger);
-                if (temp.setWritableValueResponData?.Status != 0)
-                {
-                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnFinifh);
-                    btnFinifh.Enable = true;
-                    btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                    return;
-                }
-                else
-                {
-                    currentKey.panelMode = 1;
-                    var addBindeDev = new AddBindData();
-                    addBindeDev.DeviceAddr = currentKey.DeviceAddr;
-                    addBindeDev.Epoint = currentKey.DeviceEpoint;
-
-                    foreach (var de in targetList)
+                    else
                     {
-                        if (de.DeviceAddr != null)
+                        currentKey.panelMode = 1;
+                        var addBindeDev = new AddBindData();
+                        addBindeDev.DeviceAddr = currentKey.DeviceAddr;
+                        addBindeDev.Epoint = currentKey.DeviceEpoint;
+
+                        foreach (var de in targetList)
                         {
-                            var addBindInfo = new AddBindListObj();
-                            addBindInfo.BindType = 0;
-                            addBindInfo.BindCluster = 6;
-                            addBindInfo.BindMacAddr = de.DeviceAddr;
-                            addBindInfo.BindEpoint = de.DeviceEpoint;
-                            addBindeDev.BindList.Add(addBindInfo);
+                            if (de.DeviceAddr != null)
+                            {
+                                var addBindInfo = new AddBindListObj();
+                                addBindInfo.BindType = 0;
+                                addBindInfo.BindCluster = 6;
+                                addBindInfo.BindMacAddr = de.DeviceAddr;
+                                addBindInfo.BindEpoint = de.DeviceEpoint;
+                                addBindeDev.BindList.Add(addBindInfo);
+                            }
+                            else
+                            {
+                                var addBindInfo = new AddBindListObj();
+                                addBindInfo.BindType = 1;
+                                addBindInfo.BindCluster = 6;
+                                var sc1 = (SceneUI)de;
+                                addBindInfo.BindScenesId = sc1.Id;
+                                addBindeDev.BindList.Add(addBindInfo);
+                            }
                         }
-                        else
-                        {
-                            var addBindInfo = new AddBindListObj();
-                            addBindInfo.BindType = 1;
-                            addBindInfo.BindCluster = 6;
-                            var sc1 = (SceneUI)de;
-                            addBindInfo.BindScenesId = sc1.Id;
-                            addBindeDev.BindList.Add(addBindInfo);
-                        }
-                    }
-                    bool isFinish = false;
-                    try
-                    {
-                        CommonPage.Loading.Start("");
+
                         var dev = new AddedDeviceBindResponseAllData();
                         dev = await currentKey.AddDeviceBindAsync(addBindeDev);
                         foreach (var ab in dev.addedDeviceBindResponseData?.BindList)
@@ -246,13 +280,16 @@
                                     isFinish = true;
                                     break;
                                 case 1:
-                                    new Tip()
+                                    Application.RunOnMainThread(() =>
                                     {
-                                        MaxWidth = 150,
-                                        Text = Language.StringByID(R.MyInternationalizationString.BindErrorAbsence),
-                                        Direction = AMPopTipDirection.Up,
-                                        CloseTime = 1
-                                    }.Show(btnFinifh);
+                                        new Tip()
+                                        {
+                                            MaxWidth = 150,
+                                            Text = Language.StringByID(R.MyInternationalizationString.BindErrorAbsence),
+                                            Direction = AMPopTipDirection.Up,
+                                            CloseTime = 1
+                                        }.Show(btnFinifh);
+                                    });
                                     break;
                                 case 2:
                                     switch (dev.addBindResultResponseData?.Result)
@@ -271,61 +308,97 @@
                                             isFinish = true;
                                             break;
                                         case 140:
-                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFull), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                            Application.RunOnMainThread(() =>
+                                            {
+                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFull), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                            });
                                             break;
                                         default:
-                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                            Application.RunOnMainThread(() =>
+                                            {
+                                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                            });
                                             break;
                                     }
                                     break;
                                 case 3:
-                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindErrorExisted), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindErrorExisted), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                    });
                                     break;
                                 case 4:
-                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                    });
                                     break;
                                 default:
                                     break;
                             }
                         }
                     }
-                    catch { }
-                    finally
+                }
+                catch { }
+                finally
+                {
+                    if (isFinish)
                     {
-                        if (isFinish)
+                        if (action != null)
                         {
-                            if (action != null)
-                            {
-                                action(currentKey.bindList);
-                            }
-                            this.RemoveFromParent();
+                            action(currentKey.bindList);
                         }
-                        else
-                        {
-                            this.RemoveFromParent();
-                        }
+                        this.RemoveFromParent();
+                    }
+                    else
+                    {
+                        this.RemoveFromParent();
+                    }
+                    Application.RunOnMainThread(() =>
+                    {
                         CommonPage.Loading.Hide();
                         btnFinifh.Enable = true;
                         btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                    }
+                    });
                 }
             };
-
-            #endregion 
+            #endregion
         }
 
         // 鎸夐敭缁戝畾鍦烘櫙琛ㄦ樉绀�
         void RefreshRoomList(Shared.Common.Room curRoom, Button btnFinish, ref int index2)
         {
+            if (roomList.Count == 0)
+            {
+                return;
+            }
+            btnHorizontalScrolViewLayout.RemoveAll();
             Button curentOldRoom = null;
             FrameLayout curentOldRoomFrameLayout = null;
             int index = 0;
+            var roomTempList = new List<Room>();
+
             for (int i = 0; i < roomList.Count; i++)
             {
                 var room = roomList[i];
+                //濡傛灉鎴块棿涓哄枩鐖憋紝鍒欎笉鏄剧ず
                 if (room.IsLove == true)
                 {
-                    //;
+                    continue;
+                }
+
+                //濡傛灉鎴块棿涓病鏈夎澶囷紝鍒欎笉鏄剧ず
+                if (room.SceneUIList.Count == 0)
+                {
+                    continue;
+                }
+                else
+                {
+                    roomTempList.Add(room);
+                }
+                if (roomTempList.Count != 0)
+                {
+                    curRoom = roomTempList[0];
                 }
 
                 var btnRoomFrameLayout = new FrameLayout
@@ -333,7 +406,6 @@
                     Height = Application.GetRealHeight(78),
                     Width = Application.GetRealWidth(187),
                     Y = Application.GetRealHeight(58),
-                    X = Application.GetRealWidth(58),
                     Radius = (uint)Application.GetMinRealAverage(78 / 2),
                     BorderColor = Shared.Common.ZigbeeColor.Current.XMOrange,
                     BorderWidth = 1,
@@ -355,46 +427,60 @@
                 };
                 btnRoomFrameLayout.AddChidren(btnRoom);
 
+
                 btnRoom.IsSelected = false;
-                if (currentKey.RoomId == "")
+
+                //榛樿閫変腑姣忎釜妤煎眰鐨勭涓�涓埧闂�
+                if (index == 0)
                 {
-                    if (i == index)
-                    {
-                        btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
-                        btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
-                        btnRoomFrameLayout.BorderWidth = 0;
-                        btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
-                        curentOldRoom = btnRoom;
-                        curentOldRoomFrameLayout = btnRoomFrameLayout;
-                    }
-                    else
-                    {
-                        btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
-                        btnRoom.IsSelected = false;
-                        btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
-                        btnRoomFrameLayout.BorderWidth = 1;
-                    }
+                    btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+                    btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+                    btnRoomFrameLayout.BorderWidth = 0;
+                    btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
+                    curentOldRoom = btnRoom;
+                    curentOldRoomFrameLayout = btnRoomFrameLayout;
                 }
-                else
-                {
-                    if (currentKey.RoomId == room.Id)
-                    {
-                        btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
-                        btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
-                        btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
-                        btnRoomFrameLayout.BorderWidth = 0;
-                        curentOldRoom = btnRoom;
-                        curentOldRoomFrameLayout = btnRoomFrameLayout;
-                        curRoom = room;
-                        index2 = i;
-                    }
-                    else
-                    {
-                        btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
-                        btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
-                        btnRoomFrameLayout.BorderWidth = 1;
-                    }
-                }
+
+                //璁板綍涔嬪墠閫変腑鐨勬埧闂�
+                //if (currentKey.RoomId == "")
+                //{
+                //    if (i == index)
+                //    {
+                //        btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+                //        btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+                //        btnRoomFrameLayout.BorderWidth = 0;
+                //        btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
+                //        curentOldRoom = btnRoom;
+                //        curentOldRoomFrameLayout = btnRoomFrameLayout;
+                //    }
+                //    else
+                //    {
+                //        btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
+                //        btnRoom.IsSelected = false;
+                //        btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
+                //        btnRoomFrameLayout.BorderWidth = 1;
+                //    }
+                //}
+                //else
+                //{
+                //    if (currentKey.RoomId == room.Id)
+                //    {
+                //        btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMWhite;
+                //        btnRoom.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+                //        btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMOrange;
+                //        btnRoomFrameLayout.BorderWidth = 0;
+                //        curentOldRoom = btnRoom;
+                //        curentOldRoomFrameLayout = btnRoomFrameLayout;
+                //        curRoom = room;
+                //        index2 = i;
+                //    }
+                //    else
+                //    {
+                //        btnRoom.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
+                //        btnRoomFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
+                //        btnRoomFrameLayout.BorderWidth = 1;
+                //    }
+                //}
 
                 EventHandler<MouseEventArgs> eHandlerRoom = (sender, e) =>
                 {
@@ -458,11 +544,18 @@
                 };
                 btnHorizontalScrolViewLayout.AddChidren(btnEmpty);
             }
+
+            BindInfo.FinishDisplay(roomTempList, btnFinish);
+            index++;
         }
 
         //鎸夐敭缁戝畾鍦烘櫙琛ㄦ樉绀�
         void RefreshSceneList(Shared.Common.Room curRoom)
         {
+            if (curRoom.SceneUIList.Count == 0)
+            {
+                return;
+            }
             midVerticalScrolViewLayout.RemoveAll();
 
             Button oldScene = null;
@@ -615,7 +708,7 @@
                 Width = Application.GetRealWidth(200),
                 Height = Application.GetRealHeight(58),
                 X = Application.GetRealWidth(81),
-                Y = Application.GetRealHeight(58),
+                Y = Application.GetRealHeight(81),
                 TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
                 TextSize = 14,
                 TextAlignment = TextAlignment.CenterLeft,
@@ -626,12 +719,9 @@
             var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout()
             {
                 Height = Application.GetRealHeight(600),
-                Y = Application.GetRealHeight(173),
+                Y = btnSelectFloor.Bottom,
             };
             sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout);
-
-            //鑾峰彇妤煎眰
-            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
 
             Button oldbutton = null;
             Button oldbuttonText = null;
@@ -640,6 +730,8 @@
                 var rowFrameLayout = new RowLayout()
                 {
                     Height = Application.GetRealHeight(150),
+                    LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
+                    X = Application.GetRealWidth(81),
                 };
                 sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout);
 
@@ -647,8 +739,9 @@
                 {
                     Width = Application.GetRealWidth(81),
                     Height = Application.GetRealHeight(81),
-                    X = Application.GetRealWidth(81),
                     Y = Application.GetRealHeight(55),
+                    UnSelectedImagePath = "Floor/Floor.png",
+                    SelectedImagePath = "Floor/FloorSelected.png",
                 };
                 rowFrameLayout.AddChidren(btnAllMethod);
 
@@ -656,7 +749,7 @@
                 {
                     Width = Application.GetRealWidth(311),
                     Height = Application.GetRealHeight(58),
-                    X = Application.GetRealWidth(173),
+                    X = Application.GetRealWidth(92),
                     Y = Application.GetRealHeight(69),
                     TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
                     TextSize = 14,
@@ -665,8 +758,23 @@
                 };
                 rowFrameLayout.AddChidren(btnMethodText);
 
+                if (currentKey.currentSelectFloorId == floorId)
+                {
+                    btnAllMethod.IsSelected = true;
+                    btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+                }
+
+                string curFloorId = floorId;
                 EventHandler<MouseEventArgs> hander = (sender, e) =>
                 {
+                    if (currentKey.currentSelectFloorId == curFloorId)
+                    {
+                        return;
+                    }
+                    currentKey.currentSelectFloorId = curFloorId;
+                    btnFloorText.Text = dicFloor[floorId];
+                    roomList.Clear();
+
                     if (!btnMethodText.IsSelected)
                     {
                         if (oldbutton != null)
@@ -682,6 +790,30 @@
                         btnMethodText.IsSelected = true;
                         oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                     }
+
+                    //鑾峰彇妤煎眰瀵瑰簲鐨勬埧闂�
+                    foreach (var room in Shared.Common.Room.Lists)
+                    {
+                        if (room.FloorId == currentKey.currentSelectFloorId)
+                        {
+                            roomList.Add(room);
+                        }
+                    }
+
+                    Shared.Common.Room curRoom = new Shared.Common.Room();
+                    if (roomList.Count != 0)
+                    {
+                        curRoom = roomList[0];
+                    }
+                    else
+                    {
+                        curRoom = new Shared.Common.Room();
+                        roomList.Add(curRoom);
+                    }
+                    int index = 0;
+                    RefreshRoomList(curRoom, btnFinifh, ref index);
+                    RefreshSceneList(roomList[0]);
+
                     dialog.Close();
                 };
                 btnAllMethod.MouseUpEventHandler += hander;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
index 4977f95..c2a79dc 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
@@ -15,6 +15,205 @@
         /// 褰撳墠鎸夐敭閰嶇疆鐨勫姛鑳�
         /// </summary>
         public static int clusterID = 0;
+        /// <summary>
+        /// 璁板綍鏃х殑鐩爣鍒楄〃
+        /// </summary>
+        public static List<CommonDevice> oldTargetList = new List<CommonDevice>();
+
+        public static async System.Threading.Tasks.Task<int> RemoveTargets(BindObj.BindListResponseObj bindDevice, Panel currentKey)
+        {
+            var delDevice = new BindObj.DelDeviceBindData();
+            delDevice.DeviceAddr = currentKey.DeviceAddr;
+            delDevice.Epoint = currentKey.DeviceEpoint;
+
+            if (bindDevice.BindType == 0 || bindDevice.BindType == 1)
+            {
+                var removeDevice = new BindObj.RemoveBindListObj();
+                removeDevice.BindCluster = bindDevice.BindCluster;
+                removeDevice.BindType = 0;
+                removeDevice.BindMacAddr = bindDevice.BindMacAddr;
+                removeDevice.BindEpoint = bindDevice.BindEpoint;
+                delDevice.RemoveBindList.Add(removeDevice);
+            }
+            else if (bindDevice.BindType == 2)
+            {
+                var removeDevice = new BindObj.RemoveBindListObj();
+                removeDevice.BindCluster = bindDevice.BindCluster;
+                removeDevice.BindType = 1;
+                removeDevice.BindScenesId = bindDevice.BindScenesId;
+                delDevice.RemoveBindList.Add(removeDevice);
+            }
+            var delResult = await currentKey.DelDeviceBindAsync(delDevice);
+            foreach (var re in delResult.delDeviceBindResponseData.RemoveBindList)
+            {
+                switch (re.Result)
+                {
+                    case 0:
+                        return 0;
+                        break;
+                    case 4:
+
+                        if (delResult.removeBindResultResponseData != null)
+                        {
+                            if (delResult.removeBindResultResponseData.Result == 0)
+                            {
+                                return 0;
+                            }
+                        }
+                        break;
+                }
+            }
+            return -1;
+        }
+
+        /// <summary>
+        /// 妫�娴嬭璁惧鑳藉惁鏄剧ず
+        /// </summary>
+        /// <param name="device"></param>
+        /// <returns></returns>
+        public static bool CheckCanShowDevice(ZigBee.Device.CommonDevice device, string curDeviceBindType = "AddSwitch")
+        {
+            if (device == null)
+            {
+                return false;
+            }
+            //濡傛灉鏄紶鎰熷櫒锛屾垨鑰呮槸娌℃湁寮�鍏崇皣鐨勮瘽(杩欓噷鍒ゆ柇鐨勬槸杈撳叆绨�)
+            if ((device.Type == ZigBee.Device.DeviceType.IASZone) || InMatchDevice(device, curDeviceBindType) == false)
+            {
+                return false;
+            }
+            return true;
+        }
+
+        /// <summary>
+        /// 妫�娴嬭鎴块棿鑳藉惁鏄剧ず
+        /// </summary>
+        /// <param name="room"></param>
+        /// <returns></returns>
+        public static bool CheckCanShowRoom(Common.Room room, string curDeviceBindType = "AddSwitch")
+        {
+            if (room.DeviceUIList.Count == 0)
+            {
+                return false;
+            }
+            if (room.IsLove == true)
+            {
+                return false;
+            }
+            foreach (var deviceUi in room.DeviceUIList)
+            {
+                //妫�娴嬭璁惧鑳藉惁鏄剧ず
+                if (CheckCanShowDevice(deviceUi.CommonDevice, curDeviceBindType) == false)
+                {
+                    continue;
+                }
+
+                //瀛樺湪璁惧鐨勮瘽锛屾鎴块棿鍙互鏄剧ず
+                return true;
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// 妫�娴嬭澶囨槸鍚︽嫢鏈夊紑鍏崇殑鍔熻兘(杈撳叆绨�)
+        /// </summary>
+        /// <param name="device"></param>
+        /// <returns></returns>
+        public static bool InMatchDevice(CommonDevice device, string curDeviceBindType = "AddSwitch")
+        {
+            foreach (var data in device.InClusterList)
+            {
+                switch (curDeviceBindType)
+                {
+                    case "AddSwitch":
+                        //鎷ユ湁on/off鍔熻兘鐨勶紝鎵嶆敮鎸佹祴璇�
+                        if (data.InCluster == 6)
+                        {
+                            return true;
+                        }
+                        break;
+                    case "AddDimmer":
+                        if (data.InCluster == 8)
+                        {
+                            return true;
+                        }
+                        break;
+                    case "AddCurtain":
+                        if (data.InCluster == 258)
+                        {
+                            return true;
+                        }
+                        break;
+                }
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// 搴曢儴瀹屾垚鎸夐挳鏄剧ず
+        /// </summary>
+        /// <returns></returns>
+        public static void FinishDisplay(List<Room> roomTempList, Button btnFinish)
+        {
+            if (roomTempList.Count == 0)
+            {
+                btnFinish.Enable = false;
+                btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
+            }
+            else
+            {
+                btnFinish.Enable = true;
+                btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇褰撳墠妤煎眰鍚嶇О
+        /// </summary>
+        /// <returns></returns>
+        public static string GetCurrentKeyAllRoomList()
+        {
+            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+            foreach (var floorId in dicFloor.Keys)
+            {
+                //绗竴涓ゼ灞�
+                return dicFloor[floorId];
+                break;
+            }
+            return null;
+        }
+
+        /// <summary>
+        /// 鑾峰彇褰撳墠妤煎眰
+        /// </summary>
+        /// <returns></returns>
+        public static string GetCurrentSelectFloorId()
+        {
+            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+            foreach (var floorId in dicFloor.Keys)
+            {
+                //绗竴涓ゼ灞�
+                return floorId;
+                break;
+            }
+            return null;
+        }
+
+        /// <summary>
+        /// 鑾峰彇褰撳墠妤煎眰鍚嶇О
+        /// </summary>
+        /// <returns></returns>
+        public static string GetCurrentSelectFloorIdName()
+        {
+            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+            foreach (var floorId in dicFloor.Keys)
+            {
+                //绗竴涓ゼ灞�
+                return dicFloor[floorId];
+                break;
+            }
+            return null;
+        }
 
         /// <summary>
         ///  妫�娴嬫帶鍒堕潰鏉�(鎸夐敭绫�)鎵�鎷ユ湁鐨勫姛鑳�,鐜版敮鎸佺殑鏈変互涓嬪嚑绉�(蹇呭畾瀛樺湪閿��,鍑洪敊浼氳繑鍥瀗ull)
@@ -228,5 +427,6 @@
         }
 
 
+
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
index 467fe87..bd43ae4 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
@@ -170,11 +170,11 @@
                 CommonPage.Loading.Start("");
                 #region 鏁版嵁澶勭悊
                 var tempDeata = await currentKey.ReadPanelConfigureInfoAsync();
+
                 if (tempDeata != null && tempDeata.deviceStatusReportData != null)
                 {
                     currentClusterID = tempDeata.deviceStatusReportData.CluterID;
-                    //if (currentClusterID == 6)
-                    //{
+
                     foreach (var attr in tempDeata.deviceStatusReportData.AttriBute)
                     {
                         currentKey.panelMode = attr.AttriButeData;
@@ -183,44 +183,76 @@
 
                         var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
                         var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
-                        if (getBindList != null)
+                        if (getBindList != null && getBindList.getAllBindResponseData != null)
                         {
-                            if (getBindList.getAllBindResponseData != null)
+                            foreach (var b in getBindList.getAllBindResponseData.BindList)
                             {
-                                foreach (var b in getBindList.getAllBindResponseData.BindList)
+                                if (b.BindCluster == currentClusterID)
                                 {
-                                    if (b.BindCluster == currentClusterID)
+                                    if (b.BindCluster == 6)
                                     {
-                                        if (b.BindCluster == 6)
-                                        {
 
-                                            if (b.BindType == 2)
-                                            {
-                                                bindSceneListTemp.Add(b);
-                                            }
-                                            else
-                                            {
-                                                bindDeviceListTemp.Add(b);
-                                            }
+                                        if (b.BindType == 2)
+                                        {
+                                            bindSceneListTemp.Add(b);
                                         }
                                         else
                                         {
-                                            currentKey.bindList.Add(b);
+                                            bindDeviceListTemp.Add(b);
                                         }
+                                    }
+                                    else
+                                    {
+                                        currentKey.bindList.Add(b);
                                     }
                                 }
                             }
                         }
+                        else
+                        {
+                            var btn = new Button()
+                            {
+                                Gravity = Gravity.Center,
+                            };
+                            this.midFrameLayout.AddChidren(btn);
+                            Application.RunOnMainThread(() =>
+                            {
+                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btn);
+                            });
+                        }
+
                         if (currentKey.panelMode == 1)
                         {
                             currentKey.bindList = bindSceneListTemp;
+                            currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddScene);
                         }
                         else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102)
                         {
                             currentKey.bindList = bindDeviceListTemp;
+                            currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddSwitch);
+                        }
+                        else if (currentKey.panelMode == 200 || currentKey.panelMode == 201 || currentKey.panelMode == 202 || currentKey.panelMode == 203 || currentKey.panelMode == 204 || currentKey.panelMode == 205)
+                        {
+                            currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddDimmer);
+                        }
+                        else if (currentKey.panelMode == 300 || currentKey.panelMode == 301 || currentKey.panelMode == 302 || currentKey.panelMode == 303 || currentKey.panelMode == 304)
+                        {
+                            currentKey.currentKeySelectModeText = Language.StringByID(R.MyInternationalizationString.AddCurtain);
                         }
                     }
                     #endregion 
+                }
+                else
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        var btn = new Button()
+                        {
+                            Gravity = Gravity.Center,
+                        };
+                        this.midFrameLayout.AddChidren(btn);
+                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btn);
+                    });
                 }
             }
             catch
@@ -296,20 +328,6 @@
                 midVerticalScrolViewLayout.Y = topMidVerticalScrolViewLayout.Bottom;
                 midVerticalScrolViewLayout.Height = this.midFrameLayout.Height;
                 BackgroundColor = Shared.Common.ZigbeeColor.Current.XMMidFrameLayout;
-
-                //var tempDeata = await currentKey.ReadPanelConfigureInfoAsync();
-                //if (tempDeata != null && tempDeata.deviceStatusReportData != null)
-                //{
-                //    currentClusterID = tempDeata.deviceStatusReportData.CluterID;
-                //    if (currentClusterID == 6)
-                //    {
-                //        foreach (var attr in tempDeata.deviceStatusReportData.AttriBute)
-                //        {
-                //            curModeId = attr.AttriButeData;
-                //            currentKey.panelMode = curModeId;
-                //        }
-                //    }
-                //}
 
                 if (currentKey.panelMode == 1)
                 {
@@ -568,8 +586,8 @@
                         RefreshList();
                         //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛�
                         currentKey.RoomId = "";
+                        currentKey.ReSave();
                     }
-
                     CommonPage.Loading.Hide();
                 }
 
@@ -679,7 +697,6 @@
                        currentKey.currentKeySelectModeText = btnMethodText.Text;
                        oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                    }
-
                    if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene))
                    {
                        if (currentKey.bindList.Count != 0)
@@ -1000,6 +1017,7 @@
                                 RefreshList();
                                 //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛�
                                 currentKey.RoomId = "";
+                                currentKey.ReSave();
                                 return 0;
                                 break;
                             case 1:
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
index 1815322..215a333 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
+using Com.Amap.Api.Location;
 using Shared.Common;
 using ZigBee.Device;
 using static ZigBee.Device.BindObj;
@@ -45,6 +46,10 @@
         /// 鎸夐敭閰嶇疆鐨勭洰鏍囧垪琛�
         /// </summary>
         List<CommonDevice> targetList = new List<CommonDevice>();
+        /// <summary>
+        /// 鏂扮殑鎸夐敭閰嶇疆鐩爣鍒楄〃涓紝鐩爣瀹為檯瀛樺湪鎸夐敭涓紝姝ゆ椂瑕佸垹鎺夌殑鏁版嵁
+        /// </summary>
+        List<CommonDevice> oldTargetList = new List<CommonDevice>();
         List<Room> roomList = new List<Room>();
         int currentClusterID = 6;
         public Action<List<BindListResponseObj>> action;
@@ -106,207 +111,306 @@
 
             btnFinifh.MouseUpEventHandler += async (sender, e) =>
             {
+                oldTargetList.Clear();
+                bool isFinish = false;
                 btnFinifh.Enable = false;
                 btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMUnSelect;
-                if (oldModeID != 65535 && oldModeID != currentModeID)
+                try
                 {
-                    var bindResult = await currentKey.ClearBindInfoAsync();
-                    if (bindResult.clearBindInfoResponseData != null)
+                    CommonPage.Loading.Start("");
+                    //1銆佹竻绌烘墍鏈夌洰鏍�
+                    if (currentKey.bindList != null)
                     {
-                        if (bindResult.clearBindInfoResponseData.Result != 0)
+                        var bindResult = await currentKey.ClearBindInfoAsync();
+
+                        if (bindResult != null && bindResult.clearBindInfoResponseData != null)
                         {
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
-                            CommonPage.Loading.Hide();
-                            this.RemoveFromParent();
-                            btnFinifh.Enable = true;
-                            return;
+                            if (bindResult.clearBindInfoResponseData.Result != 0)
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                });
+                                CommonPage.Loading.Hide();
+                                this.RemoveFromParent();
+                                btnFinifh.Enable = true;
+                                btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+                                return;
+                            }
+                            else
+                            {
+                                currentKey.bindList.Clear();
+                            }
                         }
                         else
                         {
-                            currentKey.bindList.Clear();
+                            Application.RunOnMainThread(() =>
+                            {
+                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                            });
+                            CommonPage.Loading.Hide();
+                            btnFinifh.Enable = true;
+                            btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+                            return;
                         }
                     }
-                }
-                else
-                {
-                    foreach (var bindedDev in currentKey.bindList)
+                    //if (oldModeID != 65535 && oldModeID != currentModeID)
+                    //{
+                    //var bindResult = await currentKey.ClearBindInfoAsync();
+                    //if (bindResult.clearBindInfoResponseData != null)
+                    //{
+                    //    if (bindResult.clearBindInfoResponseData.Result != 0)
+                    //    {
+                    //        Application.RunOnMainThread(() =>
+                    //        {
+                    //            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                    //        });
+                    //        CommonPage.Loading.Hide();
+                    //        this.RemoveFromParent();
+                    //        btnFinifh.Enable = true;
+                    //        return;
+                    //    }
+                    //    else
+                    //    {
+                    //        currentKey.bindList.Clear();
+                    //    }
+                    //}
+                    //}
+                    //else
+                    //{
+                    //    foreach (var bindedDev in currentKey.bindList)
+                    //    {
+                    //        for (int i = 0; i < targetList.Count; i++)
+                    //        {
+                    //            var de = targetList[i];
+                    //            if (de.DeviceAddr == bindedDev.BindMacAddr && de.DeviceEpoint == bindedDev.BindEpoint)
+                    //            {
+                    //                oldTargetList.Add(de);
+                    //                targetList.RemoveAt(i);
+                    //                i--;
+                    //            }
+                    //        }
+                    //    }
+                    //}
+
+                    //2銆侀厤缃ā寮�
+                    Panel.SetWritableValueResponAllData temp = null;
+                    switch (currentModeID)
                     {
-                        for (int i = 0; i < targetList.Count; i++)
+                        case 100:
+                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.OnOff_On);
+                            break;
+                        case 101:
+                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.OnOff_oFF);
+                            break;
+                        case 102:
+                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.OnOff_OnOff);
+                            break;
+                        case 200:
+                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Step_Up);
+                            break;
+                        case 201:
+                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Step_Down);
+                            break;
+                        case 203:
+                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Up);
+                            break;
+                        case 204:
+                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Down);
+                            break;
+                        case 205:
+                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Up_Down);
+                            break;
+                        case 300:
+                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Up);
+                            break;
+                        case 301:
+                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Down);
+                            break;
+                        case 302:
+                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Stop);
+                            break;
+                        case 303:
+                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Up_Stop);
+                            break;
+                        case 304:
+                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Down_Stop);
+                            break;
+                    }
+                    if (temp != null && temp.setWritableValueResponData != null && temp.setWritableValueResponData.Status == 0)
+                    {
+                        ////鍒犻櫎琚嬀鎺夌殑鏁版嵁
+                        //foreach (var delDev in oldTargetList)
+                        //{
+                        //    var delDev1 = new BindObj.BindListResponseObj();
+                        //    delDev1.BindType = 0;
+                        //    delDev1.BindCluster = currentClusterID;
+                        //    delDev1.BindMacAddr = delDev.DeviceAddr;
+                        //    delDev1.BindEpoint = delDev.DeviceEpoint;
+                        //    var result = await BindInfo.RemoveTargets(delDev1, currentKey);
+
+                        //    if (result == 0)
+                        //    {
+                        //        var bindSc = currentKey.bindList.Find(obj =>
+                        //        (obj.BindType == 0
+                        //        && obj.BindCluster == currentClusterID
+                        //        && obj.BindMacAddr == delDev.DeviceAddr
+                        //        && obj.BindEpoint == delDev.DeviceEpoint
+                        //        ));
+                        //        currentKey.bindList.Remove(bindSc);
+                        //    }
+                        //}
+
+                        //3銆佺粦瀹氭柊鐨勬暟鎹�
+                        var addBindeDev = new AddBindData();
+                        addBindeDev.DeviceAddr = currentKey.DeviceAddr;
+                        addBindeDev.Epoint = currentKey.DeviceEpoint;
+
+                        foreach (var de in targetList)
                         {
-                            var de = targetList[i];
-                            if (de.DeviceAddr == bindedDev.BindMacAddr && de.DeviceEpoint == bindedDev.BindEpoint)
+                            if (de.DeviceAddr != null)
                             {
-                                targetList.RemoveAt(i);
-                                i--;
+                                var addBindInfo = new AddBindListObj();
+                                addBindInfo.BindType = 0;
+                                addBindInfo.BindCluster = currentClusterID;
+                                addBindInfo.BindMacAddr = de.DeviceAddr;
+                                addBindInfo.BindEpoint = de.DeviceEpoint;
+                                addBindeDev.BindList.Add(addBindInfo);
                             }
                         }
-                    }
-                }
 
-                var temp = new Panel.SetWritableValueResponAllData();
-                switch (currentModeID)
-                {
-                    case 100:
-                        temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.OnOff_On);
-                        break;
-                    case 101:
-                        temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.OnOff_oFF);
-                        break;
-                    case 102:
-                        temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.OnOff_OnOff);
-                        break;
-                    case 200:
-                        temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Step_Up);
-                        break;
-                    case 201:
-                        temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Step_Down);
-                        break;
-                    case 203:
-                        temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Up);
-                        break;
-                    case 204:
-                        temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Down);
-                        break;
-                    case 205:
-                        temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Up_Down);
-                        break;
-                    case 300:
-                        temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Up);
-                        break;
-                    case 301:
-                        temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Down);
-                        break;
-                    case 302:
-                        temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Stop);
-                        break;
-                    case 303:
-                        temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Up_Stop);
-                        break;
-                    case 304:
-                        temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Down_Stop);
-                        break;
-                }
-                if (temp.setWritableValueResponData?.Status != 0)
-                {
-                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnFinifh);
-                    btnFinifh.Enable = true;
-                    btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                    return;
-                }
-                else
-                {
-                    var addBindeDev = new AddBindData();
-                    addBindeDev.DeviceAddr = currentKey.DeviceAddr;
-                    addBindeDev.Epoint = currentKey.DeviceEpoint;
-
-                    foreach (var de in targetList)
-                    {
-                        if (de.DeviceAddr != null)
-                        {
-                            var addBindInfo = new AddBindListObj();
-                            addBindInfo.BindType = 0;
-                            addBindInfo.BindCluster = currentClusterID;
-                            addBindInfo.BindMacAddr = de.DeviceAddr;
-                            addBindInfo.BindEpoint = de.DeviceEpoint;
-                            addBindeDev.BindList.Add(addBindInfo);
-                        }
-                    }
-                    bool isFinish = false;
-                    try
-                    {
-                        CommonPage.Loading.Start("");
                         var dev = new AddedDeviceBindResponseAllData();
                         dev = await currentKey.AddDeviceBindAsync(addBindeDev);
-                        foreach (var ab in dev.addedDeviceBindResponseData?.BindList)
+                        if (dev.addedDeviceBindResponseData == null)
                         {
-                            switch (ab.Result)
+                            Application.RunOnMainThread(() =>
                             {
-                                case 0:
-                                    currentKey.bindList.Add((BindListResponseObj)ab);
+                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                            });
+                            btnFinifh.Enable = true;
+                            btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+                        }
+                        else
+                        {
+                            foreach (var ab in dev.addedDeviceBindResponseData?.BindList)
+                            {
+                                switch (ab.Result)
+                                {
+                                    case 0:
+                                        currentKey.bindList.Add((BindListResponseObj)ab);
 
-                                    for (int i = 0; i < targetList.Count; i++)
-                                    {
-                                        var de = targetList[i];
-                                        var sc1 = new SceneUI();
-                                        if (de.DeviceAddr == null)
+                                        for (int i = 0; i < targetList.Count; i++)
                                         {
-                                            sc1 = (SceneUI)de;
+                                            var de = targetList[i];
+                                            var sc1 = new SceneUI();
+                                            if (de.DeviceAddr == null)
+                                            {
+                                                sc1 = (SceneUI)de;
 
-                                            if (sc1.Id == ab.BindScenesId)
-                                            {
-                                                targetList.RemoveAt(i);
-                                                i--;
-                                            }
-                                        }
-                                    }
-                                    isFinish = true;
-                                    break;
-                                case 1:
-                                    new Tip()
-                                    {
-                                        MaxWidth = 150,
-                                        Text = Language.StringByID(R.MyInternationalizationString.BindErrorAbsence),
-                                        Direction = AMPopTipDirection.Up,
-                                        CloseTime = 1
-                                    }.Show(btnFinifh);
-                                    break;
-                                case 2:
-                                    var abr = dev.addBindResultResponseData?.Result;
-                                    switch (dev.addBindResultResponseData?.Result)
-                                    {
-                                        case 0:
-                                            currentKey.bindList.Add((BindListResponseObj)ab);
-                                            for (int i = 0; i < targetList.Count; i++)
-                                            {
-                                                var de = targetList[i];
-                                                if (de.DeviceAddr == ab.BindMacAddr && de.DeviceEpoint == ab.BindEpoint)
+                                                if (sc1.Id == ab.BindScenesId)
                                                 {
                                                     targetList.RemoveAt(i);
                                                     i--;
                                                 }
                                             }
-                                            isFinish = true;
-                                            break;
-                                        case 140:
-                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFull), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
-                                            break;
-                                        default:
-                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
-                                            break;
-                                    }
-                                    break;
-                                case 3:
-                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindErrorExisted), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
-                                    break;
-                                case 4:
-                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
-                                    break;
-                                default:
-                                    break;
+                                        }
+                                        isFinish = true;
+                                        break;
+                                    case 1:
+                                        Application.RunOnMainThread(() =>
+                                        {
+                                            new Tip()
+                                            {
+                                                MaxWidth = 150,
+                                                Text = Language.StringByID(R.MyInternationalizationString.BindErrorAbsence),
+                                                Direction = AMPopTipDirection.Up,
+                                                CloseTime = 1
+                                            }.Show(btnFinifh);
+                                        });
+                                        break;
+                                    case 2:
+                                        var abr = dev.addBindResultResponseData?.Result;
+                                        switch (dev.addBindResultResponseData?.Result)
+                                        {
+                                            case 0:
+                                                currentKey.bindList.Add((BindListResponseObj)ab);
+                                                for (int i = 0; i < targetList.Count; i++)
+                                                {
+                                                    var de = targetList[i];
+                                                    if (de.DeviceAddr == ab.BindMacAddr && de.DeviceEpoint == ab.BindEpoint)
+                                                    {
+                                                        targetList.RemoveAt(i);
+                                                        i--;
+                                                    }
+                                                }
+                                                isFinish = true;
+                                                break;
+                                            case 140:
+                                                Application.RunOnMainThread(() =>
+                                                {
+                                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFull), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                                });
+                                                break;
+                                            default:
+                                                Application.RunOnMainThread(() =>
+                                                {
+                                                    new Tip() { MaxWidth = 150, Text = ab.ESName + Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                                });
+                                                break;
+                                        }
+                                        break;
+                                    case 3:
+                                        Application.RunOnMainThread(() =>
+                                        {
+                                            new Tip() { MaxWidth = 150, Text = ab.ESName + Language.StringByID(R.MyInternationalizationString.BindErrorExisted), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                        });
+                                        break;
+                                    case 4:
+                                        Application.RunOnMainThread(() =>
+                                        {
+                                            new Tip() { MaxWidth = 150, Text = ab.ESName + Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                        });
+                                        break;
+                                    default:
+                                        Application.RunOnMainThread(() =>
+                                        {
+                                            new Tip() { MaxWidth = 150, Text = ab.ESName + Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                        });
+                                        break;
+                                }
                             }
                         }
                     }
-                    catch { }
-                    finally
+                    else
                     {
-                        if (isFinish)
+                        Application.RunOnMainThread(() =>
                         {
-                            if (action != null)
-                            {
-                                action(currentKey.bindList);
-
-                            }
-                            this.RemoveFromParent();
-                        }
-                        else
-                        {
-                            this.RemoveFromParent();
-                        }
-                        CommonPage.Loading.Hide();
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnFinifh);
+                        });
                         btnFinifh.Enable = true;
                         btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                     }
                 }
+                catch { }
+                finally
+                {
+                    if (isFinish)
+                    {
+                        if (action != null)
+                        {
+                            action(currentKey.bindList);
+
+                        }
+                        this.RemoveFromParent();
+                    }
+                    else
+                    {
+                        this.RemoveFromParent();
+                    }
+                    CommonPage.Loading.Hide();
+                    btnFinifh.Enable = true;
+                    btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+                }
             };
             #endregion 
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs
index 65f1e0a..d1ff0f7 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs
@@ -299,7 +299,7 @@
                         startWait = false;
                         checking = true;
 
-                        var value = openSeekBar.Progress;
+                        var value = curtainData.OpenLimitPersent;
                         if (oldValue == value)
                         {
                             //鐩稿悓鏁板��
@@ -426,7 +426,7 @@
                         startWait = false;
                         checking = true;
 
-                        var value = closeSeekBar.Progress;
+                        var value = curtainData.CloseLimitPersent;
                         if (oldValue == value)
                         {
                             //鐩稿悓鏁板��
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
index 2754542..0dd4842 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
@@ -108,9 +108,6 @@
             {
                 foreach (var device in this.listNewDevice)
                 {
-                    //淇濆瓨杩欎釜璁惧灞炰簬鍝釜鍖哄煙
-                    device.DeviceRoomId = roomKeys;
-                    device.ReSave();
                     var room = Common.Room.CurrentRoom.GetRoomByDevice(device);
                     string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
                     if (room == null)
@@ -125,6 +122,8 @@
                         Common.Room.CurrentRoom.ChangedRoom(device, roomKeys);
                     }
                 }
+                //淇濆瓨璁惧鎴块棿绱㈠紩
+                Common.LocalDevice.Current.SaveRealDeviceRoomId(this.listNewDevice, roomKeys);
             };
 
             //鏇村閰嶇疆
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareInfoForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareInfoForm.cs
index 51989da..f18db7e 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareInfoForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareInfoForm.cs
@@ -145,8 +145,6 @@
                 {
                     //鍒濆鍖栦腑閮ㄦ帶浠�
                     this.InitMiddleFrame();
-                    //鐣岄潰鍙冲垝鍙�
-                    UserView.HomePage.Instance.ScrollEnabled = true;
                 });
             };
 
@@ -294,21 +292,6 @@
             frameSpace3.Height = Application.GetRealHeight(63);
             listView?.AddChidren(frameSpace3);
             listFrame?.AddChidren(frameSpace3);
-        }
-
-        #endregion
-
-        #region 鈻� 鐣岄潰鍏抽棴___________________________
-
-        /// <summary>
-        /// 鐣岄潰鍏抽棴
-        /// </summary>
-        public override void CloseForm()
-        {
-            //鐣岄潰鍙冲垝鍙�
-            UserView.HomePage.Instance.ScrollEnabled = true;
-
-            base.CloseForm();
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareUpdateForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareUpdateForm.cs
index cf755c0..71cf137 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareUpdateForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFirmwareUpdateForm.cs
@@ -51,7 +51,7 @@
             frameBack.BackgroundColor = UserCenterColor.Current.White;
             frameBack.Gravity = Gravity.CenterHorizontal;
             frameBack.Y = Application.GetRealHeight(683);
-            frameBack.Radius = (uint)Application.GetMinRealAverage(6);
+            frameBack.Radius = 6;
             bodyFrameLayout.AddChidren(frameBack);
 
             //杩涘害鏄剧ず鏂囨湰
@@ -183,7 +183,9 @@
         public override void CloseForm()
         {
             //瀹夊崜鍙互鐐瑰嚮绯荤粺鐨勮繑鍥為敭
+            UserView.HomePage.Instance.ScrollEnabled = true;
             Shared.Common.CommonPage.BackKeyCanClick = true;
+
             //鍗囩骇瀵硅薄
             if (FirmwareUpdateResourse.dicDeviceUpdateList.ContainsKey(deviceMac) == true
                 && FirmwareUpdateResourse.dicDeviceUpdateList[deviceMac].IsFinishUpdate == true)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index d2b5697..b472ed0 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -42,15 +42,6 @@
         public void ShowForm(string deviceMac)
         {
             this.listNewDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
-            //鎺掑簭
-            this.listNewDevice.Sort((obj1, obj2) =>
-            {
-                if (obj1.DeviceEpoint > obj2.DeviceEpoint)
-                {
-                    return 1;
-                }
-                return -1;
-            });
 
             this.listDeviceType.Clear();
             foreach (var device in listNewDevice)
@@ -104,14 +95,14 @@
             btnNote.txtInput.FinishInputEvent += () =>
             {
                 string oldName = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]);
-                if (btnNote.Text.Trim() == string.Empty)
+                if (btnNote.Text == string.Empty)
                 {
                     btnNote.Text = oldName;
                 }
-                if (oldName != btnNote.Text.Trim())
+                if (oldName != btnNote.Text)
                 {
                     //淇敼鍚嶅瓧
-                    this.DeviceReName(btnNote.Text.Trim(), false);
+                    this.DeviceReName(btnNote.Text, false);
                 }
             };
 
@@ -137,9 +128,6 @@
             {
                 foreach (var device in this.listNewDevice)
                 {
-                    //淇濆瓨杩欎釜璁惧灞炰簬鍝釜鍖哄煙
-                    device.DeviceRoomId = roomKeys;
-                    device.ReSave();
                     var room = Room.CurrentRoom.GetRoomByDevice(device);
                     string mainKeys = LocalDevice.Current.GetDeviceMainKeys(device);
                     if (room == null)
@@ -154,6 +142,8 @@
                         Room.CurrentRoom.ChangedRoom(device, roomKeys);
                     }
                 }
+                //淇濆瓨璁惧鎴块棿绱㈠紩
+                Common.LocalDevice.Current.SaveRealDeviceRoomId(this.listNewDevice, roomKeys);
             };
 
             //娣诲姞鍏ㄩ儴鑿滃崟
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs
index e6ad61e..aca18a0 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs
@@ -379,8 +379,9 @@
                 if (info.Result != 0)
                 {
                     //鍑虹幇鏈煡閿欒,璇烽噸鏂板叆缃�
-                    this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uUnKnowErrorAndReAccessNetwork));
-                    return -1;
+                    //this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uUnKnowErrorAndReAccessNetwork));
+                    HdlLogLogic.Current.WriteLog(-1, resultData);
+                    return 2;
                 }
                 this.topTimeOut = 60;
                 //璁剧疆杩涘害鍊�
@@ -395,8 +396,9 @@
                 if (info.Result != 0)
                 {
                     //鍑虹幇鏈煡閿欒,璇烽噸鏂板叆缃�
-                    this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uUnKnowErrorAndReAccessNetwork));
-                    return -1;
+                    //this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uUnKnowErrorAndReAccessNetwork));
+                    HdlLogLogic.Current.WriteLog(-1, resultData);
+                    return 2;
                 }
                 this.topTimeOut = 60;
                 //璁剧疆杩涘害鍊�
@@ -412,7 +414,8 @@
                 {
                     //鍑虹幇鏈煡閿欒,璇烽噸鏂板叆缃�
                     this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uUnKnowErrorAndReAccessNetwork));
-                    return -1;
+                    //HdlLogLogic.Current.WriteLog(-1, resultData);
+                    return 2;
                 }
                 this.topTimeOut = 60;
                 //璁剧疆杩涘害鍊�
@@ -427,8 +430,9 @@
                 if (info.Result != 0)
                 {
                     //鍑虹幇鏈煡閿欒,璇烽噸鏂板叆缃�
-                    this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uUnKnowErrorAndReAccessNetwork));
-                    return -1;
+                    //this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uUnKnowErrorAndReAccessNetwork));
+                    HdlLogLogic.Current.WriteLog(-1, resultData);
+                    return 2;
                 }
                 this.topTimeOut = 60;
                 //璁剧疆杩涘害鍊�
@@ -455,6 +459,11 @@
                 //杩涘害鏉�
                 decimal result = value / 6;
                 int width = (int)(result * Application.GetRealWidth(559));
+                if (btnProgressBar.Width >= width)
+                {
+                    //鏈変簺璁惧浼氫笂鎶ヤ袱娆�,杩欓噷涓嶈兘璁╁畠鐨勮繘搴︽潯寰�鍥炶蛋
+                    return;
+                }
                 btnProgressBar.Width = width;
 
                 //鏂囨湰鏄剧ず
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AirSwitchCloudContrDirectionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AirSwitchCloudContrDirectionForm.cs
index ba4dff8..a250189 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AirSwitchCloudContrDirectionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/AirSwitchCloudContrDirectionForm.cs
@@ -52,7 +52,7 @@
             framePic.AddChidren(btnLinght);
 
             //宸ヤ綔
-            var btnWork = new NormalViewControl(Application.GetMinRealAverage(60), Application.GetMinRealAverage(40), false);
+            var btnWork = new NormalViewControl(Application.GetMinRealAverage(70), Application.GetMinRealAverage(40), false);
             btnWork.X = Application.GetMinRealAverage(628);
             btnWork.Y = Application.GetMinRealAverage(113);
             btnWork.TextColor = UserCenterColor.Current.TextGrayColor3;
@@ -61,7 +61,7 @@
             framePic.AddChidren(btnWork);
 
             //閰嶅
-            var btnPair = new NormalViewControl(Application.GetMinRealAverage(60), Application.GetMinRealAverage(40), false);
+            var btnPair = new NormalViewControl(Application.GetMinRealAverage(70), Application.GetMinRealAverage(40), false);
             btnPair.X = Application.GetMinRealAverage(628);
             btnPair.Y = Application.GetMinRealAverage(217);
             btnPair.TextColor = UserCenterColor.Current.TextGrayColor3;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorCarbonMonoxideDirectionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorCarbonMonoxideDirectionForm.cs
index 96f85f7..8b499fe 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorCarbonMonoxideDirectionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorCarbonMonoxideDirectionForm.cs
@@ -59,25 +59,12 @@
             {
                 textMsg = string.Format(textMsg, "5");
             }
-            int index = textMsg.IndexOf("(");
-            string textMsg1 = textMsg.Substring(0, index);
-            string textMsg2 = textMsg.Substring(index, textMsg.Length - index);
-
-            var btnSecond1 = new NormalViewControl(Application.GetMinRealAverage(120), Application.GetMinRealAverage(45), false);
-            btnSecond1.X = Application.GetMinRealAverage(138);
-            btnSecond1.Y = Application.GetMinRealAverage(177);
-            btnSecond1.TextColor = UserCenterColor.Current.TextGrayColor3;
-            btnSecond1.TextAlignment = TextAlignment.Center;
-            btnSecond1.TextSize = 10;
-            btnSecond1.Text = textMsg1;
-            framePic.AddChidren(btnSecond1);
-            var btnSecond2 = new NormalViewControl(Application.GetMinRealAverage(120), Application.GetMinRealAverage(45), false);
-            btnSecond2.X = btnSecond1.X;
-            btnSecond2.Y = btnSecond1.Bottom;
+            var btnSecond2 = new NormalViewControl(Application.GetMinRealAverage(357), Application.GetMinRealAverage(45), false);
+            btnSecond2.Y = Application.GetMinRealAverage(222);
             btnSecond2.TextColor = UserCenterColor.Current.TextGrayColor3;
             btnSecond2.TextSize = 10;
             btnSecond2.TextAlignment = TextAlignment.Center;
-            btnSecond2.Text = textMsg2;
+            btnSecond2.Text = textMsg;
             framePic.AddChidren(btnSecond2);
 
             //闀挎寜鍥剧ず鎸夐敭5绉掍互涓婏紝缁胯壊蹇棯
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorDoorWindowDirectionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorDoorWindowDirectionForm.cs
index 381f201..272cf22 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorDoorWindowDirectionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Direction/SensorDoorWindowDirectionForm.cs
@@ -63,8 +63,8 @@
             string textMsg1 = textMsg.Substring(0, index);
             string textMsg2 = textMsg.Substring(index, textMsg.Length - index);
 
-            var btnSecond1 = new NormalViewControl(Application.GetMinRealAverage(120), Application.GetMinRealAverage(45), false);
-            btnSecond1.X = Application.GetMinRealAverage(242);
+            var btnSecond1 = new NormalViewControl(Application.GetMinRealAverage(150), Application.GetMinRealAverage(45), false);
+            btnSecond1.X = Application.GetMinRealAverage(235);
             btnSecond1.Y = Application.GetMinRealAverage(214);
             btnSecond1.TextColor = UserCenterColor.Current.TextGrayColor3;
             btnSecond1.TextAlignment = TextAlignment.Center;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockScreeningTypeForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockScreeningTypeForm.cs
index 07f5a99..4e48b03 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockScreeningTypeForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DoorLock/DoorLockScreeningTypeForm.cs
@@ -306,7 +306,7 @@
         private NormalViewControl InitUserSelectButton(bool select)
         {
             var btnContr = new NormalViewControl(207, 63, true);
-            btnContr.Radius = (uint)Application.GetMinRealAverage(6);
+            btnContr.Radius = 6;
             btnContr.TextAlignment = TextAlignment.Center;
             if (select == false)
             {
@@ -367,7 +367,7 @@
         private NormalViewControl InitLockSelectButton(bool select)
         {
             var btnContr = new NormalViewControl(207, 63, true);
-            btnContr.Radius = (uint)Application.GetMinRealAverage(6);
+            btnContr.Radius = 6;
             btnContr.TextAlignment = TextAlignment.Center;
             if (select == false)
             {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLightSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLightSettionForm.cs
index 220071e..81c37f3 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLightSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelBackLightSettionForm.cs
@@ -141,14 +141,14 @@
             //褰撳墠浜害
             var btnProgressView1 = new NormalViewControl(200, 49, true);
             btnProgressView1.X = ControlCommonResourse.XXLeft;
-            btnProgressView1.Y = Application.GetRealHeight(161);
+            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(158);
+            btnProgress1.Y = Application.GetRealHeight(164);
             btnProgress1.TextSize = 12;
             btnProgress1.TextColor = UserCenterColor.Current.TextGrayColor1;
             btnProgress1.Text = energyModeInfo.level + "%";
@@ -297,13 +297,12 @@
             uint backColor = this.GetColorByRGB((byte)R1, (byte)G1, (byte)B1);
             var btnColor = new NormalViewControl(Application.GetMinRealAverage(69), Application.GetMinRealAverage(69), false);
             btnColor.X = btnColorView.Right + Application.GetRealHeight(23);
-            btnColor.Radius = (uint)Application.GetMinRealAverage(69);
+            btnColor.Radius = (uint)Application.GetMinRealAverage(69) / 2;
             btnColor.BackgroundColor = backColor;
             frameColor.AddChidren(btnColor, ChidrenBindMode.BindEventOnly);
 
             var btnRight = new NormalViewControl(Application.GetMinRealAverage(58), Application.GetMinRealAverage(58), false);
             btnRight.UnSelectedImagePath = "Item/Next.png";
-            btnRight.BackgroundColor = UserCenterColor.Current.Green;
             btnRight.X = frameColor.Width - Application.GetMinRealAverage(58);
             frameColor.AddChidren(btnRight, ChidrenBindMode.BindEventOnly);
             btnRight.Y += Application.GetMinRealAverage(8);
@@ -425,13 +424,12 @@
             uint backColor = this.GetColorByRGB((byte)R1, (byte)G1, (byte)B1);
             var btnColor = new NormalViewControl(Application.GetMinRealAverage(69), Application.GetMinRealAverage(69), false);
             btnColor.X = btnColorView.Right + Application.GetRealHeight(23);
-            btnColor.Radius = (uint)Application.GetMinRealAverage(69);
+            btnColor.Radius = (uint)Application.GetMinRealAverage(69) / 2;
             btnColor.BackgroundColor = backColor;
             frameColor.AddChidren(btnColor, ChidrenBindMode.BindEventOnly);
 
             var btnRight = new NormalViewControl(Application.GetMinRealAverage(58), Application.GetMinRealAverage(58), false);
             btnRight.UnSelectedImagePath = "Item/Next.png";
-            btnRight.BackgroundColor = UserCenterColor.Current.Green;
             btnRight.X = frameColor.Width - Application.GetMinRealAverage(58);
             frameColor.AddChidren(btnRight, ChidrenBindMode.BindEventOnly);
             btnRight.Y += Application.GetMinRealAverage(8);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs
index efbac27..5e7e106 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs
@@ -369,7 +369,7 @@
             var btnIcon = new NormalViewControl(Application.GetMinRealAverage(52), Application.GetMinRealAverage(52), false);
             btnIcon.Name = "btn" + device.DeviceEpoint;
             btnIcon.Gravity = Gravity.Center;
-            btnIcon.Radius = (uint)Application.GetMinRealAverage(6);
+            btnIcon.Radius = 6;
             btnIcon.BorderWidth = 2;
             btnIcon.BorderColor = 0xff979797;
             frame.AddChidren(btnIcon, ChidrenBindMode.BindEventOnly);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs
index 2091f65..d358696 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFunctionSettionForm.cs
@@ -428,7 +428,7 @@
             var btnIcon = new NormalViewControl(Application.GetMinRealAverage(52), Application.GetMinRealAverage(52), false);
             btnIcon.Name = "btn" + device.DeviceEpoint;
             btnIcon.Gravity = Gravity.Center;
-            btnIcon.Radius = (uint)Application.GetMinRealAverage(6);
+            btnIcon.Radius = 6;
             btnIcon.BorderWidth = 2;
             btnIcon.BorderColor = 0xff979797;
             frame.AddChidren(btnIcon, ChidrenBindMode.BindEventOnly);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorBindTargetSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorBindTargetSettionForm.cs
index 46d9ead..9fd6a4f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorBindTargetSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/PirSensor/PirSensorBindTargetSettionForm.cs
@@ -286,7 +286,6 @@
                 this.CloseProgressBar(ShowReLoadMode.YES);
                 return false;
             }
-            listDevice = Common.LocalDevice.Current.SortDevice(listDevice);
             foreach (var device in listDevice)
             {
                 this.listEsixtDevice.Add(Common.LocalDevice.Current.GetDeviceMainKeys(device));
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs
index 6812b14..c79064c 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonLayout.cs
@@ -228,22 +228,22 @@
                 if (DateTime.Now < ZigBee.Device.DoorLock.minValue)
                 {
                     CommonPage.Loading.Hide();
-                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AfterThirtySeconds), Direction = AMPopTipDirection.Down, CloseTime = 2 }.Show(editInputPassword);
+                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AfterFiftySeconds), Direction = AMPopTipDirection.Down, CloseTime = 2 }.Show(editInputPassword);
                     return;
                 }
 
                 if (DateTime.Now >= oldTime && ZigBee.Device.DoorLock.RemoteUnlockCount == 0)
                 {
-                    ZigBee.Device.DoorLock.RemoteUnlockCount = 3;
+                    ZigBee.Device.DoorLock.RemoteUnlockCount = 5;
                     oldTime = DateTime.MaxValue;
                 }
 
                 if (ZigBee.Device.DoorLock.RemoteUnlockCount <= 0)
                 {
-                    ZigBee.Device.DoorLock.minValue = DateTime.Now.AddSeconds(+20);
+                    ZigBee.Device.DoorLock.minValue = DateTime.Now.AddSeconds(+15);
                     oldTime = ZigBee.Device.DoorLock.minValue;
                     CommonPage.Loading.Hide();
-                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AfterThirtySeconds), Direction = AMPopTipDirection.Down, CloseTime = 2 }.Show(editInputPassword);
+                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.AfterFiftySeconds), Direction = AMPopTipDirection.Down, CloseTime = 2 }.Show(editInputPassword);
                     return;
                 }
 
@@ -262,7 +262,7 @@
                     System.Threading.Thread.Sleep(500);
                     ZigBee.Device.DoorLock.RemoteUnlockPassword = editInputPassword.Text;
                     ZigBee.Device.DoorLock.minValue = DateTime.MinValue;
-                    ZigBee.Device.DoorLock.RemoteUnlockCount = 3;
+                    ZigBee.Device.DoorLock.RemoteUnlockCount = 5;
                     oldTime = DateTime.MaxValue;
                     CommonPage.Loading.Hide();
                     dialog.Close();
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MasterManagementPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MasterManagementPage.cs
index 311d28a..82b875f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MasterManagementPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MasterManagementPage.cs
@@ -130,18 +130,19 @@
                     }
                     else
                     {
-                        ///璁板綍褰撳墠鐢ㄦ埛淇℃伅    --娓╁眳鍩�
-                        Phone.Device.Logic.DoorLockLogic.LockIfon.UserMemberInfoRes = accountObj;
-                        Phone.Device.Logic.DoorLockLogic.LockIfon.DoorLock = doorLock;
+                        ///澶囨敞锛歐JC鐨�
+                        ///璁板綍褰撳墠鐢ㄦ埛淇℃伅
+                        Phone.Device.Logic.Send.UserMemberInfoRes = accountObj;
+                        Phone.Device.Logic.Send.CurrentDoorLock = doorLock;
                         if (accountObj == null)
                         {
                             ///闃叉鎶涘紓甯�
-                            Phone.Device.Logic.DoorLockLogic.LockIfon.UserMemberInfoRes = new MemberInfoRes();
+                            Phone.Device.Logic.Send.UserMemberInfoRes = new MemberInfoRes();
                         }
                         if (doorLock == null)
                         {
                             ///闃叉鎶涘紓甯�
-                            Phone.Device.Logic.DoorLockLogic.LockIfon.DoorLock = new ZigBee.Device.DoorLock();
+                            Phone.Device.Logic.Send.CurrentDoorLock = new ZigBee.Device.DoorLock();
                         }
                         ///杩涙潵鍒锋柊涓�娆¤澶囧垪琛紱
                         Common.Logic.LogicDviceList.Clear();
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
index cfe003b..6248e90 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/MemberFrozenPage.cs
@@ -112,12 +112,17 @@
                 else if (i == 1)
                 {
                     btnText.Text = Language.StringByID(R.MyInternationalizationString.FrozenUser);
-                    btnRight.X = Application.GetRealWidth(50);
-                    btnRight.Y = Application.GetRealHeight(32);
-                    btnRight.Height = Application.GetRealHeight(63);
-                    btnRight.Width = Application.GetRealWidth(104);
-                    btnRight.UnSelectedImagePath = "DoorLock/Switch.png";
-                    btnRight.SelectedImagePath = "DoorLock/SwitchOn.png";
+                    btnRight.Height = Application.GetRealHeight(0);
+                    var btnSwitch = new Button()
+                    {
+                        X = Application.GetRealWidth(50),
+                        Y = Application.GetRealHeight(32),
+                        Height = Application.GetRealHeight(60),
+                        Width = Application.GetRealWidth(60),
+                        UnSelectedImagePath = "DoorLock/Switch.png",
+                        SelectedImagePath = "DoorLock/SwitchOn.png",
+                    };
+                    btnRightFrameLayout.AddChidren(btnSwitch);
                 }
                 else if (i == 2)
                 {
@@ -143,6 +148,7 @@
                     }
                     else if (currentIndex == 1)
                     {
+                        btnRight.IsSelected = !btnRight.IsSelected;
                     }
                     else if (currentIndex == 2)
                     {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
index 9b7e97c..331c95f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserManagement.cs
@@ -190,7 +190,7 @@
                         masterManagementPage.Show();
                     }
                     else
-                    {
+                    {
                         var memberFrozenPage = new Shared.Phone.UserCenter.DoorLock.MemberFrozenPage(doorLock, currentAccount);
                         Shared.Phone.UserView.HomePage.Instance.AddChidren(memberFrozenPage);
                         Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewayListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewayListForm.cs
index d05fd90..cc9c284 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewayListForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Add/WiredGatewayListForm.cs
@@ -85,6 +85,14 @@
         private void AddGatewayRow(VerticalListControl listView, ZbGateway gateway, bool addLine)
         {
             string gwid = HdlGatewayLogic.Current.GetGatewayId(gateway);
+            if (this.dicZbGatewayDiv[gwid] != 2)
+            {
+                //濡傛灉鏈湴娌℃湁,閭d箞搴旇鏄湪涔嬪悗鐨勭紪杈戠晫闈㈠垹闄や簡
+                if (HdlGatewayLogic.Current.IsGatewayExist(gwid) == false)
+                {
+                    return;
+                }
+            }
 
             var frameRow = new RowLayoutControl(listView.rowSpace / 2);
             listView.AddChidren(frameRow);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayFirmwareInfoForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayFirmwareInfoForm.cs
deleted file mode 100755
index 126e2fe..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayFirmwareInfoForm.cs
+++ /dev/null
@@ -1,226 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-using ZigBee.Device;
-
-namespace Shared.Phone.UserCenter.GatewayManage
-{
-    /// <summary>
-    /// 缃戝叧鍥轰欢淇℃伅鐣岄潰鈽�
-    /// </summary>
-    public class GatewayFirmwareInfoForm : EditorCommonForm
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        /// <summary>
-        /// 鍒楄〃鎺т欢
-        /// </summary>
-        private VerticalScrolViewLayout listView = null;
-        /// <summary>
-        /// 褰撳墠閫夋嫨鐨勭綉鍏�
-        /// </summary>
-        private ZbGateway zbGateway = null;
-        /// <summary>
-        /// 鍗囩骇鍥轰欢淇℃伅(0:Linux鏂扮増鏈�  1:鍗忚皟鍣ㄦ柊鐗堟湰  2锝瀀:閮芥槸铏氭嫙椹卞姩鐨�)
-        /// </summary>
-        private List<FirmwareVersionInfo> listVersionInfo = null;
-        /// <summary>
-        /// 铏氭嫙椹卞姩鍙�
-        /// </summary>
-        private List<ZbGatewayData.DriveCodeObj> listVode = null;
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖朹____________________________
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        /// <param name="i_zbGateway">褰撳墠閫夋嫨鐨勭綉鍏�</param>
-        public void ShowForm(ZbGateway i_zbGateway)
-        {
-            if (zbGateway != null && HdlGatewayLogic.Current.GetGatewayId(zbGateway) != HdlGatewayLogic.Current.GetGatewayId(i_zbGateway))
-            {
-                //涓嶆槸鍚屼竴涓笢瑗�
-                return;
-            }
-            this.zbGateway = i_zbGateway;
-
-            //璁剧疆鏍囬淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uFirmwareInformation));
-
-            //鍒濆鍖栦腑閮ㄦ帶浠�
-            //this.InitMiddleFrame();
-        }
-
-        ///// <summary>
-        ///// 鍒濆鍖栦腑閮ㄦ帶浠�
-        ///// </summary>
-        //private void InitMiddleFrame()
-        //{
-        //    //娓呯┖bodyFrame
-        //    this.ClearBodyFrame();
-
-        //    listView = new VerticalScrolViewLayout();
-        //    listView.Height = bodyFrameLayout.Height;
-        //    bodyFrameLayout.AddChidren(listView);
-
-        //    if (this.NowFormIsAction() == true)
-        //    {
-        //        //寮�鍚繘搴︽潯
-        //        this.ShowProgressBar();
-        //    }
-
-        //    HdlThreadLogic.Current.Run(async () =>
-        //    {
-        //        //鑾峰彇缃戝叧鏂扮増鏈俊鎭�
-        //        this.listVersionInfo = await Common.LocalGateway.Current.GetGatewayAllNewVersion(this.zbGateway);
-        //        if (listVersionInfo == null)
-        //        {
-        //            //鍏抽棴杩涘害鏉�
-        //            this.CloseProgressBar(ShowReLoadMode.YES);
-        //            return;
-        //        }
-        //        //铏氭嫙椹卞姩鍙�
-        //        this.listVode = await Common.LocalGateway.Current.GetListVDDriveCode(this.zbGateway);
-        //        //鍏抽棴杩涘害鏉�
-        //        this.CloseProgressBar();
-
-        //        //娣诲姞缃戝叧鐗堟湰琛�
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            //娣诲姞缃戝叧琛�
-        //            this.AddGatewayRow();
-        //            //娣诲姞鍗忚皟鍣ㄨ
-        //            this.AddCoordinatorRow();
-
-        //            if (listVode != null)
-        //            {
-        //                //娣诲姞铏氭嫙椹卞姩琛�
-        //                this.AddVirtualRow(listVode);
-        //            }
-        //            //娣诲姞鍥轰欢鍗囩骇琛�
-        //            this.AddFirmwareUpdateRow();
-        //        });
-        //    });
-        //}
-
-        #endregion
-
-        //#region 鈻� 娣诲姞缃戝叧琛宊________________________
-
-        ///// <summary>
-        ///// 娣诲姞缃戝叧琛�
-        ///// </summary>
-        //private void AddGatewayRow()
-        //{
-        //    var row = new StatuRowLayout(listView);
-
-        //    //缃戝叧
-        //    var btnUpview = new RowCenterView(false);
-        //    btnUpview.TextID = R.MyInternationalizationString.uGateWay;
-        //    row.AddChidren(btnUpview);
-
-        //    row.AddRightArrow();
-
-        //    row.MouseUpEvent += (sender, e) =>
-        //    {
-        //        var form = new GatewayLinuxInfoForm();
-        //        form.AddForm(zbGateway);
-        //    };
-        //}
-
-        //#endregion
-
-        //#region 鈻� 娣诲姞鍗忚皟鍣ㄨ_______________________
-
-        ///// <summary>
-        ///// 娣诲姞鍗忚皟鍣ㄨ
-        ///// </summary>
-        //private void AddCoordinatorRow()
-        //{
-        //    var row = new StatuRowLayout(listView);
-
-        //    //鍗忚皟鍣�
-        //    var btnUpview = new RowCenterView(false);
-        //    btnUpview.TextID = R.MyInternationalizationString.uCoordinator;
-        //    row.AddChidren(btnUpview);
-
-        //    row.AddRightArrow();
-
-        //    row.MouseUpEvent += (sender, e) =>
-        //    {
-        //        var form = new GatewayCoordinatorInfoForm();
-        //        form.AddForm(zbGateway);
-        //    };
-        //}
-
-        //#endregion
-
-        //#region 鈻� 娣诲姞铏氭嫙椹卞姩琛宊____________________
-
-        ///// <summary>
-        ///// 娣诲姞铏氭嫙椹卞姩琛�
-        ///// </summary>
-        ///// <param name="listCode">铏氭嫙椹卞姩鍒楄〃</param>
-        //private void AddVirtualRow(List<ZbGatewayData.DriveCodeObj> listCode)
-        //{
-        //    var row = new StatuRowLayout(listView);
-
-        //    //铏氭嫙椹卞姩
-        //    var btnUpview = new RowCenterView(false);
-        //    btnUpview.TextID = R.MyInternationalizationString.uVirtualDrive;
-        //    row.AddChidren(btnUpview);
-
-        //    row.AddRightArrow();
-
-        //    row.MouseUpEvent += (sender, e) =>
-        //    {
-        //        var form = new GatewayVirtualDriveListForm();
-        //        form.AddForm(listCode);
-        //    };
-        //}
-
-        //#endregion
-
-        //#region 鈻� 娣诲姞鍥轰欢鍗囩骇琛宊____________________
-
-        ///// <summary>
-        ///// 娣诲姞鍥轰欢鍗囩骇琛�
-        ///// </summary>
-        //private void AddFirmwareUpdateRow()
-        //{
-        //    var statuRow = new StatuRowLayout();
-        //    listView.AddChidren(statuRow);
-        //    //鍥轰欢鍗囩骇
-        //    var btnUpview = new RowCenterView(false);
-        //    btnUpview.TextID = R.MyInternationalizationString.uFirmwareUpdate;
-        //    statuRow.AddChidren(btnUpview);
-        //    //鐗堟湰鍚戝彸鐨勫浘鏍�
-        //    statuRow.AddRightArrow();
-
-        //    if (listVersionInfo[0] != null || listVersionInfo[1] != null || listVersionInfo[2] != null)
-        //    {
-        //        //鎻愮ず鏈夋柊鐗堟湰
-        //        var btnNewVersion = new RowNewVersionTipView();
-        //        statuRow.AddChidren(btnNewVersion);
-        //    }
-
-        //    statuRow.MouseUpEvent += (sender, e) =>
-        //    {
-        //        ZbGateway realway = null;
-        //        if (Common.LocalGateway.Current.GetRealGateway(ref realway, zbGateway) == false)
-        //        {
-        //            //閿欒:缃戝叧瀵硅薄涓㈠け
-        //            string msg = Language.StringByID(R.MyInternationalizationString.uErrorGatewayLostMsg);
-        //            this.ShowErrorMsg(msg);
-        //            return;
-        //        }
-        //        var form = new GatewayFirmwareUpdateForm();
-        //        form.AddForm(realway, listVersionInfo[2], listVersionInfo[1], listVersionInfo[0], this.listVode);
-        //    };
-        //}
-
-        //#endregion
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayFirmwareUpdateForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayFirmwareUpdateForm.cs
deleted file mode 100755
index 3ac6add..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayFirmwareUpdateForm.cs
+++ /dev/null
@@ -1,257 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-using ZigBee.Device;
-
-namespace Shared.Phone.UserCenter.GatewayManage
-{
-    /// <summary>
-    /// 缃戝叧鍥轰欢鍗囩骇鐨勭敾闈�
-    /// </summary>
-    public class GatewayFirmwareUpdateForm : EditorCommonForm
-    {
-        /// <summary>
-        /// 瑕佸崌绾х殑缃戝叧
-        /// </summary>
-        private ZbGateway upDatezbGateway = null;
-        /// <summary>
-        /// 铏氭嫙璁惧鐨勫浐浠朵俊鎭�
-        /// </summary>
-        private FirmwareVersionInfo virtualFirmware = null;
-        /// <summary>
-        /// 鍗忚皟鍣ㄦ柊鐗堟湰鐨勫浐浠朵俊鎭�
-        /// </summary>
-        private FirmwareVersionInfo coordinatorFirmware = null;
-        /// <summary>
-        /// 缃戝叧鏂扮増鏈殑鍥轰欢淇℃伅
-        /// </summary>
-        private FirmwareVersionInfo gatewayFirmware = null;
-        /// <summary>
-        /// 铏氭嫙椹卞姩鍙�
-        /// </summary>
-        private List<ZbGatewayData.DriveCodeObj> listVode = null;
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        /// <param name="i_zbGateway">缃戝叧</param>
-        /// <param name="i_virtualFirmware">铏氭嫙璁惧鐨勫浐浠朵俊鎭�</param>
-        /// <param name="i_coordinatorFirmware">鍗忚皟鍣ㄦ柊鐗堟湰鐨勫浐浠朵俊鎭�</param>
-        /// <param name="i_gatewayFirmware">缃戝叧鏂扮増鏈殑鍥轰欢淇℃伅</param>
-        /// <param name="i_listVode">铏氭嫙椹卞姩</param>
-        public void ShowForm(ZbGateway i_zbGateway, FirmwareVersionInfo i_virtualFirmware, 
-            FirmwareVersionInfo i_coordinatorFirmware, FirmwareVersionInfo i_gatewayFirmware, List<ZbGatewayData.DriveCodeObj> i_listVode)
-        {
-            this.upDatezbGateway = i_zbGateway;
-            this.virtualFirmware = i_virtualFirmware;
-            this.coordinatorFirmware = i_coordinatorFirmware;
-            this.gatewayFirmware = i_gatewayFirmware;
-            this.listVode = i_listVode;
-
-            //璁剧疆鏍囬淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uFirmwareUpdate));
-
-            var btnIcon = new MostRightIconControl(69, 69);
-            btnIcon.UnSelectedImagePath = "Item/More.png";
-            topFrameLayout.AddChidren(btnIcon);
-            btnIcon.InitControl();
-            btnIcon.ButtonClickEvent += (sender, e) =>
-            {
-                //鑿滃崟鎺т欢
-                var frameMenu = new TopRightMenuControl(1);
-                //鍘嗗彶鐗堟湰
-                string menu1 = Language.StringByID(R.MyInternationalizationString.uHistoryVersion);
-                frameMenu.AddRowMenu(menu1, "", "", () =>
-                {
-                      var form = new GatewayHistoryFirmwareVersionForm();
-                      form.AddForm(upDatezbGateway, virtualFirmware, coordinatorFirmware, gatewayFirmware, this.listVode);
-                      form.FormCloseAction += ((virtualFirmware1, coordinatorFirmware1, gatewayFirmware1, listVode1) =>
-                      {
-                        //濡傛灉杩欎釜涓滆タ姝e湪鍗囩骇銆傚垯涓嶅埛鏂板巻鍙茬増鏈�
-                        string gwID = HdlGatewayLogic.Current.GetGatewayId(upDatezbGateway);
-                          if (FirmwareUpdateResourse.dicGatewayUpdateList.ContainsKey(gwID) == false)
-                          {
-                              //閲嶆柊鍒锋柊鐣岄潰
-                              this.ShowForm(upDatezbGateway, virtualFirmware1, coordinatorFirmware1, gatewayFirmware1, listVode1);
-                          }
-                      });
-                });
-            };
-
-            //鍒濆鍖栦腑閮ㄦ帶浠�
-            this.InitMiddleFrame();
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑閮ㄦ帶浠�
-        /// </summary>
-        private void InitMiddleFrame()
-        {
-            //娓呯┖bodyFrame
-            this.ClearBodyFrame();
-
-            //娌℃湁鏂扮増鏈�
-            if (virtualFirmware == null && coordinatorFirmware == null && gatewayFirmware == null)
-            {
-                //鏄剧ず宸茬粡鏄柊鐗堟湰
-                this.ShowIsMostNewVersion();
-            }
-            else
-            {
-                //鏄剧ず瀛樺湪鏈�鏂扮増鏈�
-                this.ShowIsHadNewVersion();
-            }
-        }
-
-        /// <summary>
-        /// 鏄剧ず宸茬粡鏄柊鐗堟湰
-        /// </summary>
-        private void ShowIsMostNewVersion()
-        {
-            //濡傛灉閫夋嫨鐨勬槸鍘嗗彶鐗堟湰锛屽垯鍚屾
-            string gwID = HdlGatewayLogic.Current.GetGatewayId(upDatezbGateway);
-            if (FirmwareUpdateResourse.dicGatewayUpdateList.ContainsKey(gwID) == true)
-            {
-                var btnUpdateControl = FirmwareUpdateResourse.dicGatewayUpdateList[gwID];
-                bodyFrameLayout.AddChidren(btnUpdateControl);
-                //鍒濆鍖栧崌绾ф帶浠�
-                this.InitGatewayUpdateControl(btnUpdateControl);
-
-                return;
-            }
-
-            //褰撳墠绋嬪簭鐗堟湰
-            var btnVersionMsg = new NormalViewControl(800, true);
-            btnVersionMsg.TextID = R.MyInternationalizationString.uIsMostNewVersion;
-            btnVersionMsg.Y = Application.GetRealHeight(100);
-            btnVersionMsg.TextAlignment = TextAlignment.Center;
-            btnVersionMsg.Gravity = Gravity.CenterHorizontal;
-            bodyFrameLayout.AddChidren(btnVersionMsg);
-
-            //鐗堟湰
-            var btnVersion = new NormalViewControl(800, true);
-            var linVersion = HdlGatewayLogic.Current.GetGwInfoAttribute(upDatezbGateway, "LinuxFWVersion");
-            btnVersion.Text = Common.LocalDevice.Current.AppendVersion(Convert.ToInt32(linVersion));
-            btnVersion.Y = btnVersionMsg.Bottom + Application.GetRealHeight(10);
-            btnVersion.TextAlignment = TextAlignment.Center;
-            btnVersion.Gravity = Gravity.CenterHorizontal;
-            bodyFrameLayout.AddChidren(btnVersion);
-        }
-
-        /// <summary>
-        /// 鏄剧ず瀛樺湪鏈�鏂扮増鏈�
-        /// </summary>
-        private void ShowIsHadNewVersion()
-        {
-            //鍗囩骇鎺т欢
-            GatewayFirmwareUpdateControl btnUpdateControl = null;
-            string gwID = HdlGatewayLogic.Current.GetGatewayId(upDatezbGateway);
-            if (FirmwareUpdateResourse.dicGatewayUpdateList.ContainsKey(gwID) == true)
-            {
-                btnUpdateControl = FirmwareUpdateResourse.dicGatewayUpdateList[gwID];
-                bodyFrameLayout.AddChidren(btnUpdateControl);
-            }
-            else
-            {
-                btnUpdateControl = new GatewayFirmwareUpdateControl(null, this.upDatezbGateway, this.virtualFirmware, this.coordinatorFirmware, this.gatewayFirmware);
-                bodyFrameLayout.AddChidren(btnUpdateControl);
-                btnUpdateControl.InitChidrenControl();
-            }
-
-            //鍒濆鍖栧崌绾ф帶浠�
-            this.InitGatewayUpdateControl(btnUpdateControl);
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栧崌绾ф帶浠�
-        /// </summary>
-        /// <param name="btnUpdateControl"></param>
-        private void InitGatewayUpdateControl(GatewayFirmwareUpdateControl btnUpdateControl)
-        {
-            //鍗囩骇:娉ㄦ剰姝ゅ杩樻病鏈夊鐞嗕簨浠惰繕鍘�
-            BottomClickButton btnUpdate = btnUpdateControl.btnUpdateButton;
-            if (btnUpdate == null)
-            {
-                btnUpdate = new BottomClickButton();
-                btnUpdate.UseClickStatu = false;
-                btnUpdate.TextID = R.MyInternationalizationString.uLevelUp;
-                btnUpdate.Gravity = Gravity.BottomCenter;
-                btnUpdate.Radius = 0;
-                btnUpdate.Width = Application.CurrentWidth;
-                btnUpdate.ButtonClickEvent += (sender, e) =>
-                {
-                    if (btnUpdateControl.UpdateStatu == UpdateStatuMode.UpdateSuccess)
-                    {
-                        //鍗囩骇鎴愬姛鐨勬椂鍊欙紝濡傛灉鍗曞嚮姝ゆ寜閽紝鍒欏叧闂晫闈�
-                        this.CloseForm();
-                        return;
-                    }
-                    //杩涘叆鎵ц鏇存柊鎿嶄綔鍑嗗闃舵
-                    btnUpdateControl.StartUpdateReady();
-                };
-            }
-            btnUpdateControl.btnUpdateButton = btnUpdate;
-            bodyFrameLayout.AddChidren(btnUpdate);
-
-            var listView = new VerticalScrolViewLayout();
-            listView.Y = btnUpdateControl.Bottom;
-            listView.Height = bodyFrameLayout.Height - btnUpdateControl.Height - btnUpdate.Height;
-            bodyFrameLayout.AddChidren(listView);
-
-            //鑾峰彇鏇存柊鍐呭
-            List<string> listmsg = new List<string>();
-            if (btnUpdateControl.virtualFirmware != null)
-            {
-                listmsg.AddRange(btnUpdateControl.virtualFirmware.UpdateContent);
-            }
-            if (btnUpdateControl.coordinatorFirmware != null)
-            {
-                if (listmsg.Count > 0)
-                {
-                    listmsg.Add(string.Empty);
-                }
-                listmsg.AddRange(btnUpdateControl.coordinatorFirmware.UpdateContent);
-            }
-            if (btnUpdateControl.gatewayFirmware != null)
-            {
-                if (listmsg.Count > 0)
-                {
-                    listmsg.Add(string.Empty);
-                }
-                listmsg.AddRange(btnUpdateControl.gatewayFirmware.UpdateContent);
-            }
-
-            //鍋氭垚鏇存柊鍐呭鎺т欢
-            NormalViewControl btnTemp = null;
-            foreach (string msg in listmsg)
-            {
-                var btnmsg = new NormalViewControl(listView.Width, false);
-                btnmsg.X = ControlCommonResourse.XXLeft;
-                if (btnTemp != null)
-                {
-                    btnmsg.Y = btnTemp.Bottom + Application.GetRealHeight(5);
-                }
-                btnmsg.Text = msg;
-                listView.AddChidren(btnmsg);
-                btnTemp = btnmsg;
-            }
-        }
-
-        /// <summary>
-        /// 鐢婚潰鍏抽棴
-        /// </summary>
-        public override void CloseForm()
-        {
-            //鍗囩骇鎺т欢
-            string mainKeys = HdlGatewayLogic.Current.GetGatewayId(upDatezbGateway);
-            if (FirmwareUpdateResourse.dicGatewayUpdateList.ContainsKey(mainKeys) == true
-                && FirmwareUpdateResourse.dicGatewayUpdateList[mainKeys].IsFinishUpdate == true)
-            {
-                //濡傛灉缃戝叧宸茬粡鍗囩骇瀹屾垚锛岀晫闈㈠叧闂椂锛屽垯绉婚櫎鍐呭瓨
-                FirmwareUpdateResourse.dicGatewayUpdateList.Remove(mainKeys);
-            }
-
-            base.CloseForm();
-        }
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs
index 6b3fb19..aae291d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayInfoEditorForm.cs
@@ -138,6 +138,8 @@
             rowUpDate.ButtonClickEvent += (sender, e) =>
             {
                 btnNewVersion.Visible = false;
+                var form = new GatewayUpdate.GatewayFirmwareInfoForm();
+                form.AddForm(zbGateway);
             };
 
             //鍒濆鍖栨甯冨畬鎴�
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareInfoForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareInfoForm.cs
new file mode 100755
index 0000000..24e23fb
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareInfoForm.cs
@@ -0,0 +1,298 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.GatewayUpdate
+{
+    /// <summary>
+    /// 缃戝叧鍥轰欢淇℃伅鐣岄潰
+    /// </summary>
+    public class GatewayFirmwareInfoForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 褰撳墠閫夋嫨鐨勭綉鍏�
+        /// </summary>
+        private ZbGateway zbGateway = null;
+        /// <summary>
+        /// 鍗囩骇鍥轰欢淇℃伅(0:Linux鏂扮増鏈�  1:鍗忚皟鍣ㄦ柊鐗堟湰  2锝瀀:閮芥槸铏氭嫙椹卞姩鐨�)
+        /// </summary>
+        private List<FirmwareVersionInfo> listVersionInfo = null;
+        /// <summary>
+        /// 铏氭嫙椹卞姩鍙�
+        /// </summary>
+        private List<ZbGatewayData.DriveCodeObj> listVode = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_zbGateway">褰撳墠閫夋嫨鐨勭綉鍏�</param>
+        public void ShowForm(ZbGateway i_zbGateway)
+        {
+            this.zbGateway = i_zbGateway;
+
+            //璁剧疆鏍囬淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uFirmwareUpdate));
+
+            //鍒濆鍖栦腑閮ㄦ帶浠�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄦ帶浠�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            HdlThreadLogic.Current.RunThread(async () =>
+            {
+                //寮�鍚繘搴︽潯
+                this.ShowProgressBar();
+
+                //鑾峰彇缃戝叧鏂扮増鏈俊鎭�
+                this.listVersionInfo = await HdlGatewayLogic.Current.GetGatewayAllNewVersion(this.zbGateway);
+                if (listVersionInfo == null)
+                {
+                    //鍏抽棴杩涘害鏉�
+                    this.CloseProgressBar(ShowReLoadMode.YES);
+                    return;
+                }
+                //铏氭嫙椹卞姩鍙�
+                this.listVode = await HdlGatewayLogic.Current.GetListVDDriveCode(this.zbGateway);
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar();
+
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍒濆鍖栧綋鍓嶇増鏈殑鎺т欢
+                    var yy = this.InitNowVersionControl();
+                    if (listVersionInfo[0] != null || listVersionInfo[1] != null || listVersionInfo[2] != null)
+                    {
+                        //鍒濆鍖栨柊鐗堟湰鐨勬帶浠�
+                        this.InitNewVersionControl(yy);
+                    }
+                });
+            });
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栧綋鍓嶇増鏈殑鎺т欢
+        /// </summary>
+        private int InitNowVersionControl()
+        {
+            var frameBack = new FrameLayout();
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            frameBack.Height = Application.GetMinReal(800);
+            bodyFrameLayout.AddChidren(frameBack);
+
+            //褰撳墠鍥轰欢鐗堟湰
+            var btnTitle = new NormalViewControl(700, 65, true);
+            btnTitle.X = ControlCommonResourse.XXLeft;
+            btnTitle.Y = Application.GetRealHeight(30);
+            btnTitle.TextID = R.MyInternationalizationString.uNowFirmwareVersion;
+            btnTitle.TextSize = 15;
+            frameBack.AddChidren(btnTitle);
+
+            var listView = new VerticalListControl(12);
+            listView.Y = Application.GetRealHeight(109);
+            listView.Height = Application.GetRealHeight(800);
+            frameBack.AddChidren(listView);
+
+            //Linux
+            var rowLinux = new FrameRowControl(listView.rowSpace / 2);
+            listView.AddChidren(rowLinux);
+            rowLinux.AddLeftCaption("Linux", 300);
+            rowLinux.AddRightArrow();
+            rowLinux.ButtonClickEvent += (sender, e) =>
+            {
+            };
+
+            //鍗忚皟鍣�
+            var rowCoordinator = new FrameRowControl(listView.rowSpace / 2);
+            listView.AddChidren(rowCoordinator);
+            rowCoordinator.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uCoordinator), 500);
+            rowCoordinator.AddRightArrow();
+            rowCoordinator.ButtonClickEvent += (sender, e) =>
+            {
+            };
+
+            if (this.listVode != null)
+            {
+                //铏氭嫙椹卞姩
+                var rowVirtual = new FrameRowControl(listView.rowSpace / 2);
+                listView.AddChidren(rowVirtual);
+                rowVirtual.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uVirtualDrive), 500);
+                rowVirtual.AddRightArrow();
+                rowVirtual.ButtonClickEvent += (sender, e) =>
+                {
+                };
+            }
+            //娌℃湁鏂扮増鏈�
+            if (listVersionInfo[0] == null && listVersionInfo[1] == null && listVersionInfo[2] == null)
+            {
+                //鏈�鏂板浐浠剁増鏈�
+                var rowNew = new FrameRowControl();
+                rowNew.UseClickStatu = false;
+                listView.AddChidren(rowNew);
+                rowNew.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uNewFirmwareVersion), 500);
+                rowNew.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uNothing), 500);
+            }
+            //鍒掔嚎
+            for (int i = 0; i < listView.ChildrenCount - 1; i++)
+            {
+                ((FrameRowControl)listView.GetChildren(i)).AddBottomLine();
+            }
+
+            //璋冩暣鐪熷疄楂樺害
+            listView.AdjustRealHeight(Application.GetRealHeight(23));
+            frameBack.Height = listView.Bottom;
+
+            return frameBack.Bottom;
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨柊鐗堟湰鐨勬帶浠�
+        /// </summary>
+        private void InitNewVersionControl(int YY)
+        {
+            var frameBack = new FrameLayout();
+            frameBack.Y = YY + Application.GetRealHeight(35);
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            frameBack.Height = Application.GetMinReal(832);
+            bodyFrameLayout.AddChidren(frameBack);
+
+            //鏈�鏂板浐浠剁増鏈�
+            var btnTitle = new NormalViewControl(700, 65, true);
+            btnTitle.X = ControlCommonResourse.XXLeft;
+            btnTitle.Y = Application.GetRealHeight(30);
+            btnTitle.TextID = R.MyInternationalizationString.uNewFirmwareVersion;
+            btnTitle.TextSize = 15;
+            frameBack.AddChidren(btnTitle);
+
+            var listView = new VerticalListControl(12);
+            listView.Y = Application.GetRealHeight(109);
+            listView.Height = frameBack.Height - Application.GetRealHeight(109);
+            frameBack.AddChidren(listView);
+
+            //Linux
+            if (listVersionInfo[0] != null)
+            {
+                var rowLinux = new FrameRowControl(listView.rowSpace / 2);
+                rowLinux.UseClickStatu = false;
+                listView.AddChidren(rowLinux);
+                rowLinux.AddLeftCaption("Linux", 300);
+                rowLinux.AddMostRightView(Common.LocalDevice.Current.AppendVersion(listVersionInfo[0].FirmwareVersion), 300);
+                rowLinux.AddBottomLine();
+            }
+
+            //鍗忚皟鍣�
+            if (listVersionInfo[1] != null)
+            {
+                var rowCoordinator = new FrameRowControl(listView.rowSpace / 2);
+                rowCoordinator.UseClickStatu = false;
+                listView.AddChidren(rowCoordinator);
+                rowCoordinator.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uCoordinator), 500);
+                rowCoordinator.AddMostRightView(Common.LocalDevice.Current.AppendVersion(listVersionInfo[1].FirmwareVersion), 300);
+                rowCoordinator.AddBottomLine();
+            }
+
+            //铏氭嫙椹卞姩
+            if (listVersionInfo[2] != null)
+            {
+                var rowVirtual = new FrameRowControl(listView.rowSpace / 2);
+                rowVirtual.UseClickStatu = false;
+                listView.AddChidren(rowVirtual);
+                rowVirtual.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uVirtualDrive), 500);
+                rowVirtual.AddMostRightView(Common.LocalDevice.Current.AppendVersion(listVersionInfo[2].FirmwareVersion), 300);
+                rowVirtual.AddBottomLine();
+            }
+
+            //娣诲姞鍥轰欢浠嬬粛琛�
+            this.AddUpdateContent(listView);
+
+            //鍗囩骇
+            var btnUpdate = new BottomClickButton();
+            btnUpdate.TextID = R.MyInternationalizationString.uLevelUp;
+            bodyFrameLayout.AddChidren(btnUpdate);
+            btnUpdate.ButtonClickEvent += (sender, e) =>
+            {
+                ZbGateway realway = null;
+                if (HdlGatewayLogic.Current.GetRealGateway(ref realway, zbGateway) == false)
+                {
+                    //閿欒:缃戝叧瀵硅薄涓㈠け
+                    string msg = Language.StringByID(R.MyInternationalizationString.uErrorGatewayLostMsg);
+                    this.ShowMassage(ShowMsgType.Error, msg);
+                    return;
+                }
+                //鐣岄潰鍙冲垝涓嶅彲
+                UserView.HomePage.Instance.ScrollEnabled = false;
+                Shared.Common.CommonPage.BackKeyCanClick = false;
+
+                var form = new GatewayFirmwareUpdateForm();
+                form.CloseFormByClickBack = false;
+                form.AddForm(realway, listVersionInfo[2], listVersionInfo[1], listVersionInfo[0], this.listVode);
+                //瀹屾垚鍗囩骇浜嬩欢
+                form.FinishUpdateEvent += (() =>
+                {
+                    //鍒濆鍖栦腑閮ㄦ帶浠�
+                    this.InitMiddleFrame();
+                });
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞鍥轰欢浠嬬粛琛宊____________________
+
+        /// <summary>
+        /// 娣诲姞鍥轰欢浠嬬粛琛�
+        /// </summary>
+        /// <param name="listContent">鍒楄〃鎺т欢</param>
+        private void AddUpdateContent(VerticalListControl listContent)
+        {
+            //淇敼鍐呭
+            var frameContent = new FrameLayout();
+            frameContent.Height = Application.GetRealHeight(87);
+            listContent.AddChidren(frameContent);
+            var btnContent = new NormalViewControl(500, 87, true);
+            btnContent.X = ControlCommonResourse.XXLeft;
+            btnContent.Y = Application.GetRealHeight(28);
+            btnContent.TextID = R.MyInternationalizationString.uEditorContent;
+            btnContent.TextSize = 12;
+            frameContent.AddChidren(btnContent);
+
+            foreach (var info in this.listVersionInfo)
+            {
+                if (info == null)
+                {
+                    continue;
+                }
+                foreach (var msg in info.UpdateContent)
+                {
+                    var btnRow = new FrameRowControl();
+                    btnRow.UseClickStatu = false;
+                    btnRow.Height = Application.GetRealHeight(40);
+                    listContent.AddChidren(btnRow);
+
+                    var btnMsg = btnRow.AddLeftCaption(msg, 965);
+                    btnMsg.TextSize = 10;
+                    btnMsg.TextColor = UserCenterColor.Current.TextGrayColor3;
+                }
+            }
+            //娣诲姞搴曢儴绌虹櫧闂撮殭
+            var frameSpace3 = new FrameLayout();
+            frameSpace3.Height = Application.GetRealHeight(58);
+            listContent.AddChidren(frameSpace3);
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareUpdateForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareUpdateForm.cs
new file mode 100755
index 0000000..4f3dfb9
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayFirmwareUpdateForm.cs
@@ -0,0 +1,219 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.GatewayUpdate
+{
+    /// <summary>
+    /// 鍥轰欢鍗囩骇鐢婚潰
+    /// </summary>
+    public class GatewayFirmwareUpdateForm : DialogCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 瑕佸崌绾х殑缃戝叧
+        /// </summary>
+        private ZbGateway upDatezbGateway = null;
+        /// <summary>
+        /// 铏氭嫙璁惧鐨勫浐浠朵俊鎭�
+        /// </summary>
+        private FirmwareVersionInfo virtualFirmware = null;
+        /// <summary>
+        /// 鍗忚皟鍣ㄦ柊鐗堟湰鐨勫浐浠朵俊鎭�
+        /// </summary>
+        private FirmwareVersionInfo coordinatorFirmware = null;
+        /// <summary>
+        /// 缃戝叧鏂扮増鏈殑鍥轰欢淇℃伅
+        /// </summary>
+        private FirmwareVersionInfo gatewayFirmware = null;
+        /// <summary>
+        /// 铏氭嫙椹卞姩鍙�
+        /// </summary>
+        private List<ZbGatewayData.DriveCodeObj> listVode = null;
+        /// <summary>
+        /// 璁惧鎴愬姛鍗囩骇瀹屾垚鐨勫洖璋冨嚱鏁�
+        /// </summary>
+        public Action FinishUpdateEvent = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_zbGateway">缃戝叧</param>
+        /// <param name="i_virtualFirmware">铏氭嫙璁惧鐨勫浐浠朵俊鎭�</param>
+        /// <param name="i_coordinatorFirmware">鍗忚皟鍣ㄦ柊鐗堟湰鐨勫浐浠朵俊鎭�</param>
+        /// <param name="i_gatewayFirmware">缃戝叧鏂扮増鏈殑鍥轰欢淇℃伅</param>
+        /// <param name="i_listVode">铏氭嫙椹卞姩</param>
+        public void ShowForm(ZbGateway i_zbGateway, FirmwareVersionInfo i_virtualFirmware, FirmwareVersionInfo i_coordinatorFirmware, 
+            FirmwareVersionInfo i_gatewayFirmware, List<ZbGatewayData.DriveCodeObj> i_listVode)
+        {
+            this.upDatezbGateway = i_zbGateway;
+            this.virtualFirmware = i_virtualFirmware;
+            this.coordinatorFirmware = i_coordinatorFirmware;
+            this.gatewayFirmware = i_gatewayFirmware;
+            this.listVode = i_listVode;
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            var frameBack = new FrameLayout();
+            frameBack.Width = Application.GetRealWidth(674);
+            frameBack.Height = Application.GetRealHeight(386);
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            frameBack.Gravity = Gravity.CenterHorizontal;
+            frameBack.Y = Application.GetRealHeight(683);
+            frameBack.Radius = 6;
+            bodyFrameLayout.AddChidren(frameBack);
+
+            //杩涘害鏄剧ず鏂囨湰
+            var btnText = new NormalViewControl(frameBack.Width, Application.GetRealHeight(58), false);
+            btnText.Y = Application.GetRealHeight(248);
+            btnText.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnText.TextAlignment = TextAlignment.Center;
+            //btnText.Text = "鍗囩骇涓�";
+            frameBack.AddChidren(btnText);
+
+            //杩涘害鏉�
+            var btnProRow = new FrameLayout();
+            btnProRow.Gravity = Gravity.CenterHorizontal;
+            btnProRow.Y = Application.GetRealHeight(161);
+            btnProRow.Width = Application.GetRealWidth(559);
+            btnProRow.Height = Application.GetRealHeight(29);
+            btnProRow.BackgroundColor = 0xfff5f5f5;
+            btnProRow.Radius = (uint)Application.GetRealHeight(29) / 2;
+            frameBack.AddChidren(btnProRow);
+            var btnProgressBar = new FrameLayout();
+            btnProgressBar.Width = 0;
+            btnProgressBar.Height = btnProRow.Height;
+            btnProgressBar.Radius = btnProRow.Radius;
+            btnProgressBar.BackgroundColor = 0xfffb744a;
+            btnProgressBar.Radius = (uint)Application.GetRealHeight(29) / 2;
+            btnProRow.AddChidren(btnProgressBar);
+
+            //杩涘害鍊兼枃鏈�
+            var frameProgress = new FrameLayout();
+            frameProgress.Width = Application.GetRealWidth(84);
+            frameProgress.Height = Application.GetRealHeight(60);
+            frameProgress.Y = Application.GetRealHeight(86);
+            frameBack.AddChidren(frameProgress);
+            frameProgress.X = btnProRow.X + btnProgressBar.Right - frameProgress.Width / 2;
+            var btnProgressPic = new PicViewControl(84, 60);
+            btnProgressPic.UnSelectedImagePath = "Item/ProgressMsg.png";
+            frameProgress.AddChidren(btnProgressPic);
+            var btnProgressView = new NormalViewControl(84, 32, true);
+            btnProgressView.TextSize = 10;
+            btnProgressView.TextAlignment = TextAlignment.Center;
+            btnProgressView.Text = "0%";
+            frameProgress.AddChidren(btnProgressView);
+
+            //璁惧鍗囩骇
+            this.GatewayUpdateMethod(btnText, btnProgressView, frameProgress, btnProgressBar, btnProRow.Width);
+        }
+
+        #endregion
+
+        #region 鈻� 璁惧鍗囩骇___________________________
+
+        /// <summary>
+        /// 缃戝叧鍗囩骇
+        /// </summary>
+        /// <param name="btnText">鏍囬鎺т欢</param>
+        /// <param name="btnProgressView">杩涘害鍊兼枃鏈殑鏄剧ず鎺т欢</param>
+        /// <param name="frameProgress">杩涘害鍊艰兘澶熺Щ鍔ㄧ殑閭d釜妗嗘帶浠�</param>
+        /// <param name="btnProgressBar">杩涘害鏉�</param>
+        /// <param name="ProRowWidth">杩涘害鏉″鍣ㄧ殑鏈�澶у搴�</param>
+        private void GatewayUpdateMethod(NormalViewControl btnText, NormalViewControl btnProgressView,
+            FrameLayout frameProgress, FrameLayout btnProgressBar, int ProRowWidth)
+        {
+            //璁惧鍗囩骇
+            var updateLogic = new HdlGatewayUpdateLogic(this.upDatezbGateway, virtualFirmware, coordinatorFirmware, gatewayFirmware);
+            //鏇存柊鐘舵�佸彉鍖栫殑浜嬩欢
+            updateLogic.UpdateStatuChangedEvent += (div, msg) =>
+            {
+                if (div == -1)
+                {
+                    //寮傚父
+                    this.ShowMassage(ShowMsgType.Tip, msg);
+                    this.CloseForm();
+                }
+                else if (div == 0)
+                {
+                    //涓�鑸俊鎭�
+                    btnText.Text = msg;
+                }
+                else if (div == 1)
+                {
+                    //鍗囩骇瀹屾垚
+                    this.ShowMassage(ShowMsgType.Tip, msg);
+                    //璋冪敤鍥炶皟鍑芥暟
+                    this.FinishUpdateEvent?.Invoke();
+                    this.CloseForm();
+                }
+                else if (div == 2)
+                {
+                    //涓诲姩缁堟鍗囩骇
+                    this.CloseForm();
+                }
+            };
+            //杩涘害鍊兼敼鍙樹簨浠�
+            updateLogic.ProgressEvent += (value) =>
+            {
+                Application.RunOnMainThread(() =>
+                {
+                    //杩涘害鏉�
+                    decimal result = value / 100;
+                    int width = (int)(result * ProRowWidth);
+                    btnProgressBar.Width = width;
+
+                    //鏂囨湰鏄剧ず
+                    btnProgressView.Text = value + "%";
+                    //鏂囨湰鏄剧ず鐨勯偅涓浘鐗囨绉诲姩
+                    frameProgress.X = ControlCommonResourse.XXLeft + btnProgressBar.Right - frameProgress.Width / 2;
+                });
+
+            };
+            //缃戝叧鍗囩骇寮�濮�
+            updateLogic.StartUpdateReady();
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰鍏抽棴___________________________
+
+        /// <summary>
+        /// 鐢婚潰鍏抽棴
+        /// </summary>
+        public override void CloseForm()
+        {
+            //瀹夊崜鍙互鐐瑰嚮绯荤粺鐨勮繑鍥為敭
+            UserView.HomePage.Instance.ScrollEnabled = true;
+            Shared.Common.CommonPage.BackKeyCanClick = true;
+
+            //鍗囩骇瀵硅薄
+            string gwId = HdlGatewayLogic.Current.GetGatewayId(upDatezbGateway);
+            if (FirmwareUpdateResourse.dicGatewayUpdateList.ContainsKey(gwId) == true
+                && FirmwareUpdateResourse.dicGatewayUpdateList[gwId].IsFinishUpdate == true)
+            {
+                //濡傛灉缃戝叧宸茬粡鍗囩骇瀹屾垚锛岀晫闈㈠叧闂椂锛屽垯绉婚櫎鍐呭瓨
+                FirmwareUpdateResourse.dicGatewayUpdateList[gwId].Dispose();
+                FirmwareUpdateResourse.dicGatewayUpdateList.Remove(gwId);
+            }
+            this.FinishUpdateEvent = null;
+
+            base.CloseForm();
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayHistoryFirmwareVersionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs
similarity index 99%
rename from ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayHistoryFirmwareVersionForm.cs
rename to ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs
index b3f61e2..cf020f3 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Manage/GatewayHistoryFirmwareVersionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Gateway/Update/GatewayHistoryFirmwareVersionForm.cs
@@ -3,7 +3,7 @@
 using System.Text;
 using ZigBee.Device;
 
-namespace Shared.Phone.UserCenter.GatewayManage
+namespace Shared.Phone.UserCenter.GatewayUpdate
 {
     /// <summary>
     /// 缃戝叧鐨勫巻鍙茬増鏈晫闈�
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Member/AddMemberSuccessForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Member/AddMemberSuccessForm.cs
index 77d544c..264daa7 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Member/AddMemberSuccessForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Member/AddMemberSuccessForm.cs
@@ -52,7 +52,7 @@
             frame.Height = Application.GetRealHeight(1097);
             frame.BackgroundColor = UserCenterColor.Current.White;
             frame.Gravity = Gravity.Center;
-            frame.Radius = (uint)Application.GetMinRealAverage(6);
+            frame.Radius = 6;
             bodyFrameLayout.AddChidren(frame);
 
             //鐢ㄦ埛鍥炬爣
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberManagementForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberManagementForm.cs
index b35bb71..0bf877c 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberManagementForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Member/MemberManagementForm.cs
@@ -67,15 +67,15 @@
             btnTopIcon.InitControl();
             btnTopIcon.ButtonClickEvent += (sender, e) =>
             {
+                //纭畾鍙栨秷銆寋0}銆嶇鐞嗗憳鏉冮檺锛�
                 string msg = Language.StringByID(R.MyInternationalizationString.uDownSubAccountLevel);
                 if (memberInfo.AccountType != 1)
                 {
+                    //纭畾鎺堟潈銆寋0}銆嶆垚涓虹鐞嗗憳?
                     msg = Language.StringByID(R.MyInternationalizationString.uUpSubAccountLevel);
-                    if (msg.Contains("{0}") == true)
-                    {
-                        msg = string.Format(msg, string.IsNullOrEmpty(memberInfo.UserName) == true ? memberInfo.Account : memberInfo.UserName);
-                    }
                 }
+                msg = msg.Replace("{0}", string.IsNullOrEmpty(memberInfo.UserName) == true ? memberInfo.Account : memberInfo.UserName);
+
                 this.ShowMassage(ShowMsgType.Confirm, msg, () =>
                  {
                      //浜屾瀹夊叏楠岃瘉,濡傛灉娌℃湁璁剧疆鏈�,鐩存帴璺宠繃楠岃瘉
@@ -313,11 +313,8 @@
                 btnAuthority.TextID = memberInfo.AccountType == 1 ? R.MyInternationalizationString.uMemberHadActionAuthority : R.MyInternationalizationString.uMember;
 
                 //鎵撳紑鏄剧ず鎴愬姛鐨勭敾闈�
-                if (memberInfo.AccountType == 1)
-                {
-                    var form = new SubAccountLevelUpSuccessForm();
-                    form.AddForm(memberInfo);
-                }
+                var form = new SubAccountLevelUpSuccessForm();
+                form.AddForm(memberInfo);
             });
         }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Member/SubAccountLevelUpSuccessForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Member/SubAccountLevelUpSuccessForm.cs
index 0e308f5..b26c46e 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Member/SubAccountLevelUpSuccessForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Member/SubAccountLevelUpSuccessForm.cs
@@ -43,7 +43,7 @@
             frame.Height = Application.GetRealHeight(1097);
             frame.BackgroundColor = UserCenterColor.Current.White;
             frame.Gravity = Gravity.Center;
-            frame.Radius = (uint)Application.GetMinRealAverage(6);
+            frame.Radius = 6;
             bodyFrameLayout.AddChidren(frame);
 
             //鐢ㄦ埛鍥炬爣
@@ -71,28 +71,47 @@
             btnAuthority.TextAlignment = TextAlignment.Center;
             btnAuthority.Y = Application.GetRealHeight(400);
             btnAuthority.TextColor = UserCenterColor.Current.TextGrayColor;
-            btnAuthority.TextID = R.MyInternationalizationString.uMember;
+            if (memberInfo.AccountType == 1)
+            {
+                btnAuthority.TextID = R.MyInternationalizationString.Administrator;
+            }
+            else
+            {
+                btnAuthority.TextID = R.MyInternationalizationString.uMember;
+            }
             btnAuthority.TextSize = 12;
             frame.AddChidren(btnAuthority);
 
-            //鎴愬憳鎺堟潈鎴愬姛
+            
             var btnMsg = new NormalViewControl(frame.Width, Application.GetRealHeight(81), false);
-            btnMsg.TextID = R.MyInternationalizationString.uMemberAuthorizationSuccess;
+            if (memberInfo.AccountType == 1)
+            {
+                //鎺堟潈鎴愬姛!
+                btnMsg.TextID = R.MyInternationalizationString.uMemberAuthorizationSuccess;
+            }
+            else
+            {
+                //鍙栨秷鎴愬姛
+                btnMsg.TextID = R.MyInternationalizationString.uCancelSuccess;
+            }
             btnMsg.Y = Application.GetRealHeight(541);
             btnMsg.TextAlignment = TextAlignment.Center;
             btnMsg.TextSize = 20;
             frame.AddChidren(btnMsg);
 
-            //璇ユ垚鍛樺凡鎴愪负绠$悊鍛�,鎮ㄧ殑鎺у埗鏉冨凡绉讳氦
-            string strMsg = Language.StringByID(R.MyInternationalizationString.uSubAccountLevelIsUpAndLetAuthorization);
-            if (strMsg.Contains("{0}") == true)
-            {
-                strMsg = string.Format(strMsg, "\r\n", "\r\n");
-            }
-            var btnView = new NormalViewControl(frame.Width, Application.GetRealHeight(147), false);
-            btnView.Y = Application.GetRealHeight(622);
+            var btnView = new NormalViewControl(frame.Width, Application.GetRealHeight(50), false);
+            btnView.Y = btnMsg.Bottom;
             btnView.TextAlignment = TextAlignment.Center;
-            btnView.Text = strMsg;
+            if (memberInfo.AccountType == 1)
+            {
+                //璇ユ垚鍛樺凡鎴愪负绠$悊鍛�
+                btnView.TextID = R.MyInternationalizationString.uSubAccountLevelIsUp;
+            }
+            else
+            {
+                //璇ョ鐞嗗憳宸叉垚涓烘垚鍛�
+                btnView.TextID = R.MyInternationalizationString.uSubAccountLevelIsDown;
+            }
             btnView.TextColor = UserCenterColor.Current.TextGrayColor;
             btnView.IsMoreLines = true;
             btnView.TextSize = 12;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs
new file mode 100755
index 0000000..3800429
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorGesturePasswordForm.cs
@@ -0,0 +1,252 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter.Password
+{
+    /// <summary>
+    /// 缂栬緫浜屾楠岃瘉鐨勬墜鍔块獙璇佺晫闈�
+    /// </summary>
+    public class EditorGesturePasswordForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 褰撳墠鐣岄潰妯″紡
+        /// </summary>
+        private FormMode formMode = FormMode.A鏂板缓瀵嗙爜;
+        /// <summary>
+        /// 绗竴娆″瘑鐮�
+        /// </summary>
+        private string firstPssword = string.Empty;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
+        {
+            //鐣岄潰鍙冲垝涓嶅彲
+            UserView.HomePage.Instance.ScrollEnabled = false;
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uGestureAuthentication));
+
+            if (string.IsNullOrEmpty(UserCenterResourse.Option.GestureAuthentication) == false)
+            {
+                formMode = FormMode.A楠岃瘉鍓嶅洖瀵嗙爜;
+            }
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            string titleText = string.Empty;
+            if (formMode == FormMode.A鏂板缓瀵嗙爜)
+            {
+                //璇疯緭鍏ユ柊鎵嬪娍
+                titleText = Language.StringByID(R.MyInternationalizationString.uPleaseInputNewGesture);
+            }
+            else if (formMode == FormMode.A楠岃瘉鍓嶅洖瀵嗙爜)
+            {
+                //璇疯緭鍏ユ墜鍔�
+                titleText = Language.StringByID(R.MyInternationalizationString.uPleaseInputGesture);
+            }
+            else if (formMode == FormMode.A纭鏂板缓瀵嗙爜
+                || formMode == FormMode.A纭淇敼瀵嗙爜)
+            {
+                //璇峰啀娆¤緭鍏ユ墜鍔�
+                titleText = Language.StringByID(R.MyInternationalizationString.uPleaseConfirmPswAgain);
+            }
+            else if (formMode == FormMode.A淇敼瀵嗙爜)
+            {
+                //鏇存敼鎵嬪娍锛岃杈撳叆鎵嬪娍
+                titleText = Language.StringByID(R.MyInternationalizationString.uEditorGesturePleaseInputNewGesture);
+            }
+
+            //鎵嬪娍鎺т欢
+            var pswControl = new PswGestureInputControl(titleText);
+            pswControl.Y = Application.GetRealHeight(173);
+            pswControl.Gravity = Gravity.CenterHorizontal;
+            bodyFrameLayout.AddChidren(pswControl);
+            pswControl.InitControl();
+            pswControl.FinishInputEvent += (password, pswleng) =>
+            {
+                //鏍¢獙瀵嗙爜
+                this.DoAdjustPssword(password, pswleng, pswControl);
+            };
+
+            if (formMode == FormMode.A楠岃瘉鍓嶅洖瀵嗙爜)
+            {
+                //蹇樿鎵嬪娍锛�
+                var btnForgotPsw = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(49), false);
+                btnForgotPsw.Y = Application.GetRealHeight(1492);
+                btnForgotPsw.TextSize = 12;
+                btnForgotPsw.TextColor = UserCenterColor.Current.TextOrangeColor;
+                btnForgotPsw.TextID = R.MyInternationalizationString.ForgotPasswordMsg;
+                btnForgotPsw.TextAlignment = TextAlignment.Center;
+                bodyFrameLayout.AddChidren(btnForgotPsw);
+                btnForgotPsw.ButtonClickEvent += (sender, e) =>
+                {
+                    var form = new ForgotSecondaryPasswordForm();
+                    form.AddForm();
+                };
+                //搴曠嚎
+                int lineWidth = btnForgotPsw.GetRealWidthByText(12);
+                var btnLine = new NormalViewControl(lineWidth, ControlCommonResourse.BottomLineHeight, false);
+                btnLine.BackgroundColor = UserCenterColor.Current.TextOrangeColor;
+                btnLine.Gravity = Gravity.CenterHorizontal;
+                btnLine.Y = btnForgotPsw.Bottom - Application.GetRealHeight(8);
+                bodyFrameLayout.AddChidren(btnLine);
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鏍¢獙瀵嗙爜___________________________
+
+        /// <summary>
+        /// 鏍¢獙瀵嗙爜
+        /// </summary>
+        /// <param name="i_Psw"></param>
+        /// <param name="pswLength"></param>
+        /// <param name="pswControl"></param>
+        private void DoAdjustPssword(string i_Psw, int pswLength, PswGestureInputControl pswControl)
+        {
+            if (formMode == FormMode.A鏂板缓瀵嗙爜)
+            {
+                if (pswLength <= 4)
+                {
+                    //鎵嬪娍瀵嗙爜闀垮害蹇呴』澶т簬4
+                    string msg = Language.StringByID(R.MyInternationalizationString.uGesturePswLenthError).Replace("{0}", "4");
+                    pswControl.SetErrorMsg(msg);
+                    return;
+                }
+                //杈撳叆浜屾瀵嗙爜
+                this.firstPssword = i_Psw;
+                formMode = FormMode.A纭鏂板缓瀵嗙爜;
+                this.InitMiddleFrame();
+            }
+            else if (formMode == FormMode.A纭鏂板缓瀵嗙爜)
+            {
+                if (this.firstPssword != i_Psw)
+                {
+                    //纭鎵嬪娍閿欒锛岃閲嶆柊璁剧疆
+                    pswControl.SetErrorMsg(Language.StringByID(R.MyInternationalizationString.uGestureNotEqual));
+                    return;
+                }
+                UserCenterResourse.Option.GestureAuthentication = i_Psw;
+                UserCenterResourse.Option.Save();
+                //鍏抽棴鐣岄潰
+                this.CloseForm();
+            }
+            else if (formMode == FormMode.A楠岃瘉鍓嶅洖瀵嗙爜)
+            {
+                if (UserCenterResourse.Option.GestureAuthentication != i_Psw)
+                {
+                    UserCenterResourse.Option.PasswordGestureInputCount--;
+                    if (UserCenterResourse.Option.PasswordGestureInputCount <= 0)
+                    {
+                        //绠$悊鍛樿韩浠介獙璇佸け璐�,璇烽噸鏂扮櫥褰�
+                        string msg2 = Language.StringByID(R.MyInternationalizationString.uCheckAdministratorFailAndReload);
+                        this.ShowMassage(ShowMsgType.Tip, msg2);
+                        UserCenterLogic.ReLoginAgain(Common.Config.Instance.Account);
+                        return;
+                    }
+                    //鎵嬪娍閿欒锛岃閲嶆柊杈撳叆
+                    pswControl.SetErrorMsg(Language.StringByID(R.MyInternationalizationString.uOldGestureIsError));
+                    return;
+                }
+                //閲嶇疆鍓╀綑瀵嗙爜娆℃暟
+                UserCenterResourse.Option.ResetPasswordCount();
+
+                formMode = FormMode.A淇敼瀵嗙爜;
+                this.InitMiddleFrame();
+            }
+            else if (formMode == FormMode.A淇敼瀵嗙爜)
+            {
+                if (pswLength <= 4)
+                {
+                    //鎵嬪娍瀵嗙爜闀垮害蹇呴』澶т簬4
+                    string msg = Language.StringByID(R.MyInternationalizationString.uGesturePswLenthError).Replace("{0}", "4");
+                    pswControl.SetErrorMsg(msg);
+                    return;
+                }
+                //杈撳叆浜屾瀵嗙爜
+                this.firstPssword = i_Psw;
+                formMode = FormMode.A纭淇敼瀵嗙爜;
+                this.InitMiddleFrame();
+            }
+            else if (formMode == FormMode.A纭淇敼瀵嗙爜)
+            {
+                if (this.firstPssword != i_Psw)
+                {
+                    //纭鎵嬪娍閿欒锛岃閲嶆柊璁剧疆
+                    pswControl.SetErrorMsg(Language.StringByID(R.MyInternationalizationString.uGestureNotEqual));
+                    return;
+                }
+                UserCenterResourse.Option.GestureAuthentication = i_Psw;
+                UserCenterResourse.Option.Save();
+                //鍏抽棴鐣岄潰
+                this.CloseForm();
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 澶栭儴鎸囧畾妯″紡_______________________
+
+        /// <summary>
+        /// 寮哄埗鎸囧畾鏂板瘑鐮佹ā寮�(鐢卞閮ㄨ皟鐢�)
+        /// </summary>
+        public void SetNewPasswordFormMode()
+        {
+            formMode = FormMode.A鏂板缓瀵嗙爜;
+            this.InitMiddleFrame();
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰鍏抽棴___________________________
+
+        /// <summary>
+        /// 鐣岄潰鍏抽棴
+        /// </summary>
+        public override void CloseForm()
+        {
+            //鐣岄潰鍙冲垝鍙�
+            UserView.HomePage.Instance.ScrollEnabled = true;
+
+            base.CloseForm();
+        }
+
+        #endregion
+
+        #region 鈻� 缁撴瀯浣揰____________________________
+
+        /// <summary>
+        /// 鐣岄潰妯″紡
+        /// </summary>
+        private enum FormMode
+        {
+            A鏂板缓瀵嗙爜 = 1,
+            A纭鏂板缓瀵嗙爜 = 2,
+            A楠岃瘉鍓嶅洖瀵嗙爜 = 3,
+            A淇敼瀵嗙爜 = 4,
+            A纭淇敼瀵嗙爜 = 5
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorSecondaryPasswordForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorSecondaryPasswordForm.cs
index 4486590..074ea87 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorSecondaryPasswordForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Password/EditorSecondaryPasswordForm.cs
@@ -49,53 +49,41 @@
             //娓呯┖bodyFrame
             this.ClearBodyFrame();
 
-            var btnMsg = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(49), false);
-            btnMsg.Y = Application.GetRealHeight(311);
-            btnMsg.TextAlignment = TextAlignment.Center;
-            btnMsg.TextSize = 12;
-            bodyFrameLayout.AddChidren(btnMsg);
-            if (formMode == FormMode.A鏂板缓瀵嗙爜
-                || formMode == FormMode.A楠岃瘉鍓嶅洖瀵嗙爜)
+            string title = string.Empty;
+            if (formMode == FormMode.A鏂板缓瀵嗙爜)
+            {
+                //璇疯緭鍏ユ柊瀵嗙爜
+                title = Language.StringByID(R.MyInternationalizationString.uPleaseInputNewPassword);
+            }
+            else if (formMode == FormMode.A楠岃瘉鍓嶅洖瀵嗙爜)
             {
                 //璇疯緭鍏ュ瘑鐮�
-                btnMsg.TextID = R.MyInternationalizationString.uPleaseInputPsw;
+                title = Language.StringByID(R.MyInternationalizationString.uPleaseInputPsw);
             }
             else if (formMode == FormMode.A纭鏂板缓瀵嗙爜
                 || formMode == FormMode.A纭淇敼瀵嗙爜)
             {
                 //璇峰啀娆$‘璁ゅ瘑鐮�
-                btnMsg.TextID = R.MyInternationalizationString.uPleaseConfirmPswAgain;
+                title = Language.StringByID(R.MyInternationalizationString.uPleaseConfirmPswAgain);
             }
             else if (formMode == FormMode.A淇敼瀵嗙爜)
             {
                 //淇敼瀵嗙爜锛岃杈撳叆鏂板瘑鐮�
-                btnMsg.TextID = R.MyInternationalizationString.uEditorPswPleaseInputNewPsw;
+                title = Language.StringByID(R.MyInternationalizationString.uEditorPswPleaseInputNewPsw);
             }
 
-            //閿欒淇℃伅
-            var msgControl = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(58), false);
-            msgControl.Y = Application.GetRealHeight(660);
-            msgControl.TextAlignment = TextAlignment.Center;
-            msgControl.TextColor = 0xfff75858;
-            bodyFrameLayout.AddChidren(msgControl);
-
-            //鍒濆鍖栭獙璇佺爜鎺т欢
-            var btnCodeControl = new VerificationCodeControl(4);
-            btnCodeControl.SecureTextEntry = true;
-            btnCodeControl.Y = Application.GetRealHeight(464);
-            bodyFrameLayout.AddChidren(btnCodeControl);
-            btnCodeControl.InitControl();;
-            btnCodeControl.TxtCodeChangeEvent += (sender, e) =>
-            {
-                if (msgControl.Visible == true)
-                {
-                    msgControl.Visible = false;
-                }
-            };
-            btnCodeControl.FinishInputEvent += (value) =>
+            //瀵嗙爜鎺т欢
+            var pswControl = new PswNumberInputControl(title);
+            //鍙樻洿鏁板瓧琛ㄧ洏鑳屾櫙鑹�
+            pswControl.NumberIconBackColor = UserCenterColor.Current.White;
+            pswControl.Y = Application.GetRealHeight(104);
+            pswControl.Gravity = Gravity.CenterHorizontal;
+            bodyFrameLayout.AddChidren(pswControl);
+            pswControl.InitControl();
+            pswControl.FinishInputEvent += (password) =>
             {
                 //鏍¢獙瀵嗙爜
-                this.DoAdjustPssword(value, msgControl);
+                this.DoAdjustPssword(password, pswControl);
             };
 
             if (formMode == FormMode.A楠岃瘉鍓嶅洖瀵嗙爜)
@@ -131,8 +119,8 @@
         /// 鏍¢獙瀵嗙爜
         /// </summary>
         /// <param name="i_Psw"></param>
-        /// <param name="msgControl"></param>
-        private void DoAdjustPssword(string i_Psw, NormalViewControl msgControl)
+        /// <param name="pswControl"></param>
+        private void DoAdjustPssword(string i_Psw, PswNumberInputControl pswControl)
         {
             if (formMode == FormMode.A鏂板缓瀵嗙爜)
             {
@@ -146,8 +134,7 @@
                 if (this.firstPssword != i_Psw)
                 {
                     //纭瀵嗙爜閿欒锛岃閲嶆柊璁剧疆
-                    msgControl.Visible = true;
-                    msgControl.TextID = R.MyInternationalizationString.SecondPswNotEqual2;
+                    pswControl.SetErrorMsg(Language.StringByID(R.MyInternationalizationString.SecondPswNotEqual2));
                     return;
                 }
                 UserCenterResourse.Option.PswAuthentication = i_Psw;
@@ -159,11 +146,22 @@
             {
                 if (UserCenterResourse.Option.PswAuthentication != i_Psw)
                 {
+                    UserCenterResourse.Option.PasswordInputCount--;
+                    if (UserCenterResourse.Option.PasswordInputCount <= 0)
+                    {
+                        //绠$悊鍛樿韩浠介獙璇佸け璐�,璇烽噸鏂扮櫥褰�
+                        string msg2 = Language.StringByID(R.MyInternationalizationString.uCheckAdministratorFailAndReload);
+                        this.ShowMassage(ShowMsgType.Tip, msg2);
+                        UserCenterLogic.ReLoginAgain(Common.Config.Instance.Account);
+                        return;
+                    }
                     //瀵嗙爜閿欒锛岃閲嶆柊杈撳叆
-                    msgControl.Visible = true;
-                    msgControl.TextID = R.MyInternationalizationString.uOldPsswordIsError;
+                    pswControl.SetErrorMsg(Language.StringByID(R.MyInternationalizationString.uOldPsswordIsError));
                     return;
                 }
+                //閲嶇疆鍓╀綑瀵嗙爜娆℃暟
+                UserCenterResourse.Option.ResetPasswordCount();
+
                 formMode = FormMode.A淇敼瀵嗙爜;
                 this.InitMiddleFrame();
             }
@@ -179,8 +177,7 @@
                 if (this.firstPssword != i_Psw)
                 {
                     //纭瀵嗙爜閿欒锛岃閲嶆柊璁剧疆
-                    msgControl.Visible = true;
-                    msgControl.TextID = R.MyInternationalizationString.SecondPswNotEqual2;
+                    pswControl.SetErrorMsg(Language.StringByID(R.MyInternationalizationString.SecondPswNotEqual2));
                     return;
                 }
                 UserCenterResourse.Option.PswAuthentication = i_Psw;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotAccountPasswordForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotAccountPasswordForm.cs
index 9c535f6..a093a28 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotAccountPasswordForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotAccountPasswordForm.cs
@@ -81,7 +81,7 @@
             var btnCode = new NormalViewControl(302, 127, true);
             btnCode.X = rowPhone.Right + Application.GetRealWidth(35);
             btnCode.Y = Application.GetRealHeight(23);
-            btnCode.Radius = (uint)Application.GetMinRealAverage(4);
+            btnCode.Radius = 4;
             btnCode.TextID = R.MyInternationalizationString.uGetVerificationCode;
             btnCode.TextColor = UserCenterColor.Current.White;
             btnCode.BackgroundColor = UserCenterColor.Current.TextOrangeColor;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotSecondaryPasswordForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotSecondaryPasswordForm.cs
index 8cfd9ac..8cb52a4 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotSecondaryPasswordForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Password/ForgotSecondaryPasswordForm.cs
@@ -81,7 +81,7 @@
             var btnCode = new NormalViewControl(302, 127, true);
             btnCode.X = rowPhone.Right + Application.GetRealWidth(35);
             btnCode.Y = Application.GetRealHeight(23);
-            btnCode.Radius = (uint)Application.GetMinRealAverage(4);
+            btnCode.Radius = 4;
             btnCode.TextID = R.MyInternationalizationString.uGetVerificationCode;
             btnCode.TextColor = UserCenterColor.Current.White;
             btnCode.BackgroundColor = UserCenterColor.Current.TextOrangeColor;
@@ -290,6 +290,7 @@
             this.CloseForm();
             //鎸囧畾鏂板缓瀵嗙爜妯″紡
             this.LoadFormMethodByName("EditorSecondaryPasswordForm", "SetNewPasswordFormMode");
+            this.LoadFormMethodByName("EditorGesturePasswordForm", "SetNewPasswordFormMode");
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs
index 1d9b16b..06aa559 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/LookRoomSettionForm.cs
@@ -224,7 +224,7 @@
                 frameBack.BackgroundColor = UserCenterColor.Current.White;
                 frameBack.Width = bodyFrameLayout.Width;
                 frameBack.Height = Application.GetRealHeight(1650);
-                frameBack.Radius = (uint)Application.GetMinRealAverage(20);
+                frameBack.Radius = 20;
                 frameTable.AddChidren(frameBack);
 
                 var listView = new VerticalListControl(23);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
index f7e7f35..434417d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Residence/ResidenceManagementForm.cs
@@ -513,13 +513,7 @@
             }
 
             //缂栬緫
-            var btnEditor = new NormalViewControl(Application.GetRealWidth(184), frameRow.Height, false);
-            btnEditor.BackgroundColor = 0xff4a4a4a;
-            btnEditor.TextSize = 12;
-            btnEditor.TextColor = UserCenterColor.Current.White;
-            btnEditor.TextAlignment = TextAlignment.Center;
-            btnEditor.TextID = R.MyInternationalizationString.uEditor;
-            frameRow.AddRightView(btnEditor);
+            var btnEditor = frameRow.AddEditorControl();
             btnEditor.ButtonClickEvent += (sender, e) =>
             {
                 var form = new EditorRoomInforForm();
@@ -531,13 +525,7 @@
             };
 
             //鍒犻櫎
-            var btnDelete = new NormalViewControl(Application.GetRealWidth(184), frameRow.Height, false);
-            btnDelete.BackgroundColor = 0xfff75858;
-            btnDelete.TextSize = 12;
-            btnDelete.TextColor = UserCenterColor.Current.White;
-            btnDelete.TextAlignment = TextAlignment.Center;
-            btnDelete.TextID = R.MyInternationalizationString.uDelete;
-            frameRow.AddRightView(btnDelete);
+            var btnDelete = frameRow.AddDeleteControl();
             btnDelete.ButtonClickEvent += (sender, e) =>
             {
                 //纭鍒犻櫎鎴块棿?
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddAlarmTargetTypeListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddAlarmTargetTypeListForm.cs
deleted file mode 100755
index 7f49657..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddAlarmTargetTypeListForm.cs
+++ /dev/null
@@ -1,279 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using ZigBee.Device;
-
-namespace Shared.Phone.UserCenter.Safety
-{
-    /// <summary>
-    /// 娣诲姞鎶ヨ鐩爣鑿滃崟鍒楄〃鐨勭敾闈�
-    /// </summary>
-    public class AddAlarmTargetTypeListForm : EditorCommonForm
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        /// <summary>
-        /// 闃插尯ID(杩欎釜涓滆タ浼间箮鏄敮涓�鐨�)
-        /// </summary>
-        private int zoonID = 0;
-        /// <summary>
-        /// 鍒楄〃鎺т欢
-        /// </summary>
-        private VerticalListControl listView = null;
-        /// <summary>
-        /// 鍏ㄩ儴璁惧淇℃伅
-        /// </summary>
-        private List<uRowInformation> listAllDeviceInfo = new List<uRowInformation>();
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖朹____________________________
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        /// <param name="i_zoonID">闃插尯ID</param>
-        public void ShowForm(int i_zoonID)
-        {
-            this.zoonID = i_zoonID;
-
-            //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddAlarmTarget));
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
-            this.InitMiddleFrame();
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        /// </summary>
-        private void InitMiddleFrame()
-        {
-            //娓呯┖bodyFrame
-            this.ClearBodyFrame();
-
-            //璁剧疆涓棿閮ㄥ垎淇℃伅
-            this.SetMiddleInfo();
-        }
-
-        /// <summary>
-        /// 璁剧疆涓棿閮ㄥ垎淇℃伅
-        /// </summary>
-        private void SetMiddleInfo()
-        {
-            HdlThreadLogic.Current.RunThread(() =>
-            {
-                //鑾峰彇璁惧鐨勬墍鏈夌被鍨嬶紝骞舵暣鐞嗘垚姣忎竴琛岀殑鏁版嵁
-                this.GetAllListData();
-                if (listAllDeviceInfo.Count == 0)
-                {
-                    return;
-                }
-
-                Application.RunOnMainThread(() =>
-                {
-                    int realHeight = (ControlCommonResourse.ListViewRowHeight + Application.GetRealHeight(29)) * listAllDeviceInfo.Count + Application.GetRealHeight(23);
-                    if (realHeight > bodyFrameLayout.Height + Application.GetRealHeight(6))
-                    {
-                        //璁$畻鐪熷疄楂樺害
-                        realHeight = bodyFrameLayout.Height + Application.GetRealHeight(6);
-                    }
-                    this.listView = new VerticalListControl(29);
-                    listView.Y = Application.GetRealHeight(-6);
-                    listView.Height = realHeight;
-                    listView.BackgroundColor = UserCenterColor.Current.White;
-                    bodyFrameLayout.AddChidren(this.listView);
-
-                    //娣诲姞璁惧鐨勮
-                    int count = listAllDeviceInfo.Count - 1;
-                    for (int i = 0; i < listAllDeviceInfo.Count; i++)
-                    {
-                        this.AddRowLaout(listAllDeviceInfo[i], i != count);
-                    }
-                });
-            });
-        }
-
-        #endregion
-
-        #region 鈻� 娣诲姞琛宊____________________________
-
-        /// <summary>
-        /// 娣诲姞琛�
-        /// </summary>
-        /// <param name="uRow"></param>
-        /// <param name="addLine"></param>
-        private void AddRowLaout(uRowInformation uRow, bool addLine)
-        {
-            var rowlayout = new FrameRowControl(listView.rowSpace / 2);
-            listView.AddChidren(rowlayout);
-            //鍥炬爣
-            var btnIcon = rowlayout.AddLeftIcon(81);
-            btnIcon.UnSelectedImagePath = uRow.IconUnSelectPath;
-
-            //璁惧鍚�
-            var txtDevice = rowlayout.AddLeftCaption(uRow.TextName, 750);
-            txtDevice.Text = uRow.TextName;
-            txtDevice.TextSize = 15;
-            //鍚戝彸鍥炬爣
-            rowlayout.AddRightArrow();
-            if (addLine == true)
-            {
-                //搴曠嚎
-                rowlayout.AddBottomLine();
-            }
-
-            //鍗曞嚮浜嬩欢
-            rowlayout.ButtonClickEvent += (sender, e) =>
-            {
-                if (uRow.listScene == null)
-                {
-                    //璁惧鐨勪竴瑙�
-                    var form = new AddDeviceAlarmTargetListForm();
-                    form.AddForm(this.zoonID, uRow.TextName, uRow.listDevice);
-                }
-                else
-                {
-                    //鍦烘櫙鐨勪竴瑙�
-                    var form = new AddSceneAlarmTargetListForm();
-                    form.AddForm(this.zoonID, uRow.listScene);
-                }
-            };
-        }
-
-        #endregion
-
-        #region 鈻� 涓�鑸柟娉昣__________________________
-
-        /// <summary>
-        /// 鑾峰彇璁惧鐨勬墍鏈夌被鍨嬶紝骞舵暣鐞嗘垚姣忎竴琛岀殑鏁版嵁
-        /// </summary>
-        private void GetAllListData()
-        {
-            Dictionary<string, uRowInformation> dic = new Dictionary<string, uRowInformation>();
-            this.listAllDeviceInfo.Clear();
-
-            var listDevice = Common.LocalDevice.Current.listAllDevice;
-            foreach (CommonDevice device in listDevice)
-            {
-                //濡傛灉閭d釜璁惧宸茬粡娣诲姞浜嗭紝鍒欎笉鍐嶆樉绀�
-                if (HdlSafeguardLogic.Current.IsAlarmDeviceExist(this.zoonID, device) == true)
-                {
-                    continue;
-                }
-                if (device.Type == DeviceType.AirSwitch//绌烘皵寮�鍏�
-                    || device.Type == DeviceType.DimmableLight//璋冨厜鍣�
-                    || device.Type == DeviceType.ColorDimmableLight//褰╃伅
-                    || device.Type == DeviceType.OnOffOutput//缁х數鍣�
-                    || device.Type == DeviceType.WindowCoveringDevice)//绐楀笜
-                {
-                    //鏄剧ず鏂囨湰
-                    string KeysName = Common.LocalDevice.Current.GetDeviceObjectText(new List<CommonDevice>() { device });
-
-                    uRowInformation infoRow = null;
-                    if (dic.ContainsKey(KeysName) == false)
-                    {
-                        //鍥炬爣鍦板潃:鐐逛寒
-                        string IconSelect = string.Empty;
-                        //鍥炬爣鍦板潃:鏈偣浜�
-                        string IconUnSelect = string.Empty;
-                        Common.LocalDevice.Current.GetDeviceBeloneIcon(new List<CommonDevice>() { device }, ref IconUnSelect, ref IconSelect);
-
-                        //绗竴娆℃椂锛岃缃畠鐨勬樉绀烘枃鏈強璁剧疆瀹冪殑鍥炬爣
-                        infoRow = new uRowInformation();
-                        dic[KeysName] = infoRow;
-                        infoRow.TextName = KeysName;
-                        infoRow.IconSelectPath = IconSelect;
-                        infoRow.IconUnSelectPath = IconUnSelect;
-
-                        this.listAllDeviceInfo.Add(infoRow);
-                    }
-                    infoRow = dic[KeysName];
-
-                    //璁惧鏀堕泦
-                    var info = new uDeviceInfo
-                    {
-                        RoomName = Shared.Common.Room.CurrentRoom.GetRoomNameByDevice(device),
-                        Device = device,
-                        MainKeys = device.DeviceAddr + device.DeviceEpoint.ToString()
-                    };
-                    infoRow.listDevice.Add(info);
-                }
-            }
-
-            //鑾峰彇鍦烘櫙
-            Common.SceneRoomUI.GetAllSceneRoomUIList();
-            List<Common.SceneRoomUI> listScene = Common.SceneRoomUI.AllSceneRoomUIList;
-            if (listScene.Count == 0)
-            {
-                return;
-            }
-            //鑾峰彇鏈湴瀹夐槻鐨勫満鏅�
-            Dictionary<int, string> dicScene = HdlSafeguardLogic.Current.GetLocalSceneByZoneID(this.zoonID);
-
-            var SceneInfo = new uRowInformation();
-            SceneInfo.listScene = new List<Common.SceneRoomUI>();
-            foreach (var data in listScene)
-            {
-                //濡傛灉閭d釜鍦烘櫙宸茬粡娣诲姞浜嗭紝鍒欎笉鍐嶆樉绀�
-                if (dicScene.ContainsKey(data.sceneUI.Id) == true)
-                {
-                    continue;
-                }
-                SceneInfo.listScene.Add(data);
-            }
-            if (SceneInfo.listScene.Count > 0)
-            {
-                SceneInfo.TextName = Language.StringByID(R.MyInternationalizationString.uScence);
-                SceneInfo.IconUnSelectPath = "Item/Scene.png";
-                this.listAllDeviceInfo.Add(SceneInfo);
-            }
-        }
-
-        #endregion
-
-        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
-
-        /// <summary>
-        /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
-        /// </summary>
-        public override int FormActionAgainEvent()
-        {
-            //閲嶆柊鍒锋柊鐣岄潰
-            this.InitMiddleFrame();
-
-            return 1;
-        }
-
-        #endregion
-
-        #region 鈻� 鑷畾涔夌粨鏋勪綋_______________________
-
-        /// <summary>
-        /// 姣忎竴琛岀殑琛屾暟鎹�
-        /// </summary>
-        private class uRowInformation
-        {
-            /// <summary>
-            /// 鍥炬爣鍦板潃:鏈偣浜�
-            /// </summary>
-            public string IconUnSelectPath = string.Empty;
-            /// <summary>
-            /// 鍥炬爣鍦板潃:鐐逛寒
-            /// </summary>
-            public string IconSelectPath = string.Empty;
-            /// <summary>
-            /// 鏄剧ず鐨勫唴瀹�
-            /// </summary>
-            public string TextName = string.Empty;
-            /// <summary>
-            /// 璁惧鍒楄〃淇℃伅
-            /// </summary>
-            public List<uDeviceInfo> listDevice = new List<uDeviceInfo>();
-            /// <summary>
-            /// 鍦烘櫙
-            /// </summary>
-            public List<Common.SceneRoomUI> listScene = null;
-        }
-        #endregion
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddCoerceContactForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddCoerceContactForm.cs
deleted file mode 100755
index e354e1d..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddCoerceContactForm.cs
+++ /dev/null
@@ -1,158 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-using ZigBee.Device;
-
-namespace Shared.Phone.UserCenter.Safety
-{
-    /// <summary>
-    /// 娣诲姞鑳佽揩鑱旂郴浜�
-    /// </summary>
-    public class AddCoerceContactForm : EditorCommonForm
-    {
-        /// <summary>
-        /// 淇℃伅鎻愮ず鎺т欢
-        /// </summary>
-        private NormalViewControl txtMsg = null;
-        /// <summary>
-        /// 鐢佃瘽鍒楄〃
-        /// </summary>
-        private List<Safeguard.PushTargetInfo> listPhoneData = null;
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        /// <param name="listData"></param>
-        public void ShowForm(List<Safeguard.PushTargetInfo> listData)
-        {
-            this.listPhoneData = listData;
-
-            //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddContactPersion));
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
-            this.InitMiddleFrame();
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        /// </summary>
-        private void InitMiddleFrame()
-        {
-            //娓呯┖bodyFrame
-            this.ClearBodyFrame();
-
-            var row = new RowLayout();
-            row.Height = ControlCommonResourse.ListViewRowHeight;
-            bodyFrameLayout.AddChidren(row);
-
-            //鑱旂郴鐢佃瘽
-            //var txtPhone = new PhoneAreaControl();
-            //txtPhone.Gravity = Gravity.CenterVertical;
-            //row.AddChidren(txtPhone);
-            //txtPhone.InitControl(this);
-            //txtPhone.txtPhone.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputContactWay);
-
-            //鎻愮ず淇℃伅
-            this.txtMsg = new NormalViewControl(800, true);
-            txtMsg.X = ControlCommonResourse.XXLeft;
-            txtMsg.Y = row.Bottom + Application.GetRealHeight(5);
-            txtMsg.TextColor = UserCenterColor.Current.Red;
-            bodyFrameLayout.AddChidren(txtMsg);
-
-            //瀹屾垚
-            //var btnfinish = new TopLayoutFinshView();
-            //topFrameLayout.AddChidren(btnfinish);
-            //btnfinish.MouseUpEventHandler += (sender, e) =>
-            //{
-            //    //鎵ц淇濆瓨鎵嬫満鎿嶄綔
-            //    this.SavePhoneNumber(txtPhone.AreaCode, txtPhone.PhoneNumber);
-            //};
-        }
-
-        /// <summary>
-        /// 鎵ц淇濆瓨鎵嬫満鎿嶄綔
-        /// </summary>
-        private void SavePhoneNumber(string areaCode, string phoneNum)
-        {
-            //鎵嬫満鍙锋娴�
-            if (this.CheckPhoneNumber(areaCode, phoneNum) == false)
-            {
-                return;
-            }
-
-            //鍙樻洿鑱旂郴浜烘柟寮�
-            this.ChangedCoercePhoneNumber(areaCode, phoneNum);
-        }
-
-        /// <summary>
-        /// 鍙樻洿鑱旂郴浜烘柟寮�
-        /// </summary>
-        /// <param name="areaCode"></param>
-        /// <param name="phoneNum"></param>
-        private async void ChangedCoercePhoneNumber(string areaCode, string phoneNum)
-        {
-            Dictionary<string, string> dicPhone = new Dictionary<string, string>();
-            dicPhone[phoneNum] = areaCode;
-
-            //鍙樻洿
-            var result = await HdlSafeguardLogic.Current.SetCoercePhoneNumber(dicPhone);
-            if (result == false)
-            {
-                return;
-            }
-
-            Application.RunOnMainThread(() =>
-            {
-                var data = new ZigBee.Device.Safeguard.PushTargetInfo();
-                data.PushNumber = areaCode + "-" + phoneNum;
-                this.listPhoneData.Add(data);
-
-                //娣诲姞鏄庣粏琛�
-                this.LoadFormMethodByName("CoerceContactSettionForm", "AddPhoneNumRowLayout", data);
-
-                //鍒锋柊涓荤晫闈�
-                this.LoadFormMethodByName("CoercePasswordMainForm", "InitMiddleFrame");
-
-                this.CloseForm();
-            });
-        }
-
-        /// <summary>
-        /// 妫�娴嬫墜鏈哄彿
-        /// </summary>
-        /// <param name="areaCode"></param>
-        /// <param name="phone"></param>
-        private bool CheckPhoneNumber(string areaCode, string phone)
-        {
-            //杈撳叆涓虹┖
-            if (phone == string.Empty)
-            {
-                //璇疯緭鍏ヨ仈绯绘柟寮�
-                txtMsg.Text = Language.StringByID(R.MyInternationalizationString.uPleaseInputContactWay);
-                return false;
-            }
-
-            //妫�娴嬫墜鏈哄彿鏍煎紡
-            if (HdlCheckLogic.Current.CheckPhoneNumber(phone, areaCode) == false)
-            {
-                //杩欎笉鏄竴涓湁鏁堢殑鎵嬫満鍙�
-                txtMsg.Text = Language.StringByID(R.MyInternationalizationString.uThisIsNotPhoneNumberType);
-                return false;
-            }
-            foreach (var data in this.listPhoneData)
-            {
-                if (data.PushNumber == areaCode + "-" + phone)
-                {
-                    //鑱旂郴鏂瑰紡宸茬粡瀛樺湪
-                    txtMsg.Text = Language.StringByID(R.MyInternationalizationString.uThePhoneNumIsRepeat);
-                    return false;
-                }
-            }
-
-            txtMsg.Text = string.Empty;
-
-            return true;
-        }
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs
deleted file mode 100755
index 99b47a6..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs
+++ /dev/null
@@ -1,307 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-using ZigBee.Device;
-
-namespace Shared.Phone.UserCenter.Safety
-{
-    /// <summary>
-    /// 娣诲姞鎶ヨ鐩爣鎸囧畾璁惧绫诲瀷鐨勮澶囧垪琛�
-    /// </summary>
-    public class AddDeviceAlarmTargetListForm : EditorCommonForm
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        /// <summary>
-        /// 鍒楄〃鎺т欢
-        /// </summary>
-        private VerticalListControl listView = null;
-        /// <summary>
-        /// 闃插尯ID(杩欎釜涓滆タ浼间箮鏄敮涓�鐨�)
-        /// </summary>
-        private int zoonID = 0;
-        /// <summary>
-        /// 璁惧鍒楄〃
-        /// </summary>
-        private List<uDeviceInfo> listAllDevice = null;
-        /// <summary>
-        /// 闇�瑕佹坊鍔犵殑鎶ヨ璁惧
-        /// </summary>
-        private Dictionary<string, TaskInfoData> dicSaveDevice = new Dictionary<string, TaskInfoData>();
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖朹____________________________
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        /// <param name="i_zoonID">闃插尯ID</param>
-        /// <param name="i_deviceText">璁惧绫诲瀷鐨勫悕绉�</param>
-        /// <param name="i_listDevice">璁惧淇℃伅</param>
-        public void ShowForm(int i_zoonID, string i_deviceText, List<uDeviceInfo> i_listDevice)
-        {
-            this.zoonID = i_zoonID;
-            this.listAllDevice = i_listDevice;
-
-            //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(i_deviceText);
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
-            this.InitMiddleFrame(i_deviceText);
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        /// </summary>
-        /// <param name="titleText">鍒楄〃澶撮儴鍚嶇О</param>
-        private void InitMiddleFrame(string titleText)
-        {
-            //娓呯┖bodyFrame
-            this.ClearBodyFrame();
-
-            //瀹屾垚
-            var btnfinish = new BottomClickButton();
-            btnfinish.TextID = R.MyInternationalizationString.uFinish;
-            bodyFrameLayout.AddChidren(btnfinish);
-            btnfinish.ButtonClickEvent += (sender, e) =>
-            {
-                //淇濆瓨閫夋嫨鐨勮澶�
-                this.DoSaveSelectDeviceAsync();
-            };
-
-            //XXX鍒楄〃
-            var frameTemp = new FrameLayout();
-            frameTemp.Height = Application.GetRealHeight(60 + 52);
-            frameTemp.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(frameTemp);
-
-            var btnTitle = new NormalViewControl(850, 60, true);
-            btnTitle.X = ControlCommonResourse.XXLeft;
-            btnTitle.Y = Application.GetRealHeight(52);
-            btnTitle.TextColor = UserCenterColor.Current.TextColor2;
-            btnTitle.Text = titleText + Language.StringByID(R.MyInternationalizationString.uList);
-            btnTitle.TextSize = 15;
-            frameTemp.AddChidren(btnTitle);
-
-            this.listView = new VerticalListControl(29);
-            listView.Y = frameTemp.Bottom;
-            listView.BackgroundColor = UserCenterColor.Current.White;
-            listView.Height = btnfinish.Y - ControlCommonResourse.BottomButtonAndListViewSpace - frameTemp.Bottom;
-            bodyFrameLayout.AddChidren(this.listView);
-
-            //璁剧疆涓儴淇℃伅
-            this.SetMiddleFrameInfo();
-        }
-
-        /// <summary>
-        /// 璁剧疆涓儴淇℃伅
-        /// </summary>
-        private void SetMiddleFrameInfo()
-        {
-            HdlThreadLogic.Current.RunThread(() =>
-            {
-                if (this.Parent == null)
-                {
-                    return;
-                }
-                Application.RunOnMainThread(() =>
-                {
-                    int count = listAllDevice.Count - 1;
-                    for (int i = 0; i < listAllDevice.Count; i++)
-                    {
-                        //濡傛灉閭d釜璁惧宸茬粡娣诲姞浜嗭紝鍒欎笉鍐嶆樉绀�
-                        if (HdlSafeguardLogic.Current.IsAlarmDeviceExist(this.zoonID, listAllDevice[i].Device) == true)
-                        {
-                            continue;
-                        }
-                        //娣诲姞琛岀洰鏍�
-                        this.AddRowLayout(listAllDevice[i], i != count);
-                    }
-                    if (listView.ChildrenCount > 0)
-                    {
-                        int realHeight = (listView.GetChildren(listView.ChildrenCount - 1).Height) * listView.ChildrenCount + Application.GetRealHeight(23);
-                        if (realHeight < listView.Height)
-                        {
-                            //璋冩暣鐪熷疄楂樺害
-                            listView.Height = realHeight;
-                        }
-                    }
-                });
-            });
-        }
-
-        #endregion
-
-        #region 鈻� 娣诲姞琛岀洰鏍嘷________________________
-
-        /// <summary>
-        /// 娣诲姞琛岀洰鏍�
-        /// </summary>
-        /// <param name="deviceInfo"></param>
-        /// <param name="addLine"></param>
-        private void AddRowLayout(uDeviceInfo deviceInfo, bool addLine)
-        {
-            var row = new DeviceRoomControl(deviceInfo.Device, listView.rowSpace / 2);
-            listView.AddChidren(row);
-            row.InitControl();
-            //娣诲姞鍚戝彸鐨勫浘鏍�
-            row.frameTable.AddRightArrow();
-            //搴曠嚎
-            if (addLine == true)
-            {
-                row.frameTable.AddBottomLine();
-            }
-
-            //鐘舵�佹樉绀�
-            var btnStatu = row.frameTable.AddMostRightView("", 400);
-            string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(deviceInfo.Device);
-
-            row.frameTable.ButtonClickEvent += (sender, e) =>
-            {
-                List<Safeguard.TaskListInfo> listTaskinfo = null;
-                if (dicSaveDevice.ContainsKey(mainKeys) == true)
-                {
-                    //鍙栫紦瀛樹腑杩樻湭淇濆瓨鐨勬暟鎹�
-                    listTaskinfo = dicSaveDevice[mainKeys].listInfos;
-                }
-
-                if (deviceInfo.Device.Type == DeviceType.DimmableLight//璋冨厜鍣�
-                    || deviceInfo.Device.Type == DeviceType.ColorDimmableLight)//褰╃伅
-                {
-                    var form = new LightAlarmSettionForm();
-                    form.AddForm(deviceInfo.Device, listTaskinfo);
-                    form.ActionFormClose += (statuText, listInfo) =>
-                    {
-                        btnStatu.Text = statuText;
-                        //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
-                        this.AddAlarmSettionDataToMemory(deviceInfo, listInfo);
-                    };
-                }
-                else if (deviceInfo.Device.Type == DeviceType.WindowCoveringDevice)//绐楀笜
-                {
-                    var form = new CurtainAlarmSettionForm();
-                    form.AddForm(deviceInfo.Device, listTaskinfo);
-                    form.ActionFormClose += (statuText, listInfo) =>
-                    {
-                        btnStatu.Text = statuText;
-                        //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
-                        this.AddAlarmSettionDataToMemory(deviceInfo, listInfo);
-                    };
-                }
-                else
-                {
-                    //鍏朵粬鐩存帴褰掍负寮�鍏崇被
-                    var form = new SwitchAlarmSettionForm();
-                    form.AddForm(deviceInfo.Device, listTaskinfo);
-                    form.ActionFormClose += (statuText, listInfo) =>
-                    {
-                        btnStatu.Text = statuText;
-                        //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
-                        this.AddAlarmSettionDataToMemory(deviceInfo, listInfo);
-                    };
-                }
-            };
-        }
-
-        /// <summary>
-        /// 灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
-        /// </summary>
-        /// <param name="deviceInfo"></param>
-        /// <param name="listInfo"></param>
-        private void AddAlarmSettionDataToMemory(uDeviceInfo deviceInfo, List<Safeguard.TaskListInfo> listInfo)
-        {
-            string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(deviceInfo.Device);
-            if (listInfo == null || listInfo.Count == 0)
-            {
-                //鎸囧畾涓烘棤鍔ㄤ綔妯″紡
-                if (this.dicSaveDevice.ContainsKey(mainKeys) == true)
-                {
-                    this.dicSaveDevice.Remove(mainKeys);
-                }
-            }
-            else
-            {
-                //纭娣诲姞鍔ㄤ綔
-                var data = new TaskInfoData();
-                this.dicSaveDevice[mainKeys] = data;
-                data.MacAddress = deviceInfo.Device.DeviceAddr;
-                data.Epoint = deviceInfo.Device.DeviceEpoint;
-                data.listInfos.AddRange(listInfo);
-
-                listInfo = null;
-            }
-        }
-
-        #endregion
-
-        #region 鈻� 淇濆瓨閫夋嫨鐨勮澶嘷____________________
-
-        /// <summary>
-        /// 淇濆瓨閫夋嫨鐨勮澶�
-        /// </summary>
-        private async void DoSaveSelectDeviceAsync()
-        {
-            if (this.dicSaveDevice.Count == 0)
-            {
-                Application.RunOnMainThread(() =>
-                {
-                    this.CloseForm();
-                });
-                return;
-            }
-
-            var listAction = new List<Safeguard.AlarmActionObj>();
-            foreach (var data in this.dicSaveDevice.Values)
-            {
-                var actionObj = new Safeguard.AlarmActionObj();
-                actionObj.DeviceAddr = data.MacAddress;
-                actionObj.Epoint = data.Epoint;
-                actionObj.Type = 0;
-                actionObj.TaskList = data.listInfos;
-                listAction.Add(actionObj);
-            }
-            //鎵撳紑杩涘害鏉�
-            this.ShowProgressBar();
-
-            //娣诲姞鎶ヨ鐩爣鍒板畨闃�
-            bool success = await HdlSafeguardLogic.Current.AddAlarmTagetToSafety(this.zoonID, listAction);
-            //鍏抽棴杩涘害鏉�
-            this.CloseProgressBar();
-
-            if (success == true)
-            {
-                Application.RunOnMainThread(() =>
-                {
-                    //鍏抽棴鑷韩
-                    this.CloseForm();
-                });
-            }
-        }
-
-        #endregion
-
-        #region 鈻� 缁撴瀯浣揰____________________________
-
-        /// <summary>
-        /// 鎶ヨ鐩爣鏁版嵁
-        /// </summary>
-        private class TaskInfoData
-        {
-            /// <summary>
-            /// MAC鍦板潃
-            /// </summary>
-            public string MacAddress = string.Empty;
-            /// <summary>
-            /// 绔彛鍙�
-            /// </summary>
-            public int Epoint = 0;
-            /// <summary>
-            /// 鎶ヨ鍔ㄤ綔
-            /// </summary>
-            public List<Safeguard.TaskListInfo> listInfos = new List<Safeguard.TaskListInfo>();
-        }
-
-        #endregion
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddSceneAlarmTargetListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddSceneAlarmTargetListForm.cs
deleted file mode 100755
index 7aea3f8..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddSceneAlarmTargetListForm.cs
+++ /dev/null
@@ -1,166 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-using ZigBee.Device;
-
-namespace Shared.Phone.UserCenter.Safety
-{
-    /// <summary>
-    /// 娣诲姞鍦烘櫙鐨勫垪琛ㄧ晫闈�
-    /// </summary>
-    public class AddSceneAlarmTargetListForm : EditorCommonForm
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        /// <summary>
-        /// 鍒楄〃鎺т欢
-        /// </summary>
-        private VerticalListControl listView = null;
-        /// <summary>
-        /// 闃插尯ID(杩欎釜涓滆タ浼间箮鏄敮涓�鐨�)
-        /// </summary>
-        private int zoonID = 0;
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖朹____________________________
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        /// <param name="i_zoonID">闃插尯ID</param>
-        /// <param name="i_listScene">鐜板瓨鐨勫満鏅�</param>
-        public void ShowForm(int i_zoonID, List<Common.SceneRoomUI> i_listScene)
-        {
-            this.zoonID = i_zoonID;
-
-            //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uScence));
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
-            this.InitMiddleFrame(i_listScene);
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        /// </summary>
-        /// <param name="listScene">鐜板瓨鐨勫満鏅�</param>
-        private void InitMiddleFrame(List<Common.SceneRoomUI> listScene)
-        {
-            //娓呯┖bodyFrame
-            this.ClearBodyFrame();
-
-            //瀹屾垚
-            var btnfinish = new BottomClickButton();
-            btnfinish.TextID = R.MyInternationalizationString.uFinish;
-            bodyFrameLayout.AddChidren(btnfinish);
-            btnfinish.ButtonClickEvent += (sender, e) =>
-            {
-                //淇濆瓨鍦烘櫙鍒板畨闃�
-                this.SaveSceneToSafety();
-            };
-
-            this.listView = new VerticalListControl(29);
-            listView.Y = Application.GetRealHeight(-6);
-            listView.Height = btnfinish.Y - ControlCommonResourse.BottomButtonAndListViewSpace + Application.GetRealHeight(6);
-            listView.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(listView);
-
-            HdlThreadLogic.Current.RunThread(() =>
-            {
-                //鑾峰彇鏈湴瀹夐槻鐨勫満鏅�
-                Dictionary<int, string> dicScene = HdlSafeguardLogic.Current.GetLocalSceneByZoneID(this.zoonID);
-                if (this.Parent == null)
-                {
-                    return;
-                }
-                Application.RunOnMainThread(() =>
-                {
-                    int count = listScene.Count - 1;
-                    for (int i = 0; i < listScene.Count; i++)
-                    {
-                        //濡傛灉瀹夐槻閲岄潰宸茬粡娣诲姞鏈夛紝鍒欎笉鍐嶆樉绀�
-                        if (dicScene.ContainsKey(listScene[i].sceneUI.Id) == true)
-                        {
-                            continue;
-                        }
-                        var row = new SceneSimpleSelectControl(listScene[i].sceneUI, listView.rowSpace / 2);
-                        listView.AddChidren(row);
-                        row.InitControl();
-                        if (i != count)
-                        {
-                            //搴曠嚎
-                            row.AddBottomLine();
-                        }
-                    }
-                    if (listView.ChildrenCount > 0)
-                    {
-                        int realHeight = (listView.GetChildren(listView.ChildrenCount - 1).Height) * listView.ChildrenCount + Application.GetRealHeight(23);
-                        if (realHeight < listView.Height)
-                        {
-                            //璋冩暣鐪熷疄楂樺害
-                            listView.Height = realHeight;
-                        }
-                    }
-                });
-            });
-        }
-
-        #endregion
-
-        #region 鈻� 淇濆瓨鍦烘櫙___________________________
-
-        /// <summary>
-        /// 淇濆瓨鍦烘櫙鍒板畨闃�
-        /// </summary>
-        private async void SaveSceneToSafety()
-        {
-            var listAction = new List<Safeguard.AlarmActionObj>();
-
-            for (int i = 0; ; i++)
-            {
-                var myView = this.listView.GetChildren(i);
-                if (myView == null)
-                {
-                    break;
-                }
-                var row = (SceneSimpleSelectControl)myView;
-                if (row.IsSelected == false)
-                {
-                    continue;
-                }
-                var actionObj = new Safeguard.AlarmActionObj();
-                actionObj.Type = 1;
-                actionObj.ScenesId = row.Scene.Id;
-                listAction.Add(actionObj);
-            }
-            if (listAction.Count == 0)
-            {
-                Application.RunOnMainThread(() =>
-                {
-                    //鍏抽棴鑷韩
-                    this.CloseForm();
-                });
-                return;
-            }
-
-            //鎵撳紑杩涘害鏉�
-            this.ShowProgressBar();
-
-            //娣诲姞鎶ヨ鐩爣鍒板畨闃�
-            bool success = await HdlSafeguardLogic.Current.AddAlarmTagetToSafety(this.zoonID, listAction);
-            //鍏抽棴杩涘害鏉�
-            this.CloseProgressBar();
-
-            if (success == true)
-            {
-                Application.RunOnMainThread(() =>
-                {
-                    //鍏抽棴鑷韩
-                    this.CloseForm();
-                });
-            }
-        }
-        #endregion
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddDeviceForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddDeviceForm.cs
new file mode 100755
index 0000000..4ee9363
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddDeviceForm.cs
@@ -0,0 +1,266 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 娣诲姞鎶ヨ鐩爣(璁惧)鐨勫垪琛ㄧ晫闈�
+    /// </summary>
+    public class AlarmTargetAddDeviceForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鍒楄〃鎺т欢
+        /// </summary>
+        private VerticalListControl listView = null;
+        /// <summary>
+        /// 闃插尯ID(杩欎釜涓滆タ浼间箮鏄敮涓�鐨�)
+        /// </summary>
+        private int zoonID = 0;
+        /// <summary>
+        /// 璁惧鍒楄〃
+        /// </summary>
+        private List<CommonDevice> listAllDevice = null;
+        /// <summary>
+        /// 闇�瑕佹坊鍔犵殑鎶ヨ璁惧
+        /// </summary>
+        private Dictionary<string, TaskInfoData> dicSaveDevice = new Dictionary<string, TaskInfoData>();
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_zoonID">闃插尯ID</param>
+        /// <param name="i_deviceText">璁惧绫诲瀷鐨勫悕绉�</param>
+        /// <param name="i_listDevice">璁惧淇℃伅</param>
+        public void ShowForm(int i_zoonID, string i_deviceText, List<CommonDevice> i_listDevice)
+        {
+            this.zoonID = i_zoonID;
+            this.listAllDevice = i_listDevice;
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(i_deviceText);
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame(i_deviceText);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        /// <param name="titleText">鍒楄〃澶撮儴鍚嶇О</param>
+        private void InitMiddleFrame(string titleText)
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            var frameBack = new FrameLayout();
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            frameBack.Height = Application.GetRealHeight(8);
+            bodyFrameLayout.AddChidren(frameBack);
+
+            this.listView = new VerticalListControl(12);
+            listView.Y = frameBack.Bottom;
+            listView.BackgroundColor = UserCenterColor.Current.White;
+            listView.Height = bodyFrameLayout.Height - frameBack.Bottom;
+            bodyFrameLayout.AddChidren(listView);
+
+            //瀹屾垚
+            var btnfinish = new BottomClickButton();
+            btnfinish.TextID = R.MyInternationalizationString.uFinish;
+            bodyFrameLayout.AddChidren(btnfinish);
+            btnfinish.ButtonClickEvent += (sender, e) =>
+            {
+                //淇濆瓨閫夋嫨鐨勮澶�
+                this.DoSaveSelectDeviceAsync();
+            };
+
+            HdlThreadLogic.Current.RunMainInThread(() =>
+            {
+                int count = listAllDevice.Count - 1;
+                for (int i = 0; i < listAllDevice.Count; i++)
+                {
+                    //濡傛灉閭d釜璁惧宸茬粡娣诲姞浜嗭紝鍒欎笉鍐嶆樉绀�
+                    if (HdlSafeguardLogic.Current.IsAlarmDeviceExist(this.zoonID, listAllDevice[i]) == true)
+                    {
+                        continue;
+                    }
+                    //娣诲姞琛岀洰鏍�
+                    this.AddRowLayout(listAllDevice[i], i != count);
+                }
+                //璋冩暣鐪熷疄楂樺害
+                listView.AdjustRealHeight(Application.GetRealHeight(23));
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞琛岀洰鏍嘷________________________
+
+        /// <summary>
+        /// 娣诲姞琛岀洰鏍�
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="addLine"></param>
+        private void AddRowLayout(CommonDevice device, bool addLine)
+        {
+            string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
+
+            var rowContr = new FrameRowControl(listView.rowSpace / 2);
+            listView.AddChidren(rowContr);
+
+            //鍥炬爣
+            var btnIcon = rowContr.AddLeftIcon(81);
+            Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, device);
+            //璁惧鍚�
+            var btnName = rowContr.AddLeftCaption(Common.LocalDevice.Current.GetDeviceEpointName(device), 700);
+            btnName.TextSize = 15;
+            //鍙崇澶�
+            rowContr.AddRightArrow();
+            if (addLine == true)
+            {
+                //搴曠嚎
+                rowContr.AddBottomLine();
+            }
+            //鐘舵�佹樉绀�
+            var btnStatu = rowContr.AddMostRightView("", 500);
+            rowContr.ButtonClickEvent += (sender, e) =>
+            {
+                List<Safeguard.TaskListInfo> listTaskinfo = null;
+                if (dicSaveDevice.ContainsKey(mainKeys) == true)
+                {
+                    //鍙栫紦瀛樹腑杩樻湭淇濆瓨鐨勬暟鎹�
+                    listTaskinfo = dicSaveDevice[mainKeys].listInfos;
+                }
+
+                if (device.Type == DeviceType.DimmableLight//璋冨厜鍣�
+                    || device.Type == DeviceType.ColorDimmableLight)//褰╃伅
+                {
+                    var form = new AlarmTargetStatuSelectLightForm();
+                    form.AddForm(device, listTaskinfo);
+                    form.FinishSelectEvent += (statuText, listInfo) =>
+                    {
+                        btnStatu.Text = statuText;
+                        //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
+                        this.AddAlarmSettionDataToMemory(device, listInfo);
+                    };
+                }
+                else if (device.Type == DeviceType.WindowCoveringDevice)//绐楀笜
+                {
+                    var form = new AlarmTargetStatuSelectCurtainForm();
+                    form.AddForm(device, listTaskinfo);
+                    form.FinishSelectEvent += (statuText, listInfo) =>
+                    {
+                        btnStatu.Text = statuText;
+                        //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
+                        this.AddAlarmSettionDataToMemory(device, listInfo);
+                    };
+                }
+                else
+                {
+                    //鍏朵粬鐩存帴褰掍负寮�鍏崇被
+                    var form = new AlarmTargetStatuSelectSwitchForm();
+                    form.AddForm(device, listTaskinfo);
+                    form.FinishSelectEvent += (statuText, listInfo) =>
+                    {
+                        btnStatu.Text = statuText;
+                        //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
+                        this.AddAlarmSettionDataToMemory(device, listInfo);
+                    };
+                }
+            };
+        }
+
+        /// <summary>
+        /// 灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
+        /// </summary>
+        /// <param name="deviceInfo"></param>
+        /// <param name="listInfo"></param>
+        private void AddAlarmSettionDataToMemory(CommonDevice device, List<Safeguard.TaskListInfo> listInfo)
+        {
+            string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
+            if (listInfo == null || listInfo.Count == 0)
+            {
+                //鎸囧畾涓烘棤鍔ㄤ綔妯″紡
+                if (this.dicSaveDevice.ContainsKey(mainKeys) == true)
+                {
+                    this.dicSaveDevice.Remove(mainKeys);
+                }
+            }
+            else
+            {
+                //纭娣诲姞鍔ㄤ綔
+                var data = new TaskInfoData();
+                this.dicSaveDevice[mainKeys] = data;
+                data.MacAddress = device.DeviceAddr;
+                data.Epoint = device.DeviceEpoint;
+                data.listInfos.AddRange(listInfo);
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 淇濆瓨閫夋嫨鐨勮澶嘷____________________
+
+        /// <summary>
+        /// 淇濆瓨閫夋嫨鐨勮澶�
+        /// </summary>
+        private async void DoSaveSelectDeviceAsync()
+        {
+            if (this.dicSaveDevice.Count == 0)
+            {
+                this.CloseForm();
+                return;
+            }
+
+            var listAction = new List<Safeguard.AlarmActionObj>();
+            foreach (var data in this.dicSaveDevice.Values)
+            {
+                var actionObj = new Safeguard.AlarmActionObj();
+                actionObj.DeviceAddr = data.MacAddress;
+                actionObj.Epoint = data.Epoint;
+                actionObj.Type = 0;
+                actionObj.TaskList = data.listInfos;
+                listAction.Add(actionObj);
+            }
+            //娣诲姞鎶ヨ鐩爣鍒板畨闃�
+            bool success = await HdlSafeguardLogic.Current.AddAlarmTagetToSafety(this.zoonID, listAction);
+            if (success == true)
+            {
+                //鍏抽棴鑷韩
+                this.CloseForm();
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 缁撴瀯浣揰____________________________
+
+        /// <summary>
+        /// 鎶ヨ鐩爣鏁版嵁
+        /// </summary>
+        private class TaskInfoData
+        {
+            /// <summary>
+            /// MAC鍦板潃
+            /// </summary>
+            public string MacAddress = string.Empty;
+            /// <summary>
+            /// 绔彛鍙�
+            /// </summary>
+            public int Epoint = 0;
+            /// <summary>
+            /// 鎶ヨ鍔ㄤ綔
+            /// </summary>
+            public List<Safeguard.TaskListInfo> listInfos = new List<Safeguard.TaskListInfo>();
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs
new file mode 100755
index 0000000..3a1f691
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddMenuForm.cs
@@ -0,0 +1,418 @@
+锘縰sing System;
+using System.Collections.Generic;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 娣诲姞鎶ヨ鐩爣鑿滃崟鍒楄〃鐨勭敾闈�
+    /// </summary>
+    public class AlarmTargetAddMenuForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 闃插尯ID(杩欎釜涓滆タ浼间箮鏄敮涓�鐨�)
+        /// </summary>
+        private int zoonID = 0;
+        /// <summary>
+        /// 鍒楄〃鎺т欢
+        /// </summary>
+        private VerticalListControl listView = null;
+        /// <summary>
+        /// 鍏ㄩ儴鐨勬暟鎹�(keys1:鎴块棿ID   Keys2:R鏂囦欢鐨勬暟鍊�)
+        /// </summary>
+        private Dictionary<string, Dictionary<int, uRowInformation>> dicAllData = new Dictionary<string, Dictionary<int, uRowInformation>>();
+        /// <summary>
+        /// 褰撳墠閫夋嫨鐨勬ゼ灞侷D
+        /// </summary>
+        private string nowSelectFloorId = string.Empty;
+        /// <summary>
+        /// 褰撳墠閫夋嫨鐨勬埧闂�
+        /// </summary>
+        private Common.Room nowSelectRoom = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_zoonID">闃插尯ID</param>
+        public void ShowForm(int i_zoonID)
+        {
+            this.zoonID = i_zoonID;
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddAlarmTarget));
+
+            //鍒濆鍖栧彸涓婅鐨勬帶浠�
+            this.InitTopRightMenuControl();
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+            this.nowSelectRoom = null;
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //鑾峰彇璁惧鐨勬墍鏈夌被鍨嬶紝骞舵暣鐞嗘垚姣忎竴琛岀殑鏁版嵁
+                this.dicAllData = this.GetAllListData();
+                if (dicAllData.Count == 0)
+                {
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        //娌℃湁鍙互娣诲姞鐨勭洰鏍�
+                        this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uNotHadAddTarget));
+                    });
+                    return;
+                }
+
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鍒濆鍖栨埧闂村拰璁惧鎺т欢
+                    this.InitRoomAndDeviceControl();
+                });
+            });
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨埧闂村拰璁惧鎺т欢
+        /// </summary>
+        private void InitRoomAndDeviceControl()
+        {
+            var listRoom = new List<Common.Room>();
+            foreach (string roomId in this.dicAllData.Keys)
+            {
+                listRoom.Add(Common.Room.CurrentRoom.GetRoomById(roomId));
+            }
+
+            //鍒濆鍖栨埧闂磋彍鍗曟帶浠�
+            var frameBack = new FrameLayout();
+            frameBack.Height = Application.GetRealHeight(204);
+            bodyFrameLayout.AddChidren(frameBack);
+            var roomMuneContr = new RoomDeviceGroupMenuControl(listRoom);
+            roomMuneContr.Gravity = Gravity.CenterVertical;
+            frameBack.AddChidren(roomMuneContr);
+            roomMuneContr.SelectRoomEvent += (selectRoom) =>
+            {
+                //璁板綍褰撳墠閫夋嫨鐨勬埧闂�
+                this.nowSelectRoom = selectRoom;
+                //杩樺師鍒楄〃楂樺害
+                listView.Height = bodyFrameLayout.Height - frameBack.Bottom;
+                //鍒濆鍖栬鎺т欢
+                this.InitRowControl(dicAllData[selectRoom.Id]);
+            };
+
+            this.listView = new VerticalListControl(29);
+            listView.Y = frameBack.Bottom;
+            listView.Height = bodyFrameLayout.Height - frameBack.Bottom;
+            listView.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(this.listView);
+
+            //寮�濮嬪垵濮嬪寲鎴块棿鎺т欢,鐒跺悗瀹冧細鏍规嵁榛樿鍊艰皟鐢ㄥ洖璋冨嚱鏁�
+            roomMuneContr.InitControl();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栧彸涓婅鐨勬帶浠�
+        /// </summary>
+        private void InitTopRightMenuControl()
+        {
+            //鑾峰彇妤煎眰
+            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
+            if (dicFloor.Count == 0)
+            {
+                return;
+            }
+            var btnIconContr = new MostRightIconControl(69, 69);
+            btnIconContr.UnSelectedImagePath = "Item/Drop_Down.png";
+            topFrameLayout.AddChidren(btnIconContr);
+            btnIconContr.InitControl();
+
+            var btnFloor = new NormalViewControl(300, 69, true);
+            btnFloor.Gravity = Gravity.CenterVertical;
+            btnFloor.X = btnIconContr.X + btnIconContr.btnIcon.X - Application.GetRealWidth(300);
+            btnFloor.TextAlignment = TextAlignment.CenterRight;
+            topFrameLayout.AddChidren(btnFloor);
+
+            foreach (var floorId in dicFloor.Keys)
+            {
+                //绗竴涓ゼ灞�
+                this.nowSelectFloorId = floorId;
+                btnFloor.Text = dicFloor[floorId];
+                break;
+            }
+
+            btnIconContr.ButtonClickEvent += (sender, e) =>
+            {
+                //妤煎眰鑿滃崟
+                var contr = new TopRightMenuControl(dicFloor.Count, 449, Language.StringByID(R.MyInternationalizationString.SelectFloor));
+                foreach (var floorId in dicFloor.Keys)
+                {
+                    contr.AddRowMenu(dicFloor[floorId], "Floor/Floor.png", "Floor/FloorSelected.png", () =>
+                    {
+                        //璁板綍璧烽�夋嫨鐨処D
+                        this.nowSelectFloorId = floorId;
+                        btnFloor.Text = dicFloor[this.nowSelectFloorId];
+                        //鍒濆鍖栦腑閮ㄤ俊鎭�
+                        this.InitMiddleFrame();
+                    });
+                }
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞琛宊____________________________
+
+        /// <summary>
+        /// 鍒濆鍖栬鎺т欢
+        /// </summary>
+        /// <param name="dicRowData"></param>
+        private void InitRowControl(Dictionary<int, uRowInformation> dicRowData)
+        {
+            this.listView.RemoveAll();
+            HdlThreadLogic.Current.RunMainInThread(() =>
+            {
+                int count = 0;
+                foreach (var textId in dicRowData.Keys)
+                {
+                    count++;
+                    var rowData = dicRowData[textId];
+
+                    var rowlayout = new FrameRowControl(listView.rowSpace / 2);
+                    listView.AddChidren(rowlayout);
+                    //鍥炬爣
+                    var btnIcon = rowlayout.AddLeftIcon(81);
+                    btnIcon.UnSelectedImagePath = rowData.IconPath;
+
+                    //璁惧鍚�
+                    var txtDevice = rowlayout.AddLeftCaption(Language.StringByID(textId), 750);
+                    txtDevice.TextSize = 15;
+                    //鍚戝彸鍥炬爣
+                    rowlayout.AddRightArrow();
+                    if (count != dicRowData.Count)
+                    {
+                        //搴曠嚎
+                        rowlayout.AddBottomLine();
+                    }
+
+                    //鍗曞嚮浜嬩欢
+                    rowlayout.ButtonClickEvent += (sender, e) =>
+                    {
+                        if (rowData.listScene == null)
+                        {
+                            //璁惧鐨勪竴瑙�
+                            var form = new AlarmTargetAddDeviceForm();
+                            form.AddForm(this.zoonID, txtDevice.Text, rowData.listDevice);
+                        }
+                        else
+                        {
+                            //鍦烘櫙鐨勪竴瑙�
+                            var form = new AlarmTargetAddSceneForm();
+                            form.AddForm(this.zoonID, rowData.listScene);
+                        }
+                    };
+                }
+                //璋冩暣鐪熷疄楂樺害
+                this.listView.AdjustRealHeight(Application.GetRealHeight(23));
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鑾峰彇鏁版嵁___________________________
+
+        /// <summary>
+        /// 鑾峰彇璁惧鐨勬墍鏈夌被鍨嬶紝骞舵暣鐞嗘垚姣忎竴琛岀殑鏁版嵁(keys1:鎴块棿ID   Keys2:R鏂囦欢鐨勬暟鍊�)
+        /// </summary>
+        /// <returns></returns>
+        private Dictionary<string, Dictionary<int, uRowInformation>> GetAllListData()
+        {
+            var dicData = new Dictionary<string, Dictionary<int, uRowInformation>>();
+            //鑾峰彇鏈湴瀹夐槻鐨勫満鏅�
+            Dictionary<int, string> dicScene = HdlSafeguardLogic.Current.GetLocalSceneByZoneID(this.zoonID);
+            var listRoom = Common.Room.CurrentRoom.GetFloorSortRoom(this.nowSelectFloorId);
+
+            for (int i = 0; i < listRoom.Count; i++)
+            {
+                //鑾峰彇鎴块棿鐨勮澶囧拰鍦烘櫙鏁版嵁
+                var dicRoomData = this.GetRoomDeviceAndSceneData(listRoom[i], dicScene);
+                if (dicRoomData.Count > 0)
+                {
+                    dicData[listRoom[i].Id] = dicRoomData;
+                }
+            }
+            return dicData;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎴块棿閲岄潰鐨勮澶囧拰鍦烘櫙鏁版嵁
+        /// </summary>
+        /// <param name="i_room"></param>
+        /// <param name="dicScene"></param>
+        /// <returns></returns>
+        private Dictionary<int, uRowInformation> GetRoomDeviceAndSceneData(Common.Room i_room, Dictionary<int, string> dicScene)
+        {
+            if (dicScene == null)
+            {
+                //鑾峰彇鏈湴瀹夐槻鐨勫満鏅�
+                dicScene = HdlSafeguardLogic.Current.GetLocalSceneByZoneID(this.zoonID);
+            }
+            var dicRoomData = new Dictionary<int, uRowInformation>();
+
+            for (int j = 0; j < i_room.DeviceUIList.Count; j++)
+            {
+                var device = i_room.DeviceUIList[j].CommonDevice;
+                //濡傛灉閭d釜璁惧宸茬粡娣诲姞浜嗭紝鍒欎笉鍐嶆樉绀�
+                if (device == null || HdlSafeguardLogic.Current.IsAlarmDeviceExist(this.zoonID, device) == true)
+                {
+                    continue;
+                }
+                if (device.Type == DeviceType.AirSwitch//绌烘皵寮�鍏�
+                 || device.Type == DeviceType.DimmableLight//璋冨厜鍣�
+                 || device.Type == DeviceType.ColorDimmableLight//褰╃伅
+                 || device.Type == DeviceType.OnOffOutput//缁х數鍣�
+                 || device.Type == DeviceType.WindowCoveringDevice)//绐楀笜
+                {
+                    string unSelectPath = string.Empty;
+                    string selectPath = string.Empty;
+
+                    var typeInfo = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<CommonDevice>() { device });
+                    if (device.Type == DeviceType.OnOffOutput)
+                    {
+                        //缁х數鍣ㄧ殑鏃跺��,闇�瑕佺壒娈婂鐞�
+                        if (device.DfunctionType == DeviceFunctionType.A寮�鍏�)
+                        {
+                            typeInfo.BeloneTextId = R.MyInternationalizationString.uSwitch;
+                            unSelectPath = "Device/Switch.png";
+                        }
+                        else if (device.DfunctionType == DeviceFunctionType.A鎻掑骇)
+                        {
+                            typeInfo.BeloneTextId = R.MyInternationalizationString.uSocket1;
+                            unSelectPath = "Device/Socket1.png";
+                        }
+                        else if (device.DfunctionType == DeviceFunctionType.A鐏厜)
+                        {
+                            typeInfo.BeloneTextId = R.MyInternationalizationString.uLight;
+                            unSelectPath = "Device/Light.png";
+                        }
+                        else
+                        {
+                            //缁х數鍣�
+                            typeInfo.BeloneTextId = R.MyInternationalizationString.uDeviceBelongId2300;
+                            unSelectPath = "Device/Relay.png";
+                        }
+                        if (dicRoomData.ContainsKey(typeInfo.BeloneTextId) == false)
+                        {
+                            dicRoomData[typeInfo.BeloneTextId] = new uRowInformation();
+                            dicRoomData[typeInfo.BeloneTextId].IconPath = unSelectPath;
+                        }
+                    }
+                    else
+                    {
+                        //鑾峰彇鍥剧墖
+                        Common.LocalDevice.Current.GetDeviceBeloneIcon(typeInfo.ConcreteType, ref unSelectPath, ref selectPath);
+                        if (dicRoomData.ContainsKey(typeInfo.BeloneTextId) == false)
+                        {
+                            dicRoomData[typeInfo.BeloneTextId] = new uRowInformation();
+                            dicRoomData[typeInfo.BeloneTextId].IconPath = unSelectPath;
+                        }
+                    }
+                    dicRoomData[typeInfo.BeloneTextId].listDevice.Add(device);
+                }
+            }
+            for (int j = 0; j < i_room.SceneUIList.Count; j++)
+            {
+                //濡傛灉閭d釜鍦烘櫙宸茬粡娣诲姞浜嗭紝鍒欎笉鍐嶆樉绀�
+                if (dicScene.ContainsKey(i_room.SceneUIList[j].Id) == true)
+                {
+                    continue;
+                }
+                if (dicRoomData.ContainsKey(R.MyInternationalizationString.uScence) == false)
+                {
+                    dicRoomData[R.MyInternationalizationString.uScence] = new uRowInformation();
+                    dicRoomData[R.MyInternationalizationString.uScence].IconPath = "Scene/SceneIcon.png";
+                    dicRoomData[R.MyInternationalizationString.uScence].listScene = new List<Common.SceneUI>();
+                }
+                dicRoomData[R.MyInternationalizationString.uScence].listScene.Add(i_room.SceneUIList[j]);
+            }
+            return dicRoomData;
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+        /// <summary>
+        /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
+        /// </summary>
+        public override int FormActionAgainEvent()
+        {
+            //閲嶆柊鑾峰彇鎴块棿鏁版嵁
+            var dicData = this.GetRoomDeviceAndSceneData(this.nowSelectRoom, null);
+            if (dicAllData.Count == 1 && dicData.Count == 0)
+            {
+                //杩欎釜鎴块棿,宸茬粡娌℃湁鍙�夋嫨鐨勪笢瑗夸簡
+                dicAllData.Remove(this.nowSelectRoom.Id);
+
+                //娌℃湁鍙互娣诲姞鐨勭洰鏍�
+                this.ClearBodyFrame();
+                this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uNotHadAddTarget));
+                return 1;
+            }
+            if (dicData.Count > 0)
+            {
+                //瑕嗙洊缂撳瓨
+                dicAllData[this.nowSelectRoom.Id] = dicData;
+                //閲嶆柊鍒锋柊杩欎釜鎴块棿鐨勮澶囧垪琛�
+                this.InitRowControl(dicData);
+            }
+            else
+            {
+                //杩欎釜鎴块棿,宸茬粡娌℃湁鍙�夋嫨鐨勪笢瑗夸簡
+                dicAllData.Remove(this.nowSelectRoom.Id);
+                //娓呯┖bodyFrame
+                this.ClearBodyFrame();
+                //鍒囨崲鍒板埆鐨勬埧闂�
+                this.InitRoomAndDeviceControl();
+            }
+
+            return 1;
+        }
+
+        #endregion
+
+        #region 鈻� 鑷畾涔夌粨鏋勪綋_______________________
+
+        /// <summary>
+        /// 姣忎竴琛岀殑琛屾暟鎹�
+        /// </summary>
+        private class uRowInformation
+        {
+            /// <summary>
+            /// 鍥炬爣鍦板潃
+            /// </summary>
+            public string IconPath = string.Empty;
+            /// <summary>
+            /// 璁惧鍒楄〃淇℃伅
+            /// </summary>
+            public List<CommonDevice> listDevice = new List<CommonDevice>();
+            /// <summary>
+            /// 鍦烘櫙
+            /// </summary>
+            public List<Common.SceneUI> listScene = null;
+        }
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddSceneForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddSceneForm.cs
new file mode 100755
index 0000000..5965aa1
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetAddSceneForm.cs
@@ -0,0 +1,173 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 娣诲姞鎶ヨ鐩爣(鍦烘櫙)鐨勫垪琛ㄧ晫闈�
+    /// </summary>
+    public class AlarmTargetAddSceneForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鍒楄〃鎺т欢
+        /// </summary>
+        private VerticalListControl listView = null;
+        /// <summary>
+        /// 闃插尯ID(杩欎釜涓滆タ浼间箮鏄敮涓�鐨�)
+        /// </summary>
+        private int zoonID = 0;
+        /// <summary>
+        /// 閫夋嫨鐨勫満鏅�
+        /// </summary>
+        private Dictionary<int, Common.SceneUI> dicSelectScene = new Dictionary<int, Common.SceneUI>();
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_zoonID">闃插尯ID</param>
+        /// <param name="i_listScene">鐜板瓨鐨勫満鏅�</param>
+        public void ShowForm(int i_zoonID, List<Common.SceneUI> i_listScene)
+        {
+            this.zoonID = i_zoonID;
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uScence));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame(i_listScene);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        /// <param name="listScene">鐜板瓨鐨勫満鏅�</param>
+        private void InitMiddleFrame(List<Common.SceneUI> listScene)
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            this.listView = new VerticalListControl(29);
+            listView.Y = Application.GetRealHeight(-6);
+            listView.Height = bodyFrameLayout.Height + Application.GetRealHeight(6);
+            listView.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(listView);
+
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //鑾峰彇鏈湴瀹夐槻鐨勫満鏅�
+                Dictionary<int, string> dicScene = HdlSafeguardLogic.Current.GetLocalSceneByZoneID(this.zoonID);
+                Application.RunOnMainThread(() =>
+                {
+                    int count = listScene.Count - 1;
+                    for (int i = 0; i < listScene.Count; i++)
+                    {
+                        //濡傛灉瀹夐槻閲岄潰宸茬粡娣诲姞鏈夛紝鍒欎笉鍐嶆樉绀�
+                        if (dicScene.ContainsKey(listScene[i].Id) == true)
+                        {
+                            continue;
+                        }
+                        //娣诲姞琛�
+                        this.AddRowControl(listScene[i], i != count);
+                    }
+                    //璋冩暣鐪熷疄楂樺害
+                    listView.AdjustRealHeight(Application.GetRealHeight(23));
+                });
+            });
+
+            //瀹屾垚
+            var btnfinish = new BottomClickButton();
+            btnfinish.TextID = R.MyInternationalizationString.uFinish;
+            bodyFrameLayout.AddChidren(btnfinish);
+            btnfinish.ButtonClickEvent += (sender, e) =>
+            {
+                if (this.dicSelectScene.Count == 0)
+                {
+                    //鍏抽棴鐣岄潰
+                    this.CloseForm();
+                    return;
+                }
+                //淇濆瓨鍦烘櫙鍒板畨闃�
+                this.SaveSceneToSafety();
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞琛宊____________________________
+
+        /// <summary>
+        /// 娣诲姞琛�
+        /// </summary>
+        /// <param name="scene"></param>
+        /// <param name="addLine"></param>
+        private void AddRowControl(Common.SceneUI scene, bool addLine)
+        {
+            var rowContr = new FrameRowControl(listView.rowSpace / 2);
+            listView.AddChidren(rowContr);
+
+            //鍥炬爣
+            var btnIcon = rowContr.AddLeftIcon(81);
+            btnIcon.UnSelectedImagePath = "Scene/SceneIcon.png";
+            //鍦烘櫙鍚�
+            var btnName = rowContr.AddLeftCaption(scene.Name, 700);
+            btnName.TextSize = 15;
+            //閫夋嫨
+            var btnSelect = rowContr.AddMostRightEmptyIcon(58, 58);
+            btnSelect.Visible = false;
+            btnSelect.UnSelectedImagePath = "Item/ItemSelected.png";
+            if (addLine == true)
+            {
+                //搴曠嚎
+                rowContr.AddBottomLine();
+            }
+
+            rowContr.ButtonClickEvent += (sender, e) =>
+            {
+                btnSelect.Visible = !btnSelect.Visible;
+                if (btnSelect.Visible == true)
+                {
+                    dicSelectScene[scene.Id] = scene;
+                }
+                else
+                {
+                    dicSelectScene.Remove(scene.Id);
+                }
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 淇濆瓨鍦烘櫙___________________________
+
+        /// <summary>
+        /// 淇濆瓨鍦烘櫙鍒板畨闃�
+        /// </summary>
+        private async void SaveSceneToSafety()
+        {
+            var listAction = new List<Safeguard.AlarmActionObj>();
+            foreach (var scene in this.dicSelectScene.Values)
+            {
+                var actionObj = new Safeguard.AlarmActionObj();
+                actionObj.Type = 1;
+                actionObj.ScenesId = scene.Id;
+                listAction.Add(actionObj);
+            }
+            //娣诲姞鎶ヨ鐩爣鍒板畨闃�
+            bool success = await HdlSafeguardLogic.Current.AddAlarmTagetToSafety(this.zoonID, listAction);
+            if (success == true)
+            {
+                //鍏抽棴鑷韩
+                this.CloseForm();
+            }
+        }
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetExistSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetExistSettionForm.cs
new file mode 100755
index 0000000..e09e8f8
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetExistSettionForm.cs
@@ -0,0 +1,332 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 鏃㈠瓨鎶ヨ鐩爣璁剧疆鐢婚潰
+    /// </summary>
+    public class AlarmTargetExistSettionForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 闃插尯ID(杩欎釜涓滆タ浼间箮鏄敮涓�鐨�)
+        /// </summary>
+        private int zoonID = 0;
+        /// <summary>
+        /// 鍒楄〃鎺т欢
+        /// </summary>
+        private VerticalListControl listView = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_zoonID">闃插尯ID</param>
+        public void ShowForm(int i_zoonID)
+        {
+            this.zoonID = i_zoonID;
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAlarmTargetSettion));
+
+            //娣诲姞鍥炬爣
+            var btnAdd = new MostRightIconControl(69, 69);
+            btnAdd.UnSelectedImagePath = "Item/Add.png";
+            topFrameLayout.AddChidren(btnAdd);
+            btnAdd.InitControl();
+            btnAdd.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new AlarmTargetAddMenuForm();
+                form.AddForm(this.zoonID);
+            };
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            //鏍规嵁闃插尯ID鑾峰彇鏈湴鐨勬姤璀︾洰鏍囧垪琛�
+            var listData = HdlSafeguardLogic.Current.GetLocalAlarmTargetInfoByZoneId(this.zoonID);
+            if (listData.Count == 0)
+            {
+                //杩樻病鏈夎缃姤璀︾洰鏍�
+                this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uDoNotHadSettionTargetMsg));
+                return;
+            }
+
+            this.listView = new VerticalListControl(23);
+            listView.BackgroundColor = UserCenterColor.Current.White;
+            listView.Height = bodyFrameLayout.Height;
+            bodyFrameLayout.AddChidren(listView);
+
+            HdlThreadLogic.Current.RunMainInThread(() =>
+            {
+                for (int i = 0; i < listData.Count; i++)
+                {
+                    var data = listData[i];
+                    //鍦烘櫙
+                    if (data.Type == 1)
+                    {
+                        this.AddSceneRow(data, i != listData.Count - 1);
+                    }
+                    //璁惧
+                    if (data.Type == 0)
+                    {
+                        this.AddDeviceRow(data, i != listData.Count - 1);
+                    }
+                }
+                //璋冩暣鐪熷疄楂樺害
+                this.listView.AdjustRealHeight(Application.GetRealHeight(23));
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 鎶ヨ鐩爣鏄庣粏琛宊____________________
+
+        /// <summary>
+        /// 娣诲姞璁惧琛�
+        /// </summary>
+        /// <param name="data"></param>
+        /// <param name="addLine"></param>
+        private void AddDeviceRow(Safeguard.CatActionResponseObj data, bool addLine)
+        {
+            //琛屾帶浠�
+            var row = new DeviceRoomControl(data.DeviceAddr, data.Epoint, listView.rowSpace / 2);
+            listView.AddChidren(row);
+            row.InitControl();
+            row.frameTable.UseClickStatu = false;
+            if (addLine == true)
+            {
+                //搴曠嚎
+                row.frameTable.AddBottomLine();
+            }
+            //鐘舵�佹樉绀�
+            var btnStatu = row.frameTable.AddMostRightView("", 400);
+            if (data.TaskList.Count > 0)
+            {
+                btnStatu.Text = HdlSafeguardLogic.Current.GetLightAlarmStatuText(data.TaskList);
+            }
+            else
+            {
+                //鏃犲姩浣�
+                btnStatu.TextID = R.MyInternationalizationString.uNotAction;
+            }
+
+            if (row.device != null)
+            {
+                //缂栬緫
+                var btnEditor = row.AddEditorControl();
+                btnEditor.ButtonClickEvent += (sender, e) =>
+                {
+                    //缂栬緫鎶ヨ鐩爣
+                    this.EditorAlarmTarget(btnStatu, data);
+                };
+            }
+
+            //鍒犻櫎
+            var btnDelete = row.AddDeleteControl();
+            btnDelete.ButtonClickEvent += (sender, e) =>
+            {
+                //鍒犻櫎
+                string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg);
+                this.ShowMassage(ShowMsgType.Confirm, msg, () =>
+                {
+                    //鍒犻櫎鎶ヨ鐩爣
+                    this.DeleteAlarmTarget(row, data);
+                });
+            };
+        }
+
+        /// <summary>
+        /// 娣诲姞鍦烘櫙琛�
+        /// </summary>
+        /// <param name="data"></param>
+        /// <param name="addLine"></param>
+        private void AddSceneRow(Safeguard.CatActionResponseObj data, bool addLine)
+        {
+            //琛屾帶浠�
+            var row = new SceneRoomControl(data.ScenesId, data.ESName, listView.rowSpace / 2);
+            listView.AddChidren(row);
+            row.InitControl();
+            row.frameTable.UseClickStatu = false;
+
+            if (addLine == true)
+            {
+                //搴曠嚎
+                row.frameTable.AddBottomLine();
+            }
+
+            //鍒犻櫎
+            var btnDelete = row.AddDeleteControl();
+            btnDelete.ButtonClickEvent += (sender, e) =>
+            {
+                string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg);
+                this.ShowMassage(ShowMsgType.Confirm, msg, () =>
+                {
+                    //鍒犻櫎鎶ヨ鐩爣
+                    this.DeleteAlarmTarget(row, data);
+                });
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鍒犻櫎鎸囧畾鎶ヨ鐩爣___________________
+
+        /// <summary>
+        /// 鍒犻櫎鎸囧畾鎶ヨ鐩爣
+        /// </summary>
+        /// <param name="row"></param>
+        /// <param name="delObj"></param>
+        private async void DeleteAlarmTarget(RowLayoutControl row, Safeguard.CatActionResponseObj delObj)
+        {
+            //鍙傛暟
+            var Pra = new List<Safeguard.DelAlarmActionObj>();
+            var actionObj = new Safeguard.DelAlarmActionObj();
+            actionObj.DeviceAddr = delObj.DeviceAddr;
+            actionObj.Epoint = delObj.Epoint;
+            actionObj.ScenesId = delObj.ScenesId;
+            actionObj.Type = delObj.Type;
+            Pra.Add(actionObj);
+
+            //鎵ц鍒犻櫎
+            bool result = await HdlSafeguardLogic.Current.DeleteAlarmTaget(this.zoonID, Pra);
+            if (result == false)
+            {
+                return;
+            }
+
+            //琛岀Щ闄�
+            row?.RemoveFromParent();
+            //璋冩暣鐪熷疄楂樺害
+            listView.AdjustRealHeight(Application.GetRealHeight(23));
+            if (listView.ChildrenCount == 0)
+            {
+                //閲嶆柊鍒濆鍖栦腑閮ㄤ俊鎭�
+                this.InitMiddleFrame();
+                return;
+            }
+        }
+        #endregion
+
+        #region 鈻� 缂栬緫鎸囧畾鎶ヨ鐩爣___________________
+
+        /// <summary>
+        /// 缂栬緫鎸囧畾鎶ヨ鐩爣
+        /// </summary>
+        /// <param name="btnStatu"></param>
+        /// <param name="resObj"></param>
+        private void EditorAlarmTarget(NormalViewControl btnStatu, Safeguard.CatActionResponseObj resObj)
+        {
+            var device = Common.LocalDevice.Current.GetDevice(resObj.DeviceAddr, resObj.Epoint);
+            if (device.Type == DeviceType.DimmableLight//璋冨厜鍣�
+                || device.Type == DeviceType.ColorDimmableLight)//褰╃伅
+            {
+                var form = new AlarmTargetStatuSelectLightForm();
+                form.AddForm(device, resObj.TaskList);
+                form.FinishSelectEvent += (statuText, listInfo) =>
+                {
+                    btnStatu.Text = statuText;
+                    //淇濆瓨缂栬緫鐨勬姤璀︾洰鏍�
+                    this.SaveEditorAlarmTarget(resObj, listInfo);
+                };
+            }
+            else if (device.Type == DeviceType.WindowCoveringDevice)//绐楀笜
+            {
+                var form = new AlarmTargetStatuSelectCurtainForm();
+                form.AddForm(device, resObj.TaskList);
+                form.FinishSelectEvent += (statuText, listInfo) =>
+                {
+                    btnStatu.Text = statuText;
+                    //淇濆瓨缂栬緫鐨勬姤璀︾洰鏍�
+                    this.SaveEditorAlarmTarget(resObj, listInfo);
+                };
+            }
+            else
+            {
+                //鍏朵粬鐩存帴褰掍负寮�鍏崇被
+                var form = new AlarmTargetStatuSelectSwitchForm();
+                form.AddForm(device, resObj.TaskList);
+                form.FinishSelectEvent += (statuText, listInfo) =>
+                {
+                    btnStatu.Text = statuText;
+                    //淇濆瓨缂栬緫鐨勬姤璀︾洰鏍�
+                    this.SaveEditorAlarmTarget(resObj, listInfo);
+                };
+            }
+        }
+
+        /// <summary>
+        /// 淇濆瓨缂栬緫鐨勬姤璀︾洰鏍�
+        /// </summary>
+        /// <param name="resObj"></param>
+        /// <param name="listTask"></param>
+        private async void SaveEditorAlarmTarget(Safeguard.CatActionResponseObj resObj, List<Safeguard.TaskListInfo> listTask)
+        {
+            //鍏堝垹闄� 鍙傛暟
+            var PraDel = new List<Safeguard.DelAlarmActionObj>();
+            var actionObjDel = new Safeguard.DelAlarmActionObj();
+            actionObjDel.DeviceAddr = resObj.DeviceAddr;
+            actionObjDel.Epoint = resObj.Epoint;
+            actionObjDel.ScenesId = resObj.ScenesId;
+            actionObjDel.Type = resObj.Type;
+            PraDel.Add(actionObjDel);
+
+            //鎵ц鍒犻櫎
+            bool result = await HdlSafeguardLogic.Current.DeleteAlarmTaget(this.zoonID, PraDel);
+            if (result == false)
+            {
+                return;
+            }
+
+            //鐒跺悗鍐嶆坊鍔�
+            var listAction = new List<Safeguard.AlarmActionObj>();
+            var actionObjAdd = new Safeguard.AlarmActionObj();
+            actionObjAdd.DeviceAddr = resObj.DeviceAddr;
+            actionObjAdd.Epoint = resObj.Epoint;
+            actionObjAdd.Type = 0;
+            actionObjAdd.TaskList = listTask;
+            listAction.Add(actionObjAdd);
+
+            //娣诲姞鎶ヨ鐩爣鍒板畨闃�
+            bool success = await HdlSafeguardLogic.Current.AddAlarmTagetToSafety(this.zoonID, listAction);
+            if (success == true)
+            {
+                resObj.TaskList.Clear();
+                resObj.TaskList.AddRange(listTask);
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+        /// <summary>
+        /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
+        /// </summary>
+        public override int FormActionAgainEvent()
+        {
+            //閲嶆柊鍒锋柊鐣岄潰
+            this.InitMiddleFrame();
+
+            return 1;
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetSettionForm.cs
deleted file mode 100755
index e8a5a21..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetSettionForm.cs
+++ /dev/null
@@ -1,380 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-using ZigBee.Device;
-
-namespace Shared.Phone.UserCenter.Safety
-{
-    /// <summary>
-    /// 鎶ヨ鐩爣璁剧疆鐢婚潰
-    /// </summary>
-    public class AlarmTargetSettionForm : EditorCommonForm
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        /// <summary>
-        /// 闃插尯ID(杩欎釜涓滆タ浼间箮鏄敮涓�鐨�)
-        /// </summary>
-        private int zoonID = 0;
-        /// <summary>
-        /// 鍒楄〃鎺т欢
-        /// </summary>
-        private VerticalListControl listView = null;
-        /// <summary>
-        /// 搴曢儴鐨勩�愭坊鍔犵洰鏍囥�戠殑琛�
-        /// </summary>
-        private FrameRowControl frameBottomAddRow = null;
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖朹____________________________
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        /// <param name="i_zoonID">闃插尯ID</param>
-        public void ShowForm(int i_zoonID)
-        {
-            this.zoonID = i_zoonID;
-
-            //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAlarmTargetSettion));
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
-            this.InitMiddleFrame();
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        /// </summary>
-        private void InitMiddleFrame()
-        {
-            //娓呯┖bodyFrame
-            this.ClearBodyFrame();
-
-            //鏍规嵁闃插尯ID鑾峰彇鏈湴鐨勬姤璀︾洰鏍囧垪琛�
-            var listData = HdlSafeguardLogic.Current.GetLocalAlarmTargetInfoByZoneId(this.zoonID);
-            if (listData.Count == 0)
-            {
-                //鐗规畩鐗规晥,濡傛灉娌℃湁鎶ヨ鐩爣鐨勮瘽,鍒欐樉绀虹殑鐣岄潰鏁堟灉闈炲父鐨勫ぇ
-                this.ShowNotAlarmTargetAppeal();
-                frameBottomAddRow = null;
-                return;
-            }
-
-            //褰撹闃插尯鎶ヨ鏃讹紝浠ヤ笅鐩爣灏嗕細鍝嶅簲
-            var frameBack = new FrameLayout();
-            frameBack.Height = Application.GetRealHeight(92);
-            frameBack.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(frameBack);
-
-            var btnTitle = new NormalViewControl(860, 49, true);
-            btnTitle.X = ControlCommonResourse.XXLeft;
-            btnTitle.Y = Application.GetRealHeight(35);
-            btnTitle.TextSize = 12;
-            btnTitle.TextColor = UserCenterColor.Current.TextGrayColor2;
-            btnTitle.TextID = R.MyInternationalizationString.uTargetViewAlarmAfterZoonAlarm;
-            frameBack.AddChidren(btnTitle);
-
-            int maxRowCount = listData.Count;
-            if (maxRowCount > 8)
-            {
-                //鐗规晥闂,瀹冨彧鑳芥樉绀�8涓�,瓒呰繃8涓彧鑳界敤婊戝姩
-                maxRowCount = 8;
-            }
-            this.listView = new VerticalListControl(29);
-            this.listView.Y = frameBack.Bottom;
-            this.listView.BackgroundColor = UserCenterColor.Current.White;
-            this.listView.Height = (ControlCommonResourse.ListViewRowHeight + Application.GetRealHeight(29)) * maxRowCount;
-            bodyFrameLayout.AddChidren(this.listView);
-
-            //娣诲姞搴曢儴 娣诲姞鎶ヨ鐩爣鐨勮彍鍗曡
-            this.AddBottomAlarmTargetMenu();
-
-            HdlThreadLogic.Current.RunThread(() =>
-            {
-                //璁剧疆涓棿閮ㄥ垎淇℃伅
-                this.SetMiddleInfo(listData);
-            });
-        }
-
-        /// <summary>
-        /// 璁剧疆涓棿閮ㄥ垎淇℃伅
-        /// </summary>
-        public void SetMiddleInfo(List<Safeguard.CatActionResponseObj> listData)
-        {
-            if (this.Parent == null)
-            {
-                return;
-            }
-
-            //娣诲姞鎶ヨ鐩爣鐨勬槑缁嗚S
-            Application.RunOnMainThread(() =>
-            {
-                foreach (var data in listData)
-                {
-                    //鍦烘櫙
-                    if (data.Type == 1)
-                    {
-                        this.AddSceneRow(data);
-                    }
-                    //璁惧
-                    if (data.Type == 0)
-                    {
-                        CommonDevice device = Common.LocalDevice.Current.GetDevice(data.DeviceAddr, data.Epoint);
-                        if (device != null)
-                        {
-                            this.AddDeviceRow(data, device);
-                        }
-                    }
-                }
-            });
-        }
-
-        #endregion
-
-        #region 鈻� 鎶ヨ鐩爣鑿滃崟琛宊____________________
-
-        /// <summary>
-        /// 鏄剧ず鏃犳姤璀︾洰鏍囩壒鏁�
-        /// </summary>
-        private void ShowNotAlarmTargetAppeal()
-        {
-            var frameTemp = new FrameRowControl();
-            frameTemp.Height = Application.GetRealHeight(173);
-            frameTemp.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(frameTemp);
-
-            //娣诲姞鐩爣
-            var btnText = frameTemp.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uAddTarget), 400);
-            btnText.TextSize = 15;
-
-            //鍔犲彿
-            var btnAdd = frameTemp.AddMostRightEmptyIcon(58, 58);
-            btnAdd.UnSelectedImagePath = "Item/Add.png";
-
-            frameTemp.ButtonClickEvent += (sender, e) =>
-            {
-                var form = new AddAlarmTargetTypeListForm();
-                form.AddForm(this.zoonID);
-            };
-        }
-
-        /// <summary>
-        /// 娣诲姞搴曢儴 娣诲姞鎶ヨ鐩爣鐨勮彍鍗曡
-        /// </summary>
-        private void AddBottomAlarmTargetMenu()
-        {
-            //娣诲姞鐩爣
-            frameBottomAddRow = new FrameRowControl();
-            frameBottomAddRow.Y = this.listView.Bottom;
-            frameBottomAddRow.Height = ControlCommonResourse.ListViewRowHeight + Application.GetRealHeight(29 + 29);
-            frameBottomAddRow.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(frameBottomAddRow);
-
-            var frameTemp = new FrameRowControl();
-            frameTemp.Gravity = Gravity.CenterVertical;
-            frameBottomAddRow.AddChidren(frameTemp);
-            var btnText = frameTemp.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uAddTarget), 400);
-            btnText.TextSize = 15;
-            //鍔犲彿
-            var btnAdd = frameTemp.AddMostRightEmptyIcon(58, 58);
-            btnAdd.UnSelectedImagePath = "Item/Add.png";
-            //搴曠嚎
-            frameTemp.AddBottomLine();
-
-            frameTemp.ButtonClickEvent += (sender, e) =>
-            {
-                var form = new AddAlarmTargetTypeListForm();
-                form.AddForm(this.zoonID);
-            };
-        }
-
-        #endregion
-
-        #region 鈻� 鎶ヨ鐩爣鏄庣粏琛宊____________________
-
-        /// <summary>
-        /// 娣诲姞鎶ヨ鐩爣鐨勬槑缁嗚
-        /// </summary>
-        private void AddAlarmTargetList(List<Safeguard.CatActionResponseObj> listData)
-        {
-            foreach (var data in listData)
-            {
-                //鍦烘櫙
-                if (data.Type == 1)
-                {
-                    Application.RunOnMainThread(() =>
-                    {
-                        if (this.Parent != null)
-                        {
-                            this.AddSceneRow(data);
-                        }
-                    });
-                }
-                //璁惧
-                if (data.Type == 0)
-                {
-                    CommonDevice device = Common.LocalDevice.Current.GetDevice(data.DeviceAddr, data.Epoint);
-                    if (device == null)
-                    {
-                        //鏈湴娌℃湁杩欎釜璁惧鐨勮瘽
-                        continue;
-                    }
-
-                    Application.RunOnMainThread(() =>
-                    {
-                        if (this.Parent != null)
-                        {
-                            this.AddDeviceRow(data, device);
-                        }
-                    });
-                }
-            }
-        }
-
-        /// <summary>
-        /// 娣诲姞璁惧琛�
-        /// </summary>
-        /// <param name="data"></param>
-        /// <param name="device"></param>
-        private void AddDeviceRow(Safeguard.CatActionResponseObj data, CommonDevice device)
-        {
-            //琛屾帶浠�
-            var row = new DeviceRoomControl(device, listView.rowSpace / 2);
-            listView.AddChidren(row);
-            row.InitControl();
-            row.frameTable.UseClickStatu = false;
-            //搴曠嚎
-            row.frameTable.AddBottomLine();
-
-            //鍒犻櫎鍥炬爣
-            var btnDelete = row.frameTable.AddMostRightEmptyIcon(58, 58);
-            btnDelete.UnSelectedImagePath = "Item/DeleteIcon1.png";
-            row.frameTable.ChangedChidrenBindMode(btnDelete, ChidrenBindMode.NotBind);
-            btnDelete.ButtonClickEvent += (sender, e) =>
-            {
-                //鍒犻櫎
-                string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg);
-                this.ShowMassage(ShowMsgType.Confirm, msg, () =>
-                {
-                    //鍒犻櫎鎶ヨ鐩爣
-                    this.DeleteAlarmTarget(row, data);
-                });
-            };
-
-            //鐘舵�佹樉绀�
-            var btnStatu = row.frameTable.AddMostRightView("", 400);
-            if (data.TaskList.Count > 0)
-            {
-                btnStatu.Text = HdlSafeguardLogic.Current.GetLightAlarmStatuText(data.TaskList);
-            }
-            else
-            {
-                //鏃犲姩浣�
-                btnStatu.TextID = R.MyInternationalizationString.uNotAction;
-            }
-        }
-
-        /// <summary>
-        /// 娣诲姞鍦烘櫙琛�
-        /// </summary>
-        /// <param name="data"></param>
-        private void AddSceneRow(Safeguard.CatActionResponseObj data)
-        {
-            //琛屾帶浠�
-            var row = new SceneRoomControl(data.ScenesId, data.ESName, listView.rowSpace / 2);
-            listView.AddChidren(row);
-            row.InitControl();
-            row.frameTable.UseClickStatu = false;
-            //搴曠嚎
-            row.frameTable.AddBottomLine();
-
-            //鍒犻櫎鍥炬爣
-            var btnDelete = row.frameTable.AddMostRightEmptyIcon(58, 58);
-            btnDelete.UnSelectedImagePath = "Item/DeleteIcon1.png";
-            row.frameTable.ChangedChidrenBindMode(btnDelete, ChidrenBindMode.NotBind);
-            btnDelete.ButtonClickEvent += (sender, e) =>
-            {
-                //鍒犻櫎
-                string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg);
-                this.ShowMassage(ShowMsgType.Confirm, msg, () =>
-                {
-                    //鍒犻櫎鎶ヨ鐩爣
-                    this.DeleteAlarmTarget(row, data);
-                });
-            };
-        }
-
-        #endregion
-
-        #region 鈻� 鍒犻櫎鎸囧畾鎶ヨ鐩爣___________________
-
-        /// <summary>
-        /// 鍒犻櫎鎸囧畾鎶ヨ鐩爣
-        /// </summary>
-        /// <param name="row"></param>
-        /// <param name="delObj"></param>
-        private async void DeleteAlarmTarget(RowLayoutControl row, Safeguard.CatActionResponseObj delObj)
-        {
-            //鍙傛暟
-            var Pra = new List<Safeguard.DelAlarmActionObj>();
-            var actionObj = new Safeguard.DelAlarmActionObj();
-            actionObj.DeviceAddr = delObj.DeviceAddr;
-            actionObj.Epoint = delObj.Epoint;
-            actionObj.ScenesId = delObj.ScenesId;
-            actionObj.Type = delObj.Type;
-            Pra.Add(actionObj);
-
-            //鎵撳紑杩涘害鏉�
-            this.ShowProgressBar();
-
-            //鎵ц鍒犻櫎
-            bool result = await HdlSafeguardLogic.Current.DeleteAlarmTaget(this.zoonID, Pra);
-
-            //鍏抽棴杩涘害鏉�
-            this.CloseProgressBar();
-
-            if (result == false)
-            {
-                return;
-            }
-
-            Application.RunOnMainThread(() =>
-            {
-                //琛岀Щ闄�
-                row?.RemoveFromParent();
-                if (listView != null && listView.ChildrenCount == 0)
-                {
-                    //閲嶆柊鍒濆鍖栦腑閮ㄤ俊鎭�
-                    this.InitMiddleFrame();
-                    return;
-                }
-                var realHeight = listView.ChildrenCount * listView.GetChildren(listView.ChildrenCount - 1).Height;
-                if (realHeight < listView.Height)
-                {
-                    //缂╁皬鎺т欢楂樺害
-                    listView.Height = realHeight;
-                    //绉诲姩琛屾帶浠�
-                    frameBottomAddRow.Y = this.listView.Bottom;
-                }
-            });
-        }
-        #endregion
-
-        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
-
-        /// <summary>
-        /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
-        /// </summary>
-        public override int FormActionAgainEvent()
-        {
-            //閲嶆柊鍒锋柊鐣岄潰
-            this.InitMiddleFrame();
-
-            return 1;
-        }
-
-        #endregion
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectCurtainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectCurtainForm.cs
new file mode 100755
index 0000000..c8f6761
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectCurtainForm.cs
@@ -0,0 +1,319 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 绐楀笜绫荤殑瀹夐槻鎶ヨ璁剧疆鐣岄潰
+    /// </summary>
+    public class AlarmTargetStatuSelectCurtainForm : DialogCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 缁撴潫閫夋嫨鐨勪簨浠�(key:鍏ㄩ儴鐘舵�佺殑缈昏瘧鏂囨湰)
+        /// </summary>
+        public Action<string, List<Safeguard.TaskListInfo>> FinishSelectEvent = null;
+        /// <summary>
+        /// 鍔ㄤ綔淇℃伅  0 鎵撳紑/ 1鍏抽棴/ 2 鍋滄杞姩/ 4 璋冩暣鍒版寚瀹氶珮搴�/ 5 璋冩暣鍒版寚瀹氱殑鐧惧垎姣斿浣嶇疆 / 7 璋冩暣鍒版寚瀹氬�炬枩瑙�/ 8 璋冩暣鍒版寚瀹氱殑鐧惧垎姣斿�炬枩搴�
+        /// </summary>
+        private Dictionary<int, Safeguard.TaskListInfo> dicTaskinfo = new Dictionary<int, Safeguard.TaskListInfo>();
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="i_listTaskInfo"></param>
+        public void ShowForm(CommonDevice device, List<Safeguard.TaskListInfo> i_listTaskInfo)
+        {
+            if (i_listTaskInfo != null)
+            {
+                foreach (var data in i_listTaskInfo)
+                {
+                    //浠ラ槻涓囦竴,鍓旈櫎涓嶅悎娉曟暟鎹�
+                    if (data.TaskType == 6)
+                    {
+                        dicTaskinfo[data.Data1] = data;
+                    }
+                }
+            }
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame(device);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame(CommonDevice device)
+        {
+            //寮у害鐨勫渾鐨勪竴鍗婄殑楂樺害(鍥哄畾)
+            int halfRoundHeigth = Application.GetRealHeight(116) / 2;
+
+            //鎼炰竴涓�忔槑鐨勬
+            var frameTransparent = new FrameLayout();
+            frameTransparent.Y = Application.GetRealHeight(1169);
+            frameTransparent.Height = Application.GetRealHeight(900);//楂樺害灏辨槸瑕佸畠瓒呰繃锛岄殢渚挎悶鐨�
+            frameTransparent.BackgroundColor = UserCenterColor.Current.Transparent;
+            bodyFrameLayout.AddChidren(frameTransparent);
+
+            //鐬庢悶鐨勪竴涓櫧妗�,鐢ㄦ潵鎸′綇澶撮儴鍗婂姬搴�
+            var frameBack = new FrameLayout();
+            frameBack.Y = halfRoundHeigth;
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            frameBack.Height = Application.GetRealHeight(300);
+            frameTransparent.AddChidren(frameBack);
+
+            //寮у害鐨勫渾
+            var rowRound = new FrameLayout();
+            rowRound.Width = bodyFrameLayout.Width;
+            rowRound.Height = halfRoundHeigth * 2;
+            rowRound.BackgroundColor = UserCenterColor.Current.White;
+            rowRound.Radius = (uint)halfRoundHeigth;
+            frameTransparent.AddChidren(rowRound);
+
+            //澶撮儴淇℃伅
+            var btnTitle = new NormalViewControl(frameTransparent.Width, Application.GetRealHeight(70), false);
+            btnTitle.Y = Application.GetRealHeight(28);
+            btnTitle.Text = Common.LocalDevice.Current.GetDeviceEpointName(device);
+            btnTitle.TextColor = UserCenterColor.Current.TextColor4;
+            btnTitle.TextSize = 16;
+            btnTitle.TextAlignment = TextAlignment.Center;
+            rowRound.AddChidren(btnTitle);
+
+            //鍙栨秷
+            var btnCancel = new NormalViewControl(200, 60, true);
+            btnCancel.X = Application.GetRealWidth(81);
+            btnCancel.Y = Application.GetRealHeight(38);
+            btnCancel.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnCancel.TextID = R.MyInternationalizationString.uCancel;
+            rowRound.AddChidren(btnCancel);
+            btnCancel.ButtonClickEvent += (sender, e) =>
+            {
+                this.CloseForm();
+            };
+
+            //瀹屾垚
+            var btnFinish = new NormalViewControl(200, 60, true);
+            btnFinish.X = Application.GetRealWidth(800);
+            btnFinish.Y = Application.GetRealHeight(38);
+            btnFinish.TextAlignment = TextAlignment.CenterRight;
+            btnFinish.TextColor = 0xfffb744a;
+            btnFinish.TextID = R.MyInternationalizationString.uFinish;
+            rowRound.AddChidren(btnFinish);
+
+            //绾�
+            var btnLine1 = new NormalViewControl(frameTransparent.Width, ControlCommonResourse.BottomLineHeight, false);
+            btnLine1.Y = Application.GetRealHeight(138);
+            btnLine1.BackgroundColor = UserCenterColor.Current.ButtomLine;
+            frameTransparent.AddChidren(btnLine1);
+
+            //鏄庣粏鍒楄〃鐨勬甯冿紝鐧借壊鑳屾櫙
+            var detailBackFrame = new FrameLayout();
+            detailBackFrame.Y = btnLine1.Bottom;
+            detailBackFrame.Height = Application.GetRealHeight(700);//闅忎究瀹氱殑
+            detailBackFrame.BackgroundColor = UserCenterColor.Current.White;
+            frameTransparent.AddChidren(detailBackFrame);
+
+            //鐧惧垎姣�
+            var btnPersent = new NormalViewControl(150, 50, true);
+            btnPersent.Y = Application.GetRealHeight(196);
+            btnPersent.Gravity = Gravity.CenterHorizontal;
+            btnPersent.TextAlignment = TextAlignment.Center;
+            btnPersent.TextColor = UserCenterColor.Current.TextGrayColor2;
+            btnPersent.TextSize = 12;
+            detailBackFrame.AddChidren(btnPersent);
+            if (dicTaskinfo.ContainsKey(5) == true)
+            {
+                btnPersent.Text = dicTaskinfo[5].Data2 + "%";
+            }
+
+            //杩涘害鏉�
+            var seekBar = new HorizontalSeekBar();
+            seekBar.Enable = false;
+            seekBar.Y = Application.GetRealHeight(268);
+            seekBar.Gravity = Gravity.CenterHorizontal;
+            seekBar.Width = Application.GetRealWidth(919);
+            seekBar.Height = Application.GetRealHeight(89);
+            seekBar.Max = 100;
+            seekBar.BackgroundColor = 0xfff5f5f5;
+            seekBar.ThumbColor = Common.ZigbeeColor.Current.GXCButtonBlueColor;
+            seekBar.ProgressColor = 0xfffdb500;
+            if (dicTaskinfo.ContainsKey(5) == true)
+            {
+                //5:鐧惧垎姣旇皟鑺�
+                seekBar.Progress = dicTaskinfo[5].Data2;
+            }
+            detailBackFrame.AddChidren(seekBar);
+            seekBar.ProgressChanged += (sender, value) =>
+            {
+                btnPersent.Text = value + "%";
+            };
+
+            //绾�
+            var btnLine2 = new NormalViewControl(Application.GetRealWidth(919), ControlCommonResourse.BottomLineHeight, false);
+            btnLine2.Y = Application.GetRealHeight(417);
+            btnLine2.Gravity = Gravity.CenterHorizontal;
+            btnLine2.BackgroundColor = UserCenterColor.Current.ButtomLine;
+            detailBackFrame.AddChidren(btnLine2);
+
+            //寮�
+            var rowOpen = new FrameRowControl();
+            rowOpen.Y = Application.GetRealHeight(69);
+            rowOpen.LeftOffset = Application.GetRealWidth(81) - ControlCommonResourse.XXLeft;
+            rowOpen.RightOffset = ControlCommonResourse.XXLeft - Application.GetRealWidth(81);
+            detailBackFrame.AddChidren(rowOpen);
+            var btnOpen = rowOpen.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSimpleOpen), 400);
+            btnOpen.TextColor = UserCenterColor.Current.TextGrayColor3;
+            var btnOpenSelect = rowOpen.AddMostRightEmptyIcon(58, 58);
+            btnOpenSelect.UnSelectedImagePath = "Item/ItemSelected.png";
+            btnOpenSelect.Visible = false;
+
+            //鍏�
+            var rowClose = new FrameRowControl();
+            rowClose.Y = btnLine2.Bottom + Application.GetRealHeight(12);
+            rowClose.LeftOffset = Application.GetRealWidth(81) - ControlCommonResourse.XXLeft;
+            rowClose.RightOffset = ControlCommonResourse.XXLeft - Application.GetRealWidth(81);
+            detailBackFrame.AddChidren(rowClose);
+            var btnClose = rowClose.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSimpleClose), 400);
+            btnClose.TextColor = UserCenterColor.Current.TextGrayColor3;
+            var btnCloseSelect = rowClose.AddMostRightEmptyIcon(58, 58);
+            btnCloseSelect.UnSelectedImagePath = "Item/ItemSelected.png";
+            btnCloseSelect.Visible = false;
+
+            //鐐瑰嚮寮�
+            rowOpen.ButtonClickEvent += (sender, e) =>
+            {
+                if (btnOpenSelect.Visible == true)
+                {
+                    //鍙栨秷,寮� 涓嶅彲鐢�
+                    btnOpenSelect.Visible = false;
+                    btnOpen.TextColor = UserCenterColor.Current.TextGrayColor3;
+                    seekBar.Enable = false;
+                    seekBar.ProgressColor = 0xffe8e8e8;
+
+                    dicTaskinfo.Remove(0);
+                }
+                else
+                {
+                    //閫夋嫨鍥炬爣鍒囨崲
+                    btnOpenSelect.Visible = true;
+                    btnCloseSelect.Visible = false;
+
+                    //寮� 鍙敤
+                    btnOpen.TextColor = UserCenterColor.Current.TextColor1;
+                    seekBar.Enable = true;
+                    seekBar.ProgressColor = 0xfffdb500;
+
+                    //鍏� 涓嶅彲鐢�
+                    btnClose.TextColor = UserCenterColor.Current.TextGrayColor3;
+
+                    //绉婚櫎鍏抽棴
+                    dicTaskinfo.Remove(1);
+
+                    dicTaskinfo[0] = new Safeguard.TaskListInfo();
+                    dicTaskinfo[0].TaskType = 6;
+                    dicTaskinfo[0].Data1 = 0;
+                }
+            };
+            //鐐瑰嚮鍏�
+            rowClose.ButtonClickEvent += (sender, e) =>
+            {
+                if (btnCloseSelect.Visible == true)
+                {
+                    //鍙栨秷,鍏� 涓嶅彲鐢�
+                    btnCloseSelect.Visible = false;
+                    btnClose.TextColor = UserCenterColor.Current.TextGrayColor3;
+
+                    dicTaskinfo.Remove(1);
+                }
+                else
+                {
+                    //閫夋嫨鍥炬爣鍒囨崲
+                    btnCloseSelect.Visible = true;
+                    btnOpenSelect.Visible = false;
+
+                    //鍏� 鍙敤
+                    btnClose.TextColor = UserCenterColor.Current.TextColor1;
+
+                    //寮� 涓嶅彲鐢�
+                    btnOpen.TextColor = UserCenterColor.Current.TextGrayColor3;
+                    seekBar.Enable = false;
+                    seekBar.ProgressColor = 0xffe8e8e8;
+
+                    //绉婚櫎鎵撳紑
+                    dicTaskinfo.Remove(0);
+
+                    dicTaskinfo[1] = new Safeguard.TaskListInfo();
+                    dicTaskinfo[1].TaskType = 6;
+                    dicTaskinfo[1].Data1 = 1;
+                }
+            };
+
+            //璁剧疆寮�鐨勯粯璁ゅ��
+            if (dicTaskinfo.ContainsKey(0) == true)
+            {
+                rowOpen.ButtonClickEvent?.Invoke(null, null);
+            }
+            //璁剧疆鍏崇殑榛樿鍊�
+            if (dicTaskinfo.ContainsKey(1) == true)
+            {
+                rowClose.ButtonClickEvent?.Invoke(null, null);
+            }
+
+            //瀹屾垚浜嬩欢
+            btnFinish.ButtonClickEvent += (sender, e) =>
+            {
+                if (btnOpenSelect.Visible == false || seekBar.Progress == 0)
+                {
+                    //绉婚櫎寮�鐧惧垎姣�
+                    dicTaskinfo.Remove(5);
+                }
+                else
+                {
+                    //鐧惧垎姣旇皟鑺�
+                    dicTaskinfo[5] = new Safeguard.TaskListInfo();
+                    dicTaskinfo[5].TaskType = 6;
+                    dicTaskinfo[5].Data1 = 5;
+                    dicTaskinfo[5].Data2 = seekBar.Progress;
+                }
+
+                var listData = new List<Safeguard.TaskListInfo>();
+                foreach (var data in dicTaskinfo.Values)
+                {
+                    listData.Add(data);
+                }
+
+                //鑾峰彇鐘舵�佺殑鏄剧ず鏂囨湰
+                string statuText = HdlSafeguardLogic.Current.GetLightAlarmStatuText(listData);
+                this.FinishSelectEvent?.Invoke(statuText, listData);
+
+                this.CloseForm();
+            };
+            //鍔ㄧ敾鏁堟灉
+            frameTransparent.Animate = Animate.DownToUp;
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰鍏抽棴___________________________
+
+        /// <summary>
+        /// 鐣岄潰鍏抽棴
+        /// </summary>
+        public override void CloseForm()
+        {
+            this.FinishSelectEvent = null;
+
+            base.CloseForm();
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectLightForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectLightForm.cs
new file mode 100755
index 0000000..6a06cc5
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectLightForm.cs
@@ -0,0 +1,312 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 鐏厜绫荤殑瀹夐槻鎶ヨ璁剧疆鐣岄潰
+    /// </summary>
+    public class AlarmTargetStatuSelectLightForm : DialogCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 缁撴潫閫夋嫨鐨勪簨浠�(key:鍏ㄩ儴鐘舵�佺殑缈昏瘧鏂囨湰)
+        /// </summary>
+        public Action<string, List<Safeguard.TaskListInfo>> FinishSelectEvent = null;
+        /// <summary>
+        /// 鍔ㄤ綔淇℃伅  1 寮�鍏�/ 3浜害璋冭妭
+        /// </summary>
+        private Dictionary<int, Safeguard.TaskListInfo> dicTaskinfo = new Dictionary<int, Safeguard.TaskListInfo>();
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="i_listTaskInfo"></param>
+        public void ShowForm(CommonDevice device, List<Safeguard.TaskListInfo> i_listTaskInfo)
+        {
+            if (i_listTaskInfo != null)
+            {
+                foreach (var data in i_listTaskInfo)
+                {
+                    //浠ラ槻涓囦竴,鍓旈櫎涓嶅悎娉曟暟鎹�
+                    if (data.TaskType == 1 || data.TaskType == 3)
+                    {
+                        dicTaskinfo[data.TaskType] = data;
+                    }
+                }
+            }
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame(device);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame(CommonDevice device)
+        {
+            //寮у害鐨勫渾鐨勪竴鍗婄殑楂樺害(鍥哄畾)
+            int halfRoundHeigth = Application.GetRealHeight(116) / 2;
+
+            //鎼炰竴涓�忔槑鐨勬
+            var frameTransparent = new FrameLayout();
+            frameTransparent.Y = Application.GetRealHeight(1169);
+            frameTransparent.Height = Application.GetRealHeight(900);//楂樺害灏辨槸瑕佸畠瓒呰繃锛岄殢渚挎悶鐨�
+            frameTransparent.BackgroundColor = UserCenterColor.Current.Transparent;
+            bodyFrameLayout.AddChidren(frameTransparent);
+
+            //鐬庢悶鐨勪竴涓櫧妗�,鐢ㄦ潵鎸′綇澶撮儴鍗婂姬搴�
+            var frameBack = new FrameLayout();
+            frameBack.Y = halfRoundHeigth;
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            frameBack.Height = Application.GetRealHeight(300);
+            frameTransparent.AddChidren(frameBack);
+
+            //寮у害鐨勫渾
+            var rowRound = new FrameLayout();
+            rowRound.Width = bodyFrameLayout.Width;
+            rowRound.Height = halfRoundHeigth * 2;
+            rowRound.BackgroundColor = UserCenterColor.Current.White;
+            rowRound.Radius = (uint)halfRoundHeigth;
+            frameTransparent.AddChidren(rowRound);
+
+            //澶撮儴淇℃伅
+            var btnTitle = new NormalViewControl(frameTransparent.Width, Application.GetRealHeight(70), false);
+            btnTitle.Y = Application.GetRealHeight(28);
+            btnTitle.Text = Common.LocalDevice.Current.GetDeviceEpointName(device);
+            btnTitle.TextColor = UserCenterColor.Current.TextColor4;
+            btnTitle.TextSize = 16;
+            btnTitle.TextAlignment = TextAlignment.Center;
+            rowRound.AddChidren(btnTitle);
+
+            //鍙栨秷
+            var btnCancel = new NormalViewControl(200, 60, true);
+            btnCancel.X = Application.GetRealWidth(81);
+            btnCancel.Y = Application.GetRealHeight(38);
+            btnCancel.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnCancel.TextID = R.MyInternationalizationString.uCancel;
+            rowRound.AddChidren(btnCancel);
+            btnCancel.ButtonClickEvent += (sender, e) =>
+            {
+                this.CloseForm();
+            };
+
+            //瀹屾垚
+            var btnFinish = new NormalViewControl(200, 60, true);
+            btnFinish.X = Application.GetRealWidth(800);
+            btnFinish.Y = Application.GetRealHeight(38);
+            btnFinish.TextAlignment = TextAlignment.CenterRight;
+            btnFinish.TextColor = 0xfffb744a;
+            btnFinish.TextID = R.MyInternationalizationString.uFinish;
+            rowRound.AddChidren(btnFinish);
+
+            //绾�
+            var btnLine1 = new NormalViewControl(frameTransparent.Width, ControlCommonResourse.BottomLineHeight, false);
+            btnLine1.Y = Application.GetRealHeight(138);
+            btnLine1.BackgroundColor = UserCenterColor.Current.ButtomLine;
+            frameTransparent.AddChidren(btnLine1);
+
+            //鏄庣粏鍒楄〃鐨勬甯冿紝鐧借壊鑳屾櫙
+            var detailBackFrame = new FrameLayout();
+            detailBackFrame.Y = btnLine1.Bottom;
+            detailBackFrame.Height = Application.GetRealHeight(700);//闅忎究瀹氱殑
+            detailBackFrame.BackgroundColor = UserCenterColor.Current.White;
+            frameTransparent.AddChidren(detailBackFrame);
+
+            //鐧惧垎姣�
+            var btnPersent = new NormalViewControl(150, 50, true);
+            btnPersent.Y = Application.GetRealHeight(196);
+            btnPersent.Gravity = Gravity.CenterHorizontal;
+            btnPersent.TextAlignment = TextAlignment.Center;
+            btnPersent.TextColor = UserCenterColor.Current.TextGrayColor2;
+            btnPersent.TextSize = 12;
+            detailBackFrame.AddChidren(btnPersent);
+            if (dicTaskinfo.ContainsKey(3) == true)
+            {
+                btnPersent.Text = dicTaskinfo[3].Data1 + "%";
+            }
+
+            //杩涘害鏉�
+            var seekBar = new HorizontalSeekBar();
+            seekBar.Enable = false;
+            seekBar.Y = Application.GetRealHeight(268);
+            seekBar.Gravity = Gravity.CenterHorizontal;
+            seekBar.Width = Application.GetRealWidth(919);
+            seekBar.Height = Application.GetRealHeight(89);
+            seekBar.Max = 100;
+            seekBar.BackgroundColor = 0xfff5f5f5;
+            seekBar.ThumbColor = Common.ZigbeeColor.Current.GXCButtonBlueColor;
+            seekBar.ProgressColor = 0xfffdb500;
+            if (dicTaskinfo.ContainsKey(3) == true)
+            {
+                //3:浜害璋冭妭
+                seekBar.Progress = dicTaskinfo[3].Data1;
+            }
+            detailBackFrame.AddChidren(seekBar);
+            seekBar.ProgressChanged += (sender, value) =>
+            {
+                btnPersent.Text = value + "%";
+            };
+
+            //绾�
+            var btnLine2 = new NormalViewControl(Application.GetRealWidth(919), ControlCommonResourse.BottomLineHeight, false);
+            btnLine2.Y = Application.GetRealHeight(417);
+            btnLine2.Gravity = Gravity.CenterHorizontal;
+            btnLine2.BackgroundColor = UserCenterColor.Current.ButtomLine;
+            detailBackFrame.AddChidren(btnLine2);
+
+            //寮�
+            var rowOpen = new FrameRowControl();
+            rowOpen.Y = Application.GetRealHeight(69);
+            rowOpen.LeftOffset = Application.GetRealWidth(81) - ControlCommonResourse.XXLeft;
+            rowOpen.RightOffset = ControlCommonResourse.XXLeft - Application.GetRealWidth(81);
+            detailBackFrame.AddChidren(rowOpen);
+            var btnOpen = rowOpen.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSimpleOpen), 400);
+            btnOpen.TextColor = UserCenterColor.Current.TextGrayColor3;
+            var btnOpenSelect = rowOpen.AddMostRightEmptyIcon(58, 58);
+            btnOpenSelect.UnSelectedImagePath = "Item/ItemSelected.png";
+            btnOpenSelect.Visible = false;
+
+            //鍏�
+            var rowClose = new FrameRowControl();
+            rowClose.Y = btnLine2.Bottom + Application.GetRealHeight(12);
+            rowClose.LeftOffset = Application.GetRealWidth(81) - ControlCommonResourse.XXLeft;
+            rowClose.RightOffset = ControlCommonResourse.XXLeft - Application.GetRealWidth(81);
+            detailBackFrame.AddChidren(rowClose);
+            var btnClose = rowClose.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSimpleClose), 400);
+            btnClose.TextColor = UserCenterColor.Current.TextGrayColor3;
+            var btnCloseSelect = rowClose.AddMostRightEmptyIcon(58, 58);
+            btnCloseSelect.UnSelectedImagePath = "Item/ItemSelected.png";
+            btnCloseSelect.Visible = false;
+
+            //鐐瑰嚮寮�
+            rowOpen.ButtonClickEvent += (sender, e) =>
+            {
+                if (btnOpenSelect.Visible == true)
+                {
+                    //鍙栨秷,寮� 涓嶅彲鐢�
+                    btnOpenSelect.Visible = false;
+                    btnOpen.TextColor = UserCenterColor.Current.TextGrayColor3;
+                    seekBar.Enable = false;
+                    seekBar.ProgressColor = 0xffe8e8e8;
+
+                    dicTaskinfo.Remove(1);
+                }
+                else
+                {
+                    //閫夋嫨鍥炬爣鍒囨崲
+                    btnOpenSelect.Visible = true;
+                    btnCloseSelect.Visible = false;
+
+                    //寮� 鍙敤
+                    btnOpen.TextColor = UserCenterColor.Current.TextColor1;
+                    seekBar.Enable = true;
+                    seekBar.ProgressColor = 0xfffdb500;
+
+                    //鍏� 涓嶅彲鐢�
+                    btnClose.TextColor = UserCenterColor.Current.TextGrayColor3;
+
+                    dicTaskinfo[1] = new Safeguard.TaskListInfo();
+                    dicTaskinfo[1].TaskType = 1;
+                    dicTaskinfo[1].Data1 = 1;
+                }
+            };
+            //鐐瑰嚮鍏�
+            rowClose.ButtonClickEvent += (sender, e) =>
+            {
+                if (btnCloseSelect.Visible == true)
+                {
+                    //鍙栨秷,鍏� 涓嶅彲鐢�
+                    btnCloseSelect.Visible = false;
+                    btnClose.TextColor = UserCenterColor.Current.TextGrayColor3;
+
+                    dicTaskinfo.Remove(1);
+                }
+                else
+                {
+                    //閫夋嫨鍥炬爣鍒囨崲
+                    btnCloseSelect.Visible = true;
+                    btnOpenSelect.Visible = false;
+
+                    //鍏� 鍙敤
+                    btnClose.TextColor = UserCenterColor.Current.TextColor1;
+
+                    //寮� 涓嶅彲鐢�
+                    btnOpen.TextColor = UserCenterColor.Current.TextGrayColor3;
+                    seekBar.Enable = false;
+                    seekBar.ProgressColor = 0xffe8e8e8;
+
+                    dicTaskinfo[1] = new Safeguard.TaskListInfo();
+                    dicTaskinfo[1].TaskType = 1;
+                    dicTaskinfo[1].Data1 = 0;
+                }
+            };
+
+            //璁剧疆寮�鐨勯粯璁ゅ��
+            if (dicTaskinfo.ContainsKey(1) == true && dicTaskinfo[1].Data1 == 1)
+            {
+                rowOpen.ButtonClickEvent?.Invoke(null, null);
+            }
+            //璁剧疆鍏崇殑榛樿鍊�
+            if (dicTaskinfo.ContainsKey(1) == true && dicTaskinfo[1].Data1 == 0)
+            {
+                rowClose.ButtonClickEvent?.Invoke(null, null);
+            }
+
+            //瀹屾垚浜嬩欢
+            btnFinish.ButtonClickEvent += (sender, e) =>
+            {
+                if (btnOpenSelect.Visible == false || seekBar.Progress == 0)
+                {
+                    //绉婚櫎鐧惧垎姣�
+                    dicTaskinfo.Remove(3);
+                }
+                else
+                {
+                    //鐧惧垎姣旇皟鑺�
+                    dicTaskinfo[3] = new Safeguard.TaskListInfo();
+                    dicTaskinfo[3].TaskType = 3;
+                    dicTaskinfo[3].Data1 = seekBar.Progress;
+                }
+
+                var listData = new List<Safeguard.TaskListInfo>();
+                foreach (var data in dicTaskinfo.Values)
+                {
+                    listData.Add(data);
+                }
+                dicTaskinfo = null;
+
+                //鑾峰彇鐘舵�佺殑鏄剧ず鏂囨湰
+                string statuText = HdlSafeguardLogic.Current.GetLightAlarmStatuText(listData);
+                this.FinishSelectEvent?.Invoke(statuText, listData);
+
+                this.CloseForm();
+            };
+            //鍔ㄧ敾鏁堟灉
+            frameTransparent.Animate = Animate.DownToUp;
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰鍏抽棴___________________________
+
+        /// <summary>
+        /// 鐣岄潰鍏抽棴
+        /// </summary>
+        public override void CloseForm()
+        {
+            this.FinishSelectEvent = null;
+            base.CloseForm();
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectSwitchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectSwitchForm.cs
new file mode 100755
index 0000000..8981e93
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetStatuSelectSwitchForm.cs
@@ -0,0 +1,267 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 寮�鍏崇被鐨勫畨闃叉姤璀﹁缃晫闈�
+    /// </summary>
+    public class AlarmTargetStatuSelectSwitchForm : DialogCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 缁撴潫閫夋嫨鐨勪簨浠�(key:鍏ㄩ儴鐘舵�佺殑缈昏瘧鏂囨湰)
+        /// </summary>
+        public Action<string, List<Safeguard.TaskListInfo>> FinishSelectEvent = null;
+        /// <summary>
+        /// 鍔ㄤ綔淇℃伅  0鍏抽棴/ 1鎵撳紑
+        /// </summary>
+        private Dictionary<int, Safeguard.TaskListInfo> dicTaskinfo = new Dictionary<int, Safeguard.TaskListInfo>();
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="i_listTaskInfo"></param>
+        public void ShowForm(CommonDevice device, List<Safeguard.TaskListInfo> i_listTaskInfo)
+        {
+            if (i_listTaskInfo != null)
+            {
+                foreach (var data in i_listTaskInfo)
+                {
+                    //浠ラ槻涓囦竴,鍓旈櫎涓嶅悎娉曟暟鎹�
+                    if (data.TaskType == 1)
+                    {
+                        dicTaskinfo[data.Data1] = data;
+                    }
+                }
+            }
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame(device);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame(CommonDevice device)
+        {
+            //寮у害鐨勫渾鐨勪竴鍗婄殑楂樺害(鍥哄畾)
+            int halfRoundHeigth = Application.GetRealHeight(116) / 2;
+
+            //鎼炰竴涓�忔槑鐨勬
+            var frameTransparent = new FrameLayout();
+            frameTransparent.Y = Application.GetRealHeight(1391);
+            frameTransparent.Height = Application.GetRealHeight(600);//楂樺害灏辨槸瑕佸畠瓒呰繃锛岄殢渚挎悶鐨�
+            frameTransparent.BackgroundColor = UserCenterColor.Current.Transparent;
+            bodyFrameLayout.AddChidren(frameTransparent);
+
+            //鐬庢悶鐨勪竴涓櫧妗�,鐢ㄦ潵鎸′綇澶撮儴鍗婂姬搴�
+            var frameBack = new FrameLayout();
+            frameBack.Y = halfRoundHeigth;
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            frameBack.Height = Application.GetRealHeight(300);
+            frameTransparent.AddChidren(frameBack);
+
+            //寮у害鐨勫渾
+            var rowRound = new FrameLayout();
+            rowRound.Width = bodyFrameLayout.Width;
+            rowRound.Height = halfRoundHeigth * 2;
+            rowRound.BackgroundColor = UserCenterColor.Current.White;
+            rowRound.Radius = (uint)halfRoundHeigth;
+            frameTransparent.AddChidren(rowRound);
+
+            //澶撮儴淇℃伅
+            var btnTitle = new NormalViewControl(frameTransparent.Width, Application.GetRealHeight(70), false);
+            btnTitle.Y = Application.GetRealHeight(28);
+            btnTitle.Text = Common.LocalDevice.Current.GetDeviceEpointName(device);
+            btnTitle.TextColor = UserCenterColor.Current.TextColor4;
+            btnTitle.TextSize = 16;
+            btnTitle.TextAlignment = TextAlignment.Center;
+            rowRound.AddChidren(btnTitle);
+
+            //鍙栨秷
+            var btnCancel = new NormalViewControl(200, 60, true);
+            btnCancel.X = Application.GetRealWidth(81);
+            btnCancel.Y = Application.GetRealHeight(38);
+            btnCancel.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnCancel.TextID = R.MyInternationalizationString.uCancel;
+            rowRound.AddChidren(btnCancel);
+            btnCancel.ButtonClickEvent += (sender, e) =>
+            {
+                this.CloseForm();
+            };
+
+            //瀹屾垚
+            var btnFinish = new NormalViewControl(200, 60, true);
+            btnFinish.X = Application.GetRealWidth(800);
+            btnFinish.Y = Application.GetRealHeight(38);
+            btnFinish.TextAlignment = TextAlignment.CenterRight;
+            btnFinish.TextColor = 0xfffb744a;
+            btnFinish.TextID = R.MyInternationalizationString.uFinish;
+            rowRound.AddChidren(btnFinish);
+
+            //绾�
+            var btnLine1 = new NormalViewControl(frameTransparent.Width, ControlCommonResourse.BottomLineHeight, false);
+            btnLine1.Y = Application.GetRealHeight(138);
+            btnLine1.BackgroundColor = UserCenterColor.Current.ButtomLine;
+            frameTransparent.AddChidren(btnLine1);
+
+            //鏄庣粏鍒楄〃鐨勬甯冿紝鐧借壊鑳屾櫙
+            var detailBackFrame = new FrameLayout();
+            detailBackFrame.Y = btnLine1.Bottom;
+            detailBackFrame.Height = Application.GetRealHeight(700);//闅忎究瀹氱殑
+            detailBackFrame.BackgroundColor = UserCenterColor.Current.White;
+            frameTransparent.AddChidren(detailBackFrame);
+
+            //鐧惧垎姣�
+            var btnPersent = new NormalViewControl(150, 50, true);
+            btnPersent.Y = Application.GetRealHeight(196);
+            btnPersent.Gravity = Gravity.CenterHorizontal;
+            btnPersent.TextAlignment = TextAlignment.Center;
+            btnPersent.TextColor = UserCenterColor.Current.TextGrayColor2;
+            btnPersent.TextSize = 12;
+            detailBackFrame.AddChidren(btnPersent);
+
+            //寮�
+            var rowOpen = new FrameRowControl();
+            rowOpen.Y = Application.GetRealHeight(69);
+            rowOpen.LeftOffset = Application.GetRealWidth(81) - ControlCommonResourse.XXLeft;
+            rowOpen.RightOffset = ControlCommonResourse.XXLeft - Application.GetRealWidth(81);
+            detailBackFrame.AddChidren(rowOpen);
+            var btnOpen = rowOpen.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSimpleOpen), 400);
+            btnOpen.TextColor = UserCenterColor.Current.TextGrayColor3;
+            var btnOpenSelect = rowOpen.AddMostRightEmptyIcon(58, 58);
+            btnOpenSelect.UnSelectedImagePath = "Item/ItemSelected.png";
+            btnOpenSelect.Visible = false;
+            //搴曠嚎
+            rowOpen.AddBottomLine();
+
+            //鍏�
+            var rowClose = new FrameRowControl();
+            rowClose.Y = rowOpen.Bottom + Application.GetRealHeight(12);
+            rowClose.LeftOffset = Application.GetRealWidth(81) - ControlCommonResourse.XXLeft;
+            rowClose.RightOffset = ControlCommonResourse.XXLeft - Application.GetRealWidth(81);
+            detailBackFrame.AddChidren(rowClose);
+            var btnClose = rowClose.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSimpleClose), 400);
+            btnClose.TextColor = UserCenterColor.Current.TextGrayColor3;
+            var btnCloseSelect = rowClose.AddMostRightEmptyIcon(58, 58);
+            btnCloseSelect.UnSelectedImagePath = "Item/ItemSelected.png";
+            btnCloseSelect.Visible = false;
+
+            //鐐瑰嚮寮�
+            rowOpen.ButtonClickEvent += (sender, e) =>
+            {
+                if (btnOpenSelect.Visible == true)
+                {
+                    //鍙栨秷,寮� 涓嶅彲鐢�
+                    btnOpenSelect.Visible = false;
+                    btnOpen.TextColor = UserCenterColor.Current.TextGrayColor3;
+
+                    dicTaskinfo.Remove(1);
+                }
+                else
+                {
+                    //閫夋嫨鍥炬爣鍒囨崲
+                    btnOpenSelect.Visible = true;
+                    btnCloseSelect.Visible = false;
+
+                    //寮� 鍙敤
+                    btnOpen.TextColor = UserCenterColor.Current.TextColor1;
+                    //鍏� 涓嶅彲鐢�
+                    btnClose.TextColor = UserCenterColor.Current.TextGrayColor3;
+
+                    //绉婚櫎鍏抽棴
+                    dicTaskinfo.Remove(0);
+
+                    dicTaskinfo[1] = new Safeguard.TaskListInfo();
+                    dicTaskinfo[1].TaskType = 1;
+                    dicTaskinfo[1].Data1 = 1;
+                }
+            };
+            //鐐瑰嚮鍏�
+            rowClose.ButtonClickEvent += (sender, e) =>
+            {
+                if (btnCloseSelect.Visible == true)
+                {
+                    //鍙栨秷,鍏� 涓嶅彲鐢�
+                    btnCloseSelect.Visible = false;
+                    btnClose.TextColor = UserCenterColor.Current.TextGrayColor3;
+
+                    dicTaskinfo.Remove(0);
+                }
+                else
+                {
+                    //閫夋嫨鍥炬爣鍒囨崲
+                    btnCloseSelect.Visible = true;
+                    btnOpenSelect.Visible = false;
+
+                    //鍏� 鍙敤
+                    btnClose.TextColor = UserCenterColor.Current.TextColor1;
+
+                    //寮� 涓嶅彲鐢�
+                    btnOpen.TextColor = UserCenterColor.Current.TextGrayColor3;
+
+                    //绉婚櫎鎵撳紑
+                    dicTaskinfo.Remove(1);
+
+                    dicTaskinfo[0] = new Safeguard.TaskListInfo();
+                    dicTaskinfo[0].TaskType = 1;
+                    dicTaskinfo[0].Data1 = 0;
+                }
+            };
+
+            //璁剧疆寮�鐨勯粯璁ゅ��
+            if (dicTaskinfo.ContainsKey(1) == true)
+            {
+                rowOpen.ButtonClickEvent?.Invoke(null, null);
+            }
+            //璁剧疆鍏崇殑榛樿鍊�
+            if (dicTaskinfo.ContainsKey(0) == true)
+            {
+                rowClose.ButtonClickEvent?.Invoke(null, null);
+            }
+
+            //瀹屾垚浜嬩欢
+            btnFinish.ButtonClickEvent += (sender, e) =>
+            {
+                var listData = new List<Safeguard.TaskListInfo>();
+                foreach (var data in dicTaskinfo.Values)
+                {
+                    listData.Add(data);
+                }
+                dicTaskinfo = null;
+
+                //鑾峰彇鐘舵�佺殑鏄剧ず鏂囨湰
+                string statuText = HdlSafeguardLogic.Current.GetLightAlarmStatuText(listData);
+                this.FinishSelectEvent(statuText, listData);
+
+                this.CloseForm();
+            };
+            //鍔ㄧ敾鏁堟灉
+            frameTransparent.Animate = Animate.DownToUp;
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰鍏抽棴___________________________
+
+        /// <summary>
+        /// 鐣岄潰鍏抽棴
+        /// </summary>
+        public override void CloseForm()
+        {
+            this.FinishSelectEvent = null;
+            base.CloseForm();
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoerceContactSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoerceContactSettionForm.cs
deleted file mode 100755
index 8aeb73c..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoerceContactSettionForm.cs
+++ /dev/null
@@ -1,229 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-using ZigBee.Device;
-
-namespace Shared.Phone.UserCenter.Safety
-{
-    /// <summary>
-    /// 鑱旂郴浜鸿缃�
-    /// </summary>
-    public class CoerceContactSettionForm : EditorCommonForm
-    {
-        ///// <summary>
-        ///// 鍒楄〃鎺т欢
-        ///// </summary>
-        //private VerticalScrolViewLayout listView = null;
-        ///// <summary>
-        ///// 鍒楄〃鎺т欢鏈�澶氬彧鑳芥樉绀哄灏戣鎺т欢,濡傛灉瓒呰繃鏃�,楂樺害涓嶅啀鍙樺寲
-        ///// </summary>
-        //private int listViewCount = 7;
-        ///// <summary>
-        ///// 妗屽竷鎺т欢
-        ///// </summary>
-        //private FrameLayout frameTableLayout = null;
-        ///// <summary>
-        ///// 銆愭坊鍔犺仈绯讳汉銆戠殑琛�
-        ///// </summary>
-        //private StatuRowLayout addPersonRow = null;
-        ///// <summary>
-        ///// 鐢佃瘽鍒楄〃
-        ///// </summary>
-        //private List<Safeguard.PushTargetInfo> listPhoneData = null;
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        /// <param name="listData">宸茬粡瀛樺湪鐨勮仈绯绘柟寮�</param>
-        public void ShowForm(List<Safeguard.PushTargetInfo> listData)
-        {
-            //this.listPhoneData = listData;
-
-            ////璁$畻鐞嗚鍊�
-            //int maxHeight = Application.GetRealHeight(180) * 7;
-            //this.listViewCount = maxHeight / ControlCommonResourse.ListViewRowHeight;
-
-            //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uContactSettion));
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
-            //this.InitMiddleFrame();
-        }
-
-        ///// <summary>
-        ///// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        ///// </summary>
-        //private void InitMiddleFrame()
-        //{
-        //    //娓呯┖bodyFrame
-        //    this.ClearBodyFrame();
-
-        //    //鑳佽揩鐘舵�佷笅锛岃閫氱煡浜虹殑鑱旂郴鏂瑰紡
-        //    var btnTitle = new TitleViewControl();
-        //    btnTitle.TextColor = UserCenterColor.Current.TextGrayColor;
-        //    btnTitle.Y = Application.GetRealHeight(40);
-        //    btnTitle.TextID = R.MyInternationalizationString.uContactInCoerceStatu;
-        //    bodyFrameLayout.AddChidren(btnTitle);
-
-        //    this.frameTableLayout = new FrameLayout();
-        //    frameTableLayout.Y = btnTitle.Bottom;
-        //    bodyFrameLayout.AddChidren(this.frameTableLayout);
-
-        //    //璁剧疆涓棿閮ㄥ垎淇℃伅
-        //    this.SetMiddleInfo();
-        //}
-
-        ///// <summary>
-        ///// 璁剧疆涓棿閮ㄥ垎淇℃伅
-        ///// </summary>
-        //private void SetMiddleInfo()
-        //{
-        //    this.listView = new VerticalScrolViewLayout();
-        //    this.listView.Height = 0;
-        //    frameTableLayout.AddChidren(this.listView);
-
-        //    HdlThreadLogic.Current.Run(() =>
-        //    {
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            //娣诲姞鑱旂郴浜虹殑鏄庣粏琛�
-        //            this.AddPhoneNumList();
-        //            //娣诲姞銆愭坊鍔犺仈绯讳汉銆戠殑琛�
-        //            this.AddAddContactPersionRow();
-        //        });
-        //    });
-        //}
-
-        ///// <summary>
-        ///// 娣诲姞鑱旂郴浜虹殑鏄庣粏琛�
-        ///// </summary>
-        //private void AddPhoneNumList()
-        //{
-        //    int heightCount = listPhoneData.Count;
-        //    if (heightCount > listViewCount)
-        //    {
-        //        heightCount = listViewCount;
-        //    }
-
-        //    foreach (var data in listPhoneData)
-        //    {
-        //        //娣诲姞鑱旂郴浜鸿
-        //        this.AddPhoneNumRowLayout(data);
-        //    }
-        //}
-
-        ///// <summary>
-        ///// 娣诲姞鑱旂郴浜鸿
-        ///// </summary>
-        ///// <param name="data"></param>
-        //public void AddPhoneNumRowLayout(Safeguard.PushTargetInfo data)
-        //{
-        //    var row = new RowLayout();
-        //    row.Height = ControlCommonResourse.ListViewRowHeight;
-        //    this.listView.AddChidren(row);
-
-        //    //鍥炬爣
-        //    var btnIcon = new RowLeftIconView();
-        //    btnIcon.UnSelectedImagePath = "Center/ProfilePhotoMember.png";
-        //    row.AddChidren(btnIcon);
-
-        //    //鐢佃瘽鍙风爜
-        //    var btnPhone = new RowCenterView();
-        //    btnPhone.Text = "+" + data.PushNumber.Replace("-", " ");
-        //    row.AddChidren(btnPhone);
-
-        //    //鍒犻櫎
-        //    var btnDelete = new RowDeleteButton();
-        //    row.AddRightView(btnDelete);
-        //    btnDelete.MouseUpEventHandler += (sender, e) =>
-        //    {
-        //        string[] Arry = data.PushNumber.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries);
-        //        string PNumber = string.Empty;
-        //        string areaCode = string.Empty;
-        //        if (Arry.Length == 1)
-        //        {
-        //            PNumber = Arry[0];
-        //        }
-        //        else
-        //        {
-        //            areaCode= Arry[0];
-        //            PNumber = Arry[1];
-        //        }
-        //        string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg);
-        //        this.ShowConfirmMsg(msg, "DeleteCoercePhoneNumber", areaCode, PNumber, row);
-        //    };
-
-        //    //鏂版坊鍔犵殑鏃跺�欙紝鑷姩璋冩暣鐣岄潰楂樺害
-        //    this.AutoAdjustListViewHeight();
-        //}
-
-
-        ///// <summary>
-        ///// 娣诲姞銆愭坊鍔犺仈绯讳汉銆戠殑琛�
-        ///// </summary>
-        //private void AddAddContactPersionRow()
-        //{
-        //    this.addPersonRow = new StatuRowLayout();
-        //    addPersonRow.Y = this.listView.Bottom;
-        //    frameTableLayout.AddChidren(addPersonRow);
-
-        //    //娣诲姞鑱旂郴浜�
-        //    var txtAddPer = new RowCenterView(false);
-        //    txtAddPer.TextID = R.MyInternationalizationString.uAddContactPersion; ;
-        //    addPersonRow.AddChidren(txtAddPer);
-
-        //    //鍔犲彿鍥炬爣
-        //    var btnAdd = new MostRightEmptyView();
-        //    btnAdd.UnSelectedImagePath = "Item/Add.png";
-        //    btnAdd.SelectedImagePath = "Item/AddSelected.png";
-        //    addPersonRow.AddChidren(btnAdd);
-
-        //    addPersonRow.MouseUpEvent += (sender, e) =>
-        //    {
-        //        var form = new AddCoerceContactForm();
-        //        form.AddForm(this.listPhoneData);
-        //    };
-        //}
-
-        ///// <summary>
-        ///// 鍒犻櫎鑱旂郴浜烘柟寮�
-        ///// </summary>
-        ///// <param name="areaCode"></param>
-        ///// <param name="phone"></param>
-        ///// <param name="row"></param>
-        //public async void DeleteCoercePhoneNumber(string areaCode, string phone, RowLayout row)
-        //{
-        //    bool result = await Common.LocalSafeguard.Current.DeleteCoercePhoneNumber(areaCode, phone);
-        //    if (result == true)
-        //    {
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            row?.RemoveFromParent();
-
-        //            //鑷姩璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
-        //            this.AutoAdjustListViewHeight();
-
-        //            this.LoadFormMethodByName("CoercePasswordMainForm", "InitMiddleFrame");
-        //        });
-        //    }
-        //}
-
-        ///// <summary>
-        ///// 鑷姩璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
-        ///// </summary>
-        //private void AutoAdjustListViewHeight()
-        //{
-        //    if (this.listView == null || this.listView.ChildrenCount > this.listViewCount)
-        //    {
-        //        //涓嶅啀鎵╁ぇ
-        //        return;
-        //    }
-        //    this.listView.Height = this.listView.ChildrenCount * ControlCommonResourse.ListViewRowHeight;
-        //    if (this.addPersonRow != null)
-        //    {
-        //        //鏈夊彲鑳芥槸鐢婚潰姝e湪鍒濆鍖栫殑鏃跺��
-        //        this.addPersonRow.Y = this.listView.Bottom;
-        //    }
-        //}
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePasswordMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePasswordMainForm.cs
deleted file mode 100755
index 9cb20de..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePasswordMainForm.cs
+++ /dev/null
@@ -1,171 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace Shared.Phone.UserCenter.Safety
-{
-    /// <summary>
-    /// 鑳佽揩瀵嗙爜璁剧疆鐨勮彍鍗曠晫闈⑩槄
-    /// </summary>
-    public class CoercePasswordMainForm : EditorCommonForm
-    {
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        public void ShowForm()
-        {
-            //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uCoercePasswordSettion));
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
-            //this.InitMiddleFrame();
-        }
-
-        ///// <summary>
-        ///// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        ///// </summary>
-        //public void InitMiddleFrame()
-        //{
-        //    //娓呯┖bodyFrame
-        //    this.ClearBodyFrame();
-
-        //    //瀵嗙爜璁剧疆
-        //    string text = Language.StringByID(R.MyInternationalizationString.uPasswordSettion);
-        //    var rowPsw = new OnlyCenterViewRow(text);
-        //    //灏嗗浘鏍囨帶浠堕�傞厤涓恒�愮偣鍙枫�戞帶浠�
-        //    rowPsw.ChangedIconInPointMode();
-        //    bodyFrameLayout.AddChidren(rowPsw);
-        //    rowPsw.InitControl();
-        //    //鐐瑰彿鍥剧墖鏈夌偣鐗规畩锛岄渶瑕佽皟鏁村亸绉婚噺
-        //    rowPsw.btnName.X -= ControlCommonResourse.PointXXLeft;
-
-        //    //娣诲姞鍚戝彸鐨勫浘鏍�
-        //    rowPsw.AddRightArrow();
-        //    //鐘舵��
-        //    var btnStatuPsw = new RowSecondRightTextView();
-        //    rowPsw.AddChidren(btnStatuPsw);
-
-        //    rowPsw.MouseUpEvent += (sender, e) =>
-        //    {
-        //        var form = new EdtiorCoercePasswordForm();
-        //        form.AddForm(btnStatuPsw.TextColor != UserCenterColor.Current.Green);
-        //    };
-
-        //    //鑱旂郴浜鸿缃�
-        //    text = Language.StringByID(R.MyInternationalizationString.uContactSettion);
-        //    var rowContact = new OnlyCenterViewRow(text);
-        //    rowContact.Y = rowPsw.Bottom;
-        //    //灏嗗浘鏍囨帶浠堕�傞厤涓恒�愮偣鍙枫�戞帶浠�
-        //    rowContact.ChangedIconInPointMode();
-        //    bodyFrameLayout.AddChidren(rowContact);
-        //    rowContact.InitControl();
-        //    //鐐瑰彿鍥剧墖鏈夌偣鐗规畩锛岄渶瑕佽皟鏁村亸绉婚噺
-        //    rowContact.btnName.X -= ControlCommonResourse.PointXXLeft;
-
-        //    //娣诲姞鍚戝彸鐨勫浘鏍�
-        //    rowContact.AddRightArrow();
-        //    //鐘舵��
-        //    var btnStaturowContact = new RowSecondRightTextView();
-        //    rowContact.AddChidren(btnStaturowContact);
-
-        //    rowContact.MouseUpEvent += (sender, e) =>
-        //    {
-        //        var form = new CoerceContactSettionForm();
-        //        form.AddForm(btnStaturowContact.Tag);
-        //    };
-
-        //    //璁剧疆琛岀殑鐘舵��
-        //    this.SetRowStatu(btnStatuPsw, btnStaturowContact);
-        //}
-
-        ///// <summary>
-        ///// 璁剧疆琛岀殑鐘舵��
-        ///// </summary>
-        ///// <param name="btnStatuPsw"></param>
-        ///// <param name="btnStaturowContact"></param>
-        //private async void SetRowStatu(RowSecondRightTextView btnStatuPsw, RowSecondRightTextView btnStaturowContact)
-        //{
-        //    //寮�鍚繘搴︽潯
-        //    this.ShowProgressBar();
-
-        //    //鍒ゆ柇鏄惁璁剧疆鏈夎儊杩瘑鐮�
-        //    var listData = await Common.LocalSafeguard.Current.GetAllUserPassword();
-        //    bool isEsixt = false;
-        //    if (listData != null)
-        //    {
-        //        foreach (var data in listData)
-        //        {
-        //            if (data.UserId == 5)
-        //            {
-        //                isEsixt = true;
-        //                break;
-        //            }
-        //        }
-        //    }
-        //    else
-        //    {
-        //        //鍏抽棴杩涘害鏉�
-        //        this.CloseProgressBar(ShowReLoadMode.YES);
-        //        return;
-        //    }
-
-        //    if (isEsixt == true)
-        //    {
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            if (btnStatuPsw != null)
-        //            {
-        //                //宸茶缃�
-        //                btnStatuPsw.TextID = R.MyInternationalizationString.uAlreadySettion;
-        //                btnStatuPsw.TextColor = UserCenterColor.Current.Green;
-        //            }
-        //        });
-        //    }
-        //    else
-        //    {
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            if (btnStatuPsw != null)
-        //            {
-        //                //鏈缃�
-        //                btnStatuPsw.TextID = R.MyInternationalizationString.uNotHadSettion;
-        //                btnStatuPsw.TextColor = UserCenterColor.Current.Gray;
-        //            }
-        //        });
-        //    }
-
-        //    //鑾峰彇鑱旂郴鏂瑰紡
-        //    var result = await Common.LocalSafeguard.Current.GetCoercePhoneNumber();
-        //    if (result == null || result.Actions.Count == 0 || result.Actions[0].PushTarget.Count == 0)
-        //    {
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            if (btnStaturowContact != null)
-        //            {
-        //                //鏈缃�
-        //                btnStaturowContact.TextID = R.MyInternationalizationString.uNotHadSettion;
-        //                btnStaturowContact.TextColor = UserCenterColor.Current.Gray;
-        //                var data = new List<ZigBee.Device.Safeguard.PushTargetInfo>();
-        //                btnStaturowContact.Tag = data;
-        //            }
-        //        });
-        //    }
-        //    else
-        //    {
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            if (btnStaturowContact != null)
-        //            {
-        //                //宸茶缃�
-        //                btnStaturowContact.TextID = R.MyInternationalizationString.uAlreadySettion;
-        //                btnStaturowContact.TextColor = UserCenterColor.Current.Green;
-        //                btnStaturowContact.Tag = result.Actions[0].PushTarget;
-        //            }
-        //        });
-        //    }
-
-        //    //鍏抽棴杩涘害鏉�
-        //    this.CloseProgressBar();
-        //}
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddContactForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddContactForm.cs
new file mode 100755
index 0000000..86513a8
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddContactForm.cs
@@ -0,0 +1,228 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 娣诲姞鑳佽揩鑱旂郴浜�
+    /// </summary>
+    public class CoercePswAddContactForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 淇℃伅鎻愮ず鎺т欢
+        /// </summary>
+        private NormalViewControl btnErrorMsg = null;
+        /// <summary>
+        /// 鐢佃瘽鍒楄〃
+        /// </summary>
+        private List<Safeguard.PushTargetInfo> listPhoneData = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="listData"></param>
+        public void ShowForm(List<Safeguard.PushTargetInfo> listData)
+        {
+            this.listPhoneData = listData;
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddContactPersion));
+
+            var btnIcon = new MostRightIconControl(69, 69);
+            btnIcon.UnSelectedImagePath = "Item/PhoneBook.png";
+            topFrameLayout.AddChidren(btnIcon);
+            btnIcon.InitControl();
+            btnIcon.ButtonClickEvent += ((sender, e) =>
+            {
+            });
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            var frameBack = new FrameLayout();
+            frameBack.Height = Application.GetRealHeight(328);
+            frameBack.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(frameBack);
+
+            //鍦板尯鐮�
+            var btnArea = new NormalViewControl(127, 60, true);
+            btnArea.X = ControlCommonResourse.XXLeft;
+            btnArea.Y = Application.GetRealHeight(57);
+            btnArea.Text = "+86";
+            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;
+                };
+            };
+            //鐢佃瘽杈撳叆妗�
+            var txtPhone = new TextInputControl(Application.GetRealWidth(634), btnArea.Height, false);
+            txtPhone.X = btnArea.Right + Application.GetRealWidth(35);
+            txtPhone.Y = btnArea.Y;
+            txtPhone.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputPhoneNumber);
+            frameBack.AddChidren(txtPhone);
+            //鍙栨秷鍥炬爣
+            var btnCancel1 = new MostRightIconControl(69, 69);
+            btnCancel1.Gravity = Gravity.Frame;
+            btnCancel1.Y = Application.GetRealHeight(23);
+            btnCancel1.UnSelectedImagePath = "Item/CancelIcon.png";
+            frameBack.AddChidren(btnCancel1);
+            btnCancel1.InitControl();
+            btnCancel1.ButtonClickEvent += (sender, e) =>
+            {
+                txtPhone.Text = string.Empty;
+            };
+            //绾�
+            var btnLine = new NormalViewControl(Application.GetRealWidth(965), ControlCommonResourse.BottomLineHeight, false);
+            btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
+            btnLine.Y = Application.GetRealHeight(150);
+            btnLine.Gravity = Gravity.CenterHorizontal;
+            frameBack.AddChidren(btnLine);
+
+            //澶囨敞
+            var txtNote = new TextInputControl(Application.GetRealWidth(740), txtPhone.Height, false);
+            txtNote.X = ControlCommonResourse.XXLeft;
+            txtNote.Y = btnLine.Bottom + Application.GetRealHeight(60);
+            txtNote.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInpuBackup);
+            frameBack.AddChidren(txtNote);
+            //鍙栨秷鍥炬爣
+            var btnCancel2 = new MostRightIconControl(69, 69);
+            btnCancel2.Gravity = Gravity.Frame;
+            btnCancel2.Y = btnLine.Bottom + Application.GetRealHeight(29);
+            btnCancel2.UnSelectedImagePath = "Item/CancelIcon.png";
+            frameBack.AddChidren(btnCancel2);
+            btnCancel2.InitControl();
+            btnCancel2.ButtonClickEvent += (sender, e) =>
+            {
+                txtNote.Text = string.Empty;
+            };
+
+            //淇℃伅鎻愮ず
+            this.btnErrorMsg = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(60), false);
+            btnErrorMsg.X = ControlCommonResourse.XXLeft;
+            btnErrorMsg.Y = frameBack.Bottom + Application.GetRealHeight(29);
+            btnErrorMsg.TextColor = 0xfff75858;
+            btnErrorMsg.TextSize = 12;
+            bodyFrameLayout.AddChidren(btnErrorMsg);
+
+            //瀹屾垚
+            var btnFinish = new BottomClickButton();
+            btnFinish.TextID = R.MyInternationalizationString.uFinish;
+            bodyFrameLayout.AddChidren(btnFinish);
+            btnFinish.ButtonClickEvent += (sender, e) =>
+            {
+                //鎵嬫満鍙锋娴�
+                if (this.CheckPhoneNumber(btnArea.Text.Substring(1), txtPhone.Text.Trim(), txtNote.Text.Trim()) == false)
+                {
+                    return;
+                }
+                //鎵ц淇濆瓨鎵嬫満鎿嶄綔
+                this.SaveCoercePhoneNumber(btnArea.Text.Substring(1), txtPhone.Text.Trim(), txtNote.Text.Trim());
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞鑱旂郴浜烘柟寮廮____________________
+
+        /// <summary>
+        /// 鍙樻洿鑱旂郴浜烘柟寮�
+        /// </summary>
+        /// <param name="areaCode"></param>
+        /// <param name="phoneNum"></param>
+        private async void SaveCoercePhoneNumber(string areaCode, string phoneNum, string strNote)
+        {
+            Dictionary<string, string> dicPhone = new Dictionary<string, string>();
+            dicPhone[phoneNum] = areaCode;
+
+            //鍙樻洿
+            var result = await HdlSafeguardLogic.Current.SetCoercePhoneNumber(dicPhone);
+            if (result == false)
+            {
+                return;
+            }
+            this.CloseForm();
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 妫�娴嬫墜鏈哄彿
+        /// </summary>
+        /// <param name="areaCode"></param>
+        /// <param name="phone"></param>
+        /// <param name="strNote"></param>
+        private bool CheckPhoneNumber(string areaCode, string phone,string strNote)
+        {
+            //杈撳叆涓虹┖
+            if (phone == string.Empty)
+            {
+                //璇疯緭鍏ユ墜鏈哄彿
+                btnErrorMsg.Text = Language.StringByID(R.MyInternationalizationString.uPleaseInputPhoneNumber);
+                return false;
+            }
+            if (strNote == string.Empty)
+            {
+                //璇疯緭鍏ュ娉ㄥ悕绉�
+                btnErrorMsg.Text = Language.StringByID(R.MyInternationalizationString.uPleaseInpuBackup);
+                return false;
+            }
+
+            //妫�娴嬫墜鏈哄彿鏍煎紡
+            if (HdlCheckLogic.Current.CheckPhoneNumber(phone, areaCode) == false)
+            {
+                //杩欎笉鏄竴涓湁鏁堢殑鎵嬫満鍙�
+                btnErrorMsg.Text = Language.StringByID(R.MyInternationalizationString.uThisIsNotPhoneNumberType);
+                return false;
+            }
+            foreach (var data in this.listPhoneData)
+            {
+                if (data.PushNumber == areaCode + "-" + phone)
+                {
+                    //鑱旂郴鏂瑰紡宸茬粡瀛樺湪
+                    btnErrorMsg.Text = Language.StringByID(R.MyInternationalizationString.uThePhoneNumIsRepeat);
+                    return false;
+                }
+            }
+
+            btnErrorMsg.Text = string.Empty;
+
+            return true;
+        }
+
+        #endregion
+
+
+
+
+
+       
+
+     
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/EdtiorUserPasswordForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddNewForm.cs
similarity index 70%
copy from ZigbeeApp/Shared/Phone/UserCenter/Safety/EdtiorUserPasswordForm.cs
copy to ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddNewForm.cs
index b1c7237..e354820 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/EdtiorUserPasswordForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswAddNewForm.cs
@@ -5,16 +5,16 @@
 namespace Shared.Phone.UserCenter.Safety
 {
     /// <summary>
-    /// 淇敼鐢ㄦ埛瀵嗙爜鐨勭敾闈�
+    /// 鍒涘缓鏂扮殑鑳佽揩瀵嗙爜
     /// </summary>
-    public class EdtiorUserPasswordForm : EditorCommonForm
+    public class CoercePswAddNewForm : EditorCommonForm
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
 
         /// <summary>
         /// 鐢ㄦ埛璐﹀彿
         /// </summary>
-        private int pswNo = 0;
+        private int pswNo = 5;
         /// <summary>
         /// 绗竴涓瘑鐮�
         /// </summary>
@@ -31,28 +31,30 @@
         /// <summary>
         /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
         /// </summary>
-        /// <param name="i_pswNo">鐢ㄦ埛璐﹀彿</param>
-        /// <param name="i_titleText">澶撮儴鏍囬淇℃伅</param>
-        public void ShowForm(int i_pswNo, string i_titleText)
+        /// <param name="i_pswTip">瀵嗙爜澶囨敞</param>
+        public void ShowForm(string i_pswTip)
         {
-            this.pswNo = i_pswNo;
             //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(i_titleText);
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uCoercePassword));
 
             //鍒濆鍖栦腑閮ㄤ俊鎭�
-            this.InitMiddleFrame();
+            this.InitMiddleFrame(i_pswTip);
         }
 
         /// <summary>
         /// 鍒濆鍖栦腑閮ㄤ俊鎭�
         /// </summary>
-        private void InitMiddleFrame()
+        /// <param name="i_pswTip">瀵嗙爜澶囨敞</param>
+        private void InitMiddleFrame(string i_pswTip)
         {
             //娓呯┖bodyFrame
             this.ClearBodyFrame();
 
-            //璇疯緭鍏ユ柊瀹夐槻瀵嗙爜
-            pswControl = new PswNumberInputControl(Language.StringByID(R.MyInternationalizationString.uPleaseInputNewSafetyPassword), 4);
+            //璇疯緭鍏ユ柊鑳佽揩瀵嗙爜
+            pswControl = new PswNumberInputControl(Language.StringByID(R.MyInternationalizationString.uPleaseInputNewCoercePassword), 4);
+            pswControl.NumberIconBackColor = UserCenterColor.Current.White;
+            pswControl.Gravity = Gravity.CenterHorizontal;
+            pswControl.Y = Application.GetRealHeight(102);
             bodyFrameLayout.AddChidren(pswControl);
             pswControl.InitControl();
 
@@ -64,20 +66,20 @@
                     string msg = this.CheckPassword(firstPsw, pssword);
                     if (msg != string.Empty)
                     {
-                        //璇烽噸澶嶈緭鍏ユ柊瀹夐槻瀵嗙爜
-                        pswControl.ResetControlInfo(Language.StringByID(R.MyInternationalizationString.uPleaseRepeatInputNewSafetyPassword));
+                        //璇烽噸澶嶈緭鍏ユ柊鑳佽揩瀵嗙爜
+                        pswControl.ResetControlInfo(Language.StringByID(R.MyInternationalizationString.uPleaseRepeatInputNewCoercePassword));
                         //璁剧疆閿欒淇℃伅
                         pswControl.SetErrorMsg(msg);
                         return;
                     }
                     //鎵ц淇敼鐢ㄦ埛瀵嗙爜
-                    this.ChangedAdminPassword(firstPsw, pssword);
+                    this.ChangedAdminPassword(firstPsw, i_pswTip);
                 }
                 else
                 {
                     firstPsw = pssword;
-                    //璇烽噸澶嶈緭鍏ユ柊瀹夐槻瀵嗙爜
-                    pswControl.ResetControlInfo(Language.StringByID(R.MyInternationalizationString.uPleaseRepeatInputNewSafetyPassword));
+                    //璇烽噸澶嶈緭鍏ユ柊鑳佽揩瀵嗙爜
+                    pswControl.ResetControlInfo(Language.StringByID(R.MyInternationalizationString.uPleaseRepeatInputNewCoercePassword));
                 }
             };
         }
@@ -90,26 +92,30 @@
         /// 鎵ц淇敼鐢ㄦ埛瀵嗙爜
         /// </summary>
         /// <param name="pswValue1">鏂板瘑鐮�</param>
-        /// <param name="pswValue2">纭瀵嗙爜</param>
-        private async void ChangedAdminPassword(string pswValue1, string pswValue2)
+        private async void ChangedAdminPassword(string pswValue1, string i_titleText)
         {
             //鎵ц淇敼
-            bool result = await HdlSafeguardLogic.Current.ChangedUserPassword(this.pswNo, pswValue1);
+            bool result = await HdlSafeguardLogic.Current.ChangedUserPassword(this.pswNo, pswValue1, string.Empty);
             if (result == false)
             {
                 firstPsw = string.Empty;
-                //璇疯緭鍏ユ柊瀹夐槻瀵嗙爜
-                pswControl.ResetControlInfo(Language.StringByID(R.MyInternationalizationString.uPleaseInputNewSafetyPassword));
+                //璇疯緭鍏ユ柊鑳佽揩瀵嗙爜
+                pswControl.ResetControlInfo(Language.StringByID(R.MyInternationalizationString.uPleaseInputNewCoercePassword));
 
                 return;
             }
 
-            //鐢ㄦ埛瀵嗙爜宸叉洿鏂�
-            string msg = Language.StringByID(R.MyInternationalizationString.uUserPasswordRefreshMsg);
+            //鑳佽揩瀵嗙爜璁剧疆鎴愬姛
+            string msg = Language.StringByID(R.MyInternationalizationString.uSetCoercePasswordSuccess);
             this.ShowMassage(ShowMsgType.Tip, msg);
 
-            //鐣岄潰鐩存帴鍏抽棴(鏆傛椂)
+            //鐣岄潰鐩存帴鍏抽棴
             this.CloseForm();
+            //鍏抽棴缂栬緫鐣岄潰
+            this.CloseFormByFormName("CoercePswEditorForm");
+
+            var form = new CoercePswEditorForm();
+            form.AddForm(pswValue1, i_titleText);
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswEditorForm.cs
new file mode 100755
index 0000000..8249786
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CoercePswEditorForm.cs
@@ -0,0 +1,280 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 缂栬緫鑳佽揩瀵嗙爜鐨勭晫闈�
+    /// </summary>
+    public class CoercePswEditorForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鐢ㄦ埛璐﹀彿
+        /// </summary>
+        private int pswNo = 5;
+        /// <summary>
+        /// 瀵嗙爜
+        /// </summary>
+        private string password = string.Empty;
+        /// <summary>
+        /// 瀵嗙爜鎻愮ず
+        /// </summary>
+        private string passwordTip = string.Empty;
+        /// <summary>
+        /// 鍒楄〃鐨勬甯冩帶浠�
+        /// </summary>
+        private FrameLayout frameTable = null;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_password">鐢ㄦ埛瀵嗙爜</param>
+        /// <param name="i_passwordTip">鐢ㄦ埛瀵嗙爜鎻愮ず</param>
+        public void ShowForm(string i_password, string i_passwordTip)
+        {
+            this.password = i_password;
+            this.passwordTip = i_passwordTip;
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uCoercePassword));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame(i_password);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        /// <param name="i_password">鐢ㄦ埛瀵嗙爜</param>
+        private void InitMiddleFrame(string i_password)
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            this.frameTable = new FrameLayout();
+            frameTable.Height = bodyFrameLayout.Height;
+            bodyFrameLayout.AddChidren(frameTable);
+
+            var frameback = new FrameLayout();
+            frameback.Y = Application.GetRealHeight(179);
+            frameback.Height = Application.GetRealHeight(395);
+            frameback.Width = Application.GetRealWidth(717);
+            frameback.Gravity = Gravity.CenterHorizontal;
+            frameback.BackgroundImagePath = "Safeguard/SafeguardPasswordGround.png";
+            bodyFrameLayout.AddChidren(frameback);
+            //褰撳墠浣跨敤瀵嗙爜
+            var btnNowTip = new NormalViewControl(frameback.Width, Application.GetRealHeight(50), false);
+            btnNowTip.Y = Application.GetRealHeight(81);
+            btnNowTip.TextSize = 12;
+            btnNowTip.TextAlignment = TextAlignment.Center;
+            btnNowTip.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnNowTip.TextID = R.MyInternationalizationString.uNowUsePassword;
+            frameback.AddChidren(btnNowTip);
+            var btnPassword = new NormalViewControl(frameback.Width, Application.GetRealHeight(90), false);
+            btnPassword.TextAlignment = TextAlignment.Center;
+            btnPassword.Y = Application.GetRealHeight(150);
+            btnPassword.TextSize = 24;
+            btnPassword.TextColor = 0xfffc744b;
+            btnPassword.Text = i_password;
+            frameback.AddChidren(btnPassword);
+
+            //鍒濆鍖栧垪琛ㄦ帶浠�
+            this.InitListViewControl();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栧垪琛ㄦ帶浠�
+        /// </summary>
+        private void InitListViewControl()
+        {
+            this.frameTable.RemoveAll();
+
+            //鍒濆鍖栨甯�
+            var tableContr = new InformationEditorControl();
+            var listview = tableContr.InitControl(this.frameTable, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 711, 1025);
+
+            //澶囨敞淇℃伅
+            string caption = Language.StringByID(R.MyInternationalizationString.uNoteInformation);
+            var rowNote = new FrameCaptionInputControl(caption, passwordTip, listview.rowSpace / 2);
+            rowNote.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPlesaeInputNoteInformation);
+            rowNote.txtInput.MaxByte = 90;
+            listview.AddChidren(rowNote);
+            rowNote.InitControl();
+            rowNote.AddBottomLine();
+            rowNote.txtInput.FinishInputEvent += () =>
+            {
+                if (rowNote.Text == string.Empty)
+                {
+                    rowNote.Text = passwordTip;
+                    return;
+                }
+                if (passwordTip != rowNote.Text)
+                {
+                    //淇敼瀵嗙爜澶囨敞
+                    this.EditorPassworTip(password, rowNote.Text);
+                }
+            };
+
+            //淇敼瀵嗙爜
+            var rowPsw = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(rowPsw);
+            rowPsw.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uChangedPassword), 300);
+            rowPsw.AddRightArrow();
+            rowPsw.AddBottomLine();
+            rowPsw.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new CoercePswAddNewForm();
+                form.AddForm(rowNote.Text);
+            };
+
+            HdlThreadLogic.Current.RunThread(async () =>
+            {
+                //寮�鍚繘搴︽潯
+                this.ShowProgressBar();
+                //鑾峰彇鑱旂郴鏂瑰紡
+                var result = await HdlSafeguardLogic.Current.GetCoercePhoneNumber();
+                if (result == null)
+                {
+                    //鍏抽棴杩涘害鏉�
+                    this.CloseProgressBar(ShowReLoadMode.YES);
+                    return;
+                }
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar();
+
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    var listPhoneData = new List<ZigBee.Device.Safeguard.PushTargetInfo>();
+                    //鑱旂郴浜�
+                    var rowContact = new FrameRowControl(listview.rowSpace / 2);
+                    rowContact.UseClickStatu = false;
+                    listview.AddChidren(rowContact);
+                    rowContact.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uContactPersion), 300);
+                    var btnAdd = rowContact.AddMostRightEmptyIcon(81, 81);
+                    btnAdd.UnSelectedImagePath = "Item/Add.png";
+                    rowContact.ButtonClickEvent += (sender, e) =>
+                    {
+                        var form = new CoercePswAddContactForm();
+                        form.AddForm(listPhoneData);
+                    };
+
+                    if (result.Actions.Count > 0)
+                    {
+                        listPhoneData = result.Actions[0].PushTarget;
+                        foreach (var data in listPhoneData)
+                        {
+                            //娣诲姞鑱旂郴浜鸿
+                            this.AddPhoneNumRowLayout(listview, data);
+                        }
+                    }
+                    else
+                    {
+                        //娌℃湁鑱旂郴浜虹殑璇�,娣诲姞涓簳绾�
+                        rowContact.AddBottomLine();
+                    }
+                });
+            });
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞鑱旂郴浜鸿_______________________
+
+        /// <summary>
+        /// 娣诲姞鑱旂郴浜鸿
+        /// </summary>
+        /// <param name="listview"></param>
+        /// <param name="data"></param>
+        private void AddPhoneNumRowLayout(VerticalListControl listview, ZigBee.Device.Safeguard.PushTargetInfo data)
+        {
+            var rowContact = new RowLayoutControl();
+            rowContact.frameTable.UseClickStatu = false;
+            listview.AddChidren(rowContact);
+            //鑱旂郴鏂瑰紡
+            rowContact.frameTable.AddLeftCaption("+" + data.PushNumber.Replace("-", " "), 800);
+            rowContact.frameTable.AddBottomLine();
+            //鍒犻櫎
+            var btnDetete = rowContact.AddDeleteControl();
+            btnDetete.ButtonClickEvent += (sender, e) =>
+            {
+                string[] Arry = data.PushNumber.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries);
+                string PNumber = string.Empty;
+                string areaCode = string.Empty;
+                if (Arry.Length == 1)
+                {
+                    PNumber = Arry[0];
+                }
+                else
+                {
+                    areaCode = Arry[0];
+                    PNumber = Arry[1];
+                }
+                string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg);
+                this.ShowMassage(ShowMsgType.Confirm, msg, () =>
+                {
+                    //鍒犻櫎鑱旂郴浜烘柟寮�
+                    this.DeleteCoercePhoneNumber(areaCode, PNumber, rowContact);
+                });
+            };
+        }
+
+        /// <summary>
+        /// 鍒犻櫎鑱旂郴浜烘柟寮�
+        /// </summary>
+        /// <param name="areaCode"></param>
+        /// <param name="phone"></param>
+        /// <param name="rowContact"></param>
+        public async void DeleteCoercePhoneNumber(string areaCode, string phone, RowLayoutControl rowContact)
+        {
+            bool result = await HdlSafeguardLogic.Current.DeleteCoercePhoneNumber(areaCode, phone);
+            if (result == true)
+            {
+                rowContact.RemoveFromParent();
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 淇敼澶囨敞___________________________
+
+        /// <summary>
+        /// 淇敼瀵嗙爜澶囨敞
+        /// </summary>
+        /// <param name="i_password">鐢ㄦ埛瀵嗙爜</param>
+        /// <param name="i_passwordTip">鐢ㄦ埛瀵嗙爜鎻愮ず</param>
+        private async void EditorPassworTip(string i_password, string i_passwordTip)
+        {
+            var result = await HdlSafeguardLogic.Current.AddPassWordTips(this.pswNo, i_password, i_passwordTip);
+            if (result == true)
+            {
+                //淇敼澶囨敞淇℃伅鎴愬姛!
+                string msg = Language.StringByID(R.MyInternationalizationString.uEditorNoteInformationSuccess);
+                this.ShowMassage(ShowMsgType.Tip, msg);
+
+                this.passwordTip = i_passwordTip;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+        /// <summary>
+        /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
+        /// </summary>
+        public override int FormActionAgainEvent()
+        {
+            //鍒濆鍖栧垪琛ㄦ帶浠�
+            this.InitListViewControl();
+            return 1;
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/CurtainAlarmSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/CurtainAlarmSettionForm.cs
deleted file mode 100755
index e100eba..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/CurtainAlarmSettionForm.cs
+++ /dev/null
@@ -1,295 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-using ZigBee.Device;
-
-namespace Shared.Phone.UserCenter.Safety
-{
-    /// <summary>
-    /// 绐楀笜绫荤殑瀹夐槻鎶ヨ璁剧疆鐣岄潰
-    /// </summary>
-    public class CurtainAlarmSettionForm : EditorCommonForm
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        /// <summary>
-        /// 鐢婚潰鍏抽棴浜嬩欢
-        /// </summary>
-        public Action<string, List<Safeguard.TaskListInfo>> ActionFormClose = null;
-        /// <summary>
-        /// 鍔ㄤ綔淇℃伅  0 鎵撳紑/ 1鍏抽棴/ 2 鍋滄杞姩/ 4 璋冩暣鍒版寚瀹氶珮搴�/ 5 璋冩暣鍒版寚瀹氱殑鐧惧垎姣斿浣嶇疆 / 7 璋冩暣鍒版寚瀹氬�炬枩瑙�/ 8 璋冩暣鍒版寚瀹氱殑鐧惧垎姣斿�炬枩搴�
-        /// </summary>
-        private Dictionary<int, Safeguard.TaskListInfo> dicTaskinfo = new Dictionary<int, Safeguard.TaskListInfo>();
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖朹____________________________
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        /// <param name="device"></param>
-        /// <param name="i_listTaskInfo"></param>
-        public void ShowForm(CommonDevice device, List<Safeguard.TaskListInfo> i_listTaskInfo)
-        {
-            UserView.HomePage.Instance.ScrollEnabled = false;
-
-            if (i_listTaskInfo != null)
-            {
-                foreach (var data in i_listTaskInfo)
-                {
-                    //浠ラ槻涓囦竴,鍓旈櫎涓嶅悎娉曟暟鎹�
-                    if (data.TaskType == 6)
-                    {
-                        dicTaskinfo[data.Data1] = data;
-                    }
-                }
-            }
-
-            //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(Common.LocalDevice.Current.GetDeviceEpointName(device));
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
-            this.InitMiddleFrame();
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        /// </summary>
-        private void InitMiddleFrame()
-        {
-            //娓呯┖bodyFrame
-            this.ClearBodyFrame();
-
-            var frameTemp = new FrameLayout();
-            frameTemp.Height = Application.GetRealHeight(6);
-            frameTemp.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(frameTemp);
-
-            var listView = new VerticalListControl(29);
-            listView.Y = frameTemp.Bottom;
-            listView.BackgroundColor = UserCenterColor.Current.White;
-            listView.Height = Application.GetRealHeight(700 - 256 + 46);
-            if (dicTaskinfo.ContainsKey(5) == true)
-            {
-                //灞曞紑鐧惧垎姣旇皟鑺�
-                listView.Height = Application.GetRealHeight(700);
-            }
-            bodyFrameLayout.AddChidren(listView);
-
-            //寮�
-            var btnOpenRow = new FrameRowControl(listView.rowSpace / 2);
-            listView.AddChidren(btnOpenRow);
-            //鍥炬爣
-            var btnOpenIcon = btnOpenRow.AddLeftIcon(81);
-            btnOpenIcon.UnSelectedImagePath = "Item/OpenIcon.png";
-            //鏂囧瓧
-            var btnOpenView = btnOpenRow.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSimpleOpen), 400);
-            btnOpenView.TextSize = 15;
-            //鐘舵��
-            var btnOpenStatu = btnOpenRow.AddMostRightEmptyIcon(58, 58);
-            if (dicTaskinfo.ContainsKey(0) == false)
-            {
-                btnOpenStatu.Visible = false;
-            }
-            btnOpenStatu.UnSelectedImagePath = "Item/ItemSelected.png";
-            //搴曠嚎
-            btnOpenRow.AddBottomLine();
-
-            //===========================================================================
-            //鍏�
-            var btnCloseRow = new FrameRowControl(listView.rowSpace / 2);
-            listView.AddChidren(btnCloseRow);
-            //鍥炬爣
-            var btnCloseIcon = btnCloseRow.AddLeftIcon(81);
-            btnCloseIcon.UnSelectedImagePath = "Item/CloseIcon.png";
-            //鏂囧瓧
-            var btnCloseView = btnCloseRow.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSimpleClose), 400);
-            btnCloseView.TextSize = 15;
-            //鐘舵��
-            var btnCloseStatu = btnCloseRow.AddMostRightEmptyIcon(58, 58);
-            if (dicTaskinfo.ContainsKey(1) == false)
-            {
-                btnCloseStatu.Visible = false;
-            }
-            btnCloseStatu.UnSelectedImagePath = "Item/ItemSelected.png";
-            //搴曠嚎
-            btnCloseRow.AddBottomLine();
-
-            //===========================================================================
-            //鐧惧垎姣旇皟鑺�
-            var btnPersentRow = new FrameRowControl(listView.rowSpace / 2);
-            btnPersentRow.UseClickStatu = false;
-            listView.AddChidren(btnPersentRow);
-            //鍥炬爣
-            var btnPersentIcon = btnPersentRow.AddLeftIcon(81);
-            btnPersentIcon.UnSelectedImagePath = "Item/PersentIcon.png";
-            //鏂囧瓧
-            var btnPersentView = btnPersentRow.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uPersentAdjust), 400);
-            btnPersentView.TextSize = 15;
-            //鍙冲浘鏍�
-            var btnPersentRight = btnPersentRow.AddMostRightEmptyIcon(58, 58);
-            btnPersentRight.UnSelectedImagePath = "Item/Next.png";
-            btnPersentRight.SelectedImagePath = "Item/Down.png";
-            if (dicTaskinfo.ContainsKey(5) == true)
-            {
-                //灞曞紑鐧惧垎姣旇皟鑺�
-                btnPersentRight.IsSelected = true;
-            }
-
-            //===========================================================================
-            //杩涘害鏉$殑鑳屾櫙瀹瑰櫒
-            var frameProfra = new FrameLayout();
-            frameProfra.Height = Application.GetRealHeight(256);
-            listView.AddChidren(frameProfra);
-
-            //褰撳墠XX%
-            string persentText = Language.StringByID(R.MyInternationalizationString.uNow1);
-            var nowProValue = 0;
-            if (dicTaskinfo.ContainsKey(5) == true)
-            {
-                //5:鐧惧垎姣旇皟鑺�
-                nowProValue = dicTaskinfo[5].Data2;
-            }
-
-            var btnPersentValue = new NormalViewControl(400, 49, true);
-            btnPersentValue.Text = persentText + nowProValue + "%";
-            btnPersentValue.X = btnPersentView.X;
-            btnPersentValue.Y = Application.GetRealHeight(35);
-            btnPersentValue.TextColor = UserCenterColor.Current.TextGrayColor2;
-            btnPersentValue.TextSize = 12;
-            frameProfra.AddChidren(btnPersentValue);
-
-            //杩涘害鏉�
-            var seekBar = new HorizontalSeekBar();
-            seekBar.X = btnPersentValue.X;
-            seekBar.Y = btnPersentValue.Bottom + Application.GetRealHeight(46);
-            seekBar.Width = Application.GetRealWidth(850);
-            seekBar.Height = Application.GetRealHeight(60);
-            seekBar.Max = 100;
-            seekBar.BackgroundColor = 0xfff5f5f5;
-            seekBar.ThumbColor = Common.ZigbeeColor.Current.GXCButtonBlueColor;
-            seekBar.ProgressColor = 0xff232323;
-            seekBar.Progress = nowProValue;
-            frameProfra.AddChidren(seekBar);
-
-            seekBar.ProgressChanged += (sender, value) =>
-            {
-                nowProValue = value;
-                btnPersentValue.Text = persentText + value + "%";
-            };
-
-            //鐧惧垎姣旇皟鑺傜偣鍑�
-            btnPersentRow.ButtonClickEvent += (sender, e) =>
-            {
-                btnPersentRight.IsSelected = !btnPersentRight.IsSelected;
-                if (btnPersentRight.IsSelected == true)
-                {
-                    listView.Height += frameProfra.Height - Application.GetRealHeight(23);
-                }
-                else
-                {
-                    listView.Height -= frameProfra.Height - Application.GetRealHeight(23);
-                }
-            };
-
-            //寮�
-            btnOpenRow.ButtonClickEvent += (sender, e) =>
-            {
-                if (btnOpenStatu.Visible == true)
-                {
-                    //鍙栨秷
-                    dicTaskinfo.Remove(0);
-                    btnOpenStatu.Visible = false;
-                }
-                else
-                {
-                    //娣诲姞
-                    btnOpenStatu.Visible = true;
-                    btnCloseStatu.Visible = false;
-                    //绉婚櫎鍏抽棴
-                    dicTaskinfo.Remove(1);
-
-                    dicTaskinfo[0] = new Safeguard.TaskListInfo();
-                    dicTaskinfo[0].TaskType = 6;
-                    dicTaskinfo[0].Data1 = 0;
-                }
-            };
-
-            //鍏�
-            btnCloseRow.ButtonClickEvent += (sender, e) =>
-            {
-                if (btnCloseStatu.Visible == true)
-                {
-                    //鍙栨秷
-                    dicTaskinfo.Remove(1);
-                    btnCloseStatu.Visible = false;
-                }
-                else
-                {
-                    //娣诲姞
-                    btnOpenStatu.Visible = false;
-                    btnCloseStatu.Visible = true;
-                    //绉婚櫎鎵撳紑
-                    dicTaskinfo.Remove(0);
-
-                    dicTaskinfo[1] = new Safeguard.TaskListInfo();
-                    dicTaskinfo[1].TaskType = 6;
-                    dicTaskinfo[1].Data1 = 1;
-                }
-            };
-
-            //瀹屾垚
-            var btnFinish = new BottomClickButton();
-            btnFinish.TextID = R.MyInternationalizationString.uFinish;
-            bodyFrameLayout.AddChidren(btnFinish);
-            btnFinish.ButtonClickEvent += (sender, e) =>
-            {
-                if (this.ActionFormClose != null)
-                {
-                    if (btnPersentRight.IsSelected == false || seekBar.Progress == 0)
-                    {
-                        dicTaskinfo.Remove(5);
-                    }
-                    else
-                    {
-                        //鐧惧垎姣旇皟鑺�
-                        dicTaskinfo[5] = new Safeguard.TaskListInfo();
-                        dicTaskinfo[5].TaskType = 6;
-                        dicTaskinfo[5].Data1 = 5;
-                        dicTaskinfo[5].Data2 = seekBar.Progress;
-                    }
-
-                    var listData = new List<Safeguard.TaskListInfo>();
-                    foreach (var data in dicTaskinfo.Values)
-                    {
-                        listData.Add(data);
-                    }
-                    dicTaskinfo = null;
-
-                    //鑾峰彇鐘舵�佺殑鏄剧ず鏂囨湰
-                    string statuText = HdlSafeguardLogic.Current.GetLightAlarmStatuText(listData);
-                    this.ActionFormClose(statuText, listData);
-                }
-                this.CloseForm();
-            };
-        }
-
-        #endregion
-
-        #region 鈻� 鐣岄潰鍏抽棴___________________________
-
-        /// <summary>
-        /// 鐣岄潰鍏抽棴
-        /// </summary>
-        public override void CloseForm()
-        {
-            UserView.HomePage.Instance.ScrollEnabled = true;
-            ActionFormClose = null;
-
-            base.CloseForm();
-        }
-
-        #endregion
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/EdtiorCoercePasswordForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/EdtiorCoercePasswordForm.cs
deleted file mode 100755
index 62159a3..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/EdtiorCoercePasswordForm.cs
+++ /dev/null
@@ -1,154 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace Shared.Phone.UserCenter.Safety
-{
-    /// <summary>
-    /// 淇敼鑳佽揩瀵嗙爜
-    /// </summary>
-    public class EdtiorCoercePasswordForm : EditorCommonForm
-    {
-        /// <summary>
-        /// 淇℃伅鎻愮ず鎺т欢
-        /// </summary>
-        private NormalViewControl txtMsg = null;
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        /// <param name="addModel">鏄惁鏄坊鍔犲瘑鐮佹ā寮�</param>
-        public void ShowForm(bool addModel)
-        {
-            if (addModel == true)
-            {
-                //璁剧疆澶撮儴淇℃伅
-                base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddPassword));
-            }
-            else
-            {
-                //璁剧疆澶撮儴淇℃伅
-                base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uChangedPassword));
-            }
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
-            //this.InitMiddleFrame();
-        }
-
-        ///// <summary>
-        ///// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        ///// </summary>
-        //private void InitMiddleFrame()
-        //{
-        //    //娓呯┖bodyFrame
-        //    this.ClearBodyFrame();
-
-        //    //璇疯緭鍏ヨ儊杩瘑鐮�
-        //    var btnTitle = new TitleViewControl();
-        //    btnTitle.TextColor = UserCenterColor.Current.TextGrayColor;
-        //    btnTitle.Y = Application.GetRealHeight(40);
-        //    btnTitle.TextID = R.MyInternationalizationString.uPleaseInputCoercePassword;
-        //    bodyFrameLayout.AddChidren(btnTitle);
-
-        //    //鏂板瘑鐮�
-        //    string placeholderText = Language.StringByID(R.MyInternationalizationString.uNewPassword);
-        //    var rowNewPsw = new RowPasswordControl();
-        //    rowNewPsw.Y = btnTitle.Bottom;
-        //    bodyFrameLayout.AddChidren(rowNewPsw);
-        //    rowNewPsw.Init(placeholderText);
-
-        //    //纭鏂板瘑鐮�
-        //    placeholderText = Language.StringByID(R.MyInternationalizationString.uPleaseRepeatInputNewPassword);
-        //    var rowConfirmPsw = new RowPasswordControl();
-        //    rowConfirmPsw.Y = rowNewPsw.Bottom;
-        //    bodyFrameLayout.AddChidren(rowConfirmPsw);
-        //    rowConfirmPsw.Init(placeholderText);
-
-        //    //鎻愮ず淇℃伅
-        //    this.txtMsg = new NormalViewControl(800, true);
-        //    txtMsg.X = ControlCommonResourse.XXLeft;
-        //    txtMsg.Y = rowConfirmPsw.Bottom + Application.GetRealHeight(5);
-        //    txtMsg.TextColor = UserCenterColor.Current.Red;
-        //    bodyFrameLayout.AddChidren(txtMsg);
-
-        //    //瀹屾垚
-        //    var btnfinish = new TopLayoutFinshView();
-        //    topFrameLayout.AddChidren(btnfinish);
-        //    btnfinish.MouseUpEventHandler += (sender, e) =>
-        //    {
-        //        //鎵ц淇敼鑳佽揩瀵嗙爜
-        //        this.ChangedCoercePassword(rowNewPsw.Text, rowConfirmPsw.Text);
-        //    };
-        //}
-
-        ///// <summary>
-        ///// 鎵ц淇敼鑳佽揩瀵嗙爜
-        ///// </summary>
-        ///// <param name="pswValue1">鏂板瘑鐮�</param>
-        ///// <param name="pswValue2">纭瀵嗙爜</param>
-        //private async void ChangedCoercePassword(string pswValue1, string pswValue2)
-        //{
-        //    //妫�娴嬪瘑鐮�
-        //    string msg = this.CheckPassword(pswValue1, pswValue2);
-        //    if (msg != string.Empty)
-        //    {
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            if (txtMsg != null)
-        //            {
-        //                txtMsg.Text = msg;
-        //            }
-        //        });
-        //        return;
-        //    }
-        //    //鎵ц淇敼
-        //    bool result = await Common.LocalSafeguard.Current.ChangedUserPassword(5, pswValue1);
-        //    if (result == false)
-        //    {
-        //        return;
-        //    }
-
-        //    //鑳佽揩瀵嗙爜宸叉洿鏂�
-        //    string Refmsg = Language.StringByID(R.MyInternationalizationString.uCoercePasswordRefreshMsg);
-        //    Application.RunOnMainThread(() =>
-        //    {
-        //        //鍒锋柊涓荤晫闈�
-        //        this.LoadFormMethodByName("CoercePasswordMainForm", "InitMiddleFrame");
-
-        //        var form = new PasswordRefreshMsgForm();
-        //        this.AddFromAndRemoveNowForm(form, Refmsg);
-        //    });
-        //}
-
-        ///// <summary>
-        ///// 瀵嗙爜妫�鏌ワ紝杩斿洖閿欒淇℃伅锛屾棤閿欒淇℃伅(绌哄瓧绗︿覆)鍒欒〃绀烘垚鍔�
-        ///// </summary>
-        ///// <param name="pswValue1"></param>
-        ///// <param name="pswValue2"></param>
-        ///// <returns></returns>
-        //private string CheckPassword(string pswValue1, string pswValue2)
-        //{
-        //    if (pswValue1 == string.Empty)
-        //    {
-        //        //璇疯緭鍏ユ柊瀵嗙爜
-        //        return Language.StringByID(R.MyInternationalizationString.uPleaseInputNewPassword);
-        //    }
-        //    if (pswValue2 == string.Empty)
-        //    {
-        //        //璇疯緭鍏ョ‘璁ゅ瘑鐮�
-        //        return Language.StringByID(R.MyInternationalizationString.PleaseInputConfirmPsw);
-        //    }
-        //    if (pswValue1.Length < UserCenterResourse.PasswordLength)
-        //    {
-        //        //瀵嗙爜闀垮害涓嶄綆浜巤0}浣嶆暟
-        //        return string.Format(Language.StringByID(R.MyInternationalizationString.PswLengthMsg), UserCenterResourse.PasswordLength);
-        //    }
-        //    if (pswValue1 != pswValue2)
-        //    {
-        //        //涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鑷�
-        //        return Language.StringByID(R.MyInternationalizationString.SecondPswNotEqual);
-        //    }
-        //    return string.Empty;
-        //}
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/DelayedSettionMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaDelayedSettionForm.cs
similarity index 68%
rename from ZigbeeApp/Shared/Phone/UserCenter/Safety/DelayedSettionMainForm.cs
rename to ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaDelayedSettionForm.cs
index d1fe41d..bff1dff 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/DelayedSettionMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaDelayedSettionForm.cs
@@ -8,7 +8,7 @@
     /// <summary>
     /// 寤舵椂璁剧疆鐨勪富鐣岄潰鈽�
     /// </summary>
-    public class DelayedSettionMainForm : EditorCommonForm
+    public class GarrisonAreaDelayedSettionForm : EditorCommonForm
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
 
@@ -56,7 +56,7 @@
             bodyFrameLayout.AddChidren(frameBack);
 
             //璇ュ姛鑳藉彧瀵瑰嚭鍏ラ槻鍖烘湁鏁�
-            var btnTitle = new NormalViewControl(864, 49, true);
+            var btnTitle = new NormalViewControl(864, 50, true);
             btnTitle.X = ControlCommonResourse.XXLeft;
             btnTitle.Y = Application.GetRealHeight(38);
             btnTitle.TextSize = 12;
@@ -134,13 +134,8 @@
 
             row.ButtonClickEvent += (sender, e) =>
             {
-                List<string> listTime = this.GetTimeList();
-                PickerView.Show(listTime, (value) =>
-                {
-                    //淇濆瓨鏃堕棿
-                    int inTime = Convert.ToInt32(listTime[value].Replace(second, string.Empty).Trim());
-                    this.SaveTime(inTime, this.timeResponseData.GoOutDelayTime);
-                });
+                //鏄剧ず寤舵椂鏃堕棿
+                this.ShowDelayListTime(1);
             };
         }
 
@@ -168,13 +163,8 @@
 
             row.ButtonClickEvent += (sender, e) =>
             {
-                List<string> listTime = this.GetTimeList();
-                PickerView.Show(listTime, (value) =>
-                 {
-                     //淇濆瓨鏃堕棿
-                     int outTime = Convert.ToInt32(listTime[value].Replace(second, string.Empty).Trim());
-                     this.SaveTime(this.timeResponseData.EntranceDelayTime, outTime);
-                 });
+                //鏄剧ず寤舵椂鏃堕棿
+                this.ShowDelayListTime(2);
             };
         }
 
@@ -217,27 +207,82 @@
 
         #endregion
 
-        #region 鈻� 涓�鑸柟娉昣__________________________
+        #region 鈻� 鏄剧ず寤舵椂鏃堕棿_______________________
 
         /// <summary>
-        /// 鑾峰彇鏃堕棿鍒楄〃
+        /// 鏄剧ず寤舵椂鏃堕棿鍒楄〃
         /// </summary>
-        /// <returns></returns>
-        private List<string> GetTimeList()
+        /// <param name="div">1:杩涘叆寤惰繜 2:澶栧嚭寤惰繜</param>
+        private void ShowDelayListTime(int div)
         {
-            List<string> list = new List<string>();
-            string second = Language.StringByID(R.MyInternationalizationString.Second);
-
-            list.Add("3 " + second);
-            for (int i = 5; i <= 120; i = i + 5)
+            //鍒�
+            string strMinute = Language.StringByID(R.MyInternationalizationString.uMinute);
+            //绉�
+            string strSecond = Language.StringByID(R.MyInternationalizationString.uSecond);
+            var listfirst = new List<string>();
+            var listSecond = new List<List<string>>();
+            for (int i = 0; i <= 29; i++)
             {
-                list.Add(i + " " + second);
+                listfirst.Add(i.ToString().PadLeft(2, '0') + strMinute);
+                var listTemp = new List<string>();
+                for (int j = 0; j <= 59; j++)
+                {
+                    if (i == 0 && j == 0)
+                    {
+                        continue;
+                    }
+                    listTemp.Add(j.ToString().PadLeft(2, '0') + strSecond);
+                }
+                listSecond.Add(listTemp);
             }
-            list.Add("180 " + second);
-            list.Add("240 " + second);
-            list.Add("300 " + second);
+            //鍔犱竴涓�30鍒嗛挓鍚�
+            listfirst.Add("30" + strMinute);
+            var listTemp2 = new List<string>() { "00" + strSecond };
+            listSecond.Add(listTemp2);
 
-            return list;
+            //杩涘叆寤惰繜
+            int delayTime = this.timeResponseData.EntranceDelayTime;
+            string title = Language.StringByID(R.MyInternationalizationString.uInDelayed);
+            if (div == 2)
+            {
+                //澶栧嚭寤惰繜
+                delayTime = this.timeResponseData.GoOutDelayTime;
+                title = Language.StringByID(R.MyInternationalizationString.uOutDelayed);
+            }
+
+            string value = (delayTime / 60).ToString().PadLeft(2, '0') + strMinute;
+            int index1 = listfirst.IndexOf(value);
+            if (index1 == -1)
+            {
+                index1 = 0;
+            }
+            value = (delayTime % 60).ToString().PadLeft(2, '0') + strSecond;
+            int index2 = listSecond[index1].IndexOf(value);
+            if (index2 == -1)
+            {
+                index2 = 0;
+            }
+
+            PickerView.ShowSecondary(listfirst, listSecond, (value1, value2) =>
+            {
+                int minute = Convert.ToInt32(listfirst[value1].Substring(0, 2));
+                int second = Convert.ToInt32(listSecond[value1][value2].Substring(0, 2));
+                int delaySecond = minute * 60 + second;
+                //淇濆瓨鏃堕棿
+                if (div == 1)
+                {
+                    //杩涘叆寤惰繜
+                    this.SaveTime(delaySecond, this.timeResponseData.GoOutDelayTime);
+                }
+                else
+                {
+                    //澶栧嚭寤惰繜
+                    this.SaveTime(this.timeResponseData.EntranceDelayTime, delaySecond);
+                }
+            },
+             index1, index2, title,
+             Language.StringByID(R.MyInternationalizationString.uFinish),
+             Language.StringByID(R.MyInternationalizationString.uCancel));
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SensorDeviceSettionListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaExistSensorForm.cs
similarity index 77%
rename from ZigbeeApp/Shared/Phone/UserCenter/Safety/SensorDeviceSettionListForm.cs
rename to ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaExistSensorForm.cs
index 1df2003..1018198 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SensorDeviceSettionListForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaExistSensorForm.cs
@@ -8,7 +8,7 @@
     /// <summary>
     /// 宸茬粡璁剧疆浜嗙殑浼犳劅鍣ㄧ殑涓�瑙堢敾闈�
     /// </summary>
-    public class SensorDeviceSettionListForm : EditorCommonForm
+    public class GarrisonAreaExistSensorForm : EditorCommonForm
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
 
@@ -48,12 +48,6 @@
                 this.AddNewSensorDevice();
             };
 
-            listView = new VerticalListControl(29);
-            listView.Y = Application.GetRealHeight(-6);
-            listView.Height = bodyFrameLayout.Height + Application.GetRealHeight(6);
-            listView.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(listView);
-
             //鍒濆鍖栦紶鎰熷櫒鍒楄〃淇℃伅
             this.InitSensorDevicesListInfo();
         }
@@ -63,35 +57,34 @@
         /// </summary>
         private void InitSensorDevicesListInfo()
         {
-            this.listView.RemoveAll();
-            listView.Height = bodyFrameLayout.Height + Application.GetRealHeight(6);
+            //娓呯┖bodyFrameLayout
+            this.ClearBodyFrame();
 
             //鑾峰彇鎸囧畾闃插尯鍏ㄩ儴鐨勪紶鎰熷櫒璁惧鐨勪俊鎭�
             var listInfo = HdlSafeguardLogic.Current.GetSensorDevicesInfoByZoonID(this.zoonID);
             if (listInfo.Count == 0)
             {
+                //杩樻病鏈夎缃紶鎰熷櫒鍝�
+                this.ShowNotDataImage(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uDoNotHadSettionSensorMsg));
+                this.listView = null;
                 return;
             }
-            HdlThreadLogic.Current.RunThread(() =>
+
+            listView = new VerticalListControl(29);
+            listView.Y = Application.GetRealHeight(-6);
+            listView.Height = bodyFrameLayout.Height + Application.GetRealHeight(6);
+            listView.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(listView);
+
+            HdlThreadLogic.Current.RunMainInThread(() =>
             {
-                Application.RunOnMainThread(() =>
+                int count = listInfo.Count - 1;
+                for (int i = 0; i < listInfo.Count; i++)
                 {
-                    int count = listInfo.Count - 1;
-                    for (int i = 0; i < listInfo.Count; i++)
-                    {
-                        if (this.Parent != null)
-                        {
-                            this.AddRowLayout(listInfo[i], i != count);
-                        }
-                    }
-                    if (listView.ChildrenCount == 0)
-                    {
-                        //娌℃湁鍚堟硶鐨勪紶鎰熷櫒
-                        return;
-                    }
-                    //璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
-                    this.AdjustListviewHeight();
-                });
+                    this.AddRowLayout(listInfo[i], i != count);
+                }
+                //璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
+                this.listView.AdjustRealHeight(Application.GetRealHeight(23));
             });
         }
 
@@ -177,24 +170,21 @@
         /// <param name="device"></param>
         private async void DeleteRow(DeviceRoomControl rowLayout, CommonDevice device)
         {
-            //寮�鍚繘搴︽潯
-            this.ShowProgressBar();
-
             bool result = await HdlSafeguardLogic.Current.DeleteSensorDevice(this.zoonID, new List<CommonDevice>() { device });
 
-            //鍏抽棴杩涘害鏉�
-            this.CloseProgressBar();
             if (result == false)
             {
                 return;
             }
-            Application.RunOnMainThread(() =>
+            //浠庣敾闈腑绉婚櫎
+            rowLayout?.RemoveFromParent();
+            //璋冩暣鍒楄〃鎺т欢鐨勯珮搴�
+            this.listView.AdjustRealHeight(Application.GetRealHeight(23));
+            if (this.listView.ChildrenCount == 0)
             {
-                //浠庣敾闈腑绉婚櫎
-                rowLayout?.RemoveFromParent();
-                //璋冭妭鍒楄〃鎺т欢鐨勯珮搴�
-                this.AdjustListviewHeight();
-            });
+                //鍒濆鍖栦紶鎰熷櫒鍒楄〃淇℃伅
+                this.InitSensorDevicesListInfo();
+            }
         }
 
         #endregion
@@ -244,27 +234,16 @@
             {
                 if (listDevice.Count == 0)
                 {
-                    Application.RunOnMainThread(() =>
-                    {
-                        //鍏抽棴鐣岄潰
-                        form.CloseForm();
-                    });
+                    //鍏抽棴鐣岄潰
+                    form.CloseForm();
                     return;
                 }
-                //寮�鍚繘搴︽潯
-                this.ShowProgressBar();
                 //娣诲姞璁惧鍒板畨闃�
                 bool success = await HdlSafeguardLogic.Current.AddSensorDevice(this.zoonID, listDevice);
-                //鍏抽棴杩涘害鏉�
-                this.CloseProgressBar();
-
                 if (success == true)
                 {
-                    Application.RunOnMainThread(() =>
-                    {
-                        //鍏抽棴鐣岄潰
-                        form.CloseForm();
-                    });
+                    //鍏抽棴鐣岄潰
+                    form.CloseForm();
                     //鍒锋柊鍒楄〃
                     this.InitSensorDevicesListInfo();
                 }
@@ -294,30 +273,6 @@
                 listNew.Add(device);
             }
             return listNew;
-        }
-
-        #endregion
-
-        #region 鈻� 涓�鑸柟娉昣__________________________
-
-        /// <summary>
-        /// 璋冭妭鍒楄〃鎺т欢鐨勯珮搴�
-        /// </summary>
-        private void AdjustListviewHeight()
-        {
-            if (listView.ChildrenCount == 0)
-            {
-                //鐩存帴鎷夋弧灞忓箷
-                listView.Height = bodyFrameLayout.Height + Application.GetRealHeight(6);
-                return;
-            }
-            var realHeight = listView.ChildrenCount * listView.GetChildren(listView.ChildrenCount - 1).Height;
-            realHeight += listView.rowSpace;
-            if (realHeight < listView.Height)
-            {
-                //缂╁皬鎺т欢楂樺害
-                listView.Height = realHeight;
-            }
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaListMenuForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaListMenuForm.cs
index d488975..5390a5d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaListMenuForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaListMenuForm.cs
@@ -37,7 +37,7 @@
 
             var listView = new VerticalListControl(29);
             listView.Y = Application.GetRealHeight(-6);
-            listView.Height = Application.GetRealHeight(792);
+            listView.Height = Application.GetRealHeight(900);
             listView.BackgroundColor = UserCenterColor.Current.White;
             bodyFrameLayout.AddChidren(listView);
 
@@ -60,6 +60,9 @@
             //鍑哄叆闃插尯
             txtValue = Language.StringByID(R.MyInternationalizationString.uInAndOutSectors);
             this.AddGarrisonAreaRow(listView, txtValue, 3);
+
+            //璋冩暣鐪熷疄楂樺害
+            listView.AdjustRealHeight(Application.GetRealHeight(23));
         }
 
         #endregion
@@ -94,7 +97,7 @@
             //鍗曞嚮浜嬩欢
             row.ButtonClickEvent += (sender, e) =>
             {
-                var form = new SectorsSettionMenuForm();
+                var form = new GarrisonAreaSettionMenuForm();
                 form.AddForm(txtValue, zoonId);
             };
         }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaSettionMenuForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaSettionMenuForm.cs
new file mode 100755
index 0000000..8e7bd5d
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/GarrisonAreaSettionMenuForm.cs
@@ -0,0 +1,206 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 鍚勯槻鍖虹殑璁剧疆鍐呭鐨勮彍鍗曠晫闈�
+    /// </summary>
+    public class GarrisonAreaSettionMenuForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 闃插尯ID
+        /// </summary>
+        private int zoonID = 0;
+        /// <summary>
+        /// 闃插尯鍚嶅瓧
+        /// </summary>
+        private string SectorsName = string.Empty;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_SectorsName">闃插尯鍚嶅瓧</param>
+        /// <param name="i_zoonID">闃插尯ID</param>
+        public void ShowForm(string i_SectorsName, int i_zoonID)
+        {
+            this.zoonID = i_zoonID;
+            this.SectorsName = i_SectorsName;
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(SectorsName);
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            var listView = new VerticalListControl(29);
+            listView.Y = Application.GetRealHeight(-6);
+            listView.Height = zoonID == 3 ? Application.GetRealHeight(639) : Application.GetRealHeight(481);
+            listView.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(listView);
+
+            //鍒濆鍖栥�愪紶鎰熷櫒璁剧疆銆戣
+            var row1 = new FrameRowControl(listView.rowSpace / 2);
+            listView.AddChidren(row1);
+            row1.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSensorSettion), 500);
+            row1.AddRightArrow();
+            row1.AddBottomLine();
+            row1.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new GarrisonAreaExistSensorForm();
+                form.AddForm(this.SectorsName, this.zoonID);
+            };
+
+            //鍒濆鍖栥�愭姤璀︾洰鏍囪缃�戣
+            var row2 = new FrameRowControl(listView.rowSpace / 2);
+            listView.AddChidren(row2);
+            row2.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uAlarmTargetSettion), 500);
+            row2.AddRightArrow();
+            row2.AddBottomLine();
+            row2.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new AlarmTargetExistSettionForm();
+                form.AddForm(this.zoonID);
+            };
+
+            //鍑哄叆闃插尯鐨勬椂鍊欐墠鏄剧ず
+            if (zoonID == 3)
+            {
+                //鍒濆鍖栥�愬欢鏃惰缃�戣
+                var row3 = new FrameRowControl(listView.rowSpace / 2);
+                listView.AddChidren(row3);
+                row3.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uDelayedSettion), 500);
+                row3.AddRightArrow();
+                row3.AddBottomLine();
+                row3.ButtonClickEvent += (sender, e) =>
+                {
+                    var form = new GarrisonAreaDelayedSettionForm();
+                    form.AddForm();
+                };
+            }
+
+            //鍒濆鍖栥�愪俊鎭�氱煡銆戠殑琛�
+            var row4 = new FrameRowControl(listView.rowSpace / 2);
+            listView.AddChidren(row4);
+            row4.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uInformationPush), 500);
+            //寮�鍏冲浘鏍�
+            var btnSwicth = row4.AddMostRightSwitchIcon();
+            btnSwicth.IsSelected = HdlSafeguardLogic.Current.GetGarrisonInformationPushStatu(this.zoonID) == 0;
+            btnSwicth.ButtonClickEvent += (sender, e) =>
+            {
+                //璁剧疆淇℃伅閫氱煡鐨勭姸鎬�
+                this.SetInformationPush(btnSwicth);
+            };
+
+            //鍒濆鍖栨彁绀轰俊鎭�
+            this.InitTipControl();
+        }
+
+        #endregion
+
+        #region 鈻� 璁剧疆淇℃伅鎺ㄩ�佺殑鐘舵�乢________________
+
+        /// <summary>
+        /// 璁剧疆淇℃伅鎺ㄩ�佺殑鐘舵��
+        /// </summary>
+        /// <param name="btnswich"></param>
+        private async void SetInformationPush(MostRightIconControl btnswich)
+        {
+            //鑾峰彇鐘舵��
+            int statu = HdlSafeguardLogic.Current.GetGarrisonInformationPushStatu(this.zoonID) == 0 ? 1 : 0;
+
+            //鎵ц淇敼
+            var result = await HdlSafeguardLogic.Current.SetGarrisonInformationPushStatu(this.zoonID, statu);
+            if (result == false)
+            {
+                return;
+            }
+            btnswich.IsSelected = !btnswich.IsSelected;
+        }
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖栨彁绀轰俊鎭痏____________________
+
+        /// <summary>
+        /// 鍒濆鍖栨彁绀轰俊鎭�
+        /// </summary>
+        private void InitTipControl()
+        {
+            var btnIcon = new IconViewControl(58);
+            btnIcon.Y = Application.GetRealHeight(1426);
+            btnIcon.UnSelectedImagePath = "Item/Tips.png";
+            bodyFrameLayout.AddChidren(btnIcon);
+
+            string msg = string.Empty;
+            //24灏忔椂闃插尯
+            if (zoonID == 1)
+            {
+                //24灏忔椂闃插尯涓嶅彈甯冮槻銆佹挙闃插奖鍝峽0}闃插尯琚Е鍙戠珛鍗虫姤璀0}涓�鑸缃儫闆俱�佺噧姘斻�佹按娴哥瓑浼犳劅鍣�
+                msg = Language.StringByID(R.MyInternationalizationString.u24HourSectorsTipMsg);
+                btnIcon.X = Application.GetRealWidth(223);
+            }
+            //闈欓煶闃插尯
+            else if (zoonID == 2)
+            {
+                //闈欓煶闃插尯涓嶅彈甯冮槻銆佹挙闃插奖鍝嶏紝闃插尯琚珄0}瑙﹀彂绔嬪嵆鎶ヨ锛岄�氬父涓嶄骇鐢熷0闊虫垨{0}鍏朵粬鎻愮ず锛屽彧鍙戦�佷俊鎭埌鐗瑰畾鐨勬帴鏀惰��
+                msg = Language.StringByID(R.MyInternationalizationString.uMuteSectorsTipMsg);
+                btnIcon.X = Application.GetRealWidth(182);
+            }
+            //鍐呴儴闃插尯
+            else if (zoonID == 4)
+            {
+                //鍦ㄧ瀹跺竷闃叉ā寮忎笅锛屽唴閮ㄩ槻鍖轰紶鎰熷櫒瑙﹀彂{0}绔嬪嵆鎶ヨ銆傚湪鍦ㄥ甯冮槻妯″紡涓媨0}鍐呴儴闃插尯鎵�鏈変紶鎰熷櫒涓嶅弬涓庢姤璀�
+                msg = Language.StringByID(R.MyInternationalizationString.uInteriorSectorsTipMsg);
+                btnIcon.X = Application.GetRealWidth(159);
+            }
+            //鍛ㄧ晫闃插尯
+            else if (zoonID == 5)
+            {
+                //绂诲甯冮槻妯″紡鎴栧湪瀹跺竷闃叉ā寮忎笅{0}鍛ㄧ晫闃插尯浼犳劅鍣ㄨЕ鍙戠珛鍗虫姤璀�
+                msg = Language.StringByID(R.MyInternationalizationString.uPerimeterSectorsTipMsg);
+                btnIcon.X = Application.GetRealWidth(229);
+            }
+            //鍑哄叆闃插尯
+            else
+            {
+                //鍦ㄥ竷闃插悗绯荤粺鎻愪緵涓�瀹氱殑寤惰繜鏃堕棿銆傚嚭闂ㄦ椂{0}澶栧嚭寤舵椂缁撴潫鍚庯紝绯荤粺瑙﹀彂鐩爣鎶ヨ{0}鍥炲鏃讹紝杩涘叆寤舵椂缁撴潫鍚庯紝绯荤粺瑙﹀彂鐩爣鎶ヨ
+                msg = Language.StringByID(R.MyInternationalizationString.uInAndOutSectorsTipMsg);
+                btnIcon.X = Application.GetRealWidth(141);
+            }
+            var ArryMsg = msg.Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
+
+            int yy = Application.GetRealHeight(1428);
+            for (int i = 0; i < ArryMsg.Length; i++)
+            {
+                var btnTip = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(50), false);
+                btnTip.TextAlignment = TextAlignment.Center;
+                btnTip.TextColor = UserCenterColor.Current.TextGrayColor1;
+                btnTip.TextSize = 12;
+                btnTip.Y = yy;
+                btnTip.Text = ArryMsg[i];
+                bodyFrameLayout.AddChidren(btnTip);
+
+                yy = btnTip.Bottom;
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/LightAlarmSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/LightAlarmSettionForm.cs
deleted file mode 100755
index f6faa52..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/LightAlarmSettionForm.cs
+++ /dev/null
@@ -1,289 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-using ZigBee.Device;
-
-namespace Shared.Phone.UserCenter.Safety
-{
-    /// <summary>
-    /// 鐏厜绫荤殑瀹夐槻鎶ヨ璁剧疆鐣岄潰
-    /// </summary>
-    public class LightAlarmSettionForm : EditorCommonForm
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        /// <summary>
-        /// 鐢婚潰鍏抽棴浜嬩欢
-        /// </summary>
-        public Action<string, List<Safeguard.TaskListInfo>> ActionFormClose = null;
-        /// <summary>
-        /// 鍔ㄤ綔淇℃伅  1 寮�鍏�/ 3浜害璋冭妭
-        /// </summary>
-        private Dictionary<int, Safeguard.TaskListInfo> dicTaskinfo = new Dictionary<int, Safeguard.TaskListInfo>();
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖朹____________________________
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        /// <param name="device"></param>
-        /// <param name="i_listTaskInfo"></param>
-        public void ShowForm(CommonDevice device, List<Safeguard.TaskListInfo> i_listTaskInfo)
-        {
-            UserView.HomePage.Instance.ScrollEnabled = false;
-
-            if (i_listTaskInfo != null)
-            {
-                foreach (var data in i_listTaskInfo)
-                {
-                    //浠ラ槻涓囦竴,鍓旈櫎涓嶅悎娉曟暟鎹�
-                    if (data.TaskType == 1 || data.TaskType == 3)
-                    {
-                        dicTaskinfo[data.TaskType] = data;
-                    }
-                }
-            }
-
-            //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(Common.LocalDevice.Current.GetDeviceEpointName(device));
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
-            this.InitMiddleFrame();
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        /// </summary>
-        private void InitMiddleFrame()
-        {
-            //娓呯┖bodyFrame
-            this.ClearBodyFrame();
-
-            var frameTemp = new FrameLayout();
-            frameTemp.Height = Application.GetRealHeight(6);
-            frameTemp.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(frameTemp);
-
-            var listView = new VerticalListControl(29);
-            listView.Y = frameTemp.Bottom;
-            listView.BackgroundColor = UserCenterColor.Current.White;
-            listView.Height = Application.GetRealHeight(700 - 256 + 46);
-            if (dicTaskinfo.ContainsKey(5) == true)
-            {
-                //灞曞紑鐧惧垎姣旇皟鑺�
-                listView.Height = Application.GetRealHeight(700);
-            }
-            bodyFrameLayout.AddChidren(listView);
-
-            //寮�
-            var btnOpenRow = new FrameRowControl(listView.rowSpace / 2);
-            listView.AddChidren(btnOpenRow);
-            //鍥炬爣
-            var btnOpenIcon = btnOpenRow.AddLeftIcon(81);
-            btnOpenIcon.UnSelectedImagePath = "Item/OpenIcon.png";
-            //鏂囧瓧
-            var btnOpenView = btnOpenRow.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSimpleOpen), 400);
-            btnOpenView.TextSize = 15;
-            //鐘舵��
-            var btnOpenStatu = btnOpenRow.AddMostRightEmptyIcon(58, 58);
-            if (dicTaskinfo.ContainsKey(1) == false || dicTaskinfo[1].Data1 != 1)
-            {
-                btnOpenStatu.Visible = false;
-            }
-            btnOpenStatu.UnSelectedImagePath = "Item/ItemSelected.png";
-            //搴曠嚎
-            btnOpenRow.AddBottomLine();
-
-            //===========================================================================
-            //鍏�
-            var btnCloseRow = new FrameRowControl(listView.rowSpace / 2);
-            listView.AddChidren(btnCloseRow);
-            //鍥炬爣
-            var btnCloseIcon = btnCloseRow.AddLeftIcon(81);
-            btnCloseIcon.UnSelectedImagePath = "Item/CloseIcon.png";
-            //鏂囧瓧
-            var btnCloseView = btnCloseRow.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSimpleClose), 400);
-            btnCloseView.TextSize = 15;
-            //鐘舵��
-            var btnCloseStatu = btnCloseRow.AddMostRightEmptyIcon(58, 58);
-            if (dicTaskinfo.ContainsKey(1) == false || dicTaskinfo[1].Data1 != 0)
-            {
-                btnCloseStatu.Visible = false;
-            }
-            btnCloseStatu.UnSelectedImagePath = "Item/ItemSelected.png";
-            //搴曠嚎
-            btnCloseRow.AddBottomLine();
-
-            //===========================================================================
-            //鐧惧垎姣旇皟鑺�
-            var btnPersentRow = new FrameRowControl(listView.rowSpace / 2);
-            btnPersentRow.UseClickStatu = false;
-            listView.AddChidren(btnPersentRow);
-            //鍥炬爣
-            var btnPersentIcon = btnPersentRow.AddLeftIcon(81);
-            btnPersentIcon.UnSelectedImagePath = "Item/PersentIcon.png";
-            //鏂囧瓧
-            var btnPersentView = btnPersentRow.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uPersentAdjust), 400);
-            btnPersentView.TextSize = 15;
-            //鍙冲浘鏍�
-            var btnPersentRight = btnPersentRow.AddMostRightEmptyIcon(58, 58);
-            btnPersentRight.UnSelectedImagePath = "Item/Next.png";
-            btnPersentRight.SelectedImagePath = "Item/Down.png";
-            if (dicTaskinfo.ContainsKey(3) == true)
-            {
-                //灞曞紑鐧惧垎姣旇皟鑺�
-                btnPersentRight.IsSelected = true;
-            }
-
-            //===========================================================================
-            //杩涘害鏉$殑鑳屾櫙瀹瑰櫒
-            var frameProfra = new FrameLayout();
-            frameProfra.Height = Application.GetRealHeight(256);
-            listView.AddChidren(frameProfra);
-
-            //褰撳墠XX%
-            string persentText = Language.StringByID(R.MyInternationalizationString.uNow1);
-            var nowProValue = 0;
-            if (dicTaskinfo.ContainsKey(3) == true)
-            {
-                //3:浜害璋冭妭
-                nowProValue = dicTaskinfo[3].Data1;
-            }
-
-            var btnPersentValue = new NormalViewControl(400, 49, true);
-            btnPersentValue.Text = persentText + nowProValue + "%";
-            btnPersentValue.X = btnPersentView.X;
-            btnPersentValue.Y = Application.GetRealHeight(35);
-            btnPersentValue.TextColor = UserCenterColor.Current.TextGrayColor2;
-            btnPersentValue.TextSize = 12;
-            frameProfra.AddChidren(btnPersentValue);
-
-            //杩涘害鏉�
-            var seekBar = new HorizontalSeekBar();
-            seekBar.X = btnPersentValue.X;
-            seekBar.Y = btnPersentValue.Bottom + Application.GetRealHeight(46);
-            seekBar.Width = Application.GetRealWidth(850);
-            seekBar.Height = Application.GetRealHeight(60);
-            seekBar.Max = 100;
-            seekBar.BackgroundColor = 0xfff5f5f5;
-            seekBar.ThumbColor = Common.ZigbeeColor.Current.GXCButtonBlueColor;
-            seekBar.ProgressColor = 0xff232323;
-            seekBar.Progress = nowProValue;
-            frameProfra.AddChidren(seekBar);
-
-            seekBar.ProgressChanged += (sender, value) =>
-            {
-                nowProValue = value;
-                btnPersentValue.Text = persentText + value + "%";
-            };
-
-            //鐧惧垎姣旇皟鑺傜偣鍑�
-            btnPersentRow.ButtonClickEvent += (sender, e) =>
-            {
-                btnPersentRight.IsSelected = !btnPersentRight.IsSelected;
-                if (btnPersentRight.IsSelected == true)
-                {
-                    listView.Height += frameProfra.Height - Application.GetRealHeight(23);
-                }
-                else
-                {
-                    listView.Height -= frameProfra.Height - Application.GetRealHeight(23);
-                }
-            };
-
-            //寮�
-            btnOpenRow.ButtonClickEvent += (sender, e) =>
-            {
-                if (btnOpenStatu.Visible == true)
-                {
-                    //鍙栨秷
-                    dicTaskinfo.Remove(1);
-                    btnOpenStatu.Visible = false;
-                }
-                else
-                {
-                    //娣诲姞
-                    btnOpenStatu.Visible = true;
-                    btnCloseStatu.Visible = false;
-
-                    dicTaskinfo[1] = new Safeguard.TaskListInfo();
-                    dicTaskinfo[1].TaskType = 1;
-                    dicTaskinfo[1].Data1 = 1;
-                }
-            };
-
-            //鍏�
-            btnCloseRow.ButtonClickEvent += (sender, e) =>
-            {
-                if (btnCloseStatu.Visible == true)
-                {
-                    //鍙栨秷
-                    dicTaskinfo.Remove(1);
-                }
-                else
-                {
-                    //娣诲姞
-                    btnOpenStatu.Visible = false;
-                    btnCloseStatu.Visible = true;
-
-                    dicTaskinfo[1] = new Safeguard.TaskListInfo();
-                    dicTaskinfo[1].TaskType = 1;
-                    dicTaskinfo[1].Data1 = 0;
-                }
-            };
-
-            //瀹屾垚
-            var btnFinish = new BottomClickButton();
-            btnFinish.TextID = R.MyInternationalizationString.uFinish;
-            bodyFrameLayout.AddChidren(btnFinish);
-            btnFinish.ButtonClickEvent += (sender, e) =>
-            {
-                if (this.ActionFormClose != null)
-                {
-                    if (btnPersentRight.IsSelected == false || seekBar.Progress == 0)
-                    {
-                        dicTaskinfo.Remove(3);
-                    }
-                    else
-                    {
-                        //鐧惧垎姣旇皟鑺�
-                        dicTaskinfo[3] = new Safeguard.TaskListInfo();
-                        dicTaskinfo[3].TaskType = 3;
-                        dicTaskinfo[3].Data1 = seekBar.Progress;
-                    }
-
-                    var listData = new List<Safeguard.TaskListInfo>();
-                    foreach (var data in dicTaskinfo.Values)
-                    {
-                        listData.Add(data);
-                    }
-                    dicTaskinfo = null;
-
-                    //鑾峰彇鐘舵�佺殑鏄剧ず鏂囨湰
-                    string statuText = HdlSafeguardLogic.Current.GetLightAlarmStatuText(listData);
-                    this.ActionFormClose(statuText, listData);
-                }
-                this.CloseForm();
-            };
-        }
-
-        #endregion
-
-        #region 鈻� 鐣岄潰鍏抽棴___________________________
-
-        /// <summary>
-        /// 鐣岄潰鍏抽棴
-        /// </summary>
-        public override void CloseForm()
-        {
-            UserView.HomePage.Instance.ScrollEnabled = true;
-            ActionFormClose = null;
-
-            base.CloseForm();
-        }
-
-        #endregion
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/EdtiorUserPasswordForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordAddNewForm.cs
similarity index 82%
rename from ZigbeeApp/Shared/Phone/UserCenter/Safety/EdtiorUserPasswordForm.cs
rename to ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordAddNewForm.cs
index b1c7237..7eead35 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/EdtiorUserPasswordForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordAddNewForm.cs
@@ -5,9 +5,9 @@
 namespace Shared.Phone.UserCenter.Safety
 {
     /// <summary>
-    /// 淇敼鐢ㄦ埛瀵嗙爜鐨勭敾闈�
+    /// 鏂板缓鐢ㄦ埛瀵嗙爜鐨勭敾闈�
     /// </summary>
-    public class EdtiorUserPasswordForm : EditorCommonForm
+    public class PasswordAddNewForm : EditorCommonForm
     {
         #region 鈻� 鍙橀噺澹版槑___________________________
 
@@ -40,19 +40,23 @@
             base.SetTitleText(i_titleText);
 
             //鍒濆鍖栦腑閮ㄤ俊鎭�
-            this.InitMiddleFrame();
+            this.InitMiddleFrame(i_titleText);
         }
 
         /// <summary>
         /// 鍒濆鍖栦腑閮ㄤ俊鎭�
         /// </summary>
-        private void InitMiddleFrame()
+        /// <param name="i_titleText">澶撮儴鏍囬淇℃伅</param>
+        private void InitMiddleFrame(string i_titleText)
         {
             //娓呯┖bodyFrame
             this.ClearBodyFrame();
 
             //璇疯緭鍏ユ柊瀹夐槻瀵嗙爜
             pswControl = new PswNumberInputControl(Language.StringByID(R.MyInternationalizationString.uPleaseInputNewSafetyPassword), 4);
+            pswControl.NumberIconBackColor = UserCenterColor.Current.White;
+            pswControl.Gravity = Gravity.CenterHorizontal;
+            pswControl.Y = Application.GetRealHeight(102);
             bodyFrameLayout.AddChidren(pswControl);
             pswControl.InitControl();
 
@@ -71,7 +75,7 @@
                         return;
                     }
                     //鎵ц淇敼鐢ㄦ埛瀵嗙爜
-                    this.ChangedAdminPassword(firstPsw, pssword);
+                    this.ChangedAdminPassword(firstPsw, i_titleText);
                 }
                 else
                 {
@@ -90,11 +94,10 @@
         /// 鎵ц淇敼鐢ㄦ埛瀵嗙爜
         /// </summary>
         /// <param name="pswValue1">鏂板瘑鐮�</param>
-        /// <param name="pswValue2">纭瀵嗙爜</param>
-        private async void ChangedAdminPassword(string pswValue1, string pswValue2)
+        private async void ChangedAdminPassword(string pswValue1, string i_titleText)
         {
             //鎵ц淇敼
-            bool result = await HdlSafeguardLogic.Current.ChangedUserPassword(this.pswNo, pswValue1);
+            bool result = await HdlSafeguardLogic.Current.ChangedUserPassword(this.pswNo, pswValue1, string.Empty);
             if (result == false)
             {
                 firstPsw = string.Empty;
@@ -104,12 +107,17 @@
                 return;
             }
 
-            //鐢ㄦ埛瀵嗙爜宸叉洿鏂�
-            string msg = Language.StringByID(R.MyInternationalizationString.uUserPasswordRefreshMsg);
+            //瀹夐槻瀵嗙爜璁剧疆鎴愬姛
+            string msg = Language.StringByID(R.MyInternationalizationString.uSetSafetyPasswordSuccess);
             this.ShowMassage(ShowMsgType.Tip, msg);
 
-            //鐣岄潰鐩存帴鍏抽棴(鏆傛椂)
+            //鐣岄潰鐩存帴鍏抽棴
             this.CloseForm();
+            //鍏抽棴缂栬緫鐣岄潰
+            this.CloseFormByFormName("PasswordUserEditorForm");
+
+            var form = new PasswordUserEditorForm();
+            form.AddForm(this.pswNo, pswValue1, i_titleText);
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordListUserForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordListUserForm.cs
new file mode 100755
index 0000000..df9efb9
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordListUserForm.cs
@@ -0,0 +1,149 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 鐢ㄦ埛瀵嗙爜鐨勫垪琛ㄧ晫闈�
+    /// </summary>
+    public class PasswordListUserForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
+        {
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uSafetyPassword));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        public void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            HdlThreadLogic.Current.RunThread(async () =>
+            {
+                //鎵撳紑杩涘害鏉�
+                this.ShowProgressBar();
+                var listData = await HdlSafeguardLogic.Current.GetAllUserPassword();
+                if (listData == null)
+                {
+                    //鍏抽棴杩涘害鏉�
+                    this.CloseProgressBar(ShowReLoadMode.YES);
+                    return;
+                }
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar();
+
+                var dicEsixt = new Dictionary<int, ZigBee.Device.Safeguard.UserPasswordListObj>();
+                foreach (var data in listData)
+                {
+                    dicEsixt[data.UserId] = data;
+                }
+
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    var listView = new VerticalListControl(29);
+                    listView.Y = Application.GetRealHeight(-6);
+                    listView.Height = bodyFrameLayout.Height;
+                    listView.BackgroundColor = UserCenterColor.Current.White;
+                    bodyFrameLayout.AddChidren(listView);
+
+                    //4涓敤鎴峰瘑鐮�
+                    for (int i = 1; i <= 4; i++)
+                    {
+                        //娣诲姞琛�
+                        this.AddPassworRow(listView, dicEsixt, i);
+                    }
+                    listView.AdjustRealHeight(Application.GetRealHeight(23));
+                });
+            });   
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞琛宊____________________________
+
+        /// <summary>
+        /// 娣诲姞琛�
+        /// </summary>
+        /// <param name="listView"></param>
+        /// <param name="dicEsixt"></param>
+        /// <param name="pswNo"></param>
+        private void AddPassworRow(VerticalListControl listView, Dictionary<int, ZigBee.Device.Safeguard.UserPasswordListObj> dicEsixt, int pswNo)
+        {
+            string text = Language.StringByID(R.MyInternationalizationString.uUserPassword) + pswNo;
+            if (dicEsixt.ContainsKey(pswNo) == true && string.IsNullOrEmpty(dicEsixt[pswNo].PassWordTips) == false)
+            {
+                text = dicEsixt[pswNo].PassWordTips;
+            }
+
+            //娣诲姞銆愮敤鎴峰瘑鐮併�戣
+            var rowUserPsw = new FrameRowControl(listView.rowSpace / 2);
+            listView.AddChidren(rowUserPsw);
+            //鍥炬爣
+            var btnUserPswIcon = rowUserPsw.AddLeftIcon(81);
+            btnUserPswIcon.UnSelectedImagePath = "Item/Point.png";
+            //鐢ㄦ埛瀵嗙爜
+            var btnUserPswText = rowUserPsw.AddLeftCaption(text, 700);
+            btnUserPswText.TextSize = 15;
+            //鍚戝彸鐨勫浘鏍�
+            rowUserPsw.AddRightArrow();
+            if (dicEsixt.ContainsKey(pswNo) == false)
+            {
+                //鏈缃�
+                rowUserPsw.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uNotHadSettion), 300);
+            }
+            if (pswNo != 4)
+            {
+                //搴曠嚎
+                rowUserPsw.AddBottomLine();
+            }
+            rowUserPsw.ButtonClickEvent += (sender, e) =>
+            {
+                //鏂板缓
+                if (dicEsixt.ContainsKey(pswNo) == false)
+                {
+                    var form = new PasswordAddNewForm();
+                    form.AddForm(pswNo, text);
+                }
+                //缂栬緫
+                else
+                {
+                    var form = new PasswordUserEditorForm();
+                    form.AddForm(pswNo, dicEsixt[pswNo].Password, text);
+                }
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+        /// <summary>
+        /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
+        /// </summary>
+        public override int FormActionAgainEvent()
+        {
+            //閲嶆柊鍒濆鍖�
+            this.InitMiddleFrame();
+            return 1;
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordMenuForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordMenuForm.cs
new file mode 100755
index 0000000..a0950d7
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordMenuForm.cs
@@ -0,0 +1,130 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 瀹夐槻瀵嗙爜鐨勮彍鍗曠晫闈�
+    /// </summary>
+    public class PasswordMenuForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        public void ShowForm()
+        {
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uPasswordSettion));
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            var listView = new VerticalListControl(23);
+            listView.Height = bodyFrameLayout.Height;
+            listView.BackgroundColor = UserCenterColor.Current.White;
+            bodyFrameLayout.AddChidren(listView);
+
+            //娣诲姞銆愬畨闃插瘑鐮併�戣
+            var rowUserPsw = new FrameRowControl(listView.rowSpace / 2);
+            listView.AddChidren(rowUserPsw);
+            //鍥炬爣
+            var btnUserPswIcon = rowUserPsw.AddLeftIcon(81);
+            btnUserPswIcon.UnSelectedImagePath = "Item/PswSettionSelected.png";
+            //瀹夐槻瀵嗙爜
+            var btnUserPswText = rowUserPsw.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSafetyPassword), 700, 60);
+            btnUserPswText.TextSize = 15;
+            btnUserPswText.Y = Application.GetRealHeight(12) + rowUserPsw.chidrenYaxis;
+            rowUserPsw.AddChidren(btnUserPswText, ChidrenBindMode.BindEventOnly);
+            //鐢ㄤ簬鍦ㄥ甯冮槻銆佺瀹跺竷闃层�佹挙闃叉搷浣�
+            var btnTip1 = rowUserPsw.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uUserInGarrisonAndWithdrawGarrison), 700, 50, true);
+            //杩欎釜鍧愭爣鏈夌偣鐗规畩
+            btnTip1.Y = Application.GetRealHeight(72) + rowUserPsw.chidrenYaxis;
+            btnTip1.TextSize = 12;
+            btnTip1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            rowUserPsw.AddChidren(btnTip1, ChidrenBindMode.BindEventOnly);
+            //鍚戝彸鐨勫浘鏍�
+            rowUserPsw.AddRightArrow();
+            //搴曠嚎
+            rowUserPsw.AddBottomLine();
+            rowUserPsw.ButtonClickEvent += async (sender, e) =>
+            {
+                //鎵撳紑鐢婚潰涔嬪墠锛屽厛鏍¢獙绠$悊鍛樺瘑鐮�
+                bool result = await HdlSafeguardLogic.Current.ShowSafetyAdminValidatedDialog();
+                if (result == false)
+                {
+                    return;
+                }
+                var form = new PasswordListUserForm();
+                form.AddForm();
+            };
+
+            //娣诲姞銆愯儊杩瘑鐮併�戣
+            var rowCoercePsw = new FrameRowControl(listView.rowSpace / 2);
+            listView.AddChidren(rowCoercePsw);
+            //鍥炬爣
+            var btnCoercePswIcon = rowCoercePsw.AddLeftIcon(81);
+            btnCoercePswIcon.UnSelectedImagePath = "Item/PswSettionSelected.png";
+            //鑳佽揩瀵嗙爜
+            var btnCoercePswText = rowCoercePsw.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uCoercePassword), 700, 60);
+            btnCoercePswText.TextSize = 15;
+            btnCoercePswText.Y = Application.GetRealHeight(12) + rowCoercePsw.chidrenYaxis;
+            rowCoercePsw.AddChidren(btnCoercePswText, ChidrenBindMode.BindEventOnly);
+            //杈撳叆璇ュ瘑鐮侊紝绔嬪嵆閫氱煡浠栦汉
+            var btnTip2 = rowCoercePsw.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uEnterPasswordToNotifyOthersImmediately), 700, 50, true);
+            //杩欎釜鍧愭爣鏈夌偣鐗规畩
+            btnTip2.Y = Application.GetRealHeight(72) + rowCoercePsw.chidrenYaxis;
+            btnTip2.TextSize = 12;
+            btnTip2.TextColor = UserCenterColor.Current.TextGrayColor1;
+            rowCoercePsw.AddChidren(btnTip2, ChidrenBindMode.BindEventOnly);
+            //鍚戝彸鐨勫浘鏍�
+            rowCoercePsw.AddRightArrow();
+            rowCoercePsw.ButtonClickEvent += async (sender, e) =>
+            {
+                //鎵撳紑鐢婚潰涔嬪墠锛屽厛鏍¢獙绠$悊鍛樺瘑鐮�
+                bool result = await HdlSafeguardLogic.Current.ShowSafetyAdminValidatedDialog();
+                if (result == false)
+                {
+                    return;
+                }
+                //鍒ゆ柇鏄惁璁剧疆鏈夎儊杩瘑鐮�
+                var listData = await HdlSafeguardLogic.Current.GetAllUserPassword();
+                if (listData == null)
+                {
+                    return;
+                }
+                foreach (var data in listData)
+                {
+                    if (data.UserId == 5)
+                    {
+                        //淇敼瀵嗙爜
+                        var form1 = new CoercePswEditorForm();
+                        form1.AddForm(data.Password, data.PassWordTips);
+                        return;
+                    }
+                }
+                //鏂板缓瀵嗙爜
+                var form = new CoercePswAddNewForm();
+                form.AddForm(string.Empty);
+            };
+            listView.AdjustRealHeight(Application.GetRealHeight(23));
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordUserEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordUserEditorForm.cs
new file mode 100755
index 0000000..a9ade58
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/PasswordUserEditorForm.cs
@@ -0,0 +1,140 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter.Safety
+{
+    /// <summary>
+    /// 缂栬緫瀹夐槻鐢ㄦ埛瀵嗙爜鐨勭晫闈�
+    /// </summary>
+    public class PasswordUserEditorForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鐢ㄦ埛璐﹀彿
+        /// </summary>
+        private int pswNo = 0;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+        /// </summary>
+        /// <param name="i_pswNo">鐢ㄦ埛瀵嗙爜缂栧彿</param>
+        /// <param name="i_password">鐢ㄦ埛瀵嗙爜</param>
+        /// <param name="i_passwordTip">鐢ㄦ埛瀵嗙爜鎻愮ず</param>
+        public void ShowForm(int i_pswNo, string i_password, string i_passwordTip)
+        {
+            this.pswNo = i_pswNo;
+
+            //璁剧疆澶撮儴淇℃伅
+            base.SetTitleText(i_passwordTip);
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            this.InitMiddleFrame(i_password, i_passwordTip);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        /// <param name="i_password">鐢ㄦ埛瀵嗙爜</param>
+        /// <param name="i_passwordTip">鐢ㄦ埛瀵嗙爜鎻愮ず</param>
+        private void InitMiddleFrame(string i_password, string i_passwordTip)
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+
+            var frameback = new FrameLayout();
+            frameback.Y = Application.GetRealHeight(179);
+            frameback.Height = Application.GetRealHeight(395);
+            frameback.Width = Application.GetRealWidth(717);
+            frameback.Gravity = Gravity.CenterHorizontal;
+            frameback.BackgroundImagePath = "Safeguard/SafeguardPasswordGround.png";
+            bodyFrameLayout.AddChidren(frameback);
+            //褰撳墠浣跨敤瀵嗙爜
+            var btnNowTip = new NormalViewControl(frameback.Width, Application.GetRealHeight(50), false);
+            btnNowTip.Y = Application.GetRealHeight(81);
+            btnNowTip.TextSize = 12;
+            btnNowTip.TextAlignment = TextAlignment.Center;
+            btnNowTip.TextColor = UserCenterColor.Current.TextGrayColor3;
+            btnNowTip.TextID = R.MyInternationalizationString.uNowUsePassword;
+            frameback.AddChidren(btnNowTip);
+            var btnPassword = new NormalViewControl(frameback.Width, Application.GetRealHeight(90), false);
+            btnPassword.TextAlignment = TextAlignment.Center;
+            btnPassword.Y = Application.GetRealHeight(150);
+            btnPassword.TextSize = 24;
+            btnPassword.TextColor = 0xfffc744b;
+            btnPassword.Text = i_password;
+            frameback.AddChidren(btnPassword);
+
+            //鍒濆鍖栨甯�
+            var tableContr = new InformationEditorControl();
+            var listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 711, 1025);
+
+            //澶囨敞淇℃伅
+            string caption = Language.StringByID(R.MyInternationalizationString.uNoteInformation);
+            var rowNote = new FrameCaptionInputControl(caption, i_passwordTip, listview.rowSpace / 2);
+            rowNote.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPlesaeInputNoteInformation);
+            rowNote.txtInput.MaxByte = 90;
+            listview.AddChidren(rowNote);
+            rowNote.InitControl();
+            rowNote.AddBottomLine();
+            rowNote.txtInput.FinishInputEvent += () =>
+            {
+                if (rowNote.Text == string.Empty)
+                {
+                    rowNote.Text = i_passwordTip;
+                    return;
+                }
+                if (i_passwordTip != rowNote.Text)
+                {
+                    //淇敼瀵嗙爜澶囨敞
+                    this.EditorPassworTip(i_password, rowNote.Text);
+                }
+            };
+
+            //淇敼瀵嗙爜
+            var rowPsw = new FrameRowControl(listview.rowSpace / 2);
+            listview.AddChidren(rowPsw);
+            rowPsw.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uChangedPassword), 300);
+            rowPsw.AddRightArrow();
+            rowPsw.AddBottomLine();
+            rowPsw.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new PasswordAddNewForm();
+                form.AddForm(this.pswNo, rowNote.Text);
+            };
+
+            //鍒濆鍖栨甯冨畬鎴�
+            tableContr.FinishInitControl(bodyFrameLayout, listview);
+            tableContr = null;
+        }
+
+        #endregion
+
+        #region 鈻� 淇敼澶囨敞___________________________
+
+        /// <summary>
+        /// 淇敼瀵嗙爜澶囨敞
+        /// </summary>
+        /// <param name="i_password">鐢ㄦ埛瀵嗙爜</param>
+        /// <param name="i_passwordTip">鐢ㄦ埛瀵嗙爜鎻愮ず</param>
+        private async void EditorPassworTip(string i_password, string i_passwordTip)
+        {
+            var result = await HdlSafeguardLogic.Current.AddPassWordTips(this.pswNo, i_password, i_passwordTip);
+            if (result == true)
+            {
+                //淇敼澶囨敞淇℃伅鎴愬姛!
+                string msg = Language.StringByID(R.MyInternationalizationString.uEditorNoteInformationSuccess);
+                this.ShowMassage(ShowMsgType.Tip, msg);
+                //璁剧疆澶撮儴淇℃伅
+                base.SetTitleText(i_passwordTip);
+            }
+        }
+
+        #endregion
+    }
+}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs
index 17beacf..437df5b 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs
@@ -52,11 +52,9 @@
         {
             //娓呯┖bodyFrame
             this.ClearBodyFrame();
-            if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
-            {
-                //鍒濆鍖栧彸涓婅鍥炬爣
-                this.InitTopRightIcon();
-            }
+
+            //鍒濆鍖栧彸涓婅鍥炬爣
+            this.InitTopRightIcon();
 
             //鍒濆鍖栧叏閮ㄥ唴瀛樹俊鎭�
             this.InitAllMemoryData();
@@ -168,28 +166,84 @@
         /// </summary>
         private void InitTopRightIcon()
         {
-            var btnIcon = new MostRightIconControl(69, 69);
-            btnIcon.UnSelectedImagePath = "Item/More.png";
-            topFrameLayout.AddChidren(btnIcon);
-            btnIcon.InitControl();
-            btnIcon.ButtonClickEvent += (sender, e) =>
+            //蹇嵎鏂瑰紡
+            var btnShortCut = new MostRightIconControl(69, 69);
+            btnShortCut.UnSelectedImagePath = "Safeguard/SafetyShortcut.png";
+            btnShortCut.SelectedImagePath = "Safeguard/SafetyShortcutSelected.png";
+
+            if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
             {
-                //鑿滃崟鎺т欢
-                var frameMenu = new TopRightMenuControl(2);
-                //闃插尯鍒楄〃
-                string menu1 = Language.StringByID(R.MyInternationalizationString.uGarrisonAreaList);
-                frameMenu.AddRowMenu(menu1, "Item/GarrisonList.png", "Item/GarrisonListSelected.png", () =>
+                //蹇嵎鏂瑰紡鍚戝乏绉诲姩
+                btnShortCut.X = Application.GetRealWidth(855);
+
+                var btnIcon = new MostRightIconControl(69, 69);
+                btnIcon.UnSelectedImagePath = "Item/More.png";
+                topFrameLayout.AddChidren(btnIcon);
+                btnIcon.InitControl();
+                btnIcon.ButtonClickEvent += (sender, e) =>
                 {
-                    var form = new GarrisonAreaListMenuForm();
-                    form.AddForm();
-                });
-                //瀵嗙爜璁剧疆
-                string menu2 = Language.StringByID(R.MyInternationalizationString.uPasswordSettion);
-                frameMenu.AddRowMenu(menu2, "Item/PswSettion.png", "Item/PswSettionSelected.png", () =>
+                    //鑿滃崟鎺т欢
+                    var frameMenu = new TopRightMenuControl(2);
+                    //闃插尯鍒楄〃
+                    string menu1 = Language.StringByID(R.MyInternationalizationString.uGarrisonAreaList);
+                    frameMenu.AddRowMenu(menu1, "Item/GarrisonList.png", "Item/GarrisonListSelected.png", () =>
+                    {
+                        HdlCheckLogic.Current.CheckSecondarySecurity(() =>
+                        { 
+                            //楠岃瘉鎴愬姛
+                            var form = new GarrisonAreaListMenuForm();
+                            form.AddForm(); 
+                        }, 
+                        () =>
+                        {
+                            //璇峰墠寰�涓汉涓績{0}璁剧疆浜屾瀹夊叏楠岃瘉鏂瑰紡
+                            string msg = Language.StringByID(R.MyInternationalizationString.uGotoCenterAndSetSecondAuthentication).Replace("{0}", "\r\n");
+                            this.ShowMassage(ShowMsgType.Confirm, msg, () =>
+                            {
+                                var form = new UserMain.SecondAuthenticationForm();
+                                form.AddForm();
+                            });
+                        });
+                    });
+                    //瀵嗙爜璁剧疆
+                    string menu2 = Language.StringByID(R.MyInternationalizationString.uPasswordSettion);
+                    frameMenu.AddRowMenu(menu2, "Item/PswSettion.png", "Item/PswSettionSelected.png", () =>
+                    {
+                        var form = new PasswordMenuForm();
+                        form.AddForm();
+                    });
+                };
+            }
+
+            topFrameLayout.AddChidren(btnShortCut);
+            btnShortCut.InitControl();
+            if (UserCenterResourse.Option.SafetyShortcut == true)
+            {
+                //浣跨敤蹇嵎鏂瑰紡
+                btnShortCut.IsSelected = true;
+            }
+            btnShortCut.ButtonClickEvent += (sender, e) =>
+            {
+                if (btnShortCut.IsSelected == true)
                 {
-                    var form = new SafetyPasswordMenuForm();
-                    form.AddForm();
-                });
+                    //纭畾鍙栨秷涓婚〉鐨勩�屽畨闃层�嶆嵎寰勶紵
+                    this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uCancelSafetyShortcutMsg), () =>
+                    {
+                        UserCenterResourse.Option.SafetyShortcut = false;
+                        UserCenterResourse.Option.Save();
+                        btnShortCut.IsSelected = false;
+                    });
+                }
+                else
+                {
+                    //纭畾鍒涘缓銆屽畨闃层�嶆嵎寰勫埌涓婚〉锛�
+                    this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uCreatSafetyShortcutMsg), () =>
+                    {
+                        UserCenterResourse.Option.SafetyShortcut = true;
+                        UserCenterResourse.Option.Save();
+                        btnShortCut.IsSelected = true;
+                    });
+                }
             };
         }
 
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyPasswordMenuForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyPasswordMenuForm.cs
deleted file mode 100755
index 3e2bf41..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyPasswordMenuForm.cs
+++ /dev/null
@@ -1,95 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace Shared.Phone.UserCenter.Safety
-{
-    /// <summary>
-    /// 瀹夐槻瀵嗙爜鐨勮彍鍗曠晫闈�
-    /// </summary>
-    public class SafetyPasswordMenuForm : EditorCommonForm
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖朹____________________________
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        public void ShowForm()
-        {
-            //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uSafetyPasswordSettion));
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
-            this.InitMiddleFrame();
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        /// </summary>
-        private void InitMiddleFrame()
-        {
-            //娓呯┖bodyFrame
-            this.ClearBodyFrame();
-
-            var listView = new VerticalListControl(29);
-            listView.Y = Application.GetRealHeight(-6);
-            listView.Height = Application.GetRealHeight(335);
-            listView.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(listView);
-
-            //娣诲姞銆愮敤鎴峰瘑鐮併�戣
-            var rowUserPsw = new FrameRowControl(listView.rowSpace / 2);
-            listView.AddChidren(rowUserPsw);
-            //鍥炬爣
-            var btnUserPswIcon = rowUserPsw.AddLeftIcon(81);
-            btnUserPswIcon.UnSelectedImagePath = "Item/Point.png";
-            //鐢ㄦ埛瀵嗙爜
-            var btnUserPswText = rowUserPsw.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uUserPassword), 700);
-            btnUserPswText.TextSize = 15;
-            //鍚戝彸鐨勫浘鏍�
-            rowUserPsw.AddRightArrow();
-            //搴曠嚎
-            rowUserPsw.AddBottomLine();
-            rowUserPsw.ButtonClickEvent +=async (sender, e) =>
-            {
-                //鎵撳紑鐢婚潰涔嬪墠锛屽厛鏍¢獙绠$悊鍛樺瘑鐮�
-                bool result = await HdlSafeguardLogic.Current.ShowSafetyAdminValidatedDialog();
-                if (result == false)
-                {
-                    return;
-                }
-                var form = new UserPasswordListForm();
-                form.AddForm();
-            };
-
-            //娣诲姞銆愯儊杩瘑鐮併�戣
-            var rowCoercePsw = new FrameRowControl(listView.rowSpace / 2);
-            listView.AddChidren(rowCoercePsw);
-            //鍥炬爣
-            var btnCoercePswIcon = rowCoercePsw.AddLeftIcon(81);
-            btnCoercePswIcon.UnSelectedImagePath = "Item/Point.png";
-            //鑳佽揩瀵嗙爜
-            var btnCoercePswText = rowCoercePsw.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uCoercePassword), 700);
-            btnCoercePswText.TextSize = 15;
-            //鍚戝彸鐨勫浘鏍�
-            rowCoercePsw.AddRightArrow();
-            rowCoercePsw.ButtonClickEvent += async (sender, e) =>
-            {
-                //鎵撳紑鐢婚潰涔嬪墠锛屽厛鏍¢獙绠$悊鍛樺瘑鐮�
-                bool result = await HdlSafeguardLogic.Current.ShowSafetyAdminValidatedDialog();
-                if (result == false)
-                {
-                    return;
-                }
-                var form = new CoercePasswordMainForm();
-                form.AddForm();
-            };
-        }
-
-        #endregion
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SectorsSettionMenuForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/SectorsSettionMenuForm.cs
deleted file mode 100755
index 43fc1c3..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SectorsSettionMenuForm.cs
+++ /dev/null
@@ -1,141 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace Shared.Phone.UserCenter.Safety
-{
-    /// <summary>
-    /// 鍚勯槻鍖虹殑璁剧疆鍐呭鐨勮彍鍗曠晫闈�
-    /// </summary>
-    public class SectorsSettionMenuForm : EditorCommonForm
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        /// <summary>
-        /// 闃插尯ID
-        /// </summary>
-        private int zoonID = 0;
-        /// <summary>
-        /// 闃插尯鍚嶅瓧
-        /// </summary>
-        private string SectorsName = string.Empty;
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖朹____________________________
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        /// <param name="i_SectorsName">闃插尯鍚嶅瓧</param>
-        /// <param name="i_zoonID">闃插尯ID</param>
-        public void ShowForm(string i_SectorsName, int i_zoonID)
-        {
-            this.zoonID = i_zoonID;
-            this.SectorsName = i_SectorsName;
-
-            //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(SectorsName);
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
-            this.InitMiddleFrame();
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        /// </summary>
-        private void InitMiddleFrame()
-        {
-            //娓呯┖bodyFrame
-            this.ClearBodyFrame();
-
-            var listView = new VerticalListControl(29);
-            listView.Y = Application.GetRealHeight(-6);
-            listView.Height = zoonID == 3 ? Application.GetRealHeight(639) : Application.GetRealHeight(481);
-            listView.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(listView);
-
-            //鍒濆鍖栥�愪紶鎰熷櫒璁剧疆銆戣
-            var row1 = new FrameRowControl(listView.rowSpace / 2);
-            listView.AddChidren(row1);
-            row1.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSensorSettion), 500);
-            row1.AddRightArrow();
-            row1.AddBottomLine();
-            row1.ButtonClickEvent += (sender, e) =>
-            {
-                var form = new SensorDeviceSettionListForm();
-                form.AddForm(this.SectorsName, this.zoonID);
-            };
-
-            //鍒濆鍖栥�愭姤璀︾洰鏍囪缃�戣
-            var row2 = new FrameRowControl(listView.rowSpace / 2);
-            listView.AddChidren(row2);
-            row2.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uAlarmTargetSettion), 500);
-            row2.AddRightArrow();
-            row2.AddBottomLine();
-            row2.ButtonClickEvent += (sender, e) =>
-            {
-                var form = new AlarmTargetSettionForm();
-                form.AddForm(this.zoonID);
-            };
-
-            //鍑哄叆闃插尯鐨勬椂鍊欐墠鏄剧ず
-            if (zoonID == 3)
-            {
-                //鍒濆鍖栥�愬欢鏃惰缃�戣
-                var row3 = new FrameRowControl(listView.rowSpace / 2);
-                listView.AddChidren(row3);
-                row3.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uDelayedSettion), 500);
-                row3.AddRightArrow();
-                row3.AddBottomLine();
-                row3.ButtonClickEvent += (sender, e) =>
-                {
-                    var form = new DelayedSettionMainForm();
-                    form.AddForm();
-                };
-            }
-
-            //鍒濆鍖栥�愪俊鎭�氱煡銆戠殑琛�
-            var row4 = new FrameRowControl(listView.rowSpace / 2);
-            listView.AddChidren(row4);
-            row4.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uInformationPush), 500);
-            //寮�鍏冲浘鏍�
-            var btnSwicth = row4.AddMostRightSwitchIcon();
-            btnSwicth.IsSelected = HdlSafeguardLogic.Current.GetGarrisonInformationPushStatu(this.zoonID) == 0;
-            btnSwicth.ButtonClickEvent += (sender, e) =>
-            {
-                //璁剧疆淇℃伅閫氱煡鐨勭姸鎬�
-                this.SetInformationPush(btnSwicth);
-            };
-        }
-
-        #endregion
-
-        #region 鈻� 璁剧疆淇℃伅鎺ㄩ�佺殑鐘舵�乢________________
-
-        /// <summary>
-        /// 璁剧疆淇℃伅鎺ㄩ�佺殑鐘舵��
-        /// </summary>
-        /// <param name="btnswich"></param>
-        private async void SetInformationPush(MostRightIconControl btnswich)
-        {
-            //鑾峰彇鐘舵��
-            int statu = HdlSafeguardLogic.Current.GetGarrisonInformationPushStatu(this.zoonID) == 0 ? 1 : 0;
-
-            //鎵ц淇敼
-            var result = await HdlSafeguardLogic.Current.SetGarrisonInformationPushStatu(this.zoonID, statu);
-            if (result == false)
-            {
-                return;
-            }
-            Application.RunOnMainThread(() =>
-            {
-                if (btnswich != null)
-                {
-                    btnswich.IsSelected = !btnswich.IsSelected;
-                }
-            });
-        }
-        #endregion
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SwitchAlarmSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/SwitchAlarmSettionForm.cs
deleted file mode 100755
index cec0d8f..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SwitchAlarmSettionForm.cs
+++ /dev/null
@@ -1,192 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-using ZigBee.Device;
-
-namespace Shared.Phone.UserCenter.Safety
-{
-    /// <summary>
-    /// 寮�鍏崇被鐨勫畨闃叉姤璀﹁缃晫闈�
-    /// </summary>
-    public class SwitchAlarmSettionForm : EditorCommonForm
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        /// <summary>
-        /// 鐢婚潰鍏抽棴浜嬩欢
-        /// </summary>
-        public Action<string, List<Safeguard.TaskListInfo>> ActionFormClose = null;
-        /// <summary>
-        /// 鍔ㄤ綔淇℃伅  0鍏抽棴/ 1鎵撳紑
-        /// </summary>
-        private Dictionary<int, Safeguard.TaskListInfo> dicTaskinfo = new Dictionary<int, Safeguard.TaskListInfo>();
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖朹____________________________
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        /// <param name="device"></param>
-        /// <param name="i_listTaskInfo"></param>
-        public void ShowForm(CommonDevice device, List<Safeguard.TaskListInfo> i_listTaskInfo)
-        {
-            if (i_listTaskInfo != null)
-            {
-                foreach (var data in i_listTaskInfo)
-                {
-                    //浠ラ槻涓囦竴,鍓旈櫎涓嶅悎娉曟暟鎹�
-                    if (data.TaskType == 1)
-                    {
-                        dicTaskinfo[data.Data1] = data;
-                    }
-                }
-            }
-
-            //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(Common.LocalDevice.Current.GetDeviceEpointName(device));
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
-            this.InitMiddleFrame();
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        /// </summary>
-        private void InitMiddleFrame()
-        {
-            //娓呯┖bodyFrame
-            this.ClearBodyFrame();
-
-            var frameTemp = new FrameLayout();
-            frameTemp.Height = Application.GetRealHeight(6);
-            frameTemp.BackgroundColor = UserCenterColor.Current.White;
-            bodyFrameLayout.AddChidren(frameTemp);
-
-            var listView = new VerticalListControl(29);
-            listView.Y = frameTemp.Bottom;
-            listView.BackgroundColor = UserCenterColor.Current.White;
-            listView.Height = Application.GetRealHeight(341);
-            bodyFrameLayout.AddChidren(listView);
-
-            //寮�
-            var btnOpenRow = new FrameRowControl(listView.rowSpace / 2);
-            listView.AddChidren(btnOpenRow);
-            //鍥炬爣
-            var btnOpenIcon = btnOpenRow.AddLeftIcon(81);
-            btnOpenIcon.UnSelectedImagePath = "Item/OpenIcon.png";
-            //鏂囧瓧
-            var btnOpenView = btnOpenRow.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSimpleOpen), 400);
-            btnOpenView.TextSize = 15;
-            //鐘舵��
-            var btnOpenStatu = btnOpenRow.AddMostRightEmptyIcon(58, 58);
-            if (dicTaskinfo.ContainsKey(1) == false)
-            {
-                btnOpenStatu.Visible = false;
-            }
-            btnOpenStatu.UnSelectedImagePath = "Item/ItemSelected.png";
-            //搴曠嚎
-            btnOpenRow.AddBottomLine();
-
-            //鍏�
-            var btnCloseRow = new FrameRowControl(listView.rowSpace / 2);
-            listView.AddChidren(btnCloseRow);
-            //鍥炬爣
-            var btnCloseIcon = btnCloseRow.AddLeftIcon(81);
-            btnCloseIcon.UnSelectedImagePath = "Item/CloseIcon.png";
-            //鏂囧瓧
-            var btnCloseView = btnCloseRow.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uSimpleClose), 400);
-            btnCloseView.TextSize = 15;
-            //鐘舵��
-            var btnCloseStatu = btnCloseRow.AddMostRightEmptyIcon(58, 58);
-            if (dicTaskinfo.ContainsKey(0) == false)
-            {
-                btnCloseStatu.Visible = false;
-            }
-            btnCloseStatu.UnSelectedImagePath = "Item/ItemSelected.png";
-
-            //寮�
-            btnOpenRow.ButtonClickEvent += (sender, e) =>
-            {
-                if (btnOpenStatu.Visible == true)
-                {
-                    //鍙栨秷
-                    dicTaskinfo.Remove(1);
-                    btnOpenStatu.Visible = false;
-                }
-                else
-                {
-                    //娣诲姞
-                    btnOpenStatu.Visible = true;
-                    btnCloseStatu.Visible = false;
-                    //绉婚櫎鍏抽棴
-                    dicTaskinfo.Remove(0);
-
-                    dicTaskinfo[1] = new Safeguard.TaskListInfo();
-                    dicTaskinfo[1].TaskType = 1;
-                    dicTaskinfo[1].Data1 = 1;
-                }
-            };
-            //鍏�
-            btnCloseRow.ButtonClickEvent += (sender, e) =>
-            {
-                if (btnCloseStatu.Visible == true)
-                {
-                    //鍙栨秷
-                    dicTaskinfo.Remove(0);
-                    btnCloseStatu.Visible = false;
-                }
-                else
-                {
-                    //娣诲姞
-                    btnOpenStatu.Visible = false;
-                    btnCloseStatu.Visible = true;
-                    //绉婚櫎鎵撳紑
-                    dicTaskinfo.Remove(1);
-
-                    dicTaskinfo[0] = new Safeguard.TaskListInfo();
-                    dicTaskinfo[0].TaskType = 1;
-                    dicTaskinfo[0].Data1 = 0;
-                }
-            };
-
-            //瀹屾垚
-            var btnFinish = new BottomClickButton();
-            btnFinish.TextID = R.MyInternationalizationString.uFinish;
-            bodyFrameLayout.AddChidren(btnFinish);
-            btnFinish.ButtonClickEvent += (sender, e) =>
-            {
-                if (this.ActionFormClose != null)
-                {
-                    var listData = new List<Safeguard.TaskListInfo>();
-                    foreach (var data in dicTaskinfo.Values)
-                    {
-                        listData.Add(data);
-                    }
-                    dicTaskinfo = null;
-
-                    //鑾峰彇鐘舵�佺殑鏄剧ず鏂囨湰
-                    string statuText = HdlSafeguardLogic.Current.GetLightAlarmStatuText(listData);
-                    this.ActionFormClose(statuText, listData);
-                }
-                this.CloseForm();
-            };
-        }
-
-        #endregion
-
-        #region 鈻� 鐣岄潰鍏抽棴___________________________
-
-        /// <summary>
-        /// 鐣岄潰鍏抽棴
-        /// </summary>
-        public override void CloseForm()
-        {
-            ActionFormClose = null;
-            base.CloseForm();
-        }
-
-        #endregion
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/UserPasswordListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/UserPasswordListForm.cs
deleted file mode 100755
index 0e85b28..0000000
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/UserPasswordListForm.cs
+++ /dev/null
@@ -1,114 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace Shared.Phone.UserCenter.Safety
-{
-    /// <summary>
-    /// 鐢ㄦ埛瀵嗙爜鐨勫垪琛ㄧ晫闈�
-    /// </summary>
-    public class UserPasswordListForm : EditorCommonForm
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        #endregion
-
-        #region 鈻� 鍒濆鍖朹____________________________
-
-        /// <summary>
-        /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
-        /// </summary>
-        public void ShowForm()
-        {
-            //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uUserPasswordSettion));
-
-            //鍒濆鍖栦腑閮ㄤ俊鎭�
-            this.InitMiddleFrame();
-        }
-
-        /// <summary>
-        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        /// </summary>
-        public async void InitMiddleFrame()
-        {
-            var listData = await HdlSafeguardLogic.Current.GetAllUserPassword();
-            List<int> listEsixt = new List<int>();
-            if (listData != null)
-            {
-                foreach (var data in listData)
-                {
-                    listEsixt.Add(data.UserId);
-                }
-            }
-
-            Application.RunOnMainThread(() =>
-            {
-                //娓呯┖bodyFrame
-                this.ClearBodyFrame();
-
-                var listView = new VerticalListControl(29);
-                listView.Y = Application.GetRealHeight(-6);
-                listView.Height = Application.GetRealHeight(636 + 6);
-                listView.BackgroundColor = UserCenterColor.Current.White;
-                bodyFrameLayout.AddChidren(listView);
-
-                //4涓敤鎴峰瘑鐮�
-                for (int i = 1; i <= 4; i++)
-                {
-                    //娣诲姞琛�
-                    this.AddPassworRow(listView, listEsixt, i);
-                }
-            });
-        }
-
-        #endregion
-
-        #region 鈻� 娣诲姞琛宊____________________________
-
-        /// <summary>
-        /// 娣诲姞琛�
-        /// </summary>
-        /// <param name="listView"></param>
-        /// <param name="listEsixt"></param>
-        /// <param name="pswNo"></param>
-        private void AddPassworRow(VerticalListControl listView, List<int> listEsixt, int pswNo)
-        {
-            string text = Language.StringByID(R.MyInternationalizationString.uUserPassword) + pswNo;
-
-            //娣诲姞銆愮敤鎴峰瘑鐮併�戣
-            var rowUserPsw = new FrameRowControl(listView.rowSpace / 2);
-            listView.AddChidren(rowUserPsw);
-            //鍥炬爣
-            var btnUserPswIcon = rowUserPsw.AddLeftIcon(81);
-            btnUserPswIcon.UnSelectedImagePath = "Item/Point.png";
-            //鐢ㄦ埛瀵嗙爜
-            var btnUserPswText = rowUserPsw.AddLeftCaption(text, 700);
-            btnUserPswText.TextSize = 15;
-            //鍚戝彸鐨勫浘鏍�
-            rowUserPsw.AddRightArrow();
-            if (pswNo != 4)
-            {
-                //搴曠嚎
-                rowUserPsw.AddBottomLine();
-            }
-            //澶囨敞
-            string note = "鎴戣窡鎴戝浜洪兘鍦ㄧ敤";
-            if (listEsixt.Contains(pswNo) == false)
-            {
-                //鏈缃�
-                note = Language.StringByID(R.MyInternationalizationString.uNotHadSettion);
-            }
-            var btnNote = rowUserPsw.AddMostRightView(note, 400);
-            btnNote.TextColor = UserCenterColor.Current.TextGrayColor1;
-
-            rowUserPsw.ButtonClickEvent += (sender, e) =>
-            {
-                var form = new EdtiorUserPasswordForm();
-                form.AddForm(pswNo, text);
-            };
-        }
-
-        #endregion
-    }
-}
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs
index 03a1c54..ae802ca 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/AddNewSharedContentForm.cs
@@ -1,7 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Text;
-using System.Threading.Tasks;
 using ZigBee.Device;
 
 namespace Shared.Phone.UserCenter.SharedContent
@@ -58,6 +57,7 @@
         /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
         /// </summary>
         /// <param name="i_room">鏌ョ湅鐨勬埧闂村璞�</param>
+        /// <param name="i_memberShardInfo">鎴愬憳鐨勫垎浜暟鎹�</param>
         public void ShowForm(Common.Room i_room, MemberShardInfoData i_memberShardInfo)
         {
             this.lookRoom = i_room;
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs
index fe50a89..8293b3d 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedContentForm.cs
@@ -1,7 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Text;
-using System.Threading.Tasks;
 using ZigBee.Device;
 
 namespace Shared.Phone.UserCenter.SharedContent
@@ -14,29 +13,42 @@
         #region 鈻� 鍙橀噺澹版槑___________________________
 
         /// <summary>
-        /// 璁惧鍒楄〃鎺т欢
+        /// 鏌ョ湅鐨勬埧闂村璞�
         /// </summary>
-        private VerticalScrolViewLayout listDeviceView = null;
-        /// <summary>
-        /// 鍦烘櫙鍒楄〃鎺т欢
-        /// </summary>
-        private VerticalScrolViewLayout listSceneView = null;
-        /// <summary>
-        /// 鎴愬憳淇℃伅
-        /// </summary>
-        private MemberInfoRes memberResult = null;
+        private Common.Room lookRoom = null;
         /// <summary>
         /// 鎴愬憳鐨勫垎浜暟鎹�
         /// </summary>
         private MemberShardInfoData memberShardInfo = null;
         /// <summary>
-        /// 鎴块棿瀵硅薄
+        /// 璁惧妗屽竷鎺т欢
         /// </summary>
-        private Common.Room room = null;
+        private FrameLayout frameDeviceTable = null;
         /// <summary>
-        /// Tab鐨勯�夋嫨銆�1锛氬姛鑳絋ab  2锛氬満鏅疶ab
+        /// 璁惧妗屽竷鎺т欢
         /// </summary>
-        private int TabSelectIndex = 1;
+        private FrameLayout frameSceneTable = null;
+        /// <summary>
+        /// 鍒犻櫎鎸夐挳
+        /// </summary>
+        private BottomClickButton btnDelete = null;
+        /// <summary>
+        /// 閫夋嫨鐨勫満鏅�
+        /// </summary>
+        private Dictionary<int, Common.SceneUI> dicSelectScene = new Dictionary<int, Common.SceneUI>();
+        /// <summary>
+        /// 閫夋嫨鐨勮澶�
+        /// </summary>
+        private Dictionary<string, CommonDevice> dicSelectDevice = new Dictionary<string, CommonDevice>();
+        /// <summary>
+        /// 褰撳墠閫夋嫨鐨勫垎鏀� 1锛氬満鏅�  2锛氬姛鑳�
+        /// </summary>
+        private int nowSwitchIndex = 1;
+        /// <summary>
+        /// 褰撳墠閫夋嫨鐨勮澶囩储寮�
+        /// </summary>
+        private string nowDeviceIndex = string.Empty;
+
         #endregion
 
         #region 鈻� 鍒濆鍖朹____________________________
@@ -44,332 +56,433 @@
         /// <summary>
         /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
         /// </summary>
-        /// <param name="i_room">鎴块棿淇℃伅</param>
-        /// <param name="i_memberResult">鎴愬憳淇℃伅</param>
+        /// <param name="i_room">鏌ョ湅鐨勬埧闂村璞�</param>
         /// <param name="i_memberShardInfo">鎴愬憳鐨勫垎浜暟鎹�</param>
-        public void ShowForm(Common.Room i_room, MemberInfoRes i_memberResult, MemberShardInfoData i_memberShardInfo)
+        public void ShowForm(Common.Room i_room, MemberShardInfoData i_memberShardInfo)
         {
-            this.memberResult = i_memberResult;
-            this.room = i_room;
+            this.lookRoom = i_room;
             this.memberShardInfo = i_memberShardInfo;
 
             //璁剧疆澶撮儴淇℃伅
             base.SetTitleText(i_room.Name);
 
             //鍒濆鍖栦腑閮ㄤ俊鎭�
-            //this.InitMiddleFrame();
+            this.InitMiddleFrame();
         }
 
-        ///// <summary>
-        ///// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        ///// </summary>
-        //private void InitMiddleFrame()
-        //{
-        //    //娓呯┖bodyFrame
-        //    this.ClearBodyFrame();
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
+            this.dicSelectDevice = new Dictionary<string, CommonDevice>();
+            this.dicSelectScene = new Dictionary<int, Common.SceneUI>();
 
-        //    //鍒濆鍖朤ab鎺т欢
-        //    var frame = this.InitTabControl();
+            //鍒濆鍖栨甯冩帶浠�
+            this.frameSceneTable = new FrameLayout();
+            frameSceneTable.Y = Application.GetRealHeight(132);
+            frameSceneTable.Height = bodyFrameLayout.Height - Application.GetRealHeight(132);
+            bodyFrameLayout.AddChidren(frameSceneTable);
 
-        //    this.listDeviceView = new VerticalScrolViewLayout();
-        //    listDeviceView.Y = frame.Bottom;
-        //    listDeviceView.Height = bodyFrameLayout.Height - frame.Bottom;
-        //    listDeviceView.Visible = this.TabSelectIndex == 1;
-        //    bodyFrameLayout.AddChidren(listDeviceView);
+            this.frameDeviceTable = new FrameLayout();
+            frameDeviceTable.Y = frameSceneTable.Y;
+            frameDeviceTable.Height = frameSceneTable.Height;
+            bodyFrameLayout.AddChidren(frameDeviceTable);
+            frameDeviceTable.Visible = false;
 
-        //    this.listSceneView = new VerticalScrolViewLayout();
-        //    listSceneView.Y = frame.Bottom;
-        //    listSceneView.Height = bodyFrameLayout.Height - frame.Bottom;
-        //    listSceneView.Visible = this.TabSelectIndex == 2;
-        //    bodyFrameLayout.AddChidren(listSceneView);
+            //鍒濆鍖栧垎鏀帶浠�
+            this.InitSwitchControl();
 
-        //    HdlThreadLogic.Current.Run(() =>
-        //    {
-        //        //鍒濆鍖栧姛鑳絋ab鍒楄〃
-        //        this.InitFunctionTabList();
-        //        //鍒濆鍖栧満鏅疶ab鍒楄〃
-        //        this.InitSceneTabList();
-        //    });
-        //}
+            //鍒犻櫎鎸夐挳
+            this.btnDelete = new BottomClickButton();
+            btnDelete.BackgroundColor = 0xfff75858;
+            btnDelete.TextID = R.MyInternationalizationString.uDelete;
+            bodyFrameLayout.AddChidren(btnDelete);
+            btnDelete.Visible = false;
+            btnDelete.ButtonClickEvent += (sender, e) =>
+            {
+                //鍒犻櫎鍒嗕韩
+                this.DeleteShardData();
+            };
+
+            //鍒濆鍖栧満鏅垪琛�
+            this.InitSceneList();
+            //鍒濆鍔熻兘鍒楄〃
+            this.InitFunctionList();
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栧垎鏀帶浠�
+        /// </summary>
+        private void InitSwitchControl()
+        {
+            var tabControl = new SceneFunctionSwitchControl();
+            tabControl.Y = Application.GetRealHeight(40);
+            bodyFrameLayout.AddChidren(tabControl);
+            //璁剧疆鍒濆鍖栧��
+            tabControl.SetDefultIndex(nowSwitchIndex);
+            tabControl.SelectTabEvent += (tabIndex) =>
+            {
+                this.nowSwitchIndex = tabIndex;
+                if (tabIndex == 1)
+                {
+                    //鏄剧ず鍦烘櫙鍒楄〃
+                    this.frameSceneTable.Visible = true;
+                    this.frameDeviceTable.Visible = false;
+                }
+                else
+                {
+                    //鏄剧ず鍔熻兘鍒楄〃
+                    this.frameSceneTable.Visible = false;
+                    this.frameDeviceTable.Visible = true;
+                }
+            };
+            tabControl.InitControl();
+        }
 
         #endregion
 
-        //#region 鈻� 鍒濆鍖朤ab鎺т欢______________________
+        #region 鈻� 鍦烘櫙鏄剧ず___________________________
 
-        ///// <summary>
-        ///// 鍒濆鍖朤ab鎺т欢
-        ///// </summary>
-        ///// <returns></returns>
-        //private FrameLayout InitTabControl()
-        //{
-        //    //Tab鍒囨崲鎺т欢
-        //    var frameSwich = new FrameLayout();
-        //    frameSwich.Height = Application.GetRealHeight(150);
-        //    frameSwich.BackgroundColor = UserCenterColor.Current.TopFrameLayout;
-        //    bodyFrameLayout.AddChidren(frameSwich);
+        /// <summary>
+        /// 鍒濆鍖栧満鏅垪琛�
+        /// </summary>
+        private void InitSceneList()
+        {
+            //娓呯┖妗屽竷
+            this.frameSceneTable.RemoveAll();
 
-        //    //鍔熻兘
-        //    var btnFunction = new NormalViewControl(frameSwich.Width / 2, Application.GetRealHeight(100));
-        //    btnFunction.Gravity = Gravity.CenterVertical;
-        //    btnFunction.TextID = R.MyInternationalizationString.uFunction;
-        //    btnFunction.TextAlignment = TextAlignment.Center;
-        //    btnFunction.TextColor = UserCenterColor.Current.SelectTextColor;
-        //    btnFunction.TextAlignment = TextAlignment.Center;
-        //    frameSwich.AddChidren(btnFunction);
+            var listScene = new List<Common.SceneUI>();
+            for (int i = 0; i < lookRoom.SceneUIList.Count; i++)
+            {
+                if (HdlShardLogic.Current.IsFileExists(lookRoom.SceneUIList[i].FileName) == true)
+                {
+                    listScene.Add(lookRoom.SceneUIList[i]);
+                }
+            }
+            if (listScene.Count == 0)
+            {
+                //鏃犲彲鍙栨秷鍏变韩鐨勫満鏅�
+                this.ShowNotDataImage(frameSceneTable, Language.StringByID(R.MyInternationalizationString.uNotCanCancelShardSceneMsg), "Item/NotShardPic.png", 383, 279);
+                return;
+            }
 
-        //    //鍦烘櫙
-        //    var btnScene = new NormalViewControl(frameSwich.Width / 2, Application.GetRealHeight(100));
-        //    btnScene.Gravity = Gravity.CenterVertical;
-        //    btnScene.X = frameSwich.Width / 2;
-        //    btnScene.TextID = R.MyInternationalizationString.uScence;
-        //    btnScene.TextAlignment = TextAlignment.Center;
-        //    frameSwich.AddChidren(btnScene);
+            HdlThreadLogic.Current.RunMainInThread(() =>
+            {
+                var listView = new VerticalFrameControl(29);
+                listView.Y = Application.GetRealHeight(53);
+                listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(187);
+                frameSceneTable.AddChidren(listView);
 
-        //    //绾�
-        //    var btnLine = new ProgressLine();
-        //    btnLine.Gravity = Gravity.BottomLeft;
-        //    frameSwich.AddChidren(btnLine);
-        //    btnLine.SetValue(50, true);
+                foreach (var data in listScene)
+                {
+                    //鍦烘櫙鍥剧墖
+                    var frameContr = new FrameLayoutControl();
+                    frameContr.UseClickStatu = false;
+                    frameContr.Width = Application.GetRealWidth(878);
+                    frameContr.Height = Application.GetRealHeight(440);
+                    frameContr.Gravity = Gravity.CenterHorizontal;
+                    frameContr.BackgroundImagePath = data.IconPath;
+                    listView.AddChidrenFrame(frameContr);
 
-        //    if (this.TabSelectIndex == 2)
-        //    {
-        //        btnScene.TextColor = UserCenterColor.Current.SelectTextColor;
-        //        btnFunction.TextColor = Common.ZigbeeColor.Current.TextColor;
-        //        btnLine.SetValue(50, false);
-        //    }
+                    var btnSelect = new IconViewControl(58);
+                    btnSelect.UnSelectedImagePath = "Item/ItemUnSelected.png";
+                    btnSelect.SelectedImagePath = "Item/ItemSelected.png";
+                    btnSelect.X = Application.GetRealWidth(786);
+                    btnSelect.Y = Application.GetRealHeight(35);
+                    frameContr.AddChidren(btnSelect, ChidrenBindMode.BindEventOnly);
+                    if (dicSelectScene.ContainsKey(data.Id) == true)
+                    {
+                        btnSelect.IsSelected = true;
+                    }
+                    frameContr.ButtonClickEvent += (sender, e) =>
+                    {
+                        //閫夋嫨
+                        btnSelect.IsSelected = !btnSelect.IsSelected;
+                        if (btnSelect.IsSelected == true)
+                        {
+                            dicSelectScene[data.Id] = data;
+                            if (this.btnDelete.Visible == false)
+                            {
+                                this.btnDelete.Visible = true;
+                            }
+                        }
+                        else
+                        {
+                            dicSelectScene.Remove(data.Id);
+                            if (dicSelectScene.Count == 0 && dicSelectDevice.Count == 0)
+                            {
+                                this.btnDelete.Visible = false;
+                            }
+                        }
+                    };
+                }
+            });
+        }
 
-        //    //鍔熻兘Tab
-        //    btnFunction.MouseUpEventHandler += (sender, e) =>
-        //    {
-        //        if (this.TabSelectIndex == 1)
-        //        {
-        //            return;
-        //        }
-        //        btnScene.TextColor = Common.ZigbeeColor.Current.TextColor;
-        //        btnFunction.TextColor = UserCenterColor.Current.SelectTextColor;
-        //        btnLine.SetValue(50);
-        //        this.TabSelectIndex = 1;
+        #endregion
 
-        //        //闅愯棌鍦烘櫙鍒楄〃鎺т欢,鏄剧ず璁惧鍒楄〃鎺т欢
-        //        this.listSceneView.Visible = false;
-        //        this.listDeviceView.Visible = true;
-        //    };
+        #region 鈻� 鍔熻兘鏄剧ず___________________________
 
-        //    //鍦烘櫙Tab
-        //    btnScene.MouseUpEventHandler += (sender, e) =>
-        //    {
-        //        if (this.TabSelectIndex == 2)
-        //        {
-        //            return;
-        //        }
-        //        btnScene.TextColor = UserCenterColor.Current.SelectTextColor;
-        //        btnFunction.TextColor = Common.ZigbeeColor.Current.TextColor;
-        //        btnLine.SetValue(50, false);
-        //        this.TabSelectIndex = 2;
+        /// <summary>
+        /// 鍒濆鍖栧姛鑳藉垪琛�
+        /// </summary>
+        private void InitFunctionList()
+        {
+            //娓呯┖妗屽竷
+            this.frameDeviceTable.RemoveAll();
 
-        //        //闅愯棌璁惧鍒楄〃鎺т欢,鏄剧ず鍦烘櫙鍒楄〃鎺т欢
-        //        this.listDeviceView.Visible = false;
-        //        this.listSceneView.Visible = true;
-        //    };
+            HdlThreadLogic.Current.RunMainInThread(() =>
+            {
+                //鑾峰彇鍒嗙粍鍚庣殑璁惧鍒楄〃
+                var dicGroupDevice = this.GetAllGroupDevice();
+                if (dicGroupDevice.Count == 0)
+                {
+                    //鏃犲彲鍙栨秷鍏变韩鐨勮澶�
+                    this.ShowNotDataImage(frameDeviceTable, Language.StringByID(R.MyInternationalizationString.uNotCanCancelDeviceMsg), "Item/NotShardPic.png", 383, 279);
+                }
+                else
+                {
+                    var frameBack = new FrameLayoutControl(false);
+                    frameBack.X = ControlCommonResourse.XXLeft;
+                    frameBack.Y = Application.GetRealHeight(178);
+                    frameBack.BackgroundColor = UserCenterColor.Current.White;
+                    frameBack.Width = bodyFrameLayout.Width;
+                    frameBack.Height = Application.GetRealHeight(1650);
+                    frameBack.RadiusEx = 20;
+                    frameDeviceTable.AddChidren(frameBack);
 
-        //    return frameSwich;
-        //}
+                    var listView = new VerticalListControl(23);
+                    listView.Y = Application.GetRealHeight(23);
+                    listView.Height = Application.GetRealHeight(1437 - 23);
+                    frameBack.AddChidren(listView);
+                    //鍒濆鍖栬澶囩被鍨嬭
+                    this.InitDeviceObjectRow(dicGroupDevice, listView);
+                }
+            });
+        }
 
-        //#endregion
+        #endregion
 
-        //#region 鈻� 鏄剧ず鍔熻兘Tab鍒楄〃____________________
+        #region 鈻� 鍒濆鍖栬澶囩被鍨嬭___________________
 
-        ///// <summary>
-        ///// 鍒濆鍖栧姛鑳絋ab鍒楄〃
-        ///// </summary>
-        //private void InitFunctionTabList()
-        //{
-        //    //鑾峰彇鍒嗕韩鐨勮澶�
-        //    var listDevice = this.GetShardListDevice();
+        /// <summary>
+        /// 鍒濆鍖栬澶囩被鍨嬭
+        /// </summary>
+        /// <param name="dicData"></param>
+        /// <param name="listView"></param>
+        private void InitDeviceObjectRow(Dictionary<int, List<CommonDevice>> dicData, VerticalListControl listView)
+        {
+            var scrolContr = new RoomDeviceGroupMenuControl(dicData);
+            this.frameDeviceTable.AddChidren(scrolContr);
+            //璁剧疆鍒濆鍊�
+            scrolContr.SetDefultIndex(nowDeviceIndex);
+            scrolContr.SelectDeviceEvent += (listdevice) =>
+            {
+                this.nowDeviceIndex = scrolContr.nowSelectKeys;
+                //娣诲姞璁惧琛�
+                this.AddDeviceRow(listdevice, listView);
+            };
+            scrolContr.InitControl();
+        }
 
-        //    foreach (var device in listDevice)
-        //    {
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            if (this.Parent != null)
-        //            {
-        //                //娣诲姞璁惧鐨勬槑缁嗚
-        //                this.AddDeviceDetailRow(device);
-        //            }
-        //        });
-        //    }
-        //}
+        #endregion
 
-        ///// <summary>
-        ///// 娣诲姞璁惧鐨勬槑缁嗚
-        ///// </summary>
-        ///// <param name="device">璁惧瀵硅薄</param>
-        //private void AddDeviceDetailRow(CommonDevice device)
-        //{
-        //    var row = new StatuRowLayout(listDeviceView);
+        #region 鈻� 娣诲姞璁惧琛宊________________________
 
-        //    //鍥剧墖
-        //    var btnIcon = new RowLeftIconView();
-        //    Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, device);
-        //    row.AddChidren(btnIcon, ChidrenBindMode.NotBind);
+        /// <summary>
+        /// 娣诲姞璁惧琛�
+        /// </summary>
+        /// <param name="listDevice"></param>
+        /// <param name="listView"></param>
+        private void AddDeviceRow(List<CommonDevice> listDevice, VerticalListControl listView)
+        {
+            listView.RemoveAll();
 
-        //    //璁惧绫诲瀷鐨勭炕璇戝悕瀛�
-        //    var btnName = new RowCenterView();
-        //    btnName.Text = Common.LocalDevice.Current.GetDeviceEpointName(device);
-        //    row.AddChidren(btnName, ChidrenBindMode.NotBind);
+            foreach (var device in listDevice)
+            {
+                var frameRow = new FrameRowControl(listView.rowSpace / 2);
+                frameRow.LeftOffset = Application.GetRealWidth(46) - ControlCommonResourse.XXLeft;
+                frameRow.RightOffset = -ControlCommonResourse.XXLeft;
+                listView.AddChidren(frameRow);
+                //鍥炬爣
+                var btnIcon = frameRow.AddLeftIcon(81);
+                Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, device);
+                //鍚嶇О
+                var btnView = frameRow.AddLeftCaption(string.Empty, 600);
+                btnView.Text = Common.LocalDevice.Current.GetDeviceEpointName(device);
+                btnView.TextSize = 15;
+                //搴曠嚎
+                frameRow.AddBottomLine();
+                //閫夋嫨
+                var btnSelect = frameRow.AddMostRightEmptyIcon(69, 69);
+                btnSelect.UnSelectedImagePath = "Item/ItemUnSelected.png";
+                btnSelect.SelectedImagePath = "Item/ItemSelected.png";
 
-        //    //绉婚櫎
-        //    var btnDelete = new RowDeleteButton();
-        //    btnDelete.TextID = R.MyInternationalizationString.RemoveBotton;
-        //    row.AddRightView(btnDelete);
-        //    btnDelete.MouseUpEventHandler += (sender, e) =>
-        //    {
-        //        //纭畾绉婚櫎閫変腑鐨勮澶囷紵
-        //        string msg = Language.StringByID(R.MyInternationalizationString.uConfirmRemoveSelectDeviceMsg);
-        //        this.ShowConfirmMsg(msg, "DeleteShardDevice", row, device);
-        //    };
-        //}
+                string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
+                if (dicSelectDevice.ContainsKey(mainKeys) == true)
+                {
+                    btnSelect.IsSelected = true;
+                }
+                frameRow.ButtonClickEvent += (sender, e) =>
+                {
+                    //閫夋嫨
+                    btnSelect.IsSelected = !btnSelect.IsSelected;
+                    if (btnSelect.IsSelected == true)
+                    {
+                        dicSelectDevice[mainKeys] = device;
+                        if (this.btnDelete.Visible == false)
+                        {
+                            this.btnDelete.Visible = true;
+                        }
+                    }
+                    else
+                    {
+                        dicSelectDevice.Remove(mainKeys);
+                        if (dicSelectScene.Count == 0 && dicSelectDevice.Count == 0)
+                        {
+                            this.btnDelete.Visible = false;
+                        }
+                    }
+                };
+            }
+        }
 
-        ///// <summary>
-        ///// 鍒犻櫎鍏变韩璁惧
-        ///// </summary>
-        ///// <param name="row"></param>
-        ///// <param name="device"></param>
-        //public async void DeleteShardDevice(StatuRowLayout row, CommonDevice device)
-        //{
-        //    var result = await HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, this.room, new List<CommonDevice>() { device }, new List<Common.SceneUI>());
-        //    if (result == true)
-        //    {
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            row?.RemoveFromParent();
-        //            if (this.listDeviceView != null && this.listDeviceView.ChildrenCount == 0 && this.listSceneView.ChildrenCount == 0)
-        //            {
-        //                //浠�涔堥兘娌℃湁浜�,鍒欏叧闂晫闈�
-        //                this.CloseForm();
-        //            }
-        //        });
-        //    }
-        //}
+        #endregion
 
-        //#endregion
+        #region 鈻� 鏁村悎璁惧___________________________
 
-        //#region 鈻� 鏄剧ず鍦烘櫙Tab鍒楄〃____________________
+        /// <summary>
+        /// 鑾峰彇鍒嗙粍鍚庣殑璁惧
+        /// </summary>
+        /// <returns></returns>
+        private Dictionary<int, List<CommonDevice>> GetAllGroupDevice()
+        {
+            //鍏ㄩ儴鐨勮澶�
+            var listDevice = this.GetShardListDevice();
+            var dic = new Dictionary<int, List<CommonDevice>>();
+            foreach (var device in listDevice)
+            {
+                var typeInfo = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device });
+                if (device.Type == DeviceType.IASZone)
+                {
+                    //杩欎釜寮哄埗涓轰紶鎰熷櫒
+                    typeInfo.BeloneTextId = R.MyInternationalizationString.uDeviceBelongId1200;
+                    typeInfo.ConcreteType = Common.DeviceConcreteType.Sensor;
+                }
+                if (device.Type == DeviceType.OnOffOutput)
+                {
+                    //缁х數鍣ㄧ殑鏃跺��,闇�瑕佺壒娈婂鐞�
+                    if (device.DfunctionType == DeviceFunctionType.A寮�鍏�)
+                    {
+                        typeInfo.BeloneTextId = R.MyInternationalizationString.uSwitch;
+                    }
+                    else if (device.DfunctionType == DeviceFunctionType.A鎻掑骇)
+                    {
+                        typeInfo.BeloneTextId = R.MyInternationalizationString.uSocket1;
+                    }
+                    else if (device.DfunctionType == DeviceFunctionType.A鐏厜)
+                    {
+                        typeInfo.BeloneTextId = R.MyInternationalizationString.uLight;
+                    }
+                    else
+                    {
+                        //缁х數鍣�
+                        typeInfo.BeloneTextId = R.MyInternationalizationString.uDeviceBelongId2300;
+                    }
+                    if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
+                    {
+                        dic[typeInfo.BeloneTextId] = new List<CommonDevice>();
+                    }
+                }
+                else
+                {
+                    if (dic.ContainsKey(typeInfo.BeloneTextId) == false)
+                    {
+                        dic[typeInfo.BeloneTextId] = new List<CommonDevice>();
+                    }
+                }
+                dic[typeInfo.BeloneTextId].Add(device);
+            }
+            return dic;
+        }
 
-        ///// <summary>
-        ///// 鍒濆鍖栧満鏅疶ab鍒楄〃
-        ///// </summary>
-        //private void InitSceneTabList()
-        //{
-        //    foreach (var sceneUi in this.room.SceneUIList)
-        //    {
-        //        if (sceneUi == null || memberShardInfo.dicAllMemberShard[this.room.FileName].Contains(sceneUi.FileName) == false)
-        //        {
-        //            //寮傚父锛屾垨鑰呬笉瀛樺湪,鍒欎笉鏄剧ず
-        //            continue;
-        //        }
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            if (this.Parent != null)
-        //            {
-        //                //娣诲姞鍦烘櫙琛�
-        //                this.AddSceneDetailRow(sceneUi);
-        //            }
-        //        });
-        //    }
-        //}
+        #endregion
 
-        ///// <summary>
-        ///// 娣诲姞鍦烘櫙鐨勬槑缁嗚
-        ///// </summary>
-        ///// <param name="sceneUI">鍦烘櫙瀵硅薄</param>
-        //private void AddSceneDetailRow(Common.SceneUI sceneUI)
-        //{
-        //    var sceneRow = new SceneViewRow(this.listSceneView, sceneUI);
+        #region 鈻� 鍒犻櫎鍒嗕韩___________________________
 
-        //    //绉婚櫎
-        //    var btnDelete = new RowDeleteButton();
-        //    btnDelete.TextID = R.MyInternationalizationString.RemoveBotton;
-        //    sceneRow.AddRightView(btnDelete);
-        //    btnDelete.MouseUpEventHandler += (sender, e) =>
-        //    {
-        //        //纭畾绉婚櫎閫変腑鐨勫満鏅紵
-        //        string msg = Language.StringByID(R.MyInternationalizationString.uConfirmRemoveSelectSceneMsg);
-        //        this.ShowConfirmMsg(msg, "DeleteShardScene", sceneRow, sceneUI);
-        //    };
-        //}
+        /// <summary>
+        /// 鍒犻櫎鍒嗕韩
+        /// </summary>
+        private void DeleteShardData()
+        {
+            //閫夋嫨鐨勮澶�
+            var listDevice = new List<CommonDevice>();
+            foreach (var device in dicSelectDevice.Values)
+            {
+                listDevice.Add(device);
+            }
+            //閫夋嫨鐨勫満鏅�
+            var listScene = new List<Common.SceneUI>();
+            foreach (var scene in dicSelectScene.Values)
+            {
+                listScene.Add(scene);
+            }
 
-        ///// <summary>
-        ///// 鍒犻櫎鍏变韩鍦烘櫙
-        ///// </summary>
-        ///// <param name="row"></param>
-        ///// <param name="sceneUI"></param>
-        //public async void DeleteShardScene(SceneViewRow row, Common.SceneUI sceneUI)
-        //{
-        //    var result = await HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, this.room, new List<CommonDevice>(), new List<Common.SceneUI>() { sceneUI });
-        //    if (result == true)
-        //    {
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            row?.RemoveFromParent();
-        //            if (this.listDeviceView != null && this.listDeviceView.ChildrenCount == 0 && this.listSceneView.ChildrenCount == 0)
-        //            {
-        //                //浠�涔堥兘娌℃湁浜�,鍒欏叧闂晫闈�
-        //                this.CloseForm();
-        //            }
-        //        });
-        //    }
-        //}
+            //纭鍒犻櫎閫夋嫨鐨勫叡浜満鏅拰鍔熻兘锛�
+            this.ShowMassage(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.uDeleteShardContentMsg), () =>
+            {
+                HdlThreadLogic.Current.RunThread(async () =>
+                {
+                    //涓婁紶鏂囦欢
+                    var result = await HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, this.lookRoom, listDevice, listScene);
+                    if (result == true)
+                    {
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            //閲嶆柊鍒濆鍖栫晫闈�
+                            this.InitMiddleFrame();
+                        });
+                    }
+                });
+            });
+        }
 
-        //#endregion
+        #endregion
 
-        //#region 鈻� 鑾峰彇鍙互鍒嗕韩鐨勮澶嘷________________
+        #region 鈻� 涓�鑸柟娉昣__________________________
 
-        ///// <summary>
-        ///// 鑾峰彇鍒嗕韩鐨勮澶�
-        ///// </summary>
-        ///// <returns></returns>
-        //private List<CommonDevice> GetShardListDevice()
-        //{
-        //    //鑾峰彇杩欎釜鎴块棿閲岄潰鐨勫垎浜澶囩殑璺緞
-        //    var listDeviceFile = new List<string>();
-        //    foreach (var ui in this.room.DeviceUIList)
-        //    {
-        //        if (ui.CommonDevice != null && memberShardInfo.dicAllMemberShard[this.room.FileName].Contains(ui.CommonDevice.FilePath) == true)
-        //        {
-        //            listDeviceFile.Add(ui.CommonDevice.FilePath);
-        //        }
-        //    }
+        /// <summary>
+        /// 鑾峰彇鍒嗕韩鐨勮澶�
+        /// </summary>
+        /// <returns></returns>
+        private List<CommonDevice> GetShardListDevice()
+        {
+            //鑾峰彇杩欎釜鎴块棿閲岄潰鐨勫垎浜澶�
+            var listDevice = new List<CommonDevice>();
+            foreach (var deviceFile in this.lookRoom.DeviceUIFilePathList)
+            {
+                if (memberShardInfo.dicAllShardKeys.ContainsKey(deviceFile) == true)
+                {
+                    var strArry = deviceFile.Split('_');
+                    if (strArry.Length < 3)
+                    {
+                        continue;
+                    }
+                    //浠庡垎浜枃浠朵腑搴忓垪鍖栧洖鏉�
+                    var deviceData = HdlShardLogic.Current.GetShardFileContent(deviceFile);
+                    var device = ZigBee.Device.CommonDevice.CommonDeviceByByteString(strArry[1], System.Text.Encoding.UTF8.GetString(deviceData));
+                    if (device != null)
+                    {
+                        listDevice.Add(device);
+                    }
+                }
+            }
+            return listDevice;
+        }
 
-        //    var listFile = HdlShardLogic.Current.GetLocalAllShardFile();
-        //    var listDevice = new List<CommonDevice>();
-        //    foreach (string file in listFile)
-        //    {
-        //        //濡傛灉涓嶆槸璁惧鏂囦欢锛屾垨鑰呰繖涓埧闂撮噷闈㈡病鏈夎繖涓澶�
-        //        if (file.StartsWith(Common.LocalDevice.deviceFirstName) == false || listDeviceFile.Contains(file) == false)
-        //        {
-        //            continue;
-        //        }
-        //        var strArry = file.Split('_');
-        //        if (strArry.Length < 3)
-        //        {
-        //            continue;
-        //        }
-        //        //浠庡垎浜枃浠朵腑搴忓垪鍖栧洖鏉�
-        //        var deviceData = HdlShardLogic.Current.GetShardFileContent(file);
-        //        var device = ZigBee.Device.CommonDevice.CommonDeviceByByteString(strArry[1], System.Text.Encoding.UTF8.GetString(deviceData));
-        //        if (device != null)
-        //        {
-        //            listDevice.Add(device);
-        //        }
-        //    }
-        //    return listDevice;
-        //}
-
-        //#endregion
-
-        //#region 鈻� 涓�鑸柟娉昣__________________________
-
-        //#endregion
+        #endregion
     }
 }
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs
index 515d242..18168ad 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs
@@ -142,6 +142,8 @@
                     {
                         this.AddRoomListRow(floorId, dicGroup[floorId]);
                     }
+                    //璋冩暣妗屽竷楂樺害
+                    listView.AdjustTableHeight();
                 });
             }
         }
@@ -226,6 +228,8 @@
                 }
                 frameRow.frameTable.ButtonClickEvent += (sender, e) =>
                 {
+                    var form = new LookSharedContentForm();
+                    form.AddForm(room, memberShardInfo);
                 };
 
                 //鍒犻櫎
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/QRCodeForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/QRCodeForm.cs
index b781ced..4f643e6 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/QRCodeForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/QRCodeForm.cs
@@ -63,10 +63,13 @@
             frameBack.AddChidren(frameDetail);
 
             //鐢ㄦ埛澶村儚
-            var btnIcon = new IconViewControl(294);
+            var btnIcon = new ImageView();
+            btnIcon.Height = Application.GetMinRealAverage(294);
+            btnIcon.Width = Application.GetMinRealAverage(294);
+            btnIcon.Radius = (uint)Application.GetMinRealAverage(294) / 2;
             btnIcon.Y = Application.GetRealHeight(121);
             btnIcon.Gravity = Gravity.CenterHorizontal;
-            btnIcon.UnSelectedImagePath = UserCenterResourse.UserInfo.UserIconFile;
+            btnIcon.ImagePath = UserCenterResourse.UserInfo.UserIconFile;
             frameBack.AddChidren(btnIcon);
             //鐢ㄦ埛鍚�
             var btnUser = new NormalViewControl(frameBack.Width, Application.GetRealHeight(46), false);
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/SecondAuthenticationForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/SecondAuthenticationForm.cs
index 705fdbd..44d8fc4 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/SecondAuthenticationForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/SecondAuthenticationForm.cs
@@ -155,19 +155,30 @@
                     {
                         //寮�鍚寚绾归獙璇佸け璐ワ紒璇峰墠寰�鎵嬫満{0}璁剧疆寮�鍚寚绾瑰紑閿侀獙璇�
                         string msg = Language.StringByID(R.MyInternationalizationString.uUseFingerprintAuthenticationFailMsg);
-                        if (msg.Contains("{0}") == true)
-                        {
-                            msg = string.Format(msg, "\r\n");
-                        }
+                        msg = msg.Replace("{0}", "\r\n");
                         this.ShowMassage(ShowMsgType.Normal, msg);
                         return;
                     }
+                    //灏員ouch ID鐢ㄤ簬銆孼igBee銆峽0}鏇存敼瀹夐槻璁剧疆鍜屽紑鍚棬閿佹椂浣跨敤
+                    string msg2 = Language.StringByID(R.MyInternationalizationString.uUseFingerprintAuthenticationMsg);
+                    msg2 = msg2.Replace("{0}", "\r\n");
+                    this.ShowMassage(ShowMsgType.Confirm, msg2, () =>
+                    {
+                        //濡傛灉璁剧疆鏈夊畨鍏ㄩ獙璇�,鎯宠淇敼瀹�,蹇呴』鍏堥�氳繃瀹夊叏楠岃瘉
+                        //濡傛灉娌℃湁璁剧疆鏈夊畨鍏ㄩ獙璇�,鍒欐棤闇�楠岃瘉
+                        HdlCheckLogic.Current.CheckSecondarySecurity(
+                            () => { this.DoFingerprintAuthentication(btnFingerSwicth, btnLockSwicth); },//澶勭悊鎸囩汗楠岃瘉
+                            () => { this.DoFingerprintAuthentication(btnFingerSwicth, btnLockSwicth); });//澶勭悊鎸囩汗楠岃瘉
+                    });
                 }
-                //濡傛灉璁剧疆鏈夊畨鍏ㄩ獙璇�,鎯宠淇敼瀹�,蹇呴』鍏堥�氳繃瀹夊叏楠岃瘉
-                //濡傛灉娌℃湁璁剧疆鏈夊畨鍏ㄩ獙璇�,鍒欐棤闇�楠岃瘉
-                HdlCheckLogic.Current.CheckSecondarySecurity(
-                    () => { this.DoFingerprintAuthentication(btnFingerSwicth, btnLockSwicth); },//澶勭悊鎸囩汗楠岃瘉
-                    () => { this.DoFingerprintAuthentication(btnFingerSwicth, btnLockSwicth); });//澶勭悊鎸囩汗楠岃瘉
+                else
+                {
+                    //濡傛灉璁剧疆鏈夊畨鍏ㄩ獙璇�,鎯宠淇敼瀹�,蹇呴』鍏堥�氳繃瀹夊叏楠岃瘉
+                    //濡傛灉娌℃湁璁剧疆鏈夊畨鍏ㄩ獙璇�,鍒欐棤闇�楠岃瘉
+                    HdlCheckLogic.Current.CheckSecondarySecurity(
+                        () => { this.DoFingerprintAuthentication(btnFingerSwicth, btnLockSwicth); },//澶勭悊鎸囩汗楠岃瘉
+                        () => { this.DoFingerprintAuthentication(btnFingerSwicth, btnLockSwicth); });//澶勭悊鎸囩汗楠岃瘉
+                }
             };
             //瀵嗙爜楠岃瘉
             rowPsw.ButtonClickEvent += (sender, e) =>
@@ -194,11 +205,13 @@
                 {
                     //濡傛灉璁剧疆鏈夊叾浠栭獙璇佹柟寮�,鍒欓渶瑕侀獙璇�,鍚﹀垯鐩存帴璺宠繃楠岃瘉
                     HdlCheckLogic.Current.CheckSecondarySecurity(
-                   () => { },
-                   () => { });
+                   () => { var form = new Password.EditorGesturePasswordForm(); form.AddForm(); },
+                   () => { var form = new Password.EditorGesturePasswordForm(); form.AddForm(); });
                 }
                 else
                 {
+                    var form = new Password.EditorGesturePasswordForm();
+                    form.AddForm();
                 }
             };
             //杩滅▼寮�閿�
@@ -237,19 +250,11 @@
                     this.ShowMassage(ShowMsgType.Normal, msg);
                     return;
                 }
-                //灏員ouch ID鐢ㄤ簬銆孼igBee銆峽0}鏇存敼瀹夐槻璁剧疆鍜屽紑鍚棬閿佹椂浣跨敤
-                string msg2 = Language.StringByID(R.MyInternationalizationString.uUseFingerprintAuthenticationMsg);
-                if (msg2.Contains("{0}") == true)
-                {
-                    msg2 = string.Format(msg2, "\r\n");
-                }
-                this.ShowMassage(ShowMsgType.Confirm, msg2, () =>
-                {
-                    UserCenterResourse.Option.FingerprintAuthentication = !btnFingerSwicth.IsSelected;
-                    UserCenterResourse.Option.Save();
-                    //閲嶆柊鍒锋柊鐣岄潰
-                    this.InitMiddleFrame();
-                });
+
+                UserCenterResourse.Option.FingerprintAuthentication = !btnFingerSwicth.IsSelected;
+                UserCenterResourse.Option.Save();
+                //閲嶆柊鍒锋柊鐣岄潰
+                this.InitMiddleFrame();
             }
             else
             {
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs
index d84a7e6..d8d38b6 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserInformationForm.cs
@@ -46,11 +46,21 @@
             bodyFrameLayout.AddChidren(specialTopFrame);
 
             //鐢ㄦ埛鍥炬爣
-            var btnUserIcon = new IconViewControl(251);
+            var btnUserIcon = new CutPictureControl(UserCenterResourse.UserInfo.UserIconFile, 251, 251, true);
+            btnUserIcon.Radius = (uint)Application.GetMinRealAverage(251) / 2;
             btnUserIcon.Y = Application.GetRealHeight(46);
             btnUserIcon.Gravity = Gravity.CenterHorizontal;
-            btnUserIcon.UnSelectedImagePath = UserCenterResourse.UserInfo.UserIconFile;
+            btnUserIcon.ImagePath = UserCenterResourse.UserInfo.UserIconFile;
             specialTopFrame.AddChidren(btnUserIcon);
+            btnUserIcon.SelectPictrueEvent += async (selectPic) =>
+            {
+                var pra = new { HeadImage = Shared.IO.FileUtils.ReadFile(selectPic) };
+                var result = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/UpdateHeadImage", false, pra);
+                if (result == true)
+                {
+                    UserCenterResourse.UserInfo.UserIconFileChanged = true;
+                }
+            };
         }
 
         #endregion
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs
index fc53b31..6d704ff 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/UserMain/UserMainForm.cs
@@ -25,7 +25,7 @@
         /// <summary>
         /// 鐢ㄦ埛澶村儚
         /// </summary>
-        private IconViewControl btnUserIcon = null;
+        private ImageView btnUserIcon = null;
         /// <summary>
         /// 鐨囧啝
         /// </summary>
@@ -81,7 +81,7 @@
             frameBack.BackgroundColor = UserCenterColor.Current.BodyFrameLayout;
             frameBack.Y = Application.GetRealHeight(380);
             frameBack.Gravity = Gravity.CenterHorizontal;
-            frameBack.Radius = (uint)Application.GetMinRealAverage(12);
+            frameBack.Radius = 12;
             frameBack.Width = bodyFrameLayout.Width - Application.GetRealWidth(29 * 2);
             frameBack.Height = bodyFrameLayout.Height - Application.GetRealHeight(380) + Application.GetRealHeight(100);
             bodyFrameLayout.AddChidren(frameBack);
@@ -107,9 +107,12 @@
         private void InitUserInfoControl(FrameLayout frameWhite)
         {
             //鐢ㄦ埛澶村儚
-            this.btnUserIcon = new IconViewControl(280);
+            this.btnUserIcon = new ImageView();
+            btnUserIcon.Height = Application.GetMinRealAverage(280);
+            btnUserIcon.Width = Application.GetMinRealAverage(280);
+            btnUserIcon.Radius = (uint)Application.GetMinRealAverage(280) / 2;
             btnUserIcon.X = Application.GetRealWidth(121);
-            btnUserIcon.UnSelectedImagePath = UserCenterResourse.UserInfo.UserIconFile;
+            btnUserIcon.ImagePath = UserCenterResourse.UserInfo.UserIconFile;
             bodyFrameLayout.AddChidren(btnUserIcon);
             btnUserIcon.Y = frameWhite.Y - Application.GetRealHeight(109);
             btnUserIcon.MouseUpEventHandler += (sender, e) =>
@@ -173,7 +176,7 @@
                 frameWhiteBack.Gravity = Gravity.CenterHorizontal;
                 frameWhiteBack.Height = Application.GetRealHeight(371);
                 frameWhiteBack.Width = frameWhite.Width - Application.GetRealWidth(29 * 2);
-                frameWhiteBack.Radius = (uint)Application.GetMinRealAverage(10);
+                frameWhiteBack.Radius = 10;
                 frameWhiteBack.BackgroundColor = UserCenterColor.Current.White;
                 frameWhite.AddChidren(frameWhiteBack);
             }
@@ -412,9 +415,10 @@
         public override int FormActionAgainEvent()
         {
             //鐢ㄦ埛澶村儚
-            if (btnUserIcon.UnSelectedImagePath != UserCenterResourse.UserInfo.UserIconFile)
+            if (UserCenterResourse.UserInfo.UserIconFileChanged == true)
             {
-                btnUserIcon.UnSelectedImagePath = UserCenterResourse.UserInfo.UserIconFile;
+                UserCenterResourse.UserInfo.UserIconFileChanged = false;
+                btnUserIcon.ImagePath = UserCenterResourse.UserInfo.UserIconFile;
             }
             //鐢ㄦ埛鍚嶅瓧
             btnUserName.Text = UserCenterResourse.UserInfo.UserName;
diff --git a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
index 51c0d12..b069cce 100755
--- a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
+++ b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
@@ -73,7 +73,10 @@
 
 
         private FrameLayout itemView=new FrameLayout();
-
+        /// <summary>
+        /// floorBtn
+        /// </summary>
+        private Button floorBtn;
         #endregion
 
         #region 鈼� 鎺ュ彛____________________________
@@ -452,7 +455,7 @@
             };
             topFrameLayout.AddChidren(floor);
 
-            var floorBtn = new Button
+            floorBtn = new Button
             {
                 X=floor.Right,
                 Width=Application.GetRealWidth(500),
@@ -492,18 +495,8 @@
             }
             AddChidren(residecneName);
 
-            EventHandler<MouseEventArgs> selectFloor = (send, e) =>
-              {
-                  var floorFL = new Phone.Device.Category.SelectFloor();
-                  AddChidren(floorFL);
-                  floorFL.Init(35,153);
-                  floorFL.FloorAction = (floorName) =>
-                  {
-                      floorBtn.Text = floorName;
-                  };
-              };
-            floor.MouseUpEventHandler += selectFloor;
-            floorBtn.MouseUpEventHandler += selectFloor;
+            floor.MouseUpEventHandler += SelectFloor;
+            floorBtn.MouseUpEventHandler += SelectFloor;
             //鍒囨崲浣忓畢
             residecneName.MouseLongEventHandler += (send, e) =>
             {
@@ -684,7 +677,7 @@
                 {
                     //Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.CurrentRoom;
                     Room.CurrentRoom = Room.Lists[0];
-                    foreach (var room in Room.Lists)
+                    foreach (var room in Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom())
                     {
                         var roomBackView = new FrameLayout()
                         {
@@ -729,7 +722,10 @@
                             //{
                             //    Show();
                             //};
-
+                            if(room.IsLove)
+                            {
+                                return;
+                            }
                             var editRoom = new Device.Room.EditRoom();
                             HomePage.Instance.AddChidren(editRoom);
                             HomePage.Instance.PageIndex += 1;
@@ -859,7 +855,9 @@
         #endregion
 
         #region 鈼� 鍒锋柊____________________________
-
+        /// <summary>
+        /// RefreshBodyView
+        /// </summary>
         public void RefreshBodyView()
         {
             if (Room.CanInitAllRoom == false)
@@ -877,6 +875,23 @@
             }
         }
 
+        /// <summary>
+        /// SelectFloor
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="mouseEventArgs"></param>
+        public void SelectFloor(object sender,MouseEventArgs mouseEventArgs)
+        {
+            var floorFL = new Phone.Device.Category.SelectFloor();
+            AddChidren(floorFL);
+            floorFL.Init(35, 153);
+            floorFL.FloorAction = (floorName) =>
+            {
+                floorBtn.Text = floorName;
+                Show();
+            };
+        }
+
         #endregion
 
         #region 鈼� 妫�娴嬫槸鍚︾粦瀹氫簡缃戝叧________________
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Common/Config.cs b/ZigbeeApp/Shared/Phone/ZigBee/Common/Config.cs
index 2ceaa14..c45a493 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Common/Config.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Common/Config.cs
@@ -194,7 +194,8 @@
                 config = new Config { };
             }
         }
-
+        
+        public string Name = string.Empty;
         /// <summary>
         /// 褰撳墠鐧诲綍鐨勫笎鍙�
         /// </summary>
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
index 95f1a58..aa369f9 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/BindObj.cs
@@ -414,7 +414,7 @@
                     {
                         continue;
                     }
-                    if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0).Count)
+                    if (0 < responseData.delDeviceBindResponseData.RemoveBindList.FindAll((obj) => obj.BindType == 0 && obj.Result == 3).Count)
                     {
                         if (responseData.removeBindResultResponseData != null)
                         {
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
index 0c25cf7..a7af65e 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
@@ -20,10 +20,10 @@
         {
             if (flage == true)
             {
-                //if (msg.Contains("DeviceStatusReport") == false)
-                //{
-                System.Console.WriteLine(msg + "  " + System.DateTime.Now.ToLongTimeString() + " " + System.DateTime.Now.Millisecond);
-                //}
+                if (msg.Contains("DeviceStatusReport") == false)
+                {
+                    System.Console.WriteLine(msg + "  " + System.DateTime.Now.ToLongTimeString() + " " + System.DateTime.Now.Millisecond);
+                }
             }
         }
 
@@ -415,10 +415,6 @@
         /// 搴忓垪鍙�
         /// </summary>
         public string SerialNumber = string.Empty;
-        /// <summary>
-        /// 鏁翠釜璁惧鎵�灞炵殑鍖哄煙ID(鍥犱负璁惧涔熻兘澶熷垎閰嶅尯鍩熶簡)
-        /// </summary>
-        public string DeviceRoomId = string.Empty;
         /// <summary>
         /// 鎵�鏈夋寚瀹歝luster鏄惁閮藉凡缁忔垚鍔熺粦瀹氬崗璋冨櫒
         ///<para>0:鏈畬鍏ㄧ粦瀹�</para>
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs
index 599c3a1..e5c61ca 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs
@@ -26,7 +26,7 @@
         public Dictionary<int, LocaDoorLockObj> localDoorLockUserList = new Dictionary<int, LocaDoorLockObj>();
         public string currentUserDisplayMethod = string.Empty;
         public List<Shared.Phone.UserCenter.MemberInfoRes> localAllAccountList = new List<Shared.Phone.UserCenter.MemberInfoRes> { };
-        public static int RemoteUnlockCount = 3;//杩滅▼寮�閿佹鏁伴檺鍒�
+        public static int RemoteUnlockCount = 5;//杩滅▼寮�閿佹鏁伴檺鍒�
         public static string RemoteUnlockPassword = string.Empty;//杩滅▼寮�閿佸瘑鐮�
         public static DateTime maxValue = DateTime.MaxValue;
         public static DateTime minValue = DateTime.MinValue;
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
index 005792d..e969e92 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
@@ -31,7 +31,10 @@
         /// 褰撳墠閫夋嫨妯″紡
         /// </summary>
         public string currentKeySelectModeText = "";
-
+        /// <summary>
+        /// 褰撳墠閫夋嫨鐨勬ゼ灞侷D
+        /// </summary>
+        public string currentSelectFloorId = string.Empty;
         /// <summary>
         /// 褰撳墠寮�鍏虫ā寮�
         /// </summary>
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/Safeguard.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/Safeguard.cs
index 5068bba..2e92268 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/Safeguard.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/Safeguard.cs
@@ -877,7 +877,10 @@
             /// 鏈�灏�4涓瓧绗︼紝鏈�澶�32涓瓧绗�
             /// </summary>
             public string Password;
-
+            /// <summary>
+            /// 鐢ㄦ埛瀵嗙爜鎻愮ず璇�
+            /// </summary>
+            public string PassWordTips = string.Empty;
         }
         #endregion
 
@@ -886,10 +889,11 @@
         /// *鏂板鎴栭噸璁剧敤鎴峰瘑鐮侊紙闇�瑕佺鐞嗗憳鏉冮檺锛�
         /// <para>userId:鐢ㄦ埛id 濡傛灉鐢ㄦ埛id瀛樺湪锛屽垯淇敼瀵嗙爜銆傚鏋滅敤鎴穒d涓嶅瓨鍦紝鍒欎负璇d鏂板瀵嗙爜
         /// 涓�0鏃讹紝鑷姩鍒嗛厤鏂扮殑鐢ㄦ埛id銆備负5鏃讹紝鍒欎慨鏀硅儊杩瘑鐮併�傚彇鍊艰寖鍥�0-5銆�</para>
-        ///  <para>password:鏂扮鐞嗗憳瀵嗙爜</para>
+        /// <para>password:鏂扮鐞嗗憳瀵嗙爜</para>
+        /// <para>passWordTips:瀵嗙爜鎻愮ず</para>
         /// <para>loginToken:鐧婚檰鏍囪瘑锛屾渶澶�32涓瓧绗︺�傜敱app鑷姩鐢熸垚鐨勫敮涓�鏍囪瘑銆備笌绠$悊鍛樼櫥闄嗘寚浠ょ殑鈥淟oginToken鈥濅竴鑷达紝鍚﹀垯灏嗚繑鍥炩�淪ecurity/Error_Respon鈥濋敊璇��</para>
         /// </summary> 
-        public static async System.Threading.Tasks.Task<SetUserPasswordResponseAllData> SetUserPasswordAsync(int userId, string password,string loginToken)
+        public static async System.Threading.Tasks.Task<SetUserPasswordResponseAllData> SetUserPasswordAsync(int userId, string password, string passWordTips, string loginToken)
         {
             return await System.Threading.Tasks.Task.Run(async () =>
             {
@@ -980,6 +984,7 @@
                     {
                      { "UserId", userId  },
                      { "Password", password},
+                     { "PassWordTips", passWordTips},
                      { "LoginToken", loginToken}
                     };
                     jObject.Add("Data", data);
@@ -1005,6 +1010,129 @@
 
                 return d;
             });
+        }
+
+        /// <summary>
+        /// *鏂板鎴栭噸璁剧敤鎴峰瘑鐮侊紙闇�瑕佺鐞嗗憳鏉冮檺锛�
+        /// <para>userId:鐢ㄦ埛id 濡傛灉鐢ㄦ埛id瀛樺湪锛屽垯淇敼瀵嗙爜銆傚鏋滅敤鎴穒d涓嶅瓨鍦紝鍒欎负璇d鏂板瀵嗙爜
+        /// 涓�0鏃讹紝鑷姩鍒嗛厤鏂扮殑鐢ㄦ埛id銆備负5鏃讹紝鍒欎慨鏀硅儊杩瘑鐮併�傚彇鍊艰寖鍥�0-5銆�</para>
+        /// <para>password:鏂扮鐞嗗憳瀵嗙爜</para>
+        /// <para>passWordTips:瀵嗙爜鎻愮ず</para>
+        /// <para>loginToken:鐧婚檰鏍囪瘑锛屾渶澶�32涓瓧绗︺�傜敱app鑷姩鐢熸垚鐨勫敮涓�鏍囪瘑銆備笌绠$悊鍛樼櫥闄嗘寚浠ょ殑鈥淟oginToken鈥濅竴鑷达紝鍚﹀垯灏嗚繑鍥炩�淪ecurity/Error_Respon鈥濋敊璇��</para>
+        /// </summary> 
+        public static async System.Threading.Tasks.Task<SetUserPasswordResponseAllData> SetPassWordTipsAsync(int userId, string password, string passWordTips, string loginToken)
+        {
+            return await System.Threading.Tasks.Task.Run(async () =>
+            {
+                SetUserPasswordResponseAllData d = null;
+                var mainGateway = ZbGateway.MainGateWay;
+                if (mainGateway == null)
+                {
+                    d = new SetUserPasswordResponseAllData { errorMessageBase = "褰撳墠娌℃湁涓荤綉鍏�" };
+                    return d;
+                }
+
+                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 = mainGateway.getGatewayBaseInfo.gwID };
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+
+                        if (temp == null)
+                        {
+                            d = new SetUserPasswordResponseAllData { errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖" };
+                        }
+                        else
+                        {
+                            d = new SetUserPasswordResponseAllData { errorResponData = temp, errorMessageBase = ErrorMess(temp.Error) };
+                        }
+                    }
+
+                    if (topic == gatewayID + "/" + "Security/Error_Respon")
+                    {
+                        var securityTemp = new Safeguard() { Time = jobject.Value<int>("Time"), DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.getGatewayBaseInfo.gwID };
+                        var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<ErrorResponData>(jobject["Data"].ToString());
+                        d = new SetUserPasswordResponseAllData { };
+                        if (temp == null)
+                        {
+                            d.errorMessageBase = "缃戝叧閿欒鍥炲锛屼笖鏁版嵁鏄┖";
+                        }
+                        else
+                        {
+                            if (temp.Error == 1)
+                            {
+                                d.errorMessageBase = "缃戝叧涓嶆槸涓荤綉鍏筹紝鏃犳硶杩涜璇ユ搷浣溿��";
+                            }
+                            else if (temp.Error == 2)
+                            {
+                                d.errorMessageBase = "璇ユ搷浣滈渶瑕佸畨闃茬鐞嗗憳鏉冮檺锛岄渶鍏堜互绠$悊鍛樿韩浠借繘琛岀櫥闄嗐��";
+                            }
+                            d.errorResponData = temp;
+                        }
+                    }
+
+                    if (topic == gatewayID + "/" + "Security/AddPassWordTips_Respon")
+                    {
+                        var security = new Safeguard() { DataID = jobject.Value<int>("Data_ID"), GateWayId = mainGateway.CurrentGateWayId };
+                        var result = Newtonsoft.Json.JsonConvert.DeserializeObject<int>(jobject["Data"]["Result"].ToString());
+                        if (result == 0)
+                        {
+                            security.setUserPasswordResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<SetUserPasswordResponseData>(jobject["Data"].ToString());
+                            if (security.setUserPasswordResponseData != null)
+                            {
+                                d = new SetUserPasswordResponseAllData { setUserPasswordResponseData = security.setUserPasswordResponseData };
+                            }
+                        }
+                        else
+                        {
+                            d = new SetUserPasswordResponseAllData { };
+                            var r = new SetUserPasswordResponseData();
+                            r.Result = result;
+                            d.setUserPasswordResponseData = r;
+                        }
+                    }
+                };
+                mainGateway.Actions += action;
+                try
+                {
+                    var jObject = new Newtonsoft.Json.Linq.JObject() {
+                                    { "Cluster_ID", 0 },
+                                    { "Command", 4037}
+                                };
+                    var data = new JObject
+                    {
+                     { "UserId", userId  },
+                     { "Password", password},
+                     { "PassWordTips", passWordTips},
+                     { "LoginToken", loginToken}
+                    };
+                    jObject.Add("Data", data);
+                    mainGateway.Send("Security/AddPassWordTips", jObject.ToString());
+                }
+                catch
+                {
+                }
+                var dateTime = DateTime.Now;
+                while ((DateTime.Now - dateTime).TotalMilliseconds < WaitReceiveDataTime)
+                {
+                    await System.Threading.Tasks.Task.Delay(10);
+                    if (d != null)
+                    {
+                        break;
+                    }
+                }
+                if ((DateTime.Now - dateTime).TotalMilliseconds > WaitReceiveDataTime)
+                {
+                    d = new SetUserPasswordResponseAllData { errorMessageBase = " 鍥炲瓒呮椂锛岃閲嶆柊鎿嶄綔" };
+                }
+                mainGateway.Actions -= action;
+
+                return d;
+            });
         }
 
         /// <summary>
diff --git a/ZigbeeApp/Shared/R.cs b/ZigbeeApp/Shared/R.cs
index 084b7f1..e922717 100755
--- a/ZigbeeApp/Shared/R.cs
+++ b/ZigbeeApp/Shared/R.cs
@@ -261,7 +261,7 @@
         public readonly static int ModigfyFailed = 175;
         public readonly static int OnlyBeDeletedOnTheDevice = 176;
         public readonly static int Undistributed = 177;
-        public readonly static int AfterThirtySeconds = 178;
+        public readonly static int AfterFiftySeconds = 178;
         //闂ㄩ攣楠岃瘉瀵嗙爜澶辫触
         public readonly static int OperrateFailed = 179;
         public readonly static int RemoteUnlockBindSucessTip1 = 180;
@@ -287,6 +287,7 @@
         public readonly static int ModifyTempPasswordTip1 = 200;
         public readonly static int ModifyTempPasswordTip2 = 201;
         public readonly static int FirstFloor = 202;
+        public readonly static int GwResponseOvertime = 203;
 
         public readonly static int RemindSetting = 548;
         public readonly static int AddNewUser = 650;
@@ -551,8 +552,8 @@
         public readonly static int selectunlockingmode=5364;
         public readonly static int lockaddaction = 5365;
         public readonly static int linkageevent = 5366;
-
-
+        public readonly static int current = 5367;
+        public readonly static int selecfoolr = 5368;
 
 
 		#region 鐧诲綍娉ㄥ唽
@@ -670,6 +671,38 @@
 		/// 浣犵殑瀵嗙爜淇敼鎴愬姛锛岃閲嶆柊鐧诲綍
 		/// </summary>
 		public const int ResetScucessPleaseLogin = 10126;
+        /// <summary>
+        /// 璇烽�夋嫨鍖哄彿
+        /// </summary>
+        public const int PleaseSelectAreaCode = 10127;
+        /// <summary>
+		/// 鏈縺娲�
+		/// </summary>
+		public const int NOTVERIFY = 10128;
+        /// <summary>
+        /// 璇ョ敤鎴峰睘浜庤皟璇曡处鍙凤紝骞舵湭鍚敤
+        /// </summary>
+        public const int NOTENABLE = 10129;
+        /// <summary>
+        /// //鏁版嵁骞朵笉鍦ㄦHDL鍖哄煙鏈嶅姟鍣�
+        /// </summary>
+        public const int YOUDATANOISLOCALREGION = 10130;
+        /// <summary>
+        /// 璐﹀彿鎴栧瘑鐮侀敊璇�
+        /// </summary>
+        public const int USERNAMEORPWDERROR = 10131;
+        /// <summary>
+        /// 璐﹀彿涓嶅瓨鍦紝璇峰厛娉ㄥ唽
+        /// </summary>
+        public const int ACCOUNTNOEXISTS = 10132;
+        /// <summary>
+        /// 璇疯緭鍏ラ獙璇佺爜
+        /// </summary>
+        public const int PleaseInputVerificationCode = 10133;
+        /// <summary>
+        /// 鍗冲皢閫氳繃寰俊鎺堟潈鐧诲綍
+        /// </summary>
+        public const int LoginByWechat = 10134;
 
 
 		#endregion
@@ -1001,6 +1034,34 @@
         /// 缂栬緫鍦烘櫙
         /// </summary>
         public const int EditorScene = 13141;
+        /// <summary>
+        /// 鏈垎閰嶅尯鍩�
+        /// </summary>
+        public const int UnallocatedArea = 13142;
+        /// <summary>
+        /// 鍔熻兘绫诲瀷
+        /// </summary>
+        public const int FunctionType = 13143;
+        /// <summary>
+        /// 澶辫触锛岃閲嶈瘯
+        /// </summary>
+        public const int FailedPleaseTryAgain = 13144;
+        /// <summary>
+        /// 鎴愬姛
+        /// </summary>
+        public const int Success = 13145;
+        /// <summary>
+        /// 榛樿鍥惧簱
+        /// </summary>
+        public const int LocalPicture = 13146;
+        /// <summary>
+        /// 鎷嶇収
+        /// </summary>
+        public const int Photograph = 13147;
+        /// <summary>
+        /// 鎴戠殑鐩稿唽
+        /// </summary>
+        public const int MyAblums = 13148;
 
         #endregion
 
@@ -1025,7 +1086,7 @@
 		public static readonly int PleaseGoToTheMailboxToActivateTheAccountNumber = 10012;
 		public static readonly int PleaseInputTheCorrectCellPhoneNumber = 10013;
 		public static readonly int PleaseInputTheCorrectVerificationCode = 10014;
-		public static readonly int PleaseSelectAreaCode = 10015;
+		
 
 		public static readonly int ThePhoneNumberIsNotRegisteredYetPleaseRegisterFirst = 10017;
 		public static readonly int LoginCodeError = 10018;
@@ -1060,7 +1121,7 @@
 		public static readonly int LoginHadAccountPWD = 11008;
 
 
-		public static readonly int PleaseInputVerificationCode = 11011;
+		
 
 
 
@@ -1131,26 +1192,7 @@
 		public static readonly int ModifyScene = 11078;
 
 
-		/// <summary>
-		/// 鏈縺娲�
-		/// </summary>
-		public static readonly int NOTVERIFY = 11081;
-		/// <summary>
-		/// 璇ョ敤鎴峰睘浜庤皟璇曡处鍙凤紝骞舵湭鍚敤
-		/// </summary>
-		public static readonly int NOTENABLE = 11082;
-		/// <summary>
-		/// //鏁版嵁骞朵笉鍦ㄦHDL鍖哄煙鏈嶅姟鍣�
-		/// </summary>
-		public static readonly int YOUDATANOISLOCALREGION = 11083;
-		/// <summary>
-		/// 璐﹀彿鎴栧瘑鐮侀敊璇�
-		/// </summary>
-		public static readonly int USERNAMEORPWDERROR = 11084;
-		/// <summary>
-		/// 璐﹀彿涓嶅瓨鍦紝璇峰厛娉ㄥ唽
-		/// </summary>
-		public static readonly int ACCOUNTNOEXISTS = 11085;
+		
 
 
 		public static readonly int YourPWDIsTooSample = 11088;
@@ -1192,7 +1234,7 @@
 		/// 鐧惧垎姣�
 		/// </summary>
 		public static readonly int Percent = 11103;
-		public static readonly int Success = 11104;
+
 
 		/// <summary>
 		/// The please confirm new password.
@@ -1204,10 +1246,7 @@
 		public readonly static int NORECORD = 11107;
 
 		public static readonly int TheMainGatewayIsNotOnLine = 12000;
-		/// <summary>
-		/// 澶辫触锛岃閲嶈瘯
-		/// </summary>
-		public static readonly int FailedPleaseTryAgain = 12001;
+
 		public static readonly int TheSceneIsNull = 12002;
 		/// <summary>
 		/// 璇ュ満鏅腑娌℃湁鎵ц鐩爣
@@ -1760,9 +1799,9 @@
         /// </summary>
         public const int uSafetyPasswordSettion = 15119;
         /// <summary>
-        /// 鐢ㄦ埛瀵嗙爜
+        /// 瀹夐槻瀵嗙爜
         /// </summary>
-        public const int uUserPassword = 15120;
+        public const int uSafetyPassword = 15120;
         /// <summary>
         /// 鑳佽揩瀵嗙爜
         /// </summary>
@@ -1824,7 +1863,7 @@
         /// </summary>
         public const int uContactInCoerceStatu = 15135;
         /// <summary>
-        /// 璇疯緭鍏ユ墜鏈哄彿鐮�
+        /// 璇疯緭鍏ユ墜鏈哄彿
         /// </summary>
         public const int uPleaseInputPhoneNumber = 15136;
         /// <summary>
@@ -2052,7 +2091,7 @@
         /// </summary>
         public const int uUpSubAccountLevel = 15192;
         /// <summary>
-        /// 纭畾瑕佹挙閿�璇ユ垚鍛樼鐞嗘潈闄愬悧锛�
+        /// 纭畾鍙栨秷銆寋0}銆嶇鐞嗗憳鏉冮檺锛�
         /// </summary>
         public const int uDownSubAccountLevel = 15193;
         /// <summary>
@@ -2060,13 +2099,13 @@
         /// </summary>
         public const int uMemberAuthorization = 15194;
         /// <summary>
-        /// 鎴愬憳鎺堟潈鎴愬姛
+        /// 鎺堟潈鎴愬姛!
         /// </summary>
         public const int uMemberAuthorizationSuccess = 15195;
         /// <summary>
-        /// 璇ユ垚鍛樺凡鎴愪负绠$悊鍛�,鎮ㄧ殑鎺у埗鏉冨凡绉讳氦
+        /// 璇ユ垚鍛樺凡鎴愪负绠$悊鍛�
         /// </summary>
-        public const int uSubAccountLevelIsUpAndLetAuthorization = 15196;
+        public const int uSubAccountLevelIsUp = 15196;
         /// <summary>
         /// 纭畾瑕佺Щ闄よ瀹跺涵鎴愬憳鍚楋紵
         /// </summary>
@@ -2540,9 +2579,9 @@
         /// </summary>
         public const int uPleaseInputUserPassword = 15347;
         /// <summary>
-        /// 鐢ㄦ埛瀵嗙爜宸叉洿鏂�
+        /// 瀹夐槻瀵嗙爜璁剧疆鎴愬姛
         /// </summary>
-        public const int uUserPasswordRefreshMsg = 15348;
+        public const int uSetSafetyPasswordSuccess = 15348;
         /// <summary>
         /// 淇敼鐢ㄦ埛瀵嗙爜澶辫触
         /// </summary>
@@ -4392,11 +4431,11 @@
 		/// </summary>
 		public const int uRoomList = 15842;
         /// <summary>
-        /// 杩樻病鏈夋坊鍔犲満鏅摝
+        /// 杩樻病鏈夋坊鍔犲満鏅�
         /// </summary>
         public const int uDoNotHadAddScenceMsg = 15843;
         /// <summary>
-        /// 杩樻病鏈夋坊鍔犺澶囧摝
+        /// 杩樻病鏈夋坊鍔犺澶�
         /// </summary>
         public const int uDoNotHadAddDeviceMsg = 15844;
         /// <summary>
@@ -4455,6 +4494,162 @@
         /// 鏃犲彲鍏变韩鐨勮澶�
         /// </summary>
         public const int uNotCanShardDeviceMsg = 15858;
+        /// <summary>
+        /// 鏃犲彲鍙栨秷鍏变韩鐨勫満鏅�
+        /// </summary>
+        public const int uNotCanCancelShardSceneMsg = 15859;
+        /// <summary>
+        /// 鏃犲彲鍙栨秷鍏变韩鐨勮澶�
+        /// </summary>
+        public const int uNotCanCancelDeviceMsg = 15860;
+        /// <summary>
+        /// 纭鍒犻櫎閫夋嫨鐨勫叡浜満鏅拰鍔熻兘锛�
+        /// </summary>
+        public const int uDeleteShardContentMsg = 15861;
+        /// <summary>
+        /// 纭畾鍒涘缓銆屽畨闃层�嶆嵎寰勫埌涓婚〉锛�
+        /// </summary>
+        public const int uCreatSafetyShortcutMsg = 15862;
+        /// <summary>
+        /// 纭畾鍙栨秷涓婚〉鐨勩�屽畨闃层�嶆嵎寰勶紵
+        /// </summary>
+        public const int uCancelSafetyShortcutMsg = 15863;
+        /// <summary>
+        /// 璇峰墠寰�涓汉涓績{0}璁剧疆浜屾瀹夊叏楠岃瘉鏂瑰紡
+        /// </summary>
+        public const int uGotoCenterAndSetSecondAuthentication = 15864;
+        /// <summary>
+        /// 24灏忔椂闃插尯涓嶅彈甯冮槻銆佹挙闃插奖鍝峽0}闃插尯琚Е鍙戠珛鍗虫姤璀0}涓�鑸缃儫闆俱�佺噧姘斻�佹按娴哥瓑浼犳劅鍣�
+        /// </summary>
+        public const int u24HourSectorsTipMsg = 15865;
+        /// <summary>
+        /// 鍦ㄧ瀹跺竷闃叉ā寮忎笅锛屽唴閮ㄩ槻鍖轰紶鎰熷櫒瑙﹀彂{0}绔嬪嵆鎶ヨ銆傚湪鍦ㄥ甯冮槻妯″紡涓媨0}鍐呴儴闃插尯鎵�鏈変紶鎰熷櫒涓嶅弬涓庢姤璀�
+        /// </summary>
+        public const int uInteriorSectorsTipMsg = 15866;
+        /// <summary>
+        /// 绂诲甯冮槻妯″紡鎴栧湪瀹跺竷闃叉ā寮忎笅{0}鍛ㄧ晫闃插尯浼犳劅鍣ㄨЕ鍙戠珛鍗虫姤璀�
+        /// </summary>
+        public const int uPerimeterSectorsTipMsg = 15867;
+        /// <summary>
+        /// 鍦ㄥ竷闃插悗绯荤粺鎻愪緵涓�瀹氱殑寤惰繜鏃堕棿銆傚嚭闂ㄦ椂{0}澶栧嚭寤舵椂缁撴潫鍚庯紝绯荤粺瑙﹀彂鐩爣鎶ヨ{0}鍥炲鏃讹紝杩涘叆寤舵椂缁撴潫鍚庯紝绯荤粺瑙﹀彂鐩爣鎶ヨ
+        /// </summary>
+        public const int uInAndOutSectorsTipMsg = 15868;
+        /// <summary>
+        /// 闈欓煶闃插尯涓嶅彈甯冮槻銆佹挙闃插奖鍝嶏紝闃插尯琚珄0}瑙﹀彂绔嬪嵆鎶ヨ锛岄�氬父涓嶄骇鐢熷0闊虫垨{0}鍏朵粬鎻愮ず锛屽彧鍙戦�佷俊鎭埌鐗瑰畾鐨勬帴鏀惰��
+        /// </summary>
+        public const int uMuteSectorsTipMsg = 15869;
+        /// <summary>
+        /// 杩樻病鏈夎缃紶鎰熷櫒
+        /// </summary>
+        public const int uDoNotHadSettionSensorMsg = 15870;
+        /// <summary>
+        /// 杩樻病鏈夎缃姤璀︾洰鏍�
+        /// </summary>
+        public const int uDoNotHadSettionTargetMsg = 15871;
+        /// <summary>
+        /// 鏃犳硶璇嗗埆鐨勮澶�
+        /// </summary>
+        public const int uUnDistinguishTheDevice = 15872;
+        /// <summary>
+        /// 鎷嶇収
+        /// </summary>
+        public const int uTakePictrue = 15873;
+        /// <summary>
+        /// 浠庣浉鍐屼腑閫夋嫨
+        /// </summary>
+        public const int uGetPictrueFromAlbum = 15874;
+        /// <summary>
+        /// 鍑虹幇鏈煡閿欒
+        /// </summary>
+        public const int uUnKnownError = 15875;
+        /// <summary>
+        /// 璇疯緭鍏ユ墜鍔�
+        /// </summary>
+        public const int uPleaseInputGesture = 15876;
+        /// <summary>
+        /// 璇峰啀娆¤緭鍏ユ墜鍔�
+        /// </summary>
+        public const int uPleaseInputGestureAgain = 15877;
+        /// <summary>
+        /// 鏇存敼鎵嬪娍锛岃杈撳叆鎵嬪娍
+        /// </summary>
+        public const int uEditorGesturePleaseInputNewGesture = 15878;
+        /// <summary>
+        /// 纭鎵嬪娍閿欒锛岃閲嶆柊璁剧疆
+        /// </summary>
+        public const int uGestureNotEqual = 15879;
+        /// <summary>
+        /// 鎵嬪娍閿欒锛岃閲嶆柊杈撳叆
+        /// </summary>
+        public const int uOldGestureIsError = 15880;
+        /// <summary>
+        /// 鎵嬪娍瀵嗙爜闀垮害蹇呴』澶т簬{0}
+        /// </summary>
+        public const int uGesturePswLenthError = 15881;
+        /// <summary>
+        /// 蹇樿鎵嬪娍锛�
+        /// </summary>
+        public const int uForgotGestureMsg = 15882;
+        /// <summary>
+        /// 鐢ㄤ簬鍦ㄥ甯冮槻銆佺瀹跺竷闃层�佹挙闃叉搷浣�
+        /// </summary>
+        public const int uUserInGarrisonAndWithdrawGarrison = 15883;
+        /// <summary>
+        /// 杈撳叆璇ュ瘑鐮侊紝绔嬪嵆閫氱煡浠栦汉
+        /// </summary>
+        public const int uEnterPasswordToNotifyOthersImmediately = 15884;
+        /// <summary>
+        /// 鍙栨秷鎴愬姛
+        /// </summary>
+        public const int uCancelSuccess = 15885;
+        /// <summary>
+        /// 璇ョ鐞嗗憳宸叉垚涓烘垚鍛�
+        /// </summary>
+        public const int uSubAccountLevelIsDown = 15886;
+        /// <summary>
+        /// 璇疯緭鍏ユ柊鎵嬪娍
+        /// </summary>
+        public const int uPleaseInputNewGesture = 15887;
+        /// <summary>
+        /// 鐢ㄦ埛瀵嗙爜
+        /// </summary>
+        public const int uUserPassword = 15888;
+        /// <summary>
+        /// 褰撳墠浣跨敤瀵嗙爜
+        /// </summary>
+        public const int uNowUsePassword = 15889;
+        /// <summary>
+        /// 澶囨敞淇℃伅
+        /// </summary>
+        public const int uNoteInformation = 15890;
+        /// <summary>
+        /// 璇疯緭鍏ュ娉ㄥ唴瀹�
+        /// </summary>
+        public const int uPlesaeInputNoteInformation = 15891;
+        /// <summary>
+        /// 淇敼澶囨敞淇℃伅鎴愬姛!
+        /// </summary>
+        public const int uEditorNoteInformationSuccess = 15892;
+        /// <summary>
+        /// 杈撳叆鍐呭杩囬暱,鏈�澶0}瀛楄妭
+        /// </summary>
+        public const int uInputContentIsOverLengthMsg = 15893;
+        /// <summary>
+        /// 淇敼澶囨敞淇℃伅澶辫触
+        /// </summary>
+        public const int uEditorNoteInformationFail = 15894;
+        /// <summary>
+        /// 璇疯緭鍏ユ柊鑳佽揩瀵嗙爜
+        /// </summary>
+        public const int uPleaseInputNewCoercePassword = 15895;
+        /// <summary>
+        /// 璇烽噸澶嶈緭鍏ユ柊鑳佽揩瀵嗙爜
+        /// </summary>
+        public const int uPleaseRepeatInputNewCoercePassword = 15896;
+        /// <summary>
+        /// 鑳佽揩瀵嗙爜璁剧疆鎴愬姛
+        /// </summary>
+        public const int uSetCoercePasswordSuccess = 15897;
 
         //鈽呪槄鈽呪槄涓嬮潰杩欎簺鏄帴鍙g殑杩斿洖淇℃伅缈昏瘧,浠�18000寮�濮嬧槄鈽呪槄鈽�
         /// <summary>
diff --git a/ZigbeeApp/Shared/Shared.projitems b/ZigbeeApp/Shared/Shared.projitems
index 21e5b9f..6ddf8ca 100755
--- a/ZigbeeApp/Shared/Shared.projitems
+++ b/ZigbeeApp/Shared/Shared.projitems
@@ -14,6 +14,7 @@
     <Compile Include="$(MSBuildThisFileDirectory)Common\House.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\Logic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\ApkInfoOBJ.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\AuthUserRes.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\FirmwareManaRes.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\GetAppVersionCode.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\ResponseEntity\ResultPack.cs" />
@@ -44,6 +45,7 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\ACLeftIconButtonRowLayout.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\BackButton.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\ButtonLineForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\CategoryFunctionForWinRow.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\CategoryFunctionRow.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\CommonEnum.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\CommonFormResouce.cs" />
@@ -76,7 +78,12 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\SelectTime.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\SelectZone.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\CommonForm\TopFrameLayout.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Light\AirSwitchControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Light\DimmableLightControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Light\LightControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Light\LightControlForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Light\OnOffControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Light\PlugControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\AddLogicPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\AddScenePage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\CustomText.cs" />
@@ -89,7 +96,6 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\DoorLockLogic\AddCondition.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\DoorLockLogic\LockAddDevice.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\DoorLockLogic\LockAddScene.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\DoorLockLogic\LockIfon.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\DoorLockLogic\LockLogicCommunalPage.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\DoorLockLogic\LockLogicList.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\EverymonthPage.cs" />
@@ -100,6 +106,7 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\LogicIfon.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\LogicListAutomation.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\LogicListPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\LogicMain.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\MemberList.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\SecurityMode.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Logic\SelectedButton.cs" />
@@ -122,15 +129,18 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Abount\AbountForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Common\AccountOption.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\CompoundControls\BelongAreaControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\CompoundControls\CutPictureControl.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\CompoundControls\PswGestureInputControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\CompoundControls\InformationEditorControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\CompoundControls\RoomDeviceGroupMenuControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\CompoundControls\SceneFunctionSwitchControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\CompoundControls\VerificationCodeControl.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Form\GesturePswSecirityForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Form\SecondaryPswSecurityForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Form\PswGestureSecirityForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Form\PswSecondarySecurityForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlCheckLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlDeviceAirConditionerLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlDeviceCurtainLogic.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlGatewayUpdateLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlLogLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlThreadLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\AirConditioner\AirConditionerModeForm.cs" />
@@ -181,9 +191,11 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Add\WiredGatewayListForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Add\WiredGatewayRebindForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Manage\GatewayGeneralInformationForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Update\GatewayFirmwareUpdateForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Member\MemberNotEsixtForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Password\CheckNewPhoneForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Password\CheckOldPhoneForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Password\EditorGesturePasswordForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Password\EditorSecondaryPasswordForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Password\ForgotAccountPasswordForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Password\ForgotSecondaryPasswordForm.cs" />
@@ -193,6 +205,9 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Residence\LookRoomDeviceListForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Residence\ResidenceManagementForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Residence\LookRoomSettionForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\CoercePswAddNewForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\CoercePswEditorForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\PasswordUserEditorForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\UserMain\QRCodeForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Password\ResetAccountPasswordForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Form\AreaCodeSelectForm.cs" />
@@ -262,8 +277,8 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Add\WirelessGwClickButtonForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Add\WirelessGwSelectNetworkForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Manage\GatewayCoordinatorInfoForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Manage\GatewayFirmwareInfoForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Manage\GatewayHistoryFirmwareVersionForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Update\GatewayFirmwareInfoForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Update\GatewayHistoryFirmwareVersionForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Manage\GatewayLinuxInfoForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Manage\GatewayListForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Manage\GatewayVirtualDriveInfoForm.cs" />
@@ -280,14 +295,12 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Common\UserCenterEnumCommon.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\BaseCommonControl\Base\TextInputBase.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\DialogInputFrameControl.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\GatewayFirmwareUpdateControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\NormalControls\IconViewControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\NormalControls\MostRightIconControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\CompoundControls\MsgControls.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\NormalControls\PicViewControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\DeviceControls\DeviceSelectControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\DeviceFirmwareUpdateForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Gateway\Manage\GatewayFirmwareUpdateForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\HdlBackup\HdlBackupMenuForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlDeviceBindLogic.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Logic\HdlDeviceFixedAttributeLogic.cs" />
@@ -313,25 +326,22 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Resourse\DirectoryFileNameResourse.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Resourse\FirmwareUpdateResourse.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Resourse\GatewayResourse.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\AddCoerceContactForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\AddDeviceAlarmTargetListForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\AddAlarmTargetTypeListForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\AddSceneAlarmTargetListForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\AlarmTargetSettionForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\CoercePasswordMainForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\CoerceContactSettionForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\DelayedSettionMainForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\EdtiorCoercePasswordForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\EdtiorUserPasswordForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\CoercePswAddContactForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\AlarmTargetAddDeviceForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\AlarmTargetAddMenuForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\AlarmTargetAddSceneForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\AlarmTargetExistSettionForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\GarrisonAreaDelayedSettionForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\PasswordAddNewForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\GarrisonAreaListMenuForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\CurtainAlarmSettionForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\LightAlarmSettionForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\SwitchAlarmSettionForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\SafetyPasswordMenuForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\AlarmTargetStatuSelectCurtainForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\AlarmTargetStatuSelectLightForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\AlarmTargetStatuSelectSwitchForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\PasswordMenuForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\PasswordRefreshMsgForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\SectorsSettionMenuForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\SensorDeviceSettionListForm.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\UserPasswordListForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\GarrisonAreaSettionMenuForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\GarrisonAreaExistSensorForm.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Safety\PasswordListUserForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\SharedContent\AddNewSharedListRoomForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\SharedContent\AddNewSharedContentForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\SharedContent\LookSharedListRoomForm.cs" />
@@ -397,9 +407,7 @@
     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\CommonBase\Controls\FrameLayoutControls\FrameRowControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Category\Category.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Curtain\rollerShadeControl.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Light\LightControl.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Category\CategoryAddScene.cs" />
-    <Compile Include="$(MSBuildThisFileDirectory)Phone\Device\Light\LightControlForm.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\SceneUI.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\SceneTargetDeviceUI.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)Common\SceneRoomUI.cs" />
@@ -448,18 +456,31 @@
     <Folder Include="$(MSBuildThisFileDirectory)Phone\Device\Curtain\" />
   </ItemGroup>
   <ItemGroup>
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Shared.Droid.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Shared.Droid.HDLWidget.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Shared.Droid.TouchID.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Xamarin.Android.Arch.Core.Common.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Xamarin.Android.Arch.Lifecycle.Common.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Xamarin.Android.Arch.Lifecycle.Runtime.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Xamarin.Android.Support.Animated.Vector.Drawable.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Xamarin.Android.Support.Annotations.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Xamarin.Android.Support.Compat.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Xamarin.Android.Support.Core.UI.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Xamarin.Android.Support.Core.Utils.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Xamarin.Android.Support.Fragment.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Xamarin.Android.Support.Media.Compat.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Xamarin.Android.Support.v4.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Xamarin.Android.Support.v7.AppCompat.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\Android\Xamarin.Android.Support.Vector.Drawable.dll" />
     <None Include="$(MSBuildThisFileDirectory)DLL\Elian.iOS.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\IOS\Shared.IOS.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\IOS\Shared.IOS.TBL.dll" />
+    <None Include="$(MSBuildThisFileDirectory)DLL\IOS\Xamarin.Essentials.dll" />
     <None Include="$(MSBuildThisFileDirectory)DLL\M2Mqtt.Net.dll" />
     <None Include="$(MSBuildThisFileDirectory)DLL\MQTTnet.dll" />
     <None Include="$(MSBuildThisFileDirectory)DLL\Newtonsoft.Json.dll" />
     <None Include="$(MSBuildThisFileDirectory)DLL\Security.dll" />
-    <None Include="$(MSBuildThisFileDirectory)DLL\Shared.Droid.dll" />
-    <None Include="$(MSBuildThisFileDirectory)DLL\Shared.Droid.TBL.dll" />
-    <None Include="$(MSBuildThisFileDirectory)DLL\Shared.Droid.TCL.dll" />
-    <None Include="$(MSBuildThisFileDirectory)DLL\Shared.IOS.TBL.dll" />
-    <None Include="$(MSBuildThisFileDirectory)DLL\Xamarin.Essentials.dll" />
     <None Include="$(MSBuildThisFileDirectory)DLL\ZigBee.Droid.dll" />
-    <None Include="$(MSBuildThisFileDirectory)DLL\Shared.IOS.dll" />
     <None Include="$(MSBuildThisFileDirectory)DLL\ZigBee.Ios.xml" />
   </ItemGroup>
 </Project>
\ No newline at end of file

--
Gitblit v1.8.0