From 3f6685c77beeb12baf840733fb890860f4c26e7c Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 25 七月 2024 17:25:59 +0800 Subject: [PATCH] 2024年07月25日17:24:45 --- HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs | 787 +++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 523 insertions(+), 264 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs index 4e22ef5..746471b 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs @@ -25,6 +25,10 @@ /// </summary> Button btnFloor; /// <summary> + /// 鍏ㄩ�夋寜閽� + /// </summary> + Button btnChooseAll; + /// <summary> /// 鍔熻兘鍒楄〃闆嗗悎鏄剧ず鍖哄煙 /// </summary> static VerticalScrolViewLayout functionListView; @@ -89,15 +93,46 @@ btnFloor = new Button() { X = btnFloorDownIcon.Right, - Y = Application.GetRealHeight(18), + //Y = Application.GetRealHeight(18), Width = Application.GetRealWidth(200), - Height = Application.GetMinRealAverage(16), + //Height = Application.GetMinRealAverage(16+18*2), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextAlignment = TextAlignment.CenterLeft, Text = DB_ResidenceData.Instance.CurFloor.roomName, }; roomFloorChangeView.AddChidren(btnFloor); + + btnChooseAll = new Button() + { + X = Application.GetRealWidth(245), + Width = Application.GetRealWidth(109), + TextAlignment = TextAlignment.CenterRight, + TextSize = CSS_FontSize.TextFontSize, + TextColor = CSS_Color.FirstLevelTitleColor, + TextID = StringId.SelectedAll, + }; + if(sceneLishtList.Count>0) + { + btnChooseAll.TextID = StringId.Cancel; + } + roomFloorChangeView.AddChidren(btnChooseAll); + btnChooseAll.MouseUpEventHandler = (sender, e) => { + if (sceneLishtList.Count > 0) + { + sceneLishtList.Clear(); + btnChooseAll.TextID = StringId.SelectAll; + btnConfrim.IsSelected = false; + } + else + { + sceneLishtList.AddRange(lightList); + btnChooseAll.TextID = StringId.Cancel; + btnConfrim.IsSelected = true; + } + LoadLightRow(lightList); + }; + #endregion functionListView = new VerticalScrolViewLayout() @@ -157,44 +192,107 @@ } /// <summary> + /// 鏄剧ず鐨勮澶囩殑鎬绘暟 + /// </summary> + int showCount = -1; + + /// <summary> /// 鍔犺浇鍔熻兘row /// </summary> /// <param name="lightList"></param> - void LoadLightRow(List<Function> functions) + void LoadLightRow(List<Function> functions, bool isAppend = false) { - functionListView.RemoveAll(); + var waitPage = new Loading(); + bodyView.AddChidren(waitPage); + waitPage.Start(""); - foreach (var function in functions) + new System.Threading.Thread(() => { - var functionDiv = new LightRow(function) + try { - Gravity = Gravity.CenterHorizontal, - Width = Application.GetRealWidth(343), - Height = Application.GetRealHeight(62), - Radius = (uint)Application.GetMinRealAverage(12), - BorderColor = 0x00FFFFFF, - BorderWidth = 1, - BackgroundColor = CSS_Color.MainBackgroundColor, - Tag = function.spk + function.sid - }; + Application.RunOnMainThread(() => + { + if (!isAppend) + { + showCount = -1; + functionListView.RemoveAll(); + } + for(var i =0;i<100;i++) + //foreach (var function in functions) + { + showCount++; + if (showCount >= functions.Count) + { + break; + } + var function = functions[showCount]; - Action setAction = () => + var functionDiv = new LightRow(function) + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(62), + Radius = (uint)Application.GetMinRealAverage(12), + BorderColor = 0x00FFFFFF, + BorderWidth = 1, + BackgroundColor = CSS_Color.MainBackgroundColor, + Tag = function.spk + function.sid + }; + + Action setAction = () => + { + if (sceneLishtList.Count > 0) + { + btnConfrim.IsSelected = true; + } + else + { + btnConfrim.IsSelected = false; + } + }; + + functionDiv.LoadDiv(sceneLishtList, setAction); + functionListView.AddChidren(functionDiv); + + functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) }); + } + + if (functions.Count > showCount) + { + var btnAppend = new Button() + { + Height = Application.GetRealHeight(60), + TextAlignment = TextAlignment.Center, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.FirstLevelTitleColor, + TextID = StringId.LoadMore, + }; + functionListView.AddChidren(btnAppend); + btnAppend.MouseUpEventHandler = (sender, e) => + { + btnAppend.RemoveFromParent(); + LoadLightRow(functions, true); + }; + } + }); + } + catch (Exception ex) { - if (sceneLishtList.Count > 0) + MainPage.Log("ShowFunctionRowError : " + ex.Message); + } + finally + { + Application.RunOnMainThread(() => { - btnConfrim.IsSelected = true; - } - else - { - btnConfrim.IsSelected = false; - } - }; - - functionDiv.LoadDiv(sceneLishtList,setAction); - functionListView.AddChidren(functionDiv); - - functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) }); - } + if (waitPage != null) + { + waitPage.RemoveFromParent(); + waitPage = null; + } + }); + } + }) + { IsBackground = true }.Start(); } @@ -211,6 +309,21 @@ var form = new FloorRoomSelectPopupView(); form.ShowDeviceFunctionView(btnFloor, this.lightList, (selectId, listFunc) => { + btnChooseAll.MouseUpEventHandler = (sender2, e2) => { + if (sceneLishtList.Count > 0) + { + sceneLishtList.Clear(); + btnChooseAll.TextID = StringId.SelectAll; + btnConfrim.IsSelected = false; + } + else + { + sceneLishtList.AddRange(listFunc); + btnChooseAll.TextID = StringId.Cancel; + btnConfrim.IsSelected = true; + } + LoadLightRow(listFunc); + }; nowSelectId = selectId; //閲嶆柊鍔犺浇鐣岄潰 LoadLightRow(listFunc); @@ -259,79 +372,91 @@ /// </summary> public void LoadDiv(List<Function> functions,Action action) { - btnIcon = new Button() + try { - X = Application.GetRealWidth(10), - Y = Application.GetRealHeight(15), - Width = Application.GetRealWidth(32), - Height = Application.GetRealWidth(32), - UnSelectedImagePath = $"FunctionIcon/Icon/{function.IconName}.png" - }; - bodyDiv.AddChidren(btnIcon); - - btnName = new Button() - { - X = Application.GetRealWidth(8 + 10 + 32), - Y = Application.GetRealHeight(10), - Width = Application.GetRealWidth(200), - Height = Application.GetRealHeight(24), - Text = function.name, - TextAlignment = TextAlignment.CenterLeft, - TextColor = CSS_Color.FirstLevelTitleColor, - TextSize = CSS_FontSize.TextFontSize, - }; - bodyDiv.AddChidren(btnName); - - btnFromFloor = new Button() - { - X = Application.GetRealWidth(8 + 10 + 32), - Y = Application.GetRealHeight(10 + 24), - Width = Application.GetRealWidth(200), - Height = Application.GetRealHeight(18), - Text = function.GetRoomListName(), - TextAlignment = TextAlignment.CenterLeft, - TextColor = CSS_Color.PromptingColor1, - TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - }; - bodyDiv.AddChidren(btnFromFloor); - - btnSelect = new Button() - { - X = Application.GetRealWidth(303), - Gravity = Gravity.CenterVertical, - Width = Application.GetRealWidth(32), - Height = Application.GetRealWidth(32), - UnSelectedImagePath = "FunctionIcon/Light/LightScene/CheckIcon.png", - SelectedImagePath = "FunctionIcon/Light/LightScene/CheckOnIcon.png", - IsSelected = functions.Find((obj) => obj.deviceId == function.deviceId) != null - }; - bodyDiv.AddChidren(btnSelect); - - btnSelect.MouseUpEventHandler = (sender, e) => { - btnSelect.IsSelected = !btnSelect.IsSelected; - if(btnSelect.IsSelected) + btnIcon = new Button() { - var addTemp = functions.Find((obj) => obj.deviceId == function.deviceId); - if (addTemp == null) - { - functions.Add(function); - } + X = Application.GetRealWidth(10), + Y = Application.GetRealHeight(15), + Width = Application.GetRealWidth(32), + Height = Application.GetRealWidth(32), + UnSelectedImagePath = $"FunctionIcon/Icon/{function.IconName}.png" + }; + bodyDiv.AddChidren(btnIcon); + + btnName = new Button() + { + X = Application.GetRealWidth(8 + 10 + 32), + Y = Application.GetRealHeight(10), + Width = Application.GetRealWidth(200), + Height = Application.GetRealHeight(24), + Text = function.name, + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.FirstLevelTitleColor, + TextSize = CSS_FontSize.TextFontSize, + }; + bodyDiv.AddChidren(btnName); + + btnFromFloor = new Button() + { + X = Application.GetRealWidth(8 + 10 + 32), + Y = Application.GetRealHeight(10 + 24), + Width = Application.GetRealWidth(200), + Height = Application.GetRealHeight(18), + Text = function.GetRoomListName(), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + }; + bodyDiv.AddChidren(btnFromFloor); + + btnSelect = new Button() + { + X = Application.GetRealWidth(303), + Gravity = Gravity.CenterVertical, + Width = Application.GetRealWidth(32), + Height = Application.GetRealWidth(32), + UnSelectedImagePath = "FunctionIcon/Light/LightScene/CheckIcon.png", + SelectedImagePath = "FunctionIcon/Light/LightScene/CheckOnIcon.png", + IsSelected = functions.Find((obj) => obj.deviceId == function.deviceId) != null, + Tag = "ChooseIcon" + }; + if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) + { + btnSelect.X = Application.GetRealWidth(323); } - else + bodyDiv.AddChidren(btnSelect); + + btnSelect.MouseUpEventHandler = (sender, e) => { - var removeTemp = functions.Find((obj) => obj.deviceId == function.deviceId); - if (removeTemp != null) + Application.HideSoftInput(); + btnSelect.IsSelected = !btnSelect.IsSelected; + if (btnSelect.IsSelected) { - functions.Remove(removeTemp); + var addTemp = functions.Find((obj) => obj.deviceId == function.deviceId); + if (addTemp == null) + { + functions.Add(function); + } } - } - ///鍒锋柊鐣岄潰 - if (functions.Count == 0 || functions.Count == 1) - { + else + { + var removeTemp = functions.Find((obj) => obj.sid == function.sid); + if (removeTemp != null) + { + functions.Remove(removeTemp); + } + } + ///鍒锋柊鐣岄潰 + //if (functions.Count == 0 || functions.Count == 1) + //{ action(); - } - }; + //} + }; + }catch (Exception ex) + { + } } @@ -342,6 +467,14 @@ /// </summary> public class LightSceneEditDialog :Dialog { + + + Dictionary<string, string> d = new Dictionary<string, string>(); + List<Function> listSwitch = new List<Function>(); + List<Function> lightDimming = new List<Function>(); + List<Function> lightCCT = new List<Function>(); + List<Function> lightRGB = new List<Function>(); + /// <summary> /// 浼犲叆鐨勭伅鍏夊垪琛� /// 鍔犲叆鍦烘櫙鎺у埗鍔熻兘鍒楄〃 @@ -367,11 +500,39 @@ public void ShowDialog() { + commandDic.Clear(); commandDic.Add(FunctionAttributeKey.OnOff, "off"); - var hadDimming = lights.Find((obj) => obj.spk == SPK.LightDimming) != null; - var hadCCT = lights.Find((obj) => obj.spk == SPK.LightCCT) != null; - var hadRGB = lights.Find((obj) => obj.spk == SPK.LightRGB) != null; + listSwitch = lights.FindAll((obj) => obj.spk == SPK.LightSwitch); + lightDimming = lights.FindAll((obj) => obj.spk == SPK.LightDimming); + lightCCT = lights.FindAll((obj) => obj.spk == SPK.LightCCT); + lightRGB = lights.FindAll((obj) => obj.spk == SPK.LightRGB); + + + + var hadDimming = lightDimming.Count > 0; + var hadCCT = lightCCT.Count > 0; + var hadRGB = lightRGB.Count > 0; + if ( hadRGB) + { + commandDic.Add(FunctionAttributeKey.RGB, lightRGB[0].GetAttrState(FunctionAttributeKey.RGB)); + commandDic.Add(FunctionAttributeKey.Brightness, lightRGB[0].GetAttrState(FunctionAttributeKey.Brightness)); + } + if (hadCCT) + { + commandDic.Add(FunctionAttributeKey.CCT, lightCCT[0].GetAttrState(FunctionAttributeKey.CCT)); + if (!commandDic.ContainsKey(FunctionAttributeKey.Brightness)) + { + commandDic.Add(FunctionAttributeKey.Brightness, lightCCT[0].GetAttrState(FunctionAttributeKey.Brightness)); + } + } + if (hadDimming) + { + if (!commandDic.ContainsKey(FunctionAttributeKey.Brightness)) + { + commandDic.Add(FunctionAttributeKey.Brightness, lightDimming[0].GetAttrState(FunctionAttributeKey.Brightness)); + } + } var bodyView = new FrameLayout(); this.AddChidren(bodyView); @@ -422,11 +583,19 @@ X = Application.GetRealWidth(12) + btnTitle.Right, Gravity = Gravity.CenterVertical, UnSelectedImagePath = "Public/Edit.png", - //SelectedImagePath = "Public/HookIcon.png" }; - titleView.AddChidren(btnEditIcon); + if (string.IsNullOrEmpty(scene.userSceneId)) + { + titleView.AddChidren(btnEditIcon); + } + else + { + btnTitle.Text = scene.name; + btnTitle.Width = btnTitle.GetTextWidth()+ Application.GetRealWidth(10); + btnTitle.Gravity = Gravity.Center; + } - Action<string> callBack = (str) => + Action<string> callBack = (str) => { //鍚嶇О涓嶈兘涓虹┖ if (string.IsNullOrEmpty(str)) @@ -479,19 +648,19 @@ var brightnessValue = 0; var cctValue = 27; - if(rgbLight!= null) - { - int.TryParse(rgbLight.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness).value, out brightnessValue); - } - if (cctLight != null) - { - int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness).value, out brightnessValue); - int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out cctValue); - } - if(dimmingLight!=null) - { - int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out cctValue); - } + //if(rgbLight!= null) + //{ + // int.TryParse(rgbLight.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness).value, out brightnessValue); + //} + //if (cctLight != null) + //{ + // int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness).value, out brightnessValue); + // int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out cctValue); + //} + //if(dimmingLight!=null) + //{ + // int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out brightnessValue); + //} //灞炴�ц缃尯鍩� @@ -561,12 +730,24 @@ btnClose.IsSelected = true; btnOpen.IsSelected = false; commandDic[FunctionAttributeKey.OnOff] = "off"; + d.Clear(); + d.Add(FunctionAttributeKey.OnOff, "off"); + foreach (var light in lights) + { + Control.Ins.SendWriteCommand(light, d); + } }; btnOpen.MouseUpEventHandler = (sender, e) => { btnClose.IsSelected = false; btnOpen.IsSelected = true; commandDic[FunctionAttributeKey.OnOff] = "on"; + d.Clear(); + d.Add(FunctionAttributeKey.OnOff, "on"); + foreach (var light in lights) + { + Control.Ins.SendWriteCommand(light, d); + } }; } @@ -621,172 +802,198 @@ contentView.AddChidren(bottomView); bottomView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor }); - var btnSave = new Button() + if (string.IsNullOrEmpty(scene.userSceneId)) { - Width = Application.GetRealWidth(172), - Height = Application.GetRealHeight(44), - TextAlignment = TextAlignment.Center, - TextSize = CSS_FontSize.SubheadingFontSize, - TextColor = CSS_Color.TextualColor, - TextID = StringId.Save, - }; - bottomView.AddChidren(btnSave); - - 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) => { - this.Close(); - - var waitPage = new Loading(); - MainPage.BaseView.AddChidren(waitPage); - waitPage.Start(Language.StringByID(StringId.PleaseWait)); - - new Thread(() => + var btnCacel = new Button() { - try + Width = Application.GetRealWidth(172), + Height = Application.GetRealHeight(44), + TextAlignment = TextAlignment.Center, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.TextualColor, + TextID = StringId.Cancel, + }; + bottomView.AddChidren(btnCacel); + + var btnSave = 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.Save + }; + bottomView.AddChidren(btnSave); + + //渚嬶細鍙充笅鍦嗚 澶у皬涓�50 + int mRectCornerID = HDLUtils.RectCornerBottomRight; + btnSave.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID); + + btnCacel.MouseUpEventHandler = (sender, e) => + { + this.Close(); + + //var waitPage = new Loading(); + //MainPage.BaseView.AddChidren(waitPage); + //waitPage.Start(Language.StringByID(StringId.PleaseWait)); + //new Thread(() => + //{ + // try + // { + // foreach (var light in lights) + // { + // Dictionary<string, string> sendDate = new Dictionary<string, string>(); + // //璧嬪�煎満鏅姛鑳芥暟鎹� + // foreach (var attr in light.GetAttributes()) + // { + // if (commandDic.ContainsKey(attr)) + // { + // try + // { + // sendDate.Add(attr, commandDic[attr]); + // } + // catch { } + // } + + // } + // Control.Ins.SendWriteCommand(light, sendDate); + // Thread.Sleep(50); + // } + // } + // catch + // { } + // finally + // { + // Application.RunOnMainThread(() => + // { + // waitPage.Hide(); + // new PublicAssmebly().TipMsgAutoClose("缁勫悎鎺у埗宸叉墽琛�", true); + // if (waitPage != null) + // { + // //backAction(null); + // waitPage.RemoveFromParent(); + // } + // }); + // } + //}) + //{ IsBackground = true }.Start(); + }; + + btnSave.MouseUpEventHandler = (sender, e) => + { + if (string.IsNullOrEmpty(scene.name)) { - foreach (var light in lights) + new Tip() { - Dictionary<string, string> sendDate = new Dictionary<string, string>(); - //璧嬪�煎満鏅姛鑳芥暟鎹� - foreach (var attr in light.GetAttributes()) - { - if (commandDic.ContainsKey(attr)) - { - try - { - sendDate.Add(attr, commandDic[attr]); - } - catch { } - } - - } - Control.Ins.SendWriteCommand(light, sendDate); - Thread.Sleep(50); - } - } - catch - { } - finally - { - Application.RunOnMainThread(() => - { - waitPage.Hide(); - if (waitPage != null) - { - backAction(null); - waitPage.RemoveFromParent(); - } - }); - } - }) - { IsBackground = true }.Start(); - }; - - - - btnSave.MouseUpEventHandler += (sender, e) => - { - if (string.IsNullOrEmpty(scene.name)) - { - new Tip() - { - CloseTime = 1, - Text = Language.StringByID(StringId.SceneNameCannotBeEmpty), - Direction = AMPopTipDirection.None, - }.Show(bodyView); - return; - } - foreach (var tempRoom in FunctionList.List.scenes) - { - if (scene.name == tempRoom.name) - { - new PublicAssmebly().TipMsg(StringId.Tip, StringId.SceneNameAlreadyExists); + CloseTime = 1, + Text = Language.StringByID(StringId.NameCannotBeEmpty), + Direction = AMPopTipDirection.None, + }.Show(bodyView); return; } - } - var waitPage = new Loading(); - MainPage.BaseView.AddChidren(waitPage); - waitPage.Start(Language.StringByID(StringId.PleaseWait)); - new Thread(() => - { - try + foreach (var tempRoom in FunctionList.List.scenes) { - var serverScene = new Scene(); - for (int i = 0; i < lights.Count; i++) + if (scene.name == tempRoom.name) { - var light = lights[i]; + new PublicAssmebly().TipMsg(StringId.Tip, StringId.NameAlreadyExists); + return; + } + } + var waitPage = new Loading(); + MainPage.BaseView.AddChidren(waitPage); + waitPage.Start(Language.StringByID(StringId.PleaseWait)); + new Thread(() => + { + try + { + var serverScene = new Scene(); + for (int i = 0; i < lights.Count; i++) + { + var light = lights[i]; //璧嬪�煎満鏅姛鑳芥暟鎹� foreach (var attr in light.GetAttributes()) - { - if (commandDic.ContainsKey(attr)) { - try + if (commandDic.ContainsKey(attr)) { - light.SetAttrState(attr, commandDic[attr]); + try + { + light.SetAttrState(attr, commandDic[attr]); + } + catch { } } - catch { } } - } //杞崲鍦烘櫙鐨勫姛鑳藉璞� var sceneFunction = light.ConvertSceneFunction(); //鏌ヨ鏈夋病鏈夊瓨鍦� var temp = scene.functions.Find((obj) => obj.sid == sceneFunction.sid); //璧嬪�� if (temp != null) - { - temp = sceneFunction; + { + temp = sceneFunction; + } + else + { + scene.functions.Add(sceneFunction); + } } - else + var result = FunctionList.List.AddScene(scene, out serverScene); + Application.RunOnMainThread(() => { - scene.functions.Add(sceneFunction); - } + if (result == StateCode.SUCCESS) + { + scene.userSceneId = serverScene.userSceneId; + FunctionList.List.scenes.Add(scene); + backAction?.Invoke(scene); + this.Close(); + } + else + { + if (result == "124005") + IMessageCommon.Current.ShowErrorInfoAlter(Language.StringByID(StringId.GatewayOffline)); + else + IMessageCommon.Current.ShowErrorInfoAlter(result); + } + }); } - var result = FunctionList.List.AddScene(scene, out serverScene); - Application.RunOnMainThread(() => + catch { } + finally { - if (result == StateCode.SUCCESS) + Application.RunOnMainThread(() => { - scene = serverScene; - FunctionList.List.scenes.Add(scene); - backAction(scene); - this.Close(); - } - else - { - IMessageCommon.Current.ShowErrorInfoAlter(result); - } - }); - } - catch { } - finally - { - Application.RunOnMainThread(() => { - waitPage.Hide(); - waitPage.RemoveFromParent(); - }); - } - }) - { IsBackground = true, Priority = ThreadPriority.AboveNormal }.Start(); - }; + waitPage.Hide(); + waitPage.RemoveFromParent(); + }); + } + }) + { IsBackground = true, Priority = ThreadPriority.AboveNormal }.Start(); + }; + } + else + { + var btnCacel = new Button() + { + Height = Application.GetRealHeight(44), + TextAlignment = TextAlignment.Center, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.TextualColor, + TextID = StringId.Close, + }; + bottomView.AddChidren(btnCacel); + + //渚嬶細鍙充笅鍦嗚 澶у皬涓�50 + //int mRectCornerID = HDLUtils.RectCornerBottomRight; + //btnSave.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID); + + btnCacel.MouseUpEventHandler = (sender, e) => + { + this.Close(); + }; + + } @@ -805,8 +1012,8 @@ /// <param name="attrView"></param> void LoadDimmingAttrView(VerticalScrolViewLayout attrView) { - - commandDic.TryAdd(FunctionAttributeKey.Percent, "0"); + string briValue = ""; + commandDic.TryGetValue(FunctionAttributeKey.Brightness,out briValue); var dimmingView = new FrameLayout() { @@ -826,7 +1033,7 @@ TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextID = StringId.Brightness, }; - btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + commandDic[FunctionAttributeKey.Percent] + "%"; + btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + commandDic[FunctionAttributeKey.Brightness] + "%"; dimmingView.AddChidren(btnBrightnessText); @@ -856,7 +1063,7 @@ ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel, ProgressBarColor = CSS_Color.AuxiliaryColor1, MaxValue = 100, - Progress = Convert.ToInt32(commandDic[FunctionAttributeKey.Percent]), + Progress = Convert.ToInt32(commandDic[FunctionAttributeKey.Brightness]), SeekBarPadding = Application.GetRealWidth(20), IsProgressTextShow = false, ProgressChangeDelayTime = 0, @@ -866,8 +1073,24 @@ btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%"; }; dimmerBar.OnStopTrackingTouchEvent = (sender, e) => { - commandDic[FunctionAttributeKey.Percent] = dimmerBar.Progress.ToString(); + commandDic[FunctionAttributeKey.Brightness] = dimmerBar.Progress.ToString(); btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%"; + + foreach (var light in lights) + { + if (light.spk == SPK.LightSwitch) + { + d.Clear(); + d.Add(FunctionAttributeKey.OnOff, e > 0 ? "on" : "off"); + Control.Ins.SendWriteCommand(light, d); + } + else + { + d.Clear(); + d.Add(FunctionAttributeKey.Brightness, e.ToString()); + Control.Ins.SendWriteCommand(light, d); + } + } }; @@ -894,6 +1117,10 @@ void LoadCctAttrView(VerticalScrolViewLayout attrView) { #region 鑹叉俯 + + string valueStr = "2700"; + commandDic.TryGetValue(FunctionAttributeKey.CCT, out valueStr); + int value = Convert.ToInt32(valueStr) / 100; var cctView = new FrameLayout() { @@ -957,9 +1184,7 @@ barColorTemplatrue.SeekBarBackgroundColor = 0x00000000; cctView.AddChidren(barColorTemplatrue); barColorTemplatrue.Y = btnTempClolorMin.Y - (barColorTemplatrue.Height - btnTempClolorMin.Height) / 2; - var cct = 27; - //int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out cct); - barColorTemplatrue.Progress = cct; + barColorTemplatrue.Progress = value; //璁剧疆鍒濆鍊� btnTempClolor.Text = Language.StringByID(StringId.ColorTemperature) + " " + (barColorTemplatrue.Progress * 100 + "K"); barColorTemplatrue.OnProgressChangedEvent = (sender, e) => @@ -969,6 +1194,16 @@ barColorTemplatrue.OnStopTrackingTouchEvent = (sender, e) => { commandDic[FunctionAttributeKey.CCT] = (barColorTemplatrue.Progress*100).ToString(); + + d.Clear(); + d.Add(FunctionAttributeKey.CCT, (barColorTemplatrue.Progress * 100).ToString()); + foreach (var light in lightCCT) + { + if (light.spk == SPK.LightCCT) + { + Control.Ins.SendWriteCommand(light, d); + } + } }; //鍙樻洿鑳屾櫙鍥剧殑Y杞村潗鏍� btnColorTemplatrueBack.Y = barColorTemplatrue.Y + (barColorTemplatrue.Height - btnColorTemplatrueBack.Height) / 2; @@ -998,7 +1233,9 @@ { #region RGB - commandDic.TryAdd(FunctionAttributeKey.RGB, "255,255,255"); + + string value = "255,255,255"; + commandDic.TryGetValue(FunctionAttributeKey.RGB, out value); var rgbView = new FrameLayout() { @@ -1053,11 +1290,25 @@ //鍦嗙殑鍗婂緞(鑰冭檻杈圭晫,闇�瑕佽缃畠鐨勫崐寰勬瘮杈冨皬涓�鐐�) int circleR = colorPicker.Width / 2 - Application.GetRealWidth(12); - + colorPicker.MouseUpEventHandler = (sender2, e) => { + d.Clear(); + d.Add(FunctionAttributeKey.RGB, commandDic[FunctionAttributeKey.RGB]); + foreach (var light in lightCCT) + { + if (light.spk == SPK.LightCCT) + { + Control.Ins.SendWriteCommand(light, d); + } + } + }; colorPicker.ColorChaged += (sender2, e2) => { string rgbString = (e2[0] + "," + e2[1] + "," + e2[2]).ToString(); commandDic[FunctionAttributeKey.RGB] = rgbString; btnCurColor.BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(rgbString)); + foreach (var rgbTemp in lightRGB) + { + rgbTemp.SetAttrState(FunctionAttributeKey.RGB, rgbString); + } }; colorPicker.MouseDownEventHandler += (sender, e) => { @@ -1075,6 +1326,14 @@ btnWhiteRound.Visible = true; } }; + colorPicker.MouseUpEventHandler = (sender, e) => { + foreach (var rgbTemp in lightRGB) + { + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.RGB, tempLight.GetRGBcolorString(rgbTemp)); + Control.Ins.SendWriteCommand(rgbTemp, d, false, 0); + } + }; colorPicker.MouseMoveEventHandler += (sender, e) => { -- Gitblit v1.8.0