From d6fb0646531172f23648441c224cdcccd721b894 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期一, 14 十二月 2020 09:59:01 +0800 Subject: [PATCH] 请合并代码,完成晾衣架最终功能。 --- ZigbeeApp/Shared/Phone/Device/VideoIntercom/VideoMachine.cs | 281 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 281 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/VideoIntercom/VideoMachine.cs b/ZigbeeApp/Shared/Phone/Device/VideoIntercom/VideoMachine.cs new file mode 100755 index 0000000..795c206 --- /dev/null +++ b/ZigbeeApp/Shared/Phone/Device/VideoIntercom/VideoMachine.cs @@ -0,0 +1,281 @@ +锘縰sing System; +using Newtonsoft.Json.Linq; +using Shared.Common; +using System.Collections.Generic; +using Shared.Phone.Device.Logic; + +namespace Shared.Phone.Device.VideoIntercom +{ + public class VideoMachine : FrameLayout + { + public VideoMachine() + { + } + public void Show(List<VideoCalss> videoInfosLists) + { + TopView view = new TopView(); + this.AddChidren(view.TopRowView()); + view.toptitleNameBtn.TextID = R.MyInternationalizationString.videoIntercom; + view.clickBtn.MouseDownEventHandler += (sender, e) => { RemoveFromParent(); }; + + var middle = new VerticalRefreshLayout + { + Y = view.topRowLayout.Bottom, + Height = Application.GetRealHeight(Method.H - 184), + BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, + }; + this.AddChidren(middle); + + for (int i = 0; i < videoInfosLists.Count; i++) + { + var videoInfos = videoInfosLists[i]; + var fLayout = new FrameLayout + { + Height = Application.GetRealHeight(160), + BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor, + }; + middle.AddChidren(fLayout); + var iconBtn = new Button + { + Width = Application.GetMinRealAverage(81), + Height = Application.GetMinRealAverage(81), + X = Application.GetRealWidth(58), + Y = Application.GetRealHeight(55), + UnSelectedImagePath = "Item/videoIntercom.png", + }; + fLayout.AddChidren(iconBtn); + var nameBtn = new Button + { + TextAlignment = TextAlignment.CenterLeft, + TextColor = ZigbeeColor.Current.LogicTextBlackColor, + TextSize = 15, + Y = Application.GetRealHeight(30), + X = Application.GetRealWidth(176), + Height = Application.GetRealHeight(60), + Width = Application.GetRealWidth(400), + Text = videoInfos.DeviceName, + }; + fLayout.AddChidren(nameBtn); + + var name1Btn = new Button + { + Text = videoInfos.RoomName, + TextAlignment = TextAlignment.CenterLeft, + TextColor = ZigbeeColor.Current.LogicBtnCancelColor, + TextSize = 12, + Y = nameBtn.Bottom + Application.GetRealHeight(3), + X = Application.GetRealWidth(176), + Height = Application.GetRealHeight(60), + Width = Application.GetRealWidth(400), + }; + fLayout.AddChidren(name1Btn); + + var nextBtn = new Button + { + Width = Application.GetMinRealAverage(104), + Height = Application.GetMinRealAverage(104), + UnSelectedImagePath = "Item/videoIntercomNext.png", + X = Application.GetRealWidth(743 + 176), + Y = Application.GetRealHeight(30), + }; + fLayout.AddChidren(nextBtn); + + var lineBtn = new Button + { + Width = Application.GetRealWidth(845), + Height = 1, + Y = fLayout.Height - 1, + X = Application.GetRealWidth(176), + BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor, + }; + fLayout.AddChidren(lineBtn); + var clickBtn = new Button + { + Height = Application.GetRealHeight(160), + }; + fLayout.AddChidren(clickBtn); + + clickBtn.MouseUpEventHandler += (sen, e) => + { +#if iOS + GateWay.Ios.ESVideoInfo eSVideoInfo = new GateWay.Ios.ESVideoInfo(); + eSVideoInfo.DeviceName = videoInfos.DeviceName; + eSVideoInfo.ESVideoUUID = videoInfos.ESVideoUUID; + eSVideoInfo.ESRoomID = videoInfos.ESRoomID; + eSVideoInfo.RoomName = videoInfos.RoomName; + GateWay.Ios.ESVideo.ShowESVideoMonitor(eSVideoInfo); +#elif Android + ((BaseActivity)Application.Activity).AudioRecord((result) => + { + if (result == false) { return; } + Shared.Phone.VideoPhone.ESVideoInfo eSVideoInfo = new Shared.Phone.VideoPhone.ESVideoInfo(); + eSVideoInfo.DeviceName = videoInfos.DeviceName; + eSVideoInfo.ESVideoUUID = videoInfos.ESVideoUUID; + eSVideoInfo.ESRoomID = videoInfos.ESRoomID; + eSVideoInfo.RoomName = videoInfos.RoomName; + Shared.Phone.VideoPhone.ESVideo.ShowESVideoMonitor(eSVideoInfo); + }); +#endif + }; + + } + + } + /// <summary> + /// 鍒ゆ柇璐﹀彿鏄惁鏀寔鍙瀵硅 + /// </summary> + /// <param name="topFrameLayout">鍙瀵硅鍥炬爣鐨勭埗鎺т欢</param> + public async static void AccountSupportVideo(FrameLayout topFrameLayout) + { + var jobject = new JObject(); + jobject.Add("RequestVersion", CommonPage.RequestVersion); + jobject.Add("RequestSource", "0"); + jobject.Add("HomeID", Config.Instance.HomeId); + var url = "https://developer.hdlcontrol.com/ProposedProductionApi/VideoIntercom/CheckBindRecord"; + var str = await Send.HttpWebRequest(url, jobject.ToString(), "POST", 3, true); + if (!string.IsNullOrEmpty(str)) + { + try + { + var json = JObject.Parse(str); + if (json != null) + { + var stateCode = json["StateCode"].ToString(); + //鍙瀵硅蹇嵎鏂瑰紡 + var videoIntercomBtn = new Button(); + videoIntercomBtn.Gravity = Gravity.CenterVertical; + videoIntercomBtn.UnSelectedImagePath = "Item/videoIntercom.png"; + videoIntercomBtn.Width = Application.GetMinRealAverage(69); + videoIntercomBtn.Height = Application.GetMinRealAverage(69); + List<VideoCalss> videoList= new List<VideoCalss>(); + if (stateCode == "Success") + {//鍒ゆ柇杩欎釜璐﹀彿鏄惁缁戝畾; + topFrameLayout.AddChidren(videoIntercomBtn); + CloudsVideo cloudsVideo = Newtonsoft.Json.JsonConvert.DeserializeObject<CloudsVideo>(json["ResponseData"].ToString()); + videoList = await GetVideoInfoList(cloudsVideo); + } + if (UserCenter.UserCenterResourse.ResidenceOption.SafetyShortcut) + { + videoIntercomBtn.X = Application.GetRealWidth(746 + 10); + } + else + { + videoIntercomBtn.X = Application.GetRealWidth(850 + 10); + } + videoIntercomBtn.MouseUpEventHandler += (sender, e) => + { + + var videoMachine = new Device.VideoIntercom.VideoMachine(); + UserView.HomePage.Instance.AddChidren(videoMachine); + UserView.HomePage.Instance.PageIndex += 1; + videoMachine.Show(videoList); + + }; + } + } + catch { } + } + } + /// <summary> + /// 鑾峰彇鍙瀵硅鍒楄〃 + /// </summary> + static async System.Threading.Tasks.Task<List<VideoCalss>> GetVideoInfoList(CloudsVideo clouds) + { + List<VideoCalss> eSVideoInfosList = new List<VideoCalss>(); + var jobject = new JObject(); + jobject.Add("cmtID", clouds.FLCommunityID); + jobject.Add("unitno", clouds.FLBuildingID); + jobject.Add("method", "getUUIDList"); + var url = " http://112.74.164.111:180/api.php/Device/getmonitorUUID"; + var str = await Send.HttpWebRequest(url, jobject.ToString(), "POST"); + if (string.IsNullOrEmpty(str)) + { + return eSVideoInfosList; + } + var json = JObject.Parse(str); + if (json == null) + { + return eSVideoInfosList; + } + if (json["resCode"].ToString() != "0") + { + 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) + { + VideoCalss eSVideoInfo = new VideoCalss(); + eSVideoInfo.ESRoomID = int.Parse(clouds.FLRoomID); + string str1 = clouds.FLBuildingID.Substring(0, 2).TrimStart('0'); + string str2 = clouds.FLBuildingID.Substring(2, 2).TrimStart('0'); + eSVideoInfo.RoomName = str1 +Language.StringByID( R.MyInternationalizationString.dong) + str2 + Language.StringByID(R.MyInternationalizationString.unit); + eSVideoInfo.DeviceName = videoInfo["aliasName"]; + if (videoInfo["uuid"].Contains(",")) + { + var uuid = videoInfo["uuid"].Split(','); + eSVideoInfo.ESVideoUUID = uuid[0]; + } + else + { + eSVideoInfo.ESVideoUUID = videoInfo["uuid"]; + } + eSVideoInfosList.Add(eSVideoInfo); + } + return eSVideoInfosList; + } + } + public class VideoCalss + { + /// <summary> + /// 瀹ゅ鏈虹殑UUID + /// 渚嬶細JJY000007FSEYX + /// </summary> + public string ESVideoUUID = string.Empty; + /// <summary> + /// 褰撳墠鐢ㄦ埛鐨勬埧闂碔D + /// 渚嬶細0801 + /// </summary> + public int ESRoomID; + /// <summary> + /// 瀹ゅ鏈虹殑鍚嶇О + /// 渚嬶細瀹ゅ鏈� + /// </summary> + public string DeviceName = string.Empty; + /// <summary> + /// 鎴块棿鍛藉悕 + /// 渚嬶細8鏍�1鍗曞厓0801 + /// </summary> + public string RoomName = string.Empty; + + } + public class CloudsVideo + { + /// <summary> + /// 鏍嬫ゼ鍗曞厓鍙� + /// </summary> + public string FLBuildingID = string.Empty; + /// <summary> + /// 閭f爧妤肩殑鍚嶇О + /// </summary> + public string FLBuildingName = string.Empty; + /// <summary> + /// 灏忓尯ID + /// </summary> + public string FLCommunityID = string.Empty; + /// <summary> + /// 鎴块棿ID + /// </summary> + public string FLRoomID = string.Empty; + /// <summary> + /// 浣忓畢ID + /// </summary> + public string HomeID = string.Empty; + + public string FLSecretKey = string.Empty; + + } +} -- Gitblit v1.8.0