From 98ceb6bd2021f9ff136cda27eef28676dd7b5d92 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 21 五月 2020 13:24:02 +0800
Subject: [PATCH] 最后的版本

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs |  134 ++++++++++++++++++++++++--------------------
 1 files changed, 73 insertions(+), 61 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindTargetsPage.cs
index b6a7c54..32eb48b 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>
@@ -78,10 +67,6 @@
         /// </summary>
         List<int> typeModeList;
         /// <summary>
-        /// 缃戝叧涓殑鍦烘櫙鍒楄〃
-        /// </summary>
-        public List<ScenesListInfo> gwScenesList = new List<ScenesListInfo>();
-        /// <summary>
         /// 鏄惁鏀寔璇诲彇
         /// </summary>
         bool IsRead = false;
@@ -106,17 +91,12 @@
                     }
                     //鑾峰彇鏈湴鍦烘櫙鍒楄〃
                     scList = HdlSceneLogic.Current.GetAllRoomSceneList();
-                    //鑾峰彇缃戝叧鍦烘櫙琛�
-                    var gwSceneObj = await currentKey.GetSceneInfoAsync();
-                    if (gwSceneObj != null && gwSceneObj.getSceneInfo != null)
-                    {
-                        gwScenesList = gwSceneObj.getSceneInfo.ScenesList;
-                    }
+
                     //鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被
                     typeModeList = await GetTypeMode();
                     #region 璇诲彇闈㈡澘褰撳墠妯″紡
                     //璇诲彇鎸夐敭褰撳墠妯″紡
-                    var tempDeata = await currentKey.ReadPanelConfigureInfoAsync();
+                    var tempDeata = HdlDeviceBindLogic.Current.ReadPanelConfigureInfoAsync(currentKey);
                     if (tempDeata != null && tempDeata.deviceStatusReportData != null)
                     {
                         foreach (var attr in tempDeata.deviceStatusReportData.AttriBute)
@@ -143,7 +123,7 @@
                             GetDeviceBindResponseAllData getBindList = null;
                             if (IsRead)
                             {
-                                getBindList = await currentKey.GetDeviceBindAsync();
+                                getBindList = HdlDeviceBindLogic.Current.GetDeviceBindAsync(currentKey);
                                 var bindDeviceListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
                                 var bindSceneListTemp = new System.Collections.Generic.List<BindListResponseObj> { };
                                 if (getBindList != null && getBindList.getAllBindResponseData != null)
@@ -187,6 +167,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;
                                     });
@@ -217,6 +198,7 @@
                         {
                             RefreshList();
                             CommonPage.Loading.Hide();
+                            midVerticalRefreshLayout.EndHeaderRefreshing();
                         });
                     }
                     else
@@ -224,6 +206,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;
@@ -250,7 +233,7 @@
 
             var btnAddFrameLayout = new FrameLayout()
             {
-                X = Application.GetRealWidth(888),
+                X = Application.GetRealWidth(772 - 58),
                 Width = Application.GetRealWidth(192),
             };
             this.titleFrameLayout.AddChidren(btnAddFrameLayout);
@@ -258,8 +241,8 @@
             var btnBindAdd = new Button
             {
                 X = Application.GetRealWidth(62),
-                Height = Application.GetRealHeight(72),
-                Width = Application.GetRealWidth(72),
+                Height = Application.GetMinReal(72),
+                Width = Application.GetMinReal(72),
                 UnSelectedImagePath = "BindPic/BindAdd.png",
             };
             btnAddFrameLayout.AddChidren(btnBindAdd);
@@ -274,7 +257,7 @@
                     {
                         currentClusterID = 6;
                         currentKey.panelMode = 1;
-                        var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey, gwScenesList);
+                        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();
@@ -356,6 +339,7 @@
             InitListInfo();
 
         }
+
         /// <summary>
         /// 涓儴甯冨眬
         /// </summary>
@@ -363,6 +347,7 @@
         {
             midVerticalRefreshLayout = new VerticalFrameRefreshControl(29)
             {
+                Height = this.midFrameLayout.Height + 1,
             };
             this.midFrameLayout.AddChidren(midVerticalRefreshLayout);
             midVerticalRefreshLayout.BeginHeaderRefreshingAction += () =>
@@ -370,7 +355,6 @@
                 midVerticalRefreshLayout.BeginHeaderRefreshing();
                 IsRead = true;
                 InitListInfo();
-                midVerticalRefreshLayout.EndHeaderRefreshing();
             };
 
             BlankPicUI();
@@ -453,6 +437,7 @@
                     midVerticalRefreshLayout.AddChidrenRow(rowLayout);
                     rowLayout.frameTable.UseClickStatu = false;
                     var devicePic = rowLayout.frameTable.AddLeftIcon();
+                    devicePic.Y = Application.GetRealHeight(49);
                     devicePic.UnSelectedImagePath = "DoorLock/DoorLockUserPic.png";
 
                     #region 缁戝畾鏁版嵁澶勭悊
@@ -493,6 +478,10 @@
                             {
                                 btnFloorRoomNameText = myName;
                             }
+                            else
+                            {
+                                btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed);
+                            }
                         }
                     }
                     else
