| | |
| | | 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> |
| | | /// <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(); |
| | |
| | | this.topView.setBtn.UnSelectedImagePath = "Collection/CollectionGrayIcon.png"; |
| | | this.topView.topNameBtn.TextID = StringId.yingku; |
| | | this.AddChidren(topView.TopFLayoutView()); |
| | | } |
| | | /// <summary> |
| | | /// 初始化中部界面 |
| | | /// </summary> |
| | | private void InitMiddle() |
| | | fLayout = new FrameLayout |
| | | { |
| | | |
| | | var 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() |
| | | { |
| | | Y = typeFLayout.Bottom, |
| | | Height = fLayout.Height- typeFLayout.Bottom, |
| | | if (fLayout == null) |
| | | { |
| | | 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 += () => |
| | |
| | | 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() |
| | |
| | | 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; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | } |