wjc
2023-03-28 a9d1161b1df96e7ddad566335989a1444e433ef5
HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text;
using HDL_ON.DAL;
using HDL_ON.DAL.Server;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
@@ -11,7 +12,11 @@
namespace HDL_ON.UI
{
    public partial class HomePage : VerticalRefreshLayout
#if __IOS__
    public partial class HomePage :  VerticalRefreshLayout
#else
    public partial class HomePage : VerticalScrolViewLayout
#endif
    {
        #region 控件列表
@@ -90,21 +95,21 @@
        /// 功能区域集合
        /// </summary>
        List<FrameLayout> functionViews;
        #endregion
#endregion
        #region 区域变量
#region 区域变量
        /// <summary>
        /// 当前显示对控制类型是否是设备功能控制
        /// </summary>
        bool CurShowTypeIsFunction = true;
        #endregion
#endregion
        #region 报警信息
#region 报警信息
        Button btnMsgBg;
        Button btnMsgTime;
        Button btnMsg;
        Button btnMsgIcon;
        #endregion
#endregion
        public HomePage()
        {
@@ -132,9 +137,34 @@
            MainPage.CurPageIndex = 0;
            try
            {
                this.BeginHeaderRefreshingAction = () =>
                bodyView.RemoveAll();
#if __IOS__
                bodyView.BeginHeaderRefreshingAction = () =>
                {
                    this.EndHeaderRefreshing();
                    bodyView.EndHeaderRefreshing();
                    Common.ApiUtlis.Ins.DownloadData();
                    LoadContentView();
                    if (!CurShowTypeIsFunction)
                    {
                        contentView.PageIndex = 1;
                    }
                };
                topView = new FrameLayout()
                {
                    Height = Application.GetRealHeight(216),
                    BackgroundImagePath = DB_ResidenceData.Instance.residenceImage,
                };
                bodyView.AddChidren(topView);
#else
                VerticalRefreshLayout refreshLayout = new VerticalRefreshLayout()
                {
                    Height = Application.GetRealHeight(216),
                    BackgroundImagePath = DB_ResidenceData.Instance.residenceImage,
                };
                bodyView.AddChidren(refreshLayout);
                refreshLayout.BeginHeaderRefreshingAction = () =>
                {
                    refreshLayout.EndHeaderRefreshing();
                    Common.ApiUtlis.Ins.DownloadData();
                    LoadContentView();
                    if(!CurShowTypeIsFunction)
@@ -142,17 +172,15 @@
                        contentView.PageIndex = 1;
                    }
                };
                #region topView
                bodyView.RemoveAll();
                topView = new FrameLayout()
                {
                    Height = Application.GetRealHeight(216),
                    BackgroundImagePath = DB_ResidenceData.Instance.residenceImage,
                };
                bodyView.AddChidren(topView);
                refreshLayout.AddChidren(topView);
#endif
                #region topView
                Button btnTop;
                btnTop = new Button()
@@ -179,7 +207,7 @@
                    //X = Application.GetRealWidth(16),
                    Y = btnResidenceName.Bottom,
                    Height = Application.GetRealWidth(14),
                    BackgroundColor = CSS_Color.LinkTipFail,
                    //BackgroundColor = CSS_Color.LinkTipFail,
                    TextAlignment = TextAlignment.Center,
                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                    TextColor = CSS_Color.MainBackgroundColor,
@@ -189,11 +217,51 @@
                //更新链接状态icon颜色
                int ddd = 0;
#if DEBUG
                int ddd = 0;
                btnResidenceName.MouseUpEventHandler = (sender, e) =>
                {
                    //827a98c98da7469b8bc19bb6a3c7651906
                    //St_00009073b431d8b2490c9df0c5cb0e73
                    //Com.Hdl.HdlToLc.InitData(Shared.Application.Activity,false, "827a98c98da7469b8bc19bb6a3c7651906");
                    //Com.Hdl.HdlToLc.OpenActivity();
                    //new System.Threading.Thread(() =>
                    //{
                    //    var http = new HttpServerRequest();
                    //    var pack = http.GetLcSubAccountToken();
                    //    if (pack.Code == StateCode.SUCCESS)
                    //    {
                    //        if(pack.Data == null || string.IsNullOrEmpty(pack.Data.ToString()))
                    //        {
                    //            Application.RunOnMainThread(() =>
                    //            {
                    //                new PublicAssmebly().TipMsg(Language.StringByID(StringId.Tip), Language.StringByID(StringId.huoqushujushibao));
                    //            });
                    //        }
                    //        Com.Utils.HdlToLcUtils.Instance.HomeId = DB_ResidenceData.Instance.CurrentRegion.id;
                    //        Com.Utils.HdlToLcUtils.Instance.Token = UserInfo.Current.AccessToken;
                    //        Com.Utils.HdlToLcUtils.Instance.SubAccessToken = pack.Data.ToString();
                    //        Application.RunOnMainThread(() =>
                    //        {
                    //            //Com.Utils.HdlToLcUtils.Instance.OpenActivity();
                    //            //Com.Utils.HdlToLcUtils.Instance.Play()
                    //            var backTemp = new AddLcCam();
                    //            backTemp.backAction = () =>
                    //            {
                    //                //Load3tyBrandDeviceList();
                    //            };
                    //            Com.Utils.HdlToLcUtils.Instance.AddCamera(backTemp);
                    //        });
                    //    }
                    //    else
                    //    {
                    //        Application.RunOnMainThread(() =>
                    //        {
                    //            new PublicAssmebly().TipMsg(Language.StringByID(StringId.Tip), Language.StringByID(StringId.huoqushujushibao) + $"({pack.Code})");
                    //        });
                    //    }
                    //})
                    //{ IsBackground = true }.Start();
                };
#endif
@@ -205,7 +273,7 @@
                topView.AddChidren(environmentalView);
                CheckLinkStatus();//2020-12-22
                #region 环境数据
#region 环境数据
                var tempSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorTemperature);
                var humiSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorHumidity);
                var enviList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => SPK.EvironmentSensorList().Contains(obj.spk));
