From e6a26ee148587327478d9a82624a820c907b6e16 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 04 十一月 2020 14:58:15 +0800
Subject: [PATCH] 20201104

---
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs |  334 ++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 269 insertions(+), 65 deletions(-)

diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index be8e5ec..8749ff5 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -1,7 +1,11 @@
 锘縰sing System;
 using System.Collections.Generic;
+using System.Text;
+using HDL_ON.DAL;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
 using Shared;
 
 namespace HDL_ON.UI
@@ -15,6 +19,10 @@
         /// 椤堕儴淇℃伅鍖哄煙
         /// </summary>
         FrameLayout topView;
+        /// <summary>
+        /// 杩炴帴鐘舵�佹彁绀�
+        /// </summary>
+        Button btnLinkStateTip;
         /// <summary>
         ///浣忓畢鍚嶇О鏄剧ず
         /// </summary>
@@ -97,19 +105,42 @@
                 };
                 topView.AddChidren(btnTop);
 
-                btnResidenceName = new Button()
+                btnLinkStateTip = new Button()
                 {
                     X = Application.GetRealWidth(16),
+                    Y = Application.GetRealHeight(46),
+                    Width = Application.GetRealWidth(6),
+                    Height = Application.GetRealWidth(6),
+                    BackgroundColor = CSS_Color.MainColor,
+                    Radius = (uint)Application.GetRealWidth(3),
+                };
+                topView.AddChidren(btnLinkStateTip);
+
+                btnResidenceName = new Button()
+                {
+                    X = Application.GetRealWidth(26),
                     Y = Application.GetRealHeight(32),
-                    Width = Application.GetRealWidth(200),
+                    Width = Application.GetRealWidth(400),
                     Height = Application.GetRealHeight(33),
-                    TextColor = CSS.CSS_Color.MainBackgroundColor,
-                    TextSize = CSS.CSS_FontSize.EmphasisFontSize_FirstLevel,
+                    TextColor = CSS_Color.MainBackgroundColor,
+                    TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel,
                     TextAlignment = TextAlignment.CenterLeft,
                     Text = DB_ResidenceData.residenceData.residecenInfo.Name,
                     IsBold = true
                 };
                 topView.AddChidren(btnResidenceName);
+
+#if DEBUG
+                //鎼滅储缃戝叧
+                btnResidenceName.MouseUpEventHandler = (sender, e) =>
+                {
+                    System.Threading.Tasks.Task.Run(() =>
+                        {
+                            DriverLayer.Control.ins.ChangeCommunicationMode(DriverLayer.CommunicationMode.local_BusUdp);
+                            DriverLayer.Control.ins.myUdp.ReadGatewayIP();
+                        });
+                };
+#endif
 
                 environmentalView = new FrameLayout()
                 {
@@ -133,9 +164,9 @@
                     X = btnTempIcon.Right + Application.GetRealWidth(4),
                     Width = Application.GetRealWidth(30),
                     Gravity = Gravity.CenterVertical,
-                    TextColor = CSS.CSS_Color.MainBackgroundColor,
-                    TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel,
-                    Text = MainPage.cityInfo.temperature,
+                    TextColor = CSS_Color.MainBackgroundColor,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                    Text = MainPage.cityInfo.temperature + "掳",
                     TextAlignment = TextAlignment.CenterLeft,
                 };
                 environmentalView.AddChidren(btnTempValues);
@@ -155,9 +186,9 @@
                     X = btnHumidityIcon.Right + Application.GetRealWidth(4),
                     Width = Application.GetRealWidth(30),
                     Gravity = Gravity.CenterVertical,
-                    TextColor = CSS.CSS_Color.MainBackgroundColor,
-                    TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel,
-                    Text = MainPage.cityInfo.humidity,
+                    TextColor = CSS_Color.MainBackgroundColor,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                    Text = MainPage.cityInfo.humidity + "%",
                     TextAlignment = TextAlignment.CenterLeft,
                 };
                 environmentalView.AddChidren(btnHumidityValues);
@@ -175,10 +206,10 @@
                 btnPm25Values = new Button()
                 {
                     X = btnPm25Icon.Right + Application.GetRealWidth(4),
-                    Width = Application.GetRealWidth(30),
+                    Width = Application.GetRealWidth(130),
                     Gravity = Gravity.CenterVertical,
-                    TextColor = CSS.CSS_Color.MainBackgroundColor,
-                    TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel,
+                    TextColor = CSS_Color.MainBackgroundColor,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                     Text = MainPage.cityInfo.pm25,
                     TextAlignment = TextAlignment.CenterLeft,
                 };
