wjc
2023-08-10 ff423b88a0dc521932305b5bd44b1786d3e42722
2023年08月10日18:47:45

备份一下
11个文件已修改
578 ■■■■■ 已修改文件
HDL_ON/UI/UI2/FuntionControlView/Aks/AksPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Aks/CollectPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Aks/CommonView/CornerFramLayout.cs 135 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Aks/CommonView/HorizontalFramLayout.cs 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Aks/CommonView/ImageFramlayout.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Aks/Entity/FilterCategoryEntity.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Aks/Entity/KeypadEntity.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Aks/Entity/MovieLibraryEntity.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Aks/MusicPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Aks/SendMethod.cs 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Aks/YkPage.cs 261 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Aks/AksPage.cs
@@ -340,7 +340,7 @@
            {
                re = new RemoteControlEntity();
            }
            re.deviceId = this.device.deviceId;
            //re.deviceId = this.device.deviceId;
            return re;
        }
HDL_ON/UI/UI2/FuntionControlView/Aks/CollectPage.cs
@@ -76,7 +76,7 @@
            CornerFramLayout imageFLayout = new CornerFramLayout(343, 20 * 168, 0);
            vv.AddChidren(imageFLayout);
            imageFLayout.X = Application.GetRealWidth(16);
            imageFLayout.LoadImagePage(new List<Entity.KeypadEntity>());
            imageFLayout.LoadImagePage(new List<Entity.MovieLibrary>());
            imageFLayout.selectAction += (index) =>
            {
                CommonMethod.Current.MainThread(() =>
HDL_ON/UI/UI2/FuntionControlView/Aks/CommonView/CornerFramLayout.cs
@@ -25,10 +25,6 @@
        private int mListCount;
        public Action<KeypadEntity> selectAction = null;
        /// <summary>
        /// 当前选择的索引(内部使用)
        /// </summary>
        private int CurrnetSelectIndex = -1;
        /// <summary>
@@ -76,8 +72,13 @@
        /// </summary>
        /// <param name="mList">列表</param>
        /// <param name="mRowNumber">一行多少个元素</param>
        public void LoadButtonPage(List<KeypadEntity> mList, int mRowNumber)
        /// <param name="defaultIndex">默认值索引范围[0,mList.count-1],大于范围,该值视为无效</param>
        public void LoadButtonPage(List<KeypadEntity> mList, int mRowNumber, int defaultIndex = -1)
        {
            if (mList == null || mList.Count == 0)
            {
                return;
            }
            if (mRowNumber == 0)
            {
                return;
@@ -116,15 +117,18 @@
                }
                buttonFram.SetClickListener((fl, btnIcon, btnName) =>
                {
                    if (buttonFram.Tag != null)
                    if (buttonFram.Tag != null&& buttonFram.Tag is KeypadEntity)
                    {
                        selectAction?.Invoke((KeypadEntity)buttonFram.Tag);
                    }
                });
                //if (CurrnetSelectIndex != -1 && CurrnetSelectIndex == i)
                //if (defaultIndex != -1 && defaultIndex == i)
                //{
                //    selectAction?.Invoke((int)buttonFram.Tag);
                //    if (buttonFram.Tag != null && buttonFram.Tag is KeypadEntity)
                //    {
                //        selectAction?.Invoke((KeypadEntity)buttonFram.Tag);
                //    }
                //}
@@ -136,9 +140,13 @@
        /// </summary>
        /// <param name="mList">列表</param>
        /// <param name="list">列表中索引,表示某一条宽度加宽</param>
        public void LoadButtonPage(List<KeypadEntity> mList, List<int> list)
        /// <param name="defaultIndex">默认值索引范围[0,mList.count-1],大于范围,该值视为无效</param>
        public void LoadButtonPage(List<KeypadEntity> mList, List<int> list,int defaultIndex=-1)
        {
            if (mList == null || mList.Count == 0)
            {
                return;
            }
            int currnetheightValue = 0;
            int currnetWidthValue = 0;
            //获取相对一个纬度值
@@ -190,15 +198,18 @@
                buttonFram.SetClickListener((fl, btnIcon, btnName) =>
                {
                    if (buttonFram.Tag != null)
                    if (buttonFram.Tag != null&& buttonFram.Tag is KeypadEntity)
                    {
                        selectAction?.Invoke((KeypadEntity)buttonFram.Tag);
                    }
                });
                //if (CurrnetSelectIndex != -1 && CurrnetSelectIndex == i)
                //if (defaultIndex != -1 && defaultIndex == i)
                //{
                //    selectAction?.Invoke((int)buttonFram.Tag);
                //    if (buttonFram.Tag != null && buttonFram.Tag is KeypadEntity)
                //    {
                //        selectAction?.Invoke((KeypadEntity)buttonFram.Tag);
                //    }
                //}
            }
        }
@@ -206,9 +217,14 @@
        /// <summary>
        ///动态加载数字按键界面
        /// </summary>
        /// <param name="mList">列表</param>
        /// <param name="defaultIndex">默认值索引范围[0,mList.count-1],大于范围,该值视为无效</param>
        public void LoadNumberButtonPage(List<KeypadEntity> mList)
        {
            if (mList == null || mList.Count == 0)
            {
                return;
            }
            int currnetheightValue = 0;
            int currnetWidthValue = 0;
            int heightMaxValue = 84;
@@ -216,9 +232,9 @@
            //获取相对一个纬度值
            int heightDimensionValue = this.Height - Application.GetRealHeight(this.topMargin) - Application.GetRealHeight(this.bottomMargin) - Application.GetRealHeight(heightMaxValue / 2);
            int widthDimensionValue = this.Width - Application.GetRealWidth(this.leftMargin) - Application.GetRealWidth(this.rightMargin) - Application.GetRealHeight(widthMaxValue / 2);
            for (int i = 1; i <= mList.Count; i++)
            for (int i = 0; i <mList.Count; i++)
            {
                var keypad = mList[i - 1];
                var keypad = mList[i];
                Button button = new Button
                {
                    Y = Application.GetRealHeight(this.topMargin) + Application.GetRealHeight(currnetheightValue),
@@ -256,7 +272,7 @@
                    button.IsSelected = false;
                };
                //if (CurrnetSelectIndex != -1 && CurrnetSelectIndex == i)
                //if (defaultIndex != -1 && defaultIndex == i)
                //{
                //    selectAction?.Invoke((int)buttonFram.Tag);
                //}
@@ -265,9 +281,16 @@
        /// <summary>
        /// 动态加载图片界面
        /// 影片布局
        /// </summary>
        public void LoadImagePage(List<KeypadEntity> mList)
        /// <param name="mList">列表</param>
        /// <param name="defaultIndex">默认值索引范围[0,mList.count-1],大于范围,该值视为无效</param>
        public void LoadImagePage(List<MovieLibrary> mList)
        {
            if (mList == null || mList.Count == 0)
            {
                return;
            }
            int currnetheightValue = 0;
            int currnetWidthValue = 0;
            int heightMaxValue = ImageFramlayout.heightFrameLayout;
@@ -275,15 +298,17 @@
            //获取相对一个纬度值
            int heightDimensionValue = this.Height - Application.GetRealHeight(this.topMargin) - Application.GetRealHeight(this.bottomMargin) - Application.GetRealHeight(heightMaxValue / 2);
            int widthDimensionValue = this.Width - Application.GetRealWidth(this.leftMargin) - Application.GetRealWidth(this.rightMargin) - Application.GetRealHeight(widthMaxValue / 2);
            for (int i = 1; i <= mList.Count; i++)
            for (int i = 0; i < mList.Count; i++)
            {
                var keypad = mList[i - 1];
                var movieLibrary = mList[i];
                ImageFramlayout imageFram = new ImageFramlayout();
                imageFram.AddView(this);
                imageFram.Tag = keypad;
                imageFram.Tag = movieLibrary;
                imageFram.Y = Application.GetRealHeight(this.topMargin) + Application.GetRealHeight(currnetheightValue);
                imageFram.X = Application.GetRealWidth(currnetWidthValue);
                imageFram.btnName.Text = keypad.name;
                imageFram.btnName.Text = movieLibrary.name;
                imageFram.btnImage.ImageBytes = movieLibrary.imageBytes;
                imageFram.btnScore.Text = movieLibrary.rating;
                currnetWidthValue += (widthMaxValue + 8);//8是隔间值
                if (widthDimensionValue < Application.GetRealWidth(currnetWidthValue))
                {
@@ -293,7 +318,7 @@
                imageFram.SetClickListener((fl) =>
                {
                    if (imageFram.Tag != null)
                    if (imageFram.Tag != null&& imageFram.Tag is KeypadEntity)
                    {
                        selectAction?.Invoke((KeypadEntity)imageFram.Tag);
                    }
@@ -306,11 +331,16 @@
        }
        /// <summary>
        /// 动态加载图片界面
        /// 影片布局
        /// </summary>
        /// <param name="mRowNumber">一行多少个元素</param>
        /// <param name="defaultIndex">默认值索引范围[0,mList.count-1],大于范围,该值视为无效</param>
        public void LoadImagePage(List<KeypadEntity> mList, int mRowNumber)
        {
            if (mList == null || mList.Count == 0)
            {
                return;
            }
            if (mRowNumber == 0)
            {
                return;
@@ -352,16 +382,61 @@
            }
        }
        /// <summary>
        /// 设置初始选择(请在初始化完成之前调用)
        /// <summary>
        /// 水平滑动布局
        /// </summary>
        /// <param name="index">从列表0开始计算第一个元素,设置超过列表最大(new List().count-1)值视为无效</param>
        public void SetIndex(int index = -1)
        /// <param name="mList">列表</param>
        /// <param name="defaultIndex">默认值索引范围[0,mList.count-1],大于范围,该值视为无效</param>
        public void LoadHorizontalPage(List<FilterCategoryEntity> mList, int defaultIndex = -1)
        {
            if (index == -1) { return; }
            this.CurrnetSelectIndex = index;
            if (mList == null || mList.Count == 0)
            {
                return;
            }
            for (int i = 0; i < mList.Count; i++)
            {
                var filterCategory = mList[i];
                BaseFramLayout horizontalFL = new BaseFramLayout
                {
                    Y = Application.GetRealHeight(i * 75),
                    Height = Application.GetRealHeight(75),
                    Width = this.Width,
                };
                this.AddChidren(horizontalFL);
                Button btnTitleType = new Button
                {
                    X = Application.GetRealWidth(16),
                    Y = Application.GetRealHeight(16),
                    Height = Application.GetRealHeight(22),
                    Width = Application.GetRealWidth(200),
                    Text = filterCategory.name,
                    TextSize = TextSize.Text16,
                    TextColor = MusicColor.TextColor,
                    TextAlignment = TextAlignment.CenterLeft,
                    IsBold = true,
                    Tag = filterCategory,
                };
                horizontalFL.AddChidren(btnTitleType);
                HorizontalFramLayout horizontal = new HorizontalFramLayout(375 - 16, 28);
                horizontalFL.AddChidren(horizontal);
                horizontal.Y = btnTitleType.Bottom + Application.GetRealHeight(8);
                horizontal.X = Application.GetRealWidth(16);
                horizontal.SelectTypeEvent += (filters) =>
                {
                    KeypadEntity keypad = new KeypadEntity();
                    keypad.category = filters.category;
                    keypad.filterValue = filters.filterValue;
                    keypad.filterName = filters.filterName;
                    selectAction?.Invoke(keypad);
                };
                horizontal.InitControl(filterCategory.filters, defaultIndex);
            }
        }
        /// <summary>
        /// 最后一行
        /// </summary>
HDL_ON/UI/UI2/FuntionControlView/Aks/CommonView/HorizontalFramLayout.cs
@@ -2,6 +2,7 @@
using Shared;
using HDL_ON.UI.Music;
using System.Collections.Generic;
using HDL_ON.UI.UI2.FuntionControlView.Aks.Entity;
namespace HDL_ON.UI.UI2.FuntionControlView.Aks.CommonView
{
@@ -21,44 +22,42 @@
            this.Width = Application.GetRealWidth(width);
        }
        private List<string> mList = new List<string>();
        /// <summary>
        /// 选择事件
        /// </summary>
        public Action<int> SelectTypeEvent = null;
        /// <summary>
        /// 当前选择的索引(内部使用)
        /// </summary>
        private int CurrnetSelectIndex = -1;
        public Action<Filters> SelectTypeEvent = null;
        /// <summary>
        /// 初始化控件
        /// </summary>
        public void InitControl()
        /// <param name="mList">显示数据列表</param>
        /// <param name="defaultIndex">默认值索引范围[0,mList.count-1],大于范围,该值视为无效</param>
        public void InitControl(List<Filters> mList, int defaultIndex = -1)
        {
            if (this.mList == null || this.mList.Count == 0)
            if (mList == null || mList.Count == 0)
            {
                return;
            }
            bool isBool = false;
            Button btnSelected = new Button();
            for (int i = 0; i < this.mList.Count; i++)
            for (int i = 0; i < mList.Count; i++)
            {
                var filters = mList[i];
                Button button = new Button
                {
                    Height = Application.GetRealHeight(28),
                    Width = Application.GetRealWidth(20),
                    SelectedBackgroundColor = MusicColor.ViewColor,
                    BackgroundColor = 0x00000000,
                    Text = mList[i],
                    Text = mList[i].filterName,
                    TextSize = TextSize.Text14,
                    TextColor = MusicColor.TextColor,
                    SelectedTextColor = MusicColor.MusicTxet14SelectedColor,
                    TextAlignment = TextAlignment.Center,
                    Padding = new Padding(4, 4, 4, 4),
                    Radius = (uint)Application.GetRealHeight(4),
                    Tag = i,
                    Tag = filters,
                };
                //重新计算组件宽度
@@ -77,67 +76,38 @@
                    btnSelected.IsSelected = false;
                    button.IsSelected = true;
                    btnSelected = button;
                    if (button.Tag == null)
                    if (button.Tag == null || !(button.Tag is Filters))
                    {
                        return;
                    }
                    SelectTypeEvent?.Invoke((int)button.Tag);
                    SelectTypeEvent?.Invoke((Filters)button.Tag);
                };
                if (CurrnetSelectIndex != -1 && CurrnetSelectIndex == i)
                if (defaultIndex != -1 && defaultIndex == i)
                {
                    btnSelected.IsSelected = false;
                    button.IsSelected = true;
                    btnSelected = button;
                    if (button.Tag == null)
                    {
                        return;
                    }
                    SelectTypeEvent?.Invoke((int)button.Tag);
                    isBool = true;
                }
            }
        }
        /// <summary>
        /// 设置初始选择(请在初始化完成之前调用)
        /// </summary>
        /// <param name="index">从列表0开始计算第一个元素,设置超过列表最大(new List().count-1)值视为无效</param>
        public void SetIndex(int index = -1)
        {
            if (index == -1) { return; }
            this.CurrnetSelectIndex = index;
        }
        /// <summary>
        /// 设置列表数据(请在初始化完成之前调用)
        /// </summary>
        public void SetList(List<string> list)
        {
            if (list == null)
            if (isBool)
            {
                this.mList = new List<string>();
            }
            this.mList = list;
                if (defaultIndex < mList.Count)
                {
                    //默认索引回调,初始化时执行
                    SelectTypeEvent?.Invoke(mList[defaultIndex]);
                }
        }
        /// <summary>
        /// 测试数据
        /// </summary>
        public List<string> GetTestData
        {
            get
            {
                return new List<string> { "4245725454", "2", "类型", "中国电影", "全部类型", "类型发送地哦哦哦", "中国电影感觉对酒当歌", "全部类型", };
            }
        }
        /// <summary>
        /// 控件摧毁
        /// </summary>
HDL_ON/UI/UI2/FuntionControlView/Aks/CommonView/ImageFramlayout.cs
@@ -17,13 +17,11 @@
            this.BackgroundColor = 0x00000000;
        }
        public Button btnImage = new Button
        public ImageView btnImage = new ImageView
        {
            Height = Application.GetRealHeight(140),
            Width = Application.GetRealWidth(109),
            Radius = (uint)Application.GetRealHeight(12),
            //UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
            BackgroundColor=0xff765876,
        };
        public Button btnScore = new Button
HDL_ON/UI/UI2/FuntionControlView/Aks/Entity/FilterCategoryEntity.cs
@@ -9,11 +9,11 @@
    public class FilterCategoryEntity
    {
        /// <summary>
        /// 分类标识
        /// 一级分类标识
        /// </summary>
        public string category = string.Empty;
        /// <summary>
        /// 分类名称(一级)
        /// 一级分类名称
        /// </summary>
        public string name = string.Empty;
@@ -26,28 +26,18 @@
    public class Filters
    {
        /// <summary>
        /// 分类过滤值
        /// 一级分类标识(自定义)
        /// </summary>
        public string category = string.Empty;
        /// <summary>
        /// 二级分类过滤值
        /// </summary>
        public string filterValue = string.Empty;
        /// <summary>
        /// 分类过名称(二级)
        /// 二级分类过名称
        /// </summary>
        public string filterName = string.Empty;
    }
    /// <summary>
    /// 分类过滤
    /// </summary>
    public class FilterCategorys
    {
        /// <summary>
        /// 分类标识
        /// </summary>
        public string category = string.Empty;
        /// <summary>
        /// 分类过滤值
        /// </summary>
        public string filterValue = string.Empty;
    }
}
HDL_ON/UI/UI2/FuntionControlView/Aks/Entity/KeypadEntity.cs
@@ -4,7 +4,7 @@
    /// <summary>
    /// 按键实体
    /// </summary>
    public class KeypadEntity
    public class KeypadEntity: Filters
    {
        /// <summary>
        /// 按键识别码
HDL_ON/UI/UI2/FuntionControlView/Aks/Entity/MovieLibraryEntity.cs
@@ -48,6 +48,10 @@
        /// 评分
        /// </summary>
        public string rating = string.Empty;
        /// <summary>
        /// 影片数据
        /// </summary>
        public byte[] imageBytes;
    }
}
HDL_ON/UI/UI2/FuntionControlView/Aks/MusicPage.cs
@@ -61,7 +61,7 @@
            typeSingleFramLayout.SetClickListener((f) =>
            {
                YkPage ykPage = new YkPage();
                YkPage ykPage = new YkPage(this.remoteControl);
                MainPage.BasePageView.AddChidren(ykPage);
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                ykPage.Show();
HDL_ON/UI/UI2/FuntionControlView/Aks/SendMethod.cs
@@ -34,7 +34,7 @@
            }
        }
        public const int pageSize=20;
        #region  ------时序器-------
        /// <summary>
@@ -95,7 +95,7 @@
        /// <param name="deviceId">设备id</param>
        /// <param name="tipType">是否需要提示,默认提示</param>
        /// <returns>返回结果不会为null</returns>
        public List<RemoteControlEntity> GetRemoteControlLits(string deviceId,TipType tipType = TipType.flicker)
        public List<RemoteControlEntity> GetRemoteControlLits(string deviceId, TipType tipType = TipType.flicker)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
@@ -105,12 +105,20 @@
            {
                return new List<RemoteControlEntity>();
            }
            var RemoteControlEntityList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RemoteControlEntity>>(responsePackNew.Data.ToString());
            if (RemoteControlEntityList == null)
            {
            var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<RemoteControlEntity>>(responsePackNew.Data.ToString());
            if (list == null)
            {
                return new List<RemoteControlEntity>();
            }
            return RemoteControlEntityList;
            if (list.Count > 0)
            {
                for (int i = 0; i < list.Count; i++)
                {
                    var remoteControl = list[i];
                    remoteControl.deviceId = deviceId;
                }
            }
            return list;
        }
        /// <summary>
@@ -161,7 +169,18 @@
            if (list == null)
            {
                return new List<FilterCategoryEntity>();
            }
            }
            if (list.Count > 0)
            {
                for (int i = 0; i < list.Count; i++)
                {
                    var filterCategory = list[i];
                    foreach (var o in filterCategory.filters)
                    {
                        o.category = filterCategory.category;
                    }
                }
            }
            return list;
        }
@@ -174,27 +193,32 @@
        /// <param name="pageNo">当前页</param>
        /// <param name="pageSize">页数</param>
        /// <param name="tipType">是否需要提示,默认提示</param>
        public List<MovieLibrary> GetMovieLibraryPage(string deviceId, string rcId, List<FilterCategorys> filterCategorys, int pageNo, int pageSize, TipType tipType = TipType.flicker)
        /// <returns>返回结果不会为null</returns>
        public List<MovieLibrary> GetMovieLibraryPage(string deviceId, string rcId, List<Filters> filterCategorys, int pageNo, int pageSize, TipType tipType = TipType.flicker)
        {
            JObject jObject = new JObject();
            JArray jArray = new JArray();
            jObject.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            jObject.Add("deviceId", deviceId);//设备id
            jObject.Add("rcId", rcId);//遥控器id
            foreach (var filter in filterCategorys)
            if (filterCategorys != null && filterCategorys.Count != 0)
            {
                JObject obj = new JObject();
                obj.Add("category", filter.category);
                obj.Add("filterValue", filter.filterValue);
                jArray.Add(obj);
                //过滤分类数据
                JArray jArray = new JArray();
                foreach (var filter in filterCategorys)
                {
                    JObject obj = new JObject();
                    obj.Add("category", filter.category);
                    obj.Add("filterValue", filter.filterValue);
                    jArray.Add(obj);
                }
                jObject.Add("filterCategorys", jArray);//按键标识
            }
            jObject.Add("filterCategorys", jArray);//按键标识
            jObject.Add("pageNo", pageNo);//当前页
            jObject.Add("pageSize", pageSize);//页数
            //d.Add("zoneType", deviceId);//区域
            var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(jObject.ToString(), NewAPI.Api_Post_Aks_MovieLibraryPage, "影片分页获取");
            var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(jObject, NewAPI.Api_Post_Aks_MovieLibraryPage, "影片分页获取");
            if (!this.DataChecking(responsePackNew, tipType))
            {
                return new List<MovieLibrary>();
HDL_ON/UI/UI2/FuntionControlView/Aks/YkPage.cs
@@ -6,48 +6,75 @@
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;
using HDL_ON.DAL.Server;
using System.Net;
using System.IO;
using RestSharp;
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>
        List<FilterCategoryEntity> mFilterCategoryList;
        /// <summary>
        /// 影片列表
        /// </summary>
        List<MovieLibrary> mMovieLibraryList;
        /// <summary>
        /// 当前的遥控器对象
        /// </summary>
        RemoteControlEntity remoteControl;
        /// <summary>
        /// 头部布局
        /// </summary>
        private TopView topView;
        TopView topView;
        FrameLayout fLayout;
        /// <summary>
        /// 删除设备后需要更新界面的回调
        /// 影片上下滑动父容器
        /// </summary>
        public Action action;
        VerticalRefreshLayout vv;
        /// <summary>
        /// 水平滑动父容器
        /// </summary>
        CornerFramLayout horizontalFl;
        CornerFramLayout imageFLayout;
        public YkPage()
        {
        }
        public void Show()
        {
            //初始化UI
            this.InitTop();
            this.InitMiddle();
            this.InitUI();
            //初始化事件监听器
            this.EventListener();
            //读取数据
            this.ReadData();
        }
        /// <summary>
        /// 初始化头部界面
        /// 初始化界面
        /// </summary>
        private void InitTop()
        private void InitUI()
        {
            this.BackgroundColor = MusicColor.ViewColor;
            this.topView = new TopView();
@@ -57,74 +84,36 @@
            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();
        }
        /// <summary>
        /// 加载类型布局
        /// </summary>
        private void LoadFTypeLayout()
        {
            if (fLayout == null)
            {
                Y = typeFLayout.Bottom,
                Height = fLayout.Height- typeFLayout.Bottom,
                return;
            }
            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);
            vv.BeginHeaderRefreshingAction += () =>
@@ -133,25 +122,25 @@
                vv.EndHeaderRefreshing();
            };
            CornerFramLayout imageFLayout = new CornerFramLayout(343, 20 * 168, 0);
            vv.AddChidren(imageFLayout);
            imageFLayout.X = Application.GetRealWidth(16);
            imageFLayout.LoadImagePage(new List<Entity.KeypadEntity>());
            imageFLayout.selectAction += (index) =>
            {
                CommonMethod.Current.MainThread(() =>
                {
                    DetailPage detailPage = new DetailPage();
                    MainPage.BasePageView.AddChidren(detailPage);
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    detailPage.Show();
                });
            };
            imageFLayout.AdjustRealHeight(16);
            LoadImageFLayout();
        }
        /// <summary>
        /// 加载影片列表布局
        /// </summary>
        private void LoadImageFLayout()
        {
            if (vv == null)
            {
                return;
            }
            vv.RemoveAll();
            imageFLayout = new CornerFramLayout(343, 20 * 168, 0);
            vv.AddChidren(imageFLayout);
            imageFLayout.X = Application.GetRealWidth(16);
            imageFLayout.LoadImagePage(this.mMovieLibraryList);
            imageFLayout.AdjustRealHeight(16);
        }
        /// 注册事件
        /// </summary>
        private void EventListener()
@@ -173,7 +162,91 @@
                    collectPage.Show();
                });
            };
            //二级过滤事件
            horizontalFl.selectAction += (filters) =>
            {
            };
            //影片事件
            imageFLayout.selectAction += (index) =>
            {
                CommonMethod.Current.MainThread(() =>
                {
                    DetailPage detailPage = new DetailPage();
                    MainPage.BasePageView.AddChidren(detailPage);
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    detailPage.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>(), 1, SendMethod.pageSize);
                    for (int i = 0; i < this.mMovieLibraryList.Count; i++)
                    {
                        var mMovieLibrary = this.mMovieLibraryList[i];
                        var bytes = RequestHttpsBase(mMovieLibrary.posterUrl);
                        mMovieLibrary.imageBytes = bytes;
                    }
                }
                catch { }
                finally
                {
                    CommonMethod.Current.MainThread(() =>
                    {
                        CommonMethod.Current.Loading.Hide();
                        LoadFTypeLayout();
                    });
                }
            });
        }
        /// <summary>
        /// 网络请求
        /// </summary>
        /// <param name="mTimeout"></param>
        /// <returns></returns>
        private byte[] RequestHttpsBase(string imageUrl, int mTimeout = 5)
        {
            try
            {
                RestClient client = new RestClient(imageUrl);
                RestRequest request = new RestRequest(Method.GET);
                request.Timeout = mTimeout * 1000;
                //request.AddHeader("content-type", "application/json");
                IRestResponse response = client.Execute(request);
                return response.RawBytes;
            }
            catch (Exception ex)
            {
                HDL_ON.Utlis.WriteLine(ex.Message);
                return null;
            }
        }
    }
}