wxr
2023-07-29 166c81e63cd1d0a1649823e4299daeaaf1ea0987
2.0bug修复
1个文件已添加
28个文件已修改
6502 ■■■■ 已修改文件
HDL-ON_Android/Application.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Language.ini 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Properties/AndroidManifest.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/Resource.designer.cs 5854 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Language.ini 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/ApiUtlis.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/HDLCommon.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/R.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/Control.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/Control_TcpClient.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Function/Function.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/HDL_ON.projitems 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI0-Public/PublicAssmebly.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI1-Login/LoginPage.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI1-Login/LoginPageBLL.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/2-Classification/RoomPage.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/InputPushText.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/ArmCenter/PushConfigPage.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/ChooseRoomPageBLL.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchP3EnergyPage.cs 307 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchP3Page.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/UnlockSettingFacePage.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/UnlockSettingPage.cs 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockAudioSetupPage.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockFaceUnlockTriggerSettingPage.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockUserManagerPage.cs 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/UserPage.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Application.cs
@@ -110,6 +110,7 @@
                //后台回到前台
                new HDL_ON.UI.AppUnlockPage().LoadPage();
            }
        }
HDL-ON_Android/Assets/Language.ini
@@ -670,7 +670,7 @@
683=The time is invalid
684=Length out of range
685=note: User management can only manage added users. If you need to add a new user, please go to the lock end for relevant operations.
686=Total
@@ -2016,6 +2016,7 @@
683=该时间无效
684=长度超出范围
685=注:用户管理仅可对已添加用户进行管理。如需添加新用户,请前往锁端进行相关操作。
686=总计
@@ -3363,6 +3364,7 @@
683=The time is invalid
684=Length out of range
685=note: User management can only manage added users. If you need to add a new user, please go to the lock end for relevant operations.
686=Total
@@ -4703,6 +4705,7 @@
683=The time is invalid
684=Length out of range
685=note: User management can only manage added users. If you need to add a new user, please go to the lock end for relevant operations.
686=Total
@@ -6030,6 +6033,7 @@
683=The time is invalid
684=Length out of range
685=note: User management can only manage added users. If you need to add a new user, please go to the lock end for relevant operations.
686=Total
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="2.0.0" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202307261">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="2.0.0" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202307281">
    <uses-sdk android:minSdkVersion="26" android:targetSdkVersion="29" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <!--友盟-->
