wei
2021-07-09 6e8dba90956d7068df68144aa4c6d1189e596255
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
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
    {
        Action action;
 
        public AcControlPage_AddIrButton(Action act)
        {
            action = act;
        }
        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();
 
                //防止key不唯一
                var attrCount = control.attributes.Count;
                var keyString = "key" + attrCount;
                while (true)
                {
                    if (control.attributes.Find((obj) => obj.key == keyString) == null)
                    {
                        break;
                    }
                    keyString = "key" + (++attrCount);
                }
                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)
                     {
                         control.attributes.Add(new FunctionAttributes() { key = buttonObj.key, value = new System.Collections.Generic.List<string>() { buttonObj.value } });
                         this.RemoveFromParent();
                         action?.Invoke();
                         //new TipPopView().FlashingBox(Language.StringByID(StringId.tianjiachenggong));
                     }
                     else
                     {
                         this.RemoveFromParent();
                         new TipPopView().FlashingBox(Language.StringByID(StringId.tianjiashibai));
                     }
                 });
            };
        }
    }
}