From 2ec9898778d3beda89278e2a53ac0e68b3035d29 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 01 七月 2020 15:06:24 +0800
Subject: [PATCH] 2020-7-1-2

---
 ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs |  339 +++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 226 insertions(+), 113 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
old mode 100755
new mode 100644
index 69a957f..d937307
--- a/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
@@ -23,6 +23,7 @@
         {
 
             #region  View甯冨眬浠g爜
+            UserView.HomePage.Instance.ScrollEnabled = false;//閿佷綇宸︽粦
             TopView view = new TopView();
             this.AddChidren(view.TopRowView());
             if (Common.Logic.CurrentLogic.LogicId != 0)
@@ -35,13 +36,14 @@
             }
             view.clickBtn.MouseDownEventHandler += (sender, e) =>
             {
+               // UserView.HomePage.Instance.ScrollEnabled = true;//鎭㈠宸︽粦
                 action();
                 RemoveFromParent();
             };
             var middle = new VerticalScrolViewLayout
             {
                 Y = view.topRowLayout.Bottom,
-                Height = Application.GetRealHeight(1920 - 184-180),
+                Height = Application.GetRealHeight(Method.H - 184-180),
                 BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
             };
             this.AddChidren(middle);
@@ -179,6 +181,9 @@
                 {
                     SelectedDeviceView selecteddevice = new SelectedDeviceView();
                     selecteddevice.Show(middle);
+                    selecteddevice.stateRow.AddRightView(selecteddevice.edit);
+                    selecteddevice.stateRow.AddRightView(selecteddevice.del);
+
                     var Type = int.Parse(ListConditions[i]["Type"]);
                     var conditions = ListConditions[i];
                     string name = "";
@@ -275,7 +280,7 @@
                         case 1:
                             {
                                 var deviceinof = Method.GetCommonDevice(conditions["MacAddr"], conditions["Epoint"]);
-                                name = deviceinof.DeviceEpointName;
+                                name = LocalDevice.Current.GetDeviceEpointName(deviceinof);
                                 selecteddevice.regionNameBtn.Visible = true;
                                 Method.RoomNmae(selecteddevice.regionNameBtn, deviceinof);
 
@@ -307,11 +312,7 @@
                                             {
                                                 case 13:
                                                     {
-                                                        if (intvalue == "1")
-                                                        {
-                                                            state=Language.StringByID( MyInternationalizationString.someone);
-                                                        }
-                                                        else
+                                                        if (conditions.ContainsKey("IgnoreTime"))
                                                         {
                                                             int minute = int.Parse(conditions["IgnoreTime"]) / 60;
                                                             int second = int.Parse(conditions["IgnoreTime"]) % 60;
@@ -335,48 +336,55 @@
 
                                                             }
                                                         }
+                                                        else
+                                                        {
+                                                            state = Language.StringByID(MyInternationalizationString.someone);
+                                                        }
+
                                                     }
                                                     break;
                                                 case 21:
                                                 case 22:
                                                     {
-                                                        if (intvalue == "1")
+                                                        if (conditions.ContainsKey("IgnoreTime"))
                                                         {
-                                                            state =Language.StringByID( MyInternationalizationString.logicopen);
-                                                        }
-                                                        else
-                                                        {
-                                                            if (conditions.ContainsKey("IgnoreTime"))
+
+                                                            int minute = int.Parse(conditions["IgnoreTime"]) / 60;
+                                                            int second = int.Parse(conditions["IgnoreTime"]) % 60;
+                                                            if (minute != 0 && second != 0)
                                                             {
-
-                                                                int minute = int.Parse(conditions["IgnoreTime"]) / 60;
-                                                                int second = int.Parse(conditions["IgnoreTime"]) % 60;
-                                                                if (minute != 0 && second != 0)
-                                                                {
-                                                                    state = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime);
-
-                                                                }
-                                                                else
-                                                                {
-                                                                    if (minute == 0 && second != 0)
-                                                                    {
-                                                                        state = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime);
-
-                                                                    }
-                                                                    if (minute != 0 && second == 0)
-                                                                    {
-                                                                        state = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.closetime);
-
-                                                                    }
-
-                                                                }
+                                                                state = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime);
 
                                                             }
                                                             else
                                                             {
-                                                                state =Language.StringByID(MyInternationalizationString.logicclose);
+                                                                if (minute == 0 && second != 0)
+                                                                {
+                                                                    state = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime);
+
+                                                                }
+                                                                if (minute != 0 && second == 0)
+                                                                {
+                                                                    state = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.closetime);
+
+                                                                }
+
                                                             }
