From efad979b6fae76fb37a4de7e94e6bac0a85cb72c Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期二, 30 十一月 2021 13:14:28 +0800 Subject: [PATCH] 2021-11-30 1.修复乐橙Android,没调用拒接接口问题。 --- HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs | 265 +++++++++++++++++++++++++--------------------------- 1 files changed, 129 insertions(+), 136 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs index 99b4656..f05323d 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs @@ -81,7 +81,7 @@ /// </summary> Action refreshFunctionRowAction; /// <summary> - /// 鍥炴帀鏇存柊 + /// 鍥炶皟鏇存柊 /// </summary> Action backAction; public SceneAddPage(Scene s, Action act) @@ -90,35 +90,31 @@ scene = s; backAction = act; - refreshFunctionRowAction = () => { LoadFunctionRow(functionListView); }; } - public void LoadPage( Action backRefresh) + public void LoadPage() { - new TopViewDiv(bodyView, Language.StringByID(StringId.NewScene)).LoadTopView(backRefresh); - initPage(); - } - - void initPage() - { + new TopViewDiv(bodyView, Language.StringByID(StringId.NewScene)).LoadTopView(); + bodyView.BackgroundColor = CSS_Color.MainBackgroundColor; - VerticalScrolViewLayout contentView = new VerticalScrolViewLayout() + var contentView = new VerticalScrolViewLayout() { Y = Application.GetRealHeight(64), Height = Application.GetRealHeight(603 - 50), + //BackgroundColor = CSS_Color.DividingLineColor, }; bodyView.AddChidren(contentView); contentView.AddChidren(new Button() { Height = Application.GetRealWidth(12) }); - FrameLayout sceneBgView = new FrameLayout() + var sceneBgView = new FrameLayout() { Gravity = Gravity.CenterHorizontal, Width = Application.GetRealWidth(252), - Height = Application.GetRealWidth(188 + 24), + Height = Application.GetRealWidth(184), Radius = (uint)Application.GetRealWidth(12), BackgroundColor = CSS_Color.MainBackgroundColor, }; @@ -135,7 +131,6 @@ //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶 ImageUtlis.Current.LoadLocalOrNetworkImages(scene.ImagePath, addSceneImageView); - #region 鍦烘櫙鍚嶇Оrow sceneNameView = new FrameLayout() @@ -202,7 +197,7 @@ TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.TextFontSize, - TextID = StringId.BelongToZone, + TextID = StringId.LocationManagement, }; belongToZoneRow.AddChidren(btnBelongToTitle); @@ -223,7 +218,7 @@ TextAlignment = TextAlignment.CenterRight, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.TextFontSize, - Text = scene.GetRoomListName() == "" ? Language.StringByID(StringId.WholeHouseScene) : scene.GetRoomListName() + Text = scene.GetRoomListName() == "" ? Language.StringByID(StringId.WholeZone) : scene.GetRoomListName() }; belongToZoneRow.AddChidren(btnZoneName); @@ -261,7 +256,7 @@ TextAlignment = TextAlignment.CenterRight, TextColor = CSS_Color.PromptingColor1, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, - Text = scene.delayText + Text = scene.GetDelayText() }; sceneDelayRow.AddChidren(btnSceneDelayInfo); @@ -276,10 +271,20 @@ }; sceneDelayRow.AddChidren(btnSceneDelayTitle); - btnSceneDelayTitle.MouseUpEventHandler = (sender, e) => { - new PublicAssmebly().SetSceneDelayDialog(scene, btnSceneDelayInfo); + Action<string> action = (obj) => { + scene.delay = obj; + btnSceneDelayInfo.Text = scene.GetDelayText(); + }; + Dictionary<string, string> items = new Dictionary<string, string>(); + items.Add("30", "30s"); + items.Add("60", "1min"); + items.Add("120", "2min"); + items.Add("300", "5min"); + new PublicAssmebly().SetSceneDelayDialog( action ,scene.delay); + + }; contentView.AddChidren(new Button() @@ -314,34 +319,35 @@ TextAlignment = TextAlignment.CenterLeft, TextColor = CSS_Color.MainColor, TextSize = CSS_FontSize.SubheadingFontSize, - TextID = StringId.AddFunction, + TextID = StringId.FunctionManagement, IsBold = true, }; addFunctionRow.AddChidren(btnAddFunctionTitle); functionListView = new VerticalScrolViewLayout() { - Height = 0, + Height = Application.GetRealHeight(228+48), + BackgroundColor = CSS_Color.DividingLineColor, + ScrollEnabled = false, }; contentView.AddChidren(functionListView); LoadFunctionRow(functionListView); - Button btnLine1 = new Button() - { - //Y = sceneDelayRow.Bottom, - Height = Application.GetRealHeight(8), - BackgroundColor = CSS_Color.DividingLineColor, - }; - contentView.AddChidren(btnLine1); + //Button btnLine1 = new Button() + //{ + // //Y = sceneDelayRow.Bottom, + // Height = Application.GetRealHeight(8), + //}; + //contentView.AddChidren(btnLine1); - Button btnLine2 = new Button() - { - //Y = sceneDelayRow.Bottom, - Height = Application.GetRealHeight(228), - BackgroundColor = CSS_Color.DividingLineColor, - }; - contentView.AddChidren(btnLine2); + //Button btnLine2 = new Button() + //{ + // //Y = sceneDelayRow.Bottom, + // Height = Application.GetRealHeight(228), + // BackgroundColor = CSS_Color.DividingLineColor, + //}; + //contentView.AddChidren(btnLine2); #endregion Button btnBottomLine = new Button() @@ -367,13 +373,18 @@ LoadEventList(); } + + /// <summary> /// 鍔犺浇鍔熻兘鍒楄〃 /// </summary> void LoadFunctionRow(VerticalScrolViewLayout functionListView) { functionListView.RemoveAll(); - functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); + if (scene.functions.Count > 4) + { + functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); + } foreach (var scenefunction in scene.functions) { var row = new RowLayout() @@ -401,8 +412,6 @@ }; row.AddChidren(btnRight); - - var btnFunctionInfo = new Button() { Width = Application.GetRealWidth(327), @@ -427,7 +436,7 @@ if (Convert.ToInt32(scenefunction.delay) > 0) { - btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + scenefunction.localFunction.delayText; + btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + new Scene() { delay = scenefunction.delay }.GetDelayText(); } else { @@ -457,14 +466,7 @@ }; row.AddChidren(btnFunctionFloorAndRoom); - btnFunctionName.MouseUpEventHandler = (sender, e) => - { - var ssf = new SceneFunctionInfoEditPage(scene, scenefunction, refreshFunctionRowAction); - MainPage.BasePageView.AddChidren(ssf); - ssf.LoadPage(); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; - }; - btnFunctionFloorAndRoom.MouseUpEventHandler = (sender, e) => + EventHandler<MouseEventArgs> skipEvent= (sender, e) => { var ssf = new SceneFunctionInfoEditPage(scene, scenefunction, refreshFunctionRowAction); MainPage.BasePageView.AddChidren(ssf); @@ -472,6 +474,8 @@ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; + btnFunctionName.MouseUpEventHandler = skipEvent; + btnFunctionFloorAndRoom.MouseUpEventHandler = skipEvent; Button btnDelSceneFunction = new Button() { @@ -482,13 +486,12 @@ row.AddRightView(btnDelSceneFunction); btnDelSceneFunction.MouseUpEventHandler = (sender, e) => { scene.functions.Remove(scenefunction); - scene.SaveSceneData(true); row.RemoveFromParent(); - functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); - //LoadFunctionRow(functionListView); + if (scene.functions.Count > 4) + { + functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); + } }; - - } } @@ -506,66 +509,37 @@ if (sfs.value == "off") return Language.StringByID(StringId.Close); } - if (sfs.key == FunctionAttributeKey.Mode) - { - - } } - FunctionAttributes perTrait; - switch (sceneFunction.localFunction.functionType) + sceneFunctionInfo += Language.StringByID(StringId.Open); + + var modeState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Mode); + var tempState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SetTemp); + var fanState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.FanSpeed); + if (modeState != null) { - case FunctionType.AC: - sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText(); - sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").curValue.ToString() + - sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").uintString; - sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "fan").GetCurValueText(); - break; - case FunctionType.FloorHeating: - sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText(); - sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").curValue.ToString() + - sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").uintString; - break; - case FunctionType.Dimmer: - perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness"); - if (perTrait != null) - { - sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%"; - } - else - { - sceneFunctionInfo += Language.StringByID(StringId.Open); - } - break; - case FunctionType.Relay: - sceneFunctionInfo += Language.StringByID(StringId.Open); - break; - case FunctionType.RGB: - perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent"); - if (perTrait != null) - { - sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%"; - } - else - { - sceneFunctionInfo += Language.StringByID(StringId.Open); - } - break; - case FunctionType.Curtain: - sceneFunctionInfo += Language.StringByID(StringId.Open); - break; - case FunctionType.MotorCurtain: - perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent"); - if (perTrait != null) - { - sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent").curValue.ToString() + "%"; - } - else - { - sceneFunctionInfo += Language.StringByID(StringId.Open); - } - break; + sceneFunctionInfo += modeState.GetValueText(); } + if (tempState != null) + { + sceneFunctionInfo += tempState.GetValueText(); + sceneFunctionInfo += tempState.GetUintString(); + } + if (fanState != null) + { + sceneFunctionInfo += tempState.GetValueText(); + } + var briState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness); + if (briState != null) + { + sceneFunctionInfo += briState.value + "%"; + } + var perState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Percent); + if (perState != null) + { + sceneFunctionInfo += perState.value + "%"; + } + return sceneFunctionInfo; } @@ -697,7 +671,7 @@ void LoadEvent_ChangeFunctionList() { btnAddFunctionTitle.MouseUpEventHandler = (sender, e) => { - var sefp = new SceneFunctionListEditPage(scene, refreshFunctionRowAction); + var sefp = new SceneFunctionListChoosePage(scene, refreshFunctionRowAction); MainPage.BasePageView.AddChidren(sefp); sefp.LoadPage(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; @@ -803,6 +777,7 @@ pictureOptionView.Parent.RemoveFromParent(); Action<string> action = (obj) => { scene.ImagePath = obj; + addSceneImageView.ImageBytes = null;//瑙e喅鏈塈mageBytes涓嶅姞杞絀magePath addSceneImageView.ImagePath = scene.ImagePath; }; @@ -837,47 +812,65 @@ } /// <summary> + /// 鍒涘缓鍦烘櫙 /// 瀹屾垚鎸夐挳鐐瑰嚮浜嬩欢 /// </summary> void LoadEvent_CompleteEvent() { btnComplete.MouseUpEventHandler += (sender, e) => { - if (btnComplete.TextID == StringId.Complete) + if (string.IsNullOrEmpty(scene.name)) { - if (string.IsNullOrEmpty(scene.name)) + new Tip() { - new Tip() - { - CloseTime = 1, - Text = Language.StringByID(StringId.SceneNameCannotBeEmpty), - Direction = AMPopTipDirection.None, - }.Show(bodyView); + 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); return; } - foreach (var tempRoom in FunctionList.List.scenes) - { - if (scene.name == tempRoom.name) - { - new PublicAssmebly().TipMsg(StringId.Tip, StringId.SceneNameAlreadyExists); - return; - } - } - scene.SaveSceneData(true); - FunctionList.List.scenes.Add(scene); - backAction(); - this.RemoveFromParent(); } - if (btnComplete.TextID == StringId.Del) + var waitPage = new Loading(); + MainPage.BaseView.AddChidren(waitPage); + waitPage.Start(Language.StringByID(StringId.PleaseWait)); + new Thread(() => { - Action action = () => + try { - FunctionList.List.DeleteScene(scene, true); - backAction(); - this.RemoveFromParent(); - }; - new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DeleteSceneTip, action); - }; + var serverScene = new Scene(); + var result = FunctionList.List.AddScene(scene, out serverScene); + Application.RunOnMainThread(() => + { + if (result == StateCode.SUCCESS) + { + scene = serverScene; + FunctionList.List.scenes.Add(scene); + backAction(); + RemoveFromParent(); + } + else + { + IMessageCommon.Current.ShowErrorInfoAlter(result); + } + }); + } + catch { } + finally + { + Application.RunOnMainThread(() => { + waitPage.Hide(); + waitPage.RemoveFromParent(); + }); + } + }) + { IsBackground = true, Priority = ThreadPriority.AboveNormal }.Start(); }; } -- Gitblit v1.8.0