From 7a23bcdf0fe5f7442aa95ec2203cd5b6670a910d Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期四, 19 十二月 2019 17:59:33 +0800
Subject: [PATCH] 2019-12-19-1

---
 ZigbeeApp/GateWay.Droid/Assets/Language.ini                                |    1 
 ZigbeeApp/Shared/Phone/Device/Logic/Send.cs                                |   64 +++++++++++++++++++++
 ZigbeeApp/Home.Ios/Resources/Language.ini                                  |    1 
 ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs                        |    5 +
 ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs |   28 ++++++++-
 ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs                   |   60 ++++++++++++-------
 ZigbeeApp/Shared/R.cs                                                      |    1 
 ZigbeeApp/Shared/Phone/Device/Category/Category.cs                         |    6 +
 8 files changed, 137 insertions(+), 29 deletions(-)

diff --git a/ZigbeeApp/GateWay.Droid/Assets/Language.ini b/ZigbeeApp/GateWay.Droid/Assets/Language.ini
index 7ab8de0..5b3b596 100755
--- a/ZigbeeApp/GateWay.Droid/Assets/Language.ini
+++ b/ZigbeeApp/GateWay.Droid/Assets/Language.ini
@@ -607,6 +607,7 @@
 5370=璇烽�夋嫨鐢ㄦ埛锛屽惁鍒欐棤娉曟墽琛屼笅涓�姝�.
 5371=璇烽�夋嫨鍦烘櫙锛屽惁鍒欐棤娉曟墽琛屼笅涓�姝�.
 5372=璇烽�夋嫨瀹夐槻妯″紡锛屽惁鍒欐棤娉曟墽琛屼笅涓�姝�.
+5373=鑷姩鍖栧凡鎵ц.
 
 
 
diff --git a/ZigbeeApp/Home.Ios/Resources/Language.ini b/ZigbeeApp/Home.Ios/Resources/Language.ini
index de0af4d..2ec9073 100755
--- a/ZigbeeApp/Home.Ios/Resources/Language.ini
+++ b/ZigbeeApp/Home.Ios/Resources/Language.ini
@@ -607,6 +607,7 @@
 5370=璇烽�夋嫨鐢ㄦ埛锛屽惁鍒欐棤娉曟墽琛屼笅涓�姝�.
 5371=璇烽�夋嫨鍦烘櫙锛屽惁鍒欐棤娉曟墽琛屼笅涓�姝�.
 5372=璇烽�夋嫨瀹夐槻妯″紡锛屽惁鍒欐棤娉曟墽琛屼笅涓�姝�.
+5373=鑷姩鍖栧凡鎵ц.
 
 
 
diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
index 7cf94cd..49660bf 100644
--- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -722,6 +722,7 @@
             //new涓�涓柊閫昏緫瀵硅薄锛�
             Common.Logic.CurrentLogic = new Common.Logic();
             Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑
+            Common.Logic.CurrentLogic.LogicCustomPushText = Language.StringByID(MyInternationalizationString.defaulttext);
             Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.automation1);
             var addLogicPage = new Shared.Phone.Device.Logic.AddLogicPage();
             UserView.HomePage.Instance.AddChidren(addLogicPage);
