wei
2021-03-31 19e762179bdc9efc23704bc471cf974ed282b43d
合并可视对讲代码
11个文件已修改
14663 ■■■■ 已修改文件
.vs/HDL_APP_Project/xs/UserPrefs.xml 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/Resource.designer.cs 13920 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/ApiUtlis.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpServerRequest.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/FunctionList.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI1-Login/LoginPage.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Video/MainView.cs 486 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs 128 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,46 +1,42 @@
<Properties StartupConfiguration="{D998E133-F0DD-4760-BE3C-461632F54DA4}|Default">
  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneSimulatorTarget.26569F89-0BA9-4C06-81F2-764A3AF2E1B7" />
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI1-Login/LoginPage.cs">
  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008020-000404163432002E" />
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/Common/ApiUtlis.cs">
    <Files>
      <File FileName="HDL_ON/Common/R.cs" Line="1310" Column="45" />
      <File FileName="HDL_ON/UI/UI1-Login/LoginPage.cs" Line="386" Column="60" />
      <File FileName="HDL_ON/Entity/FunctionList.cs" />
      <File FileName="HDL_ON/UI/UI1-Login/LoginPage.cs" Line="214" Column="44" />
      <File FileName="HDL_ON/DAL/DriverLayer/Control.cs" />
      <File FileName="../../Library/Containers/com.tencent.WeWorkMac/Data/Library/Application Support/WXWork/Data/1688852687634638/Cache/File/2021-03/DeviceTemperatureHistoryForm(1).cs" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage_AddIrButton.cs" Line="1" Column="1" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs" Line="488" Column="50" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Energy/EnergyMainPage.cs" Line="20" Column="16" />
      <File FileName="HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs" Line="498" Column="45" />
      <File FileName="HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs" Line="508" Column="1" />
      <File FileName="HDL_ON/DAL/Server/IMessageCommon.cs" Line="213" Column="43" />
      <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" Line="21" Column="89" />
      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/AddFunction/AddDevciePage.cs" Line="44" Column="1" />
      <File FileName="HDL_ON/DAL/Server/HttpServerRequest.cs" Line="1824" Column="90" />
      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs" Line="262" Column="14" />
      <File FileName="HDL_ON/UI/UI2/2-Classification/FunctionPage.cs" Line="1" Column="1" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Video/MainView.cs" Line="366" Column="55" />
      <File FileName="HDL_ON/Common/ApiUtlis.cs" Line="284" Column="1" />
      <File FileName="HDL_ON/DAL/Server/HttpServerRequest.cs" Line="2244" Column="95" />
      <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" Line="101" Column="1" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs" Line="209" Column="22" />
    </Files>
    <Pads>
      <Pad Id="ProjectPad">
        <State name="__root__">
          <Node name="HDL_APP_Project" expanded="True">
            <Node name="HDL_ON" expanded="True">
              <Node name="Common" expanded="True" />
              <Node name="Common" expanded="True">
                <Node name="ApiUtlis.cs" selected="True" />
              </Node>
              <Node name="DAL" expanded="True">
                <Node name="Server" expanded="True" />
              </Node>
              <Node name="Entity" expanded="True" />
              <Node name="UI" expanded="True">
                <Node name="UI0-Stan" expanded="True">
                  <Node name="Form" expanded="True">
                    <Node name="Base" expanded="True" />
                  </Node>
                </Node>
                <Node name="UI1-Login" expanded="True">
                  <Node name="LoginPage.cs" selected="True" />
                </Node>
                <Node name="UI1-Login" expanded="True" />
                <Node name="UI2" expanded="True">
                  <Node name="2-Classification" expanded="True" />
                  <Node name="4-PersonalCenter" expanded="True">
                    <Node name="AddFunction" expanded="True" />
                  </Node>
                  <Node name="FuntionControlView" expanded="True">
                    <Node name="Electrical" expanded="True" />
                    <Node name="Video" expanded="True" />
                  </Node>
                </Node>
              </Node>
@@ -51,6 +47,11 @@
          </Node>
        </State>
      </Pad>
      <Pad Id="MonoDevelop.Debugger.WatchPad">
        <State>
          <Value>apiPath</Value>
        </State>
      </Pad>
    </Pads>
  </MonoDevelop.Ide.Workbench>
  <MonoDevelop.Ide.DebuggingService.PinnedWatches />
