From 94e4e5b9fd3da964c44b7b14227d6fe2bbb426d7 Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期四, 02 四月 2020 13:56:39 +0800
Subject: [PATCH] 2020-04-02-2

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs |  578 +++++++++++++++++++++++++++------------------------------
 1 files changed, 273 insertions(+), 305 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
index 8f3c6f0..be9b319 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
@@ -11,19 +11,8 @@
     /// <summary>
     /// 鎸夐敭绠$悊
     /// </summary>
-    public class BindTargetsPage : BindCommonLayout, ZigBee.Common.IStatus
+    public class BindTargetsPage : BindCommonLayout
     {
-        /// <summary>
-        /// 鎸夐敭妯″紡鎺ユ敹
-        /// </summary>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-            Shared.Application.RunOnMainThread(() =>
-            {
-            });
-        }
-
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="doorLock"></param>
@@ -32,32 +21,71 @@
             this.currentKey = key;
         }
 
-        #region 鈼� 鍙橀噺鐢虫槑__________________________
-        ZigBee.Device.Panel currentKey;//褰撳墠鎸夐敭瀵硅薄
-        VerticalFrameRefreshControl midVerticalRefreshLayout;//鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew
-        int currentClusterID = 0;//鎸夐敭褰撳墠绨嘔D
+        #region 鍙橀噺鐢虫槑
+        /// <summary>
+        /// 褰撳墠鎸夐敭瀵硅薄
+        /// </summary>
+        ZigBee.Device.Panel currentKey;
+        /// <summary>
+        /// 鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew
+        /// </summary>
+        VerticalFrameRefreshControl midVerticalRefreshLayout;
+        /// <summary>
+        /// 鎸夐敭褰撳墠绨嘔D
+        /// </summary>
+        int currentClusterID = 0;
+        /// <summary>
+        /// 绌烘暟鎹椂鐨勫浘鐗�
+        /// </summary>
         Button entryStatusPic;
+        /// <summary>
+        /// 绌烘暟鎹殑鎻愮ず
+        /// </summary>
         Button btnPicTip;
-        Action<List<BindListResponseObj>> action;//鎸夐敭缁戝畾琛ㄩ�氱煡
-        Action<List<BindListResponseObj>> devicBindAction;//璁惧琚粦瀹氶�氱煡
-        private System.Collections.Generic.List<CommonDevice> localDeviceList = new System.Collections.Generic.List<CommonDevice>();//鏈湴璁惧鍒楄〃
-        private System.Collections.Generic.List<SceneUI> scList = new System.Collections.Generic.List<SceneUI> { };//鏈湴鍦烘櫙鍒楄〃       
-        FrameLayout blankFrameLayout;//绌烘暟鎹樉绀哄竷灞�
-        List<int> typeModeList;//鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑妯″紡澶х被鍨�
-        public List<ScenesListInfo> gwScenesList = new List<ScenesListInfo>();//缃戝叧涓殑鍦烘櫙鍒楄〃
+        /// <summary>
+        /// 鎸夐敭缁戝畾琛ㄩ�氱煡
+        /// </summary>
+        Action<List<BindListResponseObj>> action;
+        /// <summary>
+        /// 璁惧琚粦瀹氶�氱煡
+        /// </summary>
+        Action<List<BindListResponseObj>> devicBindAction;
+        /// <summary>
+        /// 鏈湴璁惧鍒楄〃
+        /// </summary>
+        private System.Collections.Generic.List<CommonDevice> localDeviceList = new System.Collections.Generic.List<CommonDevice>();
+        /// <summary>
+        /// 鏈湴鍦烘櫙鍒楄〃 
+        /// </summary>
+        private System.Collections.Generic.List<SceneUI> scList = new System.Collections.Generic.List<SceneUI> { };
+        /// <summary>
+        /// 绌烘暟鎹樉绀哄竷灞�
+        /// </summary>
+        FrameLayout blankFrameLayout;
+        /// <summary>
+        /// 鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑妯″紡澶х被鍨�
+        /// </summary>
+        List<int> typeModeList;
+        /// <summary>
+        /// 缃戝叧涓殑鍦烘櫙鍒楄〃
+        /// </summary>
+        public List<ScenesListInfo> gwScenesList = new List<ScenesListInfo>();
+        /// <summary>
+        /// 鏄惁鏀寔璇诲彇
+        /// </summary>
+        bool IsRead = false;
 
         #endregion
 