+
                                                         }
+                                                        else
+                                                        {
+                                                            if (intvalue == "1")
+                                                            {
+                                                                state = Language.StringByID(MyInternationalizationString.logicopen);
+                                                            }
+                                                            else
+                                                            {
+                                                                state = Language.StringByID(MyInternationalizationString.logicclose);
+                                                            }
+
+                                                        }
+
                                                     }
                                                     break;
                                                 case 40:
@@ -418,6 +426,44 @@
 
                                                     }
                                                     break;
+                                                case 541:
+                                                    {
+                                                        if (conditions["Cluster_ID"] == "1024") {
+                                                            state = Language.StringByID(MyInternationalizationString.ambientLight)+"<"+conditions["AttriButeData1"]+"lux"+ Language.StringByID(MyInternationalizationString.hour1);
+                                                        }
+                                                        else
+                                                        {
+                                                            if (conditions.ContainsKey("IgnoreTime"))
+                                                            {
+                                                                int minute = int.Parse(conditions["IgnoreTime"]) / 60;
+                                                                int second = int.Parse(conditions["IgnoreTime"]) % 60;
+                                                                if (minute != 0 && second != 0)
+                                                                {
+                                                                    state = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
+
+                                                                }
+                                                                else
+                                                                {
+                                                                    if (minute == 0 && second != 0)
+                                                                    {
+                                                                        state = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
+
+                                                                    }
+                                                                    if (minute != 0 && second == 0)
+                                                                    {
+                                                                        state = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.unattendedtime1);
+
+                                                                    }
+
+                                                                }
+                                                            }
+                                                            else
+                                                            {
+                                                                state = Language.StringByID(MyInternationalizationString.someone);
+                                                            }
+                                                        }
+                                                    }
+                                                    break;
                                                 default:
                                                     {
                                                         if (intvalue == "1")
@@ -445,7 +491,7 @@
                                                 {
                                                     if (Common.Logic.CurrentLogic.Accounts[a]["UserId"] == conditions["AttriButeData2"])
                                                     {
-                                                        state = Common.Logic.CurrentLogic.Accounts[a]["Account"];
+                                                        state = Common.Logic.CurrentLogic.Accounts[a]["AccountName"];
                                                         break;
 
                                                     }
@@ -494,16 +540,18 @@
                                                         s = "鈮�";
                                                     }
                                                     break;
-                                            }
+                                            }
+                                            ///杞崲娓╁害鍊�/100
+                                            string srtValue = (int.Parse(conditions["AttriButeData1"]) / 100).ToString();
                                             if (conditions["Cluster_ID"] == "1026")
                                             {
                                                 icon = "ZigeeLogic/temperature.png";
-                                                state = s + conditions["AttriButeData1"] + "鈩�";
+                                                state = s + srtValue + "鈩�";
                                             }
                                             else
                                             {
                                                 icon = "ZigeeLogic/humidity.png";
-                                                state = s + conditions["AttriButeData1"] + "%";
+                                                state = s + srtValue + "%";
                                             }
                                             break;
 
@@ -556,11 +604,11 @@
                                     {
                                         if (conditions["AtHome"] == "1")
                                         {
-                                            state = Language.StringByID(MyInternationalizationString.athome) + radius["Radius"] + "绫�";
+                                            state = Language.StringByID(MyInternationalizationString.athome) + radius["Radius"] + Language.StringByID(MyInternationalizationString.mi);
                                         }
                                         else
                                         {
-                                            state = Language.StringByID(MyInternationalizationString.leavehome) + radius["Radius"] + "绫�";
+                                            state = Language.StringByID(MyInternationalizationString.leavehome) + radius["Radius"] + Language.StringByID(MyInternationalizationString.mi);
                                         }
                                     }
                                 }