@@ -198,7 +229,7 @@
 
                 var btngb = new Button()
                 {
-                    BackgroundColor = CSS.CSS_Color.MainColor,//0x3F4484F4,//
+                    BackgroundColor = CSS_Color.MainColor,//0x3F4484F4,
                     Alpha = 0.4f,
                 };
                 msgView.AddChidren(btngb);
@@ -221,8 +252,8 @@
                     X = Application.GetRealWidth(10) + btnMsgIcon.Right,
                     Width = Application.GetRealWidth(240),
                     Text = "鏃�",
-                    TextColor = CSS.CSS_Color.MainBackgroundColor,
-                    TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel,
+                    TextColor = CSS_Color.MainBackgroundColor,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                     TextAlignment = TextAlignment.CenterLeft,
                 };
                 msgView.AddChidren(btnMsg);
@@ -233,7 +264,7 @@
                     X = Application.GetRealWidth(299),
                     Width = Application.GetRealWidth(44),
                     Text = "00:00",
-                    TextSize = CSS.CSS_FontSize.PromptFontSize_FirstLevel,
+                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                     TextAlignment = TextAlignment.CenterLeft,
                 };
                 msgView.AddChidren(btnMsgTime);
@@ -256,9 +287,9 @@
                 {
                     Width = Application.GetRealWidth(114),
                     TextID = StringId.Functions,
-                    SelectedTextColor = CSS.CSS_Color.MainColor,
-                    TextColor = CSS.CSS_Color.PromptingColor1,
-                    TextSize = CSS.CSS_FontSize.HeadlineFontSize,
+                    SelectedTextColor = CSS_Color.MainColor,
+                    TextColor = CSS_Color.PromptingColor1,
+                    TextSize = CSS_FontSize.HeadlineFontSize,
                     TextAlignment = TextAlignment.Center,
                     IsSelected = true,
                     IsBold = true
@@ -271,7 +302,7 @@
                     Gravity = Gravity.CenterVertical,
                     Width = Application.GetRealWidth(1),
                     Height = Application.GetRealHeight(14),
-                    BackgroundColor = CSS.CSS_Color.PromptingColor1,
+                    BackgroundColor = CSS_Color.PromptingColor1,
                 };
                 changeView.AddChidren(btnLine);
 
@@ -280,22 +311,19 @@
                     X = btnLine.Right,
                     Width = Application.GetRealWidth(114),
                     TextID = StringId.Scenes,
-                    SelectedTextColor = CSS.CSS_Color.MainColor,
-                    TextColor = CSS.CSS_Color.PromptingColor1,
-                    TextSize = CSS.CSS_FontSize.TextFontSize,
+                    SelectedTextColor = CSS_Color.MainColor,
+                    TextColor = CSS_Color.PromptingColor1,
+                    TextSize = CSS_FontSize.TextFontSize,
                     TextAlignment = TextAlignment.Center,
                 };
                 changeView.AddChidren(btnChangeScene);
                 #endregion
 
-                //bodyView.AddChidren(new Button() { Y = changeView.Bottom, Height = Application.GetRealHeight(10), BackgroundColor = 0xAAF2F3F7 });
-
-
                 #region ContextView
                 contentView = new PageLayout()
                 {
                     Y = changeView.Bottom ,
-                    Height = Application.GetRealHeight(310 + 30), //20涓鸿秴鍑洪儴鍒�
+                    Height = Application.GetRealHeight(310 + 30 + 10), //20涓鸿秴鍑洪儴鍒�
                 };
                 bodyView.AddChidren(contentView);
 
@@ -310,7 +338,6 @@
                 contentView.PageIndex = 0;
 
                 #endregion
-                bodyView.AddChidren(new Button() { Y = changeView.Bottom, Height = Application.GetRealHeight(7), BackgroundColor = 0xAAF2F3F7 });
 
                 LoadEvent_ChangeShowedFunctionType();
             }
