From b8d7b4fa382f7c779fb9e81a9f049d94a9083fa3 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期二, 16 十一月 2021 18:41:01 +0800
Subject: [PATCH] 2021-11-16-01

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs |  177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 171 insertions(+), 6 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..5ec11e6 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,7 +104,8 @@
                 SceneMethod();
             };
             //瀹ゅ鍙樺寲
-            shiwaiView.btnClick.MouseUpEventHandler += (sen, e) => {
+            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);
@@ -101,6 +115,12 @@
                 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