tzy
2021-03-26 3cebdfad56d78ba04a214fccd1b942a010aeba77
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage_AddIrButton.cs
New file
@@ -0,0 +1,167 @@
using System;
using HDL_ON.Entity;
using HDL_ON.UI.UI2.Intelligence.Automation.LogicView;
using HDL_ON.UI.UI2.PersonalCenter.PirDevice;
using HDL_ON.UI.UI2.PersonalCenter.PirDevice.View;
using Shared;
namespace HDL_ON.UI
{
    public class AcControlPage_AddIrButton : FrameLayout
    {
        public AcControlPage_AddIrButton()
        {
        }
        public void Show(Function control)
        {
            #region 界面布局
            this.BackgroundColor = CSS.CSS_Color.viewMiddle;
            UI2.PersonalCenter.PirDevice.View.TopView topView = new UI2.PersonalCenter.PirDevice.View.TopView();
            topView.topNameBtn.TextID = StringId.tianjiayaokongqi;
            this.AddChidren(topView.FLayoutView());
            topView.clickBackBtn.MouseUpEventHandler += (sender, e) => { this.RemoveFromParent(); };
            FrameLayout editfLayout = new FrameLayout
            {
                Y = topView.frameLayout.Bottom,
                BackgroundColor = CSS.CSS_Color.textWhiteColor,
                Height = Application.GetRealHeight(152),
                Width = Application.GetRealWidth(375),
            };
            this.AddChidren(editfLayout);
            //线
            Button lineBtn = new Button
            {
                Y = Application.GetRealHeight(43),
                X = Application.GetRealWidth(16),
                Width = Application.GetRealWidth(375 - 16 * 2),
                Height = 1,
                BackgroundColor = CSS.CSS_Color.viewLine,
            };
            editfLayout.AddChidren(lineBtn);
            //请输入按键名称
            EditText editText = new EditText()
            {
                X = Application.GetRealWidth(16),
                Width = Application.GetRealWidth(375 - 16 * 2),
                Height = Application.GetRealHeight(44),
                PlaceholderText = Language.StringByID(StringId.anjianmingcheng),
                PlaceholderTextColor = CSS.CSS_Color.textCancelColor,
                TextColor = CSS.CSS_Color.textColor,
                TextSize = TextSize.text14,
                TextAlignment = TextAlignment.CenterLeft,
            };
            editfLayout.AddChidren(editText);
            //下一步
            Button saveBtn = new Button
            {
                Width = Application.GetRealWidth(220),
                Height = Application.GetRealHeight(44),
                Y = Application.GetRealHeight(92),
                X = Application.GetRealWidth(78),
                TextID = StringId.xiayibu,
                TextSize = TextSize.text16,
                TextColor = CSS.CSS_Color.textWhiteColor,
                TextAlignment = TextAlignment.Center,
                BackgroundColor = CSS.CSS_Color.btnSaveBackgroundColor,
                Radius = (uint)Application.GetRealHeight(22),
            };
            editfLayout.AddChidren(saveBtn);
            FrameLayout fLayout = new FrameLayout
            {
                Y = editfLayout.Bottom + Application.GetRealHeight(8),
                Height = Application.GetRealHeight(667 - 64 - 152 - 8),
                Width = Application.GetRealWidth(375),
                BackgroundColor = CSS.CSS_Color.textWhiteColor,
            };
            this.AddChidren(fLayout);
            //推荐按键
            Button titleBtn = new Button
            {
                Y = Application.GetRealHeight(12),
                X = Application.GetRealWidth(16),
                Width = Application.GetRealWidth(220),
                Height = Application.GetRealHeight(20),
                TextID = StringId.tuijiananjian,
                TextSize = TextSize.text14,
                TextColor = CSS.CSS_Color.text1Color,
                TextAlignment = TextAlignment.CenterLeft,
            };
            fLayout.AddChidren(titleBtn);
            //动态加载Button按钮父控件
            FrameLayout buttonFLayout = new FrameLayout
            {
                Y = Application.GetRealHeight(32),
                Height = Application.GetRealHeight(667 - 64 - 152 - 8 - 12 - 20),
                Width = Application.GetRealWidth(375),
            };
            fLayout.AddChidren(buttonFLayout);
            #endregion
            Buttons buttons = new Buttons();
            var buttonNameList = buttons.GetList("默认按钮");
            buttons.AddButton(buttonFLayout, buttonNameList, (s) =>
            {
                editText.Text = s;
#if __Android__
                editText.SetSelectionEnd();
#endif
            });
            ///下一步的点击事件
            saveBtn.MouseUpEventHandler += (sender, e) =>
            {
                var texts = editText.Text.Trim();
                if (string.IsNullOrEmpty(editText.Text))
                {
                    //名称不能为空
                    return;
                }
                var butName = control.attributes.Find((c) => c.key == texts);
                if (butName != null)
                {
                    //名称已经存在
                    return;
                }
                //new引导界面
                ReplicationView replication = new ReplicationView();
                replication.Show(this);
                //添加数据对象
                AttributesStatus buttonObj = new AttributesStatus();
                buttonObj.key = "key" + control.attributes.Count.ToString();
                buttonObj.value = texts;
                PirSend.CodeStudy(new Control() { deviceId = control.deviceId,sid = control.sid }, buttonObj, (mqttData) =>
                {
                    if (mqttData != null)// && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
                    {
                        Method method = new Method();
                        Method.buttondata = "";
                        var mqttdate = method.MqttDate("按键", control.sid, 25);
                        if (mqttdate != null)
                        {
                            this.RemoveFromParent();
                            control.attributes.Add(new FunctionAttributes() { key = buttonObj.key, value = new System.Collections.Generic.List<string>() { buttonObj.value } });
                        }
                        else
                        {
                            replication.RemView();
                            new TipPopView().FlashingBox(Language.StringByID(StringId.tianjiashibai));
                        }
                    }
                    else
                    {
                        Method method = new Method();
                        new TipPopView().FlashingBox(Language.StringByID(StringId.tianjiashibai));
                    }
                });
            };
        }
    }
}