陈嘉乐
2021-03-31 564c60519d425617fcc482e10100e427ecb7b8d9
2021-3-31-1

可视对讲
15个文件已修改
587 ■■■■ 已修改文件
.vs/HDL_APP_Project/xs/UserPrefs.xml 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Language.ini 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/FengLinVideo/Form/MonitorFragment.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/FengLinVideo/Form/ReverseCallFragment.cs 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/VideoActivity.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Language.ini 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/R.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpServerRequest.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpUtil.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Video/MainView.cs 167 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,50 +1,31 @@
<Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default">
  <MonoDevelop.Ide.Workbench ActiveDocument="../../Application.cs">
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs">
    <Files>
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Video/MainView.cs" Line="253" Column="56" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs" Line="30" Column="23" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs" Line="71" Column="49" />
      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs" Line="686" Column="1" />
      <File FileName="../../TempQRCode.cs" Line="125" Column="48" />
      <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/MyQRCodePage.cs" Line="100" Column="39" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs" Line="118" Column="50" />
      <File FileName="HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs" Line="63" Column="29" />
      <File FileName="../../Application.cs" Line="1" Column="1" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Video/MainView.cs" Line="19" Column="106" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs" Line="28" Column="58" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs" Line="80" Column="25" />
    </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="DAL" expanded="True">
                <Node name="ThirdPartySdk" expanded="True" />
              </Node>
              <Node name="UI" expanded="True">
                <Node name="UI0-Stan" expanded="True">
                  <Node name="Controls" expanded="True">
                    <Node name="NormalControls" expanded="True" />
                  </Node>
                </Node>
                <Node name="UI2" expanded="True">
                  <Node name="4-PersonalCenter" expanded="True">
                    <Node name="PirDevice" expanded="True" />
                  </Node>
                  <Node name="FuntionControlView" expanded="True">
                    <Node name="Music" expanded="True">
                      <Node name="View" expanded="True" />
                    </Node>
                    <Node name="Video" expanded="True">
                      <Node name="View" expanded="True" />
                      <Node name="MainView.cs" selected="True" />
                      <Node name="VideoSend.cs" selected="True" />
                    </Node>
                  </Node>
                </Node>
              </Node>
            </Node>
            <Node name="HDL-ON_Android" expanded="True" />
            <Node name="HDL-ON_iOS" expanded="True">
              <Node name="Resources" expanded="True" />
            <Node name="HDL-ON_Android" expanded="True">
              <Node name="Assets" expanded="True">
                <Node name="Phone" expanded="True">
                  <Node name="VideoIcon" expanded="True" />
                </Node>
              </Node>
            </Node>
          </Node>
        </State>
HDL-ON_Android/Assets/Language.ini
@@ -1279,6 +1279,8 @@
4010=未接听
4011=已拒绝
4012=配置参数有异常!
4013=门禁二维码
4014=临时密码
5000=音乐
HDL-ON_Android/FengLinVideo/Form/MonitorFragment.cs
@@ -38,7 +38,7 @@
        private TextView unlockText;
        // 更新线程
        private Thread thread = null;
        public static Thread thread = null;
        public MonitorFragment(VideoPhone phone)
        {
HDL-ON_Android/FengLinVideo/Form/ReverseCallFragment.cs
@@ -113,6 +113,7 @@
            }
        }
        public static Thread unlockThread = null;//公开出来,关闭activity的时候要结束这个线程,不然会引起崩溃
        /// <summary>
        /// 更新开锁按钮状态,开锁成功,15秒内不给再点击按钮
        /// </summary>
@@ -124,18 +125,28 @@
                unlockImg.Enabled = false;
                new Thread(() =>
                {
                    Thread.Sleep(15 * 1000);
                    Activity.RunOnUiThread(() =>
                    {
                        try {
                        if (unlockImg != null)
                            unlockImg.Enabled = true;
                        }
                        catch { }
                    });
                }).Start();
                unlockThread = new Thread(() =>
                  {
                      try
                      {
                          Thread.Sleep(15 * 1000);
                      Activity.RunOnUiThread(() =>
                      {
                          try {
                              if (unlockImg != null)
                                  unlockImg.Enabled = true;
                          }
                          catch { }
                      });
                      }
                      catch { }
                  });//.Start();
                unlockThread.Start();
                PostUnlock();
            }
            catch { }
        }
