From 0087dd7734e71dfcfd1bb54db394ad7855021ffd Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 24 七月 2020 10:18:08 +0800
Subject: [PATCH] 新版本

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs |   77 +++++++++++++++++++++++++++++++++-----
 1 files changed, 66 insertions(+), 11 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
index abcd1c3..5f24bcd 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceMacInfoEditorForm.cs
@@ -102,10 +102,13 @@
             {
                 //绠�绾﹂潰鏉块殢渚夸竴涓洖璺潵鑾峰彇璁惧淇℃伅
                 var dev = Common.LocalDevice.Current.GetDevice(deviceMac, 62);
-                var key = new ZigBee.Device.Panel();
-                key.DeviceAddr = deviceMac;
-                key.CurrentGateWayId = dev.CurrentGateWayId;
-                InitBindInfo(key);
+                if (dev != null)
+                {
+                    var key = new ZigBee.Device.Panel();
+                    key.DeviceAddr = deviceMac;
+                    key.CurrentGateWayId = dev.CurrentGateWayId;
+                    InitBindInfo(key);
+                }
             }
         }
 
@@ -1073,7 +1076,7 @@
                 paneTargetsBaseFormp.Show();
                 paneTargetsBaseFormp.actionHumidityTarget += (bindName) =>
                 {
-                    Application.RunOnMainThread(() =>
+                    HdlThreadLogic.Current.RunMain(() =>
                     {
                         if (string.IsNullOrEmpty(bindName))
                         {
@@ -1124,7 +1127,7 @@
                 paneTargetsBaseFormp.Show();
                 paneTargetsBaseFormp.actionTemperatureTarget += (bindName) =>
                 {
-                    Application.RunOnMainThread(() =>
+                    HdlThreadLogic.Current.RunMain(() =>
                     {
                         if (string.IsNullOrEmpty(bindName))
                         {
@@ -1159,7 +1162,7 @@
                     {
                         Application.RunOnMainThread(() =>
                         {
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007_2" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                         });
                         return;
                     }
@@ -1171,7 +1174,7 @@
                     {
                         Application.RunOnMainThread(() =>
                         {
-                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+                            new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007_3" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
                         });
                         return;
                     }
@@ -1207,6 +1210,10 @@
                 foreach (var bDev in bindList)
                 {
                     var device = Common.LocalDevice.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint);
+                    if (device == null)
+                    {
+                        continue;
+                    }
                     if (device.Type == DeviceType.TemperatureSensor)
                     {
                         var bD = device as TemperatureSensor;
@@ -1430,13 +1437,13 @@
 
                 if (deviceFirmware != null && deviceFirmware.FirmwareVersion > oTADevice.ImgVersion)
                 {
-                    Application.RunOnMainThread(() =>
+                    HdlThreadLogic.Current.RunMain(() =>
                     {
                         if (btnNewVersion != null)
                         {
                             btnNewVersion.Visible = true;
                         }
-                    });
+                    }, ShowErrorMode.NO);
                 }
             });
         }
@@ -1499,7 +1506,17 @@
             //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘(鎷跨鐐规渶灏忕殑閭d釜鍥炶矾鍘诲畾浣�)
             bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0]);
 
-            var frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1);
+            TopRightMenuControl frame = null;
+
+            if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction)
+            {
+                frame = new TopRightMenuControl(3, 1);
+            }
+            else
+            {
+                frame = new TopRightMenuControl(canTest == true ? 2 : 1, 1);
+            }
+
             string deviceMenu = string.Empty;
             if (canTest == true)
             {
@@ -1530,6 +1547,23 @@
                 });
             });
 
+            //鍚屾
+            deviceMenu = Language.StringByID(R.MyInternationalizationString.Synchronization);
+            if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0]))
+            {
+                frame.AddRowMenu(deviceMenu, "", "Item/SynchronizationSelected.png", () =>
+                {
+                    //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�,姝ゅ姛鑳芥棤鏁�
+                    if (Common.Config.Instance.Home.IsVirtually == true)
+                    {
+                        return;
+                    }
+
+                    //鍚屾鎸囧畾璁惧
+                    this.SynchronizationDevice();
+                });
+            }
+
         }
 
         /// <summary>
@@ -1557,6 +1591,27 @@
                 });
             });
         }
+
+        /// <summary>
+        /// 鍚屾鎸囧畾璁惧
+        /// </summary>
+        private void SynchronizationDevice()
+        {
+            HdlThreadLogic.Current.RunThread(async () =>
+            {
+                //鎵撳紑杩涘害鏉�
+                this.ShowProgressBar();
+
+                //鍚屾璁惧
+                bool result = await Common.LocalDevice.Current.SynchronizationDevice(listNewDevice);
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar();
+                if (result == false)
+                {
+                    return;
+                }
+            });
+        }
         #endregion
 
         #region 鈻� 鍏抽棴鐣岄潰___________________________

--
Gitblit v1.8.0