From a7885a24a152a164d7e26b12098ab92a0e272f24 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 18 十一月 2021 13:13:31 +0800
Subject: [PATCH] Merge branch 'WJC' into wxr6
---
HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs | 187 ++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 176 insertions(+), 11 deletions(-)
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs
index 46264c7..1c15401 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs
@@ -61,17 +61,29 @@
shiwaiView.frameLayout.Y = sceneView.frameLayout.Bottom;
shiwaiView.btnText.TextID = StringId.shiwaibainhua;
shiwaiView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png";
-
+
if (MainView.IsGatewayType)
{
viewLayout.AddChidren(shiwaiView.FLayoutView());
}
-
+
+ //鍦扮悊鍥存爮
+ LogicView.SelectTypeView likiadaodaView = new LogicView.SelectTypeView();
+ likiadaodaView.frameLayout.Y = shiwaiView.frameLayout.Bottom;
+ likiadaodaView.btnText.TextID = StringId.likiadaoda;
+ likiadaodaView.btnIcon.UnSelectedImagePath = "LogicIcon/location.png";
+
+ if (MainView.IsGatewayType)
+ {
+ viewLayout.AddChidren(likiadaodaView.FLayoutView());
+ }
+
#endregion
#region 鎵�鏈夌偣鍑讳簨浠�
//鏃堕棿
- timeView.btnClick.MouseUpEventHandler += (sen, e) => {
+ timeView.btnClick.MouseUpEventHandler += (sen, e) =>
+ {
TimeTpye timeTpye = new TimeTpye();
MainPage.BasePageView.AddChidren(timeTpye);
timeTpye.Show();
@@ -79,7 +91,8 @@
};
//鍔熻兘
- functionView.btnClick.MouseUpEventHandler += (sen, e) => {
+ functionView.btnClick.MouseUpEventHandler += (sen, e) =>
+ {
FunTpye funTpye = new FunTpye();
MainPage.BasePageView.AddChidren(funTpye);
funTpye.Show(LogicMethod.condition_if);
@@ -91,16 +104,23 @@
SceneMethod();
};
//瀹ゅ鍙樺寲
- shiwaiView.btnClick.MouseUpEventHandler += (sen, e) => {
- if (string.IsNullOrEmpty(Entity.DB_ResidenceData.Instance.CurrentRegion.homeAddress))//.longitude == 0 && Entity.DB_ResidenceData.Instance.CurrentRegion.latitude == 0)
- {
- new PublicAssmebly().TipMsg(StringId.tip, StringId.GatewayLocationInformationIsNotConfigured);
- return;
- }
+ shiwaiView.btnClick.MouseUpEventHandler += (sen, e) =>
+ {
+ //if (string.IsNullOrEmpty(Entity.DB_ResidenceData.Instance.CurrentRegion.homeAddress))//.longitude == 0 && Entity.DB_ResidenceData.Instance.CurrentRegion.latitude == 0)
+ //{
+ // new PublicAssmebly().TipMsg(StringId.tip, StringId.GatewayLocationInformationIsNotConfigured);
+ // return;
+ //}
Weather weather = new Weather();
MainPage.BasePageView.AddChidren(weather);
weather.Show();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ };
+
+ //鍦扮悊鍥存爮
+ likiadaodaView.btnClick.MouseUpEventHandler += (sen, e) =>
+ {
+ LocationView(this, false);
};
#endregion
@@ -141,6 +161,150 @@
}
/// <summary>
+ /// 鍦扮悊鍥存爮View
+ /// </summary>
+ /// <param name="flMain">Fl main.</param>
+ /// <param name="edit">If set to <c>true</c> edit.</param>
+ public void LocationView(FrameLayout flMain, bool edit)
+ {
+ string strname = "";
+ ///閫氳繃璋冭瘯瀹濈粰鐨勭粡绾害<鏍囧噯GPS>
+ double latitude = Entity.DB_ResidenceData.Instance.CurrentRegion.latitude;//绾害
+ double longitude = Entity.DB_ResidenceData.Instance.CurrentRegion.longitude;//缁忓害
+ //WGS84鍧愭爣杞珮寰峰潗鏍�
+ LogicMethod.CurrLogicMethod.WGS84_to_GCJ02(Entity.DB_ResidenceData.Instance.CurrentRegion.longitude, Entity.DB_ResidenceData.Instance.CurrentRegion.latitude, out longitude, out latitude);
+ int r = 500;//鍗婂緞
+ if (edit)
+ {
+ for (var i = 0; i < Logic.currlogic.input.Count; i++)
+ {
+ var input = Logic.currlogic.input[i];
+ if (input.condition_type != "8")
+ {
+ continue;
+ }
+ if (input.condition[0]["value"] == "arrive")
+ {
+ //鍒拌揪鏌愬湴
+ strname = Language.StringByID(StringId.daoda);
+ }
+ else
+ {
+ //绂诲紑鍦扮偣
+ strname = Language.StringByID(StringId.likai);
+ }
+ //绾害
+ latitude = Convert.ToDouble(input.geo_fence.latitude);
+ //缁忓害
+ longitude = Convert.ToDouble(input.geo_fence.longitude);
+ //鍗婂緞
+ r = int.Parse(input.geo_fence.radius);
+ }
+ }
+ PublicInterface publicInterface = new PublicInterface();
+ var list = publicInterface.GetViewList("鍦扮悊鍥存爮");
+ publicInterface.SingleSelectionShow(flMain, list, Language.StringByID(StringId.likiadaoda), strname, (str) =>
+ {
+
+ string valueStr = "arrive";
+ if (str == Language.StringByID(StringId.daoda))
+ {
+ //鍒拌揪鏌愬湴
+ valueStr = "arrive";
+ }
+ else
+ {
+ //绂诲紑
+ valueStr = "leave";
+ }
+
+#if __Android__
+ //鐢宠瀹氫綅鏉冮檺
+ ((BaseActivity)Application.Activity).SetGPSLocationPermission((result1) =>
+ {
+ if (result1 == false) { return; }
+
+ //鐢宠鍏佽绋嬪簭鍐欏叆澶栭儴瀛樺偍锛屽SD鍗′笂鍐欐枃浠�
+ ((BaseActivity)Application.Activity).SetPermission((result2) =>
+ {
+ if (result2 == false) { return; }
+ //璇诲彇鐢佃瘽鐘舵�佹潈闄�
+ ((BaseActivity)Application.Activity).SetPermission((result3) =>
+ {
+ if (result3 == false) { return; }
+
+ //璋冪敤鏂规硶锛岃烦杞〉闈�
+ GDMapKit.Show((mLatitude, mLongitude, mRadius, name) =>
+ {
+ //楂樺痉鍧愭爣杞琖GS84鍧愭爣(楂樺痉鍦板浘璁剧疆GPS)
+ double out_lng, out_lat;
+ LogicMethod.CurrLogicMethod.GCJ02_to_WGS84(mLongitude, mLatitude, out out_lng, out out_lat);
+ Input input = new Input();
+ input.sid = LogicMethod.CurrLogicMethod.NewSid();
+ input.condition_type = "8";
+ Dictionary<string, string> dic = new Dictionary<string, string>();
+ LogicMethod.CurrLogicMethod.dictionary(dic, "key", "direction");
+ LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "=");
+ LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string");
+ LogicMethod.CurrLogicMethod.dictionary(dic, "value", valueStr);
+ input.condition.Add(dic);
+ //绾害
+ input.geo_fence.latitude = out_lat.ToString();
+ //缁忓害
+ input.geo_fence.longitude = out_lng.ToString();
+ //鍗婂緞<鍗曚綅绫�>
+ input.geo_fence.radius = mRadius.ToString();
+ AddCondition(input);
+ LogicMethod.CurrLogicMethod.RemoveAllView();
+ AddLogic addLogic = new AddLogic();
+ MainPage.BasePageView.AddChidren(addLogic);
+ addLogic.Show();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+
+ }, strname, Language.StringByID(StringId.save), true, latitude, longitude, r);
+
+ }, "android.permission.READ_PHONE_STATE");
+
+ }, "android.permission.WRITE_EXTERNAL_STORAGE");
+ });
+#endif
+#if __IOS__
+ //璋冪敤鏂规硶锛岃烦杞〉闈�
+ GDMapKit.Show((mLatitude, mLongitude, mRadius, name) =>
+ {
+ //楂樺痉鍧愭爣杞琖GS84鍧愭爣(楂樺痉鍦板浘璁剧疆GPS)
+ double out_lng, out_lat;
+ LogicMethod.CurrLogicMethod.GCJ02_to_WGS84(mLongitude, mLatitude, out out_lng, out out_lat);
+
+ Input input = new Input();
+ input.sid = LogicMethod.CurrLogicMethod.NewSid();
+ input.condition_type = "8";
+ Dictionary<string, string> dic = new Dictionary<string, string>();
+ LogicMethod.CurrLogicMethod.dictionary(dic, "key", "direction");
+ LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "=");
+ LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string");
+ LogicMethod.CurrLogicMethod.dictionary(dic, "value", "arrive");
+ input.condition.Add(dic);
+ //绾害
+ input.geo_fence.latitude = out_lat.ToString();
+ //缁忓害
+ input.geo_fence.longitude = out_lng.ToString();
+ //鍗婂緞<鍗曚綅绫�>
+ input.geo_fence.radius = mRadius.ToString();
+ AddCondition(input);
+ LogicMethod.CurrLogicMethod.RemoveAllView();
+ AddLogic addLogic = new AddLogic();
+ MainPage.BasePageView.AddChidren(addLogic);
+ addLogic.Show();
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ }, strname, Language.StringByID(R.MyInternationalizationString.uSave), true, latitude, longitude, r);
+#endif
+ });
+
+
+ }
+
+ /// <summary>
/// 娣诲姞鏉′欢
/// </summary>
/// <param name="input"></param>
@@ -151,8 +315,9 @@
for (var i = 0; i < Logic.currlogic.input.Count; i++)
{
var condition_type = Logic.currlogic.input[i].condition_type;
- if (condition_type == "10")
+ if (condition_type == "10" || condition_type == "8")
{
+ //鏀寔鍦烘櫙=10锛屽湴鐞嗗洿鏍�=8
///鎵惧埌鏍囪绱㈠紩锛岄��鍑哄惊鐜綋
index = i;
break;
--
Gitblit v1.8.0