From f7063b6fb7b46e3612afb1c6bb426c94fb92593d Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期二, 10 一月 2023 14:44:32 +0800 Subject: [PATCH] 设备加载优化 --- HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs | 176 ++++++++++++++++++++---- HDL-ON_Android/Properties/AndroidManifest.xml | 2 HDL-ON_iOS/Info.plist | 4 HDL_ON/UI/UI2/2-Classification/FunctionPage.cs | 178 +++++++++++++++++-------- HDL_ON/Common/ApiUtlis.cs | 2 HDL_ON/Entity/DB_ResidenceData.cs | 21 ++ HDL_ON/UI/UI1-Login/LoginPage.cs | 8 HDL_ON/Entity/FunctionList.cs | 20 ++ 8 files changed, 306 insertions(+), 105 deletions(-) diff --git a/HDL-ON_Android/Properties/AndroidManifest.xml b/HDL-ON_Android/Properties/AndroidManifest.xml index 07451ac..0fafe5b 100644 --- a/HDL-ON_Android/Properties/AndroidManifest.xml +++ b/HDL-ON_Android/Properties/AndroidManifest.xml @@ -1,5 +1,5 @@ 锘�<?xml version="1.0" encoding="utf-8"?> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.6.3" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202301091"> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.6.3" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202301102"> <uses-sdk android:minSdkVersion="26" android:targetSdkVersion="29" /> <!--鍙嬬洘--> <!--<uses-sdk android:minSdkVersion="8"></uses-sdk>--> diff --git a/HDL-ON_iOS/Info.plist b/HDL-ON_iOS/Info.plist index 7d3e421..f3407e6 100644 --- a/HDL-ON_iOS/Info.plist +++ b/HDL-ON_iOS/Info.plist @@ -100,9 +100,9 @@ <key>UIStatusBarStyle</key> <string>UIStatusBarStyleLightContent</string> <key>CFBundleShortVersionString</key> - <string>1.6.302301091</string> + <string>1.6.302301102</string> <key>CFBundleVersion</key> - <string>1.6.301091</string> + <string>1.6.301102</string> <key>NSLocationWhenInUseUsageDescription</key> <string>Use geographic location to provide services such as weather</string> <key>NSAppleMusicUsageDescription</key> diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs index 7da5e6f..5ef13fc 100644 --- a/HDL_ON/Common/ApiUtlis.cs +++ b/HDL_ON/Common/ApiUtlis.cs @@ -229,7 +229,7 @@ { newFunction.AssembleStatus(); newFunction.SaveFunctionFile(); - FunctionList.List.IniFunctionList(newFunction.savePath); + FunctionList.List.IniFunctionList(newFunction.savePath,true); MainPage.Log($"============璁惧============{iiii++}"); } diff --git a/HDL_ON/Entity/DB_ResidenceData.cs b/HDL_ON/Entity/DB_ResidenceData.cs index 5030525..b41e1dc 100644 --- a/HDL_ON/Entity/DB_ResidenceData.cs +++ b/HDL_ON/Entity/DB_ResidenceData.cs @@ -298,16 +298,27 @@ var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); WirteResidenceInfo(ssd); } - /// <summary> - /// 褰撳墠閫夋嫨鐨勬ゼ灞� - /// </summary> - public string CurFoor = Language.StringByID(StringId.All); + + SpatialInfo _CurFloor; /// <summary> /// 褰撳墠閫夋嫨鐨勬ゼ灞� /// </summary> [Newtonsoft.Json.JsonIgnore] - public SpatialInfo CurFloor = new SpatialInfo() { roomId = "", roomName = Language.StringByID(StringId.All)}; + public SpatialInfo CurFloor { + get + { + if(_CurFloor == null || _CurFloor.roomName == "") + { + _CurFloor = new SpatialInfo() { roomId = "", roomName = Language.StringByID(StringId.All) }; + } + return _CurFloor; + } + set + { + _CurFloor = value; + } + } /// <summary> /// 鍒嗙被鐣岄潰鏄剧ず鐨勬ゼ灞� /// </summary> diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs index 450ef57..2999288 100644 --- a/HDL_ON/Entity/FunctionList.cs +++ b/HDL_ON/Entity/FunctionList.cs @@ -331,16 +331,24 @@ if (checkRepeat == true) { //妫�娴嬮噸澶� - for (int i = 0; i < Functions.Count; i++) + var same = Functions.FindAll((obj) => obj.deviceId == tempFunction.deviceId); + if(same!= null) { - if (Functions[i].deviceId == tempFunction.deviceId) + foreach(var sameTemp in same) { - //鍏堢Щ闄ゆ帀鍐嶅姞 - Functions.RemoveAt(i); - Functions.Add(tempFunction); - return; + Functions.Remove(sameTemp); } } + //for (int i = 0; i < Functions.Count; i++) + //{ + // if (Functions[i].deviceId == tempFunction.deviceId) + // { + // //鍏堢Щ闄ゆ帀鍐嶅姞 + // Functions.RemoveAt(i); + // Functions.Add(tempFunction); + // return; + // } + //} } Functions.Add(tempFunction); } diff --git a/HDL_ON/UI/UI1-Login/LoginPage.cs b/HDL_ON/UI/UI1-Login/LoginPage.cs index e960ea7..bec7b5e 100644 --- a/HDL_ON/UI/UI1-Login/LoginPage.cs +++ b/HDL_ON/UI/UI1-Login/LoginPage.cs @@ -221,13 +221,13 @@ //etAccount.Text = "support7@hdlautomation.com"; //etAccount.Text = "18570064522"; //etAccount.Text = "18718417827"; - etAccount.Text = "ablis-nn@yandex.ru"; + etAccount.Text = "18188019284"; //etAccount.Text = "13143792049"; //etAccount.Text = "13288623489";//缃楁檽涓� //etAccount.Text = "18244942707"; //etAccount.Text = "13143792049"; //etAccount.Text = "18688414428"; - etAccount.Text = "18244942707"; + //etAccount.Text = "18244942707"; } else { @@ -261,9 +261,9 @@ } b = !b; etPassword.Text = "123456"; - if(etAccount.Text == "ablis-nn@yandex.ru") + if(etAccount.Text == "18188019284") { - etPassword.Text = "07112001Ulyna"; + etPassword.Text = "CEZUJHSZ"; } else if(etAccount.Text == "13143792049") { diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs b/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs index 87341e4..5ba2bed 100644 --- a/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs +++ b/HDL_ON/UI/UI2/2-Classification/FunctionPage.cs @@ -215,70 +215,136 @@ #endregion } - + /// <summary> + /// 鏄剧ず鐨勮澶囩殑鎬绘暟 + /// </summary> + int showCount = 0; /// <summary> /// 鍔犺浇鍔熻兘row /// </summary> - void ShowFunctionRow(List<Function> showList) + void ShowFunctionRow(List<Function> showList, bool isAppend = false) { - functionListView.RemoveAll(); - foreach (var function in showList) - { - if(function.spk == SPK.SensorDryContact|| function.spk == SPK.SensorDryContact2) - { - continue; - } - if (function.spk == SPK.LightRGBW || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming) - { - var functionDiv = new FunctionControlZone(function) - { - Gravity = Gravity.CenterHorizontal, - Width = Application.GetRealWidth(343), - Height = Application.GetRealHeight(116), - Radius = (uint)Application.GetMinRealAverage(12), - BorderColor = 0x00FFFFFF, - BorderWidth = 1, - BackgroundColor = CSS_Color.MainBackgroundColor, - Tag = function.spk + function.sid - }; - functionDiv.LoadFunctionDiv(); - functionListView.AddChidren(functionDiv); - } - else if(function.spk == SPK.IpCam_Imou) - { - var functionDiv = new FunctionControlZone(function) - { - Gravity = Gravity.CenterHorizontal, - Width = Application.GetRealWidth(343), - Height = Application.GetRealHeight(96), - Radius = (uint)Application.GetMinRealAverage(12), - BorderColor = 0x00FFFFFF, - BorderWidth = 1, - BackgroundColor = CSS_Color.MainBackgroundColor, - Tag = function.spk + function.sid - }; - functionDiv.LoadFunctionDiv(); - functionListView.AddChidren(functionDiv); + var waitPage = new Loading(); + bodyView.AddChidren(waitPage); + waitPage.Start(""); - } - else + new System.Threading.Thread(() => + { + try { - var functionDiv = new FunctionControlZone(function) + Application.RunOnMainThread(() => { - Gravity = Gravity.CenterHorizontal, - Width = Application.GetRealWidth(343), - Height = Application.GetRealHeight(96), - Radius = (uint)Application.GetMinRealAverage(12), - BorderColor = 0x00FFFFFF, - BorderWidth = 1, - BackgroundColor = CSS_Color.MainBackgroundColor, - Tag = function.spk + function.sid - }; - functionDiv.LoadFunctionDiv(); - functionListView.AddChidren(functionDiv); + if (!isAppend) + { + showCount = 0; + functionListView.RemoveAll(); + } + int i = 0; + foreach (var function in showList) + { + i++; + if (i > 50) + { + break; + } + showCount++; + + if (function.spk == SPK.SensorDryContact || function.spk == SPK.SensorDryContact2) + { + continue; + } + if (function.spk == SPK.LightRGBW || function.spk == SPK.LightRGB || function.spk == SPK.LightDimming) + { + var functionDiv = new FunctionControlZone(function) + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(116), + Radius = (uint)Application.GetMinRealAverage(12), + BorderColor = 0x00FFFFFF, + BorderWidth = 1, + BackgroundColor = CSS_Color.MainBackgroundColor, + Tag = function.spk + function.sid + }; + functionDiv.LoadFunctionDiv(); + functionListView.AddChidren(functionDiv); + } + else if (function.spk == SPK.IpCam_Imou) + { + var functionDiv = new FunctionControlZone(function) + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(96), + Radius = (uint)Application.GetMinRealAverage(12), + BorderColor = 0x00FFFFFF, + BorderWidth = 1, + BackgroundColor = CSS_Color.MainBackgroundColor, + Tag = function.spk + function.sid + }; + functionDiv.LoadFunctionDiv(); + functionListView.AddChidren(functionDiv); + + } + else + { + var functionDiv = new FunctionControlZone(function) + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(96), + Radius = (uint)Application.GetMinRealAverage(12), + BorderColor = 0x00FFFFFF, + BorderWidth = 1, + BackgroundColor = CSS_Color.MainBackgroundColor, + Tag = function.spk + function.sid + }; + functionDiv.LoadFunctionDiv(); + functionListView.AddChidren(functionDiv); + } + functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(10) }); + } + if (showList.Count > showCount) + { + var btnAppend = new Button() + { + Height = Application.GetRealHeight(60), + TextAlignment = TextAlignment.Center, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.FirstLevelTitleColor, + Text = "鍔犺浇鏇村", + }; + if (Language.CurrentLanguage != "Chinese") + { + btnAppend.Text = "Load more"; + } + functionListView.AddChidren(btnAppend); + btnAppend.MouseUpEventHandler = (sender, e) => + { + btnAppend.RemoveFromParent(); + ShowFunctionRow(showList, true); + }; + } + + }); } - functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(10) }); - } + catch (Exception ex) + { + MainPage.Log("ShowFunctionRowError : " + ex.Message); + } + finally + { + Application.RunOnMainThread(() => + { + if (waitPage != null) + { + waitPage.RemoveFromParent(); + waitPage = null; + } + }); + } + }) + { IsBackground = true }.Start(); } diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs index c462573..c58d221 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs @@ -25,6 +25,10 @@ /// </summary> Button btnFloor; /// <summary> + /// 鍏ㄩ�夋寜閽� + /// </summary> + Button btnChooseAll; + /// <summary> /// 鍔熻兘鍒楄〃闆嗗悎鏄剧ず鍖哄煙 /// </summary> static VerticalScrolViewLayout functionListView; @@ -89,15 +93,46 @@ btnFloor = new Button() { X = btnFloorDownIcon.Right, - Y = Application.GetRealHeight(18), + //Y = Application.GetRealHeight(18), Width = Application.GetRealWidth(200), - Height = Application.GetMinRealAverage(16), + //Height = Application.GetMinRealAverage(16+18*2), TextColor = CSS_Color.FirstLevelTitleColor, TextSize = CSS_FontSize.PromptFontSize_FirstLevel, TextAlignment = TextAlignment.CenterLeft, Text = DB_ResidenceData.Instance.CurFloor.roomName, }; roomFloorChangeView.AddChidren(btnFloor); + + btnChooseAll = new Button() + { + X = Application.GetRealWidth(245), + Width = Application.GetRealWidth(109), + TextAlignment = TextAlignment.CenterRight, + TextSize = CSS_FontSize.TextFontSize, + TextColor = CSS_Color.FirstLevelTitleColor, + TextID = StringId.SelectedAll, + }; + if(sceneLishtList.Count>0) + { + btnChooseAll.TextID = StringId.Cancel; + } + roomFloorChangeView.AddChidren(btnChooseAll); + btnChooseAll.MouseUpEventHandler = (sender, e) => { + if (sceneLishtList.Count > 0) + { + sceneLishtList.Clear(); + btnChooseAll.TextID = StringId.SelectAll; + btnConfrim.IsSelected = false; + } + else + { + sceneLishtList.AddRange(lightList); + btnChooseAll.TextID = StringId.Cancel; + btnConfrim.IsSelected = true; + } + LoadLightRow(lightList); + }; + #endregion functionListView = new VerticalScrolViewLayout() @@ -157,44 +192,110 @@ } /// <summary> + /// 鏄剧ず鐨勮澶囩殑鎬绘暟 + /// </summary> + int showCount = 0; + + /// <summary> /// 鍔犺浇鍔熻兘row /// </summary> /// <param name="lightList"></param> - void LoadLightRow(List<Function> functions) + void LoadLightRow(List<Function> functions, bool isAppend = false) { - functionListView.RemoveAll(); + var waitPage = new Loading(); + bodyView.AddChidren(waitPage); + waitPage.Start(""); - foreach (var function in functions) + new System.Threading.Thread(() => { - var functionDiv = new LightRow(function) + try { - Gravity = Gravity.CenterHorizontal, - Width = Application.GetRealWidth(343), - Height = Application.GetRealHeight(62), - Radius = (uint)Application.GetMinRealAverage(12), - BorderColor = 0x00FFFFFF, - BorderWidth = 1, - BackgroundColor = CSS_Color.MainBackgroundColor, - Tag = function.spk + function.sid - }; + Application.RunOnMainThread(() => + { + if (!isAppend) + { + showCount = 0; + functionListView.RemoveAll(); + } + int i = 0; + foreach (var function in functions) + { + i++; + if (i > 100) + { + break; + } + showCount++; + var functionDiv = new LightRow(function) + { + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(62), + Radius = (uint)Application.GetMinRealAverage(12), + BorderColor = 0x00FFFFFF, + BorderWidth = 1, + BackgroundColor = CSS_Color.MainBackgroundColor, + Tag = function.spk + function.sid + }; - Action setAction = () => + Action setAction = () => + { + if (sceneLishtList.Count > 0) + { + btnConfrim.IsSelected = true; + } + else + { + btnConfrim.IsSelected = false; + } + }; + + functionDiv.LoadDiv(sceneLishtList, setAction); + functionListView.AddChidren(functionDiv); + + functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) }); + } + + if (functions.Count > showCount) + { + var btnAppend = new Button() + { + Height = Application.GetRealHeight(60), + TextAlignment = TextAlignment.Center, + TextSize = CSS_FontSize.SubheadingFontSize, + TextColor = CSS_Color.FirstLevelTitleColor, + Text = "鍔犺浇鏇村", + }; + if (Language.CurrentLanguage != "Chinese") + { + btnAppend.Text = "Load more"; + } + functionListView.AddChidren(btnAppend); + btnAppend.MouseUpEventHandler = (sender, e) => + { + btnAppend.RemoveFromParent(); + LoadLightRow(functions, true); + }; + } + }); + } + catch (Exception ex) { - if (sceneLishtList.Count > 0) + MainPage.Log("ShowFunctionRowError : " + ex.Message); + } + finally + { + Application.RunOnMainThread(() => { - btnConfrim.IsSelected = true; - } - else - { - btnConfrim.IsSelected = false; - } - }; - - functionDiv.LoadDiv(sceneLishtList,setAction); - functionListView.AddChidren(functionDiv); - - functionListView.AddChidren(new Button() { Height = Application.GetRealHeight(12) }); - } + if (waitPage != null) + { + waitPage.RemoveFromParent(); + waitPage = null; + } + }); + } + }) + { IsBackground = true }.Start(); } @@ -211,6 +312,21 @@ var form = new FloorRoomSelectPopupView(); form.ShowDeviceFunctionView(btnFloor, this.lightList, (selectId, listFunc) => { + btnChooseAll.MouseUpEventHandler = (sender2, e2) => { + if (sceneLishtList.Count > 0) + { + sceneLishtList.Clear(); + btnChooseAll.TextID = StringId.SelectAll; + btnConfrim.IsSelected = false; + } + else + { + sceneLishtList.AddRange(listFunc); + btnChooseAll.TextID = StringId.Cancel; + btnConfrim.IsSelected = true; + } + LoadLightRow(listFunc); + }; nowSelectId = selectId; //閲嶆柊鍔犺浇鐣岄潰 LoadLightRow(listFunc); -- Gitblit v1.8.0