From b562a582ac3a288193e6e4f57c5eff8a344305a4 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期五, 27 九月 2024 13:52:17 +0800
Subject: [PATCH] Update AndroidManifest.xml
---
HDL_ON/UI/UI2/FuntionControlView/Aks/YkPage.cs | 300 ++++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 204 insertions(+), 96 deletions(-)
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Aks/YkPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Aks/YkPage.cs
index cd1c0af..3e82841 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Aks/YkPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Aks/YkPage.cs
@@ -1,19 +1,10 @@
锘縰sing 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 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;
+using System.Linq;
namespace HDL_ON.UI.UI2.FuntionControlView.Aks
{
@@ -23,6 +14,8 @@
public class YkPage : FrameLayout
{
+
+ private Dictionary<string, Filters> FiltersList = new Dictionary<string, Filters>();
/// <summary>
///
/// </summary>
@@ -31,20 +24,22 @@
{
this.remoteControl = remoteControlEntity;
}
- /// <summary>
- /// 褰辩墖鍒嗙被鍒楄〃
- /// </summary>
- List<FilterCategoryEntity> mFilterCategoryList;
- /// <summary>
- /// 褰辩墖鍒楄〃
- /// </summary>
- List<MovieLibrary> mMovieLibraryList;
+
+ List<ImageFramlayout> imageFramlayoutList =new List<ImageFramlayout>();
/// <summary>
/// 褰撳墠鐨勯仴鎺у櫒瀵硅薄
/// </summary>
RemoteControlEntity remoteControl;
/// <summary>
- /// 澶撮儴甯冨眬
+ /// 褰辩墖涓�绾у垎绫诲垪琛�
+ /// </summary>
+ List<FilterCategoryEntity> mFilterCategoryList;
+ /// <summary>
+ /// 褰辩墖鍒楄〃
+ /// </summary>
+ List<MovieLibrary> mMovieLibraryList=new List<MovieLibrary>();
+ /// <summary>
+ /// 椤堕儴甯冨眬
/// </summary>
TopView topView;
@@ -59,14 +54,16 @@
CornerFramLayout horizontalFl;
CornerFramLayout imageFLayout;
+ /// <summary>
+ /// 椤垫暟
+ /// </summary>
+ private int pageNo = 1;
public void Show()
{
//鍒濆鍖朥I
this.InitUI();
- //鍒濆鍖栦簨浠剁洃鍚櫒
- this.EventListener();
//璇诲彇鏁版嵁
this.ReadData();
@@ -81,7 +78,7 @@
this.topView.setBtn.Visible = true;
this.topView.setBtn.Width = Application.GetMinRealAverage(32);
this.topView.setBtn.Height = Application.GetMinRealAverage(32);
- this.topView.setBtn.UnSelectedImagePath = "Collection/CollectionGrayIcon.png";
+ this.topView.setBtn.UnSelectedImagePath = "AksIcon/like.png";
this.topView.topNameBtn.TextID = StringId.yingku;
this.AddChidren(topView.TopFLayoutView());
fLayout = new FrameLayout
@@ -91,22 +88,36 @@
BackgroundColor = MusicColor.WhiteColor,
};
this.AddChidren(fLayout);
- this.LoadFTypeLayout();
+ //this.LoadFTypeLayout();
+ //this.LoadImageFLayout();
+ //杩斿洖
+ this.topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
+ {
+ this.RemoveFromParent();
+ };
+ //鏀惰棌鍥炬爣鐐瑰嚮浜嬩欢
+ this.topView.clickSetBtn.MouseUpEventHandler += (sender, e) =>
+ {
+ CommonMethod.Current.MainThread(() =>
+ {
+
+ CollectPage collectPage = new CollectPage(remoteControl);
+ MainPage.BasePageView.AddChidren(collectPage);
+ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+ collectPage.Show();
+ });
+ };
}
/// <summary>
- /// 鍔犺浇绫诲瀷甯冨眬
+ /// 鍔犺浇涓�绾у垎绫诲竷灞�
/// </summary>
private void LoadFTypeLayout()
{
- 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);
@@ -116,73 +127,108 @@
Height = fLayout.Height - horizontalFl.Bottom,
};
fLayout.AddChidren(vv);
- vv.BeginHeaderRefreshingAction += () =>
+ //浜岀骇杩囨护浜嬩欢
+ horizontalFl.selectKeyAction += (filters) =>
{
- //鍏抽棴鍒锋柊View锛�
- vv.EndHeaderRefreshing();
+ pageNo = 1;//杩樺師椤垫暟
+ AddMemoryFilters(filters);
+ UpdateData(true);
};
- LoadImageFLayout();
}
/// <summary>
/// 鍔犺浇褰辩墖鍒楄〃甯冨眬
/// </summary>
private void LoadImageFLayout()
{
-
if (vv == null)
{
return;
}
- vv.RemoveAll();
- imageFLayout = new CornerFramLayout(343, 20 * 168, 0);
+ 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.LoadImagePage(this.mMovieLibraryList);
+ imageFLayout.LoadImagePage(imageFramlayoutList);
imageFLayout.AdjustRealHeight(16);
- }
- /// 娉ㄥ唽浜嬩欢
- /// </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();
- });
- };
- //浜岀骇杩囨护浜嬩欢
- horizontalFl.selectAction += (filters) =>
- {
+ //鏇村鐨�
+ var btnMore = new Button
+ {
+ Width = Application.GetRealWidth(375),
+ Height = Application.GetRealHeight(30),
+ TextSize = TextSize.Text14,
+ TextColor = MusicColor.TextColor,
+ TextID = StringId.LoadMore,
+ TextAlignment = TextAlignment.TopCenter,
+ Padding = new Padding(0, 20, 0, 20),
};
+ vv.AddChidren(btnMore);
+
+ btnMore.MouseDownEventHandler += (sender,e) => {
+ //涓诲姩鏇存柊鏁版嵁
+ UpdateData(false);
+ };
+
//褰辩墖浜嬩欢
- imageFLayout.selectAction += (index) =>
+ imageFLayout.selectImageAction += (movieLibrary) =>
{
+
CommonMethod.Current.MainThread(() =>
{
- DetailPage detailPage = new DetailPage();
+ DetailPage detailPage = new DetailPage(remoteControl, movieLibrary);
MainPage.BasePageView.AddChidren(detailPage);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
detailPage.Show();
});
};
+ //涓嬫媺鍒锋柊
+ vv.BeginHeaderRefreshingAction += () =>
+ {
+ //鍏抽棴鍒锋柊View锛�
+ vv.EndHeaderRefreshing();
+ //涓诲姩鏇存柊鏁版嵁
+ //UpdateData();
+ };
+
+
+
}
+
+
+
+
+
/// <summary>
- /// 鍒濆鏁版嵁
+ /// 鍔犺浇鍥剧墖瀹瑰櫒
+ /// </summary>
+ /// <param name="movieLibrary">movieLibrary</param>
+ private void AddImageFramlayout(MovieLibrary movieLibrary)
+ {
+ CommonMethod.Current.MainThread(() =>
+ {
+ if (movieLibrary == null)
+ {
+ return;
+ }
+ ImageFramlayout imageFram = new ImageFramlayout();
+ //imageFram.AddView(this);
+ imageFram.Tag = movieLibrary;
+ imageFram.btnName.Text = movieLibrary.name;
+ imageFram.btnImage.ImageBytes = movieLibrary.imageBytes;
+ imageFram.btnScore.Text = movieLibrary.rating;
+ //娣诲姞缂撳瓨
+ imageFramlayoutList.Add(imageFram);
+ });
+ }
+
+
+ /// <summary>
+ /// 鍒濆鍖栨暟鎹�
/// </summary>
private void ReadData()
{
@@ -192,14 +238,8 @@
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;
-
- }
+ var newList = SendMethod.Current.GetMovieLibraryPage(this.remoteControl.deviceId, this.remoteControl.rcId, new List<Filters>(), pageNo, SendMethod.pageSize);
+ DataTreating(newList);
}
catch { }
finally
@@ -207,44 +247,112 @@
CommonMethod.Current.MainThread(() =>
{
CommonMethod.Current.Loading.Hide();
- LoadFTypeLayout();
+ this.LoadFTypeLayout();
+ this.LoadImageFLayout();
});
}
});
+ }
+ /// <summary>
+ /// 涓诲姩鏇存柊鏁版嵁
+ /// </summary>
+ /// <param name="isUpdateData">鏄惁鏄簩绾ц繃婊�,true琛ㄧず鏄簩绾ц繃婊よ繃鏉ョ殑</param>
+ private void UpdateData(bool isUpdateData)
+ {
+
+ CommonMethod.Current.Loading.Start();
+ CommonMethod.Current.SunThread(() =>
+ {
+ try
+ {
+ var newList = SendMethod.Current.GetMovieLibraryPage(this.remoteControl.deviceId, this.remoteControl.rcId, this.FiltersList.Values.ToList(), pageNo, SendMethod.pageSize);
+ DataTreating(newList);
+ }
+ catch { }
+ finally
+ {
+ CommonMethod.Current.MainThread(() =>
+ {
+ CommonMethod.Current.Loading.Hide();
+ if (isUpdateData)
+ {
+ //娓呯┖鎵�鏈夋棫褰辩墖鏁版嵁,閲嶆柊鍔犺浇鏂板奖鐗囨暟鎹�
+ this.LoadImageFLayout();
+ }
+ else
+ {
+ //杩藉姞鏂版暟鎹湪鏃ф暟鎹悗闈�
+ imageFLayout.LoadImagePage(imageFramlayoutList);
+ imageFLayout.AdjustRealHeight(16);
+ }
+
+ });
+ }
+ });
+
+ }
+
+ /// <summary>
+ /// 鏁版嵁澶勭悊閫昏緫
+ /// </summary>
+ /// <param name="newList">鏂板垪琛ㄦ暟鎹�</param>
+ private void DataTreating(List<MovieLibrary> newList)
+ {
+ if (newList == null || newList.Count == 0)
+ {
+ return;
+ }
+ //鏈夋柊鏁版嵁锛屾竻绌烘棫鏁版嵁
+ imageFramlayoutList.Clear();
+
+ for (int i = 0; i < newList.Count; i++)
+ {
+ var mMovieLibrary = newList[i];
+ //鍥剧墖鐨勫瓧鑺傛祦
+ var bytes = SendMethod.Current.GetImage(mMovieLibrary.posterUrl);
+ //鏇存柊鍊�
+ mMovieLibrary.imageBytes = bytes;
+
+ }
+
+ for (int i = 0; i < newList.Count; i++)
+ {
+ //鍘婚噸
+ var mMovieLibrary = this.mMovieLibraryList.Find((o) => o.movieId == newList[i].movieId);
+ if (mMovieLibrary == null)
+ {
+ //鏂板垪琛ㄩ粯璁ゅ姞鍦ㄦ渶鍓嶉潰
+ this.mMovieLibraryList.Insert(0, newList[i]);
+
+ }
+ //娣诲姞鍥剧墖瀹瑰櫒
+ AddImageFramlayout(newList[i]);
+
+ }
+
+ if (newList.Count == SendMethod.pageSize)
+ {
+ //鏇存柊椤垫暟
+ pageNo++;
+ }
}
-
-
/// <summary>
- /// 缃戠粶璇锋眰
+ /// 娣诲姞杩囨护鏁版嵁
/// </summary>
- /// <param name="mTimeout"></param>
- /// <returns></returns>
- private byte[] RequestHttpsBase(string imageUrl, int mTimeout = 5)
+ /// <param name="filters">杩囨护鏉′欢</param>
+ private void AddMemoryFilters(Filters filters)
{
-
- try
+ if (FiltersList.ContainsKey(filters.category))
{
- 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;
-
+ FiltersList.Remove(filters.category);
}
- catch (Exception ex)
- {
- HDL_ON.Utlis.WriteLine(ex.Message);
- return null;
- }
-
-
+ FiltersList.Add(filters.category, filters);
}
--
Gitblit v1.8.0