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;
}
}