using System;
|
using HDL_ON.Entity;
|
using Shared;
|
|
namespace HDL_ON.UI
|
{
|
public class ClassificaitionPublicBLL
|
{
|
public ClassificaitionPublicBLL()
|
{
|
}
|
|
/// <summary>
|
/// 更新功能状态
|
/// </summary>
|
/// <param name="updataFunction"></param>
|
public void UpdataStates(Function updataFunction, FrameLayout view, VerticalScrolViewLayout scrolView,Room room=null)
|
{
|
try
|
{
|
Application.RunOnMainThread(() =>
|
{
|
if (view == null || scrolView == null)
|
{
|
return;
|
}
|
if(!scrolView.ScrollEnabled)
|
{
|
return;
|
}
|
if (room != null)
|
{
|
if (!updataFunction.roomIdList.Contains(room.sid))
|
{
|
return;
|
}
|
}
|
//if(updataFunction.roomIdList.Contains(Room))
|
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.sid)
|
{
|
if (scrolView.GetChildren(i).Tag != null && scrolView.GetChildren(i).Tag.ToString() == updataFunction.sid)
|
{
|
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.sid + "_Switch")
|
{
|
try
|
{
|
(fcView.GetChildren(j) as Button).IsSelected = updataFunction.trait_on_off.value.ToString() == "on";
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"{this.GetType()} error 0 : {ex.Message}");
|
}
|
}
|
#endregion
|
#region 调光状态进度更新
|
else if (cTag == updataFunction.sid + "_DimmerBar")
|
{
|
try
|
{
|
if (updataFunction.trait_on_off.value.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;
|
}
|
}
|
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.trait_on_off.value.ToString() == "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.trait_on_off.value.ToString() == "off";
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"{this.GetType()} error 3 : {ex.Message}");
|
}
|
}
|
else
|
{
|
try
|
{
|
(fcView.GetChildren(j) as Button).IsSelected = uCurtain.trait_on_off.value.ToString() == "on";
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"{this.GetType()} error 4 : {ex.Message}");
|
}
|
}
|
#endregion
|
break;
|
case FunctionCategory.Music:
|
#region 音乐更新
|
var uMusic = updataFunction as Music.A31MusicModel;
|
if (cTag == updataFunction.functionType + "_State_" + updataFunction.sid)
|
{
|
try
|
{
|
(fcView.GetChildren(j) as Button).IsSelected = uMusic.A31PlayStatus.status == "play" ;
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"{this.GetType()} error 3 : {ex.Message}");
|
}
|
}
|
#endregion
|
break;
|
}
|
}
|
}
|
}
|
}
|
});
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"RoomControlZone Updata States error : {ex.Message}");
|
}
|
}
|
|
}
|
}
|