@@ -221,7 +232,7 @@
                switch (event1)
                {
                    case "EVT_RECV_CUSTOM_DATA":
                    case "EVT_RECV_CUSTOM_DATA":// 开锁成功
                        string data = tp.GetString("data");
                        UpdataUnlockState();
                        break;
@@ -320,7 +331,7 @@
                    Dictionary<string, object> d = new Dictionary<string, object>();
                    d.Add("callId", VideoActivity.CallId);
                    d.Add("images", images);
                    d.Add("imagesName", img_name);
                    d.Add("imagesName", "_Android.jpg");
                    string jsonString = HttpUtil.GetSignRequestJson(d);
                    string url = "/home-wisdom/app/fl/vi/screenshot";
@@ -403,5 +414,27 @@
            }).Start();
        }
        /// <summary>
        /// post 开锁记录
        /// </summary>
        private void PostUnlock()
        {
            new Thread(() =>
            {
                try
                {
                    Dictionary<string, object> d = new Dictionary<string, object>();
                    d.Add("callId", VideoActivity.CallId);//呼叫记录id int
                    string jsonString = HttpUtil.GetSignRequestJson(d);
                    string url = "/home-wisdom/app/fl/vi/unlock";
                    ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
                    Log.Info("FengLinVideo", "Post Reject Response code=" + response.Code);
                }
                catch { }
            }).Start();
        }
    }
}
HDL-ON_Android/VideoActivity.cs
@@ -43,7 +43,7 @@
        public static int Tpye = 0;//类型,0 监控,1反呼
        public static string UUId;
        public static int CallId;//callId 呼叫记录id
        public static string CallId;//callId 呼叫记录id
        public static string CmtID;//cmtID 丰林社区号
        public static string Roomno;//roomno 丰林房间号
        public static string Unitno;//unitno 丰林楼栋号 string
@@ -60,7 +60,7 @@
                ESVideoUUID = Intent.GetStringExtra("ESVideoUUID");//室外机UUID,例:JJY000007FSEYX
                DeviceName = Intent.GetStringExtra("DeviceName");//室外机的名称,例,室外机
                UUId = Intent.GetStringExtra("uuid");//
                CallId = Intent.GetIntExtra("callId", 0);
                CallId = Intent.GetStringExtra("callId");
                CmtID = Intent.GetStringExtra("cmtID");
                Roomno = Intent.GetStringExtra("roomno");
                Unitno = Intent.GetStringExtra("unitno");
@@ -215,6 +215,28 @@
                mPhone = null;
                //mPhone.OnActivityDestroy();
            }
            if (ReverseCallFragment.unlockThread != null)
            {
                try
                {
                    //
                    ReverseCallFragment.unlockThread.Interrupt();
                }
                catch { }
                ReverseCallFragment.unlockThread = null;
            }
            if (MonitorFragment.thread != null)
            {
                try
                {
                    //
                    MonitorFragment.thread.Interrupt();
                }
                catch { }
                MonitorFragment.thread = null;
            }
        }
        public override void OnBackPressed()
HDL-ON_iOS/Resources/Language.ini
@@ -1279,6 +1279,8 @@
4010=未接听
4011=已拒绝
4012=配置参数有异常!
4013=门禁二维码
4014=临时密码
5000=音乐
5001=组合
HDL_ON/Common/R.cs
@@ -755,6 +755,8 @@
        public const int weijieting = 4010;
        public const int yijujue = 4011;
        public const int peizhicanshuyouyichang = 4012;
        public const int menjinerweima = 4013;
        public const int linshimima = 4014;
        public const int a31Music = 5000;
        public const int merge = 5001;
HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -492,6 +492,11 @@
                            Address = mHome.homeAddress,
                            isAllowCreateScene = mHome.isAllowCreateScene,
                        };
#if DEBUG
                        UserInfo.Current.regionList.Add(home);
                        continue;
