mac
2023-08-30 f17556d2ee4ade808f776653286690ab235463d5
HDL_ON/UI/UI2/FuntionControlView/HisenseTV /HisenseTvPage.cs
@@ -32,12 +32,13 @@
        /// 上一级界面的收藏控件
        /// </summary>
        private Button btnCollectionIcon;
        /// <summary>
        /// 头部布局
        /// </summary>
        private TopView topView;
        BaseFramLayout baseCloseFFL;
        /// <summary>
        ///中部布局
        /// </summary>
        VerticalScrolViewLayout vv;
        /// <summary>
        /// 当前设备名称
@@ -52,10 +53,11 @@
        /// </summary>
        private Button btnOpenCollectIcon;
        CustomFrameLayout shouyeFL;
        CustomFrameLayout kaiguanFL;
        CustomFrameLayout caidanFL;
        CustomFrameLayout kaijiFL;
        CustomFrameLayout guanFL;
        Button btn_jia;
        Button btn_jian;
        CustomButton caidanBtn;
        CustomButton bofangBtn;
        CustomButton zantingBtn;
        CustomButton kuaijinBtn;
@@ -66,12 +68,6 @@
        CustomButton fanhuiBtn;
        MenuFramLayout muenFrameLayout;
        SourceFrameLayout sourceFrameLayout;
        Button btnCloseCollectIcon;
        Button btnCloseCurrDeviceName;
        Button btnCloseCurrDeviceRoom;
        Button clickBtn;
        /// <summary>
        /// 表示来自那个界面
@@ -106,12 +102,10 @@
            //初始化UI
            this.InitTopUI();
            this.InitOpenUI();
            this.InitCloseUI();
            this.CurrentAssignPage();
            //初始化事件
            this.EventListener();
            //读取数据
            this.ReadData();
            //this.ReadData();
        }
@@ -143,9 +137,6 @@
                        //
                        this.btnOpenCurrDeviceName.Text = this.device.name;
                        this.btnOpenCurrDeviceRoom.Text = this.device.GetRoomListName();
                        //
                        this.btnCloseCurrDeviceName.Text = this.device.name;
                        this.btnCloseCurrDeviceRoom.Text = this.device.GetRoomListName();
                        this.CalculatedPosition();//重新计算宽度
                    });
@@ -166,7 +157,6 @@
            {
                btnOpenCollectIcon.IsSelected = this.device.collect = !btnOpenCollectIcon.IsSelected;
                this.device.CollectFunction();
                btnCloseCollectIcon.IsSelected = btnOpenCollectIcon.IsSelected;
                this.btnCollectionIcon.IsSelected = btnOpenCollectIcon.IsSelected;
            };
