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/ChooseKeyModePage.cs |  175 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 103 insertions(+), 72 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
index 953f73e..730ce66 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/ChooseKeyModePage.cs
@@ -5,19 +5,8 @@
 using static ZigBee.Device.BindObj;
 namespace Shared.Phone.UserCenter.DeviceBind
 {
-    public class ChooseKeyModePage : BindCommonLayout, ZigBee.Common.IStatus
+    public class ChooseKeyModePage : BindCommonLayout
     {
-        /// <summary>
-        /// 鎸夐敭妯″紡鎺ユ敹
-        /// </summary>
-        /// <param name="common">Common.</param>
-        public void Changed(CommonDevice common)
-        {
-            Shared.Application.RunOnMainThread(() =>
-            {
-            });
-        }
-
         /// 鏋勯�犲嚱鏁�
         /// </summary>
         /// <param name="doorLock"></param>
@@ -29,23 +18,46 @@
             this.targetList = targetSelectList;
         }
 
-        #region 鈼� 鍙橀噺鐢虫槑__________________________
-        ZigBee.Device.Panel currentKey;//褰撳墠鎸夐敭
-        //鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew
-        VerticalScrolViewLayout midVerticalScrolViewLayout;//涓儴鍒锋柊鍒楄〃
-        HorizontalScrolViewLayout btnHorizontalScrolViewLayout;//鎴块棿鍒楄〃宸﹀彸婊戝姩甯冨眬
+        #region 鍙橀噺鐢虫槑
+        /// <summary>
+        /// 褰撳墠鎸夐敭
+        /// </summary>
+        ZigBee.Device.Panel currentKey;
+        /// <summary>
+        /// 涓儴鍒锋柊鍒楄〃
+        /// </summary>
+        VerticalScrolViewLayout midVerticalScrolViewLayout;
+        /// <summary>
+        /// 鎴块棿鍒楄〃宸﹀彸婊戝姩甯冨眬
+        /// </summary>
+        HorizontalScrolViewLayout btnHorizontalScrolViewLayout;
         /// <summary>
         /// 鎸夐敭閰嶇疆鐨勭洰鏍囧垪琛�
         /// </summary>
-        List<CommonDevice> targetList = new List<CommonDevice>();//鏈湴涓存椂閫変腑鍒楄〃
+        List<CommonDevice> targetList = new List<CommonDevice>();
         /// <summary>
-        /// 鏂扮殑鎸夐敭閰嶇疆鐩爣鍒楄〃涓紝鐩爣瀹為檯瀛樺湪鎸夐敭涓紝姝ゆ椂瑕佸垹鎺夌殑鏁版嵁
+        /// 鏈湴鏃х殑閫変腑鍒楄〃
         /// </summary>
-        List<CommonDevice> oldTargetList = new List<CommonDevice>();//鏈湴鏃х殑閫変腑鍒楄〃
-        int currentClusterID = 6;//褰撳墠绨嘔D
-        public Action<List<BindListResponseObj>> action;//鍥炶皟缁戝畾鐩爣椤甸潰鍒锋柊
-        int currentModeID = 0;//褰撳墠妯″紡ID
-        string curDeviceBindType = "";//褰撳墠璁惧缁戝畾绫诲瀷
+        List<CommonDevice> oldTargetList = new List<CommonDevice>();
+        /// <summary>
+        /// 褰撳墠绨嘔D
+        /// </summary>
+        int currentClusterID = 6;
+        /// <summary>
+        /// 鍥炶皟缁戝畾鐩爣椤甸潰鍒锋柊
+        /// </summary>
+        public Action<List<BindListResponseObj>> action;
+        /// <summary>
+        /// 褰撳墠妯″紡ID
+        /// </summary>
+        int currentModeID = 0;
+        /// <summary>
+        /// 褰撳墠璁惧缁戝畾绫诲瀷
+        /// </summary>
+        string curDeviceBindType = "";
+        /// <summary>
+        /// 绫诲瀷鐨勫叿浣撴ā寮忓垪琛�
+        /// </summary>
         List<int> typeDetailModeList = new List<int> { };
         #endregion
 
@@ -115,7 +127,7 @@
                     //1銆佹竻绌烘墍鏈夌洰鏍�
                     if (currentKey.bindList != null)
                     {
-                        var bindResult = await currentKey.ClearBindInfoAsync();
+                        var bindResult = HdlDeviceBindLogic.Current.ClearBindInfoAsync(currentKey);
                         if (bindResult != null && bindResult.clearBindInfoResponseData != null)
                         {
                             if (bindResult.clearBindInfoResponseData.Result != 0)
@@ -152,43 +164,43 @@
                     switch (currentModeID)
                     {
                         case 100:
-                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.OnOff_On);
+                            temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.OnOff_On);
                             break;
                         case 101:
-                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.OnOff_oFF);
+                            temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.OnOff_oFF);
                             break;
                         case 102:
-                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.OnOff_OnOff);
+                            temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.OnOff_OnOff);
                             break;
                         case 200:
-                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Step_Up);
+                            temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Level_Step_Up);
                             break;
                         case 201:
-                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Step_Down);
+                            temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Level_Step_Down);
                             break;
                         case 203:
-                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Up);
+                            temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Level_Up);
                             break;
                         case 204:
-                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Down);
+                            temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Level_Down);
                             break;
                         case 205:
-                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Level_Up_Down);
+                            temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Level_Up_Down);
                             break;
                         case 300:
-                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Up);
+                            temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Wcd_Up);
                             break;
                         case 301:
-                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Down);
+                            temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Wcd_Down);
                             break;
                         case 302:
-                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Stop);
+                            temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Wcd_Stop);
                             break;
                         case 303:
-                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Up_Stop);
+                            temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Wcd_Up_Stop);
                             break;
                         case 304:
-                            temp = await currentKey.ConfigureHdlKeyValueAsync(Panel.KeyMode.Wcd_Down_Stop);
+                            temp = HdlDeviceBindLogic.Current.ConfigureHdlKeyValueAsync(currentKey, Panel.KeyMode.Wcd_Down_Stop);
                             break;
                     }
                     if (temp != null && temp.setWritableValueResponData != null)
@@ -231,19 +243,8 @@
                             }
 
                             var dev = new AddedDeviceBindResponseAllData();
-                            dev = await currentKey.AddDeviceBindAsync(addBindeDev);
-                            if (dev.addedDeviceBindResponseData == null)
-                            {
-                                Application.RunOnMainThread(() =>
-                                {
-                                    CommonPage.Loading.Hide();
-                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
-                                });
-                                btnFinifh.Enable = true;
-                                btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
-                                return;
-                            }
-                            else
+                            dev = HdlDeviceBindLogic.Current.AddDeviceBindAsync(addBindeDev);
+                            if (dev != null && dev.addedDeviceBindResponseData != null)
                             {
                                 if (dev.addedDeviceBindResponseData.Result == 0)
                                 {
@@ -305,6 +306,17 @@
                                     btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
                                     return;
                                 }
+                            }
+                            else
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    CommonPage.Loading.Hide();
+                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh);
+                                });
+                                btnFinifh.Enable = true;
+                                btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+                                return;
                             }
                         }
                         else