@@ -381,7 +449,7 @@
                };
                btnPm25Values.Width = btnPm25Values.GetTextWidth();
                environmentalView.AddChidren(btnPm25Values);
                #endregion
#endregion
                btnSecurityStatus = new Button()
                {
@@ -422,7 +490,7 @@
                }
                #region msg
#region msg
                FrameLayout msgView;
                msgView = new FrameLayout()
                {
@@ -477,11 +545,11 @@
                LoadEvent_GotoMessageCenterPage();
                #endregion
#endregion
                #endregion
#endregion
                #region 功能场景切换
#region 功能场景切换
                bodyView.AddChidren(new Button() { Height = Application.GetRealHeight(20), BackgroundColor = 0x00000000 });
@@ -530,9 +598,9 @@
                    TextAlignment = TextAlignment.Center,
                };
                changeView.AddChidren(btnChangeScene);
                #endregion
#endregion
                #region ContextView
#region ContextView
                contentView = new PageLayout()
                {
                    //Y = changeView.Bottom,
@@ -545,7 +613,7 @@
                LoadContentView();
                #endregion
#endregion
            }
            catch (Exception ex)
            {
@@ -559,7 +627,7 @@
        /// </summary>
        void LoadContentView()
        {
            if (!Common.ApiUtlis.Ins.DownloadDataComplete)
            if (!Common.ApiUtlis.Ins.DownloadDataComplete && !MainPage.NoLoginMode)
            {
                var waitPage = new Loading();
                MainPage.BaseView.AddChidren(waitPage);
@@ -649,7 +717,7 @@
        /// </summary>
        void LoadDeviceFunctionControlZone()
        {
            #region ContextView
#region ContextView
            deviceFunctionView.RemoveAll();
            functionViews.Clear();
            var rowView = new FrameLayout();
@@ -659,36 +727,10 @@
                var list = FunctionList.List.GetDeviceFunctionList();
                foreach (var function in list)
                {
                    //音乐模块有主从关系,需要特殊处理
                    if (SPK.MusicSpkList().Contains( function.spk))
                    {
                        continue;
                        //var music = function as Music.A31MusicModel;
                        //var music = Music.A31MusicModel.A31MusicModelList.Find((obj) => obj.sid == function.sid);
                        //if (music == null)
                        //{
                        //    continue;
                        //}
                        //if (music.ServerClientType == -1)
                        //{
                        //    continue;
                        //}
                        //else if (music.ServerClientType == 1)
                        //{
                        //    if (!music.MainPlayCollection)
                        //    {
                        //        continue;
                        //    }
                        //}
                        //else
                        //{
                        //    if (!music.collect)
                        //    {
                        //        continue;
                        //    }
                        //}
                    }
                    else
                    {
@@ -725,7 +767,6 @@
                    }
                    else //其他设备
                    {
                        var btnbg = new Button()
                        {
                            UnSelectedImagePath = "Collection/Functionbg.png",
@@ -735,8 +776,6 @@
                        functionView.AddChidren(btnbg);
                        LoadDeviceFunctionDiv(functionView, function);
                        if (SPK.ArmSensorSpkList().Contains(function.spk))
                        {
                            btnbg.UnSelectedImagePath = "Collection/FunctionOnbg.png";
@@ -744,7 +783,6 @@
                        }
                    }
                    index++;
                }
                if (index == 0)
@@ -779,7 +817,7 @@
                MainPage.Log("homepage error : " + ex.Message);
            }
            deviceFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) });
            #endregion
#endregion
        }
        /// <summary>
