From 3cebdfad56d78ba04a214fccd1b942a010aeba77 Mon Sep 17 00:00:00 2001
From: tzy <274116637@qq.com>
Date: 星期五, 26 三月 2021 09:42:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/temp-wxr' into dev-tzy

---
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs |  278 +++++++++++++++++++++++++++++++++----------------------
 1 files changed, 167 insertions(+), 111 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
index 19bca3c..f5f2ed2 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
@@ -8,12 +8,13 @@
 {
     public class Method
     {
+
         /// <summary>
-        /// 绋嬪簭涓诲叆鍙�
+        /// 绾㈠瀹濈▼搴忎富鍏ュ彛
         /// </summary>
         /// <param name="frame"></param>
         /// <param name="function"></param>
-        public void MainView(FrameLayout frame, Entity.Function function,Action action)
+        public void MainView(FrameLayout frame, Entity.Function function, Action action)
         {
             Pir pirDevice = new Pir();
             if (function != null)
@@ -22,6 +23,7 @@
                 pirDevice.deviceId = function.deviceId;
                 pirDevice.sid = function.sid;
                 pirDevice.online = function.online;
+                pirDevice.versions = function.versions;
             }
             Pir.currPir = pirDevice;
             GetControlList(frame, () =>
@@ -32,8 +34,10 @@
                     MainPage.BasePageView.AddChidren(page);
                     page.Show();
                     MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
-                    page.BackAction += () => {
+                    PirMain.BackAction += () =>
+                    {
                         action?.Invoke();
+                        PirMain.BackAction = null;
                     };
                 });
             }, Pir.currPir);
@@ -139,7 +143,13 @@
                             {
                                 if (device != null)
                                 {
+
                                     control.deviceId = device.deviceId;
+                                    //閬ユ帶鍣ㄦ坊鍔犲埌鍒楄〃锛�
+                                    if (null == Pir.currPir.FunctioList.Find((c) => c.deviceId == device.deviceId))
+                                    {
+                                        Pir.currPir.FunctioList.Add(device);
+                                    }
                                     frame.RemoveFromParent();//娣诲姞鎴愬姛鍏抽棴寮圭獥
                                     action(control);
                                 }
@@ -211,25 +221,10 @@
                                 var pirJosn = Newtonsoft.Json.JsonConvert.DeserializeObject<Pir>(str);
                                 if (pirJosn != null)
                                 {
-
-/* 椤圭洰鈥淗DL-ON_iOS鈥濈殑鏈悎骞剁殑鏇存敼
-鍦ㄦ涔嬪墠:
-                                    if (null == Pir.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId))
-鍦ㄦ涔嬪悗:
-                                    if (null == list.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId))
-*/
+
                                     if (null == PirDevice.Pir.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId))
-                                    {
-
-
-/* 椤圭洰鈥淗DL-ON_iOS鈥濈殑鏈悎骞剁殑鏇存敼
-鍦ㄦ涔嬪墠:
-                                        Pir.pirDeviceList.Add(pirJosn);
-鍦ㄦ涔嬪悗:
-                                        list.pirDeviceList.Add(pirJosn);
-*/
+                                    {
                                         PirDevice.Pir.pirDeviceList.Add(pirJosn);
-
                                     }
                                 }
                             }
@@ -258,7 +253,7 @@
                             {
                                 loading.Hide();
                                 Method method = new Method();
-                                method.ErrorShow(null,"璇诲彇绾㈠瀹濆垪琛ㄥけ璐�");
+                                method.ErrorShow(null, "璇诲彇绾㈠瀹濆垪琛ㄥけ璐�");
                             }
                         }
                         catch { }