@@ -59,10 +60,12 @@
    <String>Shared.Droid.TouchID/Shared.Droid.TouchID.csproj</String>
    <String>Shared.IOS/Shared.IOS.csproj</String>
  </DisabledProjects>
  <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" />
  <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhone" />
  <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.SelectDevice" />
  <MonoDevelop.Ide.DebuggingService.Breakpoints>
    <BreakpointStore />
    <BreakpointStore>
      <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/Common/ApiUtlis.cs" relfile="HDL_ON/Common/ApiUtlis.cs" line="284" column="1" />
    </BreakpointStore>
  </MonoDevelop.Ide.DebuggingService.Breakpoints>
  <MultiItemStartupConfigurations />
</Properties>
HDL-ON_Android/Resources/Resource.designer.cs
Diff too large
HDL_ON/Common/ApiUtlis.cs
@@ -277,6 +277,13 @@
                    //===================读取逻辑列表==========================
                    UI.UI2.Intelligence.Automation.MainView.GetLogicList();
                    //===================读取可视对讲数据==========================
                    var flVideoInfo = HttpRequest.CheckFlVideo();
                    if(flVideoInfo.Code == StateCode.SUCCESS)
                    {
                        FunctionList.List.videoIntercom = Newtonsoft.Json.JsonConvert.DeserializeObject<UI.UI2.FuntionControlView.Video.VideoMethod.VideoClouds>(flVideoInfo.Data.ToString());
                    }
                }
                catch (Exception ex)
                {
HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -492,12 +492,7 @@
                            Address = mHome.homeAddress,
                            isAllowCreateScene = mHome.isAllowCreateScene,
                        };
#if DEBUG
                        UserInfo.Current.regionList.Add(home);
                        continue;
#endif
                        if (home.isBindGateway)
                        //if (home.isBindGateway)
                        {
                            UserInfo.Current.regionList.Add(home);
                        }
@@ -2230,11 +2225,25 @@
        public ResponsePackNew EZGetChildToken()
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            //d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_EZ_GetChildToken, requestJson);
        }
        #endregion
        #region 可视对讲
        /// <summary>
        /// 检查住宅是否绑定丰林,并获取门口机列表
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew CheckFlVideo()
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            var pack = HttpUtil.RequestHttpsPostFroHome( NewAPI.API_POST_FL_Check, requestJson);
            return pack;
        }
        #endregion
    }
}
HDL_ON/Entity/FunctionList.cs
@@ -128,6 +128,14 @@
            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
        }
        /// <summary>
        /// 可视对讲列表
        /// </summary>
        public UI.UI2.FuntionControlView.Video.VideoMethod.VideoClouds videoIntercom;
        /// <summary>
        /// 场景列表
        /// </summary>
        public List<Scene> scenes = new List<Scene>();
        /// <summary>
HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -204,9 +204,10 @@
                }
                else
                {
                    etAccount.Text = "BB01010101@evoyo.com";//可视对讲
                    //etAccount.Text = "13168123446";
                    //etAccount.Text = "13602944661";//kx
                    etAccount.Text = "18316120654";//凉霸"18666455392";//13375012446//13602944661//tzy 18778381374
                    //etAccount.Text = "18316120654";//凉霸"18666455392";//13375012446//13602944661//tzy 18778381374
                    //15971583093 gs//tzy 274116637@qq.com//Sumant.Bhatia@havells.com 国外服务器测试
                }
                b = !b;
HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs
@@ -501,6 +501,10 @@
                        functionCount = FunctionList.List.GetArmSensorList().Count;
                        break;
                    case ShowFunction.VideoIntercom:
                        if (FunctionList.List.videoIntercom != null)
                        {
                            functionCount = 1;
                        }
                        break;
                }