@@ -332,14 +359,40 @@
             try
             {
                 int index = 0;
-                foreach (var function in DB_ResidenceData.residenceData.functionList.GetAllDeviceFunctionList())
+                foreach (var function in DB_ResidenceData.functionList.GetAllDeviceFunctionList())
                 {
-                    if (!function.collection)
-                        continue;
-                    if (function.roomIdList.Count == 0)//濡備綍鍦ㄦ埧闂村凡缁忕Щ闄や簡杩欎釜鍔熻兘锛屽垯鏀惰棌鐣岄潰涔熶笉浼氬啀鏄剧ず
+                    //闊充箰妯″潡鏈変富浠庡叧绯伙紝闇�瑕佺壒娈婂鐞�
+                    if (function.functionCategory == FunctionCategory.Music)
                     {
-                        function.collection = false;
-                        continue;
+                        var music = function as Music.A31MusicModel;
+                        if (music.ServerClientType == -1)
+                        {
+                            continue;
+                        }
+                        else if (music.ServerClientType == 1)
+                        {
+                            if (!music.MainPlayCollection)
+                            {
+                                continue;
+                            }
+                        }
+                        else
+                        {
+                            if (!music.collection)
+                            {
+                                continue;
+                            }
+                        }
+                    }
+                    else
+                    {
+                        if (!function.collection)
+                            continue;
+                        //if (function.roomIdList.Count == 0)//濡備綍鍦ㄦ埧闂村凡缁忕Щ闄や簡杩欎釜鍔熻兘锛屽垯鏀惰棌鐣岄潰涔熶笉浼氬啀鏄剧ず
+                        //{
+                        //    function.collection = false;
+                        //    continue;
+                        //}
                     }
                     if (index % 2 == 0)
                     {
@@ -363,6 +416,7 @@
                         Tag = function.sid
                     };
                     rowView.AddChidren(functionView);
+
                     var btnbg = new Button()
                     {
                         UnSelectedImagePath = "Collection/Functionbg.png",
@@ -373,6 +427,33 @@
                     functionViews.Add(functionView);
                     LoadDeviceFunctionDiv(functionView, function);
                     index++;
+                }
+
+                if (index == 0)
+                {
+                    var view = new FrameLayout();
+                    deviceFunctionView.AddChidren(view);
+
+                    var btnNoCollectionBg = new Button()
+                    {
+                        Y = Application.GetRealHeight(20),
+                        Gravity = Gravity.CenterHorizontal,
+                        Width = Application.GetRealWidth(180),
+                        Height = Application.GetRealWidth(180),
+                        UnSelectedImagePath = "Collection/NoCollectionBg.png",
+                    };
+                    view.AddChidren(btnNoCollectionBg);
+
+                    var btnNoCollectionTip = new Button()
+                    {
+                        Height = Application.GetRealHeight(42),
+                        Y = btnNoCollectionBg.Bottom,
+                        TextAlignment = TextAlignment.Center,
+                        TextColor = CSS_Color.PromptingColor1,
+                        TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                        TextID = StringId.TipNoFunctionCollcetion,
+                    };
+                    view.AddChidren(btnNoCollectionTip);
                 }
             }
             catch (Exception ex)
@@ -393,7 +474,7 @@
             try
             {
                 int index = 0;
-                foreach (var function in DB_ResidenceData.residenceData.functionList.scenes)
+                foreach (var function in DB_ResidenceData.functionList.scenes)
                 {
                     if (!function.collection)
                         continue;
@@ -426,6 +507,33 @@
 
                     LoadSceneFunctionDiv( functionView, function);
                     index++;
+                }
+
+                if (index == 0)
+                {
+                    var view = new FrameLayout();
+                    sceneFunctionView.AddChidren(view);
+
+                    var btnNoCollectionBg = new Button()
+                    {
+                        Y = Application.GetRealHeight(20),
+                        Gravity = Gravity.CenterHorizontal,
+                        Width = Application.GetRealWidth(180),
+                        Height = Application.GetRealWidth(180),
+                        UnSelectedImagePath = "Collection/NoCollectionBg.png",
+                    };
+                    view.AddChidren(btnNoCollectionBg);
+
+                    var btnNoCollectionTip = new Button()
+                    {
+                        Height = Application.GetRealHeight(42),
+                        Y = btnNoCollectionBg.Bottom,
+                        TextAlignment = TextAlignment.Center,
+                        TextColor = CSS_Color.PromptingColor1,
+                        TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                        TextID = StringId.TipNoSceneCollcetion,
+                    };
+                    view.AddChidren(btnNoCollectionTip);
                 }
             }
             catch (Exception ex)
@@ -460,8 +568,8 @@
                     Y = Application.GetRealWidth(10) + btnIcon.Bottom,
                     Text = function.name,
                     IsBold = true,
-                    TextColor = CSS.CSS_Color.FirstLevelTitleColor,
-                    TextSize = CSS.CSS_FontSize.TextFontSize,
+                    TextColor = CSS_Color.FirstLevelTitleColor,
+                    TextSize = CSS_FontSize.TextFontSize,
                     Height = Application.GetRealWidth(24),
                     Width = Application.GetRealWidth(140),
                     TextAlignment = TextAlignment.CenterLeft,
@@ -475,10 +583,10 @@
                     Y = btnName.Bottom,
                     Height = Application.GetRealWidth(18),
                     Width = Application.GetRealWidth(113),
-                    TextColor = CSS.CSS_Color.PromptingColor1,
-                    TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel,
+                    TextColor = CSS_Color.PromptingColor1,
+                    TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                     TextAlignment = TextAlignment.CenterLeft,
-                    SelectedTextColor = CSS.CSS_Color.MainBackgroundColor,
+                    SelectedTextColor = CSS_Color.MainBackgroundColor,
                     Text = function.GetRoomListName()
                 };
                 view.AddChidren(btnZone);
