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