@@ -515,16 +504,29 @@
                                     var tempDevFloorName = Common.Config.Instance.Home.GetFloorNameById(tempDevFloorId);
                                     if (string.IsNullOrEmpty(tempDevFloorName))
                                     {
-                                        btnFloorRoomNameText = tempDevRoomName;
+                                        if (string.IsNullOrEmpty(tempDevRoomName))
+                                        {
+                                            btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed);
+                                        }
+                                        else
+                                        {
+                                            btnFloorRoomNameText = tempDevRoomName;
+                                        }
                                     }
                                     else
                                     {
-                                        btnFloorRoomNameText = tempDevFloorName + "," + tempDevRoomName;
+                                        if (string.IsNullOrEmpty(tempDevRoomName))
+                                        {
+                                            btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed);
+                                        }
+                                        else
+                                        {
+                                            btnFloorRoomNameText = tempDevFloorName + "," + tempDevRoomName;
+                                        }
                                     }
                                 }
 
                                 devicePic.UnSelectedImagePath = tempDev.IconPath;
-                                devicePic.Width = Application.GetRealWidth(110);
                                 devicePic.Text = "";
 
                                 if (string.IsNullOrEmpty(tempDev.DeviceEpointName))
@@ -539,7 +541,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);
@@ -633,7 +634,7 @@
                      try
                      {
                          CommonPage.Loading.Start("");
-                         var bindResult = await currentKey.ClearBindInfoAsync();
+                         var bindResult = HdlDeviceBindLogic.Current.ClearBindInfoAsync(currentKey);
                          if (bindResult != null && bindResult.clearBindInfoResponseData != null)
                          {
                              if (bindResult.clearBindInfoResponseData.Result != 0)
@@ -644,11 +645,11 @@
                              }
                              else
                              {
-                                 var temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Default);
-                                 if (temp.setWritableValueResponData?.Status != 0)
+                                 var temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default);
+                                 if (temp != null && temp.setWritableValueResponData?.Status != 0)
                                  {
-                                     var temp1 = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Default);
-                                     if (temp1.setWritableValueResponData?.Status != 0)
+                                     var temp1 = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Default);
+                                     if (temp1 != null && temp1.setWritableValueResponData?.Status != 0)
                                      {
                                          new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.ChangeBindMode), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel);
                                      }
@@ -677,7 +678,6 @@
                              currentKey.bindList.Clear();
                              RefreshList();
                              //濡傛灉鏄満鏅紝鐢ㄦ埛鍒犻櫎娓呯┖褰撳墠鍒版埧闂村垪琛�
-                             currentKey.RoomId = "";
                              currentKey.ReSave();
                          }
                          CommonPage.Loading.Hide();
@@ -704,8 +704,8 @@
 
             var sidelipFrameLayout = new FrameLayout()
             {
-                Height = Application.GetRealHeight(628),
-                Width = Application.GetRealWidth(415),
+                Height = Application.GetMinReal(628),
+                Width = Application.GetMinReal(415),
                 Y = Application.GetRealHeight(115 + 45),
                 X = Application.GetRealWidth(605),
                 BackgroundImagePath = "DoorLock/SideslipPic.png",
@@ -726,26 +726,34 @@
             if (typeModeList == null)
             {
                 //鍐嶆鍔ㄦ�佽幏鍙栨寜閿敮鎸佺殑澶х被
-                CommonPage.Loading.Start();
+                Application.RunOnMainThread(() =>
+                {
+                    CommonPage.Loading.Start();
+                });
                 typeModeList = await GetTypeMode();
                 if (typeModeList == null)
                 {
                     Application.RunOnMainThread(() =>
                     {
                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                        CommonPage.Loading.Hide();
                     });
-                    CommonPage.Loading.Hide();
                     dialog.Close();
                     return;
                 }
                 else
                 {
-                    CommonPage.Loading.Hide();
+                    Application.RunOnMainThread(() =>
+                    {
+                        CommonPage.Loading.Hide();
+                    });
                 }
             }
 
+            int count = 0;
             foreach (var value in typeModeList)
             {
+                count++;
                 #region  rowView
                 var rowView = new FrameLayout()
                 {
@@ -881,7 +889,7 @@
                                      var result = await RemoveTargets(bindSc, line2);
                                      if (result == 0)
                                      {
-                                         var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey, gwScenesList);
+                                         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();
@@ -904,7 +912,7 @@
                         }
                         else
                         {
-                            var addScenePage = new Shared.Phone.UserCenter.DeviceBind.AddScenePage(currentKey, gwScenesList);
+                            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();
@@ -1108,6 +1116,13 @@
         /// <returns></returns>
         private async System.Threading.Tasks.Task<List<int>> GetTypeMode()
         {
+            //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
+            if (Common.Config.Instance.Home.IsVirtually == true)
+            {
+                //鍒欓粯璁ゅ叏閮ㄥ姛鑳介兘缁欏畠
+                typeModeList = new List<int>() { 1, 100, 200, 300, 0, 101, 102 };
+                return typeModeList;
+            }
             if (typeModeList != null)
             {
                 typeModeList.Clear();
@@ -1149,6 +1164,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)
             {
@@ -1163,7 +1188,7 @@
             {
                 CommonPage.Loading.Start("");
                 var delResult = new DelDeviceBindResponseAllData();
-                delResult = await currentKey.DelDeviceBindAsync(delDevice);
+                delResult = HdlDeviceBindLogic.Current.DelDeviceBindAsync(delDevice);
                 if (delResult != null && delResult.delDeviceBindResponseData != null)
                 {
                     if (delResult.delDeviceBindResponseData?.RemoveBindList != null)
@@ -1180,7 +1205,6 @@
                                     {
                                         currentKey.panelMode = 65535;
                                     }
-                                    currentKey.RoomId = "";
                                     currentKey.ReSave();
                                     return 0;
                                     break;
@@ -1190,7 +1214,7 @@
                                     {
                                         CommonPage.Loading.Start("");
 
-                                        var getBindList = await currentKey.GetDeviceBindAsync();
+                                        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)
@@ -1283,18 +1307,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