From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 16 四月 2020 17:10:57 +0800
Subject: [PATCH] 请合并代码

---
 ZigbeeApp/Shared/Phone/Device/Logic/TimePoint.cs |  501 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 501 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/TimePoint.cs b/ZigbeeApp/Shared/Phone/Device/Logic/TimePoint.cs
new file mode 100755
index 0000000..877bc00
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/TimePoint.cs
@@ -0,0 +1,501 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Shared;
+using Shared.Common;
+using Shared.Phone;
+using Shared.Phone.Device.Logic.LogicView;
+using Shared.R;
+using ZigBee.Device;
+namespace Shared.Phone.Device.Logic
+{
+    public class TimePoint : FrameLayout
+    {
+        public TimePoint()
+        {
+            Tag = "Logic";
+        }
+        Dictionary<string, string> timeifon = new Dictionary<string, string>();
+        TimeView timeview = new TimeView
+        {
+            
+            Height = Application.GetRealHeight(550),
+            BackgroundColor =0x40ffffff,// ZigbeeColor.Current.LogicTopViewBackgroundColor,
+            Width = Application.GetRealWidth(1080),
+        };
+        /// <summary>
+        /// 鏍囪(鏂板姞/杩涙潵缂栬緫)
+        /// </summary>
+        public bool IsEditor;
+        /// <summary>
+        /// 璁板綍杩涙潵涔嬪墠鐨勫垎閽�
+        /// </summary>
+        public string StartMin;
+        /// <summary>
+        /// 璁板綍杩涙潵涔嬪墠鐨勫皬鏃�
+        /// </summary>
+        public string StartHour;
+        /// <summary>
+        /// 璁板綍杩涙潵涔嬪墠鐨勬椂闂�(寤舵椂/鎻愬墠)
+        /// </summary>
+        public string AdjustTime;
+        /// <summary>
+        /// 璁板綍鏃跺埢鐨勭被鍨�(鏃ュ嚭/鏃ヨ惤/姝e父)
+        /// </summary>
+        public string DateType;
+        public void Show(Dictionary<string, string> dictionary)
+        {
+
+            int TypeValue = int.Parse(dictionary["DateType"]);
+            timeifon.Add("Type", "0");
+            timeifon.Add("IsValid", "1");
+            timeifon.Add("RemindTime", "0");
+            timeifon.Add("EnDelay", "0");
+            timeifon.Add("DelayTime", "0");
+            timeifon.Add("DoorLockOpenDelayTime","0");
+            timeifon.Add("DateType", TypeValue.ToString());
+            DateType = dictionary["DateType"];
+
+            if (TypeValue == 0)
+            {
+                timeifon.Add("StartHour", dictionary["StartHour"]);
+                timeifon.Add("StartMin", dictionary["StartMin"]);
+                StartHour = dictionary["StartHour"];
+                StartMin = dictionary["StartMin"];
+            }
+            else
+            {
+                timeifon.Add("AdjustTime", dictionary["AdjustTime"]);
+                AdjustTime = dictionary["AdjustTime"];
+
+            }
+
+            #region  涓婇潰鐨勫竷灞�浠g爜
+            TopView view = new TopView();
+            this.AddChidren(view.TopRowView());
+            view.toptitleNameBtn.TextID = MyInternationalizationString.addtime;
+            view.clickBtn.MouseDownEventHandler += (sender, e) => { RemoveFromParent(); };
+            #endregion
+
+
+            var middle = new FrameLayout
+            {
+                Y = view.topRowLayout.Bottom,
+                Height = Application.GetRealHeight(Method.H - 184 - 260),
+                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+            };
+            this.AddChidren(middle);
+            SelectedTimeTypeView(middle, TypeValue);
+
+
+        }
+        /// <summary>
+        /// 鏄剧ず閫変腑鏃堕棿鐨勫鐞嗘柟娉�
+        /// </summary>
+        /// <param name="middle">Middle.</param>
+        /// <param name="TypeValue">Type value.</param>
+        void SelectedTimeTypeView(FrameLayout middle, int TypeValue)
+        {
+            middle.RemoveAll();
+            #region   -----绫诲瀷 鏃跺埢
+            TypeView typeView = new TypeView();
+            middle.AddChidren(typeView.Show());
+            typeView.textBtn.TextID = MyInternationalizationString.type;
+            typeView.titleBtn.Width = Application.GetRealWidth(630 + 70);
+            typeView.titleBtn.TextID = MyInternationalizationString.immediateexecution;
+            typeView.backBtn.Visible = false;
+
+
+            TypeView skView = new TypeView(); 
+            skView.frameLayout.Y = typeView.frameLayout.Bottom;
+            middle.AddChidren(skView.Show());
+            skView.textBtn.TextID = MyInternationalizationString.moment;
+            skView.clickviewBtn.MouseUpEventHandler += (sender, e) => {
+                TimeTypeView(middle, TypeValue);
+
+            };
+            #endregion
+
+            string textvalue = "";
+            switch (TypeValue)
+            {
+                case 0:
+                    {
+                        skView.titleBtn.Text = Language.StringByID(MyInternationalizationString.logiccustom);
+                        textvalue = timeifon["StartHour"] + ":" + timeifon["StartMin"];
+                    }
+                    break;
+                case 1:
+                    {
+                        skView.titleBtn.Text = Language.StringByID(MyInternationalizationString.sunrise);
+                        if (int.Parse(timeifon["AdjustTime"]) > 0)
+                        {
+                            textvalue = Language.StringByID(MyInternationalizationString.delayed) + timeifon["AdjustTime"] + Language.StringByID(MyInternationalizationString.logicminute);
+                        }
+                        else if (int.Parse(timeifon["AdjustTime"]) < 0)
+                        {
+                            textvalue = Language.StringByID(MyInternationalizationString.advance) + Math.Abs(int.Parse(timeifon["AdjustTime"])).ToString() + Language.StringByID(MyInternationalizationString.logicminute);
+                        }
+                        else
+                        {
+                            textvalue = Language.StringByID(MyInternationalizationString.nothing);
+                        }
+                    }
+                    break;
+                case 2:
+                    {
+                        skView.titleBtn.Text = Language.StringByID(MyInternationalizationString.sunset);
+                        if (int.Parse(timeifon["AdjustTime"]) > 0)
+                        {
+                            textvalue = Language.StringByID(MyInternationalizationString.delayed) + timeifon["AdjustTime"] + Language.StringByID(MyInternationalizationString.logicminute);
+                        }
+                        else if (int.Parse(timeifon["AdjustTime"]) < 0)
+                        {
+                            textvalue = Language.StringByID(MyInternationalizationString.advance) + Math.Abs(int.Parse(timeifon["AdjustTime"])).ToString() + Language.StringByID(MyInternationalizationString.logicminute);
+                        }
+                        else
+                        {
+                            textvalue = Language.StringByID(MyInternationalizationString.nothing);
+                        }
+                    }
+                    break;
+                case 3:
+                    {
+                        skView.titleBtn.Text = Language.StringByID(MyInternationalizationString.noon);
+                        if (int.Parse(timeifon["AdjustTime"]) > 0)
+                        {
+                            textvalue = Language.StringByID(MyInternationalizationString.delayed) + timeifon["AdjustTime"] + Language.StringByID(MyInternationalizationString.logicminute);
+                        }
+                        else if (int.Parse(timeifon["AdjustTime"]) < 0)
+                        {
+                            textvalue = Language.StringByID(MyInternationalizationString.advance) + Math.Abs(int.Parse(timeifon["AdjustTime"])).ToString() + Language.StringByID(MyInternationalizationString.logicminute);
+                        }
+                        else
+                        {
+                            textvalue = Language.StringByID(MyInternationalizationString.nothing);
+                        }
+                    }
+                    break;
+            }
+            if (TypeValue == 0)
+            {
+
+                #region   -----鑷畾涔夋椂闂�
+                skView.backBtn.UnSelectedImagePath = "ZigeeLogic/dropdown.png";
+                var rowTimeView = new FrameLayout
+                {
+                    Y = skView.frameLayout.Bottom,
+                    Height = Application.GetRealHeight(600),
+                };
+                middle.AddChidren(rowTimeView);
+                rowTimeView.AddChidren(timeview);
+                #endregion
+            }
+            else
+            {
+
+                #region   -----鎻愬墠/寤舵椂
+
+                TypeView delayView = new TypeView();
+                delayView.frameLayout.Y = skView.frameLayout.Bottom;
+                delayView.frameLayout.Height = Application.GetRealHeight(160+20);//澧為珮鏈�鍚庝竴琛岀殑楂樺害20;
+                middle.AddChidren(delayView.Show());
+                delayView.textBtn.TextID = MyInternationalizationString.Advancedelay;
+                delayView.titleBtn.Text = textvalue;
+                delayView.lineBtn.BackgroundColor = BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
+                delayView.clickviewBtn.MouseUpEventHandler += (sender, e) => {
+                    var mList = new List<string>();
+                    mList.Add(Language.StringByID(MyInternationalizationString.advance));
+                    mList.Add(Language.StringByID(MyInternationalizationString.nothing));
+                    mList.Add(Language.StringByID(MyInternationalizationString.delayed));
+                    var listValues = new List<string>();
+                    for (int i = 1; i < 61; i++)
+                    {
+                        if (i < 10)
+                        {
+                            var a = "0" + i.ToString();
+                            listValues.Add(a + " " + Language.StringByID(MyInternationalizationString.minute));
+                        }
+                        else
+                        {
+                            listValues.Add(i.ToString() + " " + Language.StringByID(MyInternationalizationString.minute));
+                        }
+
+                    }
+                    var mList2 = new List<List<string>>();
+                    mList2.Add(listValues);
+                    mList2.Add(new List<string> { "0" });
+                    mList2.Add(listValues);
+                    int timevalue = 0;
+                    int selectIndex = 1;
+                    if (int.Parse(timeifon["AdjustTime"]) > 0)
+                    {
+                        selectIndex = 2;
+                        timevalue = Math.Abs(int.Parse(timeifon["AdjustTime"]));
+                    }
+                    else if (int.Parse(timeifon["AdjustTime"]) < 0)
+                    {
+                        selectIndex = 0;
+                        timevalue = Math.Abs(int.Parse(timeifon["AdjustTime"]));
+                    }
+                    else
+                    {
+                        selectIndex = 1;
+                        timevalue = 1;
+                    }
+                    PickerView.ShowSecondary(mList, mList2, (selectIndex1, selectIndex2) =>
+                    {
+
+                        switch (selectIndex1)
+                        {
+                            case 0:
+                            case 2:
+                                {
+                                    timevalue = int.Parse(listValues[selectIndex2].Split(' ')[0]);
+                                    if (selectIndex1 == 0)
+                                    {
+                                        timevalue = timevalue * -1;
+                                    }
+                                }
+                                break;
+                            case 1:
+                                timevalue = 0;
+                                break;
+
+                        }
+
+                        if (timeifon.ContainsKey("StartHour"))
+                        {
+                            timeifon.Remove("StartHour");
+                        }
+                        if (timeifon.ContainsKey("StartMin"))
+                        {
+                            timeifon.Remove("StartMin");
+                        }
+                        if (timeifon.ContainsKey("AdjustTime"))
+                        {
+                            timeifon.Remove("AdjustTime");
+                        }
+                        timeifon.Add("AdjustTime", timevalue.ToString());
+                        UserView.HomePage.Instance.ScrollEnabled = false;
+                        SelectedTimeTypeView(middle, TypeValue);
+                    }, selectIndex, timevalue - 1, Language.StringByID(MyInternationalizationString.Advancedelay));
+
+                };
+
+                #endregion
+            }
+            //淇濆瓨
+            SaveView saveView = new SaveView();
+            saveView.frameLayout.Y = middle.Bottom;
+            this.AddChidren(saveView.Show());
+            saveView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                if (TypeValue == 0)
+                {
+                    if (timeifon.ContainsKey("AdjustTime"))
+                    {
+                        timeifon.Remove("AdjustTime");
+                    }
+                    if (timeifon.ContainsKey("StartHour"))
+                    {
+                        timeifon.Remove("StartHour");
+                    }
+                    if (timeifon.ContainsKey("StartMin"))
+                    {
+                        timeifon.Remove("StartMin");
+                    }
+                    timeifon.Add("StartHour", timeview.Hour.ToString());
+                    timeifon.Add("StartMin", timeview.Minute.ToString());
+                }
+
+                if (IsEditor)
+                {
+                    for (int i = 0; i < Common.Logic.CurrentLogic.Conditions.Count; i++)
+                    {
+                        if (Common.Logic.CurrentLogic.Conditions[i]["Type"] == "0")
+                        {
+
+                            if (Common.Logic.CurrentLogic.Conditions[i]["DateType"] == "0")
+                            {
+                                if (Common.Logic.CurrentLogic.Conditions[i]["StartHour"] == StartHour && Common.Logic.CurrentLogic.Conditions[i]["StartMin"] == StartMin)
+                                {
+                                    Common.Logic.CurrentLogic.Conditions.RemoveAt(i);
+                                    Common.Logic.CurrentLogic.Conditions.Insert(i, timeifon);
+                                }
+                            }
+                            else
+                            {
+                                if (Common.Logic.CurrentLogic.Conditions[i]["DateType"] == DateType && Common.Logic.CurrentLogic.Conditions[i]["AdjustTime"] == AdjustTime)
+                                {
+                                    Common.Logic.CurrentLogic.Conditions.RemoveAt(i);
+                                    Common.Logic.CurrentLogic.Conditions.Insert(i, timeifon);
+                                }
+                            }
+                        }
+                    }
+                    IsEditor = false;
+                }
+                else
+                {
+                    Common.Logic.CurrentLogic.Conditions.Add(timeifon);
+                }
+
+                var logicCommunalPage = new LogicCommunalPage { };
+                UserView.HomePage.Instance.AddChidren(logicCommunalPage);
+                UserView.HomePage.Instance.PageIndex += 1;
+                logicCommunalPage.Show(() => { });
+
+            };
+        }
+        /// <summary>
+        /// 澶勭悊閫変腑鏃堕棿绫诲瀷鐨勬柟娉�
+        /// </summary>
+        /// <param name="middle">Middle.</param>
+        void TimeTypeView(FrameLayout middle, int TypeValue)
+        {
+            UserView.HomePage.Instance.ScrollEnabled = false;
+            var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicTranslucentColor };
+            this.AddChidren(flMain);
+            #region  -------鍙栨秷   瀹屾垚
+            CompleteView completeView = new CompleteView();
+            flMain.AddChidren(completeView.Show(4));
+            completeView.Btntitle.TextID = MyInternationalizationString.type;
+            EventHandler<MouseEventArgs> clickcancel = (sender, e) =>
+            {
+                UserView.HomePage.Instance.ScrollEnabled = true;
+                flMain.RemoveFromParent();
+            };
+            flMain.MouseUpEventHandler += clickcancel;
+            completeView.Btncancel.MouseUpEventHandler += clickcancel;
+
+            #endregion
+            #region  -------鏃ュ嚭锛屾棩钀斤紝姝e崍锛岃嚜瀹氫箟
+            // 鏃ュ嚭
+            mFunView sunriseView = new mFunView();
+            sunriseView.frameLayout.Y = Application.GetRealHeight(140 + 20);
+            completeView.Show(4).AddChidren(sunriseView.Show());
+            sunriseView.titleBtn.TextID = MyInternationalizationString.sunrise;
+
+            //鏃ヨ惤
+            mFunView sunsetView = new mFunView();
+            sunsetView.frameLayout.Y = sunriseView.frameLayout.Bottom;
+            completeView.Show(4).AddChidren(sunsetView.Show());
+            sunsetView.titleBtn.TextID = MyInternationalizationString.sunset;
+
+           //姝e崍
+            mFunView noonView = new mFunView();
+            noonView.frameLayout.Y = sunsetView.frameLayout.Bottom;
+            completeView.Show(4).AddChidren(noonView.Show());
+            noonView.titleBtn.TextID = MyInternationalizationString.noon;
+
+            //鑷畾涔�
+            mFunView customView = new mFunView();
+            customView.frameLayout.Y = noonView.frameLayout.Bottom;
+            completeView.Show(4).AddChidren(customView.Show());
+            customView.titleBtn.TextID = MyInternationalizationString.logiccustom;
+            customView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
+
+            int value = -1;
+            sunriseView.clickviewBtn.MouseUpEventHandler += (sender, e) => {
+                sunriseView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
+                sunsetView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                noonView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                customView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                sunriseView.selectedIconBtn.Visible = true;
+                sunsetView.selectedIconBtn.Visible = false;
+                noonView.selectedIconBtn.Visible = false;
+                customView.selectedIconBtn.Visible = false;
+                value = 1;
+            };
+            sunsetView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
+             {
+                 sunriseView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                 sunsetView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
+                 noonView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                 customView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                 sunriseView.selectedIconBtn.Visible = false;
+                 sunsetView.selectedIconBtn.Visible = true;
+                 noonView.selectedIconBtn.Visible = false;
+                 customView.selectedIconBtn.Visible = false;
+                 value = 2;
+             };
+            noonView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                sunriseView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                sunsetView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                noonView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
+                customView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                sunriseView.selectedIconBtn.Visible = false;
+                sunsetView.selectedIconBtn.Visible = false;
+                noonView.selectedIconBtn.Visible = true;
+                customView.selectedIconBtn.Visible = false;
+                value = 3;
+            };
+            customView.clickviewBtn.MouseUpEventHandler +=(sender, e) =>
+            {
+                sunriseView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                sunsetView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                noonView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
+                customView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
+                sunriseView.selectedIconBtn.Visible = false;
+                sunsetView.selectedIconBtn.Visible = false;
+                noonView.selectedIconBtn.Visible = false;
+                customView.selectedIconBtn.Visible = true;
+                UserView.HomePage.Instance.ScrollEnabled = true;
+                flMain.RemoveFromParent();
+
+                if (timeifon.ContainsKey("StartHour"))
+                {
+                    timeifon.Remove("StartHour");
+                }
+                if (timeifon.ContainsKey("StartMin"))
+                {
+                    timeifon.Remove("StartMin");
+                }
+                if (timeifon.ContainsKey("AdjustTime"))
+                {
+                    timeifon.Remove("AdjustTime");
+                }
+                if (timeifon.ContainsKey("DateType"))
+                {
+                    timeifon.Remove("DateType");
+                }
+                timeifon.Add("DateType", "0");
+                timeifon.Add("StartHour", "12");
+                timeifon.Add("StartMin", "0");
+                SelectedTimeTypeView(middle, 0);
+            };
+            #endregion
+            completeView.Btncomplete.MouseUpEventHandler += (sender, e) =>
+            {
+                if (value == -1)
+                {
+                    return;
+                }
+                UserView.HomePage.Instance.ScrollEnabled = true;
+                flMain.RemoveFromParent();
+                if (timeifon.ContainsKey("StartHour"))
+                {
+                    timeifon.Remove("StartHour");
+                }
+                if (timeifon.ContainsKey("StartMin"))
+                {
+                    timeifon.Remove("StartMin");
+                }
+                if (timeifon.ContainsKey("AdjustTime"))
+                {
+                    timeifon.Remove("AdjustTime");
+                }
+                if (timeifon.ContainsKey("DateType"))
+                {
+                    timeifon.Remove("DateType");
+                }
+                timeifon.Add("DateType", value.ToString());
+                timeifon.Add("AdjustTime", "0");
+                SelectedTimeTypeView(middle, value);
+            };
+
+        }
+
+    }
+}

--
Gitblit v1.8.0