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;
// }
// }
// }
// }
// });
//}
}
}