using 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, TextID =StringId.SmartDoorstepMachineAlarmPrompt, }; bodyView.AddChidren(btnTipMsg); contentView = new VerticalScrolViewLayout() { Y = Application.GetRealHeight(64 + 62), Height = Application.GetRealHeight(550), }; bodyView.AddChidren(contentView); LoadCloudData(20, 1); } /// /// 读取云端数据 /// 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(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(); } /// /// 加载场景图库 /// 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 list = new List(); } /// /// 徘徊报警信息 /// public class AlarmRecordInfo { public string alarmImg = string.Empty; public long alarmTime; public string alarmType = string.Empty; public string alarmTypeDesc = string.Empty; } }