| | |
| | | /// <param name="updataFunction"></param> |
| | | public void UpdataStates(Function updataFunction, FrameLayout view, VerticalScrolViewLayout scrolView, Room room = null) |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | Application.RunOnMainThread((Action)(() => |
| | | { |
| | | |
| | | try |
| | |
| | | if (fcView.GetChildren(j).Tag == null) |
| | | continue; |
| | | var cTag = fcView.GetChildren(j).Tag.ToString(); |
| | | switch (updataFunction.functionCategory) |
| | | switch (updataFunction.Spk_Prefix) |
| | | { |
| | | case FunctionCategory.Light: |
| | | case FunctionCategory.Thermostat: |
| | | case FunctionCategory.AC: |
| | | case FunctionCategory.FloorHeat: |
| | | case FunctionCategory.Electric: |
| | | case FunctionCategory.AirFresh: |
| | | #region 按钮状态更新 |
| | | if (cTag == updataFunction.sid + "_Switch") |
| | | { |
| | |
| | | { |
| | | try |
| | | { |
| | | (fcView.GetChildren(j) as DiyImageSeekBar).Progress = Convert.ToInt32(updataFunction.GetAttrState(FunctionAttributeKey.Brightness)); |
| | | if (updataFunction.trait_on_off.curValue.ToString() == "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; |
| | | } |
| | | } |
| | |
| | | } |
| | | #endregion |
| | | #region 功能状态信息更新 |
| | | else if (cTag == updataFunction.functionType + "_laststates_" + updataFunction.sid) |
| | | else if (cTag == updataFunction.spk + "_laststates_" + updataFunction.sid) |
| | | { |
| | | try |
| | | { |
| | |
| | | #endregion |
| | | case FunctionCategory.Curtain: |
| | | #region 窗帘更新 |
| | | var uCurtain = updataFunction as Curtain; |
| | | switch (uCurtain.trait_on_off.curValue.ToString()) |
| | | var percent = updataFunction.GetAttrState(FunctionAttributeKey.OnOff) == "off" ? 0 : 100; |
| | | if(updataFunction.GetAttributes().Contains(FunctionAttributeKey.Percent)) |
| | | { |
| | | case "off": |
| | | if (cTag == updataFunction.sid + "_off") |
| | | string percentString = updataFunction.GetAttrState(FunctionAttributeKey.Percent); |
| | | int.TryParse(percentString, out percent); |
| | | } |
| | | if (percent == 0) |
| | | { |
| | | if (cTag == updataFunction.sid + "_off") |
| | | { |
| | | try |
| | | { |
| | | try |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = true; |
| | | } |
| | | catch { } |
| | | (fcView.GetChildren(j) as Button).IsSelected = true; |
| | | } |
| | | else |
| | | catch { } |
| | | } |
| | | else |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = false; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (cTag == updataFunction.sid + "_on") |
| | | { |
| | | try |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = false; |
| | | (fcView.GetChildren(j) as Button).IsSelected = true; |
| | | } |
| | | break; |
| | | case "on": |
| | | if (cTag == updataFunction.sid + "_on") |
| | | { |
| | | try |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = true; |
| | | } |
| | | catch { } |
| | | } |
| | | else |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = false; |
| | | } |
| | | break; |
| | | case "stop": |
| | | if (cTag == updataFunction.sid + "_stop") |
| | | { |
| | | try |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = true; |
| | | } |
| | | catch { } |
| | | } |
| | | else |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = false; |
| | | } |
| | | break; |
| | | catch { } |
| | | } |
| | | else |
| | | { |
| | | (fcView.GetChildren(j) as Button).IsSelected = false; |
| | | } |
| | | } |
| | | #endregion |
| | | break; |
| | | case FunctionCategory.Music: |
| | | #region 音乐更新 |
| | | var uMusic = updataFunction as Music.A31MusicModel; |
| | | if (cTag == updataFunction.functionType + "_State_" + updataFunction.sid) |
| | | if (cTag == updataFunction.spk + "_State_" + updataFunction.sid) |
| | | { |
| | | try |
| | | { |
| | |
| | | { |
| | | MainPage.Log($"RoomControlZone Updata States error : {ex.Message}"); |
| | | } |
| | | }); |
| | | })); |
| | | } |
| | | } |
| | | } |