From adb12dcdbb2ddaeac687c3aa9e57bb7ed459ab7e Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 24 六月 2020 15:26:46 +0800
Subject: [PATCH] 2020.06.24.01

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs |  558 ++++++++++++++++++++++---------------------------------
 1 files changed, 223 insertions(+), 335 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
index b6b4a78..fdba54a 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
@@ -434,7 +434,7 @@
 
                     var rowLayout = new RowLayoutControl(midVerticalRefreshLayout.rowSpace / 2);
                     rowLayout.BackgroundColor = ZigbeeColor.Current.XMWhite;
-                    midVerticalRefreshLayout.AddChidrenRow(rowLayout);
+                    midVerticalRefreshLayout.AddChidren2(rowLayout);
                     rowLayout.frameTable.UseClickStatu = false;
                     var devicePic = rowLayout.frameTable.AddLeftIcon();
                     devicePic.Y = Application.GetRealHeight(49);
@@ -501,7 +501,7 @@
                                     //鑾峰彇鎴块棿鐨勫悕瀛�
                                     var tempDevRoomName = tempDevRoom.Name;
                                     //鑾峰彇妤煎眰鐨勫悕瀛�
-                                    var tempDevFloorName = Common.Config.Instance.Home.GetFloorNameById(tempDevFloorId);
+                                    var tempDevFloorName = HdlResidenceLogic.Current.GetFloorNameById(tempDevFloorId);
                                     if (string.IsNullOrEmpty(tempDevFloorName))
                                     {
                                         if (string.IsNullOrEmpty(tempDevRoomName))
@@ -552,9 +552,9 @@
                     var btnFloorRoomName = rowLayout.frameTable.AddBottomView(btnFloorRoomNameText, 800);
                     rowLayout.frameTable.AddBottomLine();
                     var btnDel = rowLayout.AddDeleteControl();
-                    btnDel.ButtonClickEvent += async (sender, e) =>
-                    {
-                        RemoveTargets(bindDevice, btnDel);
+                    btnDel.ButtonClickEvent += (sender, e) =>
+                    {
+                        RemoveTargets(bindDevice, btnDel);
                     };
                     #endregion
                 }
@@ -570,7 +570,7 @@
         {
             var modeRowLayout = new RowLayoutControl(midVerticalRefreshLayout.rowSpace / 2);
             modeRowLayout.BackgroundColor = ZigbeeColor.Current.XMWhite;
-            midVerticalRefreshLayout.AddChidrenRow(modeRowLayout);
+            midVerticalRefreshLayout.AddChidren2(modeRowLayout);
             modeRowLayout.frameTable.UseClickStatu = false;
             modeRowLayout.frameTable.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.keyMode), 400);
             var btnKeyModeTipText = "";
@@ -628,60 +628,79 @@
                 var alert = new Shared.Phone.UserCenter.ShowMsgControl(ShowMsgType.Confirm, msg, Language.StringByID(R.MyInternationalizationString.DoorlockConfirm));
                 alert.Show();
                 //浣跨敤纭鍨嬪脊妗嗘椂,鐨勫洖璋冨嚱鏁�
-                alert.ConfirmClickEvent += async () =>
+                alert.ConfirmClickEvent += () =>
                  {
                      bool isDelSuccess = false;
-                     try
+                     System.Threading.Tasks.Task.Run(() =>
                      {
-                         CommonPage.Loading.Start("");
-                         var bindResult = HdlDeviceBindLogic.Current.ClearBindInfoAsync(currentKey);
-                         if (bindResult != null && bindResult.clearBindInfoResponseData != null)
+                         try
                          {
-                             if (bindResult.clearBindInfoResponseData.Result != 0)
+                             Application.RunOnMainThread(() =>
                              {
-                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDel);
-                                 CommonPage.Loading.Hide();
-                                 return;
-                             }
-                             else
+                                 CommonPage.Loading.Start("");
+                             });
+                             var bindResult = HdlDeviceBindLogic.Current.ClearBindInfoAsync(currentKey);
+                             if (bindResult != null && bindResult.clearBindInfoResponseData != null)
                              {
-                                 var temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default);
-                                 if (temp != null && temp.setWritableValueResponData?.Status != 0)
+                                 if (bindResult.clearBindInfoResponseData.Result != 0)
                                  {
-                                     var temp1 = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default);
-                                     if (temp1 != null && temp1.setWritableValueResponData?.Status != 0)
+                                     Application.RunOnMainThread(() =>
                                      {
-                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnDel);
+                                         CommonPage.Loading.Hide();
+                                     });
+                                     return;
+                                 }
+                                 else
+                                 {
+                                     var temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default);
+                                     if (temp != null && temp.setWritableValueResponData?.Status != 0)
+                                     {
+                                         var temp1 = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default);
+                                         if (temp1 != null && temp1.setWritableValueResponData?.Status != 0)
+                                         {
+                                             Application.RunOnMainThread(() =>
+                                             {
+                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+
+                                             });
+                                         }
+                                         else
+                                         {
+                                             isDelSuccess = true;
+                                         }
                                      }
                                      else
                                      {
                                          isDelSuccess = true;
                                      }
                                  }
