using System;
using System.Collections.Generic;
using HDL_ON.DAL.Server;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
using Newtonsoft.Json.Linq;
using Shared;
namespace HDL_ON.UI
{
public partial class FunctionBaseInfoSetPage : FrameLayout
{
#region 控件列表
FrameLayout bodyView;
///
/// 功能名称显示按钮
///
Button btnFunctionName;
///
/// 功能名称编辑按钮
///
Button btnEditName;
///
/// 位置信息显示按钮
///
Button btnLocationValues;
///
/// 位置信息跳转编辑按钮
///
Button btnLocationInfoRight;
#endregion
#region 局部变量
Function function;
///
/// 后退时,刷新之前界面的显示信息
///
Action actionRefresh;
///
/// 解绑设备回调
///
public Action actionDel;
#endregion
public FunctionBaseInfoSetPage(Function func, Action action)
{
bodyView = this;
function = func;
actionRefresh = action;
}
public override void RemoveFromParent()
{
new System.Threading.Thread(() =>
{
Application.RunOnMainThread(() =>
{
actionRefresh?.Invoke();
});
})
{ IsBackground = true }.Start();
base.RemoveFromParent();
}
///
/// 加载界面
///
public void LoadPage(bool locationSetting = true)
{
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
var topView = new TopViewDiv(bodyView, Language.StringByID(StringId.Setting));
topView.maginY = 10;
topView.LoadTopView();
var contentView = new VerticalScrolViewLayout()
{
Y = Application.GetRealHeight(64 + 10),
Height = Application.GetRealHeight(600),
ScrollEnabled = false,
};
bodyView.AddChidren(contentView);
#region name view
var nameView = new FrameLayout()
{
Height = Application.GetRealHeight(50),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(nameView);
var btnNameText = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.Name,
};
nameView.AddChidren(btnNameText);
btnFunctionName = new Button()
{
X = Application.GetRealWidth(86),
Width = Application.GetRealWidth(237),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
Text = function.name,
};
nameView.AddChidren(btnFunctionName);
btnEditName = new Button()
{
X = Application.GetRealWidth(333),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(28),
Height = Application.GetMinRealAverage(28),
UnSelectedImagePath = "Public/Edit.png",
};
nameView.AddChidren(btnEditName);
//nameView.AddChidren(
// new Button()
// {
// Gravity = Gravity.CenterHorizontal,
// Y = Application.GetRealHeight(49),
// BackgroundColor = CSS_Color.DividingLineColor,
// Width = Application.GetRealWidth(343),
// Height = Application.GetRealHeight(1)
// });
#endregion
if (locationSetting)
{
#region 位置管理
var locationMagtView = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(locationMagtView);
var btnLocationMagtTitle = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.LocationManagement,
};
locationMagtView.AddChidren(btnLocationMagtTitle);
btnLocationValues = new Button()
{
X = Application.GetRealWidth(86),
Width = Application.GetRealWidth(237),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
Text = function.GetRoomListName(),
};
locationMagtView.AddChidren(btnLocationValues);
btnLocationInfoRight = new Button()
{
X = Application.GetRealWidth(339),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/RightIcon.png",
};
locationMagtView.AddChidren(btnLocationInfoRight);
locationMagtView.AddChidren(
new Button()
{
Gravity = Gravity.CenterHorizontal,
BackgroundColor = CSS_Color.DividingLineColor,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(1)
});
#endregion
}
#region 共享
//var sharedView = new FrameLayout()
//{
// Height = Application.GetRealHeight(55),
// BackgroundColor = CSS_Color.MainBackgroundColor,
//};
//contentView.AddChidren(sharedView);
//var btnSharedText = new Button()
//{
// X = Application.GetRealWidth(16),
// Width = Application.GetRealWidth(160),
// TextAlignment = TextAlignment.CenterLeft,
// TextColor = CSS_Color.FirstLevelTitleColor,
// TextSize = CSS_FontSize.SubheadingFontSize,
// TextID = StringId.Shared,
//};
//sharedView.AddChidren(btnSharedText);
//var btnSharedRight = new Button()
//{
// X = Application.GetRealWidth(339),
// Gravity = Gravity.CenterVertical,
// Width = Application.GetMinRealAverage(16),
// Height = Application.GetMinRealAverage(16),
// UnSelectedImagePath = "Public/RightIcon.png",
//};
//sharedView.AddChidren(btnSharedRight);
//sharedView.AddChidren(
// new Button()
// {
// Gravity = Gravity.CenterHorizontal,
// Y = Application.GetRealHeight(54),
// BackgroundColor = CSS_Color.DividingLineColor,
// Width = Application.GetRealWidth(343),
// Height = Application.GetRealHeight(1)
// });
#endregion
#region 删除设备行 序列号 型号
if (this.function.spk == SPK.VideoDoorLock)
{
contentView.AddChidren(new Button()
{
Height = Application.GetRealWidth(8),
});
#region 开锁设置
var unlockSettingView = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(unlockSettingView);
//unlockSettingView.AddChidren(new Button
//{
// Gravity = Gravity.CenterHorizontal,
// BackgroundColor = CSS_Color.DividingLineColor,
// Width = Application.GetRealWidth(343),
// Height = Application.GetRealHeight(1)
//});
var unlockRightBtn = new Button()
{
X = Application.GetRealWidth(339),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/RightIcon.png",
};
unlockSettingView.AddChidren(unlockRightBtn);
var btnUnlockText = new Button()
{
X = Application.GetRealWidth(16),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.UnlockSetting,
};
unlockSettingView.AddChidren(btnUnlockText);
EventHandler unlockSettingEvent = (sender, e) =>
{
var page = new UnlockSettingPage(function);
MainPage.BasePageView.AddChidren(page);
page.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
btnUnlockText.MouseUpEventHandler = unlockSettingEvent;
#endregion
#region 音频设置
var audioSetupView = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(audioSetupView);
audioSetupView.AddChidren(new Button
{
Gravity = Gravity.CenterHorizontal,
BackgroundColor = CSS_Color.DividingLineColor,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(1)
});
var btnAudioSetupRight = new Button()
{
X = Application.GetRealWidth(339),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/RightIcon.png",
};
audioSetupView.AddChidren(btnAudioSetupRight);
var btnAudioSetupText = new Button()
{
X = Application.GetRealWidth(16),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.AudioSetup,
};
audioSetupView.AddChidren(btnAudioSetupText);
btnAudioSetupText.MouseUpEventHandler = (sender, e) => {
var page = new VideoDoorlockAudioSetupPage(function);
MainPage.BasePageView.AddChidren(page);
page.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
#endregion
#region 电池管理
var batteryManagementView = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(batteryManagementView);
batteryManagementView.AddChidren(new Button
{
Gravity = Gravity.CenterHorizontal,
BackgroundColor = CSS_Color.DividingLineColor,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(1)
});
var btnBatteryManagementRight = new Button()
{
X = Application.GetRealWidth(339),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/RightIcon.png",
};
batteryManagementView.AddChidren(btnBatteryManagementRight);
var btnBatteryManagementText = new Button()
{
X = Application.GetRealWidth(16),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.BatteryManagement,
};
batteryManagementView.AddChidren(btnBatteryManagementText);
btnBatteryManagementText.MouseUpEventHandler = (sender, e) => {
var page = new VideoDoorlockBatteryManagementPage();
MainPage.BasePageView.AddChidren(page);
page.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
#endregion
#region 序列号
var serialView = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(serialView);
var serialLineBtn = new Button()
{
Gravity = Gravity.CenterHorizontal,
BackgroundColor = CSS_Color.DividingLineColor,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(1)
};
serialView.AddChidren(serialLineBtn);
var serialTextBtn = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.xuliehao,
};
serialView.AddChidren(serialTextBtn);
var serialValuesBtn = new Button()
{
X = Application.GetRealWidth(106),
Width = Application.GetRealWidth(237),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
Text = this.function.sid,
};
serialView.AddChidren(serialValuesBtn);
#endregion
#region 型号
var modelView = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(modelView);
var modelLineBtn = new Button()
{
Gravity = Gravity.CenterHorizontal,
BackgroundColor = CSS_Color.DividingLineColor,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(1)
};
modelView.AddChidren(modelLineBtn);
var modelTextBtn = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.xinghao,
};
modelView.AddChidren(modelTextBtn);
var modelValuesBtn = new Button()
{
X = Application.GetRealWidth(106),
Width = Application.GetRealWidth(237),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
Text = this.function.omodel,
};
modelView.AddChidren(modelValuesBtn);
#endregion
#region 删除设备行
contentView.AddChidren(new Button()
{
Height = Application.GetRealHeight(48),
});
var delTextBtn = new Button()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(220),
Height = Application.GetRealWidth(44),
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.WarningColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.DeleteDevice,
Radius = (uint)Application.GetRealWidth(22),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(delTextBtn);
EventHandler ClickEvent = (sener, e) =>
{
new HDL_ON.UI.Music.View.TipView().TipBox(-1, StringId.AreYouSureToDeleteThisDevice, () =>
{
UI2.FuntionControlView.VideoDoorLock.VideDoorLockSend.Current.DelDevice(this.function, (isBool) =>
{
Application.RunOnMainThread(() =>
{
if (!isBool)
{
new Tip()
{
CloseTime = 1,
Text = Language.StringByID(StringId.delFail),
Direction = AMPopTipDirection.None,
}.Show(bodyView);
return;
}
//删除本地文件
UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DeleteFunction(this.function);
this.RemoveFromParent();
this.actionDel?.Invoke();
});
});
});
};
delTextBtn.MouseUpEventHandler = ClickEvent;
#endregion
}
#endregion
#region 删除海信电视设备
if (this.function.spk == SPK.ElectricalTvHisense)
{
contentView.AddChidren(new Button()
{
Height = Application.GetRealWidth(8),
});
#region 删除设备行
contentView.AddChidren(new Button()
{
Height = Application.GetRealHeight(48),
});
var delTextBtn = new Button()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(220),
Height = Application.GetRealWidth(44),
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.WarningColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.jiebangshebei,
Radius = (uint)Application.GetRealWidth(22),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
//如果是成员隐藏收藏功能
if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
{
contentView.AddChidren(delTextBtn);
}
EventHandler ClickEvent = (sener, e) =>
{
new HDL_ON.UI.Music.View.TipView().TipBox(-1, StringId.AreYouSureToDeleteThisDevice, () =>
{
HDL_ON.UI.UI2.FuntionControlView.HisenseTV.Send.Current.DelDevice(this.function.deviceId, (isBool) =>
{
Application.RunOnMainThread(() =>
{
if (!isBool)
{
new Tip()
{
CloseTime = 1,
Text = Language.StringByID(StringId.delFail),
Direction = AMPopTipDirection.None,
}.Show(bodyView);
return;
}
//删除本地文件
UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DeleteFunction(this.function);
this.RemoveFromParent();
this.actionDel?.Invoke();
});
});
});
};
delTextBtn.MouseUpEventHandler = ClickEvent;
#endregion
}
#endregion
#if stage2
#region 添加到桌面
var addToDesktopView = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(addToDesktopView);
var btnAddToDesktopText = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.AddToDesktop,
};
addToDesktopView.AddChidren(btnAddToDesktopText);
var btnAddToDesktopRight = new Button()
{
X = Application.GetRealWidth(339),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/RightIcon.png",
};
addToDesktopView.AddChidren(btnAddToDesktopRight);
#endregion
#endif
if (function.spk == SPK.ElectricEnergy)
{
#region 能源数据
var energyView1 = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(energyView1);
var btnEnergyText1 = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.RealTimeEnergyConsumption,
};
energyView1.AddChidren(btnEnergyText1);
double realTimePower = 0;
double.TryParse(function.GetAttrState(FunctionAttributeKey.Power), out realTimePower);
realTimePower /= 1000;
var energyValue1 = new Button()
{
Width = Application.GetRealWidth(355),
TextAlignment = TextAlignment.CenterRight,
TextSize = CSS_FontSize.TextFontSize,
TextColor = CSS_Color.PromptingColor1,
Text = realTimePower + "kW",
};
energyView1.AddChidren(energyValue1);
energyView1.AddChidren(
new Button()
{
Gravity = Gravity.CenterHorizontal,
//Y = Application.GetRealHeight(54),
BackgroundColor = CSS_Color.DividingLineColor,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(1)
});
//-----------------
var energyView2 = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(energyView2);
var btnEnergyText2 = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.EnergyConsumptionOfThisMonth,
};
energyView2.AddChidren(btnEnergyText2);
var btnEnergyValue2 = new Button()
{
Width = Application.GetRealWidth(355),
TextAlignment = TextAlignment.CenterRight,
TextSize = CSS_FontSize.TextFontSize,
TextColor = CSS_Color.PromptingColor1,
Text = "--kW",
};
energyView2.AddChidren(btnEnergyValue2);
energyView2.AddChidren(
new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(54),
BackgroundColor = CSS_Color.DividingLineColor,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(1)
});
new System.Threading.Thread(() =>
{
var pm = new HttpServerRequest();
var data = pm.GetLastMonthHistory(function.deviceId, FunctionAttributeKey.TotalElectricity);
if (data != null)
{
if (data.Code == StateCode.SUCCESS)
{
var dataPack = Newtonsoft.Json.JsonConvert.DeserializeObject(data.Data.ToString());
if (dataPack != null)
{
try
{
var dataValue = dataPack.GetValue("monthDiff").ToString();
if (!string.IsNullOrEmpty(dataValue))
{
Application.RunOnMainThread(() =>
{
btnEnergyValue2.Text = dataValue + "kW‧h";
});
}
}
catch
{
}
}
}
}
})
{ IsBackground = true }.Start();
#endregion
}
else if (function.spk == SPK.HvacCac)
{
#region 露点温度
if (function.GetAttribute(FunctionAttributeKey.dew_point_temp) != null)
{
contentView.AddChidren(new Button
{
Height = Application.GetRealHeight(10),
});
var row = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(row);
var btnText = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(260),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.DewPointTemp,
};
row.AddChidren(btnText);
var btnValue = new Button()
{
Width = Application.GetRealWidth(355),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
Text = function.GetAttrState(FunctionAttributeKey.dew_point_temp) + "°C",
};
row.AddChidren(btnValue);
}
#endregion
#region 表面温度
if (function.GetAttribute(FunctionAttributeKey.surface_temp) != null)
{
contentView.AddChidren(new Button
{
Height = Application.GetRealHeight(10),
});
var surfaceTempRow = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(surfaceTempRow);
var btnSurfacaTempText = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(260),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.SurfaceTemperature,
};
surfaceTempRow.AddChidren(btnSurfacaTempText);
var btnSurfaceTempValue = new Button()
{
Width = Application.GetRealWidth(355),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
Text = function.GetAttrState(FunctionAttributeKey.surface_temp) + "°C",
};
surfaceTempRow.AddChidren(btnSurfaceTempValue);
}
#endregion
#region 温度校准
if (function.GetAttribute(FunctionAttributeKey.room_temp_cc) != null)
{
contentView.AddChidren(new Button
{
Height = Application.GetRealHeight(10),
});
var tempCCrow = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(tempCCrow);
var btnTempCcText = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(260),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.TemperatureCalibration,
};
tempCCrow.AddChidren(btnTempCcText);
var btnTempCcValue = new Button()
{
Width = Application.GetRealWidth(335),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
Text = function.GetAttrState(FunctionAttributeKey.room_temp_cc) + "°C",
};
tempCCrow.AddChidren(btnTempCcValue);
var btnRightTempCc = new Button()
{
X = Application.GetRealWidth(339),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/RightIcon.png",
};
tempCCrow.AddChidren(btnRightTempCc);
btnTempCcValue.MouseUpEventHandler = (sender, e) =>
{
LoadEditDialog(-10, 10, Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.room_humidity_cc)), (reslut) =>
{
btnTempCcValue.Text = reslut + "°C";
Dictionary dic = new Dictionary();
dic.Add(FunctionAttributeKey.room_temp_cc, reslut);
Control.Ins.SendWriteCommand(function, dic);
});
};
}
#endregion
#region 湿度校准
if (function.GetAttribute(FunctionAttributeKey.room_humidity_cc) != null)
{
contentView.AddChidren(new Button
{
Height = Application.GetRealHeight(10),
});
var humidityCCrow = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(humidityCCrow);
var btnHumidityCcText = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(260),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.HumidityCalibration,
};
humidityCCrow.AddChidren(btnHumidityCcText);
var btnHumidityCcValue = new Button()
{
Width = Application.GetRealWidth(335),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
Text = function.GetAttrState(FunctionAttributeKey.room_humidity_cc) + "%",
};
humidityCCrow.AddChidren(btnHumidityCcValue);
var btnRightHumidityCc = new Button()
{
X = Application.GetRealWidth(339),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/RightIcon.png",
};
humidityCCrow.AddChidren(btnRightHumidityCc);
btnHumidityCcValue.MouseUpEventHandler = (sender, e) =>
{
LoadEditDialog(-20, 20, Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.room_humidity_cc)), (reslut) =>
{
btnHumidityCcValue.Text = reslut + "%";
Dictionary dic = new Dictionary();
dic.Add(FunctionAttributeKey.room_humidity_cc, reslut);
Control.Ins.SendWriteCommand(function, dic);
});
};
}
#endregion
#region 毛细阀门
if (function.GetAttribute(FunctionAttributeKey.cac_valve) != null)
{
contentView.AddChidren(new Button
{
Height = Application.GetRealHeight(10),
});
var cacValveRow = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(cacValveRow);
var btnCacValveText = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(260),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.CapillaryValve,
};
cacValveRow.AddChidren(btnCacValveText);
var btnCacValvaValue = new Button()
{
Width = Application.GetRealWidth(355),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
TextID = function.GetAttrState(FunctionAttributeKey.cac_valve) == "on" ? StringId.On : StringId.OFF,
};
cacValveRow.AddChidren(btnCacValvaValue);
}
#endregion
#region 地暖阀门
if (function.GetAttribute(FunctionAttributeKey.fh_valve) != null)
{
contentView.AddChidren(new Button
{
Height = Application.GetRealHeight(10),
});
var fhValveRow = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(fhValveRow);
var btnFhValveText = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(260),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.FloorHeatingValve,
};
fhValveRow.AddChidren(btnFhValveText);
var btnFhValvaValue = new Button()
{
Width = Application.GetRealWidth(355),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
TextID = function.GetAttrState(FunctionAttributeKey.fh_valve) == "on" ? StringId.On : StringId.OFF,
};
fhValveRow.AddChidren(btnFhValvaValue);
}
#endregion
}
else if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose)
{
contentView.AddChidren(new Button
{
Height = Application.GetRealHeight(8),
});
#region 推送开关
var viewRow0 = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(viewRow0);
var btnRowTitle0 = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.AlarmFunction,
};
viewRow0.AddChidren(btnRowTitle0);
var btnSwtichIcon0 = new Button()
{
X = Application.GetRealWidth(322),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(36),
Height = Application.GetMinRealAverage(36),
UnSelectedImagePath = "Public/Switch_2.png",
SelectedImagePath = "Public/SwitchOn_2.png",
};
viewRow0.AddChidren(btnSwtichIcon0);
DeviceMessageRules deviceMessageRules = new DeviceMessageRules()
{
deviceId = function.deviceId
};
btnSwtichIcon0.MouseUpEventHandler = (sender, e) => {
var push = btnSwtichIcon0.IsSelected = !btnSwtichIcon0.IsSelected;
new System.Threading.Thread(() => {
var result = new HttpServerRequest().DeviceMessageRulesSet(function.deviceId, deviceMessageRules.conditionIdentify, push);//设置推送信息
Application.RunOnMainThread(() =>
{
if (result != null && result.Code == StateCode.SUCCESS)
{
deviceMessageRules.push = push;
}
else
{
btnSwtichIcon0.IsSelected = deviceMessageRules.push;
}
});
})
{ IsBackground = true }.Start();
};
Loading waitView = new Loading();
viewRow0.AddChidren(waitView);
new System.Threading.Thread(() => {
Application.RunOnMainThread(() => {
waitView.Start("");
});
var result = new HttpServerRequest().GetDeviceMessageRulesSet(function.deviceId);
//var result1 = new HttpServerRequest().DeviceMessageRulesSet(function.deviceId);//设置推送信息
Application.RunOnMainThread(() =>
{
if (result != null && result.Code == StateCode.SUCCESS && result.Data != null)
{
var data = Newtonsoft.Json.JsonConvert.DeserializeObject>(result.Data.ToString());
if (data.Count > 0)
{
deviceMessageRules = data[0];
btnSwtichIcon0.IsSelected = deviceMessageRules.push;
}
}
else
{
btnSwtichIcon0.IsSelected = false;
}
waitView.Hide();
waitView.RemoveFromParent();
});
})
{ IsBackground = true }.Start();
viewRow0.AddChidren(new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(54),
BackgroundColor = CSS_Color.DividingLineColor,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(1)
});
#endregion
#region 演示模式
var viewRow = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(viewRow);
var btnRowTitle = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.LaboratoryMode,
};
viewRow.AddChidren(btnRowTitle);
var btnSwtichIcon = new Button()
{
X = Application.GetRealWidth(322),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(36),
Height = Application.GetMinRealAverage(36),
UnSelectedImagePath = "Public/Switch_2.png",
SelectedImagePath = "Public/SwitchOn_2.png",
IsSelected = function.extSet.labModel
};
viewRow.AddChidren(btnSwtichIcon);
btnSwtichIcon.MouseUpEventHandler = (sender, e) =>
{
btnSwtichIcon.IsSelected = function.extSet.labModel = !btnSwtichIcon.IsSelected;
new System.Threading.Thread(() =>
{
var result = new HttpServerRequest().DeviceExtSet(function.deviceId, function.extSet);
Application.RunOnMainThread(() =>
{
if (result != null && result.Code == StateCode.SUCCESS)
{
if (Convert.ToBoolean(result.Data))
{
function.extSet.labModel = btnSwtichIcon.IsSelected;
}
else
{
btnSwtichIcon.IsSelected = function.extSet.labModel = !btnSwtichIcon.IsSelected;
}
}
else
{
btnSwtichIcon.IsSelected = function.extSet.labModel = !btnSwtichIcon.IsSelected;
}
});
})
{ IsBackground = true }.Start();
};
#endregion
}
//else if(function.spk == SPK.LightRGB)
//{
// contentView.AddChidren(new Button
// {
// Height = Application.GetRealHeight(8),
// });
// var list = FunctionList.List.GetSeries();
// foreach (var temp in list)
// {
// #region
// var viewRow0 = new FrameLayout()
// {
// Height = Application.GetRealHeight(55),
// BackgroundColor = CSS_Color.MainBackgroundColor,
// };
// contentView.AddChidren(viewRow0);
// var btnRowTitle0 = new Button()
// {
// X = Application.GetRealWidth(16),
// Width = Application.GetRealWidth(160),
// TextAlignment = TextAlignment.CenterLeft,
// TextColor = CSS_Color.FirstLevelTitleColor,
// TextSize = CSS_FontSize.SubheadingFontSize,
// Text = temp.name,
// };
// viewRow0.AddChidren(btnRowTitle0);
// var btnSwtichIcon0 = new Button()
// {
// X = Application.GetRealWidth(322),
// Gravity = Gravity.CenterVertical,
// Width = Application.GetMinRealAverage(36),
// Height = Application.GetMinRealAverage(36),
// UnSelectedImagePath = "Public/Switch_2.png",
// SelectedImagePath = "Public/SwitchOn_2.png",
// };
// viewRow0.AddChidren(btnSwtichIcon0);
// DeviceMessageRules deviceMessageRules = new DeviceMessageRules()
// {
// deviceId = function.deviceId
// };
// btnSwtichIcon0.MouseUpEventHandler = (sender, e) =>
// {
// };
// viewRow0.AddChidren(new Button()
// {
// Gravity = Gravity.CenterHorizontal,
// Y = Application.GetRealHeight(54),
// BackgroundColor = CSS_Color.DividingLineColor,
// Width = Application.GetRealWidth(343),
// Height = Application.GetRealHeight(1)
// });
// #endregion
// }
//}
LoadEventList();
}
///
/// 加载选择弹窗
///
void LoadEditDialog(int min, int max, int curValue, Action action)
{
List pickerItems = new List();
Dialog dialog = new Dialog();
var pView = new FrameLayout()
{
BackgroundColor = CSS_Color.DialogTransparentColor1,
};
dialog.AddChidren(pView);
var optionBaseView = new FrameLayout()
{
Y = Application.GetRealHeight(456 - 60),
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(260),
AnimateSpeed = 0.3f,
Animate = Animate.DownToUp,
BackgroundColor = CSS_Color.MainBackgroundColor,
Radius = (uint)Application.GetRealWidth(12),
};
pView.AddChidren(optionBaseView);
var topView = new FrameLayout()
{
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(40),
BackgroundColor = CSS_Color.MainBackgroundColor,
Radius = (uint)Application.GetRealWidth(12),
};
optionBaseView.AddChidren(topView);
topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
var btnCancel = new Button()
{
X = Application.GetRealWidth(21),
Width = Application.GetRealWidth(100),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
TextID = StringId.Cancel,
};
topView.AddChidren(btnCancel);
var btnConfrim = new Button()
{
X = Application.GetRealWidth(160),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.MainColor,
TextSize = CSS_FontSize.TextFontSize,
TextID = StringId.Confirm,
};
topView.AddChidren(btnConfrim);
UIPickerView uIPickerView = new UIPickerView()
{
Y = Application.GetRealHeight(40),
Height = Application.GetRealHeight(210),
Radius = (uint)Application.GetRealWidth(12),
};
for (int i = min; i <= max; i += 1)
{
pickerItems.Add(i.ToString());
}
uIPickerView.setNPicker(pickerItems, null, null);
optionBaseView.AddChidren(uIPickerView);
uIPickerView.setCurrentItems(pickerItems.IndexOf(curValue.ToString()), 4, 5);
string selectItem = pickerItems[0];
if (pickerItems.Contains(curValue.ToString()))
{
selectItem = curValue.ToString();
}
dialog.Show();
pView.MouseUpEventHandler = (sender, e) => {
dialog.Close();
};
btnCancel.MouseUpEventHandler = (sender, e) => {
dialog.Close();
};
uIPickerView.OnSelectChangeEvent = (int1, int2, int3) => {
selectItem = pickerItems[int1];
};
btnConfrim.MouseUpEventHandler = (sender, e) => {
dialog.Close();
action?.Invoke(selectItem);
};
}
}
}