@@ -490,9 +598,9 @@
                     Y = btnZone.Bottom,
                     Height = Application.GetRealWidth(18),
                     Width = Application.GetRealWidth(113),
-                    SelectedTextColor = CSS.CSS_Color.MainBackgroundColor,
+                    SelectedTextColor = CSS_Color.MainBackgroundColor,
                     TextColor = 0x00000000,
-                    TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel,
+                    TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                     TextAlignment = TextAlignment.CenterLeft,
                     Tag = "state",
                     Text = function.lastState
@@ -542,6 +650,65 @@
 
                     LoadEvent_ControlCurtain(function as Curtain, btnCurtainClose, btnCurtainOpen);
                 }
+
+                else if (function.functionType == FunctionType.TV)
+                {
+                    btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVIcon.png";
+                    Button btnPower;
+                    btnPower = new Button()
+                    {
+                        X = Application.GetRealWidth(131),
+                        Y = Application.GetRealHeight(86),
+                        Width = Application.GetRealWidth(32),
+                        Height = Application.GetRealWidth(32),
+                        UnSelectedImagePath = "Public/PowerClose.png",
+                    };
+                    view.AddChidren(btnPower);
+                    LoadEvent_ControlTV(function as TV, btnPower);
+                }
+
+                else if (function.functionCategory == FunctionCategory.Music)
+                {
+                    btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicIcon.png";
+                    btnIcon.SelectedImagePath = "FunctionIcon/Music/MusicOnIcon.png";
+                    Button btnPower;
+                    btnPower = new Button()
+                    {
+                        X = Application.GetRealWidth(118),
+                        Y = Application.GetRealWidth(83),
+                        Width = Application.GetRealWidth(44),
+                        Height = Application.GetRealWidth(44),
+                        UnSelectedImagePath = "FunctionIcon/Music/MusicPlayIcon.png",
+                        SelectedImagePath = "FunctionIcon/Music/MusicPlayOnIcon.png",
+                    };
+                    view.AddChidren(btnPower);
+                    var a31player = (function as UI.Music.A31MusicModel);
+                    btnState.Text = a31player.A31PlayStatus.Title;
+
+                    btnState.SelectedTextColor = CSS_Color.MainBackgroundColor;
+                    btnState.TextColor = CSS_Color.MainBackgroundColor;//PromptingColor1
+
+                    //Music.SendMethod.ReadStatus(a31player);
+
+                    btnPower.MouseUpEventHandler = (sender, e) => {
+                        if (btnPower.IsSelected)
+                        {
+                            btnPower.IsSelected = false;
+                            Music.SendMethod.Pause(a31player);
+                            a31player.A31PlayStatus.status = "pause";
+                            a31player.trait_on_off.value = "off";
+                        }
+                        else
+                        {
+                            btnPower.IsSelected = true;
+                            Music.SendMethod.Play(a31player);
+                            a31player.A31PlayStatus.status = "play";
+                            a31player.trait_on_off.value = "on";
+                        }
+                        UpdataFunctionStates(a31player);
+                    };
+                }
+
                 else
                 {
                     Button btnSwitch;
@@ -582,6 +749,24 @@
                                     break;
                             }
                             break;
