using System;
using HDL_ON.UI.Music;
using System.Collections.Generic;
using Shared;
using HDL_ON.Stan;
using ZXing.QrCode.Internal;
using static HDL_ON.UI.UI2.FuntionControlView.Video.VideoMethod;
namespace HDL_ON.UI.UI2.FuntionControlView.Video
{
public class MainView : FrameLayout
{
///
/// 加载可视对讲UI
///
/// 门口机列表
/// 通话记录列表
/// 当前的可视对讲
public void Show(List listVideo, List listCall, VideoClouds video)
{
#region 布局界面
this.BackgroundColor = MusicColor.ViewColor;
var topView = new TopView();
this.AddChidren(topView.TopFLayoutView());
topView.topNameBtn.TextID = StringId.keshiduijiang;
topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
{
RemoveFromParent();
};
var pageView = new PageLayout()
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(667 - 64),
IsShowPoint = false,
};
this.AddChidren(pageView);
var view1 = new FrameLayout();
pageView.AddChidren(view1);
var view2 = new FrameLayout();
pageView.AddChidren(view2);
View1(view1, listVideo, video);
View2(view2, listCall, video);
Button btn11 = new Button
{
X = Application.GetRealWidth(170),
Y = Application.GetRealHeight(578),
Width = Application.GetRealWidth(14),
Height = Application.GetRealHeight(6),
BackgroundColor = MusicColor.SelectedColor,
Radius = (uint)Application.GetRealHeight(4),
};
view1.AddChidren(btn11);
Button btn12 = new Button
{
X = Application.GetRealWidth(192),
Y = Application.GetRealHeight(578),
Width = Application.GetRealWidth(14),
Height = Application.GetRealHeight(6),
BackgroundColor = 0x404484F4,
Radius = (uint)Application.GetRealHeight(4),
};
view1.AddChidren(btn12);
Button btn21 = new Button
{
X = Application.GetRealWidth(170),
Y = Application.GetRealHeight(578),
Width = Application.GetRealWidth(14),
Height = Application.GetRealHeight(6),
BackgroundColor = 0x404484F4,
Radius = (uint)Application.GetRealHeight(4),
};
view2.AddChidren(btn21);
Button btn22 = new Button
{
X = Application.GetRealWidth(192),
Y = Application.GetRealHeight(578),
Width = Application.GetRealWidth(14),
Height = Application.GetRealHeight(6),
BackgroundColor = MusicColor.SelectedColor,
Radius = (uint)Application.GetRealHeight(4),
};
view2.AddChidren(btn22);
pageView.PageChange = (sender, e) =>
{
if (pageView.PageIndex == 0)
{
topView.topNameBtn.TextID = StringId.keshiduijiang;
}
else
{
topView.topNameBtn.TextID = StringId.tonghuajilu;
}
};
#endregion
}
///
/// 第一个界面
///
/// 父控件
/// 门口机列表
/// 当前的可视对讲
void View1(FrameLayout view1, List list, VideoClouds videoClouds)
{
#region 布局界面
var bjFl = new FrameLayout
{
Y = Application.GetRealHeight(24),
X = Application.GetRealWidth(24),
Height = Application.GetRealHeight(526),
Width = Application.GetRealWidth(327),
BackgroundImagePath = "MusicIcon/playBj.png",
};
view1.AddChidren(bjFl);
///
/// 汉字
///
Button nameBtn = new Button
{
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(16),
Width = Application.GetRealWidth(100),
Height = Application.GetRealHeight(33),
TextColor = MusicColor.MusicTxet14Color,
TextSize = TextSize.Text24,
TextAlignment = TextAlignment.CenterLeft,
//Text = "可视对讲",
TextID = StringId.keshiduijiang,
};
bjFl.AddChidren(nameBtn);
///
/// 区域名称
///
Button regionBtn = new Button
{
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(53),
Width = Application.GetRealWidth(270),
Height = Application.GetRealHeight(17),
TextColor = MusicColor.MusicNoTxetColor,
TextSize = TextSize.Text12,
TextAlignment = TextAlignment.CenterLeft,
Text = "123456"
};
// bjFl.AddChidren(regionBtn);
///
///收藏图标
///
Button collectIconBtn = new Button
{
X = Application.GetRealWidth(273),
Y = Application.GetRealHeight(14),
Width = Application.GetRealWidth(40),
Height = Application.GetRealWidth(40),
UnSelectedImagePath = "MusicIcon/collect.png",
SelectedImagePath = "MusicIcon/collectSelected.png",
};
// bjFl.AddChidren(collectIconBtn);
///可视对讲图标
Button intercomBtnIcon = new Button
{
X = Application.GetRealWidth(84),
Y = Application.GetRealHeight(118),
Width = Application.GetRealWidth(160),
Height = Application.GetRealWidth(160),
UnSelectedImagePath = "VideoIcon/keshiduijiang.png",
};
bjFl.AddChidren(intercomBtnIcon);
var vv = new VerticalScrolViewLayout
{
Y = Application.GetRealHeight(306),
Height = Application.GetRealHeight(220),
Width = Application.GetRealWidth(327),
};
bjFl.AddChidren(vv);
if (list.Count > 0)
{
//门禁二维码固定有的,虚拟一个出来
list.Add(new VideoMethod.FlVideo { aliasName =Language.StringByID(StringId.menjinerweima), devType = "100" });
}
//数组个数
//int value = 15;
//先计算数据所需要的很高度;
int l = 0;
if (list.Count % 3 == 0)
{
l = list.Count / 3;
}
else
{
l = (list.Count / 3) + 1;
}
var fL = new FrameLayout
{
Height = Application.GetRealHeight((48 + 24) * l),
};
vv.AddChidren(fL);
int line = 0;
#endregion
for (int i = 1, j = 0; i <= list.Count; i++, j++)
{
var video = list[i - 1];
#region
var fLayout = new FrameLayout
{
Width = Application.GetRealWidth(50),
Height = Application.GetRealWidth(48),
X = Application.GetRealWidth(31 + (58 + 50) * j),
Y = Application.GetRealHeight(20 + (48 + 24) * line),
};
fL.AddChidren(fLayout);
var iconBtn = new Button
{
X = Application.GetRealWidth(11),
Width = Application.GetRealWidth(28),
Height = Application.GetRealWidth(28),
UnSelectedImagePath = "VideoIcon/weiqiangji.png",
};
fLayout.AddChidren(iconBtn);
var deviceNameBtn = new Button
{
Y = iconBtn.Bottom + Application.GetRealHeight(6),
Width = Application.GetRealWidth(50),
Height = Application.GetRealHeight(14),
TextSize = TextSize.Text10,
TextColor = CSS.CSS_Color.TextualColor,
TextAlignment = TextAlignment.Center,
Text = video.aliasName,
};
fLayout.AddChidren(deviceNameBtn);
var clickBtn = new Button { Tag = video };
fLayout.AddChidren(clickBtn);
if (i % 3 == 0)
{
//满一行重置j=0值;
j = -1;
line += 1;
}
getIconAndText(video, iconBtn);
#endregion
//门口机的点击事件
clickBtn.MouseUpEventHandler += (sender, e) =>
{
var flVideo = clickBtn.Tag as VideoMethod.FlVideo;
if (flVideo.devType == "100")
{
//门禁二维码固定有的
VideoSend.GetQRcode(this, videoClouds, (tag, paw) =>
{
if (tag)
{
//注意:密码有可能延时1分钟生效
View.ShowDialog showDialog = new View.ShowDialog();
showDialog.QRcode(paw);
}
});
}
else
{
if (string.IsNullOrEmpty(flVideo.uuid))
{
new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.peizhicanshuyouyichang));
}
ESVideoInfo eSVideoInfo = new ESVideoInfo
{
ESVideoUUID = getUuid(flVideo.uuid),
DeviceName = flVideo.aliasName,
roomno = videoClouds.flRoomId,
unitno = videoClouds.flBuildingId,
};
ESOnVideo.Current.ShowESVideoMonitor(eSVideoInfo);
}
};
}
}
///
/// 第二个界面
///
/// 父控件
/// 通话记录列表
/// 当前的可视对讲
void View2(FrameLayout view2, List listCall, VideoClouds video)
{
var bjFl = new FrameLayout
{
Y = Application.GetRealHeight(24),
X = Application.GetRealWidth(24),
Height = Application.GetRealHeight(526),
Width = Application.GetRealWidth(327),
BackgroundImagePath = "MusicIcon/playBj.png",
};
view2.AddChidren(bjFl);
///
/// 汉字
///
Button nameBtn = new Button
{
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(16),
Width = Application.GetRealWidth(100),
Height = Application.GetRealHeight(33),
TextColor = MusicColor.MusicTxet14Color,
TextSize = TextSize.Text24,
TextAlignment = TextAlignment.CenterLeft,
TextID = StringId.tonghuajilu,
};
bjFl.AddChidren(nameBtn);
///
/// 云端照片只保留30天
///
Button regionBtn = new Button
{
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(53),
Width = Application.GetRealWidth(270),
Height = Application.GetRealHeight(17),
TextColor = MusicColor.SelectedColor,
TextSize = TextSize.Text12,
TextAlignment = TextAlignment.CenterLeft,
TextID = StringId.baolu30,
};
bjFl.AddChidren(regionBtn);
var vv = new VerticalRefreshLayout
{
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(58),
Height = Application.GetRealHeight(458),
Width = Application.GetRealWidth(295),
};
bjFl.AddChidren(vv);
vv.BeginHeaderRefreshingAction += () =>
{
VideoMethod videoMethod = new VideoMethod();
var list = videoMethod.GetCall(video.id);
RefreshView(vv, list);
//关闭刷新View;
vv.EndHeaderRefreshing();
};
RefreshView(vv, listCall);
}
///
/// 通话记录刷新界面
///
/// 上下滑动控件
/// 通话记录列表
public void RefreshView(VerticalRefreshLayout vv, List listCall)
{
vv.RemoveAll();
for (int i = 0; i < listCall.Count; i++)
{
var year = listCall[i];
//年文本父控件
View.FrameLayout50 frameLayout50 = new View.FrameLayout50();
vv.AddChidren(frameLayout50.FLayoutView());
frameLayout50.btnText.Text = year.year + Language.StringByID(StringId.nian);//年
for (int j = 0; j < year.callList.Count; j++)
{
var call = year.callList[j];
//门口机状态父控件
View.FrameLayout60 frameLayout60 = new View.FrameLayout60();
vv.AddChidren(frameLayout60.FLayoutView());
///呼叫时间
frameLayout60.btnTime.Text = getTime(call.callTime);
///呼叫状态(0:未接;1:已接;2:拒接);是否开锁;
frameLayout60.btnStateText.Text = getStateText(call.callStatus) + "," + getUnlockText(call.isUnlock);
}
}
}
///
/// 显示图标
///
///
/// 图标
private void getIconAndText(FlVideo flVideo, Button iconBtn)
{
//(1室内机,2室外机,3围墙机,4管理机,5二次确认机)
string iconstr = "";
switch (flVideo.devType)
{
case "1":
{
iconstr = "VideoIcon/danyuanji.png";
}
break;
case "2":
{
iconstr = "VideoIcon/danyuanji.png";
}
break;
case "3":
{
iconstr = "VideoIcon/weiqiangji.png";
}
break;
case "4":
{
iconstr = "VideoIcon/weiqiangji.png";
}
break;
case "5":
{
iconstr = "VideoIcon/weiqiangji.png";
}
break;
case "100":
{
iconstr = "VideoIcon/menjin.png";
}
break;
default:
{
iconstr = "VideoIcon/weiqiangji.png";
}
break;
}
iconBtn.UnSelectedImagePath = iconstr;
}
///
/// 获取显示时间文本
///
/// utcTime
///
private string getTime(string str)
{
var utcTime = Convert.ToDateTime(str);
var dateTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, TimeZoneInfo.Local);
return dateTime.ToString("HH") + ":" + dateTime.ToString("mm");
}
///
/// 获取呼叫状态文本
///
/// 状态值0:未接;1:已接;2:拒接
///
private string getStateText(string str)
{
string s = "";
switch (str)
{
case "0":
{
s = Language.StringByID(StringId.weijieting);
}
break;
case "1":
{
Language.StringByID(StringId.yijieting);
}
break;
case "2":
{
Language.StringByID(StringId.yijujue);
}
break;
}
return s;
}
///
/// 获取开锁状态文本
///
///
///
private string getUnlockText(bool if_bool)
{
string s = "";
if (if_bool)
{
s = Language.StringByID(StringId.yikaisuo);
}
else
{
s = Language.StringByID(StringId.weikaisuo);
}
return s;
}
///
/// 获取uuid
///
///
///
private string getUuid(string uuid)
{
if (uuid.Contains(","))
{
var uuid1 = uuid.Split(',');
return uuid1[0];
}
else
{
return uuid;
}
}
}
}