From 9ef48d7b2da7c408b53f73be0f6eef3cbac1c84a Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 19 十一月 2020 10:23:45 +0800
Subject: [PATCH] Evoyo.Home1.1.0120111601_Release

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs |   78 +++++++++++++++++++++++++++++++++------
 1 files changed, 66 insertions(+), 12 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs
index 601e1bd..75a9421 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs
@@ -74,11 +74,14 @@
                 || this.device.Type == DeviceType.OnOffOutput)
             {
                 //娌¤寮哄埗骞叉秹鐨勮瘽
-                if (m_SetCanSelect == true)
+                if (m_SetCanSelect == true && Common.Config.Instance.Home.IsShowTemplate == false)
                 {
                     this.UseClickStatu = true;
                     //鍙崇澶�
                     this.AddRightArrow();
+
+                    //璇诲彇璁惧鍔熻兘绫诲瀷
+                    this.ReadDeviceFunctionType();
 
                     this.ButtonClickEvent += (sender, e) =>
                     {
@@ -108,7 +111,7 @@
 
             var form = new BottomItemSelectForm();
             form.CancelCallEvent = true;//鍏佽鍙栨秷
-            form.AddForm(title, listText, nowSelectNo - 1);
+            form.AddForm(title, listText, null, nowSelectNo - 1);
             form.FinishSelectEvent += (selectNo) =>
             {
                 if (selectNo == nowSelectNo - 1)
@@ -120,14 +123,34 @@
                 this.Text = selectNo == -1 ? string.Empty : listText[selectNo];
                 nowSelectNo = selectNo + 1;
 
-                //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨�
-                this.RefreshDfunctionType();
+                this.CanClick = false;
+                HdlThreadLogic.Current.RunThread(() =>
+                {
+                    //璁剧疆鍔熻兘绫诲瀷鍒扮綉鍏�
+                    var result = Common.LocalDevice.Current.SendDeviceFunctionTypeToGateway(this.device, (DeviceFunctionType)nowSelectNo);
+                    
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        if (result == true)
+                        {
+                            //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨�
+                            this.RefreshDfunctionType();
 
-                //璁惧鏀瑰彉鍔熻兘绫诲瀷鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂�
-                UserView.UserPage.Instance.RefreshForm = true;
+                            //璁惧鏀瑰彉鍔熻兘绫诲瀷鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂�
+                            UserView.UserPage.Instance.RefreshAllForm = true;
 
-                //璋冪敤鍥炶皟鍑芥暟
-                this.FinishSelectEvent?.Invoke(nowSelectNo);
+                            //璋冪敤鍥炶皟鍑芥暟
+                            this.FinishSelectEvent?.Invoke(nowSelectNo);
+                        }
+                        else
+                        {
+                            //璁剧疆璁惧鍔熻兘绫诲瀷澶辫触
+                            var alert = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uSetDeviceFunctionTypeFail));
+                            alert.Show();
+                        }
+                        this.CanClick = true;
+                    });
+                });
             };
         }
         #endregion
@@ -171,25 +194,29 @@
                 || this.device.Type == DeviceType.DimmableLight)
             {
                 //鐏厜绫诲浐瀹氫负 鐏厜
-                strType = Language.StringByID(R.MyInternationalizationString.uLight);
+                var infoContent = Common.LocalDevice.Current.GetDeviceModelIdNameInfo("A418");
+                strType = infoContent != null ? infoContent.A瀹樻柟鍚嶅瓧 : string.Empty;
                 nowSelectNo = 2;
             }
             else if (this.device.Type == DeviceType.WindowCoveringDevice)
             {
                 //绐楀笜鍥哄畾涓� 閬槼
-                strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId100);
+                var infoContent = Common.LocalDevice.Current.GetDeviceModelIdNameInfo("A400");
+                strType = infoContent != null ? infoContent.A瀹樻柟鍚嶅瓧 : string.Empty;
                 nowSelectNo = -1;
             }
             else if (this.device.Type == DeviceType.Thermostat)
             {
                 //绌鸿皟鍥哄畾涓� 绌鸿皟
-                strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId3600);
+                var infoContent = Common.LocalDevice.Current.GetDeviceModelIdNameInfo("A406");
+                strType = infoContent != null ? infoContent.A瀹樻柟鍚嶅瓧 : string.Empty;
                 nowSelectNo = -1;
             }
             else if (this.device.Type == DeviceType.DoorLock)
             {
                 //闂ㄩ攣鍥哄畾涓� 闂ㄩ攣
-                strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId2800);
+                var infoContent = Common.LocalDevice.Current.GetDeviceModelIdNameInfo("A405");
+                strType = infoContent != null ? infoContent.A瀹樻柟鍚嶅瓧 : string.Empty;
                 nowSelectNo = -1;
             }
             else if (this.device.Type == DeviceType.FreshAir)
@@ -309,5 +336,32 @@
         }
 
         #endregion
+
+        #region 鈻� 璇诲彇璁惧鍔熻兘绫诲瀷___________________
+
+        /// <summary>
+        /// 璇诲彇璁惧鍔熻兘绫诲瀷
+        /// </summary>
+        private void ReadDeviceFunctionType()
+        {
+            HdlThreadLogic.Current.RunThread(() =>
+            {
+                //璇诲彇璁惧鍔熻兘绫诲瀷
+                var info = Common.LocalDevice.Current.ReadDeviceEpointDeviceInfo(this.device);
+                if (info != null && ((int)this.device.DfunctionType) != info.FunctionType)
+                {
+                    this.device.DfunctionType = (DeviceFunctionType)info.FunctionType;
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        //鍒锋柊鎺т欢
+                        this.InitDefultData();
+                        //鍒锋柊璁惧鍔熻兘绫诲瀷
+                        this.RefreshDfunctionType();
+                    });
+                }
+            });
+        }
+
+        #endregion
     }
 }

--
Gitblit v1.8.0