From f982455916297ab07379d902a7f15b7a7a867c94 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 20 十月 2021 09:19:20 +0800
Subject: [PATCH] 1
---
HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs | 516 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 511 insertions(+), 5 deletions(-)
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
index 558b9df..4973f51 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
@@ -49,6 +49,7 @@
LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SetTemp));
break;
case FunctionAttributeKey.Mode:
+
LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Mode));
break;
case FunctionAttributeKey.FanSpeed:
@@ -62,6 +63,12 @@
break;
case FunctionAttributeKey.FadeTime:
LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.FadeTime));
+ break;
+ case FunctionAttributeKey.CCT:
+ LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.CCT));
+ break;
+ case FunctionAttributeKey.RGB:
+ LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.RGB));
break;
}
}
@@ -138,6 +145,7 @@
// }
// catch { }
//}
+
if (temp != null)
{
temp = sceneFunction;
@@ -188,6 +196,13 @@
{
row.AddChidren(new Button() { X = Application.GetRealWidth(16), Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
}
+ else
+ {
+ if(sceneStatus.value == "stop")
+ {
+ sceneStatus.value = "on";
+ }
+ }
Button btnRight = new Button()
{
X = Application.GetRealWidth(339),
@@ -198,21 +213,92 @@
};
row.AddChidren(btnRight);
+
+ var showCode = "";
+
+ if (sceneStatus.key == FunctionAttributeKey.Mode)
+ {
+ if (DB_ResidenceData.Instance.GatewayType == 0)
+ {
+ if (SPK.AcSpkList().Contains(sceneFunction.localFunction.spk))
+ {
+ //0 鍒跺喎1鍒剁儹锛�2閫氶锛�3鑷姩锛�4闄ゆ箍
+ switch (sceneStatus.value)
+ {
+ case "0":
+ showCode = "cool";
+ break;
+ case "1":
+ showCode = "heat";
+ break;
+ case "2":
+ showCode = "fan";
+ break;
+ case "3":
+ showCode = "auto";
+ break;
+ case "4":
+ showCode = "dry";
+ break;
+ }
+ }
+ else if (SPK.FhSpkList().Contains(sceneFunction.localFunction.spk))
+ {
+ //1:鏅��,2:鐧藉ぉ,3:澶滄櫄,4:绂诲紑,5:鏃堕棿
+ switch (sceneStatus.value)
+ {
+ case "5":
+ showCode = "timer";
+ break;
+ case "1":
+ showCode = "normal";
+ break;
+ case "2":
+ showCode = "day";
+ break;
+ case "3":
+ showCode = "night";
+ break;
+ case "4":
+ showCode = "away";
+ break;
+ }
+ }
+ }
+ }
+
var btnFunctionText = new Button()
{
Width = Application.GetRealWidth(330),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
- Text = sceneStatus.GetValueText() + sceneStatus.GetUintString()
+ Text = sceneStatus.GetValueText(showCode) + sceneStatus.GetUintString()
};
row.AddChidren(btnFunctionText);
+ if (sceneStatus.key == FunctionAttributeKey.RGB)
+ {
+ btnFunctionText.Width = Application.GetRealWidth(28);
+ btnFunctionText.Height = Application.GetRealWidth(28);
+ btnFunctionText.X = Application.GetRealWidth(330 - 28);
+ btnFunctionText.Gravity = Gravity.CenterVertical;
+ btnFunctionText.Radius = (uint)Application.GetRealWidth(8);
+ btnFunctionText.Text = "";
+ btnFunctionText.BackgroundColor = (uint)(0xFF000000 + new Light().GetRGBcolor(sceneStatus.value));
+ }
+
+
+
if (sceneStatus.key == FunctionAttributeKey.OnOff)
{
btnOnText = btnFunctionText;
}
else if (sceneStatus.key == FunctionAttributeKey.Brightness || sceneStatus.key == FunctionAttributeKey.Percent)
{
+ int outT = 0;
+ int.TryParse(sceneStatus.value, out outT);
+ if (outT < 0)
+ sceneStatus.value = "0";
btnBrightnessText = btnFunctionText;
}
@@ -260,6 +346,17 @@
break;
case "cct":
+ LoadEditDialog_CCT(sceneStatus, btnFunctionText);
+ break;
+ case FunctionAttributeKey.RGB:
+ btnFunctionText.Width = Application.GetRealWidth(28);
+ btnFunctionText.Height = Application.GetRealWidth(28);
+ btnFunctionText.X = Application.GetRealWidth(330 - 28);
+ btnFunctionText.Gravity = Gravity.CenterVertical;
+ btnFunctionText.Radius = (uint)Application.GetRealWidth(8);
+ btnFunctionText.Text = "";
+
+ LoadEditDialog_RGB(sceneStatus, btnFunctionText);
break;
case FunctionAttributeKey.Percent:
LoadEditDialog_Percent(sceneStatus, btnFunctionText);
@@ -327,7 +424,7 @@
items.Add("60", "1min");
items.Add("120", "2min");
items.Add("300", "5min");
- new PublicAssmebly().SetSceneDelayDialog(items,action,sceneFunction.delay);
+ new PublicAssmebly().SetSceneDelayDialog(action, sceneFunction.delay);
};
#endregion
@@ -471,7 +568,7 @@
/// <param name="btn"></param>
void LoadEditDialog_Temp(SceneFunctionStatus trait, Button btn)
{
- double temp = 16;
+ double temp = trait.min;
double.TryParse(trait.value, out temp);
trait.value = temp.ToString();
@@ -540,7 +637,7 @@
Height = Application.GetRealHeight(210),
Radius = (uint)Application.GetRealWidth(12),
};
- for (int i = 16; i <= 32; i += 1)
+ for (int i = trait.min; i <= trait.max; i += 1)
{
pickerItems.Add(i.ToString() + trait.GetUintString());
}
@@ -731,6 +828,356 @@
};
}
+ /// <summary>
+ /// 鍔犺浇cct閫夋嫨寮圭獥
+ /// </summary>
+ /// <param name="function"></param>
+ /// <param name="btn"></param>
+ void LoadEditDialog_CCT(SceneFunctionStatus trait, Button btn)
+ {
+ double temp = trait.min;
+ double.TryParse(trait.value, out temp);
+ trait.value = temp.ToString();
+
+ List<string> pickerItems = new List<string>();
+ if (trait == null)
+ {
+ return;
+ }
+
+ Dialog dialog = new Dialog();
+
+ var pView = new FrameLayout()
+ {
+ BackgroundColor = CSS_Color.DialogTransparentColor1,
+ };
+ dialog.AddChidren(pView);
+
+ var optionBaseView = new FrameLayout()
+ {
+ Y = Application.GetRealHeight(456 - 60),
+ Gravity = Gravity.CenterHorizontal,
+ Width = Application.GetRealWidth(343),
+ Height = Application.GetRealHeight(260),
+ AnimateSpeed = 0.3f,
+ Animate = Animate.DownToUp,
+ BackgroundColor = CSS_Color.MainBackgroundColor,
+ Radius = (uint)Application.GetRealWidth(12),
+ };
+ pView.AddChidren(optionBaseView);
+
+ var topView = new FrameLayout()
+ {
+ Gravity = Gravity.CenterHorizontal,
+ Width = Application.GetRealWidth(343),
+ Height = Application.GetRealHeight(40),
+ BackgroundColor = CSS_Color.MainBackgroundColor,
+ Radius = (uint)Application.GetRealWidth(12),
+ };
+ optionBaseView.AddChidren(topView);
+ topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
+
+ var btnCancel = new Button()
+ {
+ X = Application.GetRealWidth(21),
+ Width = Application.GetRealWidth(100),
+ TextAlignment = TextAlignment.CenterLeft,
+ TextColor = CSS_Color.PromptingColor1,
+ TextSize = CSS_FontSize.TextFontSize,
+ TextID = StringId.Cancel,
+ };
+ topView.AddChidren(btnCancel);
+
+ var btnConfrim = new Button()
+ {
+ Width = Application.GetRealWidth(320),
+ TextAlignment = TextAlignment.CenterRight,
+ TextColor = CSS_Color.MainColor,
+ TextSize = CSS_FontSize.TextFontSize,
+ TextID = StringId.Confirm,
+ };
+ topView.AddChidren(btnConfrim);
+
+ UIPickerView uIPickerView = new UIPickerView()
+ {
+ Y = Application.GetRealHeight(40),
+ Height = Application.GetRealHeight(210),
+ Radius = (uint)Application.GetRealWidth(12),
+ };
+ for (int i = trait.min; i <= trait.max; i += 100)
+ {
+ pickerItems.Add(i.ToString() + trait.GetUintString());
+ }
+ uIPickerView.setNPicker(pickerItems, null, null);
+ optionBaseView.AddChidren(uIPickerView);
+ uIPickerView.setCurrentItems(pickerItems.IndexOf(trait.value.ToString()), 4, 5);
+
+ string selectItem = pickerItems[0];
+ if (pickerItems.Contains(trait.value + trait.GetUintString()))
+ {
+ selectItem = trait.value.ToString() + trait.GetUintString();
+ }
+
+ dialog.Show();
+
+ pView.MouseUpEventHandler = (sender, e) => {
+ dialog.Close();
+ };
+
+ btnCancel.MouseUpEventHandler = (sender, e) => {
+ dialog.Close();
+ };
+ uIPickerView.OnSelectChangeEvent = (int1, int2, int3) => {
+ selectItem = pickerItems[int1];
+ };
+ btnConfrim.MouseUpEventHandler = (sender, e) => {
+ dialog.Close();
+ btn.Text = selectItem;
+ //sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.value.ToString() ;
+ trait.value = selectItem.Replace(trait.GetUintString(), "");
+ };
+
+ }
+
+
+ /// <summary>
+ /// 鍔犺浇rgb閫夋嫨寮圭獥
+ /// </summary>
+ /// <param name="function"></param>
+ /// <param name="btn"></param>
+ void LoadEditDialog_RGB(SceneFunctionStatus trait, Button btn)
+ {
+ string rgbString = trait.value;
+
+ Light tempLight = new Light();
+
+ if (trait == null)
+ {
+ return;
+ }
+
+ Dialog dialog = new Dialog();
+
+ var bodyView = new FrameLayout();
+ dialog.AddChidren(bodyView);
+
+ var contentView = new FrameLayout()
+ {
+ Gravity = Gravity.Center,
+ BackgroundColor = CSS_Color.MainBackgroundColor,
+ Width = Application.GetRealWidth(343),
+ Height = Application.GetRealHeight(52 + 44 + 18 + 22 + 248),
+ Radius = (uint)Application.GetRealWidth(12),
+ };
+ bodyView.AddChidren(contentView);
+
+ #region 鏍囬鍖�
+ var titleView = new FrameLayout()
+ {
+ Width = Application.GetRealWidth(343),
+ Height = Application.GetRealHeight(52),
+ };
+ contentView.AddChidren(titleView);
+
+ var btnTitle = new Button()
+ {
+ Height = Application.GetRealHeight(52),
+ Gravity = Gravity.Center,
+ TextSize = CSS_FontSize.SubheadingFontSize,
+ TextColor = CSS_Color.MainColor,
+ TextID = StringId.ColorValue,
+ TextAlignment = TextAlignment.Center,
+ };
+ titleView.AddChidren(btnTitle);
+ titleView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor, Y = Application.GetRealHeight(51) });
+
+ #endregion
+
+ int attrViewHight = Application.GetRealHeight(18 + 22+ 248);
+ //灞炴�ц缃尯鍩�
+ var attrView = new FrameLayout()
+ {
+ Y = Application.GetRealHeight(52),
+ Width = Application.GetRealWidth(343),
+ Height = attrViewHight
+ };
+ contentView.AddChidren(attrView);
+ attrView.AddChidren(new Button() { Height = Application.GetRealHeight(18) });
+
+
+
+ #region RGB
+ var rgbView = new FrameLayout()
+ {
+ Height = Application.GetRealHeight(248)
+ };
+ attrView.AddChidren(rgbView);
+
+
+ var btnCurColor = new Button()
+ {
+ X = Application.GetRealWidth(24),
+ Y = Application.GetRealHeight(10),
+ Width = Application.GetMinRealAverage(24),
+ Height = Application.GetMinRealAverage(24),
+ Radius = (uint)Application.GetMinRealAverage(8),
+ BorderColor = CSS_Color.PromptingColor2,
+ BorderWidth = 1,
+ BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(trait.value))
+ };
+ rgbView.AddChidren(btnCurColor);
+
+ //鑹茬洏鐨勬甯冩帶浠�(闄愬埗閭d釜鐧借壊婊戝姩鐞冧娇鐢�)
+ var framePickerBack = new FrameLayout();
+ framePickerBack.Gravity = Gravity.CenterHorizontal;
+ framePickerBack.Y = Application.GetRealHeight(20);
+ framePickerBack.Width = Application.GetMinRealAverage(198);
+ framePickerBack.Height = Application.GetMinRealAverage(198);
+ rgbView.AddChidren(framePickerBack);
+
+ var colorPicker = new ColorPicker()
+ {
+ ColorImagePath = "FunctionIcon/Light/ColorWheel.png",
+ };
+ framePickerBack.AddChidren(colorPicker);
+
+
+
+
+
+
+ //鐧界偣鎺т欢
+ var btnWhiteRound = new Button();
+ btnWhiteRound.Width = Application.GetRealWidth(24);
+ btnWhiteRound.Height = Application.GetRealWidth(24);
+ btnWhiteRound.UnSelectedImagePath = "FunctionIcon/Light/ColorWheelTip.png";
+ btnWhiteRound.Visible = false;
+ framePickerBack.AddChidren(btnWhiteRound);
+
+
+ //褰撳墠鐐瑰嚮鐨勩�愮偣銆戞槸鍚︽纭�
+ bool pointIsRight = false;
+ //鍦嗙殑鍗婂緞(鑰冭檻杈圭晫,闇�瑕佽缃畠鐨勫崐寰勬瘮杈冨皬涓�鐐�)
+ int circleR = colorPicker.Width / 2 - Application.GetRealWidth(12);
+
+
+ colorPicker.ColorChaged += (sender2, e2) => {
+ rgbString = (e2[0] + "," + e2[1] + "," + e2[2]).ToString();
+ //trait.value = rgbString;
+ btnCurColor.BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(rgbString));
+ };
+ colorPicker.MouseDownEventHandler += (sender, e) =>
+ {
+ pointIsRight = this.CheckPoint(circleR, colorPicker.Width / 2, colorPicker.Height / 2, (int)e.X, (int)e.Y);
+ if (pointIsRight == false)
+ {
+ //鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐�
+ return;
+ }
+ //鏄剧ず鐧界偣
+ btnWhiteRound.X = (int)e.X - btnWhiteRound.Width / 2;
+ btnWhiteRound.Y = (int)e.Y - btnWhiteRound.Height / 2;
+ if (btnWhiteRound.Visible == false)
+ {
+ btnWhiteRound.Visible = true;
+ }
+ };
+
+ colorPicker.MouseMoveEventHandler += (sender, e) =>
+ {
+ //褰撻紶鏍囩偣涓嬩簨浠跺鐞�
+ colorPicker.MouseDownEventHandler(sender, e);
+ };
+
+
+ #endregion
+
+
+
+
+ #region bottom View
+ var bottomView = new FrameLayout()
+ {
+ Y = Application.GetRealHeight(52) + attrViewHight,
+ Height = Application.GetRealHeight(46),
+ };
+ contentView.AddChidren(bottomView);
+ bottomView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
+
+ var btnCancel = new Button()
+ {
+ Width = Application.GetRealWidth(172),
+ Height = Application.GetRealHeight(44),
+ TextAlignment = TextAlignment.Center,
+ TextSize = CSS_FontSize.SubheadingFontSize,
+ TextColor = CSS_Color.TextualColor,
+ TextID = StringId.Cancel,
+ };
+ bottomView.AddChidren(btnCancel);
+ btnCancel.MouseUpEventHandler = (sender, e) => {
+ dialog.Close();
+ };
+
+ var btnComplete = new Button()
+ {
+ X = Application.GetRealWidth(172),
+ Width = Application.GetRealWidth(172),
+ Height = Application.GetRealHeight(46),
+ BackgroundColor = CSS_Color.MainColor,
+ TextColor = CSS_Color.MainBackgroundColor,
+ TextAlignment = TextAlignment.Center,
+ TextSize = CSS_FontSize.SubheadingFontSize,
+ TextID = StringId.Complete
+ };
+ bottomView.AddChidren(btnComplete);
+
+ //渚嬶細鍙充笅鍦嗚 澶у皬涓�50
+ int mRectCornerID = HDLUtils.RectCornerBottomRight;
+ btnComplete.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID);
+ btnComplete.MouseUpEventHandler = (sender, e) => {
+ dialog.Close();
+ trait.value = rgbString;
+ btn.BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(rgbString));
+ };
+
+ #endregion
+
+
+ dialog.Show();
+
+ }
+
+
+ /// <summary>
+ /// 妫�娴嬬偣鍑荤偣
+ /// </summary>
+ /// <param name="circleR">鍦嗙殑鍗婂緞</param>
+ /// <param name="circleX">鍦嗗績X杞�</param>
+ /// <param name="circleY">鍦嗗績Y杞�</param>
+ /// <param name="pointX">鐐瑰嚮鐐圭殑X杞�</param>
+ /// <param name="pointY">鐐瑰嚮鐐圭殑Y杞�</param>
+ /// <returns></returns>
+ private bool CheckPoint(int circleR, int circleX, int circleY, int pointX, int pointY)
+ {
+ int dwidth = circleX - pointX;
+ if (dwidth < 0) { dwidth *= -1; }
+
+ int dHeight = circleY - pointY;
+ if (dHeight < 0) { dHeight *= -1; }
+
+ //鏍规嵁涓夎鍑芥暟,姹備笁瑙掑舰鐨勬枩杈归暱
+ int dlength = dwidth * dwidth + dHeight * dHeight;
+ //鍗婂緞闀垮害(涓嶅紑鏂�,鎵�浠ユ槸鎸夊钩鏂圭畻)
+ circleR *= circleR;
+ if (dlength < circleR)
+ {
+ //濡傛灉缁勬垚鐨勪笁瑙掑舰骞舵病鏈夐暱杩囧崐寰�,鍒欎唬琛ㄨ繕鍦ㄥ渾鍐�(涓嶅厑璁哥偣杈圭晫)
+ return true;
+ }
+ return false;
+ }
+
+
/// <summary>
/// 鍔犺浇鍙樺寲閫熷害閫夋嫨寮圭獥
@@ -889,6 +1336,65 @@
var lastText = "";
Dialog dialog = new Dialog();
+ if(DB_ResidenceData.Instance.GatewayType == 0)
+ {
+ if (SPK.AcSpkList().Contains(sceneFunction.localFunction.spk))
+ {
+ //0 鍒跺喎1鍒剁儹锛�2閫氶锛�3鑷姩锛�4闄ゆ箍
+ for (int i = 0; i < statusList.Count; i++)
+ {
+ if (statusList[i] == "0")
+ {
+ statusList[i] = "cool";
+ }
+ else if (statusList[i] == "1")
+ {
+ statusList[i] = "heat";
+ }
+ else if (statusList[i] == "2")
+ {
+ statusList[i] = "fan";
+ }
+ else if (statusList[i] == "3")
+ {
+ statusList[i] = "auto";
+ }
+ else if (statusList[i] == "4")
+ {
+ statusList[i] = "dry";
+ }
+ }
+ }
+ else if (SPK.FhSpkList().Contains(sceneFunction.localFunction.spk))
+ {
+ //1:鏅��,2:鐧藉ぉ,3:澶滄櫄,4:绂诲紑,5:鏃堕棿
+ for (int i = 0; i < statusList.Count; i++)
+ {
+ if (statusList[i] == "5")
+ {
+ statusList[i] = "timer";
+ }
+ else if (statusList[i] == "1")
+ {
+ statusList[i] = "normal";
+ }
+ else if (statusList[i] == "2")
+ {
+ statusList[i] = "day";
+ }
+ else if (statusList[i] == "3")
+ {
+ statusList[i] = "night";
+ }
+ else if (statusList[i] == "4")
+ {
+ statusList[i] = "away";
+ }
+ }
+
+ }
+ }
+
var pView = new FrameLayout()
{
BackgroundColor = CSS_Color.DialogTransparentColor1,
@@ -995,7 +1501,7 @@
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
Tag = m,
- Text = trait.GetValueText()
+ Text = trait.GetValueText(m)
};
row.AddChidren(btnPropertyTitle);
--
Gitblit v1.8.0