@@ -1747,7 +1748,8 @@
         private  void ShowAutotion()
         {
 
-            functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+            functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
+           
             var bjFrameLayout = new FrameLayout
             {
                 Width = Application.GetRealWidth(1080 - 58),
@@ -1807,7 +1809,7 @@
             var logicScrolView = new VerticalRefreshLayout//VerticalScrolViewLayout
             {
                 Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30),
-                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+                BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
                 X = Application.GetRealWidth(58),
                 //Radius = (uint)Application.GetRealHeight(50),
                 Y = scenehorizontalScrol.Bottom,
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs
index a110acf..b44fd18 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/AddLogicPage.cs
@@ -925,8 +925,13 @@
                 {
                     LocationConditionsInfo.Remove("IsValid");
                 }
+                if (LocationConditionsInfo.ContainsKey("WhoSiteUId"))
+                {
+                    LocationConditionsInfo.Remove("WhoSiteUId");
+                }
                 LocationConditionsInfo.Add("Type", "7");
                 LocationConditionsInfo.Add("IsValid", "1");
+                LocationConditionsInfo.Add("WhoSiteUId", Config.Instance.Guid);
                 if (leavehomeSelected.Visible)
                 {
                     if (LocationConditionsInfo.ContainsKey("AtHome"))
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs
index 8c63dd5..2b0054e 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicCommunalPage.cs
@@ -18,7 +18,7 @@
             Tag = "LockLogic";
         }
         EditText logicTextBox;
-        public void Show(Action action)
+        public async void Show(Action action)
         {
 
             #region  鏈�涓婇潰鐨勫竷灞�浠g爜
@@ -283,7 +283,8 @@
                                 var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return obj.DeviceAddr == conditions["MacAddr"] && obj.DeviceEpoint.ToString() == conditions["Epoint"]; });
                                 if (deviceinof == null)
                                 {
-                                    continue;
+                                    deviceinof = new ZigBee.Device.CommonDevice();
+                                    //continue;
                                 }
                                 ///鏄剧ず璁惧鍚嶇О
                                 var btndevice = new Button
@@ -554,7 +555,8 @@
                                 var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return ((obj.DeviceAddr == obj1) && (obj.DeviceEpoint.ToString() == obj2)); });
                                 if (deviceinof == null)
                                 {
-                                    continue;
+                                    deviceinof = new ZigBee.Device.CommonDevice();
+                                    //continue;
                                 }
 
                                 ///璁惧鍚嶇ОButton
@@ -864,12 +866,30 @@
                         case 2:
                             {
 
+                                //鍦ㄦ湰鍦版煡鎵捐鍦烘櫙;
                                 var sceneinof = Common.Room.AllRoomSceneUIList.Find((obj) => { return obj.Id.ToString() == actions["DeviceAddr"].ToString(); });
+                                //鏈湴娌℃湁瀛樺湪;
                                 if (sceneinof == null)
                                 {
-                                    continue;
+                                    //鍦ㄧ綉鍏虫煡鎵捐鍦烘櫙;
+                                    sceneinof = await Send.GetScene(int.Parse(actions["DeviceAddr"].ToString()));
+                                    //缃戝叧娌℃湁瀛樺湪;
+                                    if (sceneinof == null)
+                                    {
+
+                                        //娉ㄨВ:鏈湴鍜岀綉鍏抽兘涓嶅瓨鍦ㄨ鍦烘櫙,鐣岄潰灏嗕笉浼氭樉绀鸿鍦烘櫙;
+                                        //sceneinof = new SceneUI();
+                                        //绉婚櫎璇ュ満鏅暟鎹�;
+                                        Common.Logic.CurrentLogic.Actions.Remove(actions);
+                                        //绉婚櫎璇ュ満鏅鍥�;
+                                        devicesFrameLayout.RemoveFromParent();
+                                        continue;
+                                    }
                                 }
 
+
+
+
                                 actionsIcon.UnSelectedImagePath = "ZigeeLogic/scene.png";
                                 ///璁惧鍚嶇ОButton
                                 var btndevicename = new Button
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
index be44d89..a8167b2 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
@@ -18,7 +18,7 @@
             Tag = "Logic";
         }
         EditText logicTextBox;
-        public void Show(Action action)
+        public async void Show(Action action)
         {
             
             #region  鏈�涓婇潰鐨勫竷灞�浠g爜
@@ -497,7 +497,8 @@
                                 var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return obj.DeviceAddr == conditions["MacAddr"] && obj.DeviceEpoint.ToString() == conditions["Epoint"]; });
                                 if (deviceinof == null)
                                 {
-                                    continue;
+                                    deviceinof = new ZigBee.Device.CommonDevice();
+                                    //continue;
                                 }
                                 ///鏄剧ず璁惧鍚嶇О
                                 var btndevice = new Button
