From 7ff70bc7c9460c395b59952d55df6e5d6a12a718 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 15 二月 2023 16:27:32 +0800
Subject: [PATCH] Merge branch 'Dev-Wxr'

---
 HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs |  338 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 332 insertions(+), 6 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
index 048ce36..2496657 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
@@ -3,6 +3,9 @@
 using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
+#if __Android__
+using Java.Interop;
+#endif
 using Shared;
 namespace HDL_ON.UI
 {
@@ -23,10 +26,124 @@
         {
             Action<string, string> action = (s, a) =>
             {
-                var page = new AddDevciePage(brand);
-                MainPage.BasePageView.AddChidren(page);
-                page.LoadPage(contentView);
-                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                if (brand.productBrand == "IMOU")
+                {
+#if __ANDROID__
+
+                    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 backTemp = new AddLcCam();
+                                                backTemp.backAction = () =>
+                                                {
+                                                    Load3tyBrandDeviceList();
+                                                };
+                                                Com.Utils.HdlToLcUtils.Instance.AddCamera(backTemp);
+                                            }
+                                            else
+                                            {
+                                                Com.Utils.HdlToLcUtils.Instance.RequestCameraPermissions();
+                                            }
+                                        }
+                                        catch (Exception ex)
+                                        {
+
+                                        }
+                                    });
+#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 backTemp = new AddLcCam();
+                            backTemp.backAction = () =>
+                            {
+                                Load3tyBrandDeviceList();
+                            };
+                            Com.Utils.HdlToLcUtils.Instance.AddCamera(backTemp);
+                        }
+                        else
+                        {
+                            Com.Utils.HdlToLcUtils.Instance.RequestCameraPermissions();
+                        }
+                    }
+#endif
+                }
+                else
+                {
+                    var page = new AddDevciePage(brand);
+                    MainPage.BasePageView.AddChidren(page);
+                    page.LoadPage(contentView);
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                }
             };
             new TopViewDiv(bodyView, Language.StringByID(StringId.Devices)).LoadTopView_AddIcon("3ty", action);
             bodyView.BackgroundColor = CSS_Color.BackgroundColor;
@@ -108,10 +225,11 @@
             bool isFrist = true;
             foreach (var device in deviceList)
             {
-                FrameLayout row = new FrameLayout()
+                var row = new RowLayout()
                 {
                     Height = Application.GetRealHeight(50),
                     BackgroundColor = CSS_Color.MainBackgroundColor,
+                    LineColor = 0x00000000,
                 };
                 contentView.AddChidren(row);
 
@@ -193,6 +311,140 @@
                             break;
                     }
                 };