#endif
                        if (home.isBindGateway)
                        {
                            UserInfo.Current.regionList.Add(home);
HDL_ON/DAL/Server/HttpUtil.cs
@@ -17,7 +17,7 @@
        /// 固定域名,正式环境
        /// 公共域名就近解析
        /// </summary>
        //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
       // public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
        public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";
        /// <summary>
        /// RegionMark
@@ -157,7 +157,7 @@
                ////**************测试**************
                //string requestFullUrl = GlobalRequestHttpsHost + apiPath;
               // string requestFullUrl = GlobalRequestHttpsHost + apiPath;
                ////**************测试**************
                RestClient client = new RestClient(requestFullUrl);
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -261,9 +261,10 @@
            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
            {
                HDL_ON.UI.UI2.FuntionControlView.Video.VideoMethod videoMethod = new UI2.FuntionControlView.Video.VideoMethod();
                videoMethod.getVideo((device)=> {
                videoMethod.getVideo((device) =>
                {
                    videoMethod.MianView(this, device);
                }, this,true);
                }, this, true);
                return;
                var page = new BrandListPage();// AddThirdPartyBrandListpage(); // BrandListPage();
HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirMain.cs
@@ -148,174 +148,6 @@
            #endregion
            ///初始化界面
            UIView(vv);
        }
        void GoToShowSortSelection(List<string> dataList)
        {
            Dictionary<string, List<string>> dict = new Dictionary<string, List<string>>();
            foreach (var data in dataList)
            {
                //提取字符串第一位
                //string s = data.Substring(0, 1);
                var key = GetCharSpellCode(data);
                if (dict.ContainsKey(key))
                {
                    var value = dict[key];
                    if (value == null)
                    {
                        value = new List<string>();
                    }
                    value.Add(data);
                }
                else
                {
                    var value = new List<string>();
                    value.Add(data);
                    dict.Add(key, value);
                }
            }
            Application.RunOnMainThread(() =>
            {
                JLCountrycode.CountryCodeView.Current.ShowSortSelection("选择红外品牌", dict, (countryName) =>
                {
                    //Console.WriteLine("countryName: " + countryName);
                    Utlis.ShowTip("选中了:" + countryName);
                });
            });
        }
        /// <summary>
        /// 获取汉字首字母
        /// </summary>
        /// <param name="textValue"></param>
        /// <returns></returns>
        private string GetCharSpellCode(string textValue)
        {
            long iCnChar;
            byte[] ZW = Encoding.GetEncoding("gb2312").GetBytes(textValue);
            //如果是字母,则直接返回
            if (ZW.Length == 1)
            {
                return textValue.ToUpper();
            }
            else
            {
                // get the array of byte from the single char
                int i1 = (short)(ZW[0]);
                int i2 = (short)(ZW[1]);
                iCnChar = i1 * 256 + i2;
            }
            // iCnChar match the constant
            if ((iCnChar >= 45217) && (iCnChar <= 45252))
            {
                return "A";
            }
            else if ((iCnChar >= 45253) && (iCnChar <= 45760))
            {
                return "B";
            }
            else if ((iCnChar >= 45761) && (iCnChar <= 46317))
            {
                return "C";
            }
            else if ((iCnChar >= 46318) && (iCnChar <= 46825))
            {
                return "D";
            }
            else if ((iCnChar >= 46826) && (iCnChar <= 47009))
            {
                return "E";
            }
            else if ((iCnChar >= 47010) && (iCnChar <= 47296))
            {
                return "F";
            }
            else if ((iCnChar >= 47297) && (iCnChar <= 47613))
            {
                return "G";
            }
            else if ((iCnChar >= 47614) && (iCnChar <= 48118))
            {
                return "H";
            }
            else if ((iCnChar >= 48119) && (iCnChar <= 49061))
            {
                return "J";
            }
            else if ((iCnChar >= 49062) && (iCnChar <= 49323))
            {
                return "K";
            }
            else if ((iCnChar >= 49324) && (iCnChar <= 49895))
            {
                return "L";
            }
            else if ((iCnChar >= 49896) && (iCnChar <= 50370))
            {
                return "M";
            }
            else if ((iCnChar >= 50371) && (iCnChar <= 50613))
            {
                return "N";
            }
            else if ((iCnChar >= 50614) && (iCnChar <= 50621))
            {
                return "O";
            }
            else if ((iCnChar >= 50622) && (iCnChar <= 50905))
            {
                return "P";
            }
            else if ((iCnChar >= 50906) && (iCnChar <= 51386))
            {
                return "Q";
            }
            else if ((iCnChar >= 51387) && (iCnChar <= 51445))
            {
                return "R";
            }
            else if ((iCnChar >= 51446) && (iCnChar <= 52217))
            {
                return "S";
            }
            else if ((iCnChar >= 52218) && (iCnChar <= 52697))
            {
                return "T";
            }
            else if ((iCnChar >= 52698) && (iCnChar <= 52979))
            {
                return "W";
            }
            else if ((iCnChar >= 52980) && (iCnChar <= 53640))
            {
                return "X";
            }
            else if ((iCnChar >= 53689) && (iCnChar <= 54480))
            {
                return "Y";
            }
            else if ((iCnChar >= 54481) && (iCnChar <= 55289))
            {
                return "Z";
            }
            else return ("");
        }
        /// <summary>
HDL_ON/UI/UI2/FuntionControlView/Video/MainView.cs
@@ -10,12 +10,19 @@
{
    public class MainView : FrameLayout
    {
        /// <summary>
        /// 加载可视对讲UI
        /// </summary>
        /// <param name="listVideo">门口机列表</param>
        /// <param name="listCall">通话记录列表</param>
        /// <param name="video">当前的可视对讲</param>
        public void Show(List<VideoMethod.FlVideo> listVideo, List<CallView> listCall, VideoClouds video)
        {
            #region 布局界面
            this.BackgroundColor = MusicColor.ViewColor;
            var topView = new TopView();
            this.AddChidren(topView.TopFLayoutView());
            topView.topNameBtn.TextID =StringId.keshiduijiang;
            topView.topNameBtn.TextID = StringId.keshiduijiang;
            topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
            {
                RemoveFromParent();
@@ -82,7 +89,7 @@
                if (pageView.PageIndex == 0)
                {
                    topView.topNameBtn.TextID =StringId.keshiduijiang;
                    topView.topNameBtn.TextID = StringId.keshiduijiang;
                }
                else
                {
@@ -90,14 +97,17 @@
                }
            };
            #endregion
        }
        /// <summary>
        /// 第一个界面
        /// </summary>
        /// <param name="view1">父控件</param>
        /// <param name="list">门口机列表</param>
        /// <param name="videoClouds">当前的可视对讲</param>
        void View1(FrameLayout view1, List<VideoMethod.FlVideo> list, VideoClouds videoClouds)
        {
            #region 布局界面
            var bjFl = new FrameLayout
            {
                Y = Application.GetRealHeight(24),
@@ -120,8 +130,8 @@
                TextSize = TextSize.Text24,
                TextAlignment = TextAlignment.CenterLeft,
                //Text = "可视对讲",
                TextID= StringId.keshiduijiang,
        };
                TextID = StringId.keshiduijiang,
            };
            bjFl.AddChidren(nameBtn);
            /// <summary>
            ///  区域名称
@@ -151,7 +161,7 @@
                SelectedImagePath = "MusicIcon/collectSelected.png",
            };
            bjFl.AddChidren(collectIconBtn);
            ///可视对讲图标
            Button intercomBtnIcon = new Button
            {
                X = Application.GetRealWidth(84),
@@ -173,7 +183,7 @@
            if (list.Count > 0)
            {
                //门禁二维码固定有的,虚拟一个出来
                list.Add(new VideoMethod.FlVideo { aliasName = "门禁二维码", devType = "10" });
                list.Add(new VideoMethod.FlVideo { aliasName =Language.StringByID(StringId.menjinerweima), devType = "100" });
            }
            //数组个数
            //int value = 15;
@@ -195,10 +205,11 @@
            };
            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),
@@ -218,7 +229,7 @@
                };
                fLayout.AddChidren(iconBtn);
                var iconNameBtn = new Button
                var deviceNameBtn = new Button
                {
                    Y = iconBtn.Bottom + Application.GetRealHeight(6),
                    Width = Application.GetRealWidth(50),
@@ -228,7 +239,7 @@
                    TextAlignment = TextAlignment.Center,
                    Text = video.aliasName,
                };
                fLayout.AddChidren(iconNameBtn);
                fLayout.AddChidren(deviceNameBtn);
                var clickBtn = new Button { Tag = video };