-                                 else
+                             }
+                             else
+                             {
+                                 Application.RunOnMainThread(() =>
                                  {
-                                     isDelSuccess = true;
-                                 }
+                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+                                 });
                              }
                          }
-                         else
+                         catch { }
+                         finally
                          {
-                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+                             Application.RunOnMainThread(() =>
+                             {
+                                 if (isDelSuccess)
+                                 {
+                                     currentKey.panelMode = 65535;
+                                     currentKey.bindList.Clear();
+                                     RefreshList();
+                                     //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛�
+                                     currentKey.ReSave();
+                                 }
+                                 CommonPage.Loading.Hide();
+                             });
                          }
-                     }
-                     catch { }
-                     finally
-                     {
-                         if (isDelSuccess)
-                         {
-                             currentKey.panelMode = 65535;
-                             currentKey.bindList.Clear();
-                             RefreshList();
-                             //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛�
-                             currentKey.ReSave();
-                         }
-                         CommonPage.Loading.Hide();
-                     }
+                     });
                  };
             };
         }
@@ -875,234 +894,63 @@
                     }
                     if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddScene))
                     {
-                        if (currentKey.bindList.Count != 0)
-                        {
-                            var bindSc = currentKey.bindList.Find(obj => (obj.BindType == 2));
-                            if (bindSc != null)
-                            {
-                                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);
-                                         Shared.Phone.UserView.HomePage.Instance.AddChidren(addScenePage);
-                                         Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                                         addScenePage.Show();
+                        var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey);
+                        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();
-                                     }
-                                     else
-                                     {
-                                         currentKey.currentKeySelectModeText = oldKeySelectModeText;
-                                         dialog.Close();
-                                     }
-                                 };
-                            }
-                        }
-                        else
+                        Action<List<BindListResponseObj>> action = (obj) =>
                         {
-                            var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey);
-                            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();
-                        }
+                            currentKey.bindList = obj;
+                            RefreshList();
+                        };
+                        addScenePage.action += action;
+                        dialog.Close();
                     }
                     if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddSwitch))
                     {
-                        if (currentKey.bindList.Count != 0)
-                        {
-                            var bindSc = currentKey.bindList.Find(obj => (obj.BindType == 2));
-                            if (bindSc != null)
-                            {
-                                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();
+                        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();
-                                     }
-                                     else
-                                     {
-                                         currentKey.currentKeySelectModeText = oldKeySelectModeText;
-                                         dialog.Close();
-                                     }
-                                 };
-                            }
-                        }
-                        else
+                        Action<List<BindListResponseObj>> action = (obj) =>
                         {
-                            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();
-                        }
+                            currentKey.bindList = obj;
+                            RefreshList();
+                        };
+                        addDevicePage.actionAddDevicePage += action;
+                        dialog.Close();
                     }
                     if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddDimmer))
                     {
-                        if (currentKey.bindList.Count != 0)
+                        var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddDimmer");
+                        Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
+                        Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
+                        addDevicePage.Show();
+
+                        Action<List<BindListResponseObj>> action = (obj) =>
                         {
-                            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.DelLocalBindListThenAddAgain2);
-                                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, "AddDimmer");
-                                        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();
-                                    }
-
-                                };
-                            }
-                        }
-                        else
-                        {
-                            var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddDimmer");
-                            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();
-                        }
+                            currentKey.bindList = obj;
+                            RefreshList();
+                        };
+                        addDevicePage.actionAddDevicePage += action;
+                        dialog.Close();
                     }
                     if (currentKey.currentKeySelectModeText == Language.StringByID(R.MyInternationalizationString.AddCurtain))
                     {
-                        if (currentKey.bindList.Count != 0)
-                        {
-                            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.DelLocalBindListThenAddAgain3);
-                                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 addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddCurtain");
-                                    Shared.Phone.UserView.HomePage.Instance.AddChidren(addDevicePage);
-                                    Shared.Phone.UserView.HomePage.Instance.PageIndex += 1;
-                                    addDevicePage.Show();
+                        var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddCurtain");
+                        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
+                        Action<List<BindListResponseObj>> action = (obj) =>
                         {
-                            var addDevicePage = new Shared.Phone.UserCenter.DeviceBind.AddDevicePage(currentKey, "AddCurtain");
-                            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();
-                        }
+                            currentKey.bindList = obj;
+                            RefreshList();
+                        };
+                        addDevicePage.actionAddDevicePage += action;
+                        dialog.Close();
                     }
                 };
                 btnMethodText.MouseUpEventHandler += eHandler;
