From 3272ca5b51e19f7f8a827b0f68400570a547fe60 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 28 四月 2020 15:02:44 +0800
Subject: [PATCH] 2020-04-28-1

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs |  128 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 115 insertions(+), 13 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs
index a948e82..390b7e9 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelButtonSettionForm.cs
@@ -15,7 +15,7 @@
         /// <summary>
         /// 鍒楄〃鎺т欢
         /// </summary>
-        private VerticalListControl listview = null;
+        private FrameListControl listview = null;
         /// <summary>
         /// 褰撳墠閫夋嫨鐨勮澶�
         /// </summary>
@@ -36,6 +36,18 @@
         /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍚嶅瓧
         /// </summary>
         private Dictionary<int, string> dicDeviceSaveName = new Dictionary<int, string>();
+        /// <summary>
+        /// 绠�绾﹂潰鏉跨殑闇囧姩鏁版嵁
+        /// </summary>
+        private HdlDevicePanelLogic.VibrationInfo vibrationInfo = null;
+        /// <summary>
+        /// 鏄惁宸茬粡璇诲彇浜嗛渿鍔ㄦ暟鎹�
+        /// </summary>
+        private bool hadReadVibrationInfo = false;
+        /// <summary>
+        /// 淇℃伅缂栬緫鎺т欢
+        /// </summary>
+        private InformationEditorControl tableContr = null;
 
         #endregion
 
@@ -67,16 +79,16 @@
             //娓呯┖bodyFrame
             this.ClearBodyFrame();
 
+            var listBackControl = new VerticalFrameControl();
+            listBackControl.Height = bodyFrameLayout.Height;
+            bodyFrameLayout.AddChidren(listBackControl);
+
             //鍒濆鍖栨甯�
-            var tableContr = new InformationEditorControl();
-            this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 708, 1028);
+            this.tableContr = new InformationEditorControl();
+            this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028);
 
             //鍒濆鍖栬澶囧洖璺浘鏍�
-            this.InitDeviceEpointIcon();
-
-            //鍒濆鍖栨甯冨畬鎴�
-            tableContr.FinishInitControl(bodyFrameLayout, this.listview);
-            tableContr = null;
+            this.InitDeviceEpointIcon(listBackControl);
 
             //淇濆瓨
             var btnFinish = new BottomClickButton();
@@ -166,13 +178,18 @@
             rowBeloneArea.SelectRoomEvent += (roomKeys) =>
             {
                 //鍙樻洿鎴块棿
-                Common.Room.CurrentRoom.ChangedRoom(nowSelectDevice, roomKeys);
+                HdlRoomLogic.Current.ChangedRoom(nowSelectDevice, roomKeys);
             };
 
             //娣诲姞缁戝畾鐩爣琛�
             this.AddBindRow();
             //娣诲姞鑳屽厜鐏
             this.AddBackLightRow();
+            //娣诲姞闇囧姩鍙嶉琛�
+            this.AddVibrationFeedbackRow();
+
+            //鍒濆鍖栨甯冨畬鎴�
+            tableContr.FinishInitControl();
         }
 
         #endregion
@@ -293,12 +310,97 @@
 
         #endregion
 