@@ -286,7 +281,7 @@
                         var pirDevice = Pir.pirDeviceList[i];
                         try
                         {
-                            var responsePackNew = PirSend.ControlList(pirDevice);
+                            var responsePackNew = PirSend.ControlList(pirDevice.deviceId);
                             if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
                             {
                                 var jArray = JArray.Parse(responsePackNew.Data.ToString());
@@ -331,57 +326,27 @@
         /// 鑾峰彇鍗曚釜绾㈠瀹濋仴鎺у櫒鍒楄〃
         /// </summary>
         /// <param name="action">鍥炶皟鍑芥暟</param>
-        public static void GetControlList(FrameLayout frame ,Action action, Pir pirDevice)
+        public static void GetControlList(FrameLayout frame, Action action, Pir pirDevice)
         {
-            Loading loading = new Loading();
-            frame.AddChidren(loading);
-            loading.Start();
-            new System.Threading.Thread(() =>
-            {
-                try
-                {
-
-                    try
-                    {
-                        var responsePackNew = PirSend.ControlList(pirDevice);
-                        if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
-                        {
-                            var jArray = JArray.Parse(responsePackNew.Data.ToString());
-                            for (int a = 0; a < jArray.Count; a++)
-                            {
-                                var jay = jArray[a];
-                                //鏁版嵁杩斿簭鍒楀寲涓篖ogic瀵硅薄
-                                var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay);
-                                var pirJosn = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.Function>(str);
-                                if (pirJosn != null)
-                                {
-                                    if (null == pirDevice.FunctioList.Find((c) => c.sid == pirJosn.sid))
-                                    {
-                                        pirDevice.FunctioList.Add(pirJosn);
-                                    }
-                                }
-
-                            }
-                        }
-
-                    }
-                    catch { }
-
-
-                }
-                catch { }
-                finally
-                {
-
-                    Application.RunOnMainThread(() =>
-                    {
-                        loading.Hide();
-                        action();
-                    });
-                }
-
-            })
-            { IsBackground = true }.Start();
+            ThreadSend(new Control { deviceId = pirDevice.deviceId }, (responsePackNew) =>
+             {
+                 var jArray = JArray.Parse(responsePackNew.Data.ToString());
+                 for (int a = 0; a < jArray.Count; a++)
+                 {
+                     var jay = jArray[a];
+                     //鏁版嵁杩斿簭鍒楀寲涓篖ogic瀵硅薄
+                     var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay);
+                     var pirJosn = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.Function>(str);
+                     if (pirJosn != null)
+                     {
+                         if (null == pirDevice.FunctioList.Find((c) => c.deviceId == pirJosn.deviceId))
+                         {
+                             pirDevice.FunctioList.Add(pirJosn);
+                         }
+                     }
+                 }
+                 action();
+             }, "鑾峰彇閬ユ帶鍣ㄥ垪琛�", "frame", frame, null);
 
         }
         /// <summary>
@@ -392,37 +357,12 @@
         /// <param name="action">鍥炶皟鍑芥暟</param>
         public void GetControl(FrameLayout frame, Control control, Action<Entity.Function> action)
         {
-            Entity.Function function = null;
-            //鍔犺浇log
-            Loading loading = new Loading();
-            frame.AddChidren(loading);
-            loading.Start();
-            new System.Threading.Thread(() =>
+            ThreadSend(control, (responsePackNew) =>
             {
-                try
-                {
-                    // 鑾峰彇璁惧璇︽儏閫氳繃(spk,sid)
-                    var responsePackNew = PirSend.GetinfoBySid(control);
-                    if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
-                    {
-                        //var str = Newtonsoft.Json.JsonConvert.SerializeObject(responsePackNew.Data.ToString());
-                        function = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.Function>(responsePackNew.Data.ToString());
-                    }
-                }
-                catch { }
-                finally
-                {
-                    Application.RunOnMainThread(() =>
-                    {
-                        loading.Hide();
-                        action(function);
-                    });
-                }
-
-            })
-            { IsBackground = true }.Start();
+                var function = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.Function>(responsePackNew.Data.ToString());
+                action(function);
+            }, "鑾峰彇璁惧璇︽儏", "frame", frame, null);
         }
-
         /// <summary>
         /// 鍙戦�佸懡浠ょ嚎绋�
         /// </summary>
@@ -432,9 +372,10 @@
         /// <param name="view">鍒ゆ柇log鐖舵帶浠�</param>
         /// <param name="frame">log鐖舵帶浠�</param>
         /// <param name="dialog">log鐖舵帶浠�</param>
-        public static void ThreadSend(Control control, Action<ResponsePackNew> action, string str,string view, FrameLayout frame, Dialog dialog)
+        /// <param name="attributesStatus">瀛︿範鎸夐敭</param>
+        public static void ThreadSend(Control control, Action<ResponsePackNew> action, string str, string view, FrameLayout frame, Dialog dialog, Entity.AttributesStatus attributesStatus=null)
         {
-           
+
             //鍔犺浇log
             Loading loading = new Loading();
             if (view == "dialog")
@@ -460,8 +401,25 @@
 
                         responsePackNew = PirSend.DeviceRename(control.deviceId, control.name);
                     }
-                    else if (str == "鍒犻櫎鎸夐敭") {
-                       // responsePackNew = PirSend.CodeRemove(control.deviceId, control.name);
+                    else if (str == "鍒犻櫎鎸夐敭")
+                    {
+                        if (attributesStatus != null)
+                        {
+                            responsePackNew = PirSend.CodeRemove(attributesStatus, control.deviceId);
+                        }
+                    }
+                    else if (str == "鑾峰彇璁惧璇︽儏")
+                    {
+                        // 鑾峰彇璁惧璇︽儏閫氳繃(spk,sid)
+                        responsePackNew = PirSend.GetinfoBySid(control);
+                    }
+                    else if (str == "鑾峰彇閬ユ帶鍣ㄥ垪琛�")
+                    {
+                        responsePackNew = PirSend.ControlList(control.deviceId);
+                    }
+                    else if (str == "搴撶爜娴嬭瘯")
+                    {
+                        responsePackNew = PirSend.CodeTest(control);
                     }
                 }
                 catch { }