@@ -1150,8 +998,9 @@
         /// <param name="bindDevice"></param>
         /// <param name="btnDel"></param>
         /// <returns></returns>
-        private async System.Threading.Tasks.Task<int> RemoveTargets(BindListResponseObj bindDevice, Button btnDel)
-        {
+        private int RemoveTargets(BindListResponseObj bindDevice, Button btnDel)
+        {
+            int result = -1;
             var delDevice = new DelDeviceBindData();
             delDevice.DeviceAddr = currentKey.DeviceAddr;
             delDevice.Epoint = currentKey.DeviceEpoint;
@@ -1164,6 +1013,16 @@
                 removeDevice.BindMacAddr = bindDevice.BindMacAddr;
                 removeDevice.BindEpoint = bindDevice.BindEpoint;
                 delDevice.RemoveBindList.Add(removeDevice);
+                //鏄寒搴﹀啀娆″彂鍒犻櫎6鐨勫懡浠�
+                if (currentClusterID == 8)
+                {
+                    var removeDevice2 = new RemoveBindListObj();
+                    removeDevice2.BindCluster = 6;
+                    removeDevice2.BindType = 0;
+                    removeDevice2.BindMacAddr = bindDevice.BindMacAddr;
+                    removeDevice2.BindEpoint = bindDevice.BindEpoint;
+                    delDevice.RemoveBindList.Add(removeDevice2);
+                }
             }
             else if (bindDevice.BindType == 2)
             {
@@ -1174,119 +1033,148 @@
                 delDevice.RemoveBindList.Add(removeDevice);
             }
 
-            try
+            System.Threading.Tasks.Task.Run(() =>
             {
-                CommonPage.Loading.Start("");
-                var delResult = new DelDeviceBindResponseAllData();
-                delResult = HdlDeviceBindLogic.Current.DelDeviceBindAsync(delDevice);
-                if (delResult != null && delResult.delDeviceBindResponseData != null)
+                try
                 {
-                    if (delResult.delDeviceBindResponseData?.RemoveBindList != null)
+                    Application.RunOnMainThread(() =>
                     {
-                        foreach (var re in delResult.delDeviceBindResponseData.RemoveBindList)
+                        CommonPage.Loading.Start("");
+                    });
+                    var delResult = new DelDeviceBindResponseAllData();
+                    delResult = HdlDeviceBindLogic.Current.DelDeviceBindAsync(delDevice);
+                    if (delResult != null && delResult.delDeviceBindResponseData != null)
+                    {
+                        if (delResult.delDeviceBindResponseData?.RemoveBindList != null)
                         {
-                            switch (re.Result)
+                            foreach (var re in delResult.delDeviceBindResponseData.RemoveBindList)
                             {
-                                case 0:
-                                    currentKey.bindList.Remove(bindDevice);
-                                    RefreshList();
-                                    //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛�
-                                    if (re.BindType == 2)
-                                    {
-                                        currentKey.panelMode = 65535;
-                                    }
-                                    currentKey.ReSave();
-                                    return 0;
-                                    break;
-                                case 1:
-                                    currentKey.bindList.Clear();
-                                    try
-                                    {
-                                        CommonPage.Loading.Start("");
-
-                                        var getBindList = HdlDeviceBindLogic.Current.GetDeviceBindAsync(currentKey);
-                                        var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
-                                        var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
-                                        if (getBindList != null)
+                                switch (re.Result)
+                                {
+                                    case 0:
+                                        currentKey.bindList.Remove(bindDevice);
+                                        Application.RunOnMainThread(() =>
                                         {
-                                            if (getBindList.getAllBindResponseData != null)
+                                            RefreshList();
+                                            //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛�
+                                            if (re.BindType == 2)
                                             {
-                                                foreach (var b in getBindList.getAllBindResponseData.BindList)
+                                                currentKey.panelMode = 65535;
+                                            }
+                                            currentKey.ReSave();
+                                        });
+                                        result = 0;
+                                        break;
+                                    case 1:
+                                        currentKey.bindList.Clear();
+                                        try
+                                        {
+                                            Application.RunOnMainThread(() =>
+                                            {
+                                                CommonPage.Loading.Start("");
+                                            });
+                                            var getBindList = HdlDeviceBindLogic.Current.GetDeviceBindAsync(currentKey);
+                                            var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
+                                            var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
+                                            if (getBindList != null)
+                                            {
+                                                if (getBindList.getAllBindResponseData != null)
                                                 {
-                                                    if (b.BindCluster == currentClusterID)
+                                                    foreach (var b in getBindList.getAllBindResponseData.BindList)
                                                     {
-                                                        if (b.BindCluster == 6)
+                                                        if (b.BindCluster == currentClusterID)
                                                         {
-
-                                                            if (b.BindType == 2)
+                                                            if (b.BindCluster == 6)
                                                             {
-                                                                bindSceneListTemp.Add(b);
+
+                                                                if (b.BindType == 2)
+                                                                {
+                                                                    bindSceneListTemp.Add(b);
+                                                                }
+                                                                else
+                                                                {
+                                                                    bindDeviceListTemp.Add(b);
+                                                                }
                                                             }
                                                             else
                                                             {
-                                                                bindDeviceListTemp.Add(b);
+                                                                currentKey.bindList.Add(b);
                                                             }
-                                                        }
-                                                        else
-                                                        {
-                                                            currentKey.bindList.Add(b);
                                                         }
                                                     }
                                                 }
                                             }
+                                            if (currentKey.panelMode == 1)
+                                            {
+                                                currentKey.bindList = bindSceneListTemp;
+                                            }
+                                            else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102)
+                                            {
+                                                currentKey.bindList = bindDeviceListTemp;
+                                            }
                                         }
-                                        if (currentKey.panelMode == 1)
+                                        catch { }
+                                        finally
                                         {
-                                            currentKey.bindList = bindSceneListTemp;
+                                            Application.RunOnMainThread(() =>
+                                            {
+                                                RefreshList();
+                                                CommonPage.Loading.Hide();
+                                            });
                                         }
-                                        else if (currentKey.panelMode == 100 || currentKey.panelMode == 101 || currentKey.panelMode == 102)
+                                        break;
+                                    case 2:
+                                        if (delResult.removeBindResultResponseData != null)
                                         {
-                                            currentKey.bindList = bindDeviceListTemp;
+                                            if (delResult.removeBindResultResponseData.Result == 0)
+                                            {
+                                                currentKey.bindList.Remove(bindDevice);
+                                                Application.RunOnMainThread(() =>
+                                                {
+                                                    RefreshList();
+                                                });
+                                                result = 0;
+                                            }
+                                            else
+                                            {
+                                                Application.RunOnMainThread(() =>
+                                                {
+                                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+                                                });
+                                            }
                                         }
-                                    }
-                                    catch { }
-                                    finally
-                                    {
-                                        RefreshList();
-                                        CommonPage.Loading.Hide();
-                                    }
-                                    break;
-                                case 2:
-                                    if (delResult.removeBindResultResponseData != null)
-                                    {
-                                        if (delResult.removeBindResultResponseData.Result == 0)
-                                        {
-                                            currentKey.bindList.Remove(bindDevice);
-                                            RefreshList();
-                                            return 0;
-                                        }
-                                        else
-                                        {
-                                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
-                                        }
-                                    }
-                                    break;
-                                default:
-                                    break;
+                                        break;
+                                    default:
+                                        break;
+                                }
                             }
+                        }
+                        else
+                        {
+                            Application.RunOnMainThread(() =>
+                            {
+                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+                            });
                         }
                     }
                     else
                     {
-                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.RemoveFailed), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
+                        Application.RunOnMainThread(() =>
+                        {
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
+                        });
                     }
                 }
-                else
+                catch { }
+                finally
                 {
-                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance);
+                    Application.RunOnMainThread(() =>
+                    {
+                        CommonPage.Loading.Hide();
+                    });
                 }
-            }
-            catch { }
-            finally
-            {
-                CommonPage.Loading.Hide();
-            }
-            return -1;
+            });
+            return result;
         }
 
         /// <summary>

--
Gitblit v1.8.0