@@ -1195,9 +1196,11 @@
                                 var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return ((obj.DeviceAddr == obj1) && (obj.DeviceEpoint.ToString() == obj2)); });
                                 if (deviceinof == null)
                                 {
-                                    continue;
+                                    
+                                    deviceinof = new ZigBee.Device.CommonDevice();
+                                    // continue;
                                 }
-
+                               
                                 ///璁惧鍚嶇ОButton
                                 var btndevicename = new Button
                                 {
@@ -1503,11 +1506,25 @@
                             break;
                         case 2:
                             {
-
+                                //鍦ㄦ湰鍦版煡鎵捐鍦烘櫙;
                                 var sceneinof = Common.Room.AllRoomSceneUIList.Find((obj) => { return obj.Id.ToString() == actions["DeviceAddr"].ToString(); });
+                                //鏈湴娌℃湁瀛樺湪;
                                 if (sceneinof == null)
                                 {
-                                    continue;
+                                    //鍦ㄧ綉鍏虫煡鎵捐鍦烘櫙;
+                                    sceneinof =await Send.GetScene(int.Parse(actions["DeviceAddr"].ToString()));
+                                    //缃戝叧娌℃湁瀛樺湪;
+                                    if (sceneinof == null)
+                                    {
+
+                                        //娉ㄨВ:鏈湴鍜岀綉鍏抽兘涓嶅瓨鍦ㄨ鍦烘櫙,鐣岄潰灏嗕笉浼氭樉绀鸿鍦烘櫙;
+                                        //sceneinof = new SceneUI();
+                                        //绉婚櫎璇ュ満鏅暟鎹�;
+                                        Common.Logic.CurrentLogic.Actions.Remove(actions);
+                                        //绉婚櫎璇ュ満鏅鍥�;
+                                        devicesFrameLayout.RemoveFromParent();
+                                        continue;
+                                    }
                                 }
 
                                 actionsIcon.UnSelectedImagePath = "ZigeeLogic/scene.png";
@@ -1539,7 +1556,6 @@
                                 Common.Room room = new Common.Room();
                                 btnregionname.Text = room.GetRoomNameBySceneId(sceneinof.Id);
                                 //Send.RoomNmae(btnregionname, deviceinof);
-
 
 
                             }
@@ -1752,6 +1768,7 @@
                             if (e1)
                             {
                                 Common.Logic.CurrentLogic.Actions.Remove(actions);
+                                // devicesFrameLayout.RemoveFromParent();
                                 var logicCommunalPage = new LogicCommunalPage();
                                 UserView.HomePage.Instance.AddChidren(logicCommunalPage);
                                 UserView.HomePage.Instance.PageIndex += 1;
@@ -1888,23 +1905,11 @@
                 Gravity = Gravity.CenterVertical,
             };
             pushswitchRowlayout.AddChidren(btnswitch);
-            btnswitch.MouseUpEventHandler += (sender1, e1) =>
-            {
-                btnswitch.IsSelected = !btnswitch.IsSelected;
-                if (btnswitch.IsSelected)
-                {
-
-                }
-                else
-                {
-
-                }
-            };
 
 
             var custompushFrameLayout = new FrameLayout
             {
-                Height = Application.GetRealHeight(160),
+                Height = Application.GetRealHeight(0),
                 BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
             };
             middle.AddChidren(custompushFrameLayout);
@@ -1952,7 +1957,18 @@
             btncustompush.MouseUpEventHandler += customclick;
             custompushback.MouseUpEventHandler += customclick;
             custompushRowLayout.MouseUpEventHandler += customclick;
-
+            btnswitch.MouseUpEventHandler += (sender1, e1) =>
+            {
+                btnswitch.IsSelected = !btnswitch.IsSelected;
+                if (btnswitch.IsSelected)
+                {
+                    custompushFrameLayout.Height = Application.GetRealHeight(160);
+                }
+                else
+                {
+                    custompushFrameLayout.Height = Application.GetRealHeight(0);
+                }
+            };
             #endregion
 
 
@@ -2523,7 +2539,7 @@
 
         }
         /// <summary>
