From d8545fbd1b36a6766c57c987e5d89862b470fed9 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期四, 03 九月 2020 09:46:29 +0800 Subject: [PATCH] 2020-09-03 1.修改风扇默认为关状态。2.Alexa添加设备时,去掉空调和通用开关选择添加支持。 3.场景增加通用开关添加和发送控制支持,Alexa 的场景同样增加通用开关的支持。 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs | 402 ++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 258 insertions(+), 144 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs index 0949f63..ed63141 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Register/AccountLogin.cs @@ -74,12 +74,16 @@ TextAlignment = TextAlignment.CenterLeft, Radius = (uint)Application.GetRealHeight (0), TextColor = SkinStyle.Current.TextColor1, - //Text = account, -#if DEBUG - //Text = "18926269190@189.cn" - Text = "721343314@qq.com" -#endif + Text = account, + }; +#if DEBUG + etAccount.Text = "18926269190@189.cn"; + //etAccount.Text = "721343314@qq.com"; + //etAccount.Text = "crabtreel12019@gmail.com"; + //etAccount.Text = "2791308028@qq.com"; +#endif + accountView.AddChidren (etAccount); var userConfigBytes = IO.FileUtils.ReadFile ("AccountListDB"); @@ -93,6 +97,13 @@ } var accountList = accountListDB.account; + //鑷姩濉啓璐﹀彿 + if (string.IsNullOrEmpty (account)) { + if (accountList.Count > 0) { + etAccount.Text = accountList [accountList.Count - 1]; + } + + } var accountListView = new VerticalScrolViewLayout () { Width = Application.GetRealWidth (500), Height = Application.GetRealHeight (85 * 2), @@ -119,20 +130,21 @@ TextAlignment = TextAlignment.CenterLeft, SecureTextEntry = true, TextColor = SkinStyle.Current.TextColor1, -#if DEBUG - Text = "123456" -#endif - //Text = password, + + Text = password, }; +#if DEBUG + etPasswrod.Text = "123456"; +#endif passwrodView.AddChidren (etPasswrod); Button btnShowPassword = new Button () { X = etPasswrod.Right, Y = etPasswrod.Y + Application.GetRealHeight (12), - Width = Application.GetRealWidth (73), - Height = Application.GetRealHeight (60), - UnSelectedImagePath = "CrabtreeAdd/ShowPW.png", - SelectedImagePath = "CrabtreeAdd/HidePW.png", + Width = Application.GetMinRealAverage (73), + Height = Application.GetMinRealAverage (60), + UnSelectedImagePath = "CrabtreeAdd/HidePW.png", + SelectedImagePath = "CrabtreeAdd/ShowPW.png", BorderColor = SkinStyle.Current.Transparent, BorderWidth = 2, Radius = 1 @@ -156,6 +168,10 @@ NigelLoginPass++; }; #endif + //if (accountList.Count > 0) { + // etAccount.Text = accountList [accountList.Count-1]; + //} + etAccount.EditorEnterAction += (obj) => { Application.HideSoftInput (); etPasswrod.Foucs = true; @@ -246,7 +262,7 @@ MainPage.Loading.Start ("Login..."); } }); - if (UserConfig.Instance.internetStatus == 0 || !SystemRemote.checeInternet ()) { + if (UserConfig.Instance.internetStatus == 0) { Application.RunOnMainThread (() => { new Tip () { Text = "Network abnormal, unable to connect to the Internet", Direction = AMPopTipDirection.Down, CloseTime = 3 }.Show (btnLogo); }); @@ -270,7 +286,7 @@ } catch (Exception ex) { MainPage.FailureToServer (); - Console.WriteLine (ex.Message); + Utlis.WriteLine (ex.Message); } finally { Application.RunOnMainThread (() => { MainPage.Loading.Hide (); @@ -384,59 +400,56 @@ } - /// <summary> - /// - /// </summary> - /// <param name="stateCodeStr"></param> - void ShowGetAllBindGatewarysPaggerErrorInfo (string stateCodeStr) - { - string mes = ""; - //2020-01-06 寰呰ˉ鍏� - if (stateCodeStr == ErrorCode.NetworkError) { - mes = ErrorCode.NetworkError; - } else { - mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr; + ///// <summary> + ///// + ///// </summary> + ///// <param name="stateCodeStr"></param> + //void ShowGetAllBindGatewarysPaggerErrorInfo (string stateCodeStr) + //{ + // string mes = ""; + // //2020-01-06 寰呰ˉ鍏� + // if (stateCodeStr == ErrorCode.NetworkError) { + // mes = ErrorCode.NetworkError; + // } else { + // mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr; - } - if (!string.IsNullOrEmpty (mes)) { - Application.RunOnMainThread (() => { - new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); - }); - } + // } + // if (!string.IsNullOrEmpty (mes)) { + // Application.RunOnMainThread (() => { + // new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // }); + // } - } + //} /// <summary> - /// 鐧诲綍 + /// 鐧诲綍 2020-01-11 /// </summary> /// <param name="account">Account.</param> /// <param name="password">Password.</param> private void Login (string account, string password, AccountListDB accountListDB) { - //string pattern = @"(http|https)://(?<domain>[^(:|/]*)"; - //Regex reg = new Regex (pattern, RegexOptions.IgnoreCase); - //Match m = reg.Match (MainPage.RequestHttpsHost); - //string mResult = m.Groups ["domain"].Value; - //if (!string.IsNullOrEmpty (mResult)) { - // MainPage.RequestHttpsHostMqtt = "https://" + mResult; - //} - - //return; - var requestObj = new LoginObj () { Account = account, Password = password, Company = MainPage.SoftSmsType }; var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); - var revertObj = MainPage.RequestHttps (API.Login, requestJson, false, false); + var revertObj = MainPage.RequestHttps (API.Login, requestJson); if (revertObj.StateCode.ToUpper() == "SUCCESS") { - if (!accountListDB.account.Contains (account)) { - accountListDB.account.Add (account); - accountListDB.SaveAccountListDB (); + //if (!accountListDB.account.Contains (account)) { + // accountListDB.account.Add (account); + // accountListDB.SaveAccountListDB (); + //} + + if (accountListDB.account.Contains (account)) { + accountListDB.account.Remove (account); } + accountListDB.account.Add (account); + accountListDB.SaveAccountListDB (); var responseDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes> (revertObj.ResponseData.ToString ()); var revertData = responseDataObj; MainPage.LoginUser = new UserInfo { + LoginToken = revertData.Token, ID = revertData.UserId, MainUserId = revertData.MainUserId, AccountType = revertData.UserType, @@ -447,7 +460,7 @@ Name = revertData.Contact, Guid = revertData.Guid, MD5PWD = revertData.MD5PWD, - + }; //var se = new service.hdlcontrol.com_push.WebServicePush (); @@ -460,115 +473,84 @@ var revertObj2 = MainPage.RequestHttps (API.GetHomePager, requestJson2); if (revertObj2.StateCode.ToUpper () == "SUCCESS") { - - //var DD = Newtonsoft.Json.Linq.JObject.Parse ("GFGFDG"); - //DD["ResponseData"]["PageData"]; var mResidenceRes = Newtonsoft.Json.JsonConvert.DeserializeObject<ResidenceRes> (revertObj2.ResponseData.ToString ()); //if (mResidenceRes.TotalCount != 0) { // //褰撲綇瀹呬负绌烘椂鍏堟彁绀虹敤鎴锋柊寤轰綇瀹� - //} else { - var revertRoomData = mResidenceRes.PageData; - if (revertRoomData.Find ((obj) => obj.Id == UserConfig.Instance.CurrentRegion.Id) == null) { + UserConfig.Instance.HomeLists = revertRoomData; + + if (UserConfig.Instance.CurrentRegion == null) { if (revertRoomData != null && revertRoomData.Count > 0) { - UserConfig.Instance.CurrentRegion = revertRoomData [0]; - if (UserConfig.Instance.CheckHomeGateways ()) { - UserConfig.Instance.GatewayMAC = revertRoomData [0].HomeGateways [0].GatewayUniqueId; + var bFind = false; + foreach (var mHome in revertRoomData) { + if (UserConfig.Instance.CheckThisHomeGatewaysNotEmpty (mHome)) { + bFind = true; + UserConfig.Instance.CurrentRegion = mHome; + break; + } } + if (!bFind) { + UserConfig.Instance.CurrentRegion = revertRoomData [0]; + } + IO.FileUtils.DeleteAllFile (); } + } else { - Room.InitAllRoom (); - } - - var gatewayListObj = new GetAllBindGatewarysPaggerObj (); - gatewayListObj.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString; - - //var gatewayListObj = new GatewayListObj (); - var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj); - var gatewayListRevertObj = MainPage.RequestHttps (API.GetAllBindGatewarysPagger, gatewayListJson); - if (gatewayListRevertObj.StateCode.ToUpper () == "SUCCESS") { - UserConfig.Instance.GatewayList.Clear (); - - var mGateRes = Newtonsoft.Json.JsonConvert.DeserializeObject<AllBindGatewarysPaggerRes> (gatewayListRevertObj.ResponseData.ToString ()); - //var responseGatewayDataObj = mGateRes.PageData; - UserConfig.Instance.GatewayList.AddRange (mGateRes.PageData); - UserConfig.Instance.SaveUserConfig (); - MainPage.LoginUser.LastTime = DateTime.Now; - if (UserConfig.Instance.GatewayList.Count == 0) { - Application.RunOnMainThread (() => { - UserMiddle.Init (); - Close (); - }); - return; + //2020-01-11 + var findRoom = revertRoomData.Find ((obj) => obj.Id == UserConfig.Instance.CurrentRegion.Id); + if (findRoom != null && UserConfig.Instance.CheckThisHomeGatewaysNotEmpty (findRoom)) { + //鍒锋柊浣忓畢 瑙e喅瀛愯处鍙烽棶棰� + UserConfig.Instance.CurrentRegion = findRoom; + Room.InitAllRoom (); } else { - UserConfig.Instance.HomeLists = revertRoomData; - MainPage.LoginUser.SaveUserInfo (); - UserConfig.Instance.SaveUserConfig (); - Scene.Refresh (); - A31MusicModel.Refresh (); - Application.RunOnMainThread (() => { - Close (); - UserMiddle.Init (); - EquipmentPublicClass.CheckLinkRemote (2); - }); + + //if (findRoom == null) { + if (revertRoomData != null && revertRoomData.Count > 0) { + var bFind = false; + foreach (var mHome in revertRoomData) { + if (UserConfig.Instance.CheckThisHomeGatewaysNotEmpty (mHome)) { + bFind = true; + UserConfig.Instance.CurrentRegion = mHome; + break; + } + } + //if (!bFind) { + // UserConfig.Instance.CurrentRegion = revertRoomData [0]; + //} + if (!bFind) { + var findRoom2 = revertRoomData.Find ((obj) => obj.IsOthreShare == false); + if (findRoom2 != null) { + UserConfig.Instance.CurrentRegion = findRoom2; + } else { + UserConfig.Instance.CurrentRegion = revertRoomData [0]; + } + } + + IO.FileUtils.DeleteAllFile (); + } + //}else { + // //鍒锋柊浣忓畢 瑙e喅瀛愯处鍙烽棶棰� + // UserConfig.Instance.CurrentRegion = findRoom; + // Room.InitAllRoom (); + //} } - } else { - //GetAllBindGatewarysPagger 澶辫触鎻愮ず - ShowGetAllBindGatewarysPaggerErrorInfo (gatewayListRevertObj.StateCode); - } + + + } + ////鍘熸柟妗� + //GetAllBindGatewarysPagger (revertRoomData); + ////鑾峰彇褰撳墠浣忓畢缃戝叧鏂规 + //GetNowHomeGateway (revertRoomData); + SaveUserConfig (revertRoomData); //} } else { //GetHomePager 澶辫触鎻愮ず ShowGetHomePagerErrorInfo (revertObj2.StateCode); } - - //var requestObj2 = new HomeListObj (); - //var requestJson2 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj2); - //var revertObj2 = MainPage.RequestHttps ("HomeList", requestJson2); - //if (revertObj2.StateCode.ToUpper() == "SUCCESS") { - // var responseDataObj2 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RegionInfoRes>> (revertObj2.ResponseData.ToString ()); - // var revertRoomData = responseDataObj2; - // if (revertRoomData.Find ((obj) => obj.RegionID == UserConfig.Instance.CurrentRegion.RegionID) == null) { - // UserConfig.Instance.CurrentRegion = revertRoomData [0]; - // UserConfig.Instance.GatewayMAC = revertRoomData [0].MAC; - // IO.FileUtils.DeleteAllFile (); - // } else { - // Room.InitAllRoom (); - // } - - // var gatewayListObj = new GatewayListObj (); - // var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj); - // var gatewayListRevertObj = MainPage.RequestHttps ("GatewayList", gatewayListJson); - // if (gatewayListRevertObj.StateCode.ToUpper() == "SUCCESS") { - // UserConfig.Instance.GatewayList.Clear (); - // var responseGatewayDataObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<GatewayRes>> (gatewayListRevertObj.ResponseData.ToString ()); - // UserConfig.Instance.GatewayList.AddRange (responseGatewayDataObj); - // UserConfig.Instance.SaveUserConfig (); - // MainPage.LoginUser.LastTime = DateTime.Now; - // if (UserConfig.Instance.GatewayList.Count == 0) { - // Application.RunOnMainThread (() => { - // UserMiddle.Init (); - // Close (); - // }); - // return; - // } else { - // UserConfig.Instance.HomeLists = revertRoomData; - // MainPage.LoginUser.SaveUserInfo (); - // UserConfig.Instance.SaveUserConfig (); - // Scene.Refresh (); - // A31MusicModel.Refresh (); - // Application.RunOnMainThread (() => { - // Close (); - // UserMiddle.Init (); - // EquipmentPublicClass.CheckLinkRemote (2); - // }); - // } - // } - //} - // } else { + string stateCodeStr = revertObj.StateCode; string mes = ""; if (stateCodeStr == "NOTVERIFY") { @@ -616,13 +598,145 @@ private void SetMqttHost (string URL) { string pattern = @"(http|https)://(?<domain>[^(:|/]*)"; + Regex reg = new Regex (pattern, RegexOptions.IgnoreCase); Match m = reg.Match (URL); - string mResult = m.Groups ["domain"].Value; + string mResult = m.Value; if (!string.IsNullOrEmpty (mResult)) { - MainPage.RequestHttpsHostMqtt = "https://" + mResult; + MainPage.RequestHttpsHostMqtt = mResult; } } - // + + /// <summary> + /// 淇濆瓨鏁版嵁 骞跺姞杞介〉闈� + /// </summary> + /// <param name="revertRoomData"></param> + void SaveUserConfig (List<RegionInfoRes> revertRoomData) + { + UserConfig.Instance.SaveUserConfig (); + MainPage.LoginUser.LastTime = DateTime.Now; + if (UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) { + //UserConfig.Instance.HomeLists = revertRoomData; + MainPage.LoginUser.SaveUserInfo (); + //UserConfig.Instance.SaveUserConfig (); + Scene.Refresh (); + A31MusicModel.Refresh (); + Application.RunOnMainThread (() => { + Close (); + UserMiddle.Init (false, true); + EquipmentPublicClass.CheckLinkRemote (UserConfig.Instance.internetStatus); + }); + } else { + + Application.RunOnMainThread (() => { + UserMiddle.Init (false, true); + Close (); + }); + } + + } + + ///// <summary> + ///// 鏌ヨ褰撳墠浣忓畢 缃戝叧鍒楄〃 + ///// </summary> + //void GetNowHomeGateway (List<RegionInfoRes> revertRoomData) + //{ + + // var requestObj3 = new GetSingleHomeGatewayPaggerObj (); + // requestObj3.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString; + // requestObj3.ReqDto.HomeId = UserConfig.Instance.CurrentRegion.Id; + // requestObj3.ReqDto.PageSetting.Page = 1; + // requestObj3.ReqDto.PageSetting.PageSize = 999; + // string urlHead = MainPage.RequestHttpsHost; + // if (requestObj3.IsOtherAccountCtrl) { + // urlHead = UserConfig.Instance.MasterAccountRequestBaseUrl; + // requestObj3.ReqDto.LoginAccessToken = UserConfig.Instance.MasterAccountToken; + // } + + + // //var requestObj3 = new GatewayByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id }; + // var requestJson3 = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj3); + // var revertObj3 = MainPage.RequestHttps (API.GetSingleHomeGatewayPagger, requestJson3, urlHead); + // if (revertObj3.StateCode.ToUpper () == "SUCCESS") { + // var mGateRes = Newtonsoft.Json.JsonConvert.DeserializeObject<GetGatewayResult> (revertObj3.ResponseData.ToString ()); + // //var responseGatewayDataObj = mGateRes.PageData; + // UserConfig.Instance.GatewayList.AddRange (mGateRes.PageData); + // UserConfig.Instance.SaveUserConfig (); + // MainPage.LoginUser.LastTime = DateTime.Now; + // if (UserConfig.Instance.GatewayList.Count == 0) { + // Application.RunOnMainThread (() => { + // UserMiddle.Init (); + // Close (); + // }); + // return; + // } else { + // UserConfig.Instance.HomeLists = revertRoomData; + // MainPage.LoginUser.SaveUserInfo (); + // UserConfig.Instance.SaveUserConfig (); + // Scene.Refresh (); + // A31MusicModel.Refresh (); + // Application.RunOnMainThread (() => { + // Close (); + // UserMiddle.Init (); + // EquipmentPublicClass.CheckLinkRemote (2); + // }); + // } + // } else { + // Application.RunOnMainThread (() => { + // new Alert ("", ErrorCode.FailedGetGatewaysForHome, Language.StringByID (R.MyInternationalizationString.Close)).Show (); + // }); + + // } + + + //} + + ///// <summary> + ///// GetAllBindGatewarysPagger + ///// </summary> + ///// <param name="revertRoomData"></param> + //void GetAllBindGatewarysPagger (List<RegionInfoRes> revertRoomData) { + + // var gatewayListObj = new GetAllBindGatewarysPaggerObj (); + // gatewayListObj.ReqDto.LoginAccessToken = MainPage.LoginUser.LoginTokenString; + + // //var gatewayListObj = new GatewayListObj (); + // var gatewayListJson = Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListObj); + // var gatewayListRevertObj = MainPage.RequestHttps (API.GetAllBindGatewarysPagger, gatewayListJson); + // if (gatewayListRevertObj.StateCode.ToUpper () == "SUCCESS") { + // UserConfig.Instance.GatewayList.Clear (); + + // var mGateRes = Newtonsoft.Json.JsonConvert.DeserializeObject<AllBindGatewarysPaggerRes> (gatewayListRevertObj.ResponseData.ToString ()); + // //var responseGatewayDataObj = mGateRes.PageData; + // UserConfig.Instance.GatewayList.AddRange (mGateRes.PageData); + // UserConfig.Instance.SaveUserConfig (); + // MainPage.LoginUser.LastTime = DateTime.Now; + // if (UserConfig.Instance.GatewayList.Count == 0) { + // Application.RunOnMainThread (() => { + // UserMiddle.Init (); + // Close (); + // }); + // return; + // } else { + // UserConfig.Instance.HomeLists = revertRoomData; + // MainPage.LoginUser.SaveUserInfo (); + // UserConfig.Instance.SaveUserConfig (); + // Scene.Refresh (); + // A31MusicModel.Refresh (); + // Application.RunOnMainThread (() => { + // Close (); + // UserMiddle.Init (); + // EquipmentPublicClass.CheckLinkRemote (2); + // }); + // } + // } else { + // //GetAllBindGatewarysPagger 澶辫触鎻愮ず + // ShowGetAllBindGatewarysPaggerErrorInfo (gatewayListRevertObj.StateCode); + // } + //} + + + + } } \ No newline at end of file -- Gitblit v1.8.0