@@ -239,31 +250,42 @@
                    j = -1;
                    line += 1;
                }
                // GetIconAndText(i, deviceIconBtn, iconNameBtn);
                getIconAndText(video, iconBtn);
                #endregion
                //门口机的点击事件
                clickBtn.MouseUpEventHandler += (sender, e) =>
                {
                    var flVideo = clickBtn.Tag as VideoMethod.FlVideo;
                    if (string.IsNullOrEmpty(flVideo.uuid))
                    if (flVideo.devType == "100")
                    {
                        new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.peizhicanshuyouyichang));
                        //门禁二维码固定有的
                        VideoSend.GetQRcode(this, videoClouds, (tag, paw) =>
                        {
                            if (tag)
                            {
                                //注意:密码有可能延时1分钟生效
                                View.ShowDialog showDialog = new View.ShowDialog();
                                showDialog.QRcode(paw);
                            }
                        });
                    }
                    ESVideoInfo eSVideoInfo = new ESVideoInfo
                    else
                    {
                        ESVideoUUID = flVideo.uuid,
                        DeviceName = flVideo.aliasName,
                        roomno = videoClouds.flRoomId,
                        unitno= videoClouds.flBuildingId,
                    };
                    ESOnVideo.Current.ShowESVideoMonitor(eSVideoInfo);
                        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);
                    }
                    //VideoSend.GetQRcode(this, videoClouds, (tag,paw) =>
                    //{
                    //    if (tag)
                    //    {
                    //        View.ShowDialog showDialog = new View.ShowDialog();
                    //        showDialog.QRcode(paw);
                    //    }
                    //});
                };
            }