-        /// 闂幇鎻愮ず妗嗙殑鏂规硶
+        /// 闂幇寮忔彁绀烘鐨勬柟娉�
         /// </summary>
         /// <param name="tipText">鎻愮ず鍐呭</param>
         /// <param name="second">鍋滅暀鏃堕棿鍗曚綅涓簊</param>
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
index d7fa0b9..e82a359 100644
--- a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
@@ -380,6 +380,16 @@
                                 };
                                 conditions.Add(sInfo);
                                 break;
+                            case 7:
+                                var diliInfo = new JObject
+                                {
+                                    ["Type"] = int.Parse(dictionary["Type"]),
+                                    ["IsValid"] = int.Parse(dictionary["IsValid"]),
+                                    ["AtHome"] = int.Parse(dictionary["AtHome"]),
+                                    ["WhoSiteUId"] =dictionary["WhoSiteUId"],
+                                };
+                                conditions.Add(diliInfo);
+                                break;
                         }
                     }
                     var actions = new JArray();
@@ -735,7 +745,59 @@
             //return list1;
         }
 
-       
+
+        /// <summary>
+        /// 鑾峰彇鍦烘櫙淇℃伅鐨勬柟娉�
+        /// </summary>
+        /// <param name="SceneId"></param>
+        /// <returns></returns>
+        public static async System.Threading.Tasks.Task<SceneUI> GetScene(int SceneId)
+        {
+            SceneUI sceneui = null;
+            return await System.Threading.Tasks.Task.Run(async () =>
+            {
+                Action<string, string> action = (topic, data) =>
+                {
+                    var gatewayID = topic.Split('/')[0];
+                    var jObjectdata = JObject.Parse(data);
+                    if (jObjectdata == null)
+                    {
+                        return;
+                    }
+
+                    if (topic == $"{gatewayID}/Scene/GetDeviceList_Respon")
+                    {
+                        sceneui = new SceneUI();
+                        sceneui.Name = jObjectdata["Data"]["ScenesName"].ToString();
+                        sceneui.Id = int.Parse(jObjectdata["Data"]["ScenesId"].ToString());
+                        
+                    }
+                };
+                var mainGateWay = ZbGateway.MainGateWay;
+                if (mainGateWay == null)
+                {
+                    Console.WriteLine("娌℃湁涓荤綉鍏�");
+                    return sceneui;
+                }
+                mainGateWay.GwResDataAction += action;
+
+                var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 806 } };
+                var jObjectdata1 = new JObject { { "ScenesId", SceneId } };
+                jObject.Add("Data", jObjectdata1);
+                mainGateWay?.Send("Scene/GetDeviceList", jObject.ToString());
+                var dateTime = DateTime.Now;
+                while ((DateTime.Now - dateTime).TotalMilliseconds < 3 * 1000)
+                {
+                    await System.Threading.Tasks.Task.Delay(100);
+                    if (sceneui!=null)
+                    {
+                        break;
+                    }
+                }
+                ZbGateway.MainGateWay.GwResDataAction -= action;
+                return sceneui;
+            });
+        }
         #endregion
 
         #region  ----鑾峰彇闂ㄩ攣
diff --git a/ZigbeeApp/Shared/R.cs b/ZigbeeApp/Shared/R.cs
index 4c348f8..6d23c75 100644
--- a/ZigbeeApp/Shared/R.cs
+++ b/ZigbeeApp/Shared/R.cs
@@ -577,6 +577,7 @@
         public readonly static int usertip = 5370;
         public readonly static int scenetip = 5371;
         public readonly static int securitytip = 5372;
+        public readonly static int defaulttext = 5373;
 
         #region 鐧诲綍娉ㄥ唽
         /// <summary>

--
Gitblit v1.8.0