From adf7df175e590b7d9e0f33c0c2ea1d2897da6301 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 29 三月 2023 14:33:12 +0800
Subject: [PATCH] Merge branch 'dev-cqy(1.5.9)' into wjc

---
 HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs |  258 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 250 insertions(+), 8 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs
index f510cfe..c0a6841 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs
@@ -1,13 +1,47 @@
 锘縰sing System;
 using System.Collections.Generic;
+#if __ANDROID__
+using Android.Content;
+#endif
 using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using Shared;
+#if __IOS__
+using Shared.IOS.HDLCNVRSDK;
+#endif
 namespace HDL_ON.UI
 {
+
+
     public class AddDevciePage : FrameLayout
     {
+#if __ANDROID__
+    public class dddxx { }
+#else
+        //澶у崕鎽勫儚澶磗dk浠g悊锛圫hared.IOS.HDLCNVRSDK)
+        hdlLCNVRSDKDelegate hdlLCNVRDelegate;
+        public class hdlLCNVRSDKDelegate : HDLLCNVRSDKDelegate
+        {
+            Action act;
+            public hdlLCNVRSDKDelegate(Action action)
+            {
+                act = action;
+
+
+            }
+
+            public override void AddDeviceFailWithErrorCode(string errorCode)
+            {
+
+            }
+
+            public override void BackFromAddDeviceView()
+            {
+                act?.Invoke();
+            }
+        }
+#endif
         FrameLayout bodyView;
         IntegratedBrand brand;
         VerticalRefreshLayout contentView;
@@ -20,6 +54,7 @@
 
         public void LoadPage(VerticalRefreshLayout refreshView)
         {
+
             new TopViewDiv(bodyView, Language.StringByID(StringId.AddDevice)).LoadTopView();
             bodyView.BackgroundColor = CSS_Color.BackgroundColor;
 
@@ -46,7 +81,8 @@
         {
             var waitPage = new Loading();
             waitPage.Start();
-            new System.Threading.Thread(() => {
+            new System.Threading.Thread(() =>
+            {
                 try
                 {
                     var pm = new HttpServerRequest();
@@ -119,7 +155,7 @@
                     Width = Application.GetRealWidth(32),
                     Height = Application.GetRealWidth(32),
                     Radius = (uint)Application.GetRealWidth(4),
-                    UnSelectedImagePath =  $"FunctionIcon/Icon/{device.IconName}.png",
+                    UnSelectedImagePath = $"FunctionIcon/Icon/{device.IconName}.png",
                 };
                 row.AddChidren(btnIcon);
                 Button btnRight = new Button()
@@ -143,30 +179,235 @@
                 };
                 row.AddChidren(btnName);
 
-                btnName.MouseUpEventHandler = (sender, e) => {
+
+
+                btnName.MouseUpEventHandler = (sender, e) =>
+                {
                     switch (device.spk)
                     {
+                        case SPK.IpCam_Imou:
+
+#if __IOS__
+
+                            //鍒濆鍖栧ぇ鍗庢憚鍍忓ごsdk
+                            Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().InitSDKWithAppKey("HDL-HOME-APP-TEST", "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss", OnAppConfig.Instance.RequestHttpsHost);
+                            Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().AccessToken = UserInfo.Current.LoginTokenString;
+                            Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().RefreshToken = UserInfo.Current.RefreshToken;
+                            Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().HomeId = DB_ResidenceData.Instance.CurrentRegion.id;
+                            //璺宠浆娣诲姞鎽勫儚澶�(Shared.IOS.HDLCNVRSDK)
+                            hdlLCNVRDelegate = new hdlLCNVRSDKDelegate(() =>
+                            {//娣诲姞鎴愬姛杩斿洖浜嬩欢
+                                refreshView.BeginHeaderRefreshing();
+                                this.RemoveFromParent();
+                            });
+                            Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().Delegate = hdlLCNVRDelegate;
+                            Shared.IOS.HDLCNVRSDK.HDLLCNVRSDK.SharedInstance().ToAddDeviceView();
+#else
+                                FunctionList.List.GetIpCamImouList();
+                                if (string.IsNullOrEmpty(Com.Utils.HdlToLcUtils.Instance.SubAccessToken))
+                                {
+
+                                    var waitPage = new Loading();
+                                    MainPage.BaseView.AddChidren(waitPage);
+                                    waitPage.Start("");
+                                    new System.Threading.Thread(() =>
+                                    {
+                                        try
+                                        {
+
+#if DEBUG
+                                            Com.Utils.HdlToLcUtils.Instance.ShowErrorInfo(true);
+#endif
+
+                                            var http = new HttpServerRequest();
+                                            var pack = http.GetLcSubAccountToken();
+                                            if (pack.Code == StateCode.SUCCESS)
+                                            {
+                                                if (pack.Data == null || string.IsNullOrEmpty(pack.Data.ToString()))
+                                                {
+                                                    Application.RunOnMainThread(() =>
+                                                    {
+                                                        new PublicAssmebly().TipMsg(Language.StringByID(StringId.Tip), Language.StringByID(StringId.Get3tyIotInfoFailed));
+                                                        return;
+                                                    });
+                                                }
+                                                Com.Utils.HdlToLcUtils.Instance.InitData(Shared.Application.Activity, "HDL-HOME-APP-TEST", "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss", OnAppConfig.Instance.RequestHttpsHost);
+                                                Com.Utils.HdlToLcUtils.Instance.HomeId = DB_ResidenceData.Instance.CurrentRegion.id;
+                                                Com.Utils.HdlToLcUtils.Instance.Token = UserInfo.Current.AccessToken;
+                                                Com.Utils.HdlToLcUtils.Instance.SubAccessToken = pack.Data.ToString();
+
+#if __ANDROID__
+                                                Application.RunOnMainThread(() =>
+                                                {
+                                                    try
+                                                    {
+                                                        var result = Com.Utils.HdlToLcUtils.Instance.CheckCameraPermissions();
+                                                        if (result)
+                                                        {
+                                                            var bindDeviceFeedback = new BindDeviceFeedback();
+                                                            bindDeviceFeedback.tipAction = (method, msg) => {
+                                                                HDLUtils.WriteLine(method + "::" + msg);
+                                                                if(method == "bindDevice")
+                                                                {
+                                                                    var bindResult = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePackNew>(msg);
+                                                                    if (bindResult != null)
+                                                                    {
+                                                                        if (bindResult.Code == "147021") {
+                                                                            string tipTitle = "鎻愮ず";
+                                                                            string tipMsg = "鏃犳硶缁戝畾璇ヨ澶囷紝璇蜂粠娌充笢娓犻亾璐拱璇ョ被鍨嬩骇鍝�";
+                                                                            if (Language.CurrentLanguage != "Chinese")
+                                                                            {
+                                                                                tipTitle = "Tip";
+                                                                                tipMsg = "Unable to bind this device. Please purchase this type of product from HDL";
+                                                                            }
+                                                                            new PublicAssmebly().TipMsg(tipTitle, tipMsg);
+                                                                        }
+                                                                        else
+                                                                        {
+                                                                            string tipTitle = "鎻愮ず";
+                                                                            string tipMsg = $"{bindResult.message}({bindResult.Code})";
+                                                                            if (Language.CurrentLanguage != "Chinese")
+                                                                            {
+                                                                                tipTitle = "Tip";
+                                                                            }
+                                                                            new PublicAssmebly().TipMsg(tipTitle, tipMsg);
+                                                                        }
+                                                                    }
+
+                                                                }
+                                                            };
+                                                            Hdl.Onpro.HdlData.Instance.InitData(bindDeviceFeedback, device.productBrand);
+
+                                                            var backTemp = new AddLcCam();
+                                                            backTemp.backAction = () =>
+                                                            {
+                                                                refreshView.BeginHeaderRefreshing();
+                                                                this.RemoveFromParent();
+                                                            };
+                                                            Com.Utils.HdlToLcUtils.Instance.AddCamera(backTemp);
+                                                            
+                                                        }
+                                                        else
+                                                        {
+                                                            Com.Utils.HdlToLcUtils.Instance.RequestCameraPermissions();
+                                                        }
+                                                    }
+                                                    catch (Exception ex)
+                                                    {
+
+                                                    }
+                                                    finally
+                                                    {
+                                                    }
+                                                });
+#endif
+                                            }
+                                            else
+                                            {
+                                                Application.RunOnMainThread(() =>
+                                                {
+                                                    new PublicAssmebly().TipMsg(Language.StringByID(StringId.Tip), Language.StringByID(StringId.huoqushujushibao) + $"({pack.Code})");
+                                                });
+                                            }
+                                        }
+                                        catch (Exception ex)
+                                        {
+                                            MainPage.Log("鍔犺浇涔愭鎽勫儚澶村紓甯�");
+                                        }
+                                        finally
+                                        {
+                                            Application.RunOnMainThread(() =>
+                                            {
+                                                if (waitPage != null)
+                                                {
+                                                    waitPage.RemoveFromParent();
+                                                    waitPage = null;
+                                                }
+                                            });
+                                        }
+                                    })
+                                    { IsBackground = true }.Start();
+                                }
+                                else
+                                {
+                                    var result = Com.Utils.HdlToLcUtils.Instance.CheckCameraPermissions();
+                                    if (result)
+                                    {
+                                        var bindDeviceFeedback = new BindDeviceFeedback();
+                                        bindDeviceFeedback.tipAction = (method, msg) => {
+                                            HDLUtils.WriteLine(method + "::" + msg);
+                                            if (method == "bindDevice")
+                                            {
+                                                var bindResult = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePackNew>(msg);
+                                                if (bindResult != null)
+                                                {
+                                                    if (bindResult.Code == "147021")
+                                                    {
+                                                        string tipTitle = "鎻愮ず";
+                                                        string tipMsg = "鏃犳硶缁戝畾璇ヨ澶囷紝璇蜂粠娌充笢娓犻亾璐拱璇ョ被鍨嬩骇鍝�";
+                                                        if (Language.CurrentLanguage != "Chinese")
+                                                        {
+                                                            tipTitle = "Tip";
+                                                            tipMsg = "Unable to bind this device. Please purchase this type of product from HDL";
+                                                        }
+                                                        new PublicAssmebly().TipMsg(tipTitle, tipMsg);
+                                                    }
+                                                    else
+                                                    {
+                                                        string tipTitle = "鎻愮ず";
+                                                        string tipMsg = $"{bindResult.message}({bindResult.Code})";
+                                                        if (Language.CurrentLanguage != "Chinese")
+                                                        {
+                                                            tipTitle = "Tip";
+                                                        }
+                                                        new PublicAssmebly().TipMsg(tipTitle, tipMsg);
+                                                    }
+                                                }
+                                            }
+                                        };
+                                        Hdl.Onpro.HdlData.Instance.InitData(bindDeviceFeedback, device.productBrand);
+
+
+                                    var backTemp = new AddLcCam();
+                                        backTemp.backAction = () =>
+                                        {
+                                            refreshView.BeginHeaderRefreshing();
+                                            this.RemoveFromParent();
+                                        };
+                                        Com.Utils.HdlToLcUtils.Instance.AddCamera(backTemp);
+                                    }
+                                    else
+                                    {
+                                        Com.Utils.HdlToLcUtils.Instance.RequestCameraPermissions();
+                                    }
+                                }
+#endif
+                            break;
                         case SPK.IrModule:
                             var form = new AddMiniRemoteControlDirection1Page();
                             form.AddForm();
-                            form.AddDeviceEvent = (functionObj) => {
+                            form.AddDeviceEvent = (functionObj) =>
+                            {
                                 refreshView.BeginHeaderRefreshing();
-                            }; 
+                            };
                             break;
                         case SPK.SenesorMegahealth:
                         case SPK.SenesorMegahealth2:
                         case SPK.SensorMmvPose:
                             var form1 = new AddSenesorMegahealthDirection1Page();
                             form1.AddForm(device);
-                            form1.AddDeviceEvent = (functionObj) => {
+                            form1.AddDeviceEvent = (functionObj) =>
+                            {
                                 refreshView.BeginHeaderRefreshing();
                                 this.RemoveFromParent();
                             };
                             break;
                         case SPK.SensorEnvironment:
+                        case SPK.SensorEnvironmentHailin:
                             var form2 = new AddSensorEnvironmentPage();
                             form2.AddForm(device);
-                            form2.AddDeviceEvent = (functionObj) => {
+                            form2.AddDeviceEvent = (functionObj) =>
+                            {
                                 refreshView.BeginHeaderRefreshing();
                                 this.RemoveFromParent();
                             };
@@ -175,7 +416,8 @@
                         case SPK.SensorEnvironment3:
                             var form3 = new AddQingpingSensorEnvirTipPage();
                             form3.AddForm(device);
-                            form3.AddDeviceEvent = (functionObj) => {
+                            form3.AddDeviceEvent = (functionObj) =>
+                            {
                                 refreshView.BeginHeaderRefreshing();
                                 this.RemoveFromParent();
                             };

--
Gitblit v1.8.0