gxc
2019-10-29 081ea8d273048fd03756718ac6fb48a3c09218e9
ZigbeeApp/Shared/Phone/Device/Logic/DelayTime.cs
@@ -16,77 +16,214 @@
        {
            Tag = "Logic";
        }
        Dictionary<string, string> timeConditionsInfo = new Dictionary<string, string>();
        public void Show()
        public void Show(int isInt=0, bool edit=false)
        {
            this.BackgroundColor = ZigbeeColor.Current.LogicTopViewBackgroundColor;
            var topFrameLayout = new FrameLayout
            #region  最上面的布局代码
            var topRowLayout = new RowLayout
            {
                Height = Application.GetRealHeight(140),
                Y = Application.GetRealHeight(80),
                BackgroundColor = ZigbeeColor.Current.LogicTopBackgroundColor,
                Height = Application.GetRealHeight(184),
                LineColor = ZigbeeColor.Current.LogicRowLayoutTopLineColor,
            };
            AddChidren(topFrameLayout);
            this.AddChidren(topRowLayout);
            var titleName = new Button
            {
                Text = "添加延时",
                TextSize = 17,
                TextSize = 16,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                TextAlignment = TextAlignment.CenterLeft,
                X = Application.GetRealWidth(176),
                Width = Application.GetRealWidth(400),
                Height = Application.GetRealHeight(69),
                Y = Application.GetRealHeight(92),
                TextID = MyInternationalizationString.adddelay,
            };
            topFrameLayout.AddChidren(titleName);
            topRowLayout.AddChidren(titleName);
            var back = new Button
            var clickBtn = new Button
            {
                Width = Application.GetRealWidth(110),
                Height = Application.GetRealHeight(110),
                X = Application.GetRealWidth(20),
                Gravity = Gravity.CenterVertical,
                UnSelectedImagePath = "ZigeeLogic/Back.png",
                Width = Application.GetRealWidth(81 + 51),
                Height = Application.GetRealHeight(58 + 40),
                Y = Application.GetRealHeight(98 - 40),
            };
            topFrameLayout.AddChidren(back);
            back.MouseDownEventHandler += (sender, e) =>
            topRowLayout.AddChidren(clickBtn);
            clickBtn.MouseDownEventHandler += (sender, e) =>
            {
                RemoveFromParent();
            };
            var middle = new FrameLayout();
            middle.Y = topFrameLayout.Bottom;
            middle.Height = Application.GetRealHeight(1920 - 220 - 174);
            middle.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
            var back = new Button
            {
                Width = Application.GetRealWidth(30),
                Height = Application.GetRealHeight(51),
                X = Application.GetRealWidth(81),
                Y = Application.GetRealHeight(98),
                //Gravity = Gravity.CenterVertical;
                UnSelectedImagePath = "ZigeeLogic/back.png",
            };
            topRowLayout.AddChidren(back);
            back.MouseDownEventHandler += (sender, e) =>
            {
                RemoveFromParent();
            };
            #endregion
            var middle = new FrameLayout
            {
                Y = topRowLayout.Bottom,
                Height = Application.GetRealHeight(1920 - 184),
                BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
            };
            this.AddChidren(middle);
            var timeview = new TimeView
            var blancolor = new FrameLayout
            {
                Y = Application.GetRealHeight(400),
                Height = Application.GetRealHeight(600),
                BackgroundColor = ZigbeeColor.Current.LogicTopViewBackgroundColor,
                Width = Application.GetRealWidth(1080),
                Width = Application.GetMinRealAverage(200),
                Height = Application.GetMinRealAverage(200),
                Y = Application.GetRealHeight(130),
                BackgroundColor = 0xFFFFFFFF,
                Radius = (uint)Application.GetMinRealAverage(100),
                X = Application.GetRealWidth(440),
            };
           middle.AddChidren(timeview);
            var btnComplete = new Button
            middle.AddChidren(blancolor);
            var color = new FrameLayout
            {
                Y = middle.Bottom,
                Height = Application.GetRealHeight(174),
                TextID = MyInternationalizationString.complete,
                Width = blancolor.Width - Application.GetMinRealAverage(24),
                Height = blancolor.Height - Application.GetMinRealAverage(24),
                Y = Application.GetRealHeight(12),
                BackgroundColor = 0xFFFEF1ED,
                Radius = (uint)Application.GetMinRealAverage(86),
                X = Application.GetRealWidth(12),
            };
            blancolor.AddChidren(color);
            var btnicon = new Button
            {
                X = Application.GetRealWidth(48),
                Width = Application.GetRealWidth(80),
                Height = Application.GetRealHeight(80),
                Y = Application.GetRealHeight(48),
                UnSelectedImagePath = "ZigeeLogic/delay.png",
            };
            color.AddChidren(btnicon);
            var titleText = new Button
            {
                Width = Application.GetMinRealAverage(480),
                Height = Application.GetMinRealAverage(60),
                X = Application.GetRealWidth(300),
                Y = blancolor.Bottom + Application.GetRealHeight(50),
                TextID =MyInternationalizationString.createtimetext,
                TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                TextSize = 16,
            };
            AddChidren(btnComplete);
            middle.AddChidren(titleText);
            var PickerViewfra = new FrameLayout
            {
                Y = titleText.Bottom + Application.GetRealHeight(250),
                Height = Application.GetRealHeight(1046),
                BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
            };
            middle.AddChidren(PickerViewfra);
            var mUIPickerView = new UIPickerView
            {
                Y = Application.GetRealHeight(50),
                Height = Application.GetRealHeight(600),
            };
            PickerViewfra.AddChidren(mUIPickerView);
            var mList1 = new List<string>();
            var mList2 = new List<string>();
            for (int i = 0; i < 61; i++)
            {
                if (i < 10)
                {
                    var a = "0" + i.ToString();
                    mList1.Add(a + " " + Language.StringByID(MyInternationalizationString.minute));
                    mList2.Add(a + " " + Language.StringByID(MyInternationalizationString.second));
                }
                else
                {
                    mList1.Add(i.ToString() + " " + Language.StringByID(MyInternationalizationString.minute));
                    mList2.Add(i.ToString() + " " + Language.StringByID(MyInternationalizationString.second));
                }
            }
            mUIPickerView.setNPicker(mList1, mList2, new List<string>());
            ///默认状态
            mUIPickerView.setCurrentItems(0, 5, 0);
            int timevalue = 5;
            int value = 0;
            if (edit)
            {
                timevalue = int.Parse(Common.Logic.CurrentLogic.Actions[isInt]["DelayTime"].ToString());
                var minutevalue1 = timevalue / 60;
                var secondvalue1 = timevalue % 60;
                //更新最新状态
                mUIPickerView.setCurrentItems(minutevalue1, secondvalue1, 0);
                value = timevalue;
            }
            string selectde = "";
            mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) =>
            {
                var minutevalue = int.Parse(mList1[s1].Split(' ')[0]);
                var secondvalue = int.Parse(mList2[s2].Split(' ')[0]);
                timevalue = minutevalue * 60 + secondvalue;
                selectde = "yes";
            };
            var btnsave = new Button
            {
                Y = PickerViewfra.Height - Application.GetRealHeight(260),
                X = Application.GetRealWidth(85),
                Height = Application.GetRealHeight(130),
                Width = Application.GetRealWidth(910),
                Radius = (uint)Application.GetRealHeight(60),
                BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor,
                TextID = MyInternationalizationString.Save,
                TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
            };
            PickerViewfra.AddChidren(btnsave);
            ///完成点击事件
            btnComplete.MouseUpEventHandler += (sender, e) =>
            btnsave.MouseUpEventHandler += (sender, e) =>
            {
                Dictionary<string, object> actionsInfo = new Dictionary<string, object>();
                actionsInfo.Add("LinkType", 10);
                actionsInfo.Add("DelayTime", 5);
                Common.Logic.CurrentLogic.Actions.Add(actionsInfo);
                if (selectde != ""|| timevalue==5)
                {
                    Dictionary<string, object> actionsInfo = new Dictionary<string, object>();
                    actionsInfo.Add("LinkType", 7);
                    actionsInfo.Add("DelayTime", timevalue);
                    if (edit)
                    {
                        Common.Logic.CurrentLogic.Actions.RemoveAt(isInt);
                        Common.Logic.CurrentLogic.Actions.Insert(isInt, actionsInfo);
                    }
                    else
                    {
                        Common.Logic.CurrentLogic.Actions.Add(actionsInfo);
                    }
                }
                else
                {
                    if (!edit)
                    {
                        var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
                                              Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
                                              Language.StringByID(MyInternationalizationString.complete));
                        alert.Show();
                        return;
                    }
                }
                var logicCommunalPage = new LogicCommunalPage { };
                UserView.HomePage.Instance.AddChidren(logicCommunalPage);
                UserView.HomePage.Instance.PageIndex += 1;