-        //鍒濆鍖栨寜閿暟鎹�
-        private void InitListInfo()
+        /// <summary>
+        /// 鍒濆鍖栨寜閿暟鎹�
+        /// </summary>
+        void InitListInfo()
         {
             System.Threading.Tasks.Task.Run(async () =>
             {
                 try
                 {
-                    Application.RunOnMainThread(() =>
-                    {
-                    });
                     localDeviceList.Clear();
                     scList.Clear();
                     //鑾峰彇鏈湴璁惧鍒楄〃
@@ -66,22 +94,19 @@
                         localDeviceList.Add(dev);
                     }
                     //鑾峰彇鏈湴鍦烘櫙鍒楄〃
-                    scList = Shared.Common.Room.AllRoomSceneUIList;
+                    scList = HdlSceneLogic.Current.GetAllRoomSceneList();
                     //鑾峰彇缃戝叧鍦烘櫙琛�
-                    var gwSceneObj = await currentKey.GetSceneInfoAsync();
-                    if (gwSceneObj != null && gwSceneObj.getSceneInfo != null)
+                    if (gwScenesList.Count == 0)
                     {
-                        gwScenesList = gwSceneObj.getSceneInfo.ScenesList;
-                    }
-                    else
-                    {
-                        Application.RunOnMainThread(() =>
+                        var gwSceneObj = await currentKey.GetSceneInfoAsync();
+                        if (gwSceneObj != null && gwSceneObj.getSceneInfo != null)
                         {
-                            CommonPage.Loading.Hide();
-
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
-                        });
+                            gwScenesList = gwSceneObj.getSceneInfo.ScenesList;
+                        }
                     }
+
+                    //鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被
+                    typeModeList = await GetTypeMode();
                     #region 璇诲彇闈㈡澘褰撳墠妯″紡
                     //璇诲彇鎸夐敭褰撳墠妯″紡
                     var tempDeata = await currentKey.ReadPanelConfigureInfoAsync();
@@ -106,82 +131,87 @@
                             {
                                 currentClusterID = 258;
                             }
-                            currentKey.ReSave();
-                            //璇诲彇鎸夐敭褰撳墠缁戝畾鐩爣
-                            var getBindList = await currentKey.GetDeviceBindAsync();
-                            var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
-                            var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
-                            if (getBindList != null && getBindList.getAllBindResponseData != null)
-                            {
-                                currentKey.bindList.Clear();
-                                foreach (var b in getBindList.getAllBindResponseData.BindList)
-                                {
-                                    if (b.BindCluster == currentClusterID)
-                                    {
-                                        if (b.BindCluster == 6)
-                                        {
 
-                                            if (b.BindType == 2)
-                                            {
-                                                bindSceneListTemp.Add(b);
-                                            }
-                                            else
-                                            {
-                                                bindDeviceListTemp.Add(b);
-                                            }
-                                        }
-                                        else
+                            //璇诲彇鎸夐敭褰撳墠缁戝畾鐩爣
+                            GetDeviceBindResponseAllData getBindList = null;
+                            if (IsRead)
+                            {
+                                getBindList = await currentKey.GetDeviceBindAsync();
+                                var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
+                                var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
+                                if (getBindList != null && getBindList.getAllBindResponseData != null)
+                                {
+                                    currentKey.bindList.Clear();
+                                    foreach (var b in getBindList.getAllBindResponseData.BindList)
+                                    {
+                                        if (b.BindCluster == currentClusterID)
                                         {
-                                            if (currentClusterID == 8)
+                                            if (b.BindCluster == 6)
                                             {
-                                                if (b.BindCluster == 8)
+
+                                                if (b.BindType == 2)
                                                 {
-                                                    currentKey.bindList.Add(b);
+                                                    bindSceneListTemp.Add(b);
+                                                }
+                                                else
+                                                {
+                                                    bindDeviceListTemp.Add(b);
                                                 }
                                             }
                                             else
                                             {
-                                                currentKey.bindList.Add(b);
+                                                if (currentClusterID == 8)
+                                                {
+                                                    if (b.BindCluster == 8)
+                                                    {
+                                                        currentKey.bindList.Add(b);
+                                                    }
+                                                }
+                                                else
+                                                {
+                                                    currentKey.bindList.Add(b);
+                                                }
                                             }
                                         }
                                     }
                                 }
-                            }
-                            else
-                            {
-                                Application.RunOnMainThread(() =>
+                                else
                                 {
-                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
-                                });
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        CommonPage.Loading.Hide();
+                                        midVerticalRefreshLayout.EndHeaderRefreshing();
+                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                                        return;
+                                    });
+                                }
+                                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 == 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);
+                                }
                             }
