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