From 7cfcdb7a90f59bf9001c948e166fd9af09752fe1 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 24 五月 2022 17:15:18 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/release0123' into wjc

---
 HDL_ON/UI/UI2/FuntionControlView/Video/WanderingAlarmPage.cs |  231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 231 insertions(+), 0 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/WanderingAlarmPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/WanderingAlarmPage.cs
new file mode 100644
index 0000000..d6b5a5e
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/Video/WanderingAlarmPage.cs
@@ -0,0 +1,231 @@
+锘縰sing System;
+using System.Collections.Generic;
+using HDL_ON.DAL.Server;
+using HDL_ON.UI.CSS;
+using Shared;
+namespace HDL_ON.UI.UI2.FuntionControlView.Video
+{
+    public class WanderingAlarmPage : FrameLayout
+    {
+        FrameLayout bodyView;
+        string deviceId;
+        public WanderingAlarmPage(string deviceId)
+        {
+            bodyView = this;
+            this.deviceId = deviceId;
+        }
+
+        VerticalScrolViewLayout contentView;
+
+        public void LoadPage()
+        {
+            bodyView.BackgroundColor = CSS_Color.MainBackgroundColor;
+            new TopViewDiv(bodyView, Language.StringByID(StringId.WanderingAlarm)).LoadTopView();
+
+            var btnTipMsg = new Button()
+            {
+                Y = Application.GetRealHeight(64),
+                X = Application.GetRealWidth(20),
+                Height = Application.GetRealHeight(58),
+                Width = Application.GetRealWidth(318),
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = CSS_Color.PromptingColor1,
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                Text = "*鍙瀵硅鍙互鑷姩璇嗗埆闂ㄥ彛鍙枒浜哄憳锛屽苟鍙戣捣寰樺緤鎶ヨ璁板綍"
+            };
+            if(Language.CurrentLanguage != "Chinese")
+            {
+                btnTipMsg.Text = "*Visual intercom can automatically identify suspicious persons at the door and initiate wandering alarm records";
+            }
+            bodyView.AddChidren(btnTipMsg);
+
+            contentView = new VerticalScrolViewLayout()
+            {
+                Y = Application.GetRealHeight(64 + 62),
+                Height = Application.GetRealHeight(550),
+            };
+            bodyView.AddChidren(contentView);
+
+            LoadCloudData(20, 1);
+        }
+
+        /// <summary>
+        /// 璇诲彇浜戠鏁版嵁
+        /// </summary>
+        void LoadCloudData(int pageCount,int pageNo)
+        {
+            Loading loading = new Loading();
+            bodyView.AddChidren(loading);
+            loading.Start("");
+            new System.Threading.Thread(() => {
+                try
+                {
+                    HttpServerRequest http = new HttpServerRequest();
+                    var pack = http.GetAlarmRecords(deviceId, pageCount,pageNo);
+                    if (pack.Code == StateCode.SUCCESS)
+                    {
+                        var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<AlarmRecordInfoPack>(pack.Data.ToString());
+                        Application.RunOnMainThread(() =>
+                        {
+                            LoadSceneGallery(obj);
+                        });
+                    }
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log($"璇诲彇寰樺緤鎶ヨ鏁版嵁寮傚父锛歿ex.Message}");
+                }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        if (loading != null)
+                        {
+                            loading.Hide();
+                            loading.RemoveFromParent();
+                        }
+                    });
+                }
+            })
+            { IsBackground = true }.Start();
+
+        }
+
+        /// <summary>
+        /// 鍔犺浇鍦烘櫙鍥惧簱
+        /// </summary>
+        void LoadSceneGallery(AlarmRecordInfoPack pack)
+        {
+            FrameLayout sceneImageRow = new FrameLayout()
+            {
+                Height = Application.GetRealWidth(128),
+            };
+            new System.Threading.Thread(() =>
+            {
+                for (int i = 0; i < pack.list.Count; i++)
+                {
+                    var item = pack.list[i];
+
+                    var imageBytes = ImageUtlis.Current.DownImageByImageUrl(item.alarmImg);
+                    Application.RunOnMainThread(() =>
+                    {
+                        var sceneImageView = new ImageView()
+                        {
+                            Width = Application.GetRealWidth(172),
+                            Height = Application.GetRealHeight(90),
+                            Radius = (uint)Application.GetRealWidth(12),
+                            ImageBytes = imageBytes
+                        };
+                        var btnTime = new Button()
+                        {
+                            Width = Application.GetRealHeight(160),
+                            Height = Application.GetRealHeight(41),
+                            Y = Application.GetRealHeight(90),
+                            Text = Utlis.UnixToDateTimeMS(item.alarmTime).ToString(),
+                            TextColor = CSS_Color.FirstLevelTitleColor,
+                            TextAlignment = TextAlignment.Center
+                        };
+                        if (i % 2 == 0)
+                        {
+                            sceneImageRow = new FrameLayout()
+                            {
+                                Height = Application.GetRealHeight(90 + 53),
+                            };
+                            contentView.AddChidren(sceneImageRow);
+                            sceneImageView.X = Application.GetRealWidth(10);
+                            sceneImageRow.AddChidren(sceneImageView);
+                            btnTime.X = Application.GetRealWidth(10);
+                            sceneImageRow.AddChidren(btnTime);
+
+                        }
+                        else
+                        {
+                            sceneImageView.X = Application.GetRealWidth(194);
+                            sceneImageRow.AddChidren(sceneImageView);
+
+                            btnTime.X = Application.GetRealWidth(194);
+                            sceneImageRow.AddChidren(btnTime);
+                        }
+
+
+                        sceneImageView.MouseUpEventHandler = (sender, e) =>
+                        {
+                            Dialog dialog = new Dialog();
+
+                            FrameLayout dialogContentView = new FrameLayout();
+                            dialog.AddChidren(dialogContentView);
+                            dialogContentView.MouseUpEventHandler = (sender2, e2) =>
+                            {
+                                dialog.Close();
+                            };
+                            ImageView btnImage = new ImageView()
+                            {
+                                Gravity = Gravity.Center,
+                                Height = Application.GetRealHeight(211),
+                                ImageBytes = sceneImageView.ImageBytes,
+                            };
+                            dialogContentView.AddChidren(btnImage);
+
+
+                            dialog.Show();
+                        };
+
+                    });
+                    System.Threading.Thread.Sleep(20);
+
+                }
+                Application.RunOnMainThread(() =>
+                {
+                    if (pack.totalPage > pack.pageNo)
+                    {
+                        var btnLoadMore = new Button()
+                        {
+                            TextAlignment = TextAlignment.Center,
+                            TextID = StringId.GetMore,
+                            Height = Application.GetRealHeight(60),
+                            TextSize = CSS_FontSize.SubheadingFontSize,
+                            TextColor = CSS_Color.FirstLevelTitleColor,
+                        };
+                        contentView.AddChidren(btnLoadMore);
+                        btnLoadMore.MouseUpEventHandler = (sender, e) =>
+                        {
+                            LoadCloudData(20, pack.pageNo + 1);
+                            btnLoadMore.RemoveFromParent();
+                        };
+                    }
+                });
+
+            })
+            { IsBackground = true }.Start();
+ }
+
+
+    }
+
+    public class AlarmRecordInfoPack
+    {
+        public int totalCount = 0;
+
+        public int totalPage = 0;
+
+        public int pageNo = 0;
+
+        public int pageSize = 0;
+
+        public List<AlarmRecordInfo> list = new List<AlarmRecordInfo>();
+    }
+
+    /// <summary>
+    /// 寰樺緤鎶ヨ淇℃伅
+    /// </summary>
+    public class AlarmRecordInfo
+    {
+        public string alarmImg = string.Empty;
+
+        public long alarmTime;
+
+        public string alarmType = string.Empty;
+
+        public string alarmTypeDesc = string.Empty;
+    }
+}

--
Gitblit v1.8.0