-
-                            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 == 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);
-                            }
+                            currentKey.ReSave();
                         }
-                        #endregion
-
-                        //鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被
-                        typeModeList = await GetTypeMode();
+                        #endregion 
                         Application.RunOnMainThread(() =>
                         {
                             RefreshList();
                             CommonPage.Loading.Hide();
+                            midVerticalRefreshLayout.EndHeaderRefreshing();
                         });
                     }
                     else
@@ -189,7 +219,7 @@
                         Application.RunOnMainThread(() =>
                         {
                             CommonPage.Loading.Hide();
-
+                            midVerticalRefreshLayout.EndHeaderRefreshing();
                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                         });
                         return;
@@ -216,13 +246,14 @@
 
             var btnAddFrameLayout = new FrameLayout()
             {
-                X = Application.GetRealWidth(913),
+                X = Application.GetRealWidth(888),
                 Width = Application.GetRealWidth(192),
             };
             this.titleFrameLayout.AddChidren(btnAddFrameLayout);
 
             var btnBindAdd = new Button
             {
+                X = Application.GetRealWidth(62),
                 Height = Application.GetRealHeight(72),
                 Width = Application.GetRealWidth(72),
                 UnSelectedImagePath = "BindPic/BindAdd.png",
@@ -310,6 +341,14 @@
             #endregion
             CommonPage.Loading.Start("");
             middleFrameLayout();
+            if (currentKey.bindList.Count == 0)
+            {
+                IsRead = true;
+            }
+            else
+            {
+                IsRead = false;
+            }
             InitListInfo();
 
         }
@@ -325,8 +364,8 @@
             midVerticalRefreshLayout.BeginHeaderRefreshingAction += () =>
             {
                 midVerticalRefreshLayout.BeginHeaderRefreshing();
+                IsRead = true;
                 InitListInfo();
-                midVerticalRefreshLayout.EndHeaderRefreshing();
             };
 
             BlankPicUI();
@@ -358,7 +397,7 @@
                 TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
                 Gravity = Gravity.CenterHorizontal,
                 Visible = false,
-                TextSize =12,
+                TextSize = 12,
             };
             blankFrameLayout.AddChidren(btnPicTip);
         }
@@ -409,6 +448,7 @@
                     midVerticalRefreshLayout.AddChidrenRow(rowLayout);
                     rowLayout.frameTable.UseClickStatu = false;
                     var devicePic = rowLayout.frameTable.AddLeftIcon();
+                    devicePic.Y = Application.GetRealHeight(49);
                     devicePic.UnSelectedImagePath = "DoorLock/DoorLockUserPic.png";
 
                     #region 缁戝畾鏁版嵁澶勭悊