HDL-ON_Android/Resources/Resource.designer.cs
Diff too large
HDL-ON_iOS/Resources/Language.ini
@@ -670,7 +670,7 @@
683=The time is invalid
684=Length out of range
685=note: User management can only manage added users. If you need to add a new user, please go to the lock end for relevant operations.
686=Total
@@ -2016,6 +2016,7 @@
683=该时间无效
684=长度超出范围
685=注:用户管理仅可对已添加用户进行管理。如需添加新用户,请前往锁端进行相关操作。
686=总计
@@ -3363,6 +3364,7 @@
683=The time is invalid
684=Length out of range
685=note: User management can only manage added users. If you need to add a new user, please go to the lock end for relevant operations.
686=Total
@@ -4703,6 +4705,7 @@
683=The time is invalid
684=Length out of range
685=note: User management can only manage added users. If you need to add a new user, please go to the lock end for relevant operations.
686=Total
@@ -6030,6 +6033,7 @@
683=The time is invalid
684=Length out of range
685=note: User management can only manage added users. If you need to add a new user, please go to the lock end for relevant operations.
686=Total
HDL_ON/Common/ApiUtlis.cs
@@ -106,8 +106,16 @@
                {
                    if (waitPage != null)
                    {
                        waitPage.RemoveFromParent();
                        waitPage = null;
                        Application.RunOnMainThread(() =>
                        {
                            try
                            {
                                waitPage.Hide();
                                waitPage.RemoveFromParent();
                                waitPage = null;
                            }
                            catch { }
                        });
                    }
                    MainPage.Log($"刷新token失败");
                    return;
@@ -119,8 +127,16 @@
                {
                    if (waitPage != null)
                    {
                        waitPage.RemoveFromParent();
                        waitPage = null;
                        Application.RunOnMainThread(() =>
                        {
                            try
                            {
                                waitPage.Hide();
                                waitPage.RemoveFromParent();
                                waitPage = null;
                            }
                            catch { }
                        });
                    }
                    MainPage.Log($"刷新住宅信息失败");
                    return;
@@ -132,8 +148,16 @@
                {
                    if (waitPage != null)
                    {
                        waitPage.RemoveFromParent();
                        waitPage = null;
                        Application.RunOnMainThread(() =>
                        {
                            try
                            {
                                waitPage.Hide();
                                waitPage.RemoveFromParent();
                                waitPage = null;
                            }
                            catch { }
                        });
                    }
                    MainPage.Log($"刷新个人信息失败");
                    return;
HDL_ON/Common/HDLCommon.cs
@@ -258,7 +258,7 @@
        {
            try
            {
                MainPage.Log($"接收到推送.\r\n{Newtonsoft.Json.JsonConvert.SerializeObject(jpushMessageInfo).ToString()}");
                Console.WriteLine($"接收到推送,,,,.{Newtonsoft.Json.JsonConvert.SerializeObject(jpushMessageInfo).ToString()}");
                //Extras为空不处理
                if (string.IsNullOrEmpty(jpushMessageInfo.Extras)) return;
@@ -357,6 +357,9 @@
                            //萤石猫眼
                            eSVideoInfo.Lc_AccessToken = json["subToken"].ToString();//"子账号token
                            eSVideoInfo.DeviceSerial = json["devSerial"].ToString();//设备序列号
                            eSVideoInfo.Lc_DeviceId = json["deviceId"].ToString();
                            eSVideoInfo.spk = json["spk"].ToString();
                            eSVideoInfo.HomeId = jpushMessageInfo.HomeId;
                            if (json.ContainsKey("msgId") && !string.IsNullOrEmpty(json["msgId"].ToString()))
                            {
HDL_ON/Common/R.cs
@@ -9,8 +9,10 @@
        /// <summary>
        /// 总计
        /// </summary>
        public const int Total = 686;
        /// <summary>
        /// 注:用户管理仅可对已添加用户进行管理。如需添加新用户,请前往锁端进行相关操作。
        /// </summary>
HDL_ON/DAL/DriverLayer/Control.cs
@@ -335,6 +335,7 @@
        /// </summary>
        public void LoginGateway()
        {
            return;//tcp控制存在问题,但是先不用tcp控制了,要经过测试先  2023-07-29 10:14:32
            if (loginGatewayThread == null)
            {
                loginGatewayThread = new System.Threading.Thread(() =>
HDL_ON/DAL/DriverLayer/Control_TcpClient.cs
@@ -224,6 +224,7 @@
        /// <param name="bytes">需要发送的字节</param>
        public void SendMessage(byte[] bytes)
        {
            return;
#if __IOS__
           
#endif
@@ -269,6 +270,7 @@
        private DateTime heartBeatTime;
        public void HeartBeat()
        {
            return;
            lock (lockObj)
            {
                if (heartBeatThread == null)
HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
@@ -284,8 +284,20 @@
                        bundle.PutString("HomeId", mESVideoInfo.HomeId);
                        bundle.PutString("DeviceSerial", mESVideoInfo.DeviceSerial);
                        intent.PutExtras(bundle);
                        intent.SetComponent(new Android.Content.ComponentName(Shared.Application.Activity, "com.videogo.MainActivity"));
                        Shared.Application.Activity.StartActivity(intent);
                        //获取萤石token,初始化sdk
                        var result = new HttpServerRequest().EZGetChildToken();
                        if (result.Code == StateCode.SUCCESS)
                        {
                            var ezChildAccessToken = result.Data.ToString();
                            Com.Videogo.Hdl.HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, "1aa98a90489b4838b966b57018b4b04b", 1, DB_ResidenceData.Instance.CurrentRegion.id);
                            Com.Videogo.Hdl.HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,
                                mESVideoInfo.Lc_DeviceId, mESVideoInfo.DeviceSerial, mESVideoInfo.spk, mESVideoInfo.msgId);
                        }
                        //intent.SetComponent(new Android.Content.ComponentName(Shared.Application.Activity, "com.videogo.MainActivity"));
                        //Shared.Application.Activity.StartActivity(intent);
                    }
                });
                return;
HDL_ON/Entity/Function/Function.cs
@@ -730,9 +730,9 @@
        /// <summary>
        /// 保存房间绑定信息
        /// </summary>
        public void UpdataRoomIds()
        public async void UpdataRoomIds()
        {
            new System.Threading.Thread(() =>
            new System.Threading.Thread( () =>
            {
                var pack = ApiUtlis.Ins.HttpRequest.UpdataDevcieBindRoomInfo(this);
                //直接保存本地,
HDL_ON/HDL_ON.projitems
@@ -563,6 +563,7 @@
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\VideoDoorLock\VideoDoorlockBatteryManagementPage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\2-Classification\SeriesFunctionListPage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\AirSwitchP3Page.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Electrical\AirSwitchP3EnergyPage.cs" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" />
HDL_ON/UI/UI0-Public/PublicAssmebly.cs
@@ -13,7 +13,7 @@
    {
        public Button btnTip;
        public int entryMaxLength = 40;
        public int entryMaxLength = 20;
        //public Action entrylistener;
        void EditParaterEvent(Button btnConfirm, int errorId_IsNullOrEmpty, int errorId_ContainsPar, List<string> list, EditText editText, Action<string> callBackAction,
@@ -155,7 +155,7 @@
            etParater.TextChangeEventHandler = (sender, e) =>
            {
                if (System.Text.Encoding.Default.GetBytes(etParater.Text).Length > entryMaxLength)
                if (System.Text.Encoding.UTF8.GetBytes(etParater.Text).Length > entryMaxLength)
                {
                    etParater.Text = etParater.Text.Remove(etParater.Text.Length-1);
HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -1953,6 +1953,13 @@
        /// <returns></returns>
        private bool CheckPrivacyPolicy()
        {
#if DEBUG
            return true;
#endif
            if(HttpUtil.GlobalRequestHttpsHost == "https://test-gz.hdlcontrol.com")
            {
                return true;
            }
            if (isAgreePrivacyPolicy == false)
            {
                //请同意《用户协议》和《隐私政策》
HDL_ON/UI/UI1-Login/LoginPageBLL.cs
@@ -730,6 +730,11 @@
                //调用验证码登录接口
                loginResult = pm.LoginValidCode(account, password);
            }
            if(loginResult == null)
            {
                return false;
            }
            if (loginResult.Code == StateCode.SUCCESS)
            {
                var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<UserLoginRes>(loginResult.Data.ToString());
HDL_ON/UI/UI2/2-Classification/RoomPage.cs
@@ -36,6 +36,12 @@
        #endregion
        public override void RemoveFromParent()
        {
            base.RemoveFromParent();
            bodyView = null;
        }
        /// <summary>
        /// 
        /// </summary>
@@ -67,7 +73,8 @@
                {
                    bodyView.RemoveAll();
                    LoadPage();
                }catch (Exception ex)
                }
                catch (Exception ex)
                {
                    MainPage.Log($"RoomPage ReloadPage error :\r\n {ex.Message}");
                }
HDL_ON/UI/UI2/3-Intelligence/Automation/InputPushText.cs
@@ -69,11 +69,19 @@
            appPush.frameLayout.Radius = (uint)Application.GetRealHeight(12);
            appPush.btnText.TextID = StringId.apptuisong;
            appPush.btnText.X = Application.GetRealWidth(12);
            if (MainPage.NoLoginMode)
            {
                appPush.btnNextIcon.Visible = false;
            }
            viewLayout.AddChidren(appPush.FLayoutView());
            //定义一个局部账号列表用来记录选中数据;
            List<string> selectedAccountList = new List<string>();
            appPush.btnClick.MouseUpEventHandler += (sender, e) =>
            {
                if (MainPage.NoLoginMode)
                {
                    return;
                }
                var userList = new List<HDL_ON.Entity.ResidenceMemberInfo>();
                Loading loading = new Loading();
                this.AddChidren(loading);
HDL_ON/UI/UI2/FuntionControlView/ArmCenter/PushConfigPage.cs
@@ -69,11 +69,20 @@
            appPush.frameLayout.Radius = (uint)Application.GetRealHeight(12);
            appPush.btnText.TextID = StringId.apptuisong;
            appPush.btnText.X = Application.GetRealWidth(12);
            if (MainPage.NoLoginMode)
            {
                appPush.btnNextIcon.Visible = false;
            }
            viewLayout.AddChidren(appPush.FLayoutView(false));
            //定义一个局部账号列表用来记录选中数据;
            List<string> selectedAccountList = new List<string>();
            appPush.btnClick.MouseUpEventHandler += (sender, e) =>
            {
                if (MainPage.NoLoginMode)
                {
                    return;
                }
                var userList = new List<HDL_ON.Entity.ResidenceMemberInfo>();
                Loading loading = new Loading();
                this.AddChidren(loading);
HDL_ON/UI/UI2/FuntionControlView/ChooseRoomPageBLL.cs
@@ -60,9 +60,44 @@
                        }
                    }
                }
                var waitPage = new Loading();
                bodyView.AddChidren(waitPage);
                new System.Threading.Thread(async() =>
                {
                    //function.UpdataRoomIds();
                    var pack = ApiUtlis.Ins.HttpRequest.UpdataDevcieBindRoomInfo(function);
                    //直接保存本地,
                    function.SaveFunctionFile();
                    if (pack.Code == StateCode.SUCCESS)
                    {
                        if (UI.RoomPage.bodyView != null)
                        {
                            Application.RunOnMainThread(() =>
                            {
                                UI.RoomPage.bodyView.ReLoadPage();
                            });
                        }
                        Entity.SpatialInfo.CurrentSpatial.InitRoomListFunctions();
                        try
                        {
                            //初始化住宅所有房间功能数据
                            foreach (var r in Entity.SpatialInfo.CurrentSpatial.RoomList)
                            {
                                Entity.SpatialInfo.CurrentSpatial.InitRoomFuntion(r);
                            }
                        }
                        catch (Exception ex)
                        {
                            MainPage.Log($"Init room function error : {ex.Message}");
                        }
                    }
                    else
                    {
                        IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
                    }
                function.UpdataRoomIds();
                Entity.SpatialInfo.CurrentSpatial.InitRoomListFunctions();
                })
                { IsBackground = true }.Start();
            };
        }
HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchP3EnergyPage.cs
New file
@@ -0,0 +1,307 @@
using System;
using System.Collections.Generic;
using HDL_ON.DAL.Server;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
    /// <summary>
    /// 三相空开能源界面
    /// </summary>
    public class AirSwitchP3EnergyPage : FrameLayout
    {
        static AirSwitchP3EnergyPage bodyView;
        /// <summary>
        /// 总功耗-饼图
        /// </summary>
        MyEchartsViewOn myEchartsView_Pie;
        /// <summary>
        /// 曲线图数据string
        /// </summary>
        EchartsOption_BrokenLine brokenLine;
        /// <summary>
        /// 插查询的能源列表
        /// </summary>
        List<Function> queryList = new List<Function>();
        /// <summary>
        /// 查询条件
        /// hour、week、month
        /// </summary>
        string curQueryType = "hour";
        /// <summary>
        /// 能源列表区域
        /// </summary>
        FrameLayout energyListView;
        /// <summary>
        /// 历史数据图表
        /// </summary>
        MyEchartsViewOn myEchartsView_Line;
        //5C62FE
        Function device;
        /// <summary>
        /// 主页
        /// </summary>
        public AirSwitchP3EnergyPage(Function function)
        {
            bodyView = this;
            device = function;
        }
        /// <summary>
        ///
        /// </summary>
        public void LoadPage()
        {
            new TopViewDiv(bodyView, Language.StringByID(StringId.EnergyMonitoring)).LoadTopView(0xFFF7F7F7);
            bodyView.BackgroundColor = 0xFFF5F7FA;
            var contentView = new VerticalScrolViewLayout()
            {
                Y = Application.GetRealHeight(64),
                Height = Application.GetRealHeight(667-64),
                BackgroundColor = 0xFFF5F7FA,
            };
            bodyView.AddChidren(contentView);
            contentView.AddChidren(new Button()
            {
                Height = Application.GetRealHeight(12),
            });
            brokenLine = new EchartsOption_BrokenLine();
            #region 选择数据日期范围
            var showDataTypeView = new FrameLayout()
            {
                X = Application.GetRealWidth(143),
                Y = Application.GetRealHeight(12),
                Width = Application.GetRealWidth(216),
                Height = Application.GetRealHeight(27),
                //BackgroundImagePath = "FunctionIcon/EnvironmentalScience/SensorHistoryBg1.png",
            };
            contentView.AddChidren(showDataTypeView);
            var btnShowHistroyData_Day = new Button()
            {
                Width = Application.GetRealWidth(54),
                Height = Application.GetRealHeight(27),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.PromptingColor1,
                SelectedTextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                IsSelected = true,
                TextID = StringId.day,
                SelectedBackgroundColor = 0x1F5C62FE,
                BackgroundColor = 0x1F5C62FE,
                BorderColor = CSS_Color.MainColor,
                BorderWidth = 2,
            };
            showDataTypeView.AddChidren(btnShowHistroyData_Day);
            btnShowHistroyData_Day.SetCornerWithSameRadius((uint)Application.GetRealHeight(6), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerBottomLeft);
            var btnShowHistroyData_Month = new Button()
            {
                X = Application.GetRealWidth(54),
                Width = Application.GetRealWidth(54),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.PromptingColor1,
                SelectedTextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                TextID = StringId.month,
                BorderWidth = 1,
                BorderColor = CSS_Color.PromptingColor1,
            };
            showDataTypeView.AddChidren(btnShowHistroyData_Month);
            var btnShowHistroyData_Year = new Button()
            {
                X = Application.GetRealWidth(54 * 2),
                Width = Application.GetRealWidth(54),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.PromptingColor1,
                SelectedTextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                TextID = StringId.Years,
                BorderWidth = 1,
                BorderColor = CSS_Color.PromptingColor1,
            };
            showDataTypeView.AddChidren(btnShowHistroyData_Year);
            var btnShowHistroyData_Total = new Button()
            {
                X = Application.GetRealWidth(54 * 3),
                Width = Application.GetRealWidth(54),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS_Color.PromptingColor1,
                SelectedTextColor = CSS_Color.MainColor,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                TextID = StringId.Total,
                BorderWidth = 1,
                BorderColor = CSS_Color.PromptingColor1,
            };
            showDataTypeView.AddChidren(btnShowHistroyData_Total);
            btnShowHistroyData_Day.MouseUpEventHandler = (sender, e) =>
            {
                //showDataTypeView.BackgroundImagePath = "FunctionIcon/EnvironmentalScience/SensorHistoryBg1.png";
                //btnShowHistroyData_Day.IsSelected = true;
                //btnShowHistroyData_Year.IsSelected = false;
                //btnShowHistroyData_Month.IsSelected = false;
                //curQueryType = "hour";
                //brokenLine.YvalueText = "";
                //foreach (var enery in queryList)
                //{
                //    LoadMothed_GetHistoryData(enery, false);
                //}
            };
            btnShowHistroyData_Month.MouseUpEventHandler = (sender, e) =>
            {
                //showDataTypeView.BackgroundImagePath = "FunctionIcon/EnvironmentalScience/SensorHistoryBg2.png";
                //btnShowHistroyData_Day.IsSelected = false;
                //btnShowHistroyData_Year.IsSelected = false;
                //btnShowHistroyData_Month.IsSelected = true;
                //curQueryType = "week";
                //brokenLine.YvalueText = "";
                //foreach (var enery in queryList)
                //{
                //    LoadMothed_GetHistoryData(enery, false);
                //}
            };
            btnShowHistroyData_Year.MouseUpEventHandler = (sender, e) =>
            {
                //showDataTypeView.BackgroundImagePath = "FunctionIcon/EnvironmentalScience/SensorHistoryBg3.png";
                //btnShowHistroyData_Day.IsSelected = false;
                //btnShowHistroyData_Year.IsSelected = true;
                //btnShowHistroyData_Month.IsSelected = false;
                //curQueryType = "month";
                //brokenLine.YvalueText = "";
                //foreach (var enery in queryList)
                //{
                //    LoadMothed_GetHistoryData(enery, false);
                //}
            };
            #endregion
            contentView.AddChidren(new Button()
            {
                Height = Application.GetRealHeight(12),
            });
            var historyDataView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(343),
                Height = Application.GetRealWidth(330),
            };
            contentView.AddChidren(historyDataView);
            myEchartsView_Line = new MyEchartsViewOn()
            {
                Y = Application.GetRealWidth(10),
                Height = Application.GetRealWidth(280),
            };
            historyDataView.AddChidren(myEchartsView_Line);
            //EnergyRow(energy, energyListView, index);
            new System.Threading.Thread(() =>
                {
                    Control.Ins.SendReadCommand(device);
                })
                { IsBackground = true }.Start();
        }
        /// <summary>
        /// 读取历史数据
        /// </summary>
        void LoadMothed_GetHistoryData()
        {
            var loadPage = new Loading()
            {
                LodingBackgroundColor = 0x88888888,
            };
            bodyView.AddChidren(loadPage);
            new System.Threading.Thread(() =>
            {
                try
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Start(Language.StringByID(StringId.PleaseWait));
                    });
                    var sensorType = device.spk.Split(".")[1];
                    var revertObj = new HttpServerRequest().GetSensorHistory(curQueryType, device.deviceId, "total_electricity");
                    if (revertObj != null)
                    {
                        if (revertObj.Code == StateCode.SUCCESS)
                        {
                            var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<EnvironmentalSensorHistor>>(revertObj.Data.ToString());
                            List<string> vs = new List<string>();
                            if (brokenLine.YvalueText == "")
                            {
                                foreach (var data in revertData)
                                {
                                    vs.Add(data.fieldName);
                                }
                                brokenLine.InitXdataText(vs);
                            }
                            if (device.GetAttribute("ydata") == null)
                            {
                                device.attributes.Add(new FunctionAttributes() { key = "ydata" });
                            }
                            device.SetAttrState("ydata", brokenLine.InitYdataText(device.name, revertData, device.GetAttrState("color")) + ",");
                        }
                    }
                    brokenLine.yTitle = Language.StringByID(StringId.EnergyConsumption) + "(kW)";
                    brokenLine.xTitle = Language.StringByID(StringId.timeMode);
                    if (curQueryType != "hour")
                    {
                        brokenLine.xTitle = Language.StringByID(StringId.Date);
                    }
                    var opString = brokenLine.InitOption();
                    Application.RunOnMainThread(() =>
                    {
                        myEchartsView_Line.ShowWithOption(opString);
                    });
                }
                catch (Exception ex)
                {
                    MainPage.Log($"sensor history error : {ex.Message}");
                }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        loadPage.Hide();
                    });
                }
            })
            { IsBackground = true }.Start();
        }
    }
}
HDL_ON/UI/UI2/FuntionControlView/Electrical/AirSwitchP3Page.cs
@@ -183,7 +183,7 @@
                controlView.AddChidren(btnEnergyText);
                EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
                    var skipView = new EnergyMainPage();
                    var skipView = new AirSwitchP3EnergyPage(function);
                    MainPage.BasePageView.AddChidren(skipView);
                    skipView.LoadPage();
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs
@@ -187,7 +187,7 @@
            EZSDK.IOS.EZSDK.SharedInstance().PlayWithDeviceSerial(deviceSerial, deviceId, spk, msgId);
#else
            HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk,"");
            HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk,msgId);
#endif
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/UnlockSettingFacePage.cs
@@ -135,6 +135,10 @@
                            {
                                if (!string.IsNullOrEmpty(pack.message))
                                {
                                    if (string.IsNullOrEmpty(pack.message))
                                    {
                                        pack.message = Language.StringByID(StringId.OperationFailed);
                                    }
                                    var tip = new Tip()
                                    {
                                        MaxWidth = Application.GetRealWidth(300),
@@ -184,6 +188,10 @@
                        {
                            if (!string.IsNullOrEmpty(pack.message))
                            {
                                if (string.IsNullOrEmpty(pack.message))
                                {
                                    pack.message = Language.StringByID(StringId.OperationFailed);
                                }
                                var tip = new Tip()
                                {
                                    MaxWidth = Application.GetRealWidth(300),
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/UnlockSettingPage.cs
@@ -338,6 +338,10 @@
                        {
                            if (!string.IsNullOrEmpty(pack.message))
                            {
                                if (string.IsNullOrEmpty(pack.message))
                                {
                                    pack.message = Language.StringByID(StringId.OperationFailed);
                                }
                                var tip = new Tip()
                                {
                                    MaxWidth = Application.GetRealWidth(300),
@@ -366,17 +370,18 @@
                        //失败提示
                        Application.RunOnMainThread(() =>
                        {
                            if (!string.IsNullOrEmpty(pack.message))
                            if (string.IsNullOrEmpty(pack.message))
                            {
                                var tip = new Tip()
                                {
                                    MaxWidth = Application.GetRealWidth(300),
                                    Text = $"{pack.message}({pack.Code})",
                                    CloseTime = 3,
                                    Direction = AMPopTipDirection.None
                                };
                                tip.Show(MainPage.BaseView);
                                pack.message = Language.StringByID(StringId.OperationFailed);
                            }
                            var tip = new Tip()
                            {
                                MaxWidth = Application.GetRealWidth(300),
                                Text = $"{pack.message}({pack.Code})",
                                CloseTime = 3,
                                Direction = AMPopTipDirection.None
                            };
                            tip.Show(MainPage.BaseView);
                        });
                    }
                    #endregion
@@ -403,17 +408,18 @@
                        //失败提示
                        Application.RunOnMainThread(() =>
                        {
                            if (!string.IsNullOrEmpty(pack.message))
                            if (string.IsNullOrEmpty(pack.message))
                            {
                                var tip = new Tip()
                                {
                                    MaxWidth = Application.GetRealWidth(300),
                                    Text = $"{pack.message}({pack.Code})",
                                    CloseTime = 3,
                                    Direction = AMPopTipDirection.None
                                };
                                tip.Show(MainPage.BaseView);
                                pack.message = Language.StringByID(StringId.OperationFailed);
                            }
                            var tip = new Tip()
                            {
                                MaxWidth = Application.GetRealWidth(300),
                                Text = $"{pack.message}({pack.Code})",
                                CloseTime = 3,
                                Direction = AMPopTipDirection.None
                            };
                            tip.Show(MainPage.BaseView);
                        });
                    }
                    #endregion
@@ -436,7 +442,11 @@
                        //失败提示
                        Application.RunOnMainThread(() =>
                        {
                            if (!string.IsNullOrEmpty(pack.message))
                            if (string.IsNullOrEmpty(pack.message))
                            {
                                pack.message = Language.StringByID(StringId.OperationFailed);
                            }
                            {
                                var tip = new Tip()
                                {
@@ -493,7 +503,11 @@
                            //失败提示
                            Application.RunOnMainThread(() =>
                            {
                                if (!string.IsNullOrEmpty(pack.message))
                                if (string.IsNullOrEmpty(pack.message))
                                {
                                    pack.message = Language.StringByID(StringId.OperationFailed);
                                }
                                {
                                    var tip = new Tip()
                                    {
@@ -545,7 +559,11 @@
                            //失败提示
                            Application.RunOnMainThread(() =>
                            {
                                if (!string.IsNullOrEmpty(pack.message))
                                if (string.IsNullOrEmpty(pack.message))
                                {
                                    pack.message = Language.StringByID(StringId.OperationFailed);
                                }
                                {
                                    var tip = new Tip()
                                    {
@@ -599,7 +617,11 @@
                            //失败提示
                            Application.RunOnMainThread(() =>
                            {
                                if (!string.IsNullOrEmpty(pack.message))
                                if (string.IsNullOrEmpty(pack.message))
                                {
                                    pack.message = Language.StringByID(StringId.OperationFailed);
                                }
                                {
                                    var tip = new Tip()
                                    {
@@ -652,7 +674,11 @@
                            //失败提示
                            Application.RunOnMainThread(() =>
                            {
                                if (!string.IsNullOrEmpty(pack.message))
                                if (string.IsNullOrEmpty(pack.message))
                                {
                                    pack.message = Language.StringByID(StringId.OperationFailed);
                                }
                                {
                                    var tip = new Tip()
                                    {
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockAudioSetupPage.cs
@@ -175,7 +175,11 @@
                        //失败提示
                        Application.RunOnMainThread(() =>
                        {
                            if (!string.IsNullOrEmpty(pack.message))
                            if (string.IsNullOrEmpty(pack.message))
                            {
                                pack.message = Language.StringByID(StringId.OperationFailed);
                            }
                            {
                                var tip = new Tip()
                                {
@@ -227,7 +231,10 @@
                        //失败提示
                        Application.RunOnMainThread(() =>
                        {
                            if (!string.IsNullOrEmpty(pack.message))
                            if (string.IsNullOrEmpty(pack.message))
                            {
                                pack.message = Language.StringByID(StringId.OperationFailed);
                            }
                            {
                                var tip = new Tip()
                                {
@@ -547,7 +554,10 @@
                                //失败提示
                                Application.RunOnMainThread(() =>
                                {
                                    if (!string.IsNullOrEmpty(pack.message))
                                    if (string.IsNullOrEmpty(pack.message))
                                    {
                                        pack.message = Language.StringByID(StringId.OperationFailed);
                                    }
                                    {
                                        var tip = new Tip()
                                        {
@@ -639,7 +649,10 @@
                                //失败提示
                                Application.RunOnMainThread(() =>
                                {
                                    if (!string.IsNullOrEmpty(pack.message))
                                    if (string.IsNullOrEmpty(pack.message))
                                    {
                                        pack.message = Language.StringByID(StringId.OperationFailed);
                                    }
                                    {
                                        var tip = new Tip()
                                        {
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockFaceUnlockTriggerSettingPage.cs
@@ -146,7 +146,10 @@
                            //失败提示
                            Application.RunOnMainThread(() =>
                            {
                                if (!string.IsNullOrEmpty(pack.message))
                                if (string.IsNullOrEmpty(pack.message))
                                {
                                    pack.message = Language.StringByID(StringId.OperationFailed);
                                }
                                {
                                    var tip = new Tip()
                                    {
@@ -212,7 +215,10 @@
                            //失败提示
                            Application.RunOnMainThread(() =>
                            {
                                if (!string.IsNullOrEmpty(pack.message))
                                if (string.IsNullOrEmpty(pack.message))
                                {
                                    pack.message = Language.StringByID(StringId.OperationFailed);
                                }
                                {
                                    var tip = new Tip()
                                    {
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorlockUserManagerPage.cs
@@ -24,7 +24,6 @@
        VideoDoorlockUser doorlockUser;
        public Action delCallBackAction;
        Loading waitPage;
        public VideoDoorlockUserManagerPage(Function function,VideoDoorlockUser user)
        {
@@ -32,9 +31,7 @@
            device = function;
            doorlockUser = user;
            BackgroundColor = CSS_Color.BackgroundColor;
            waitPage = new Loading();
            bodyView.AddChidren(waitPage);
            waitPage.Hide();
        }
        public void LoadPage()
@@ -115,7 +112,7 @@
                    {
                        return;
                    }
                    if (System.Text.Encoding.Default.GetBytes(str).Length > 20)
                    if (System.Text.Encoding.UTF8.GetBytes(str).Length > 20)
                    {
                        new Tip()
                        {
@@ -125,7 +122,9 @@
                        }.Show(bodyView);
                        return;
                    }
                    var waitPage = new Loading();
                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
                    bodyView.AddChidren(waitPage);
                    new System.Threading.Thread(() =>
                    {
                        try
@@ -143,7 +142,10 @@
                                //失败提示
                                Application.RunOnMainThread(() =>
                                {
                                    if (!string.IsNullOrEmpty(pack.message))
                                    if (string.IsNullOrEmpty(pack.message))
                                    {
                                        pack.message = Language.StringByID(StringId.OperationFailed);
                                    }
                                    {
                                        var tip = new Tip()
                                        {
@@ -166,13 +168,18 @@
                            Application.RunOnMainThread(() =>
                            {
                                waitPage.Hide();
                                if(waitPage!= null)
                                {
                                    waitPage.RemoveFromParent();
                                    waitPage = null;
                                }
                            });
                        }
                    })
                    { IsBackground = true }.Start();
                };
                var pa = new PublicAssmebly();
                pa.entryMaxLength = 30;
                pa.entryMaxLength = 20;
                pa.LoadDialog_EditParater(StringId.ChangeName, "", callBack, StringId.UesrNameCannotBeEmpty, 0, new List<string>());
            };
            btnUserName.MouseUpEventHandler = eventHandler;
@@ -330,7 +337,9 @@
                    fingerprintView.AddChidren(btnClearFingerprints);
                    btnClearFingerprints.MouseUpEventHandler = (sender, e) =>
                    {
                        var waitPage = new Loading();
                        waitPage.Start(Language.StringByID(StringId.PleaseWait));
                    bodyView.AddChidren(waitPage);
                        new System.Threading.Thread(() =>
                        {
                            try
@@ -371,6 +380,11 @@
                                Application.RunOnMainThread(() =>
                                {
                                    waitPage.Hide();
                                    if (waitPage != null)
                                    {
                                        waitPage.RemoveFromParent();
                                        waitPage = null;
                                    }
                                });
                            }
                        })
@@ -440,7 +454,9 @@
                    digitalPasswordView.AddChidren(btnClearDigitalPassword);
                    btnClearDigitalPassword.MouseUpEventHandler = (sender, e) =>
                    {
                        var waitPage = new Loading();
                        waitPage.Start(Language.StringByID(StringId.PleaseWait));
                    bodyView.AddChidren(waitPage);
                        new System.Threading.Thread(() =>
                        {
                            try
@@ -481,6 +497,11 @@
                                Application.RunOnMainThread(() =>
                                {
                                    waitPage.Hide();
                                    if (waitPage != null)
                                    {
                                        waitPage.RemoveFromParent();
                                        waitPage = null;
                                    }
                                });
                            }
                        })
@@ -549,7 +570,9 @@
                    };
                    nfcView.AddChidren(btnClearNfc);
                    btnClearNfc.MouseUpEventHandler = (sender, e) => {
                        var waitPage = new Loading();
                        waitPage.Start(Language.StringByID(StringId.PleaseWait));
                    bodyView.AddChidren(waitPage);
                        new System.Threading.Thread(() =>
                        {
                            try
@@ -589,6 +612,11 @@
                                Application.RunOnMainThread(() =>
                                {
                                    waitPage.Hide();
                                    if (waitPage != null)
                                    {
                                        waitPage.RemoveFromParent();
                                        waitPage = null;
                                    }
                                });
                            }
                        })
@@ -657,7 +685,9 @@
                    };
                    faceView.AddChidren(btnClearFace);
                    btnClearFace.MouseUpEventHandler = (sender, e) => {
                        var waitPage = new Loading();
                        waitPage.Start(Language.StringByID(StringId.PleaseWait));
                    bodyView.AddChidren(waitPage);
                        new System.Threading.Thread(() =>
                        {
                            try
@@ -697,6 +727,11 @@
                                Application.RunOnMainThread(() =>
                                {
                                    waitPage.Hide();
                                    if (waitPage != null)
                                    {
                                        waitPage.RemoveFromParent();
                                        waitPage = null;
                                    }
                                });
                            }
                        })
@@ -737,6 +772,7 @@
            {
                new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DeleteDoorlockUserTip, () =>
                {
                    var waitPage = new Loading();
                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
                    new System.Threading.Thread(() =>
                    {
@@ -758,6 +794,9 @@
                            {
                                Application.RunOnMainThread(() =>
                                {
                                    if (string.IsNullOrEmpty(pack.message)) {
                                        pack.message = Language.StringByID(StringId.OperationFailed);
                                    }
                                    //失败提示
                                    var tip = new Tip()
                                    {
@@ -779,6 +818,11 @@
                            Application.RunOnMainThread(() =>
                            {
                                waitPage.Hide();
                                if (waitPage != null)
                                {
                                    waitPage.RemoveFromParent();
                                    waitPage = null;
                                }
                            });
                        }
                    })
HDL_ON/UI/UI2/UserPage.cs
@@ -91,6 +91,7 @@
        {
            try
            {
                bodyView = this;//1
                bodyView.BackgroundColor = CSS_Color.MainBackgroundColor;
                ContextView = new FrameLayout()