From 592974441a4df95fffd9167c90192da1a390b1c2 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期二, 06 六月 2023 11:51:12 +0800 Subject: [PATCH] Merge branch 'Dev-Branch' --- HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs | 203 ++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 161 insertions(+), 42 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs index 656fa5f..a0aef90 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); @@ -303,11 +416,17 @@ 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 + IsSelected = functions.Find((obj) => obj.deviceId == function.deviceId) != null, + Tag = "ChooseIcon" }; + if (DB_ResidenceData.Instance.HomeGateway.isSupportGroupControl) + { + btnSelect.X = Application.GetRealWidth(323); + } bodyDiv.AddChidren(btnSelect); btnSelect.MouseUpEventHandler = (sender, e) => { + Application.HideSoftInput(); btnSelect.IsSelected = !btnSelect.IsSelected; if(btnSelect.IsSelected) { @@ -319,17 +438,17 @@ } else { - var removeTemp = functions.Find((obj) => obj.deviceId == function.deviceId); + var removeTemp = functions.Find((obj) => obj.sid == function.sid); if (removeTemp != null) { functions.Remove(removeTemp); } } ///鍒锋柊鐣岄潰 - if (functions.Count == 0 || functions.Count == 1) - { + //if (functions.Count == 0 || functions.Count == 1) + //{ action(); - } + //} }; } @@ -405,7 +524,7 @@ { if (!commandDic.ContainsKey(FunctionAttributeKey.Brightness)) { - commandDic.Add(FunctionAttributeKey.Brightness, lightCCT[0].GetAttrState(FunctionAttributeKey.Brightness)); + commandDic.Add(FunctionAttributeKey.Brightness, lightDimming[0].GetAttrState(FunctionAttributeKey.Brightness)); } } @@ -888,7 +1007,7 @@ void LoadDimmingAttrView(VerticalScrolViewLayout attrView) { string briValue = ""; - commandDic.TryGetValue(FunctionAttributeKey.Percent,out briValue); + commandDic.TryGetValue(FunctionAttributeKey.Brightness,out briValue); var dimmingView = new FrameLayout() { @@ -908,7 +1027,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); @@ -938,7 +1057,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, @@ -948,7 +1067,7 @@ 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) @@ -994,7 +1113,7 @@ #region 鑹叉俯 string valueStr = "2700"; - commandDic.TryGetValue(FunctionAttributeKey.Percent, out valueStr); + commandDic.TryGetValue(FunctionAttributeKey.CCT, out valueStr); int value = Convert.ToInt32(valueStr) / 100; var cctView = new FrameLayout() @@ -1110,7 +1229,7 @@ #region RGB string value = "255,255,255"; - commandDic.TryGetValue(FunctionAttributeKey.Percent, out value); + commandDic.TryGetValue(FunctionAttributeKey.RGB, out value); var rgbView = new FrameLayout() { -- Gitblit v1.8.0