using System;
|
using System.Threading;
|
|
namespace Shared.SimpleControl.Phone
|
{
|
public class UserDeviceToUniversalDevice : FrameLayout
|
{
|
/// <summary>
|
/// 当前设备界面
|
/// </summary>
|
static UserDeviceToUniversalDevice curView;
|
VerticalScrolViewLayout equipmentListScrolView;
|
VerticalScrolViewLayout bodyScrolView;
|
|
/// <summary>
|
/// 构造函数
|
/// </summary>
|
public UserDeviceToUniversalDevice ()
|
{
|
curView = this;
|
}
|
|
/// <summary>
|
/// 更新当前灯光
|
/// </summary>
|
public static void UpdateStatus (string updataFlag, byte brightness)
|
{
|
System.Threading.Tasks.Task.Run (() => {
|
Application.RunOnMainThread (() => {
|
if (curView == null) {
|
return;
|
}
|
if (curView.equipmentListScrolView.Decelerating) {
|
return;
|
}
|
for (int i = 0; i < curView.equipmentListScrolView.ChildrenCount; i++) {
|
if (curView.equipmentListScrolView.GetChildren (i).GetType () == typeof (FrameLayout)) {
|
var lightRow = (FrameLayout)curView.equipmentListScrolView.GetChildren (i);
|
var o = lightRow.GetTagByKey ("UpdataKey");
|
if (o != null && o.ToString () == updataFlag) {
|
for (int j = 0; j < lightRow.ChildrenCount; j++) {
|
if (lightRow.GetChildren (j).GetType () == typeof (Button)) {
|
|
}
|
}
|
}
|
}
|
}
|
});
|
});
|
}
|
/// <summary>
|
/// 通过设备类型方式选择设备
|
/// </summary>
|
public void ShowUniversalDevice ()
|
{
|
#region 标题
|
var topView = new FrameLayout () {
|
Y = Application.GetRealHeight (36),
|
Height = Application.GetRealHeight (90),
|
BackgroundColor = SkinStyle.Current.MainColor,
|
};
|
AddChidren (topView);
|
|
var title = new Button () {
|
TextAlignment = TextAlignment.Center,
|
Text = Language.StringByID (R.MyInternationalizationString.UniversalDevice),
|
TextColor = SkinStyle.Current.TextColor1,
|
TextSize = 19,
|
};
|
topView.AddChidren (title);
|
|
var logo = new Button () {
|
Width = Application.GetRealWidth (154),
|
Height = Application.GetRealHeight (90),
|
X = Application.GetRealWidth (486),
|
UnSelectedImagePath = MainPage.LogoString,
|
};
|
topView.AddChidren (logo);
|
var back = new Button () {
|
Height = Application.GetRealHeight (90),
|
Width = Application.GetRealWidth (85),
|
UnSelectedImagePath = "Item/Back.png",
|
SelectedImagePath = "Item/BackSelected.png",
|
};
|
topView.AddChidren (back);
|
back.MouseUpEventHandler += (sender, e) => {
|
(Parent as PageLayout).PageIndex -= 1;
|
curView = null;
|
};
|
|
#endregion
|
|
bodyScrolView = new VerticalScrolViewLayout () {
|
Height = Application.GetRealHeight (Application.DesignHeight - 126),
|
Y = Application.GetRealHeight (126),
|
};
|
AddChidren (bodyScrolView);
|
|
//显示有多少个房间,每个房间有多少个灯开
|
foreach (var room in Room.Lists) {
|
if (string.IsNullOrEmpty(room.Name)) {
|
continue;
|
}
|
var udList = room.DeviceList.FindAll ((obj) => { return obj.Type == DeviceType.UniversalDevice; });
|
if (udList == null || udList.Count == 0) {
|
continue;
|
}
|
FrameLayout roomView = new FrameLayout () {
|
Height = Application.GetRealHeight (110),
|
BackgroundColor = SkinStyle.Current.ViewColor,
|
Tag = room.Name
|
};
|
bodyScrolView.AddChidren (roomView);
|
Button btnRoomNull = new Button () {
|
Height = 1,
|
SelectedBackgroundColor = SkinStyle.Current.MainColor,
|
BackgroundColor = SkinStyle.Current.MainColor,
|
};
|
bodyScrolView.AddChidren (btnRoomNull);
|
Button btnPoint = new Button () {
|
Width = Application.GetRealWidth (10),
|
Height = Application.GetRealHeight (10),
|
X = Application.GetRealWidth (30),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "Item/Point.png",
|
SelectedImagePath = "Item/Point.png",
|
};
|
roomView.AddChidren (btnPoint);
|
Button btnRoomName = new Button () {
|
Text = room.Name,
|
X = btnPoint.Right + Application.GetRealWidth (20),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = SkinStyle.Current.TextColor1,
|
SelectedTextColor = SkinStyle.Current.TextColor1,
|
};
|
roomView.AddChidren (btnRoomName);
|
|
EditText btnNumber = new EditText () {
|
Width = Application.GetMinRealAverage (50),
|
Height = Application.GetMinRealAverage (35),
|
X = Application.GetRealWidth (640 - 100 - 50 - 20),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "Item/LightingCount.png",
|
SelectedImagePath = "Item/LightingCount.png",
|
Enable = false,
|
Text = udList.Count.ToString (),
|
TextColor = SkinStyle.Current.TextColor1,
|
TextAlignment = TextAlignment.Center,
|
Tag = room.Name
|
};
|
roomView.AddChidren (btnNumber);
|
|
Button btnLightIcon = new Button () {
|
Width = Application.GetRealWidth (50),
|
Height = Application.GetRealHeight (50),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "UniversalDevice/UniversalDevice.png",
|
SelectedImagePath = "UniversalDevice/UniversalDeviceOn.png",
|
X = btnNumber.Right + Application.GetRealWidth(30)
|
};
|
roomView.AddChidren (btnLightIcon);
|
|
btnRoomName.MouseUpEventHandler += (sender, e) => {
|
var userUniversalPage = new UserUniversalPage (room);
|
UserMiddle.DevicePageView.AddChidren (userUniversalPage);
|
userUniversalPage.ShowUniversalRoom ();
|
UserMiddle.DevicePageView.PageIndex = 2;
|
};
|
}
|
|
#region 显示全部
|
FrameLayout ShowAllView = new FrameLayout () {
|
Height = Application.GetRealHeight (85),
|
BackgroundColor = SkinStyle.Current.MainColor,
|
};
|
bodyScrolView.AddChidren (ShowAllView);
|
|
Button btnShowAll = new Button () {
|
X = Application.GetRealWidth (20),
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = Language.StringByID (R.MyInternationalizationString.Device),
|
TextColor = SkinStyle.Current.TextColor1,
|
SelectedTextColor = SkinStyle.Current.TextColor1
|
};
|
ShowAllView.AddChidren (btnShowAll);
|
|
Button downSelectedButton = new Button () {
|
X = Application.GetRealWidth (550),
|
Height = Application.GetRealHeight (50),
|
Width = Application.GetRealWidth (55),
|
UnSelectedImagePath = "Item/Down.png",
|
SelectedImagePath = "Item/DownSelected.png",
|
Gravity = Gravity.CenterVertical,
|
IsSelected = true,
|
};
|
ShowAllView.AddChidren (downSelectedButton);
|
|
//显示出所有
|
equipmentListScrolView = new VerticalScrolViewLayout () {
|
Height = bodyScrolView.Height - ShowAllView.Height,
|
};
|
bodyScrolView.AddChidren (equipmentListScrolView);
|
int LightCount = 0;
|
|
EventHandler<MouseEventArgs> eHandler = (sender, e) => {
|
btnShowAll.IsSelected = !btnShowAll.IsSelected;
|
downSelectedButton.IsSelected = btnShowAll.IsSelected;
|
UserConfig.Instance.ShowRoomLightList = btnShowAll.IsSelected;
|
UserConfig.Instance.SaveUserConfig ();
|
if (btnShowAll.IsSelected) {
|
equipmentListScrolView.RemoveAll ();
|
foreach (var room in Room.Lists) {
|
if (string.IsNullOrEmpty(room.Name)) {
|
continue;
|
}
|
foreach (var common in room.DeviceList) {
|
if (common.Type == DeviceType.UniversalDevice) {
|
LightCount++;
|
var udDevice = common as UniversalDevice;
|
byte sendLoopID = udDevice.LoopID;
|
|
FrameLayout universalView = new FrameLayout () {
|
Height = Application.GetRealHeight (130),
|
Radius = 1,
|
BorderColor = SkinStyle.Current.Transparent,
|
BorderWidth = (uint)Application.GetMinRealAverage (5),
|
};
|
universalView.AddTag ("UpdataKey", common.CommonLoopID);
|
equipmentListScrolView.AddChidren (universalView);
|
Button btnLightViewBottomNull = new Button () {
|
Y = Application.GetRealHeight (127),
|
Height = Application.GetRealHeight (3),
|
BackgroundColor = SkinStyle.Current.MainColor,
|
SelectedBackgroundColor = SkinStyle.Current.MainColor,
|
};
|
universalView.AddChidren (btnLightViewBottomNull);
|
|
//灯名
|
var tempDeviceName = new Button () {
|
X = Application.GetRealWidth (20),
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = room.Name + "-" + udDevice.Name,
|
TextColor = SkinStyle.Current.TextColor1,
|
SelectedTextColor = SkinStyle.Current.TextColor1,
|
Width = Application.GetRealWidth (400),
|
//Enable = false,
|
};
|
universalView.AddChidren (tempDeviceName);
|
if((int)udDevice.CustomTextSize != 0) {
|
tempDeviceName.TextSize = (int)udDevice.CustomTextSize;
|
}
|
|
tempDeviceName.MouseLongEventHandler += (sende4r, ob) => {
|
var changeSizeDialog = new Dialog ();
|
|
var changeBodyView = new FrameLayout () {
|
Gravity = Gravity.Center,
|
Width = Application.GetRealWidth(500),
|
Height = Application.GetRealHeight(400),
|
BackgroundColor = SkinStyle.Current.ViewColor,
|
BorderColor = SkinStyle.Current.Transparent,
|
BorderWidth = 1,
|
Radius = 5,
|
};
|
changeSizeDialog.AddChidren (changeBodyView);
|
udDevice.CustomTextSize = tempDeviceName.TextSize;
|
var btnChangeName = new Button () {
|
Y = Application.GetRealHeight(40),
|
X = Application.GetRealWidth(50),
|
Width = Application.GetRealWidth(400),
|
Height = Application.GetRealHeight(130),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextSize = tempDeviceName.TextSize,
|
Text = udDevice.Name,
|
TextColor = SkinStyle.Current.TextColor1,
|
BorderColor = SkinStyle.Current.BorderColor,
|
BorderWidth = 1,
|
BackgroundColor = SkinStyle.Current.ButtonColor,
|
Radius = 1,
|
};
|
changeBodyView.AddChidren (btnChangeName);
|
|
var btnSmaller = new Button () {
|
X = Application.GetRealWidth(50),
|
Y = btnChangeName.Bottom + Application.GetRealHeight(40),
|
Width = Application.GetRealHeight(150),
|
Height = Application.GetRealHeight(80),
|
TextColor = SkinStyle.Current.TextColor1,
|
TextID = R.MyInternationalizationString.Smaller,
|
TextAlignment = TextAlignment.Center,
|
BorderWidth = 2,
|
BorderColor = SkinStyle.Current.BorderColor,
|
BackgroundColor = SkinStyle.Current.ButtonColor,
|
Radius = 5,
|
};
|
changeBodyView.AddChidren (btnSmaller);
|
btnSmaller.MouseUpEventHandler += (ddfa, fds) => {
|
if (udDevice.CustomTextSize < 7)
|
return;
|
tempDeviceName.TextSize = btnChangeName.TextSize = udDevice.CustomTextSize --;
|
Console.WriteLine ("btnChangeName.TextSize : " + btnChangeName.TextSize);
|
btnChangeName.Text = udDevice.Name;
|
};
|
|
var btnBigger = new Button () {
|
X = btnSmaller.Right + Application.GetRealWidth (100),
|
Y = btnChangeName.Bottom + Application.GetRealHeight (40),
|
Width = Application.GetRealHeight (150),
|
Height = Application.GetRealHeight (80),
|
TextColor = SkinStyle.Current.TextColor1,
|
TextID = R.MyInternationalizationString.Bigger,
|
TextAlignment = TextAlignment.Center,
|
BorderWidth = 2,
|
BorderColor = SkinStyle.Current.BorderColor,
|
BackgroundColor = SkinStyle.Current.ButtonColor,
|
Radius = 5,
|
};
|
changeBodyView.AddChidren (btnBigger);
|
|
btnBigger.MouseUpEventHandler += (ddfa, fds) => {
|
if (udDevice.CustomTextSize >= 50)
|
return;
|
tempDeviceName.TextSize = btnChangeName.TextSize = udDevice.CustomTextSize ++;
|
Console.WriteLine ("btnChangeName.TextSize : "+btnChangeName.TextSize);
|
btnChangeName.Text = udDevice.Name;
|
};
|
|
var btnSave = new Button () {
|
Y = Application.GetRealHeight(400-91),
|
Height = Application.GetRealHeight(90),
|
BackgroundColor = SkinStyle.Current.ButtonColor,
|
TextColor = SkinStyle.Current.TextColor1,
|
TextID = R.MyInternationalizationString.SAVE,
|
TextAlignment = TextAlignment.Center,
|
};
|
changeBodyView.AddChidren (btnSave);
|
btnSave.MouseUpEventHandler += (dd, dda) => {
|
IO.FileUtils.SaveEquipmentMessage (udDevice, udDevice.LoopID.ToString ());
|
changeSizeDialog.Close ();
|
};
|
|
changeSizeDialog.Show ();
|
};
|
|
Button tempSwitch = new Button () {
|
Width = Application.GetRealWidth (110),
|
Height = Application.GetRealHeight (70),
|
X = Application.GetRealWidth (640 - 110 - 20),
|
Gravity = Gravity.CenterVertical,
|
Radius = 2,
|
BorderColor = SkinStyle.Current.BorderColor,
|
TextColor = SkinStyle.Current.TextColor1,
|
BorderWidth = 2,
|
};
|
universalView.AddChidren (tempSwitch);
|
if (udDevice.ActionType == 0) {
|
tempSwitch.Text = udDevice.ON_Text;
|
} else if (udDevice.ActionType == 1) {
|
tempSwitch.Text = udDevice.OFF_Text;
|
} else if (udDevice.ActionType == 2) {
|
tempSwitch.Text = udDevice.OFF_Text;
|
//tempSiwtch.TextID = R.MyInternationalizationString.OFF;
|
Button tempON = new Button () {
|
Width = Application.GetRealWidth (110),
|
Height = Application.GetRealHeight (70),
|
X = Application.GetRealWidth (640 - 250 - 20),
|
Gravity = Gravity.CenterVertical,
|
Radius = 2,
|
BorderColor = SkinStyle.Current.BorderColor,
|
BorderWidth = 2,
|
Text = udDevice.ON_Text,
|
//TextID = R.MyInternationalizationString.ON,
|
TextColor = SkinStyle.Current.TextColor1,
|
SelectedTextColor = SkinStyle.Current.TextColor1,
|
};
|
universalView.AddChidren (tempON);
|
tempON.MouseUpEventHandler += (sender3, e3) => {
|
if (udDevice.UniversalType == 0xE01C) {
|
Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 255 }, SendCount.Zero);
|
}
|
universalView.BorderColor = SkinStyle.Current.Transparent;
|
tempON.BorderColor = SkinStyle.Current.BorderColor;
|
};
|
tempON.MouseDownEventHandler += (sende3r, e3) => {
|
universalView.BorderColor = SkinStyle.Current.SelectedColor;
|
tempON.BorderColor = SkinStyle.Current.SelectedColor;
|
};
|
}
|
tempSwitch.MouseUpEventHandler += (sender3, e3) => {
|
if (udDevice.UniversalType == 0xE01C) {
|
if (udDevice.ActionType == 0) {
|
Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 255 }, SendCount.Zero);
|
} else if (udDevice.ActionType == 1) {
|
Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 0 }, SendCount.Zero);
|
} else if (udDevice.ActionType == 2) {
|
Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 0 }, SendCount.Zero);
|
}
|
}
|
universalView.BorderColor = SkinStyle.Current.Transparent;
|
tempSwitch.BorderColor = SkinStyle.Current.BorderColor;
|
};
|
tempSwitch.MouseDownEventHandler += (sende3r, e3) => {
|
universalView.BorderColor = SkinStyle.Current.SelectedColor;
|
tempSwitch.BorderColor = SkinStyle.Current.SelectedColor;
|
};
|
}
|
}
|
equipmentListScrolView.Height = bodyScrolView.Height;
|
}
|
} else {
|
equipmentListScrolView.Height = 0;
|
LightCount = 0;
|
}
|
};
|
btnShowAll.MouseUpEventHandler += eHandler;
|
downSelectedButton.MouseUpEventHandler += eHandler;
|
//默认是选中状态
|
if (UserConfig.Instance.ShowRoomLightList)
|
eHandler (btnShowAll, new MouseEventArgs ());
|
#endregion
|
|
}
|
}
|
}
|