From 3f6685c77beeb12baf840733fb890860f4c26e7c Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期四, 25 七月 2024 17:25:59 +0800
Subject: [PATCH] 2024年07月25日17:24:45

---
 HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs |  311 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 301 insertions(+), 10 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
index f6824e8..2bcf880 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/DeviceListPage.cs
@@ -3,10 +3,16 @@
 using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
+using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
+#if __Android__
+using Java.Interop;
+using Android.Content;
+using Hdl.Onpro;
+#endif
 using Shared;
 namespace HDL_ON.UI
 {
-    public class DeviceListPage  : FrameLayout
+    public class DeviceListPage : FrameLayout
     {
         FrameLayout bodyView;
         VerticalRefreshLayout contentView;
@@ -28,13 +34,15 @@
                 page.LoadPage(contentView);
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
             };
-            new TopViewDiv(bodyView, Language.StringByID(StringId.Devices)).LoadTopView_AddIcon("3ty", action);
+            var topView = new TopViewDiv(bodyView, Language.StringByID(StringId.Devices));
+            topView.maginY = 10;
+            topView.LoadTopView_AddIcon("3ty", action);
             bodyView.BackgroundColor = CSS_Color.BackgroundColor;
 
             contentView = new VerticalRefreshLayout()
             {
-                Y = Application.GetRealHeight(64),
-                Height = Application.GetRealHeight(667 - 64),
+                Y = Application.GetRealHeight(64+10),
+                Height = Application.GetRealHeight(667 - 64-10),
                 VerticalScrollBarEnabled = false,
             };
             bodyView.AddChidren(contentView);
@@ -54,7 +62,8 @@
         {
             var waitPage = new Loading();
             waitPage.Start();
-            new System.Threading.Thread(() => {
+            new System.Threading.Thread(() =>
+            {
                 try
                 {
                     var pm = new HttpServerRequest();
@@ -72,7 +81,7 @@
                             }
                             else
                             {
-                                var tipView = new EmptyTipView(Language.StringByID(StringId.NotAddedAnyDevices),160)
+                                var tipView = new EmptyTipView(Language.StringByID(StringId.NotAddedAnyDevices), 160)
                                 {
                                     Gravity = Gravity.CenterHorizontal,
                                 };
@@ -91,7 +100,8 @@
                 }
                 finally
                 {
-                    Application.RunOnMainThread(() => {
+                    Application.RunOnMainThread(() =>
+                    {
                         if (waitPage != null)
                         {
                             waitPage.RemoveFromParent();
@@ -108,10 +118,15 @@
             bool isFrist = true;
             foreach (var device in deviceList)
             {
-                FrameLayout row = new FrameLayout()
+                //if (!this.CheckSupportDevice(device))
+                //{
+                //    continue;
+                //}
+                var row = new RowLayout()
                 {
                     Height = Application.GetRealHeight(50),
                     BackgroundColor = CSS_Color.MainBackgroundColor,
+                    LineColor = 0x00000000,
                 };
                 contentView.AddChidren(row);
 
@@ -162,7 +177,8 @@
                 };
                 row.AddChidren(btnName);
 
-                btnName.MouseUpEventHandler = (sender, e) => {
+                btnName.MouseUpEventHandler = (sender, e) =>
+                {
                     switch (device.spk)
                     {
                         case SPK.IrModule:
@@ -171,6 +187,7 @@
                                 contentView.BeginHeaderRefreshing();
                             });
                             break;
+                        case SPK.SensorMmvPose:
                         case SPK.SenesorMegahealth:
                         case SPK.SenesorMegahealth2:
                             var smPage = new SenesorMegahealthManagerPage();
@@ -181,6 +198,7 @@
                             };
                             break;
                         case SPK.SensorEnvironment:
+                        case SPK.SensorEnvironmentHailin:
                         case SPK.SensorEnvironment2:
                         case SPK.SensorEnvironment3:
                             var smPage1 = new SensorEnvironmentManagerPage();
@@ -190,9 +208,176 @@
                                 contentView.BeginHeaderRefreshing();
                             };
                             break;
+                        case SPK.VideoDoorLock:
+                            {
+                                CommonMethod.Current.MainThread(() =>
+                                {
+                                    //钀ょ煶瑙嗛闂ㄩ攣
+                                    var form = new VideoDoorLockPage(device, btnName, new Button(), CommonMethod.Comerom.sanfan, () =>
+                                    {
+                                        row.RemoveFromParent();
+                                    });
+                                    MainPage.BasePageView.AddChidren(form);
+                                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                                    form.Show();
+                                });
+                            }
+                            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>());
+                    };
+                }
+
             }
+
+        }
+
+        /// <summary>
+        /// 妫�鏌ユ槸鍚︽敮鎸�
+        /// </summary>
+        /// <param name="function"></param>
+        /// <returns></returns>
+        bool CheckSupportDevice(Function function)
+        {
+
+            if (function == null) return false;
+            if (function.spk == SPK.VideoDoorLock)
+            {
+                return false;
+            }
+            return true;
 
         }
 
@@ -206,5 +391,111 @@
     {
         public List<Function> list = new List<Function>();
     }
-         
+
+
+
+#if __Android__
+
+    //[Android.Content.BroadcastReceiver(Enabled = true, Exported = false)]
+    //public class ImouReceiver : Android.Content.BroadcastReceiver
+    //{
+    //    public override void OnReceive(Context context, Intent intent)
+    //    {
+    //        if (intent != null)
+    //        {
+    //            string action = intent.Action;
+    //            if (action == "hdlUserDeviceBind")
+    //            {
+    //                string value = intent.GetStringExtra("data");
+    //            }
+    //        }
+    //    }
+    //}
+
+    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()
+        {
+        }
+    }
+
+    public class BindDeviceFeedback : Java.Lang.Object, Hdl.Onpro.IRegisterDeviceFeedback
+    {
+        public Action<string,string> tipAction;
+
+        public void Feedback(string method, string msg)
+        {
+            tipAction?.Invoke(method, msg);
+        }
+    }
+
+#else
+    public class AddLcCam
+    {
+        public Action backAction;
+
+        public void Back()
+        {
+            backAction?.Invoke();
+        }
+    }
+#endif
+
+
+
+
 }

--
Gitblit v1.8.0