using System; using HDL_ON.Entity; using Shared; namespace HDL_ON.UI { public class ClassificaitionPublicBLL { public ClassificaitionPublicBLL() { } /// /// 更新功能状态 /// /// public void UpdataStates(Function updataFunction, FrameLayout view, VerticalScrolViewLayout scrolView) { try { Application.RunOnMainThread(() => { if (view == null || scrolView == null) { return; } for (int i = 0; i < scrolView.ChildrenCount; i++) { if (scrolView.GetChildren(i).Tag == null || scrolView.GetChildren(i).Tag.ToString() == "") { continue; } var viewTag = scrolView.GetChildren(i).Tag.ToString(); if (viewTag == updataFunction.functionCategory.ToString() + "-" + updataFunction.functionType + "-" + updataFunction.sid) { if (scrolView.GetChildren(i).GetType().Name == "FunctionControlZone") { var fcView = scrolView.GetChildren(i) as FrameLayout; for (int j = 0; j < fcView.ChildrenCount; j++) { if (fcView.GetChildren(j).Tag == null) continue; var cTag = fcView.GetChildren(j).Tag.ToString(); switch (updataFunction.functionCategory) { case FunctionCategory.Light: case FunctionCategory.Thermostat: #region 按钮状态更新 if (cTag == updataFunction.functionType + "_Switch_" + updataFunction.sid) { try { (fcView.GetChildren(j) as Button).IsSelected = updataFunction.on_off == "on"; } catch (Exception ex) { MainPage.Log($"{this.GetType()} error 0 : {ex.Message}"); } } #endregion #region 调光状态进度更新 else if (cTag == updataFunction.functionType + "_DimmerBar_" + updataFunction.sid) { try { if (updataFunction.on_off == "on") { (fcView.GetChildren(j) as DiyImageSeekBar).Progress = (updataFunction as Light).brightness; (fcView.GetChildren(j) as DiyImageSeekBar).ProgressBarColor = CSS.CSS_Color.AuxiliaryColor1; } else { (fcView.GetChildren(j) as DiyImageSeekBar).Progress = (updataFunction as Light).brightness; (fcView.GetChildren(j) as DiyImageSeekBar).ProgressBarColor = CSS.CSS_Color.PromptingColor2; } } catch (Exception ex) { MainPage.Log($"{this.GetType()} error 1 : {ex.Message}"); } } #endregion #region 功能状态信息更新 else if (cTag == updataFunction.functionType + "_laststates_" + updataFunction.sid) { try { (fcView.GetChildren(j) as Button).IsSelected = updataFunction.on_off == "on"; (fcView.GetChildren(j) as Button).Text = updataFunction.lastState; } catch (Exception ex) { MainPage.Log($"{this.GetType()} error 2 : {ex.Message}"); } } break; #endregion case FunctionCategory.Curtain: #region 窗帘更新 var uCurtain = updataFunction as Curtain; if (cTag == updataFunction.functionType + "_off_" + updataFunction.sid) { try { (fcView.GetChildren(j) as Button).IsSelected = uCurtain.on_off == "off"; } catch (Exception ex) { MainPage.Log($"{this.GetType()} error 3 : {ex.Message}"); } } else { try { (fcView.GetChildren(j) as Button).IsSelected = uCurtain.on_off == "on"; } catch (Exception ex) { MainPage.Log($"{this.GetType()} error 4 : {ex.Message}"); } } #endregion break; } } } } } }); } catch (Exception ex) { MainPage.Log($"RoomControlZone Updata States error : {ex.Message}"); } } //public static void UpdataLightStates(Light uLight) //{ // Application.RunOnMainThread(() => // { // if (bodyDiv == null) // return; // if(uLight.sid == function.sid&& uLight.functionType == function.functionType) // { // for (int i = 0; i < bodyDiv.ChildrenCount; i++) // { // var c1 = bodyDiv.GetChildren(i); // if (c1.Tag != null && c1.Tag.ToString() == "") // { // if (c1.Tag.ToString() == function.functionType + "_Switch_" + function.sid) // { // var btn = c1 as Button; // btn.IsSelected = uLight.on_off == 1; // } // else if (c1.Tag.ToString() == function.functionType + "_DimmerBar_" + function.sid) // { // var bar = c1 as DiyImageSeekBar; // bar.ProgressBarColor = uLight.on_off == 1 ? CSS.CSS_Color.AuxiliaryColor1 : CSS.CSS_Color.PromptingColor2; // } // } // } // } // }); //} } }