@@ -801,12 +805,20 @@
                        break;
                    case ShowFunction.VideoIntercom:
                        btnName.TextID = StringId.VideoIntercom;
                        btnFunctionViewBg.MouseUpEventHandler = (sender, e) =>
                        {
                            var mainView = new HDL_ON.UI.UI2.FuntionControlView.Video.MainView();
                            MainPage.BasePageView.AddChidren(mainView);
                            mainView.Show();
                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                        };
                        break;
                }
                //界面跳转--音乐跳转自己的界面--环境跳转自己的界面
                if (item != ShowFunction.Music && item != ShowFunction.Environmental && item != ShowFunction.SecurityMonitoring
                    && ShowFunction.EnergyMonitoring!= item)
                    && ShowFunction.EnergyMonitoring!= item && ShowFunction.VideoIntercom != item)
                {
                    btnFunctionViewBg.MouseUpEventHandler = (sender, e) =>
                    {
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -260,12 +260,6 @@
        {
            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
            {
                HDL_ON.UI.UI2.FuntionControlView.Video.VideoMethod videoMethod = new UI2.FuntionControlView.Video.VideoMethod();
                videoMethod.getVideo((device) =>
                {
                    videoMethod.MianView(this, device);
                }, this, true);
                return;
                var page = new BrandListPage();// AddThirdPartyBrandListpage(); // BrandListPage();
                MainPage.BasePageView.AddChidren(page);
HDL_ON/UI/UI2/FuntionControlView/Video/MainView.cs
@@ -5,6 +5,7 @@
using HDL_ON.Stan;
using ZXing.QrCode.Internal;
using static HDL_ON.UI.UI2.FuntionControlView.Video.VideoMethod;
using HDL_ON.Entity;
namespace HDL_ON.UI.UI2.FuntionControlView.Video
{
@@ -16,8 +17,10 @@
        /// <param name="listVideo">门口机列表</param>
        /// <param name="listCall">通话记录列表</param>
        /// <param name="video">当前的可视对讲</param>
        public void Show(List<VideoMethod.FlVideo> listVideo, List<CallView> listCall, VideoClouds video)
        //public void Show(List<VideoMethod.FlVideo> listVideo, List<CallView> listCall, VideoClouds video)
        public void Show()
        {
            #region 布局界面
            this.BackgroundColor = MusicColor.ViewColor;
            var topView = new TopView();
@@ -39,8 +42,8 @@
            pageView.AddChidren(view1);
            var view2 = new FrameLayout();
            pageView.AddChidren(view2);
            View1(view1, listVideo, video);
            View2(view2, listCall, video);
            View1(view1);
            View2(view2);
            Button btn11 = new Button
            {
                X = Application.GetRealWidth(170),
@@ -105,191 +108,196 @@
        /// <param name="view1">父控件</param>
        /// <param name="list">门口机列表</param>
        /// <param name="videoClouds">当前的可视对讲</param>
        void View1(FrameLayout view1, List<VideoMethod.FlVideo> list, VideoClouds videoClouds)
        void View1(FrameLayout view1)
        {
            #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);
            /// <summary>
            ///  汉字
            /// </summary>
            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);
            /// <summary>
            ///  区域名称
            /// </summary>
            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);
            /// <summary>
            ///收藏图标
            /// </summary>
            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
            new System.Threading.Thread(() =>
            {
                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
                var list = VideoSend.GetVideoInfoList(FunctionList.List.videoIntercom);
                Application.RunOnMainThread(() =>
                {
                    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")
                    #region 布局界面
                    var bjFl = new FrameLayout
                    {
                        //门禁二维码固定有的
                        VideoSend.GetQRcode(this, videoClouds, (tag, paw) =>
                        {
                            if (tag)
                            {
                                //注意:密码有可能延时1分钟生效
                                View.ShowDialog showDialog = new View.ShowDialog();
                                showDialog.QRcode(paw);
                            }
                        });
                        Y = Application.GetRealHeight(24),
                        X = Application.GetRealWidth(24),
                        Height = Application.GetRealHeight(526),
                        Width = Application.GetRealWidth(327),
                        BackgroundImagePath = "MusicIcon/playBj.png",
                    };
                    view1.AddChidren(bjFl);
                    /// <summary>
                    ///  汉字
                    /// </summary>
                    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);
                    /// <summary>
                    ///  区域名称
                    /// </summary>
                    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);
                    /// <summary>
                    ///收藏图标
                    /// </summary>
                    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
                    {
                        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);
                        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, FunctionList.List.videoIntercom, (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 = FunctionList.List.videoIntercom.flRoomId,
                                    unitno = FunctionList.List.videoIntercom.flBuildingId,
                                };
                                ESOnVideo.Current.ShowESVideoMonitor(eSVideoInfo);
                            }
                };
            }
                        };
                    }
                });
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 第二个界面
@@ -297,67 +305,73 @@
        /// <param name="view2">父控件</param>
        /// <param name="listCall">通话记录列表</param>
        /// <param name="video">当前的可视对讲</param>
        void View2(FrameLayout view2, List<CallView> listCall, VideoClouds video)
        void View2(FrameLayout view2)
        {
            new System.Threading.Thread(() =>
            {
                var listCall = new HDL_ON.UI.UI2.FuntionControlView.Video.VideoMethod().getCall(FunctionList.List.videoIntercom.id);
                Application.RunOnMainThread(() =>
                {
                    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);
                    /// <summary>
                    ///  汉字
                    /// </summary>
                    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);
                    /// <summary>
                    ///  云端照片只保留30天
                    /// </summary>
                    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 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);
            /// <summary>
            ///  汉字
            /// </summary>
            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);
            /// <summary>
            ///  云端照片只保留30天
            /// </summary>
            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);
                    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(FunctionList.List.videoIntercom.id);
                        RefreshView(vv, list);
                        //关闭刷新View;
                        vv.EndHeaderRefreshing();
                    };
                    //RefreshView(vv, listCall);
                });
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 通话记录刷新界面
HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs
@@ -8,62 +8,61 @@
{
    public class VideoMethod
    {
        /// <summary>
        /// 程序主入口
        /// </summary>
        /// <param name="frameLayout">log父控件</param>
        /// <param name="video">可视对讲对象</param>
        public void MianView(FrameLayout frameLayout, VideoClouds video)
        {
            //加载log
            Loading loading = new Loading();
            frameLayout.AddChidren(loading);
            loading.Start();
            List<VideoMethod.FlVideo> listESVideoInfo = new List<VideoMethod.FlVideo>();
            List<CallView> listCall = new List<CallView>();
            new System.Threading.Thread(() =>
            {
                try
                {
                    listESVideoInfo = VideoSend.GetVideoInfoList(video);
                    listCall = getCall(video.id);
                }
                catch
                {
                }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        loading.Hide();
                        var mainView = new MainView();
                        MainPage.BasePageView.AddChidren(mainView);
                        mainView.Show(listESVideoInfo, listCall, video);
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    });
                }
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 获取可视对讲
        /// </summary>
        /// <param name="action">回调函数</param>
        /// <param name="frame">log父控件</param>
        public void getVideo(Action<VideoClouds> action, FrameLayout frame, bool tag)
        {
            ThreadSend(null, (responsePackNew) =>
             {
                 try
                 {
                     var str = responsePackNew.Data.ToString();
                     var videoObj = Newtonsoft.Json.JsonConvert.DeserializeObject<VideoClouds>(str);
                     action(videoObj);
                 }
                 catch { }
             }, "获取可视对讲", "fram", frame, null, tag);
        }
        ///// <summary>
        ///// 程序主入口
        ///// </summary>
        ///// <param name="frameLayout">log父控件</param>
        ///// <param name="video">可视对讲对象</param>
        //public void MianView(FrameLayout frameLayout, VideoClouds video)
        //{
        //    //加载log
        //    Loading loading = new Loading();
        //    frameLayout.AddChidren(loading);
        //    loading.Start();
        //    List<VideoMethod.FlVideo> listESVideoInfo = new List<VideoMethod.FlVideo>();
        //    List<CallView> listCall = new List<CallView>();
        //    new System.Threading.Thread(() =>
        //    {
        //        try
        //        {
        //            listESVideoInfo = VideoSend.GetVideoInfoList(video);
        //            listCall = getCall(video.id);
        //        }
        //        catch
        //        {
        //        }
        //        finally
        //        {
        //            Application.RunOnMainThread(() =>
        //            {
        //                loading.Hide();
        //                var mainView = new HDL_ON.UI.UI2.FuntionControlView.Video.MainView();
        //                MainPage.BasePageView.AddChidren(mainView);
        //                mainView.Show();
        //                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
        //            });
        //        }
        //    })
        //    { IsBackground = true }.Start();
        //}
        ///// <summary>
        ///// 获取可视对讲
        ///// </summary>
        ///// <param name="action">回调函数</param>
        ///// <param name="frame">log父控件</param>
        //public void getVideo(Action<VideoClouds> action, FrameLayout frame, bool tag)
        //{
        //    ThreadSend(null, (responsePackNew) =>
        //     {
        //         try
        //         {
        //             var str = responsePackNew.Data.ToString();
        //             var videoObj = Newtonsoft.Json.JsonConvert.DeserializeObject<VideoClouds>(str);
        //             action(videoObj);
        //         }
        //         catch { }
        //     }, "获取可视对讲", "fram", frame, null, tag);
        //}
        /// <summary>
        /// 获取历史通话记录
        /// </summary>
@@ -138,7 +137,7 @@
        /// <param name="frame">log父控件</param>
        /// <param name="dialog">log父控件</param>
        /// <param name="tag">是否要显示log</param>
        public static void ThreadSend(VideoClouds videoObj, Action<ResponsePackNew> action, string str, string view, FrameLayout frame, Dialog dialog, bool tag = true)
        public void ThreadSend(VideoClouds videoObj, Action<ResponsePackNew> action, string str, string view, FrameLayout frame, Dialog dialog, bool tag = true)
        {
            //加载log
@@ -203,18 +202,9 @@
        }
        /// <summary>
        /// 随机密码6位
        /// </summary>
        /// <returns></returns>         public static string getCode()         {             Random rand = new Random();             string code = "";             for (int ctr = 0; ctr < 6; ctr++)             {                 code += rand.Next(10).ToString();             }             return code;         }
        /// <summary>         /// 获取当前时间戳         /// </summary>         /// <returns></returns>         public static string GetCurrentTimeStamp()         {             //TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0);             //return Convert.ToInt64(ts.TotalSeconds).ToString();             System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
            return ((long)(DateTime.Now - startTime).TotalSeconds).ToString(); // 相差秒数
                     }
        /// <summary>         /// 获取当前时间戳         /// </summary>         /// <returns></returns>         public static string GetTomorrowTimeStamp()         {             //当前时间的后一天             //TimeSpan ts = DateTime.Now.AddDays(1) - new DateTime(1970, 1, 1, 0, 0, 0, 0);             //return Convert.ToInt64(ts.TotalSeconds).ToString();
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
            return ((long)(DateTime.Now.AddDays(1) - startTime).TotalSeconds).ToString(); // 相差秒数
        }
        [Serializable] 
        public class VideoClouds
        {
HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs
@@ -67,21 +67,32 @@
            catch { }
            return eSVideoInfosList;
        }
        /// <summary>
        /// 随机密码6位
        /// </summary>
        /// <returns></returns>         public static string getCode()         {             Random rand = new Random();             string code = "";             for (int ctr = 0; ctr < 6; ctr++)             {                 code += rand.Next(10).ToString();             }             return code;         }
        /// <summary>
        /// 上报动态开锁密码(注意:密码有可能延时1分钟生效)
        /// </summary>
        public static void GetQRcode(FrameLayout frame, VideoMethod.VideoClouds video, Action<bool, string> action)
        {
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
            var timeStamp = ((long)(DateTime.Now - startTime).TotalSeconds).ToString(); // 相差秒数
            var timeStamp2 = ((long)(DateTime.Now.AddDays(1) - startTime).TotalSeconds).ToString(); // 相差秒数
            ///标记是否成功
            bool if_bool = false;
            //临时密码
            string pwd = VideoMethod.getCode();
            string pwd = getCode();
            var jobject = new JObject();             jobject.Add("communityID", video.flCmtId);//社区ID
            jobject.Add("fromTime", VideoMethod.GetCurrentTimeStamp());//开始时间
            jobject.Add("validTime", VideoMethod.GetTomorrowTimeStamp());//有效时间
            jobject.Add("fromTime", timeStamp);//开始时间
            jobject.Add("validTime", timeStamp2);//有效时间
            jobject.Add("unitno", video.flBuildingId);//单元号
            jobject.Add("roomno", video.flRoomId);//房间号
            jobject.Add("code", pwd);             jobject.Add("userKey", video.id);             jobject.Add("timestamp", VideoMethod.GetCurrentTimeStamp());             jobject.Add("secretKey", video.flSecretKey);             jobject.Add("method", "setdynamicpwd");             jobject.Add("numTimes", "5");
            jobject.Add("code", pwd);             jobject.Add("userKey", video.id);             jobject.Add("timestamp", timeStamp);             jobject.Add("secretKey", video.flSecretKey);             jobject.Add("method", "setdynamicpwd");             jobject.Add("numTimes", "5");
            //加载log
            Loading loading = new Loading();
            frame.AddChidren(loading);