@@ -398,6 +410,13 @@
         {
             return System.Threading.Tasks.Task.Run(async () =>
              {
+                 //濡傛灉褰撳墠鏄櫄鎷熶綇瀹�
+                 if (Common.Config.Instance.Home.IsVirtually == true)
+                 {
+                     typeDetailModeList.Clear();
+                     return new List<int>() { 100, 101, 102 };
+                 }
+
                  Application.RunOnMainThread(() =>
                  {
                      CommonPage.Loading.Start();
@@ -454,6 +473,13 @@
         {
             return System.Threading.Tasks.Task.Run(async () =>
             {
+                //濡傛灉褰撳墠鏄櫄鎷熶綇瀹�
+                if (Common.Config.Instance.Home.IsVirtually == true)
+                {
+                    typeDetailModeList.Clear();
+                    return new List<int>() { 200, 201, 203, 204, 205 };
+                }
+
                 Application.RunOnMainThread(() =>
                 {
                     CommonPage.Loading.Start();
@@ -525,6 +551,17 @@
             return System.Threading.Tasks.Task.Run(async () =>
             {
                 typeDetailModeList.Clear();
+                //濡傛灉褰撳墠鏄櫄鎷熶綇瀹�
+                if (Common.Config.Instance.Home.IsVirtually == true)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        CommonPage.Loading.Hide();
+                    });
+                    typeDetailModeList.Clear();
+                    return new List<int>() { 300, 301, 302, 303, 304 };
+                }
+
                 List<int> result3 = new List<int> { };
                 try
                 {
@@ -578,6 +615,9 @@
             });
         }
 
+        /// <summary>
+        /// 娣诲姞寮�鍏虫ā寮�
+        /// </summary>
         async private void AddSwitchMode()
         {
             if (typeDetailModeList == null)
@@ -619,8 +659,8 @@
 
                 var btnChoose = new Button()
                 {
-                    Width = Application.GetRealWidth(60),
-                    Height = Application.GetRealHeight(60),
+                    Width = Application.GetMinReal(60),
+                    Height = Application.GetMinReal(60),
                     X = Application.GetRealWidth(861 + 81),
                     Y = Application.GetRealHeight(35),
                     SelectedImagePath = "DoorLock/SelectedIcon.png",
@@ -697,7 +737,6 @@
                          oldMode = btnChoose;
                          oldMode.IsSelected = true;
                          oldMode.Visible = true;
-                         currentKey.CurrentSwitchMode = btnModeText.Text;
                          if (btnModeText.Text == Language.StringByID(R.MyInternationalizationString.OnOffOn))
                          {
                              currentModeID = 100;
@@ -723,6 +762,9 @@
             }
         }
 
+        /// <summary>
+        /// 娣诲姞璋冨厜妯″紡
+        /// </summary>
         async private void AddDimmerMode()
         {
             if (typeDetailModeList == null)
@@ -775,8 +817,8 @@
 
                 var btnChoose = new Button()
                 {
-                    Width = Application.GetRealWidth(60),
-                    Height = Application.GetRealHeight(60),
+                    Width = Application.GetMinReal(60),
+                    Height = Application.GetMinReal(60),
                     X = Application.GetRealWidth(861 + 81),
                     Y = Application.GetRealHeight(35),
                     SelectedImagePath = "DoorLock/SelectedIcon.png",
@@ -870,7 +912,6 @@
                         oldMode = btnChoose;
                         oldMode.IsSelected = true;
                         oldMode.Visible = true;
-                        currentKey.CurrentSwitchMode = btnModeText.Text;
                         if (btnModeText.Text == Language.StringByID(R.MyInternationalizationString.DimmerMode1))
                         {
                             currentModeID = 200;
@@ -905,6 +946,9 @@
             }
         }
 
+        /// <summary>
+        /// 娣诲姞绐楀笜妯″紡
+        /// </summary>
         async private void AddCurtainMode()
         {
             if (typeDetailModeList == null)
@@ -946,8 +990,8 @@
 
                 var btnChoose = new Button()
                 {
-                    Width = Application.GetRealWidth(60),
-                    Height = Application.GetRealHeight(60),
+                    Width = Application.GetMinReal(60),
+                    Height = Application.GetMinReal(60),
                     X = Application.GetRealWidth(861 + 81),
                     Y = Application.GetRealHeight(35),
                     SelectedImagePath = "DoorLock/SelectedIcon.png",
@@ -1041,7 +1085,6 @@
                         oldMode = btnChoose;
                         oldMode.IsSelected = true;
                         oldMode.Visible = true;
-                        currentKey.CurrentSwitchMode = btnModeText.Text;
                         if (btnModeText.Text == Language.StringByID(R.MyInternationalizationString.WcdUp))
                         {
                             currentModeID = 300;
@@ -1074,18 +1117,6 @@
                 btnChoose.MouseUpEventHandler += hander;
                 i++;
             }
-        }
-
-        public void DeviceInfoChange(CommonDevice common, string typeTag)
-        {
-        }
-
-        public void ChangedILogicStatus(ZigBee.Device.Logic logic)
-        {
-        }
-
-        public void ChangedISceneStatus(Scene scene)
-        {
         }
     }
 }

--
Gitblit v1.8.0