@@ -929,7 +967,7 @@
                };
                if (function.spk == SPK.SenesorMegahealth)
                if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose)
                {
                    btnIcon.UnSelectedImagePath = "FunctionIcon/Icon/HomeIcon/sensormegahealth.png";
                    btnIcon.SelectedImagePath = "FunctionIcon/Icon/HomeIcon/sensormegahealth.png";
@@ -1142,7 +1180,7 @@
                }
                
                else if (function.spk == SPK.SenesorMegahealth)
                else if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose)
                {
                    //btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}.png";
                    //btnIcon.SelectedImagePath = "FunctionIcon/Icon/HomeIcon/sensormegahealth.png";
@@ -1158,6 +1196,11 @@
                    btnName.SelectedTextColor = CSS_Color.MainBackgroundColor;
                    btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
                    btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
                }
                else if (function.spk == SPK.IpCam_Imou)
                {
                    btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                    btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                }
                else
@@ -1201,7 +1244,7 @@
                btnIcon.MouseUpEventHandler = skipControlPageEvent;
                btnState.MouseUpEventHandler = skipControlPageEvent;
                //不需要更新状态的动能列表
                if(!SPK.NotStatusSpkList.Contains(function.spk))
                if(!SPK.NotStatusSpkList.Contains(function.spk) || function.spk != SPK.IpCam_Imou)
                {
                    UpdataFunctionStates(function);
                }
@@ -1238,7 +1281,7 @@
                Width = Application.GetRealWidth(160),
                Height = Application.GetRealHeight(105),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(5),
                Radius = (uint)Application.GetRealWidth(15),
            };
            view1.AddChidren(view);
@@ -1259,11 +1302,11 @@
            var btnLogo = new Button()
            {
                Y = Application.GetRealWidth(90),
                Y = Application.GetRealHeight(65),
                UnSelectedImagePath = "FunctionIcon/Acst/LvJianLogo.png",
                SelectedImagePath = "FunctionIcon/Acst/LvJianLogo.png",
                Width = Application.GetRealWidth(80),
                Height = Application.GetRealWidth(37),
                Height = Application.GetRealHeight(37),
            };
            view.AddChidren(btnLogo);
@@ -1283,25 +1326,31 @@
            };
            Button btnAcstPower = new Button()
            {
                X = Application.GetRealWidth(115),
                Y = Application.GetRealHeight(70),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                SelectedImagePath = "Public/PowerOpen.png",
                UnSelectedImagePath = "Public/PowerClose.png",
                IsSelected = function.trait_on_off.curValue.ToString() == "on",
            };
            view.AddChidren(btnAcstPower);
            btnAcstPower.MouseUpEventHandler = (sender, e) => {
                btnAcstPower.IsSelected = !btnAcstPower.IsSelected;
                string onoff = btnAcstPower.IsSelected ? "on" : "off";
                Dictionary<string, string> d = new Dictionary<string, string>();
                d.Add(FunctionAttributeKey.OnOff, onoff);
                Control.Ins.SendWriteCommand(FunctionList.List.GetAcstParentList()[0], d);
            };
            //Button btnAcstPower = new Button()
            //{
            //    X = Application.GetRealWidth(115),
            //    Y = Application.GetRealHeight(70),
            //    Width = Application.GetRealWidth(32),
            //    Height = Application.GetRealWidth(32),
            //    SelectedImagePath = "Public/PowerOpen.png",
            //    UnSelectedImagePath = "Public/PowerClose.png",
            //    IsSelected = function.trait_on_off.curValue.ToString() == "on",
            //};
            //view.AddChidren(btnAcstPower);
            //btnAcstPower.MouseUpEventHandler = (sender, e) => {
            //    btnAcstPower.IsSelected = !btnAcstPower.IsSelected;
            //    new System.Threading.Thread(() =>
            //    {
            //        string onoff = btnAcstPower.IsSelected ? "on" : "off";
            //        Dictionary<string, string> d = new Dictionary<string, string>();
            //        d.Add(FunctionAttributeKey.OnOff, onoff);
            //        foreach (var temp in FunctionList.List.GetAcstParentList())
            //        {
            //            Control.Ins.SendWriteCommand(temp, d);
            //        }
            //    })
            //    { IsBackground = true }.Start();
            //};