陈嘉乐
2021-03-30 003abaf86b766eb40ef62300ab0c707774c36ba9
HDL_ON/UI/UI2/FuntionControlView/Video/MainView.cs
@@ -2,18 +2,20 @@
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
    {
        public void Show(List<ESVideoInfo> listVideo, List<CallView> listCall)
        public void Show(List<VideoMethod.FlVideo> listVideo, List<CallView> listCall, VideoClouds video)
        {
            this.BackgroundColor = MusicColor.ViewColor;
            var topView = new TopView();
            this.AddChidren(topView.TopFLayoutView());
            topView.topNameBtn.Text = "可视对讲";
            topView.topNameBtn.TextID =StringId.keshiduijiang;
            topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
            {
                RemoveFromParent();
@@ -30,8 +32,8 @@
            pageView.AddChidren(view1);
            var view2 = new FrameLayout();
            pageView.AddChidren(view2);
            View1(view1, listVideo);
            View2(view2, listCall);
            View1(view1, listVideo, video);
            View2(view2, listCall, video);
            Button btn11 = new Button
            {
                X = Application.GetRealWidth(170),
@@ -80,11 +82,11 @@
                if (pageView.PageIndex == 0)
                {
                    topView.topNameBtn.Text = "可视对讲";
                    topView.topNameBtn.TextID =StringId.keshiduijiang;
                }
                else
                {
                    topView.topNameBtn.Text = "通话记录";
                    topView.topNameBtn.TextID = StringId.tonghuajilu;
                }
            };
@@ -93,9 +95,9 @@
        /// 第一个界面
        /// </summary>
        /// <param name="view1">父控件</param>
        void View1(FrameLayout view1, List<ESVideoInfo> list)
        void View1(FrameLayout view1, List<VideoMethod.FlVideo> list, VideoClouds videoClouds)
        {
            var bjFl = new FrameLayout
            {
                Y = Application.GetRealHeight(24),
@@ -117,8 +119,9 @@
                TextColor = MusicColor.MusicTxet14Color,
                TextSize = TextSize.Text24,
                TextAlignment = TextAlignment.CenterLeft,
                Text = "可视对讲",
            };
                //Text = "可视对讲",
                TextID= StringId.keshiduijiang,
        };
            bjFl.AddChidren(nameBtn);
            /// <summary>
            ///  区域名称
@@ -167,6 +170,11 @@
                Width = Application.GetRealWidth(327),
            };
            bjFl.AddChidren(vv);
            if (list.Count > 0)
            {
                //门禁二维码固定有的,虚拟一个出来
                list.Add(new VideoMethod.FlVideo { aliasName = "门禁二维码", devType = "10" });
            }
            //数组个数
            //int value = 15;
            //先计算数据所需要的很高度;
@@ -187,10 +195,10 @@
            };
            vv.AddChidren(fL);
            int line = 0;
            for (int i = 1, j = 0; i <= list.Count; i++, j++)
            {
                var video = list[i - 1];
                var fLayout = new FrameLayout
                {
                    Width = Application.GetRealWidth(50),
@@ -218,7 +226,7 @@
                    TextSize = TextSize.Text10,
                    TextColor = CSS.CSS_Color.TextualColor,
                    TextAlignment = TextAlignment.Center,
                    Text = video.DeviceName,
                    Text = video.aliasName,
                };
                fLayout.AddChidren(iconNameBtn);
@@ -234,9 +242,28 @@
                // GetIconAndText(i, deviceIconBtn, iconNameBtn);
                clickBtn.MouseUpEventHandler += (sender, e) =>
                {
                    var eSVideoInfo = clickBtn.Tag as ESVideoInfo;
                    var flVideo = clickBtn.Tag as VideoMethod.FlVideo;
                    if (string.IsNullOrEmpty(flVideo.uuid))
                    {
                        new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.peizhicanshuyouyichang));
                    }
                    ESVideoInfo eSVideoInfo = new ESVideoInfo
                    {
                        ESVideoUUID = flVideo.uuid,
                        DeviceName = flVideo.aliasName,
                        roomno = videoClouds.flRoomId,
                        unitno= videoClouds.flBuildingId,
                    };
                    ESOnVideo.Current.ShowESVideoMonitor(eSVideoInfo);
                    //VideoSend.GetQRcode(this, videoClouds, (tag,paw) =>
                    //{
                    //    if (tag)
                    //    {
                    //        View.ShowDialog showDialog = new View.ShowDialog();
                    //        showDialog.QRcode(paw);
                    //    }
                    //});
                };
            }
@@ -246,7 +273,7 @@
        /// 第二个界面
        /// </summary>
        /// <param name="view2">父控件</param>
        void View2(FrameLayout view2, List<CallView> listCall)
        void View2(FrameLayout view2, List<CallView> listCall, VideoClouds video)
        {
            var bjFl = new FrameLayout
@@ -270,7 +297,7 @@
                TextColor = MusicColor.MusicTxet14Color,
                TextSize = TextSize.Text24,
                TextAlignment = TextAlignment.CenterLeft,
                Text = "通话记录",
                TextID=StringId.tonghuajilu,
            };
            bjFl.AddChidren(nameBtn);
            /// <summary>
@@ -285,11 +312,11 @@
                TextColor = MusicColor.SelectedColor,
                TextSize = TextSize.Text12,
                TextAlignment = TextAlignment.CenterLeft,
                Text = "*云端照片只保留30天"
                TextID=StringId.baolu30,
            };
            bjFl.AddChidren(regionBtn);
            var vv = new VerticalScrolViewLayout
            var vv = new VerticalRefreshLayout
            {
                X = Application.GetRealWidth(16),
                Y = Application.GetRealHeight(58),
@@ -297,28 +324,108 @@
                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);
        }
        /// <summary>
        /// 刷新界面
        /// </summary>
        /// <param name="vv"></param>
        /// <param name="listCall"></param>
        public void RefreshView(VerticalRefreshLayout vv, List<CallView> 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);
                }
            }
        }
        /// <summary>
        /// 获取显示时间文本
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public string getTime(string str)
        {
            var dd = Convert.ToDateTime(str);
            var time = dd.ToString("HH") + ":" + dd.ToString("mm");
            return time;
            var utcTime = Convert.ToDateTime(str);
            var dateTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, TimeZoneInfo.Local);
            return dateTime.ToString("HH") + ":" + dateTime.ToString("mm");
        }
        /// <summary>
        /// 获取呼叫状态文本
        /// </summary>
        /// <param name="str">状态值0:未接;1:已接;2:拒接</param>
        /// <returns></returns>
        public 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;
        }
        /// <summary>
        /// 获取开锁状态文本
        /// </summary>
        /// <param name="if_bool"></param>
        /// <returns></returns>
        public string getUnlockText(bool if_bool)
        {
            string s = "";
            if (if_bool)
            {
                s = Language.StringByID(StringId.yikaisuo);
            }
            else
            {
                s = Language.StringByID(StringId.weikaisuo);
            }
            return s;
        }
    }
}