mac
2023-09-01 0a11352dffeb8d5f31dd40b9728fe1abf4537f04
HDL_ON/UI/UI2/FuntionControlView/Aks/TvPage.cs
@@ -2,6 +2,8 @@
using System.Collections.Generic;
using HDL_ON.UI.Music;
using HDL_ON.UI.UI2.FuntionControlView.Aks.CommonView;
using HDL_ON.UI.UI2.FuntionControlView.Aks.Entity;
using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
using Shared;
using static HDL_ON.UI.UI2.FuntionControlView.Aks.AksPage;
namespace HDL_ON.UI.UI2.FuntionControlView.Aks
@@ -11,20 +13,49 @@
    /// </summary>
    public class TvPage : BaseFramLayout
    {
        public TvPage()
        /// <summary>
        ///
        /// </summary>
        /// <param name="remoteControlEntity">遥控器对象</param>
        /// <param name="sequencerList">时序器列表</param>
        public TvPage(RemoteControlEntity remoteControlEntity, List<SequencerEntity> sequencerList)
        {
            this.remoteControl = remoteControlEntity;
            this.sequencerList = sequencerList;
        }
        /// <summary>
        /// 时序器列表
        /// </summary>
        private List<SequencerEntity> sequencerList;
        /// <summary>
        /// 当前的遥控器对象
        /// </summary>
        private RemoteControlEntity remoteControl;
        public Action<IntType> action;
        /// <summary>
        /// 最上面功能键容器
        /// </summary>
        CornerFramLayout cornerTopFram;
        /// <summary>
        /// 数字按键容器
        /// </summary>
        CornerFramLayout numberFrame;
        /// <summary>
        /// 菜单容器
        /// </summary>
        MenuFramLayout menuFram;
        /// <summary>
        /// 切换设备容器
        /// </summary>
        TypeMultiFramLayout typeMultiFramLayout;
        public void Show()
        {
            //初始化UI
            this.InitUI();
            //初始化事件
            //this.EventListener();
            //初始化事件监听器
            this.EventListener();
            //读取数据
            this.ReadData();
@@ -34,48 +65,64 @@
        {
        }
        /// <summary>
        /// 事件监听器
        /// </summary>
        private void EventListener()
        {
            cornerTopFram.selectAction += (value) =>
            //功能键控制
            cornerTopFram.selectKeyAction += (keypadEntity) =>
            {
                Console.WriteLine("1");
                KeyControl(keypadEntity.keypad, keypadEntity.name);
            };
            menuFram.SetTopClickListener((b) =>
            //数字键控制
            numberFrame.selectKeyAction += (keypadEntity) =>
            {
                KeyControl(keypadEntity.keypad, keypadEntity.name);
            };
            //菜单上按键
            menuFram.SetTopClickListener((keypadEntity) =>
            {
                Console.WriteLine("5");
            });
            menuFram.SetBottomClickListener((b) =>
            {
                Console.WriteLine("6");
            });
            menuFram.SetLeftClickListener((b) =>
            {
                Console.WriteLine("7");
            });
            menuFram.SetRightClickListener((b) =>
            {
                Console.WriteLine("8");
            });
            menuFram.SetOkClickListener((b) =>
            {
                Console.WriteLine("9");
            });
                KeyControl(keypadEntity.keypad, keypadEntity.name);
            });
            //菜单下按键
            menuFram.SetBottomClickListener((keypadEntity) =>
            {
                KeyControl(keypadEntity.keypad, keypadEntity.name);
            });
            //菜单左按键
            menuFram.SetLeftClickListener((keypadEntity) =>
            {
                KeyControl(keypadEntity.keypad, keypadEntity.name);
            });
            //菜单右按键
            menuFram.SetRightClickListener((keypadEntity) =>
            {
                KeyControl(keypadEntity.keypad, keypadEntity.name);
            });
            //菜单ok按键
            menuFram.SetOkClickListener((keypadEntity) =>
            {
                KeyControl(keypadEntity.keypad, keypadEntity.name);
            });
            //时序器
            typeMultiFramLayout.SetLeftFlClickListener((f) =>
            {
                SxqPage sxqPage = new SxqPage();
                SxqPage sxqPage = new SxqPage(this.sequencerList, this.remoteControl.deviceId);
                MainPage.BasePageView.AddChidren(sxqPage);
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                sxqPage.Show();
            });
            //设备切换
            typeMultiFramLayout.SetRightFlClickListener((f) =>
            {
                Console.WriteLine("4");
                action?.Invoke(IntType.TV);
            });
@@ -97,38 +144,203 @@
            };
            this.AddChidren(btnTitle);
            cornerTopFram = new CornerFramLayout(343, 452, 4, 17);
            cornerTopFram = new CornerFramLayout(343, 368, 17);
            cornerTopFram.X = Application.GetRealWidth(16);
            cornerTopFram.Y = btnTitle.Bottom + Application.GetRealHeight(16);
            this.AddChidren(cornerTopFram);
            cornerTopFram.SetList(cornerTopFram.GetTestList(17));
            cornerTopFram.SetMargin(16, 0, 16, 0);
            cornerTopFram.LoadButtonPage(new List<int> { 5, 6 });
            cornerTopFram.LoadButtonPage(AksCommonMethod.Current.GetTvKeypadList(),new List<int> { 5, 6 });
            #region  ----频道 控制----
            FrameLayout middLayout = new FrameLayout
            {
                Y = cornerTopFram.Bottom,
                Height = Application.GetRealHeight(61),
            };
            this.AddChidren(middLayout);
            FrameLayout leftLayout = new FrameLayout
            {
                X = Application.GetRealWidth(105),
                Y = Application.GetRealHeight(16),
                Height = Application.GetRealHeight(29),
                Width = Application.GetRealWidth(32),
            };
            middLayout.AddChidren(leftLayout);
            Button leftBtnTitle = new Button
            {
                Height = Application.GetRealHeight(22),
                Width = leftLayout.Width,
                TextAlignment = TextAlignment.Center,
                TextColor = MusicColor.TextColor,
                SelectedTextColor = MusicColor.MusicTxet14SelectedColor,
                TextSize = TextSize.Text16,
                TextID = StringId.pindao,
            };
            leftLayout.AddChidren(leftBtnTitle);
            Button leftBtnLine = new Button
            {
                Y = leftBtnTitle.Bottom + Application.GetRealHeight(4),
                Height = Application.GetRealHeight(2),
                Width = leftBtnTitle.GetTextWidth(),
                BackgroundColor = MusicColor.TextColor,
                SelectedBackgroundColor = MusicColor.MusicTxet14SelectedColor,
                Gravity = Gravity.CenterHorizontal,
            };
            leftLayout.AddChidren(leftBtnLine);
            //频道点击控件
            FrameLayout clickLeftLayout = new FrameLayout
            {
                Height = leftLayout.Height,
                Width = leftLayout.Width,
            };
            leftLayout.AddChidren(clickLeftLayout);
            FrameLayout rightLayout = new FrameLayout
            {
                X = leftLayout.Right + Application.GetRealWidth(100),
                Y = leftLayout.Y,
                Height = leftLayout.Height,
                Width = leftLayout.Width,
            };
            middLayout.AddChidren(rightLayout);
            Button rightBtnTitle = new Button
            {
                Height = Application.GetRealHeight(22),
                Width = rightLayout.Width,
                TextAlignment = TextAlignment.Center,
                TextColor = MusicColor.TextColor,
                SelectedTextColor = MusicColor.MusicTxet14SelectedColor,
                TextSize = TextSize.Text16,
                TextID = StringId.kongzhi,
            };
            rightLayout.AddChidren(rightBtnTitle);
            Button rightBtnLine = new Button
            {
                Y = rightBtnTitle.Bottom + Application.GetRealHeight(4),
                Height = Application.GetRealHeight(2),
                Width = rightBtnTitle.GetTextWidth(),
                BackgroundColor = MusicColor.TextColor,
                SelectedBackgroundColor = MusicColor.MusicTxet14SelectedColor,
                Gravity = Gravity.CenterHorizontal,
            };
            rightLayout.AddChidren(rightBtnLine);
            //电视点击控件
            FrameLayout clickRightLayout = new FrameLayout
            {
                Height = leftLayout.Height,
                Width = leftLayout.Width,
            };
            rightLayout.AddChidren(clickRightLayout);
            NumberFrameLayout numberFrame = new NumberFrameLayout();
            numberFrame.layout.X = Application.GetRealWidth(16);
            numberFrame.layout.Y = cornerTopFram.Bottom + Application.GetRealHeight(16);
            numberFrame.AddView(this);
            #endregion
            //CornerFramLayout cornerBottomFram = new CornerFramLayout(343, 292, 0, 17);
            //cornerBottomFram.X = Application.GetRealWidth(16);
            //cornerBottomFram.Y = cornerTopFram.Bottom + Application.GetRealHeight(16);
            //cornerBottomFram.BackgroundColor = MusicColor.WhiteColor;
            //cornerBottomFram.Radius = (uint)Application.GetRealHeight(17);
            //this.AddChidren(cornerBottomFram);
            //menuFram = new MenuFramLayout();
            //menuFram.Y = Application.GetRealHeight(24);
            //menuFram.AddView(cornerBottomFram);
            //数字按键容器
            numberFrame = new CornerFramLayout(343, 368, 17);
            numberFrame.X = Application.GetRealWidth(16);
            numberFrame.Y = middLayout.Bottom + Application.GetRealHeight(16);
            numberFrame.BackgroundColor = MusicColor.WhiteColor;
            numberFrame.SetMargin(16,0,16,0);
            numberFrame.LoadNumberButtonPage(AksCommonMethod.Current.GetNumberKeypadList());
            this.AddChidren(numberFrame);
            //typeMultiFramLayout = new TypeMultiFramLayout();
            //typeMultiFramLayout.multiFramLayout.Y = menuFram.Bottom + Application.GetRealHeight(32);
            //typeMultiFramLayout.AddView(cornerBottomFram);
            //typeMultiFramLayout.btnBottonRightName.TextID =StringId.dianshi;
            //菜单容器
            CornerFramLayout cornerBottomFram = new CornerFramLayout(343, 292, 17);
            cornerBottomFram.X = Application.GetRealWidth(16);
            cornerBottomFram.Y = middLayout.Bottom + Application.GetRealHeight(16);
            cornerBottomFram.BackgroundColor = MusicColor.WhiteColor;
            this.AddChidren(cornerBottomFram);
            menuFram = new MenuFramLayout();
            menuFram.Y = Application.GetRealHeight(24);
            menuFram.AddView(cornerBottomFram);
            typeMultiFramLayout = new TypeMultiFramLayout();
            typeMultiFramLayout.multiFramLayout.Y = menuFram.Bottom + Application.GetRealHeight(32);
            typeMultiFramLayout.AddView(cornerBottomFram);
            typeMultiFramLayout.btnBottonRightName.TextID = StringId.dianshi;
            //初始值
            leftBtnTitle.IsSelected = true;
            leftBtnLine.IsSelected = true;
            leftBtnLine.Visible = true;
            rightBtnTitle.IsSelected = false;
            rightBtnLine.IsSelected = false;
            rightBtnLine.Visible = false;
            numberFrame.Visible = true;
            cornerBottomFram.Visible = false;
            //频道点击事件
            clickLeftLayout.MouseDownEventHandler += (sen, e) =>
            {
                leftBtnTitle.IsSelected = true;
                leftBtnLine.IsSelected = true;
                leftBtnLine.Visible = true;
                rightBtnTitle.IsSelected = false;
                rightBtnLine.IsSelected = false;
                rightBtnLine.Visible = false;
                numberFrame.Visible = true;
                cornerBottomFram.Visible = false;
                this.AdjustRealHeight(16);
            };
            //控制点击事件
            clickRightLayout.MouseDownEventHandler += (sen, e) =>
            {
                leftBtnTitle.IsSelected = false;
                leftBtnLine.IsSelected = false;
                leftBtnLine.Visible = false;
                rightBtnTitle.IsSelected = true;
                rightBtnLine.IsSelected = true;
                rightBtnLine.Visible = true;
                numberFrame.Visible = false;
                cornerBottomFram.Visible = true;
                this.AdjustRealHeight(-60);
            };
            this.AdjustRealHeight(16);
        }
        /// <summary>
        /// 按键控制
        /// </summary>
        /// <param name="keypad"><按键标识/param>
        /// <param name="keyName"><按键名称(打印用的)/param>
        private void KeyControl(string keypad, string keyName)
        {
            //CommonMethod.Current.Loading.Start();
            CommonMethod.Current.SunThread(() =>
            {
                try
                {
                    SendMethod.Current.KeypadExecute(remoteControl.deviceId, remoteControl.rcId, keypad, keyName);
                }
                catch { }
                finally
                {
                    CommonMethod.Current.MainThread(() =>
                    {
                        //CommonMethod.Current.Loading.Hide();
                    });
                }
            });
        }
    }
}