@@ -428,7 +468,7 @@
                     }
                     if (isExistScene)
                     {
-                        curSceneUI = Room.CurrentRoom.GetSceneUIBySceneId(bindDevice.BindScenesId);
+                        curSceneUI = HdlSceneLogic.Current.GetSceneUIBySceneId(bindDevice.BindScenesId);
                         devicePic.UnSelectedImagePath = "Scene/SceneIcon.png";
                         if (curSceneUI == null)
                         {
@@ -444,9 +484,10 @@
                         else
                         {
                             btnBindNameText = curSceneUI.Name;
-                            if (curSceneUI.GetZone() != null)
+                            string myName = HdlSceneLogic.Current.GetZoneById(curSceneUI.Id);
+                            if (myName != null)
                             {
-                                btnFloorRoomNameText = curSceneUI.GetZone();
+                                btnFloorRoomNameText = myName;
                             }
                         }
                     }
@@ -459,7 +500,7 @@
                             if (tempDev != null)
                             {
                                 //鑾峰彇璁惧鎵�灞炴埧闂�
-                                var tempDevRoom = Common.Room.CurrentRoom.GetRoomByDevice(tempDev);
+                                var tempDevRoom = HdlRoomLogic.Current.GetRoomByDevice(tempDev);
 
                                 if (tempDevRoom != null)
                                 {
@@ -476,15 +517,12 @@
                                     {
                                         btnFloorRoomNameText = tempDevFloorName + "," + tempDevRoomName;
                                     }
-                                }
-                                var deviceUi = Common.LocalDevice.Current.GetDeviceUI(tempDev);
-                                if (deviceUi != null)
-                                {
-                                    devicePic.UnSelectedImagePath = deviceUi.IconPath;
-                                    devicePic.Width = Application.GetRealWidth(110);
-                                    devicePic.Text = "";
-                                }
-                                if (tempDev.DeviceEpointName == "")
+                                }
+
+                                devicePic.UnSelectedImagePath = tempDev.IconPath;
+                                devicePic.Text = "";
+
+                                if (string.IsNullOrEmpty(tempDev.DeviceEpointName))
                                 {
                                     btnBindNameText = tempDev.DeviceEpoint + Language.StringByID(R.MyInternationalizationString.uDeviceCircuit);
                                 }
@@ -496,7 +534,6 @@
                             else
                             {
                                 btnBindNameText = bindDevice.BindMacAddr + "_" + bindDevice.BindEpoint;
-                                devicePic.Width = Application.GetMinRealAverage(200);
                                 devicePic.TextAlignment = TextAlignment.CenterLeft;
                                 devicePic.TextColor = UserCenterColor.Current.Gray;
                                 devicePic.Text = Language.StringByID(R.MyInternationalizationString.uOffLine);
@@ -514,7 +551,7 @@
                     };
                     #endregion
                 }
-                 midVerticalRefreshLayout.AdjustTableHeight(Application.GetRealHeight(23));
+                midVerticalRefreshLayout.AdjustTableHeight(Application.GetRealHeight(23));
             }
             #endregion
         }
@@ -528,7 +565,7 @@
             modeRowLayout.BackgroundColor = ZigbeeColor.Current.XMWhite;
             midVerticalRefreshLayout.AddChidrenRow(modeRowLayout);
             modeRowLayout.frameTable.UseClickStatu = false;
-            modeRowLayout.frameTable.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.keyMode), 500);
+            modeRowLayout.frameTable.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.keyMode), 400);
             var btnKeyModeTipText = "";
             #region 褰撳墠妯″紡鏂囨湰鏄剧ず
             switch (currentKey.panelMode)
@@ -574,103 +611,72 @@
                     break;
             }
             #endregion
-            modeRowLayout.frameTable.AddMostRightView(btnKeyModeTipText, 500);
+            modeRowLayout.frameTable.AddMostRightView(btnKeyModeTipText, 800);
             modeRowLayout.frameTable.AddBottomLine();
             var btnDel = modeRowLayout.AddDeleteControl();
             //涓�閿竻闄ゆ寜閿簨浠�
             btnDel.ButtonClickEvent += async (sender, e) =>
             {
-                var dialog2 = new Dialog { };
-                var doorDialog2 = new Shared.Phone.UserCenter.DoorLock.DoorlockDialog(dialog2, Language.StringByID(R.MyInternationalizationString.Tip));
-                doorDialog2.Show();
-                doorDialog2.dialogMidFraFrameLayout.Width = Application.GetRealWidth(674);
-                doorDialog2.dialogMidFraFrameLayout.Height = Application.GetRealHeight(115);
-                doorDialog2.dialogMidFraFrameLayout.X = Application.GetRealWidth(60);
-                doorDialog2.dialogMidFraFrameLayout.Y = Application.GetRealHeight(167);
-                doorDialog2.dialogBtnConfirm.Text = Language.StringByID(R.MyInternationalizationString.DoorlockConfirm);
-                var midText1 = new Button()
-                {
-                    Width = Application.GetRealWidth(674),
-                    Height = Application.GetRealHeight(115 / 2),
-                    TextSize = 14,
-                    TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                    TextAlignment = TextAlignment.Center,
-                    TextID = R.MyInternationalizationString.ClearAllTargeta1,
-                };
-                doorDialog2.dialogMidFraFrameLayout.AddChidren(midText1);
-                var midText2 = new Button()
-                {
-                    Width = Application.GetRealWidth(674),
-                    Height = Application.GetRealHeight(115 / 2),
-                    Y = Application.GetRealHeight(115 / 2),
-                    TextSize = 14,
-                    TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
-                    TextAlignment = TextAlignment.Center,
-                    TextID = R.MyInternationalizationString.ClearAllTargeta2,
-                };
-                doorDialog2.dialogMidFraFrameLayout.AddChidren(midText2);
-
-                doorDialog2.dialogBtnCancel.MouseUpEventHandler += (sender2, e2) =>
-                {
-                    dialog2.Close();
-                };
-                doorDialog2.dialogBtnConfirm.MouseUpEventHandler += async (sender2, e2) =>
-                {
-                    bool isDelSuccess = false;
-                    try
-                    {
-                        CommonPage.Loading.Start("");
-                        var bindResult = await currentKey.ClearBindInfoAsync();
-                        if (bindResult != null && bindResult.clearBindInfoResponseData != null)
-                        {
-                            if (bindResult.clearBindInfoResponseData.Result != 0)
-                            {
-                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDel);
-                                CommonPage.Loading.Hide();
-                                return;
-                            }
-                            else
-                            {
-                                var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Default);
-                                if (temp.setWritableValueResponData?.Status != 0)
-                                {
-                                    var temp1 = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Default);
-                                    if (temp1.setWritableValueResponData?.Status != 0)
-                                    {
-                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
-                                    }
-                                    else
-                                    {
-                                        isDelSuccess = true;
-                                    }
-                                }
-                                else
-                                {
-                                    isDelSuccess = true;
-                                }
-                            }
-                        }
-                        else
-                        {
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
-                        }
-                    }
-                    catch { }
-                    finally
-                    {
-                        if (isDelSuccess)
-                        {
-                            currentKey.panelMode = 65535;
-                            currentKey.bindList.Clear();
-                            RefreshList();
-                            //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛�
-                            currentKey.RoomId = "";
-                            currentKey.ReSave();
-                        }
-                        CommonPage.Loading.Hide();
-                    }
-                    dialog2.Close();
-                };
+                string msg = Language.StringByID(R.MyInternationalizationString.ClearAllTargets).Replace("{0}", "\r\n");
+                var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
+                alert.Show();
+                //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁�
+                alert.ConfirmClickEvent += async () =>
+                 {
+                     bool isDelSuccess = false;
+                     try
+                     {
+                         CommonPage.Loading.Start("");
+                         var bindResult = await currentKey.ClearBindInfoAsync();
+                         if (bindResult != null && bindResult.clearBindInfoResponseData != null)
+                         {
+                             if (bindResult.clearBindInfoResponseData.Result != 0)
+                             {
+                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDel);
+                                 CommonPage.Loading.Hide();
+                                 return;
+                             }
+                             else
+                             {
+                                 var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Default);
+                                 if (temp.setWritableValueResponData?.Status != 0)
+                                 {
+                                     var temp1 = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Default);
+                                     if (temp1.setWritableValueResponData?.Status != 0)
+                                     {
+                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+                                     }
+                                     else
+                                     {
+                                         isDelSuccess = true;
+                                     }
+                                 }
+                                 else
+                                 {
+                                     isDelSuccess = true;
+                                 }
+                             }
+                         }
+                         else
+                         {
+                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+                         }
+                     }
+                     catch { }
+                     finally
+                     {
+                         if (isDelSuccess)
+                         {
+                             currentKey.panelMode = 65535;
+                             currentKey.bindList.Clear();
+                             RefreshList();
+                             //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛�
+                             currentKey.RoomId = "";
+                             currentKey.ReSave();
+                         }
+                         CommonPage.Loading.Hide();
+                     }
+                 };
             };
         }
 