@@ -175,42 +165,36 @@
            {
                ControlCommand(HisenseTVFunctionalAttributeConstant.home_page, "");
            });
            //开机
            kaijiFL.SetClickListener((fl, btnImage, btnText) =>
            {
                ControlCommand(HisenseTVFunctionalAttributeConstant.on_off, "on");
            });
            //关机
            kaiguanFL.SetClickListener((fl, btnImage, btnText) =>
            guanFL.SetClickListener((fl, btnImage, btnText) =>
            {
                ControlCommand(HisenseTVFunctionalAttributeConstant.on_off, "off", (isBool) =>
                {
                    if (isBool)
                    {
                        CommonMethod.Current.MainThread(() =>
                        {
                            vv.Visible = false;
                            baseCloseFFL.Visible = true;
                        });
                    }
                    else
                    {
                        //提示:关机失败;
                    }
                });
            });
            //菜单
            caidanFL.SetClickListener((fl, btnImage, btnText) =>
            {
                ControlCommand(HisenseTVFunctionalAttributeConstant.operation, "11");
                ControlCommand(HisenseTVFunctionalAttributeConstant.on_off, "off");
            });
            //音量+
            btn_jia.MouseDownEventHandler += (sender, e) =>
            {
                btn_jia.IsSelected = true;
                ControlCommand(HisenseTVFunctionalAttributeConstant.volume_add, "");
            };
            //音量-
            btn_jian.MouseDownEventHandler += (sender, e) =>
            {
                btn_jian.IsSelected = true;
                ControlCommand(HisenseTVFunctionalAttributeConstant.volume_subtract, "");
            };
            //菜单
           caidanBtn.SetClickListener((btn) =>
            {
                ControlCommand(HisenseTVFunctionalAttributeConstant.operation, "11");
            });
            //播放
            bofangBtn.SetClickListener((btn) =>
            {
@@ -294,36 +278,6 @@
                var dic = p.GetHisenseSignalSourceDic();
                string value = p.GetValue(dic, key);
                ControlCommand(HisenseTVFunctionalAttributeConstant.signal, value);
            };
            //收藏(关机)
            this.btnCloseCollectIcon.MouseUpEventHandler += (sender, e) =>
            {
                btnCloseCollectIcon.IsSelected = this.device.collect = !btnCloseCollectIcon.IsSelected;
                this.device.CollectFunction();
                btnOpenCollectIcon.IsSelected = btnCloseCollectIcon.IsSelected;
                this.btnCollectionIcon.IsSelected = btnCloseCollectIcon.IsSelected;
            };
            //开机
            clickBtn.MouseDownEventHandler += (sen, e) =>
            {
                ControlCommand(HisenseTVFunctionalAttributeConstant.on_off, "on", (isBool) =>
                {
                    if (isBool)
                    {
                        CommonMethod.Current.MainThread(() =>
                        {
                            vv.Visible = true;
                            baseCloseFFL.Visible = false;
                        });
                    }
                    else
                    {
                        //提示:开机失败;
                    }
                });
            };
        }
@@ -443,32 +397,36 @@
            shouyeFL.AddImageView();
            shouyeFL.AddTextButtonView();
            shouyeFL.GetImageButton().UnSelectedImagePath = "HisenseTv/shouye.png";
            shouyeFL.GetImageButton().SelectedImagePath = "HisenseTv/shouyeSelected.png";
            shouyeFL.GetTextButton().TextID = StringId.shouye;
            kaiguanFL = new CustomFrameLayout();
            backgroundOpenFl.AddChidren(kaiguanFL);
            kaiguanFL.X = shouyeFL.Right + Application.GetRealWidth(37);
            kaiguanFL.Y = yHeight;
            kaiguanFL.AddImageView();
            kaiguanFL.AddTextButtonView();
            kaiguanFL.GetImageButton().UnSelectedImagePath = "HisenseTv/kaiguan.png";
            kaiguanFL.GetTextButton().TextID = StringId.guanji;
            kaijiFL = new CustomFrameLayout();
            backgroundOpenFl.AddChidren(kaijiFL);
            kaijiFL.X = shouyeFL.Right + Application.GetRealWidth(37);
            kaijiFL.Y = yHeight;
            kaijiFL.AddImageView();
            kaijiFL.AddTextButtonView();
            kaijiFL.GetImageButton().UnSelectedImagePath = "HisenseTv/kai.png";
            kaijiFL.GetImageButton().SelectedImagePath = "HisenseTv/kaiguanSelected.png";
            kaijiFL.GetTextButton().TextID = StringId.kaiji;
            caidanFL = new CustomFrameLayout();
            backgroundOpenFl.AddChidren(caidanFL);
            caidanFL.X = kaiguanFL.Right + Application.GetRealWidth(37);
            caidanFL.Y = yHeight;
            caidanFL.AddImageView();
            caidanFL.AddTextButtonView();
            caidanFL.GetImageButton().UnSelectedImagePath = "HisenseTv/caidan.png";
            caidanFL.GetTextButton().TextID = StringId.caidan;
            guanFL = new CustomFrameLayout();
            backgroundOpenFl.AddChidren(guanFL);
            guanFL.X = kaijiFL.Right + Application.GetRealWidth(37);
            guanFL.Y = yHeight;
            guanFL.AddImageView();
            guanFL.AddTextButtonView();
            guanFL.GetImageButton().UnSelectedImagePath = "HisenseTv/guan.png";
            guanFL.GetImageButton().SelectedImagePath = "HisenseTv/kaiguanSelected.png";
            //guanFL.GetImageButton().UnSelectedImagePath = "HisenseTv/caidan.png";
            guanFL.GetTextButton().TextID = StringId.guanji;
            var yinliangFL = new FrameLayout();
            backgroundOpenFl.AddChidren(yinliangFL);
            yinliangFL.Height = Application.GetRealHeight(200);
            yinliangFL.Height = Application.GetRealHeight(146);
            yinliangFL.Width = Application.GetRealWidth(68);
            yinliangFL.Y = shouyeFL.Bottom + Application.GetRealHeight(24);
            yinliangFL.Y = Application.GetRealHeight(260);
            yinliangFL.X = shouyeFL.X;
            yinliangFL.BackgroundColor = 0xffF2F3F7;
            yinliangFL.Radius = (uint)Application.GetRealHeight(34);
@@ -478,14 +436,15 @@
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "HisenseTv/yingliangjia.png",
                Y = Application.GetRealHeight(20),
                SelectedImagePath = "HisenseTv/yingliangjiaSelected.png",
                Y = Application.GetRealHeight(16),
                Gravity = Gravity.CenterHorizontal,
            };
            yinliangFL.AddChidren(btn_jia);
            Button btnText = new Button
            {
                Y = Application.GetRealHeight(90),
                Y = Application.GetRealHeight(63),
                Height = Application.GetRealHeight(20),
                //Text = "音量",
                TextID = StringId.yinliang,
@@ -497,24 +456,31 @@
            yinliangFL.AddChidren(btnText);
            btn_jian = new Button
            {
                Y = Application.GetRealHeight(148),
                Y = Application.GetRealHeight(98),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "HisenseTv/yingliangjian.png",
                SelectedImagePath = "HisenseTv/yingliangjianSelected.png",
                Gravity = Gravity.CenterHorizontal,
            };
            yinliangFL.AddChidren(btn_jian);
            btn_jia.MouseUpEventHandler += (sender, e) =>
            {
                btn_jia.IsSelected = false;
            };
            btn_jian.MouseUpEventHandler += (sender, e) =>
            {
                btn_jian.IsSelected = false;
            };
            caidanBtn = new CustomButton();
            caidanBtn.TextID = StringId.caidan;
            caidanBtn.Y = shouyeFL.Bottom + Application.GetRealHeight(24);
            caidanBtn.X = shouyeFL.X;
            backgroundOpenFl.AddChidren(caidanBtn);
            bofangBtn = new CustomButton();
            bofangBtn.TextID = StringId.bofang;
@@ -612,138 +578,7 @@
            #endregion
        }
        /// <summary>
        /// 初始化【关机】界面
        /// </summary>
        private void InitCloseUI()
        {
            #region   ---界面布局---
            baseCloseFFL = new BaseFramLayout
            {
                Y = topView.fLayout.Bottom,
                Height = Application.GetRealHeight(H_W.H - H_W.T_Height),
            };
            this.AddChidren(baseCloseFFL);
            var backgroundCloseFl = new FrameLayout
            {
                Y = Application.GetRealHeight(24),
                X = Application.GetRealWidth(24),
                Height = Application.GetRealHeight(526),
                Width = Application.GetRealWidth(327),
                BackgroundImagePath = "HisenseTv/offbj.png",
            };
            baseCloseFFL.AddChidren(backgroundCloseFl);
            baseCloseFFL.AdjustRealHeight(16);
            btnCloseCollectIcon = new Button
            {
                X = Application.GetRealWidth(273),
                Y = Application.GetRealHeight(14),
                Width = Application.GetRealWidth(40),
                Height = Application.GetRealWidth(40),
                UnSelectedImagePath = "MusicIcon/collect.png",
                SelectedImagePath = "MusicIcon/collectSelected.png",
                IsSelected = this.device.collect,
            };
            backgroundCloseFl.AddChidren(btnCloseCollectIcon);
            btnCloseCurrDeviceName = new Button
            {
                TextSize = TextSize.Text24,
                TextColor = MusicColor.Text18Color,
                Width = Application.GetRealWidth(160),
                Height = Application.GetRealHeight(33),
                Y = Application.GetRealHeight(16),
                X = Application.GetRealWidth(16),
                Text = this.device.name,
                TextAlignment = TextAlignment.CenterLeft,
                IsBold = true
            };
            backgroundCloseFl.AddChidren(btnCloseCurrDeviceName);
            btnCloseCurrDeviceRoom = new Button
            {
                TextSize = TextSize.Text12,
                TextColor = MusicColor.MusicNoTxetColor,
                Width = Application.GetRealWidth(160),
                Height = Application.GetRealHeight(17),
                Y = btnCloseCurrDeviceName.Bottom + Application.GetRealHeight(4),
                X = Application.GetRealWidth(16),
                Text = this.device.GetRoomListName(),
                TextAlignment = TextAlignment.CenterLeft,
            };
            backgroundCloseFl.AddChidren(btnCloseCurrDeviceRoom);
            var btnOffTvBj = new Button
            {
                Y = Application.GetRealHeight(108),
                Height = Application.GetRealWidth(198),
                Width = Application.GetRealWidth(198),
                UnSelectedImagePath = "HisenseTv/offtvbj.png",
                Gravity = Gravity.CenterHorizontal,
            };
            backgroundCloseFl.AddChidren(btnOffTvBj);
            var btnText = new Button
            {
                Y = btnOffTvBj.Bottom + Application.GetRealHeight(20),
                Width = Application.GetRealWidth(200),
                Height = Application.GetRealHeight(22),
                TextSize = TextSize.Text16,
                TextColor = MusicColor.TextColor,
                //Text = "已关机",
                TextID = StringId.yiguanji,
                TextAlignment = TextAlignment.Center,
                Gravity = Gravity.CenterHorizontal,
                Padding = new Padding(0, 16, 0, 16),
            };
            backgroundCloseFl.AddChidren(btnText);
            var offFl = new FrameLayout
            {
                Y = btnText.Bottom + Application.GetRealHeight(91),
                Width = Application.GetRealHeight(32),
                Height = Application.GetRealWidth(32 + 20),
                Gravity = Gravity.CenterHorizontal,
            };
            backgroundCloseFl.AddChidren(offFl);
            var btnOffIcon = new Button
            {
                Height = Application.GetRealWidth(32),
                Width = Application.GetRealWidth(32),
                UnSelectedImagePath = "HisenseTv/on.png",
                Gravity = Gravity.CenterHorizontal,
            };
            offFl.AddChidren(btnOffIcon);
            var btnOffText = new Button
            {
                Y = btnOffIcon.Bottom + Application.GetRealHeight(4),
                Height = Application.GetRealHeight(16),
                TextSize = TextSize.Text12,
                TextColor = MusicColor.TextCancelColor,
                TextID = StringId.kaiji,
                TextAlignment = TextAlignment.Center,
                Gravity = Gravity.CenterHorizontal,
                Padding = new Padding(0, 2, 0, 2),
            };
            offFl.AddChidren(btnOffText);
            clickBtn = new Button
            {
                Width = Application.GetRealHeight(32),
                Height = Application.GetRealWidth(32 + 20),
            };
            offFl.AddChidren(clickBtn);
            #endregion
        }
        /// <summary>
        /// 初始化头部
        /// </summary>