@@ -583,6 +631,7 @@
                         selecteddevice.selecetddevicestateBtn.Text = state;
                     }
                     ///缂栬緫
+                    selecteddevice.edit.Tag = i.ToString();
                     selecteddevice.edit.MouseUpEventHandler += (sender, e) =>
                     {
                         switch (Type)
@@ -615,7 +664,7 @@
                                     {
                                         var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
                                         this.AddChidren(flMain);
-                                        CurrentDeviceState.CurrentDeviceView(flMain, deviceinof, true, "condition_logic");
+                                        CurrentDeviceState.CurrentDeviceView(flMain, deviceinof, true, "condition_logic",int.Parse(selecteddevice.edit.Tag.ToString()));
                                     }
                                     else
                                     {
@@ -655,10 +704,11 @@
                         alert.ConfirmClickEvent += () =>
                         {
                             Common.Logic.CurrentLogic.Conditions.Remove(conditions);
-                            var logicCommunalPage = new LogicCommunalPage();
-                            UserView.HomePage.Instance.AddChidren(logicCommunalPage);
-                            UserView.HomePage.Instance.PageIndex += 1;
-                            logicCommunalPage.Show(() => { });
+                            selecteddevice.selecetdFrameLayout.RemoveFromParent();
+                            //var logicCommunalPage = new LogicCommunalPage();
+                            //UserView.HomePage.Instance.AddChidren(logicCommunalPage);
+                            //UserView.HomePage.Instance.PageIndex += 1;
+                            //logicCommunalPage.Show(() => { });
                         };
 
                     };
@@ -679,10 +729,7 @@
             addactionview.clickBtn.MouseUpEventHandler+= (sender, e) =>
             {
                 Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim();
-                var deviceTarget = new DeviceTarget();
-                UserView.HomePage.Instance.AddChidren(deviceTarget);
-                UserView.HomePage.Instance.PageIndex += 1;
-                deviceTarget.Show();
+                Method.View(IfString.Action_Logic,IfString.Action_LogicScene);
             };
 
             List<Dictionary<string, object>> ListActions = new List<Dictionary<string, object>>();
@@ -701,10 +748,7 @@
                     addflview.clickBtn.MouseUpEventHandler += (sender, e) =>
                     {
                         Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim();
-                        var deviceTarget = new DeviceTarget();
-                        UserView.HomePage.Instance.AddChidren(deviceTarget);
-                        UserView.HomePage.Instance.PageIndex += 1;
-                        deviceTarget.Show();
+                        Method.View(IfString.Action_Logic, IfString.Action_LogicScene);
                     };
                 }
                 else
@@ -721,13 +765,13 @@
                     switch (linkType)
                     {
                         case 0:
+                        case 8:
                             {
 
                                 var deviceinof = Method.GetCommonDevice(actions["DeviceAddr"].ToString(), actions["Epoint"].ToString());
-                                name = deviceinof.DeviceEpointName;
+                                name = LocalDevice.Current.GetDeviceEpointName(deviceinof);
                                 actiondevice.regionNameBtn.Visible = true;
                                 Method.RoomNmae(actiondevice.regionNameBtn, deviceinof);
-
                                 switch (deviceinof.Type)
                                 {
                                     case DeviceType.OnOffOutput:
@@ -968,16 +1012,108 @@
                                             }
                                         }
                                         break;
+                                    case DeviceType.DoorLock:
+                                        {
+                                            //闂ㄩ攣鐗规畩
+                                            icon = "ZigeeLogic/doorlock.png";
+                                            if (actions["PassData"].ToString() == "055704010112")
+                                            {
+                                                state = Language.StringByID(MyInternationalizationString.logicopen);
+                                            }
+                                            else
+                                            {
+                                                state = Language.StringByID(MyInternationalizationString.logicclose);
+                                            }
+                                        }
+                                        break;
+                                    case DeviceType.ColorTemperatureLight:
+                                        {
+                                            icon = "ZigeeLogic/nightLight.png";
+                                            var taskList = actions["TaskList"] as List<Dictionary<string, string>>;
+                                            if (taskList == null)
+                                            {
+                                                continue;
+                                            }
+                                            foreach (var tasks in taskList)
+                                            {
+                                                switch (tasks["TaskType"])
+                                                {
+                                                    case "1":
+                                                        {
+                                                            if (tasks["Data1"] == "0")
+                                                            {
+                                                                state += Language.StringByID(MyInternationalizationString.close) + ";";
+                                                            }
+                                                            else
+                                                            {
+                                                                state += Language.StringByID(MyInternationalizationString.open) + ";";
+                                                            }
+                                                        }
+                                                        break;
 
+                                                }
+                                            }
+                                            foreach (var tasks in taskList)
+                                            {
+                                                switch (tasks["TaskType"])
+                                                {
+                                                   
+                                                    case "3":
+                                                        {
+                                                            var intvalue = int.Parse(tasks["Data1"]);
+                                                            var lightbrightnessvalue = (intvalue * 100) / 254;
+                                                            state += Language.StringByID(MyInternationalizationString.brightness) + lightbrightnessvalue.ToString() + "%;";
+                                                        }
+                                                        break;
+                                                
+                                                }
+                                            }
+                                            foreach (var tasks in taskList)
+                                            {
+                                                switch (tasks["TaskType"])
+                                                {
+                                                  
+                                                    case "7":
+                                                        {
+                                                            if (tasks["Data1"] == "0")
+                                                            {
+                                                                state += Language.StringByID(MyInternationalizationString.buzzer) + Language.StringByID(MyInternationalizationString.close) + ";";
+                                                            }
+                                                            else
+                                                            {
+                                                                state += Language.StringByID(MyInternationalizationString.buzzer) + Language.StringByID(MyInternationalizationString.open) + ";";
+                                                            }
+                                                        }
+                                                        break;
+                                                    
+                                                }
+                                            }
+                                            foreach (var tasks in taskList)
+                                            {
+                                                switch (tasks["TaskType"])
+                                                {
+                                                  
+                                                    case "8":
+                                                        {
+                                                            var intvalue = int.Parse(tasks["Data1"]);
+                                                            var colorTemperatureValue = 1000000/(intvalue *100);
+                                                            state += Language.StringByID(MyInternationalizationString.colorTemperature) + colorTemperatureValue.ToString() + "K";
+                                                        }
+                                                        break;
+                                                }
+                                            }
+
+                                            state=state.TrimEnd(';');//鍘绘帀鏈�鍚庨偅涓�";"
+                                        }
+                                        break;
                                 }