@@ -860,49 +866,34 @@
                             var bindSc = currentKey.bindList.Find(obj => (obj.BindType == 2));
                             if (bindSc != null)
                             {
-                                var dialog1 = new Dialog { };
-                                var doorDialog = new Shared.Phone.UserCenter.DoorLock.DoorlockDialog(dialog1, Language.StringByID(R.MyInternationalizationString.Tip));
-                                doorDialog.Show();
-                                doorDialog.dialogMidFraFrameLayout.Height = Application.GetRealHeight(58);
-                                doorDialog.dialogMidFraFrameLayout.X = Application.GetRealWidth(0);
-                                doorDialog.dialogMidFraFrameLayout.Y = Application.GetRealHeight(202);
-                                doorDialog.dialogMidFraFrameLayout.AddChidren(doorDialog.dialogMidText);
-                                doorDialog.dialogMidText.Text = Language.StringByID(R.MyInternationalizationString.DelLocalBindListThenAddAgain);
-                                doorDialog.dialogMidFraFrameLayout.AddChidren(doorDialog.dialogMidText);
-                                doorDialog.dialogBtnConfirm.Text = Language.StringByID(R.MyInternationalizationString.DoorlockConfirm);
-                                doorDialog.dialogBtnCancel.MouseUpEventHandler += (sender1, e1) =>
-                                {
-                                    currentKey.currentKeySelectModeText = oldKeySelectModeText;
-                                    dialog.Close();
-                                    dialog1.Close();
-                                };
-                                doorDialog.dialogBtnConfirm.MouseUpEventHandler += async (sender1, e1) =>
-                                {
-                                    var result = await RemoveTargets(bindSc, line2);
-                                    if (result == 0)
-                                    {
-                                        var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey, gwScenesList);
-                                        Shared.Phone.UserView.HomePage.Instance.AddChidren(addScenePage);
-                                        Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                                        addScenePage.Show();
+                                string msg = Language.StringByID(R.MyInternationalizationString.DelLocalBindListThenAddAgain);
+                                var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
+                                alert.Show();
+                                //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁�
+                                alert.ConfirmClickEvent += async () =>
+                                 {
+                                     var result = await RemoveTargets(bindSc, line2);
+                                     if (result == 0)
+                                     {
+                                         var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey, gwScenesList);
+                                         Shared.Phone.UserView.HomePage.Instance.AddChidren(addScenePage);
+                                         Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                                         addScenePage.Show();
 
-                                        Action<List<BindListResponseObj>> action = (obj) =>
-                                        {
-                                            currentKey.bindList = obj;
-                                            RefreshList();
-                                        };
-                                        addScenePage.action += action;
-                                        dialog.Close();
-                                        dialog1.Close();
-                                    }
-                                    else
-                                    {
-                                        currentKey.currentKeySelectModeText = oldKeySelectModeText;
-                                        dialog.Close();
-                                        dialog1.Close();
-                                    }
-                                };
-
+                                         Action<List<BindListResponseObj>> action = (obj) =>
+                                         {
+                                             currentKey.bindList = obj;
+                                             RefreshList();
+                                         };
+                                         addScenePage.action += action;
+                                         dialog.Close();
+                                     }
+                                     else
+                                     {
+                                         currentKey.currentKeySelectModeText = oldKeySelectModeText;
+                                         dialog.Close();
+                                     }
+                                 };
                             }
                         }
                         else