@@ -755,35 +590,7 @@
            this.topView.topNameBtn.TextID = StringId.dianshi;
            this.AddChidren(topView.TopFLayoutView());
        }
        /// <summary>
        /// 根据设备开关状态显示指定界面
        /// (进来的时候用到)
        /// </summary>
        /// <returns></returns>
        private void CurrentAssignPage()
        {
            CommonMethod.Current.MainThread(() =>
            {
                if (this.device == null)
                {
                    vv.Visible = false;
                    baseCloseFFL.Visible = true;
                    return;
                }
                if (this.device.GetAttrState("on_off") == "on" || this.device.GetAttrState("on_off") == "1")
                {
                    vv.Visible = true;
                    baseCloseFFL.Visible = false;
                }
                else
                {
                    vv.Visible = false;
                    baseCloseFFL.Visible = true;
                }
            });
        }
        /// <summary>
        /// 重新计算宽度(设备名称,房间控件)
@@ -804,23 +611,6 @@
            {
                //重新计算宽度
                this.btnOpenCurrDeviceRoom.Width = this.btnOpenCollectIcon.X + Application.GetRealWidth(-20 - 10);
            }
            //关机状态
            this.btnCloseCurrDeviceName.Width = this.btnCloseCurrDeviceName.GetTextWidth();
            this.btnCloseCurrDeviceName.Width += 10;
            if (this.btnCloseCurrDeviceName.GetTextWidth() > this.btnCloseCollectIcon.X)
            {
                //重新计算宽度
                this.btnCloseCurrDeviceName.Width = this.btnCloseCollectIcon.X + Application.GetRealWidth(-10);
            }
            this.btnCloseCurrDeviceRoom.Width = this.btnCloseCurrDeviceRoom.GetTextWidth();
            this.btnCloseCurrDeviceRoom.Width += 10;
            if (this.btnCloseCurrDeviceRoom.GetTextWidth() > this.btnCloseCollectIcon.X)
            {
                //重新计算宽度
                this.btnCloseCurrDeviceRoom.Width = this.btnCloseCollectIcon.X + Application.GetRealWidth(-20 - 10);
            }
            //this.cellFrame.X = this.btnCurrDeviceRoom.Right + Application.GetRealWidth(20);
        }
