using System;
|
using System.Collections.Generic;
|
using Shared;
|
using Shared.Common;
|
using Shared.R;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.Device.Logic
|
{
|
public class Nightlight : FrameLayout
|
{
|
public Nightlight()
|
{
|
Tag = "Logic";
|
}
|
string selectedDeviceStatus = "";
|
Dictionary<string, object> actionsInfo = null;
|
List<Dictionary<string, string>> TaskList = null;
|
public void Show(CommonDevice common, bool edit,string str_if,Dictionary<string, object> editdeviceActionInfo = null)
|
{
|
actionsInfo = editdeviceActionInfo;
|
this.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
|
TopView view = new TopView();
|
this.AddChidren(view.TopRowView());
|
view.toptitleNameBtn.Text = LocalDevice.Current.GetDeviceEpointName(common);
|
view.clickBtn.MouseDownEventHandler += (sender, e) =>
|
{
|
RemoveFromParent();
|
};
|
var middle = new FrameLayout
|
{
|
Y = view.topRowLayout.Bottom,
|
Height = Application.GetRealHeight(Method.H - 184),
|
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
|
};
|
this.AddChidren(middle);
|
|
LogicView.LightView openView = new LogicView.LightView();
|
openView.titleBtn.Text = Language.StringByID(MyInternationalizationString.nightLightSwitch);
|
middle.AddChidren(openView.Show());
|
openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
CurrentDeviceView("夜灯开关", common, edit, openView.seletecdTextBtn);
|
};
|
|
LogicView.LightView brightnessView = new LogicView.LightView();
|
brightnessView.frameLayout.Y = openView.frameLayout.Bottom;
|
brightnessView.titleBtn.Text = Language.StringByID(MyInternationalizationString.brightness);
|
middle.AddChidren(brightnessView.Show());
|
brightnessView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
CurrentDeviceView("亮度", common, edit, brightnessView.seletecdTextBtn);
|
};
|
|
LogicView.LightView colorTemperatureView = new LogicView.LightView();
|
colorTemperatureView.frameLayout.Y = brightnessView.frameLayout.Bottom;
|
colorTemperatureView.titleBtn.Text = Language.StringByID(MyInternationalizationString.colorTemperature);
|
middle.AddChidren(colorTemperatureView.Show());
|
colorTemperatureView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
CurrentDeviceView("色温", common, edit, colorTemperatureView.seletecdTextBtn);
|
};
|
|
LogicView.LightView buzzView = new LogicView.LightView();
|
buzzView.frameLayout.Y = colorTemperatureView.frameLayout.Bottom;
|
buzzView.titleBtn.Text = Language.StringByID(MyInternationalizationString.buzzer);
|
middle.AddChidren(buzzView.Show());
|
buzzView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
CurrentDeviceView("蜂鸣器", common, edit, buzzView.seletecdTextBtn);
|
};
|
|
LogicView.SaveView saveView = new LogicView.SaveView();
|
saveView.frameLayout.Y = middle.Height - Application.GetRealHeight(260);
|
middle.AddChidren(saveView.Show());
|
saveView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
if (selectedDeviceStatus != "" && actionsInfo != null)
|
{
|
LogicIfon.AddDeviceActions(common, actionsInfo);
|
}
|
else
|
{
|
if (!edit)
|
{
|
var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
|
Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
|
Language.StringByID(MyInternationalizationString.confrim));
|
alert.Show();
|
return;
|
}
|
|
}
|
|
if (str_if == "logic")
|
{
|
var logicCommunalPage = new LogicCommunalPage();
|
UserView.HomePage.Instance.AddChidren(logicCommunalPage);
|
UserView.HomePage.Instance.PageIndex += 1;
|
logicCommunalPage.Show(() => { });
|
}
|
else if (str_if == "lockaction")
|
{
|
//门锁联动事件
|
var lockLogicCommunalPage = new DoorLockLogic.LockLogicCommunalPage();
|
UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage);
|
UserView.HomePage.Instance.PageIndex += 1;
|
lockLogicCommunalPage.Show(() => { });
|
}
|
|
};
|
|
if (edit)
|
{
|
foreach (var deviceinfo in Common.Logic.CurrentLogic.Actions)
|
{
|
if (deviceinfo["LinkType"].ToString() == "0")
|
{
|
|
if (deviceinfo["DeviceAddr"].ToString() == common.DeviceAddr && deviceinfo["Epoint"].ToString() == common.DeviceEpoint.ToString())
|
{
|
TaskList = deviceinfo["TaskList"] as List<Dictionary<string, string>>;
|
foreach (var tasks in TaskList)
|
{
|
switch (tasks["TaskType"])
|
{
|
case "1":
|
{
|
if (tasks["Data1"] == "0")
|
{
|
openView.seletecdTextBtn.TextID = MyInternationalizationString.close;
|
}
|
else
|
{
|
openView.seletecdTextBtn.TextID = MyInternationalizationString.open;
|
}
|
}
|
break;
|
case "3":
|
{
|
var intvalue = int.Parse(tasks["Data1"]);
|
var lightbrightnessvalue = (intvalue * 100) / 254;
|
brightnessView.seletecdTextBtn.Text = lightbrightnessvalue.ToString() + "%";
|
}
|
break;
|
case "7":
|
{
|
if (tasks["Data1"] == "0")
|
{
|
buzzView.seletecdTextBtn.TextID = MyInternationalizationString.close;
|
}
|
else
|
{
|
buzzView.seletecdTextBtn.TextID = MyInternationalizationString.open;
|
}
|
}
|
break;
|
case "8":
|
{
|
var intvalue = int.Parse(tasks["Data1"]);
|
var lightbrightnessvalue = 1000000 / (intvalue * 100);
|
colorTemperatureView.seletecdTextBtn.Text = lightbrightnessvalue.ToString() + "K";
|
}
|
break;
|
}
|
}
|
break;
|
}
|
}
|
}
|
}
|
}
|
public void CurrentDeviceView(string if_str, CommonDevice common, bool edit, Button button)
|
{
|
var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
|
this.AddChidren(flMain);
|
UserView.HomePage.Instance.ScrollEnabled = false;//不让当前界面滑动
|
CompleteView completeView = new CompleteView();
|
flMain.AddChidren(completeView.Show(2));
|
completeView.Btntitle.Text = LocalDevice.Current.GetDeviceEpointName(common);
|
EventHandler<MouseEventArgs> clickcancel = (sender, e) =>
|
{
|
UserView.HomePage.Instance.ScrollEnabled = true;
|
flMain.RemoveFromParent();
|
};
|
flMain.MouseUpEventHandler += clickcancel;
|
completeView.Btncancel.MouseUpEventHandler += clickcancel;
|
if (actionsInfo == null)
|
{
|
actionsInfo = new Dictionary<string, object>();
|
TaskList = new List<Dictionary<string, string>>();
|
actionsInfo.Add("LinkType", 0);
|
actionsInfo.Add("DeviceAddr", common.DeviceAddr);
|
actionsInfo.Add("Epoint", common.DeviceEpoint);
|
actionsInfo.Add("Time", 0);
|
actionsInfo.Add("TaskList", TaskList);
|
}
|
string status = "";
|
|
switch (if_str)
|
{
|
case "夜灯开关":
|
{
|
|
Dictionary<string, string> switchDictionary = new Dictionary<string, string>();
|
Send.dictionary(switchDictionary, "TaskType", "1");
|
Send.dictionary(switchDictionary, "Data2", "0");
|
mFunView openView = new mFunView();
|
openView.frameLayout.Y = Application.GetRealHeight(140 + 20);
|
openView.titleBtn.TextID = MyInternationalizationString.open;
|
completeView.Show(2).AddChidren(openView.Show());
|
mFunView closeView = new mFunView();
|
closeView.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160);
|
closeView.titleBtn.TextID = MyInternationalizationString.close;
|
completeView.Show(2).AddChidren(closeView.Show());
|
closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
|
///点击确认事件
|
openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
selectedDeviceStatus = "1";
|
openView.selectedIconBtn.Visible = true;
|
closeView.selectedIconBtn.Visible = false;
|
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
|
closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
Send.dictionary(switchDictionary, "Data1", "1");//默认值
|
DicValue("1", switchDictionary);
|
status = Language.StringByID(MyInternationalizationString.open);
|
};
|
|
///点击取消事件
|
closeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
selectedDeviceStatus = "1";
|
openView.selectedIconBtn.Visible = false;
|
closeView.selectedIconBtn.Visible = true;
|
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
|
Send.dictionary(switchDictionary, "Data1", "0");//默认值
|
DicValue("1", switchDictionary);
|
status = Language.StringByID(MyInternationalizationString.close);
|
|
};
|
if (TaskList != null && TaskList.Count != 0)
|
{
|
foreach (var value in TaskList)
|
{
|
if (value["TaskType"] == "1")
|
{
|
if (value["Data1"] == "1")
|
{
|
openView.selectedIconBtn.Visible = true;
|
closeView.selectedIconBtn.Visible = false;
|
}
|
else
|
{
|
openView.selectedIconBtn.Visible = false;
|
closeView.selectedIconBtn.Visible = true;
|
}
|
break;
|
}
|
|
}
|
}
|
}
|
break;
|
case "亮度":
|
{
|
Dictionary<string, string> brightnessDictionary = new Dictionary<string, string>();
|
Send.dictionary(brightnessDictionary, "TaskType", "3");
|
Send.dictionary(brightnessDictionary, "Data2", "0");
|
var horizontalSeekBarVol = new DiyImageSeekBar
|
{
|
Y = Application.GetRealHeight(140),//进度条父控件Y坐标
|
X = Application.GetRealWidth(78),//进度条X坐标
|
Width = Application.GetRealWidth(918),//进度条的长度
|
Height = Application.GetRealHeight(320),//进度条父控控件高度
|
IsProgressTextShow = true,//显示百分比
|
IsClickable = true,//进度条是否滑动
|
ProgressBarColor = ZigbeeColor.Current.LogicProgressColorSelected,//选中进度条颜色
|
ThumbImagePath = "ZigeeLogic/progressbtn2.png",//进度条按钮图标
|
ThumbImageHeight = Application.GetRealHeight(89),//进度条按钮图标的高度(默认正方形:宽和高一样)
|
ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor,
|
ProgressTextSize = 9,//显示百分比字体大小12
|
SeekBarViewHeight = Application.GetRealHeight(6),//进度条的高度10
|
};
|
completeView.Show(2).AddChidren(horizontalSeekBarVol);
|
EventHandler<int> progressclick = (sender, e) =>
|
{
|
selectedDeviceStatus = "3";
|
int lightbrightnessvalue = (254 * horizontalSeekBarVol.Progress) / 100;
|
Send.dictionary(brightnessDictionary, "Data1", lightbrightnessvalue.ToString());
|
DicValue("3", brightnessDictionary);
|
status = horizontalSeekBarVol.Progress.ToString() + "%";
|
};
|
horizontalSeekBarVol.OnProgressChangedEvent += progressclick;
|
horizontalSeekBarVol.OnStopTrackingTouchEvent += progressclick;
|
|
if (TaskList != null && TaskList.Count != 0)
|
{
|
foreach (var value in TaskList)
|
{
|
if (value["TaskType"] == "3")
|
{
|
var intvalue = int.Parse(value["Data1"]);
|
var lightbrightnessvalue = (intvalue * 100) / 254;
|
horizontalSeekBarVol.Progress = lightbrightnessvalue;
|
break;
|
}
|
|
}
|
}
|
}
|
break;
|
case "色温":
|
{
|
Dictionary<string, string> brightnessDictionary = new Dictionary<string, string>();
|
Send.dictionary(brightnessDictionary, "TaskType", "8");
|
Send.dictionary(brightnessDictionary, "Data2", "0");
|
Button seekIconBtn = new Button
|
{
|
Y = Application.GetRealHeight(140 + 154),
|
X = Application.GetRealWidth(78),
|
Height = Application.GetRealHeight(12),
|
Width = Application.GetRealWidth(918),
|
UnSelectedImagePath = "ZigeeLogic/seek.png",
|
};
|
completeView.Show(2).AddChidren(seekIconBtn);
|
var horizontalSeekBarVol = new DiyImageSeekBar
|
{
|
Y = Application.GetRealHeight(140),
|
X = Application.GetRealWidth(78),
|
Width = Application.GetRealWidth(918),
|
Height = Application.GetRealHeight(320),//滑动条父控件高度
|
IsProgressTextShow = true,//显示百分比
|
IsClickable = true,//进度条是否滑动
|
ProgressBarColor = 0x00000000,// ZigbeeColor.Current.LogicProgressColorSelected,//选中进度条颜色
|
SeekBarBackgroundColor = 0x00000000,
|
ThumbImagePath = "ZigeeLogic/progressbtn2.png",//进度条按钮图标
|
ThumbImageHeight = Application.GetRealHeight(89),//进度条按钮图标的高度(默认正方形:宽和高一样)
|
ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor,
|
ProgressTextSize = 9,//显示百分比字体大小12
|
SeekBarViewHeight = Application.GetRealHeight(12),//进度条的高度10
|
MinValue = 30,
|
MaxValue = 60,
|
ProgressBarUnitSring = "K",//切换单位
|
};
|
completeView.Show(2).AddChidren(horizontalSeekBarVol);
|
EventHandler<int> progressclick = (sender, e) =>
|
{
|
selectedDeviceStatus = "8";
|
var lightbrightnessvalue = 1000000 / (100 * horizontalSeekBarVol.Progress);
|
Send.dictionary(brightnessDictionary, "Data1", lightbrightnessvalue.ToString());
|
DicValue("8", brightnessDictionary);
|
status = horizontalSeekBarVol.Progress.ToString() + "K";
|
};
|
horizontalSeekBarVol.OnProgressChangedEvent += progressclick;
|
horizontalSeekBarVol.OnStopTrackingTouchEvent += progressclick;
|
|
|
if (TaskList != null && TaskList.Count != 0)
|
{
|
foreach (var value in TaskList)
|
{
|
if (value["TaskType"] == "8")
|
{
|
var intvalue = int.Parse(value["Data1"]);
|
var lightbrightnessvalue = 1000000 / (intvalue * 100);
|
horizontalSeekBarVol.Progress = lightbrightnessvalue;
|
break;
|
}
|
|
}
|
}
|
}
|
break;
|
case "蜂鸣器":
|
{
|
Dictionary<string, string> switchDictionary = new Dictionary<string, string>();
|
Send.dictionary(switchDictionary, "TaskType", "7");
|
Send.dictionary(switchDictionary, "Data2", "0");
|
|
|
mFunView openView = new mFunView();
|
openView.frameLayout.Y = Application.GetRealHeight(140 + 20);
|
openView.titleBtn.TextID = MyInternationalizationString.open;
|
completeView.Show(2).AddChidren(openView.Show());
|
mFunView closeView = new mFunView();
|
closeView.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160);
|
closeView.titleBtn.TextID = MyInternationalizationString.close;
|
completeView.Show(2).AddChidren(closeView.Show());
|
closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
|
|
///点击确认事件
|
openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
selectedDeviceStatus = "7";
|
openView.selectedIconBtn.Visible = true;
|
closeView.selectedIconBtn.Visible = false;
|
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
|
closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
Send.dictionary(switchDictionary, "Data1", "1");//默认值
|
DicValue("7", switchDictionary);
|
status = Language.StringByID(MyInternationalizationString.open);
|
};
|
|
///点击取消事件
|
closeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
selectedDeviceStatus = "7";
|
openView.selectedIconBtn.Visible = false;
|
closeView.selectedIconBtn.Visible = true;
|
openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
|
closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
|
Send.dictionary(switchDictionary, "Data1", "0");//默认值
|
DicValue("7", switchDictionary);
|
status = Language.StringByID(MyInternationalizationString.close);
|
|
};
|
|
if (TaskList != null && TaskList.Count != 0)
|
{
|
foreach (var value in TaskList)
|
{
|
if (value["TaskType"] == "7")
|
{
|
if (value["Data1"] == "1")
|
{
|
openView.selectedIconBtn.Visible = true;
|
closeView.selectedIconBtn.Visible = false;
|
}
|
else
|
{
|
openView.selectedIconBtn.Visible = false;
|
closeView.selectedIconBtn.Visible = true;
|
}
|
break;
|
}
|
|
}
|
}
|
}
|
break;
|
}
|
completeView.Btncomplete.MouseUpEventHandler += (sender, e) =>
|
{
|
if (selectedDeviceStatus != "")
|
{
|
|
flMain.RemoveFromParent();
|
button.Text = status;
|
|
}
|
else
|
{
|
if (!edit)
|
{
|
var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
|
Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
|
Language.StringByID(MyInternationalizationString.confrim));
|
alert.Show();
|
return;
|
}
|
else
|
{
|
flMain.RemoveFromParent();
|
}
|
|
}
|
|
};
|
}
|
public void DicValue(string str, Dictionary<string, string> dictionay)
|
{
|
bool d = false;
|
foreach (var tasks in TaskList)
|
{
|
if (tasks["TaskType"] == str)
|
{
|
|
TaskList.Remove(tasks);
|
TaskList.Add(dictionay);
|
d = true;
|
break;
|
}
|
}
|
if (!d)
|
{
|
if (TaskList != null)
|
{
|
TaskList.Add(dictionay);
|
}
|
}
|
}
|
}
|
|
}
|