+
+
+
+                if (device.spk == SPK.IpCam_Imou)
+                {
+                    var btnDel = new Button()
+                    {
+                        TextColor = CSS_Color.MainBackgroundColor,
+                        BackgroundColor = CSS_Color.WarningColor,
+                        TextID = StringId.Del,
+                        TextAlignment = TextAlignment.Center,
+                    };
+                    row.AddRightView(btnDel);
+
+                    btnDel.MouseUpEventHandler = (sender, e) =>
+                    {
+                        Action action = () =>
+                        {
+                            var waitPage = new Loading();
+                            this.AddChidren(waitPage);
+                            waitPage.Start("");
+                            new System.Threading.Thread(() =>
+                            {
+                                try
+                                {
+                                    var http = new HttpServerRequest();
+                                    var result = http.Delete3tyDevice(device.deviceId);
+                                    if (result.Code == StateCode.SUCCESS)
+                                    {
+                                        Application.RunOnMainThread(() =>
+                                        {
+                                            Load3tyBrandDeviceList();
+                                        });
+                                    }
+                                    else
+                                    {
+                                        Application.RunOnMainThread(() =>
+                                        {
+                                            new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.OperationFailed) + $"({result.Code})", true);
+                                        });
+                                    }
+                                }
+                                catch (Exception ex)
+                                {
+                                    MainPage.Log($"鍒犻櫎绗笁鏂硅澶囧け璐�:{ex.Message}");
+                                }
+                                finally
+                                {
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        if (waitPage != null)
+                                        {
+                                            waitPage.RemoveFromParent();
+                                            waitPage = null;
+                                        }
+                                    });
+                                }
+                            })
+                            { IsBackground = true }.Start();
+                        };
+                        new PublicAssmebly().TipOptionMsg(StringId.Tip, Language.StringByID(StringId.AreYouSureToDeleteThisDevice), action);
+                    };
+
+                    var btnEdit = new Button()
+                    {
+                        Width = Application.GetRealWidth(150),
+                    };
+                    row.AddChidren(btnEdit);
+                    btnEdit.MouseUpEventHandler = (sender, e) =>{
+                        Action<string> callBack = (str) =>
+                        {
+                            if (string.IsNullOrEmpty(str))
+                            {
+                                new Tip()
+                                {
+                                    CloseTime = 1,
+                                    Text = Language.StringByID(StringId.NameCannotBeEmpty),
+                                    Direction = AMPopTipDirection.None,
+                                }.Show(bodyView);
+                                return;
+                            }
+                            if (str == device.name)
+                            {
+                                return;
+                            }
+                            var waitPage = new Loading();
+                            bodyView.AddChidren(waitPage);
+                            waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                            new System.Threading.Thread(() =>
+                            {
+                                try
+                                {
+                                    var resultObj = new HttpServerRequest().UpdataDevcieName(device, str);
+                                    if (resultObj.Code == StateCode.SUCCESS)
+                                    {
+                                        device.name = str;
+                                        var deviceNew = FunctionList.List.GetIpCamImouList().Find((obj) => obj.deviceId == device.deviceId);
+                                        if (deviceNew != null)
+                                        {
+                                            deviceNew.name = str;
+                                        }
+                                        Application.RunOnMainThread(() =>
+                                        {
+                                            btnName.Text = str;
+                                        });
+                                    }
+                                    else
+                                    {
+                                        //澶辫触鎻愮ず
+                                        IMessageCommon.Current.ShowErrorInfoAlter(resultObj.Code);
+                                    }
+                                }
+                                catch (Exception ex)
+                                {
+                                    MainPage.Log($"update 3ty device name error : {ex.Message}");
+                                }
+                                finally
+                                {
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        if (waitPage != null)
+                                        {
+                                            waitPage.RemoveFromParent();
+                                            waitPage = null;
+                                        }
+                                    });
+                                }
+                            })
+                            { IsBackground = true }.Start();
+                        };
+                        new PublicAssmebly().LoadDialog_EditParater(StringId.ChangeName, device.name, callBack, StringId.NameCannotBeEmpty, 0, new List<string>());
+                    };
+                }
+
             }
 
         }
@@ -207,5 +459,79 @@
     {
         public List<Function> list = new List<Function>();
     }
-         
+
+
+
+#if __Android__
+    public class AddLcCam : Java.Lang.Object, Com.CallBack.IAddCamera
+    {
+
+        public Action backAction;
+
+        //public IntPtr Handle => throw new NotImplementedException();
+
+        //public int JniIdentityHashCode => throw new NotImplementedException();
+
+        //public JniObjectReference PeerReference => throw new NotImplementedException();
+
+        //public JniPeerMembers JniPeerMembers => throw new NotImplementedException();
+
+        //public JniManagedPeerStates JniManagedPeerState => throw new NotImplementedException();
+
+        public void Back()
+        {
+            backAction?.Invoke();
+        }
+
+        public void Dispose()
+        {
+        }
+
+        public void Disposed()
+        {
+        }
+
+        public void DisposeUnlessReferenced()
+        {
+        }
+
+        public void Finalized()
+        {
+        }
+
+        public void OnError(string p0)
+        {
+        }
+
+        public void SetJniIdentityHashCode(int value)
+        {
+        }
+
+        public void SetJniManagedPeerState(JniManagedPeerStates value)
+        {
+        }
+
+        public void SetPeerReference(JniObjectReference reference)
+        {
+        }
+
+        public void Success(string p0)
+        {
+        }
+
+        public void UnregisterFromRuntime()
+        {
+        }
+    }
+#else
+    public class AddLcCam
+    {
+        public Action backAction;
+
+        public void Back()
+        {
+            backAction?.Invoke();
+        }
+    }
+#endif
 }

--
Gitblit v1.8.0