@@ -477,7 +435,28 @@
                         else
                         {
                             Method method = new Method();
-                            method.ErrorShow(responsePackNew, "");
+                            //鑷畾涔夐敊璇彁绀烘枃鏈�
+                            string eorroText = "";
+                            if (str == "鍒犻櫎")
+                            {
+                            }
+                            else if (str == "淇敼鍚嶇О")
+                            {
+
+                            }
+                            else if (str == "鍒犻櫎鎸夐敭")
+                            {
+                            }
+                            else if (str == "鑾峰彇璁惧璇︽儏")
+                            {
+                            }
+                            else if (str == "鑾峰彇閬ユ帶鍣ㄥ垪琛�")
+                            {
+                            }
+                            else if (str == "搴撶爜娴嬭瘯")
+                            {
+                            }
+                            method.ErrorShow(responsePackNew, eorroText);
                         }
 
                     });
@@ -519,7 +498,7 @@
                     str = buttondata;
                 }
 
-                if (!string.IsNullOrEmpty(controldata))
+                if (!string.IsNullOrEmpty(str))
                 {
                     try
                     {
@@ -559,7 +538,11 @@
             }
             else if (text == "璇诲彇绾㈠瀹濆垪琛ㄥけ璐�")
             {
-                str = "璇诲彇绾㈠瀹濆垪琛ㄥけ璐�"; //Language.StringByID(StringId.delFail);
+                str = Language.StringByID(StringId.huoqushujushibao);
+            }
+            else if (text == "娣诲姞澶辫触")
+            {
+                str = Language.StringByID(StringId.tianjiashibai);
             }
             else
             {
@@ -577,19 +560,19 @@
                             break;
                         case "10807":
                             {
-                                str = "绾㈠瀹濅笅閬ユ帶鍣ㄨ秴杩囨渶澶�(10涓�)鏁伴噺闄愬埗";// Language.StringByID(StringId.gatewayNotOnline);
+                                str = Language.StringByID(StringId.bunengchaoguo10);
 
 
                             }
                             break;
                         case "2":
                             {
-                                str = "绯荤粺缁存姢涓瓇璇风◢鍚庡啀璇晘";
+                                str = Language.StringByID(StringId.xitongweihuzhong);
                             }
                             break;
                         default:
                             {
-                                str ="鑾峰彇鏁版嵁澶辫触" ;// Language.StringByID(StringId.saveFail);
+                                str = Language.StringByID(StringId.huoqushujushibao);
                             }
                             break;
 
@@ -607,6 +590,79 @@
                 case 3: { } break;
             }
         }
+        /// <summary>
+        ///鎸囧畾鍒锋柊鐣岄潰
+        /// </summary>
+        /// <param name="strView">鍒ゆ柇瀛楃</param>
+        public static void RefreshView(string strView)
+        {
+            //鏍囪鏄笉鏄凡缁忓埛鏂板畬鎴�
+            bool if_bool = false;
+            for (int i = MainPage.BasePageView.ChildrenCount - 1; 0 <= i; i--)
+            {
+                var view = MainPage.BasePageView.GetChildren(i);
+                if (strView == "PirMain")
+                {
+                    if (view.GetType() == typeof(PirMain))
+                    {
+                        //寮哄埗杞崲瀵硅薄
+                        var f = (PirMain)view;
+                        //绉婚櫎鎵�鏈夊瓙鎺т欢
+                        f.RemoveAll();
+                        //閲嶆柊鍔犺浇UI
+                        f.Show();
+                        //閫�鍑篺or寰幆
+                        //break;
+                        if_bool = true;
+                    }
+                }
+                if (if_bool)
+                {
+                    //閫�鍑篺or寰幆
+                    break;
+                }
+            }
+        }
+        /// <summary>
+        /// 鎸囧畾鍒犻櫎鐣岄潰
+        /// </summary>
+        /// <param name="strView">鍒ゆ柇瀛楃</param>
+        public static void RemoveView(string strView)
+        {
+
+            for (int i = MainPage.BasePageView.ChildrenCount - 1; 0 <= i; i--)
+            {
+                var view = MainPage.BasePageView.GetChildren(i);
+                if (strView == "PirMain")
+                {
+                    if (view.GetType() == typeof(PirMain))
+                    {
+                        //绉婚櫎鐣岄潰
+                        view.RemoveFromParent();
+                    }
+
+                }
+                else if (strView == "AddControl")
+                {
+
+                    if (view.GetType() == typeof(AddControl))
+                    {
+                        //鎵惧埌绉婚櫎
+                        view.RemoveFromParent();
+                    }
+                }
+                else if (strView == "AddControlComplete")
+                {
+
+                    if (view.GetType() == typeof(AddControlComplete))
+                    {
+                        //鎵惧埌绉婚櫎
+                        view.RemoveFromParent();
+                    }
+                }
+
+            }
+        }
 
     }
     [Serializable]

--
Gitblit v1.8.0