-
 
                             }
                             break;
                         case 2:
                             {
-                                //鍦ㄦ湰鍦版煡鎵捐鍦烘櫙;
-                                var sceneinof = UserCenter.HdlSceneLogic.Current.GetSceneUIBySceneId(Convert.ToInt32(actions["DeviceAddr"].ToString()));
+                               //鍦ㄦ湰鍦版煡鎵捐鍦烘櫙;
+                               var sceneinof = UserCenter.HdlSceneLogic.Current.GetSceneUIBySceneId(Convert.ToInt32(actions["DeviceAddr"].ToString()));
                                 //鏈湴娌℃湁瀛樺湪;
                                 if (sceneinof == null)
                                 {
@@ -1052,7 +1188,7 @@
                                 var seconds = delaytimevalue % 60;
 
                                 icon = "ZigeeLogic/delay.png";
-                               
+
                                 if (Minutes != 0)
                                 {
                                     if (seconds == 0)
@@ -1073,6 +1209,13 @@
                             };
                             break;
                     }
+
+                    if (linkType != 2)
+                    {
+                        actiondevice.stateRow.AddRightView(actiondevice.edit);
+                    }
+                    actiondevice.stateRow.AddRightView(actiondevice.del);
+
                     if (linkType == 6 || linkType == 7)
                     {
                         actiondevice.ordinaryBtn.Visible = true;
@@ -1089,17 +1232,28 @@
                         actiondevice.selecetddevicestateBtn.Text = state;
                     }
                     ///缂栬緫
+                    actiondevice.edit.Tag = i.ToString();
                     actiondevice.edit.MouseUpEventHandler += (sender, e) =>
                     {
                         switch (linkType)
                         {
-
+                            case 8:
                             case 0:
                                 {
                                     var deviceinof = Method.GetCommonDevice(actions["DeviceAddr"].ToString(), actions["Epoint"].ToString());
-                                    var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
-                                    this.AddChidren(flMain);
-                                    CurrentDeviceState.CurrentDeviceView(flMain, deviceinof, true, "action_logic");
+                                    if (deviceinof.Type != DeviceType.ColorTemperatureLight)
+                                    {
+                                        var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
+                                        this.AddChidren(flMain);
+                                        CurrentDeviceState.CurrentDeviceView(flMain, deviceinof, true, "action_logic",int.Parse(actiondevice.edit.Tag.ToString()));
+                                    }
+                                    else
+                                    {
+                                        var nightlight = new Nightlight();
+                                        UserView.HomePage.Instance.AddChidren(nightlight);
+                                        UserView.HomePage.Instance.PageIndex += 1;
+                                        nightlight.Show(deviceinof, true, "logic", actions);
+                                    }
                                 }
                                 break;
                             case 6:
@@ -1119,6 +1273,7 @@
                                     delayTime.Show(int.Parse(actiondevice.edit.Tag.ToString()), true);
                                 }
                                 break;
+                               
                         }
                     };
                     ///鍒犻櫎鎺т欢
@@ -1132,11 +1287,12 @@
                         alert.ConfirmClickEvent += () =>
                         {
                             Common.Logic.CurrentLogic.Actions.Remove(actions);
+                            actiondevice.selecetdFrameLayout.RemoveFromParent();
                             // devicesFrameLayout.RemoveFromParent();
-                            var logicCommunalPage = new LogicCommunalPage();
-                            UserView.HomePage.Instance.AddChidren(logicCommunalPage);
-                            UserView.HomePage.Instance.PageIndex += 1;
-                            logicCommunalPage.Show(() => { });
+                            //var logicCommunalPage = new LogicCommunalPage();
+                            //UserView.HomePage.Instance.AddChidren(logicCommunalPage);
+                            //UserView.HomePage.Instance.PageIndex += 1;
+                            //logicCommunalPage.Show(() => { });
                         };
 
                     };
@@ -1305,50 +1461,7 @@
             };
 
         }
-        /// <summary>
-        /// 闂幇寮忔彁绀烘鐨勬柟娉�
-        /// </summary>
-        /// <param name="tipText">鎻愮ず鍐呭</param>
-        /// <param name="second">鍋滅暀鏃堕棿鍗曚綅涓簊</param>
-        public void TipView(string tipText, int second = 1)
-        {
-
-            var frameLayout = new FrameLayout { BackgroundColor = 0x50000000 };
-            this.AddChidren(frameLayout);
-
-            var btn = new Button
-            {
-                Gravity = Gravity.Center,
-                Text = tipText,
-                BackgroundColor = 0xff1f1f1f,
-                Width = Application.GetRealWidth(500),
-                Height = Application.GetRealHeight(100),
-                Radius = (uint)Application.GetRealHeight(50),
-            };
-            frameLayout.AddChidren(btn);
-
-            var dateTime1 = DateTime.Now;
-            new System.Threading.Thread(() =>
-            {
-                Application.RunOnMainThread(() =>
-                {
-                    while (true)
-                    {
-                        if ((DateTime.Now - dateTime1).TotalMilliseconds > second * 1000)
-                        {
-                            //榛樿涓�绉掑叧闂�
-                            frameLayout.RemoveFromParent();
-                            break;
-                        }
-                    }
-                });
-            })
-            { IsBackground = true }.Start();
-
-        }
-
-
-      
+    
 
     }
 }

--
Gitblit v1.8.0