+        #region 鈻� 闇囧姩鍙嶉___________________________
+
+        /// <summary>
+        /// 娣诲姞闇囧姩鍙嶉琛�
+        /// </summary>
+        private void AddVibrationFeedbackRow()
+        {
+            var listDevice = Common.LocalDevice.Current.GetDevicesByMac(nowSelectDevice.DeviceAddr, false);
+            var myType = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
+            //鍙湁绠�绾﹂潰鏉挎墠浼氭湁杩欎釜鑿滃崟
+            if (myType.ConcreteType == Common.DeviceConcreteType.ButtonPanel_SimpleTwo
+                || myType.ConcreteType == Common.DeviceConcreteType.ButtonPanel_SimpleThree
+                || myType.ConcreteType == Common.DeviceConcreteType.ButtonPanel_SimpleFour)
+            {
+                //闇囧姩鍙嶉
+                var rowContr = new FrameRowControl(listview.rowSpace / 2);
+                rowContr.UseClickStatu = false;
+                listview.AddChidren(rowContr);
+                rowContr.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uVibrationFeedback), 600);
+                //搴曠嚎
+                rowContr.AddBottomLine();
+                //鍙崇澶�
+                var btnSwitch = rowContr.AddMostRightSwitchIcon();
+                if (vibrationInfo != null)
+                {
+                    btnSwitch.IsSelected = vibrationInfo.A闇囧姩浣胯兘;
+                }
+
+                btnSwitch.ButtonClickEvent += (sender, e) =>
+                {
+                    if (vibrationInfo == null)
+                    {
+                        //鑾峰彇鏁版嵁澶辫触鏃�,缁欎粬鐜�,浣嗘槸娌℃晥鏋�
+                        btnSwitch.IsSelected = !btnSwitch.IsSelected;
+                        return;
+                    }
+                    //鐐瑰嚮涓�娆′箣鍚�,涓嶈兘鍐嶆鐐瑰嚮
+                    btnSwitch.CanClick = false;
+                    bool statu = !btnSwitch.IsSelected;
+
+                    HdlThreadLogic.Current.RunThread(() =>
+                    {
+                        vibrationInfo.A闇囧姩浣胯兘 = statu;
+                        //璁剧疆绠�绾﹂潰鏉块渿鍔ㄥ姛鑳界殑淇℃伅
+                        var result = HdlDevicePanelLogic.Current.SetPanelVibrationData(nowSelectDevice, vibrationInfo);
+                        if (result == true)
+                        {
+                            HdlThreadLogic.Current.RunMain(() =>
+                            {
+                                btnSwitch.IsSelected = statu;
+                            });
+                        }
+                        else
+                        {
+                            //澶辫触鏃�,鏁版嵁杩樺師
+                            vibrationInfo.A闇囧姩浣胯兘 = !vibrationInfo.A闇囧姩浣胯兘;
+                        }
+                        //鍏佽涓嬩竴娆$偣鍑�
+                        btnSwitch.CanClick = true;
+                    });
+                };
+                if (hadReadVibrationInfo == true)
+                {
+                    //涓嶅啀璇诲彇
+                    return;
+                }
+                this.hadReadVibrationInfo = true;
+
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    //鑾峰彇绠�绾﹂潰鏉块渿鍔ㄥ姛鑳界殑淇℃伅(null琛ㄧず鍑洪敊)
+                    vibrationInfo = HdlDevicePanelLogic.Current.GetPanelVibrationData(nowSelectDevice);
+                    if (vibrationInfo != null)
+                    {
+                        HdlThreadLogic.Current.RunMain(() =>
+                        {
+                            btnSwitch.IsSelected = vibrationInfo.A闇囧姩浣胯兘;
+                        });
+                    }
+                });
+            }
+        }
+
+        #endregion
+
         #region 鈻� 鍒濆鍖栬澶囧洖璺浘鏍嘷________________
 
         /// <summary>
         /// 鍒濆鍖栬澶囧洖璺浘鏍�
         /// </summary>
-        private void InitDeviceEpointIcon()
+        private void InitDeviceEpointIcon(VerticalFrameControl listBackControl)
         {
             bool hadDevice = false;
             var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceObj.DeviceAddr);
@@ -335,11 +437,11 @@
             frameBorder.Y = Application.GetRealHeight(150);
             frameBorder.Gravity = Gravity.CenterHorizontal;
             frameBorder.Width = Application.GetMinRealAverage(426);
-            frameBorder.Height = Application.GetMinRealAverage(426); 
-            bodyFrameLayout.AddChidren(frameBorder);
+            frameBorder.Height = Application.GetMinRealAverage(426);
+            listBackControl.frameTable.AddChidren(frameBorder);
 
             var btnPic = new PicViewControl(frameBorder.Width, frameBorder.Height, false);
-            btnPic.UnSelectedImagePath = "Device/PanelTable.png";
+            btnPic.UnSelectedImagePath = "DeviceItem/PanelTable.png";
             frameBorder.AddChidren(btnPic);
 
             if (listOffSwitch.Count == 4)

--
Gitblit v1.8.0