@@ -273,6 +295,8 @@
        /// 第二个界面
        /// </summary>
        /// <param name="view2">父控件</param>
        /// <param name="listCall">通话记录列表</param>
        /// <param name="video">当前的可视对讲</param>
        void View2(FrameLayout view2, List<CallView> listCall, VideoClouds video)
        {
@@ -297,7 +321,7 @@
                TextColor = MusicColor.MusicTxet14Color,
                TextSize = TextSize.Text24,
                TextAlignment = TextAlignment.CenterLeft,
                TextID=StringId.tonghuajilu,
                TextID = StringId.tonghuajilu,
            };
            bjFl.AddChidren(nameBtn);
            /// <summary>
@@ -312,7 +336,7 @@
                TextColor = MusicColor.SelectedColor,
                TextSize = TextSize.Text12,
                TextAlignment = TextAlignment.CenterLeft,
                TextID=StringId.baolu30,
                TextID = StringId.baolu30,
            };
            bjFl.AddChidren(regionBtn);
@@ -336,22 +360,24 @@
        }
        /// <summary>
        /// 刷新界面
        /// 通话记录刷新界面
        /// </summary>
        /// <param name="vv"></param>
        /// <param name="listCall"></param>
        /// <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());
                    ///呼叫时间
@@ -365,14 +391,63 @@
        }
        /// <summary>
        /// 显示图标
        /// </summary>
        /// <param name="flVideo"></param>
        /// <param name="iconBtn">图标</param>
        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;
        }
        /// <summary>
        /// 获取显示时间文本
        /// </summary>
        /// <param name="str"></param>
        /// <param name="str">utcTime</param>
        /// <returns></returns>
        public string getTime(string str)
        private string getTime(string str)
        {
            var utcTime = Convert.ToDateTime(str);
            var dateTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, TimeZoneInfo.Local);
@@ -383,7 +458,7 @@
        /// </summary>
        /// <param name="str">状态值0:未接;1:已接;2:拒接</param>
        /// <returns></returns>
        public string getStateText(string str)
        private string getStateText(string str)
        {
            string s = "";
            switch (str)
@@ -411,7 +486,7 @@
        /// </summary>
        /// <param name="if_bool"></param>
        /// <returns></returns>
        public string getUnlockText(bool if_bool)
        private string getUnlockText(bool if_bool)
        {
            string s = "";
            if (if_bool)
@@ -424,7 +499,23 @@
            }
            return s;
        }
        /// <summary>
        /// 获取uuid
        /// </summary>
        /// <param name="uuid"></param>
        /// <returns></returns>
        private string getUuid(string uuid)
        {
            if (uuid.Contains(","))
            {
                var uuid1 = uuid.Split(',');
                return uuid1[0];
            }
            else
            {
                return uuid;
            }
        }
    }