@@ -928,48 +919,34 @@
                             var bindSc = currentKey.bindList.Find(obj => (obj.BindType == 2));
                             if (bindSc != null)
                             {
-                                var dialog1 = new Dialog { };
-                                var doorDialog = new Shared.Phone.UserCenter.DoorLock.DoorlockDialog(dialog1, Language.StringByID(R.MyInternationalizationString.Tip));
-                                doorDialog.Show();
-                                doorDialog.dialogMidFraFrameLayout.Height = Application.GetRealHeight(58);
-                                doorDialog.dialogMidFraFrameLayout.X = Application.GetRealWidth(0);
-                                doorDialog.dialogMidFraFrameLayout.Y = Application.GetRealHeight(202);
-                                doorDialog.dialogMidFraFrameLayout.AddChidren(doorDialog.dialogMidText);
-                                doorDialog.dialogMidText.Text = Language.StringByID(R.MyInternationalizationString.DelLocalBindListThenAddAgain1);
-                                doorDialog.dialogMidFraFrameLayout.AddChidren(doorDialog.dialogMidText);
-                                doorDialog.dialogBtnConfirm.Text = Language.StringByID(R.MyInternationalizationString.DoorlockConfirm);
-                                doorDialog.dialogBtnCancel.MouseUpEventHandler += (sender1, e1) =>
-                                {
-                                    currentKey.currentKeySelectModeText = oldKeySelectModeText;
-                                    dialog.Close();
-                                    dialog1.Close();
-                                };
-                                doorDialog.dialogBtnConfirm.MouseUpEventHandler += async (sender1, e1) =>
-                                {
-                                    var result = await RemoveTargets(bindSc, line2);
-                                    if (result == 0)
-                                    {
-                                        var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddSwitch");
-                                        Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
-                                        Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                                        addDevicePage.Show();
+                                string msg = Language.StringByID(R.MyInternationalizationString.DelLocalBindListThenAddAgain1);
+                                var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
+                                alert.Show();
+                                //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁�
+                                alert.ConfirmClickEvent += async () =>
+                                 {
+                                     var result = await RemoveTargets(bindSc, line2);
+                                     if (result == 0)
+                                     {
+                                         var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddSwitch");
+                                         Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
+                                         Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                                         addDevicePage.Show();
 
-                                        Action<List<BindListResponseObj>> action = (obj) =>
-                                        {
-                                            currentKey.bindList = obj;
-                                            RefreshList();
-                                        };
-                                        addDevicePage.actionAddDevicePage += action;
-                                        dialog.Close();
-                                        dialog1.Close();
-                                    }
-                                    else
-                                    {
-                                        currentKey.currentKeySelectModeText = oldKeySelectModeText;
-                                        dialog.Close();
-                                        dialog1.Close();
-                                    }
-                                };
+                                         Action<List<BindListResponseObj>> action = (obj) =>
+                                         {
+                                             currentKey.bindList = obj;
+                                             RefreshList();
+                                         };
+                                         addDevicePage.actionAddDevicePage += action;
+                                         dialog.Close();
+                                     }
+                                     else
+                                     {
+                                         currentKey.currentKeySelectModeText = oldKeySelectModeText;
+                                         dialog.Close();
+                                     }
+                                 };
                             }
                         }
                         else
@@ -1119,7 +1096,10 @@
             }
         }
 
-        //鑾峰彇鎸夐敭鏀寔鐨勫ぇ绫�
+        /// <summary>
+        /// 鑾峰彇鎸夐敭鏀寔鐨勫ぇ绫�
+        /// </summary>
+        /// <returns></returns>
         private async System.Threading.Tasks.Task<List<int>> GetTypeMode()
         {
             if (typeModeList != null)
@@ -1297,18 +1277,6 @@
             localDeviceList.Clear();
             scList.Clear();
             base.RemoveFromParent();
-        }
-
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-
-        public void ChangedISceneStatus(Scene scene)
-        {
         }
     }
 }

--
Gitblit v1.8.0