wjc
2023-08-14 a4e9d02ce5cfc501ef9fecac0047c332b5426df2
HDL_ON/UI/UI2/FuntionControlView/Aks/YkPage.cs
@@ -1,53 +1,72 @@
using Shared;
using System;
using System.Collections.Generic;
using System.Text;
using HDL_ON.UI.CSS;
using HDL_ON.Entity;
using HDL_ON.DriverLayer;
using HDL_ON.UI.Music;
using HDL_ON.UI.UI2.Intelligence.Automation;
using System.Linq;
using HDL_ON.UI.UI2.FuntionControlView.Aks.CommonView;
using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
using HDL_ON.UI.UI2.FuntionControlView.Aks.Entity;
namespace HDL_ON.UI.UI2.FuntionControlView.Aks
{
    /// <summary>
    /// 影库界面
    /// </summary>
    public class YkPage:FrameLayout
    public class YkPage : FrameLayout
    {
        /// <summary>
        ///
        /// </summary>
        /// <param name="remoteControlEntity">遥控器对象</param>
        public YkPage(RemoteControlEntity remoteControlEntity)
        {
            this.remoteControl = remoteControlEntity;
        }
        /// <summary>
        /// 当前的遥控器对象
        /// </summary>
        RemoteControlEntity remoteControl;
        /// <summary>
        /// 影片分类列表
        /// </summary>
        List<FilterCategoryEntity> mFilterCategoryList;
        /// <summary>
        /// 影片列表
        /// </summary>
        List<MovieLibrary> mMovieLibraryList;
        /// <summary>
        /// 头部布局
        /// </summary>
        private TopView topView;
        TopView topView;
        FrameLayout fLayout;
        /// <summary>
        /// 删除设备后需要更新界面的回调
        /// 影片上下滑动父容器
        /// </summary>
        public Action action;
        VerticalRefreshLayout vv;
        /// <summary>
        /// 水平滑动父容器
        /// </summary>
        CornerFramLayout horizontalFl;
        CornerFramLayout imageFLayout;
        /// <summary>
        /// 页数
        /// </summary>
        private int pageNo = 1;
        public YkPage()
        {
        }
        public void Show()
        {
            //初始化UI
            this.InitTop();
            this.InitMiddle();
            //初始化事件
            this.EventListener();
            this.InitUI();
            //读取数据
            this.ReadData();
        }
        /// <summary>
        /// 初始化头部界面
        /// 初始化界面
        /// </summary>
        private void InitTop()
        private void InitUI()
        {
            this.BackgroundColor = MusicColor.ViewColor;
            this.topView = new TopView();
@@ -57,123 +76,129 @@
            this.topView.setBtn.UnSelectedImagePath = "Collection/CollectionGrayIcon.png";
            this.topView.topNameBtn.TextID = StringId.yingku;
            this.AddChidren(topView.TopFLayoutView());
        }
        /// <summary>
        /// 初始化中部界面
        /// </summary>
        private void InitMiddle()
        {
            var fLayout = new FrameLayout {
            fLayout = new FrameLayout
            {
                Y = topView.fLayout.Bottom,
                Height = Application.GetRealHeight(H_W.H - H_W.T_Height),
                BackgroundColor = MusicColor.WhiteColor,
            };
            this.AddChidren(fLayout);
            BaseFramLayout typeFLayout = new BaseFramLayout();
            fLayout.AddChidren(typeFLayout);
            int span= 20;//间隔
            int x= 16;//X轴偏移量
            int width =375-x;
            int height = 28;
            HorizontalFramLayout horizontalFram = new HorizontalFramLayout(width, height);
            typeFLayout.AddChidren(horizontalFram);
            horizontalFram.Y = Application.GetRealHeight(span);
            horizontalFram.X = Application.GetRealHeight(x);
            horizontalFram.SetIndex(2);
            horizontalFram.SetList(horizontalFram.GetTestData);
            horizontalFram.InitControl();
            horizontalFram.SelectTypeEvent += (index) => {
                Console.WriteLine("1");
            };
            HorizontalFramLayout horizontalFram1 = new HorizontalFramLayout(width, height);
            typeFLayout.AddChidren(horizontalFram1);
            horizontalFram1.Y = horizontalFram.Bottom + Application.GetRealHeight(span);
            horizontalFram1.X = Application.GetRealHeight(x);
            horizontalFram1.SetIndex(2);
            horizontalFram1.SetList(horizontalFram1.GetTestData);
            horizontalFram1.InitControl();
            horizontalFram1.SelectTypeEvent += (index) => {
                Console.WriteLine("2");
            };
            HorizontalFramLayout horizontalFram2 = new HorizontalFramLayout(width, height);
            typeFLayout.AddChidren(horizontalFram2);
            horizontalFram2.Y = horizontalFram1.Bottom + Application.GetRealHeight(span);
            horizontalFram2.X = Application.GetRealHeight(x);
            horizontalFram2.SetIndex(2);
            horizontalFram2.SetList(horizontalFram2.GetTestData);
            horizontalFram2.InitControl();
            horizontalFram2.SelectTypeEvent += (index) => {
                Console.WriteLine("3");
            };
            HorizontalFramLayout horizontalFram3 = new HorizontalFramLayout(width, height);
            typeFLayout.AddChidren(horizontalFram3);
            horizontalFram3.Y = horizontalFram2.Bottom + Application.GetRealHeight(span);
            horizontalFram3.X = Application.GetRealHeight(x);
            horizontalFram3.SetIndex(2);
            horizontalFram3.SetList(horizontalFram3.GetTestData);
            horizontalFram3.InitControl();
            horizontalFram3.SelectTypeEvent += (index) => {
                Console.WriteLine("4");
            };
            typeFLayout.AdjustRealHeight();
            var vv = new VerticalRefreshLayout()
            //this.LoadFTypeLayout();
            //this.LoadImageFLayout();
            //返回
            this.topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
            {
                Y = typeFLayout.Bottom,
                Height = fLayout.Height- typeFLayout.Bottom,
                this.RemoveFromParent();
            };
            fLayout.AddChidren(vv);
            vv.BeginHeaderRefreshingAction += () =>
            {
                //关闭刷新View;
                vv.EndHeaderRefreshing();
            };
            CornerFramLayout imageFLayout = new CornerFramLayout(343, 20 * 168, 3, 0);
            vv.AddChidren(imageFLayout);
            imageFLayout.X = Application.GetRealWidth(16);
            imageFLayout.SetList(imageFLayout.GetTestList(20));
            imageFLayout.LoadImagePage();
            imageFLayout.selectAction += (index) =>
            //收藏点击事件
            this.topView.clickSetBtn.MouseUpEventHandler += (sender, e) =>
            {
                CommonMethod.Current.MainThread(() =>
                {
                    DetailPage detailPage = new DetailPage();
                    CollectPage collectPage = new CollectPage(remoteControl);
                    MainPage.BasePageView.AddChidren(collectPage);
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    collectPage.Show();
                });
            };
        }
        /// <summary>
        /// 加载分类布局
        /// </summary>
        private void LoadFTypeLayout()
        {
            fLayout.RemoveAll();
            int count = this.mFilterCategoryList == null ? 0 : this.mFilterCategoryList.Count;
            horizontalFl = new CornerFramLayout(375, count * 75);
            fLayout.AddChidren(horizontalFl);
            horizontalFl.LoadHorizontalPage(this.mFilterCategoryList);
            horizontalFl.AdjustRealHeight(20);
            vv = new VerticalRefreshLayout()
            {
                Y = horizontalFl.Bottom,
                Height = fLayout.Height - horizontalFl.Bottom,
            };
            fLayout.AddChidren(vv);
            //二级过滤事件
            horizontalFl.selectKeyAction += (filters) =>
            {
            };
        }
        /// <summary>
        /// 加载影片列表布局
        /// </summary>
        private void LoadImageFLayout()
        {
            if (vv == null)
            {
                return;
            }
            vv.RemoveAll();
            int count =this.mMovieLibraryList == null ? 0 : this.mMovieLibraryList.Count;
            imageFLayout = new CornerFramLayout(343, count * 168, 0);
            vv.AddChidren(imageFLayout);
            imageFLayout.X = Application.GetRealWidth(16);
            imageFLayout.LoadImagePage(this.mMovieLibraryList);
            imageFLayout.AdjustRealHeight(16);
            //影片事件
            imageFLayout.selectImageAction += (movieLibrary) =>
            {
                CommonMethod.Current.MainThread(() =>
                {
                    DetailPage detailPage = new DetailPage(remoteControl, movieLibrary);
                    MainPage.BasePageView.AddChidren(detailPage);
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    detailPage.Show();
                });
            };
            imageFLayout.AdjustRealHeight(16);
            //下拉刷新
            vv.BeginHeaderRefreshingAction += () =>
            {
                //关闭刷新View;
                vv.EndHeaderRefreshing();
            };
        }
        /// <summary>
        /// 注册事件
        /// </summary>
        private void EventListener()
        {
            //返回
            this.topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
            {
                this.RemoveFromParent();
            };
            //设置
            this.topView.clickSetBtn.MouseUpEventHandler += (sender, e) =>
            {
                CommonMethod.Current.MainThread(() =>
                {
                    CollectPage collectPage = new CollectPage();
                    MainPage.BasePageView.AddChidren(collectPage);
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    collectPage.Show();
                });
            };
        /// <summary>
        /// 初始数据
        /// </summary>
        private void ReadData()
        {
            CommonMethod.Current.Loading.Start();
            CommonMethod.Current.SunThread(() =>
            {
                try
                {
                    this.mFilterCategoryList = SendMethod.Current.GetFilterCategoryLits(this.remoteControl.deviceId, this.remoteControl.rcId);
                    this.mMovieLibraryList = SendMethod.Current.GetMovieLibraryPage(this.remoteControl.deviceId, this.remoteControl.rcId, new List<Filters>(), pageNo, SendMethod.pageSize);
                    for (int i = 0; i < this.mMovieLibraryList.Count; i++)
                    {
                        var mMovieLibrary = this.mMovieLibraryList[i];
                        var bytes = SendMethod.Current.GetImage(mMovieLibrary.posterUrl);
                        mMovieLibrary.imageBytes = bytes;
                    }
                }
                catch { }
                finally
                {
                    CommonMethod.Current.MainThread(() =>
                    {
                        CommonMethod.Current.Loading.Hide();
                        this.LoadFTypeLayout();
                        this.LoadImageFLayout();
                    });
                }
            });
        }
    }