HDL_ON/UI/UI2/FuntionControlView/Video/VideoMethod.cs
@@ -207,13 +207,19 @@
        /// 随机密码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();         }
        /// <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();         }
        /// <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
        {
        {
            /// <summary>
            /// 丰林绑定id(flBindId)
            /// 丰林绑定id(flBindId)(userKey)
            /// </summary>
            public string id = string.Empty;
            /// <summary>
HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs
@@ -31,7 +31,7 @@
        /// <returns></returns>
        public static ResponsePackNew GetCall(string flBindId)
        {
            var jObject = new JObject { { "homeId", PirSend.HomeId }, { "flBindId", flBindId }, { "pageSize", int.MaxValue } };
            var jObject = new JObject { { "homeId", PirSend.HomeId }, { "flBindId", flBindId }, { "pageSize", 100 } };
            var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_FL_GetCallList);
            return responsePackNew;
        }
@@ -61,36 +61,16 @@
                {
                    return eSVideoInfosList;
                }
                var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(json["list"].ToString());
                if (list.Count == 0)
                {
                    return eSVideoInfosList;
                }
                foreach (var videoInfo in list)
                {
                    VideoMethod.FlVideo flVideo = new VideoMethod.FlVideo();
                    flVideo.aliasName = videoInfo["aliasName"];
                    if (videoInfo["uuid"].Contains(","))
                    {
                        var uuid = videoInfo["uuid"].Split(',');
                        flVideo.uuid = uuid[0];
                    }
                    else
                    {
                        flVideo.uuid = videoInfo["uuid"];
                    }
                    flVideo.devType = videoInfo["devType"];
                    //eSVideoInfo.roomno = video.flRoomId;
                    eSVideoInfosList.Add(flVideo);
                }
                eSVideoInfosList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<VideoMethod.FlVideo>>(json["list"].ToString());
            }
            catch { }
            return eSVideoInfosList;
        }
        /// <summary>
        /// 上报动态开锁密码
        /// 上报动态开锁密码(注意:密码有可能延时1分钟生效)
        /// </summary>
        public static void GetQRcode(FrameLayout frame, VideoMethod.VideoClouds video,Action<bool,string>action)
        public static void GetQRcode(FrameLayout frame, VideoMethod.VideoClouds video, Action<bool, string> action)
        {
            ///标记是否成功
            bool if_bool = false;
@@ -101,7 +81,7 @@
            jobject.Add("validTime", VideoMethod.GetTomorrowTimeStamp());//有效时间
            jobject.Add("unitno", video.flBuildingId);//单元号
            jobject.Add("roomno", video.flRoomId);//房间号
            jobject.Add("code", pwd);             jobject.Add("userKey", video.flSecretKey);             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", VideoMethod.GetCurrentTimeStamp());             jobject.Add("secretKey", video.flSecretKey);             jobject.Add("method", "setdynamicpwd");             jobject.Add("numTimes", "5");
            //加载log
            Loading loading = new Loading();
            frame.AddChidren(loading);
@@ -113,20 +93,14 @@
                    var str = HttpWebRequest(NewAPI.API_POST_FL_QRcode, jobject.ToString(), "POST");
                    if (!string.IsNullOrEmpty(str))
                    {
                        try
                        var json = JObject.Parse(str);
                        if (json != null)
                        {
                            var json = JObject.Parse(str);
                            if (json != null)
                            var stateCode = json["status"].ToString();
                            if (stateCode == "0")
                            {
                                var stateCode = json["resCode"].ToString();
                                if (stateCode != "0")
                                {
                                    if_bool = true;
                                }
                                if_bool = true;
                            }
                        }
                        catch {
                        }
                    }
                }
@@ -137,6 +111,33 @@
                    {
                        loading.Hide();
                        action(if_bool, pwd);
                    });
                }
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 下载图片
        /// </summary>
        public static void GetIcon(FrameLayout frame,string url)
        {
            Loading loading = new Loading();
            frame.AddChidren(loading);
            loading.Start();
            new System.Threading.Thread(() =>
            {
                try
                {
                    var responsePackNew = RequestServerhomeId(null, url);
                }
                catch { }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        loading.Hide();
                    });
                }
@@ -197,5 +198,13 @@
            return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout);
        }
    }
    class FlResponsePackNew
    {//
        public string status = string.Empty;
        public string desc = string.Empty;
    }
}
HDL_ON/UI/UI2/FuntionControlView/Video/View/ShowDialog.cs
@@ -119,7 +119,7 @@
                TextSize = TextSize.Text16,
                TextAlignment = TextAlignment.Center,
                IsBold = true,
                Text = "临时密码",
                TextID=StringId.linshimima,
            };
            whiteView.AddChidren(btnTitle);
            //密码
@@ -142,7 +142,8 @@
                Y = Application.GetRealHeight(68),
                Width = Application.GetRealWidth(20),
                Height = Application.GetRealWidth(20),
                UnSelectedImagePath = "VideoIcon/hangup.png",
                UnSelectedImagePath = "LoginIcon/ShowPasswordIcon.png",
                SelectedImagePath = "LoginIcon/HidePasswordIcon.png",
            };
            whiteView.AddChidren(iconBtn);
            //二维码