From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 28 二月 2020 15:25:13 +0800
Subject: [PATCH] 2020.2.28
---
ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs | 384 ++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 269 insertions(+), 115 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
index 36ea833..cab5da2 100755
--- a/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/LogicCommunalPage.cs
@@ -18,7 +18,7 @@
Tag = "Logic";
}
EditText logicTextBox;
- public void Show(Action action)
+ public async void Show(Action action)
{
#region 鏈�涓婇潰鐨勫竷灞�浠g爜
@@ -40,6 +40,7 @@
Height = Application.GetRealHeight(69),
Y = Application.GetRealHeight(92),
TextID = MyInternationalizationString.selection,
+ IsBold = true,
};
topRowLayout.AddChidren(titleName);
if (Common.Logic.CurrentLogic.LogicId != 0)
@@ -78,12 +79,7 @@
action();
RemoveFromParent();
};
-
-
-
#endregion
-
-
var middle = new VerticalScrolViewLayout
{
@@ -92,7 +88,26 @@
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
};
this.AddChidren(middle);
+ var saveFrameLayout = new FrameLayout
+ {
+ Y = middle.Bottom,
+ Height = Application.GetRealHeight(180),
+ BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
+ };
+ this.AddChidren(saveFrameLayout);
+ var btnsave = new Button
+ {
+ X = Application.GetRealWidth(85),
+ Height = Application.GetRealHeight(130),//194
+ Width = Application.GetRealWidth(910),
+ Radius = (uint)Application.GetRealHeight(60),
+ BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor,
+ TextID = MyInternationalizationString.Save,
+ TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
+ TextSize = 16,
+ };
+ saveFrameLayout.AddChidren(btnsave);
#region -----鑷姩鍖栧悕绉� 璁剧疆鍚嶇О-----
var logicnamefl = new FrameLayout
@@ -496,7 +511,8 @@
var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return obj.DeviceAddr == conditions["MacAddr"] && obj.DeviceEpoint.ToString() == conditions["Epoint"]; });
if (deviceinof == null)
{
- continue;
+ deviceinof = new ZigBee.Device.CommonDevice();
+ //continue;
}
///鏄剧ず璁惧鍚嶇О
var btndevice = new Button
@@ -617,14 +633,24 @@
{
int minute = int.Parse(conditions["IgnoreTime"]) / 60;
int second = int.Parse(conditions["IgnoreTime"]) % 60;
- if (second != 0)
+ if (minute != 0 && second != 0)
{
devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
}
else
{
- devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.unattendedtime1);
+ if (minute == 0 && second != 0)
+ {
+ devicestatus.Text = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
+
+ }
+ if (minute != 0 && second == 0)
+ {
+ devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.unattendedtime1);
+
+ }
+
}
}
}
@@ -632,7 +658,6 @@
case 21:
case 22:
{
- conditionIcon.UnSelectedImagePath = "ZigeeLogic/doormagnetism.png";
if (intvalue == "1")
{
devicestatus.TextID = MyInternationalizationString.logicopen;
@@ -644,14 +669,24 @@
int minute = int.Parse(conditions["IgnoreTime"]) / 60;
int second = int.Parse(conditions["IgnoreTime"]) % 60;
- if (second != 0)
+ if (minute != 0 && second != 0)
{
devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime);
}
else
{
- devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.closetime);
+ if (minute == 0 && second != 0)
+ {
+ devicestatus.Text = second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.closetime);
+
+ }
+ if (minute != 0 && second == 0)
+ {
+ devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.closetime);
+
+ }
+
}
}
@@ -664,7 +699,6 @@
break;
case 40:
{
- conditionIcon.UnSelectedImagePath = "ZigeeLogic/smoke.png";
if (intvalue == "1")
{
devicestatus.TextID = MyInternationalizationString.smokescreen;
@@ -674,7 +708,6 @@
break;
case 42:
{
- conditionIcon.UnSelectedImagePath = "ZigeeLogic/waterleakage.png";
if (intvalue == "1")
{
devicestatus.TextID = MyInternationalizationString.waterleakage;
@@ -687,7 +720,6 @@
break;
case 43:
{
- conditionIcon.UnSelectedImagePath = "ZigeeLogic/gas.png";
if (intvalue == "1")
{
devicestatus.TextID = MyInternationalizationString.gas;
@@ -697,7 +729,6 @@
break;
case 277:
{
- conditionIcon.UnSelectedImagePath = "ZigeeLogic/waterleakage.png";
if (intvalue == "1")
{
devicestatus.TextID = MyInternationalizationString.callthepolice;
@@ -707,7 +738,6 @@
break;
default:
{
- conditionIcon.UnSelectedImagePath = "ZigeeLogic/infraredsensor.png";
if (intvalue == "1")
{
devicestatus.TextID = MyInternationalizationString.callthepolice;
@@ -743,22 +773,54 @@
}
break;
case DeviceType.TemperatureSensor:
- // conditionIcon.UnSelectedImagePath = "ZigeeLogic/temperature.png";
+ // conditionIcon.UnSelectedImagePath = "ZigeeLogic/temperature.png";
var dev = deviceinof as TemperatureSensor;
- if (conditions["Cluster_ID"]=="1026") {
+ if (conditions["Cluster_ID"] == "1026")
+ {
dev.SensorDiv = 1;
- } else {
+ }
+ else
+ {
dev.SensorDiv = 2;
+ }
+ string s = "";
+ switch (conditions["Range"])
+ {
+ case "0":
+ {
+ s = ">";
+ }
+ break;
+ case "1":
+ {
+ s = "=";
+ }
+ break;
+ case "2":
+ {
+ s = "<";
+ }
+ break;
+ case "6":
+ {
+ s = "鈮�";
+ }
+ break;
+ case "7":
+ {
+ s = "鈮�";
+ }
+ break;
}
if (conditions["Cluster_ID"] == "1026")
{
conditionIcon.UnSelectedImagePath = "ZigeeLogic/temperature.png";
- devicestatus.Text = ">" + conditions["AttriButeData1"] + "鈩�";
+ devicestatus.Text = s + conditions["AttriButeData1"] + "鈩�";
}
else
{
conditionIcon.UnSelectedImagePath = "ZigeeLogic/humidity.png";
- devicestatus.Text = "<" + conditions["AttriButeData1"] + "%";
+ devicestatus.Text = s + conditions["AttriButeData1"] + "%";
}
break;
@@ -874,26 +936,37 @@
};
conditionsRowLayout.AddChidren(securitystatus);
- if (conditions["EnOrWithdrawMode"] == "1")
+ switch (conditions["EnOrWithdrawMode"])
{
- conditionIcon.UnSelectedImagePath = "ZigeeLogic/withdrawal.png";
- securitystatus.Text = Language.StringByID(MyInternationalizationString.withdrawal);
- }
- else
- {
- if (conditions["ModeId"] == "1")
- {
- conditionIcon.UnSelectedImagePath = "ZigeeLogic/athome.png";
- securitystatus.Text = Language.StringByID(MyInternationalizationString.logicathomegarrison);
+ case "0":
+ {
+ if (conditions["ModeId"] == "1")
+ {
+ conditionIcon.UnSelectedImagePath = "ZigeeLogic/athome.png";
+ securitystatus.Text = Language.StringByID(MyInternationalizationString.logicathomegarrison);
- }
- else
- {
- conditionIcon.UnSelectedImagePath = "ZigeeLogic/leavehome.png";
- securitystatus.Text = Language.StringByID(MyInternationalizationString.logicremovehomegarrison);
-
- }
+ }
+ else
+ {
+ conditionIcon.UnSelectedImagePath = "ZigeeLogic/leavehome.png";
+ securitystatus.Text = Language.StringByID(MyInternationalizationString.logicremovehomegarrison);
+ }
+ }
+ break;
+ case "1":
+ {
+ conditionIcon.UnSelectedImagePath = "ZigeeLogic/withdrawal.png";
+ securitystatus.Text = Language.StringByID(MyInternationalizationString.withdrawal);
+ }
+ break;
+ case "2":
+ {
+ conditionIcon.UnSelectedImagePath = "ZigeeLogic/withdrawal.png";
+ securitystatus.Text = Language.StringByID(MyInternationalizationString.urgentwithdrawal);
+ }
+ break;
}
+
}
break;
case 7:
@@ -902,7 +975,7 @@
conditionIcon.UnSelectedImagePath = "ZigeeLogic/position.png";
var btnlocation = new Button
{
- Width = Application.GetRealWidth(700),
+ Width = Application.GetRealWidth(250),
TextAlignment = TextAlignment.CenterLeft,
Gravity = Gravity.CenterVertical,
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
@@ -929,11 +1002,11 @@
var locationstatus = new Button
{
- Width = Application.GetRealWidth(300),
+ Width = Application.GetRealWidth(550),
Height = Application.GetRealHeight(130),
Gravity = Gravity.CenterVertical,
TextAlignment = TextAlignment.CenterRight,
- X = Application.GetRealWidth(500),
+ X = Application.GetRealWidth(250),
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
TextSize = 14,
};
@@ -967,20 +1040,19 @@
del.MouseUpEventHandler += (sender, e) =>
{
- var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete),
- Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim));
- alert.ResultEventHandler += (sender1, e1) =>
- {
- if (e1)
- {
- Common.Logic.CurrentLogic.Conditions.Remove(conditions);
- var logicCommunalPage = new LogicCommunalPage();
- UserView.HomePage.Instance.AddChidren(logicCommunalPage);
- UserView.HomePage.Instance.PageIndex += 1;
- logicCommunalPage.Show(() => { });
- }
- };
+ var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Confirm,
+ Language.StringByID(MyInternationalizationString.doyouwanttodelete),
+ Language.StringByID(MyInternationalizationString.confrim));
alert.Show();
+
+ alert.ConfirmClickEvent += () =>
+ {
+ Common.Logic.CurrentLogic.Conditions.Remove(conditions);
+ var logicCommunalPage = new LogicCommunalPage();
+ UserView.HomePage.Instance.AddChidren(logicCommunalPage);
+ UserView.HomePage.Instance.PageIndex += 1;
+ logicCommunalPage.Show(() => { });
+ };
};
@@ -1148,9 +1220,11 @@
var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return ((obj.DeviceAddr == obj1) && (obj.DeviceEpoint.ToString() == obj2)); });
if (deviceinof == null)
{
- continue;
+
+ deviceinof = new ZigBee.Device.CommonDevice();
+ // continue;
}
-
+
///璁惧鍚嶇ОButton
var btndevicename = new Button
{
@@ -1456,11 +1530,29 @@
break;
case 2:
{
-
+ //鍦ㄦ湰鍦版煡鎵捐鍦烘櫙;
var sceneinof = Common.Room.AllRoomSceneUIList.Find((obj) => { return obj.Id.ToString() == actions["DeviceAddr"].ToString(); });
+ //鏈湴娌℃湁瀛樺湪;
if (sceneinof == null)
{
- continue;
+ //瀹炵幇鐩殑:鏄剧ず鍑烘潵璁╁彲浠ヨ嚜宸辨槸鍚﹀垹闄�
+ sceneinof = new SceneUI();
+ #region --------
+ ////鍦ㄧ綉鍏虫煡鎵捐鍦烘櫙;
+ ////鏍囪闂:缃戠粶璇锋眰锛屽瓨鍦ㄨ鍥惧姞杞藉揩鎱㈢殑闂锛�
+ //sceneinof = await Send.GetScene(int.Parse(actions["DeviceAddr"].ToString()));
+ ////缃戝叧娌℃湁瀛樺湪;
+ //if (sceneinof == null)
+ //{
+ // //娉ㄨВ:鏈湴鍜岀綉鍏抽兘涓嶅瓨鍦ㄨ鍦烘櫙,鐣岄潰灏嗕笉浼氭樉绀鸿鍦烘櫙;
+ // //sceneinof = new SceneUI();
+ // //绉婚櫎璇ュ満鏅暟鎹�;
+ // Common.Logic.CurrentLogic.Actions.Remove(actions);
+ // //绉婚櫎璇ュ満鏅鍥�;
+ // devicesFrameLayout.RemoveFromParent();
+ // continue;
+ //}
+ #endregion
}
actionsIcon.UnSelectedImagePath = "ZigeeLogic/scene.png";
@@ -1492,7 +1584,6 @@
Common.Room room = new Common.Room();
btnregionname.Text = room.GetRoomNameBySceneId(sceneinof.Id);
//Send.RoomNmae(btnregionname, deviceinof);
-
}
@@ -1698,20 +1789,19 @@
del.MouseUpEventHandler += (sender, e) =>
{
- var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete),
- Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim));
- alert.ResultEventHandler += (sender1, e1) =>
+ var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Confirm,
+ Language.StringByID(MyInternationalizationString.doyouwanttodelete),
+ Language.StringByID(MyInternationalizationString.confrim));
+ alert.Show();
+ alert.ConfirmClickEvent += () =>
{
- if (e1)
- {
- Common.Logic.CurrentLogic.Actions.Remove(actions);
- var logicCommunalPage = new LogicCommunalPage();
- UserView.HomePage.Instance.AddChidren(logicCommunalPage);
- UserView.HomePage.Instance.PageIndex += 1;
- logicCommunalPage.Show(() => { });
- }
+ Common.Logic.CurrentLogic.Actions.Remove(actions);
+ // devicesFrameLayout.RemoveFromParent();
+ var logicCommunalPage = new LogicCommunalPage();
+ UserView.HomePage.Instance.AddChidren(logicCommunalPage);
+ UserView.HomePage.Instance.PageIndex += 1;
+ logicCommunalPage.Show(() => { });
};
- alert.Show();
};
@@ -1841,23 +1931,11 @@
Gravity = Gravity.CenterVertical,
};
pushswitchRowlayout.AddChidren(btnswitch);
- btnswitch.MouseUpEventHandler += (sender1, e1) =>
- {
- btnswitch.IsSelected = !btnswitch.IsSelected;
- if (btnswitch.IsSelected)
- {
-
- }
- else
- {
-
- }
- };
var custompushFrameLayout = new FrameLayout
{
- Height = Application.GetRealHeight(160),
+ Height = Application.GetRealHeight(0),
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
};
middle.AddChidren(custompushFrameLayout);
@@ -1905,47 +1983,63 @@
btncustompush.MouseUpEventHandler += customclick;
custompushback.MouseUpEventHandler += customclick;
custompushRowLayout.MouseUpEventHandler += customclick;
+ bool tag = false;//鏍囪寮�鍏崇姸鎬�;
+ btnswitch.MouseUpEventHandler +=(sender1, e1) =>
+ {
+ btnswitch.IsSelected = !btnswitch.IsSelected;
+ if (btnswitch.IsSelected)
+ {
+ tag = true;
+ custompushFrameLayout.Height = Application.GetRealHeight(160);
+ Common.Logic.CurrentLogic.LogicIsCustomPushText = 1;
+ }
+ else
+ {
+ tag = false;
+ custompushFrameLayout.Height = Application.GetRealHeight(0);
+ Common.Logic.CurrentLogic.LogicIsCustomPushText = 0;
+ }
+ Send.Zj(tag,Common.Logic.CurrentLogic);
+ };
+
+ if (Common.Logic.CurrentLogic.LogicIsCustomPushText == 0)
+ {
+ tag = false;
+ btnswitch.IsSelected = false;
+ custompushFrameLayout.Height = Application.GetRealHeight(0);
+ }
+ else
+ {
+ tag = true;
+ btnswitch.IsSelected = true;
+ custompushFrameLayout.Height = Application.GetRealHeight(160);
+ }
#endregion
- var saveFrameLayout = new FrameLayout
- {
- Y = middle.Bottom,
- Height = Application.GetRealHeight(180),
- BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
- };
- this.AddChidren(saveFrameLayout);
-
- var btnsave = new Button
- {
- X = Application.GetRealWidth(85),
- Height = Application.GetRealHeight(130),//194
- Width = Application.GetRealWidth(910),
- Radius = (uint)Application.GetRealHeight(60),
- BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor,
- TextID = MyInternationalizationString.Save,
- TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
- TextSize=16,
- };
- saveFrameLayout.AddChidren(btnsave);
+
btnsave.MouseUpEventHandler += async (sender, e) =>
{
var name = logicTextBox.Text.Trim();
if (string.IsNullOrEmpty(logicTextBox.Text.Trim()))
{
- new Alert(Language.StringByID(MyInternationalizationString.Tip), Language.StringByID(MyInternationalizationString.PleaseEnterLogicName), Language.StringByID(MyInternationalizationString.Close)).Show();
+ var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
+ Language.StringByID(MyInternationalizationString.PleaseEnterLogicName),
+ Language.StringByID(MyInternationalizationString.confrim));
+ alert.Show();
return;
}
- var logicname = Common.Logic.LogicList.Find((logic) => Common.Logic.CurrentLogic.LogicId != logic.LogicId && logic.LogicName == name);
- if (logicname != null)
- {
- new Alert(Language.StringByID(MyInternationalizationString.Tip), Language.StringByID(MyInternationalizationString.Rename), Language.StringByID(MyInternationalizationString.Close)).Show();
- return;
- }
+ ///鍏堥殣钘忓垽鏂悕瀛楃浉鍚岀殑鍔熻兘锛�
+ //var logicname = Common.Logic.LogicList.Find((logic) => Common.Logic.CurrentLogic.LogicId != logic.LogicId && logic.LogicName == name);
+ //if (logicname != null)
+ //{
+ // new Alert(Language.StringByID(MyInternationalizationString.Tip), Language.StringByID(MyInternationalizationString.Rename), Language.StringByID(MyInternationalizationString.Close)).Show();
+ // return;
+ //}
Common.Logic.CurrentLogic.LogicName = name;
-
+ bool succeed = false;
//鍒ゆ柇鏄柊娣诲姞閫昏緫(榛樿0)杩樻槸淇敼閫昏緫
CommonPage.Loading.Start();
if (Common.Logic.CurrentLogic.LogicId == 0)
@@ -1954,17 +2048,32 @@
var logicifon = await Send.AddModifyLogic(Common.Logic.CurrentLogic);
if (logicifon != null && logicifon.LogicId != 0)
{
+ succeed = true;
Common.Logic.CurrentLogic.LogicId = logicifon.LogicId;
Common.Logic.LogicList.Add(Common.Logic.CurrentLogic);
+ if (tag)
+ {
+ Send.Zj(tag, Common.Logic.CurrentLogic);
+ }
}
}
else
{
//鍙戦�佷慨鏀归�昏緫鍛戒护
- Send.AddModifyLogic(Common.Logic.CurrentLogic);
+ var modlogic=Send.AddModifyLogic(Common.Logic.CurrentLogic);
+ //缂栬緫榛樿鎴愬姛锛堜笉鑰冭檻缃戠粶鎯呭喌锛夛紱
+ succeed = true;
}
-
CommonPage.Loading.Hide();
+
+ if (!succeed)//succeed鏍囪鏄坊鍔犳垚鍔熻繕鏄け璐�
+ {
+ //缃戝叧鍥炲澶辫触锛屼笉鍏抽棴鐣岄潰锛岃瀹冨仠鐣欏綋鍓嶇晫闈紱
+ //锛堝師鍥狅細鑰冭檻鍒板け璐ラ噸鏂扮紪杈戝師鏉ユ暟鎹粰鐢ㄦ埛甯︽潵浜嗛夯鐑︼級
+ ///鎻愮ず锛氭坊鍔犺嚜鍔ㄥ寲澶辫触锛�
+ //TipView("娣诲姞鑷姩鍖栧け璐�");
+ //return;
+ }
UserView.HomePage.Instance.RemoveViewByTag("Logic");
Category.Category.instance?.RefreshBodyView();
@@ -2464,5 +2573,50 @@
};
}
+ /// <summary>
+ /// 闂幇寮忔彁绀烘鐨勬柟娉�
+ /// </summary>
+ /// <param name="tipText">鎻愮ず鍐呭</param>
+ /// <param name="second">鍋滅暀鏃堕棿鍗曚綅涓簊</param>
+ public void TipView(string tipText, int second = 1)
+ {
+
+ var frameLayout = new FrameLayout { BackgroundColor = 0x50000000 };
+ this.AddChidren(frameLayout);
+
+ var btn = new Button
+ {
+ Gravity = Gravity.Center,
+ Text = tipText,
+ BackgroundColor = 0xff1f1f1f,
+ Width = Application.GetRealWidth(500),
+ Height = Application.GetRealHeight(100),
+ Radius = (uint)Application.GetRealHeight(50),
+ };
+ frameLayout.AddChidren(btn);
+
+ var dateTime1 = DateTime.Now;
+ new System.Threading.Thread(() =>
+ {
+ Application.RunOnMainThread(() =>
+ {
+ while (true)
+ {
+ if ((DateTime.Now - dateTime1).TotalMilliseconds > second * 1000)
+ {
+ //榛樿涓�绉掑叧闂�
+ frameLayout.RemoveFromParent();
+ break;
+ }
+ }
+ });
+ })
+ { IsBackground = true }.Start();
+
+ }
+
+
+
+
}
}
--
Gitblit v1.8.0