+                        case FunctionCategory.SwitchDevice:
+                            switch (function.functionType)
+                            {
+                                case FunctionType.Socket:
+                                    btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketIcon.png";
+                                    btnIcon.SelectedImagePath = "FunctionIcon/Socket/SocketOnIcon.png";
+                                    break;
+                            }
+                            break;
+                        case FunctionCategory.Electrical:
+                            switch (function.functionType)
+                            {
+                                case FunctionType.Fan:
+                                    btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanIcon.png";
+                                    btnIcon.SelectedImagePath = "FunctionIcon/Electrical/FanOnIcon.png";
+                                    break;
+                            }
+                            break;
                     }
                     LoadEvent_SwitchFunction(function, btnSwitch);
                 }
@@ -590,14 +775,17 @@
                 btnName.MouseUpEventHandler = skipControlPageEvent;
                 btnIcon.MouseUpEventHandler = skipControlPageEvent;
                 btnState.MouseUpEventHandler = skipControlPageEvent;
-                UpdataFunctionStates(function);
+                //鐢佃涓嶉渶瑕佹洿鏂扮姸鎬�
+                if(function.functionType!= FunctionType.TV)
+                {
+                    UpdataFunctionStates(function);
+                }
             }
             catch (Exception ex)
             {
                 MainPage.Log("homepage LoadControlView error : " + ex.Message);
             }
         }
-
 
         /// <summary>
         /// 鍔犺浇鍦烘櫙鎺у埗鍗$墖
@@ -606,6 +794,24 @@
         {
             try
             {
+                Button btnCoverd = new Button()
+                {
+                    UnSelectedImagePath = "Collection/SceneCovered.png",
+                };
+                view.AddChidren(btnCoverd);
+
+                Button btnSettingIcon;
+                btnSettingIcon = new Button()
+                {
+                    X = Application.GetRealWidth(4),
+                    Y = Application.GetRealWidth(4),
+                    Height = Application.GetRealWidth(32),
+                    Width = Application.GetRealWidth(32),
+                    //UnSelectedImagePath = "FunctionIcon/Scene/DelayIcon.png",
+                    UnSelectedImagePath = "Public/FuncInfoSetIcon_white.png",
+                };
+                view.AddChidren(btnSettingIcon);
+
                 Button btnName;
                 btnName = new Button()
                 {
@@ -627,30 +833,14 @@
                     Y = btnName.Bottom,
                     Height = Application.GetRealWidth(18),
                     Width = Application.GetRealWidth(113),
-                    TextColor = CSS.CSS_Color.MainBackgroundColor,
-                    TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel,
+                    TextColor = CSS_Color.MainBackgroundColor,
+                    TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                     TextAlignment = TextAlignment.CenterLeft,
-                    SelectedTextColor = CSS.CSS_Color.MainBackgroundColor,
+                    SelectedTextColor = CSS_Color.MainBackgroundColor,
                     Text = function.GetRoomListName(),
                 };
                 view.AddChidren(btnZone);
 
-                Button btnCoverd = new Button()
-                {
-                    UnSelectedImagePath = "Collection/SceneCovered.png",
-                };
-                view.AddChidren(btnCoverd);
-
-                Button btnDelayIcon;
-                btnDelayIcon = new Button()
-                {
-                    X = Application.GetRealWidth(12),
-                    Y = Application.GetRealWidth(12),
-                    Height = Application.GetRealWidth(24),
-                    Width = Application.GetRealWidth(24),
-                    UnSelectedImagePath = "FunctionIcon/Scene/DelayIcon.png"
-                };
-                view.AddChidren(btnDelayIcon);
 
                 Button btnCollection;
                 btnCollection = new Button()
@@ -665,8 +855,22 @@
                 view.AddChidren(btnCollection);
                 LoadEvent_FunctionCollection(btnCollection, function, false);
               
-                LoadEvent_ControlScene(btnCoverd, function);
+                LoadEvent_ControlScene(btnCoverd,btnName,btnZone, function);
 
+                btnSettingIcon.MouseUpEventHandler = (sender, e) => {
+                    Action backAction = () => {
+                        //LoadSceneFunctionControlZone();
+                    };
+                    Action refreshAction = () => {
+                        btnName.Text = function.name;
+                        btnZone.Text = function.GetRoomListName();
+                        view.BackgroundImagePath = (function as Scene).ImagePath;
+                    };
+                    var aep = new SceneEditPage(function as Scene, backAction);
+                    MainPage.BasePageView.AddChidren(aep);
+                    aep.LoadPage(StringId.EditScene, refreshAction);
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                };
             }
             catch (Exception ex)
             {

--
Gitblit v1.8.0