@@ -858,6 +648,7 @@
            TextID = StringId.dangqianmenweiguan,
            TextSize = TextSize.Text14,
            TextColor = MusicColor.TextColor,
            SelectedTextColor= MusicColor.MusicTxet14SelectedColor,
            TextAlignment = TextAlignment.Center,
            Gravity = Gravity.CenterHorizontal,
            Name = "btnText",
@@ -891,7 +682,8 @@
        {
            EventHandler<MouseEventArgs> DownClick = (sender, e) =>
            {
                //this.BackgroundColor = 0xFFF2F3F7;
                btnImage.IsSelected = true;
                //btnText.IsSelected = true;
                action?.Invoke(this, btnImage, btnText);
            };
            this.MouseDownEventHandler += DownClick;
@@ -901,7 +693,8 @@
            EventHandler<MouseEventArgs> UpClick = (sender, e) =>
             {
                 //this.BackgroundColor = 0x00000000;
                 btnImage.IsSelected = false;
                 //btnText.IsSelected = false;
             };
            this.MouseUpEventHandler += UpClick;
            btnImage.MouseUpEventHandler += UpClick;
@@ -923,9 +716,11 @@
            this.Height = Application.GetRealHeight(38);
            this.TextSize = 14;
            this.TextColor = MusicColor.TextColor;
            this.SelectedTextColor = MusicColor.MusicTxet14SelectedColor;
            this.TextAlignment = TextAlignment.Center;
            this.IsMoreLines = true;
            this.BackgroundColor = 0xffECEDEE;
            this.SelectedBackgroundColor = 0xFFF2F3F7;
            this.Radius = (uint)Application.GetRealHeight(30);
        }
@@ -937,7 +732,8 @@
        {
            EventHandler<MouseEventArgs> DownClick = (sender, e) =>
            {
                this.BackgroundColor = 0xFFF2F3F7;
                //this.BackgroundColor = 0xFFF2F3F7;
                this.IsSelected = true;
                action?.Invoke(this);
            };
            this.MouseDownEventHandler += DownClick;
@@ -945,7 +741,8 @@
            EventHandler<MouseEventArgs> UpClick = (sender, e) =>
            {
                this.BackgroundColor = 0xffECEDEE;
                //this.BackgroundColor = 0xffECEDEE;
                this.IsSelected = false;
            };
            this.MouseUpEventHandler += UpClick;