From 454ac814944cf956ff02b84b70ba2ec68e5e5ea1 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期三, 15 一月 2020 19:38:47 +0800 Subject: [PATCH] 2020-01-15 1.优化MQTT连接。 2.增加本地通信加密。 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs | 141 ++++++++++++++++++++++++++++++++++++---------- 1 files changed, 109 insertions(+), 32 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs index d9af43e..1cbb57a 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Guide/GuideAddResidence.cs @@ -197,7 +197,7 @@ /// </summary> /// <param name="home">Home.</param> /// <param name="VerticalScrolViewMiddle">Vertical scrol view middle.</param> - void AddResidenceListRow (RegionInfoRes home, VerticalScrolViewLayout VerticalScrolViewMiddle ) + void AddResidenceListRow (RegionInfoRes home, VerticalScrolViewLayout VerticalScrolViewMiddle) { var rowView = new RowLayout () { Height = Application.GetRealHeight (110), @@ -231,11 +231,28 @@ }; rowView.AddChidren (btnName); + + //鏄剧ず鍒嗕韩鎸夐挳 + if (home.IsOthreShare) { + Button FromSharingButton = new Button () { + X = Application.GetRealWidth (480), + Width = Application.GetRealWidth (30), + Height = Application.GetRealHeight (30), + Gravity = Gravity.CenterVertical, + UnSelectedImagePath = "CrabtreeAdd/FromSharing.png", + SelectedImagePath = "CrabtreeAdd/FromSharing.png", + }; + rowView.AddChidren (FromSharingButton); + } + var goNextButton = new Button () { X = Application.GetRealWidth (500), Width = Application.GetRealWidth (120), }; rowView.AddChidren (goNextButton); + + + Button rightButton1 = new Button () { @@ -247,8 +264,17 @@ SelectedImagePath = "Item/RightSelected.png", }; rowView.AddChidren (rightButton1); + + + + EventHandler<MouseEventArgs> eHandler = (sender, e) => { if (home.Id == UserConfig.Instance.CurrentRegion.Id) { + if (home.IsOthreShare) { + //鎻愮ず娌℃湁鍒嗕韩浣忓畢鐨勬潈闄� + new Alert ("", ErrorCode.InsufficientAuthority, "Close").Show (); + return; + } //UserConfig.Instance.GatewayMAC = gatewayMAC; var addGatewayDialog = new GuideAddGateway (); (Parent as PageLayout).AddChidren (addGatewayDialog); @@ -258,11 +284,16 @@ ChangeRegion (home); } }; - rightButton1.MouseUpEventHandler += eHandler; + rightButton1.MouseUpEventHandler += eHandler; goNextButton.MouseUpEventHandler += eHandler; - btnName.MouseUpEventHandler += (sender,e)=> { + btnName.MouseUpEventHandler += (sender, e) => { if (home.Id == UserConfig.Instance.CurrentRegion.Id) { - GuideAddHomeDialog (home, false,true, btnName); + if (home.IsOthreShare) { + //鎻愮ず娌℃湁鍒嗕韩浣忓畢鐨勬潈闄� + new Alert ("", ErrorCode.InsufficientAuthority, "Close").Show (); + return; + } + GuideAddHomeDialog (home, false, true, btnName); } else { ChangeRegion (home); } @@ -285,6 +316,12 @@ }; rowView.AddRightView (btnDel); btnDel.MouseUpEventHandler += (sd, ee) => { + if (home.IsOthreShare) { + //鎻愮ず娌℃湁鍒嗕韩浣忓畢鐨勬潈闄� + new Alert ("", ErrorCode.InsufficientAuthority, "Close").Show (); + return; + } + Dialog dialog = new Dialog (); FrameLayout dialogBody = new FrameLayout () { @@ -375,7 +412,7 @@ var requestObj = new LoginObj () { Account = MainPage.LoginUser.AccountString, Password = password }; var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); var revertObj = MainPage.RequestHttps (API.Login, requestJson); - if (revertObj.StateCode.ToUpper() == "SUCCESS") { + if (revertObj.StateCode.ToUpper () == "SUCCESS") { var requestObj2 = new DelHomeObj () { HomeId = home.Id, @@ -439,7 +476,8 @@ /// </summary> /// <param name="home">Home.</param> /// <param name="gatewayMAC">Gateway mac.</param> - void ChangeRegion (RegionInfoRes home, bool goHomePage = true) + /// + void ChangeRegion (RegionInfoRes home, bool goHomePage = true, bool bNeedCheckAddRoom = false, bool goToGuideAddGatewayView = false) { if (home == null || string.IsNullOrEmpty (home.Id)) return; @@ -474,6 +512,8 @@ Room.InitAllRoom (); Application.RunOnMainThread (() => { ShowHomeList (false); + + if (goHomePage) { UserConfig.Instance.RefreshUserConfig (); new Alert ("", Language.StringByID (R.MyInternationalizationString.SwitchRegionSuccessfully), @@ -482,8 +522,20 @@ CommonPage.IsRemote = false; EquipmentPublicClass.CheckLinkRemote (2); } + if (bNeedCheckAddRoom) { + CheckIfNeedAddRoom (); + } + + if (goToGuideAddGatewayView) { + var addGatewayDialog = new GuideAddGateway (); + UserMiddle.guidePageView.AddChidren (addGatewayDialog); + addGatewayDialog.ShowPage (home);//guidePageView + UserMiddle.guidePageView.PageIndex = 1; + } }); MainPage.LoginUser.SaveUserInfo (); + + //} } catch (Exception ex) { Application.RunOnMainThread (() => { @@ -586,8 +638,8 @@ return; } if (isChangeName) { - home.Name = button.Text = etZoneName.Text; - var requestObj2 = new EditHomeObj () { HomeId = home.Id, Name = home.Name, LoginAccessToken = MainPage.LoginUser.LoginTokenString }; + //home.Name = button.Text = etZoneName.Text; + var requestObj2 = new EditHomeObj () { HomeId = home.Id, Name = etZoneName.Text, LoginAccessToken = MainPage.LoginUser.LoginTokenString }; string urlHead = MainPage.RequestHttpsHost; if (requestObj2.IsOtherAccountCtrl) { urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; @@ -596,24 +648,31 @@ var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); var revertObj2 = MainPage.RequestHttps (API.EditHome, requestJson2, urlHead); + if (revertObj2.StateCode.ToUpper () != "SUCCESS") { + ShowEditHomeErrorInfo (revertObj2.StateCode); + return; + } + home.Name = button.Text = etZoneName.Text; IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.Name, home.Name); return; } - ChangeRegion (home, false); - var addGatewayDialog = new GuideAddGateway (); - if (guide) { - //ShowHomeList (); - EditResidence (home, etZoneName.Text.Trim ()); - UserMiddle.guidePageView.AddChidren (addGatewayDialog); - addGatewayDialog.ShowPage (home);//guidePageView - UserMiddle.guidePageView.PageIndex = 1; - } else { - EditResidence (home, etZoneName.Text.Trim ()); - //UserMiddle.SettingPageView.AddChidren (addGatewayDialog); - //addGatewayDialog.ShowPage (home); - //UserMiddle.SettingPageView.PageIndex = 2; - } + //ChangeRegion (home, false); + EditResidence (home, etZoneName.Text.Trim (), guide); + + + //if (guide) { + + // //ShowHomeList (); + // EditResidence (home, etZoneName.Text.Trim ()); + // var addGatewayDialog = new GuideAddGateway (); + // UserMiddle.guidePageView.AddChidren (addGatewayDialog); + // addGatewayDialog.ShowPage (home);//guidePageView + // UserMiddle.guidePageView.PageIndex = 1; + //} else { + // EditResidence (home, etZoneName.Text.Trim ()); + + //} }; if(!guide) @@ -645,10 +704,10 @@ /// </summary> /// <param name="home">Home.</param> /// <param name="residenceName">Et zone name string.</param> - bool EditResidence (RegionInfoRes home,string residenceName) + bool EditResidence (RegionInfoRes home, string residenceName, bool goToGuideAddGatewayView = false) { if (home.Name != residenceName) { - home.Name = residenceName; + if (string.IsNullOrEmpty(home.Id)) { var requestObj21 = new AddHomeObj () { Name = residenceName , @@ -661,8 +720,15 @@ ShowAddHomeErrorInfo (revertObj21.StateCode); return false; } + home.Name = residenceName; + //鍒涘缓浣忓畢鎴愬姛锛屽垏鎹㈠埌璇ヤ綇瀹� + var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RegionInfoRes>> (revertObj21.ResponseData.ToString ()); + if (responseDataObj != null && responseDataObj.Count > 0) { + ChangeRegion (responseDataObj [0], false, true, goToGuideAddGatewayView); + + } } else { - var requestObj2 = new EditHomeObj () { HomeId = home.Id, Name = home.Name, LoginAccessToken = MainPage.LoginUser.LoginTokenString }; + var requestObj2 = new EditHomeObj () { HomeId = home.Id, Name = residenceName, LoginAccessToken = MainPage.LoginUser.LoginTokenString }; string urlHead = MainPage.RequestHttpsHost; if (requestObj2.IsOtherAccountCtrl) { urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; @@ -670,18 +736,32 @@ } var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); var revertObj2 = MainPage.RequestHttps (API.EditHome, requestJson2, urlHead); - IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.Name, home.Name); if (revertObj2.StateCode.ToUpper() != "SUCCESS") { ShowEditHomeErrorInfo (revertObj2.StateCode); return false; } + home.Name = residenceName; + IO.FileUtils.ReNameFoler (UserConfig.Instance.CurrentRegion.Name, home.Name); + ChangeRegion (home, false, true, goToGuideAddGatewayView); + //CheckIfNeedAddRoom (); } - ShowHomeList (false); + //ShowHomeList (false); //2020-01-09 鍘绘帀鍒囨崲浣忓畢 //UserConfig.Instance.CurrentRegion = home; //UserConfig.Instance.SaveUserConfig (); + }else { + ChangeRegion (home, false, true, goToGuideAddGatewayView); + //CheckIfNeedAddRoom (); } + return true; + + } + + /// <summary> + /// 妫�娴嬫槸鍚﹂粯璁ゅ垱寤烘埧闂� + /// </summary> + void CheckIfNeedAddRoom () { if (Room.Lists.FindAll ((obj) => obj.Name == "Living Room" || obj.Name == "Bedroom").Count == 0) { Room room = new Room (); string newRoomFilePath = typeof (Room).Name + "_Living Room"; @@ -698,12 +778,9 @@ room.Add (newRoomFilePath); room.Save (newRoomFilePath); Room.Lists.Add (room); + + Room.InitAllRoom (); } - if (home.Name != residenceName) { - ShowHomeList (); - } - return true; - } -- Gitblit v1.8.0