From efcffde735fa65ae34bae0bcc86313b74ed0e36c Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期一, 20 五月 2024 13:47:38 +0800
Subject: [PATCH] 优化离线数据

---
 HDL_ON/UI/UI2/FuntionControlView/Music/A31SongPlay.cs |  121 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 113 insertions(+), 8 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31SongPlay.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31SongPlay.cs
index 349bac5..139f635 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31SongPlay.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31SongPlay.cs
@@ -2,6 +2,7 @@
 using Shared;
 using HDL_ON.UI.Music;
 using System.Collections.Generic;
+using HDL_ON.UI.UI2.FuntionControlView.Music;
 
 namespace HDL_ON.UI.Music
 {
@@ -13,13 +14,14 @@
             Tag = "Music";
         }
 
-        public void Show(List<Songs> musicList,string listName)
+
+        public void Show(SongList songLists)
         {
 
             this.BackgroundColor = MusicColor.ViewColor;
             var topView = new TopView();
             this.AddChidren(topView.TopFLayoutView());
-            topView.topNameBtn.TextID = StringId.usb;
+            topView.topNameBtn.Text=songLists.group;
             topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
             {
                 this.RemoveFromParent();
@@ -31,8 +33,35 @@
                 Height = Application.GetRealHeight(H_W.H - H_W.T_Height),
             };
             this.AddChidren(vv);
+            vv.BeginHeaderRefreshingAction += () =>
+            {
+                System.Threading.Tasks.Task.Run(() =>
+                {
+                    try
+                    {
+                        //鑾峰彇姝屾洸鍒楄〃
+                        var songList = SendMethod.Current.GetSingleSongList(A31MusicModel.Current.functionMusic, songLists.group, songLists.source);
+                        CommonMethod.Current.AddSongListMemory(songList, songLists.source);//淇濆瓨缂撳瓨
+                    }
+                    catch
+                    {
+                    }
+                    finally
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            vv.EndHeaderRefreshing();
+                            //浠庣紦瀛樻嬁鍒楄〃
+                            var songListMemory = CommonMethod.Current.GetSongListMemory(songLists.group, songLists.source); 
+                            ///鍔犺浇闊充箰鍒楄〃
+                            SongListView(vv, songListMemory.songs, songListMemory.group, songLists.source);
+                            
+                        });
+                    }
+                });
+            };
             ///鍔犺浇闊充箰鍒楄〃
-            SongListView(vv, musicList, listName);
+            SongListView(vv, songLists.songs, songLists.group,songLists.source);
 
 
         }
@@ -42,8 +71,12 @@
         /// <param name="vv">鐖舵帶浠�</param>
         /// <param name="musicList">闊充箰鍒楄〃</param>
         /// <param name="listName">鍒楄〃鍚�</param>
-        public void SongListView(VerticalRefreshLayout vv,List<Songs> musicList,string listName) {
-
+        /// <param name="source">闊充箰婧�</param>
+        public static void SongListView(VerticalRefreshLayout vv, List<SongInfo> musicList, string listName,string source, FrameLayout frame = null)
+        {
+            if (vv!=null) {
+                vv.RemoveAll();
+            }
             for (int i = 0; i < musicList.Count; i++)
             {
                 var songs = musicList[i];
@@ -53,7 +86,7 @@
                 }
                 UI.Music.View.SongView songView = new UI.Music.View.SongView();
                 songView.SongFrameLayout(vv, songs);
-                songView.singerBtn.Text = songs.name;
+                songView.songBtn.Text = songs.name;
                 ///鐐瑰嚮鎾斁浜嬩欢
                 songView.clickBtn.MouseUpEventHandler += (sender, e) =>
                 {
@@ -62,14 +95,27 @@
                         System.Threading.Thread.Sleep(50);
                         Application.RunOnMainThread(() =>
                         {
-                            //绉婚櫎鐣岄潰
+                            //淇敼缂撳瓨灞炴�х姸鎬佸��
                             A31MusicModel.Current.functionMusic.SetAttrState("song_name", songView.songBtn.Text);
                             A31MusicModel.Current.functionMusic.SetAttrState("playlist_name", listName);
+                            //绉婚櫎鐣岄潰
+                            if (frame != null)
+                            {
+                                frame.RemoveFromParent();
+                            }
                             MainPage.BasePageView.RemoveViewByTag("Music");
                             Dictionary<string, string> dic = new Dictionary<string, string>();
                             dic.Add("song_name", songView.songBtn.Text);
                             dic.Add("playlist_name", listName);
-                            SendMethod.sendMethod.SendControlCommand(A31MusicModel.Current.functionMusic, dic);
+                            if (!string.IsNullOrEmpty(songs.url))
+                            {
+                                dic.Add("url", songs.url);
+                            }
+                            if (!string.IsNullOrEmpty(source))
+                            {
+                                dic.Add("source", source);
+                            }
+                            SendMethod.Current.SendControlCommand(A31MusicModel.Current.functionMusic, dic);
                         });
                     });
                 };
@@ -78,4 +124,63 @@
 
         }
     }
+
+    public class UpdateThread
+    {
+        public UpdateThread()
+        {
+        }
+        /// <summary>
+        /// 瀹氭椂鏇存柊褰撳墠鎾斁闊充箰
+        /// </summary>
+        /// <param name="frame">褰撳墠鐣岄潰</param>
+        /// <param name="middViewLayout">姣忎竴鏉¢煶涔愮殑涓绘帶浠�</param>
+        /// <param name="a31MusicModel">鐐瑰墠鎾斁鍣�</param>
+        public static void updateCurrMusicThread(FrameLayout frame, VerticalRefreshLayout middViewLayout, A31MusicModel a31MusicModel)
+        {
+            System.Threading.Thread updateSelectedMusicThread = new System.Threading.Thread(() =>
+            {
+                while (frame.Parent != null)
+                {
+                    //A31MusicModel.LogMusic("宸插惎鍔ㄦ洿鏂伴煶涔愬垪琛ㄦ煇涓�鏉¢煶涔愮姸鎬佺殑绾跨▼");
+                    System.Threading.Thread.Sleep(1000);
+                    Application.RunOnMainThread(() =>
+                    {
+                        try
+                        {
+                            for (int i = 0; i < middViewLayout.ChildrenCount; i++)
+                            {
+                                RowLayout view = (RowLayout)middViewLayout.GetChildren(i);
+                                var volIconBtn = (Button)view.GetChildren(0);//鐩存帴FrameLayout鐖舵帶浠舵壘鍒拌鎺т欢Button
+                                var songNameBtn = (Button)view.GetChildren(1);//鐩存帴FrameLayout鐖舵帶浠舵壘鍒拌鎺т欢Button
+                                var artistNameBtn = (Button)view.GetChildren(2);//鐩存帴FrameLayout鐖舵帶浠舵壘鍒拌鎺т欢Button
+                                //if (a31MusicModel.A31PlayStatus.TrackURL == songNameBtn.Tag.ToString())
+                                //{
+                                //    volIconBtn.Visible = true;
+                                //    songNameBtn.TextColor = UI.Music.MusicColor.SelectedColor;
+                                //    songNameBtn.X = Application.GetRealWidth(48);
+                                //    artistNameBtn.X = songNameBtn.Right;
+                                //    artistNameBtn.TextColor = UI.Music.MusicColor.SelectedColor;
+                                //}
+                                //else
+                                //{
+                                //    volIconBtn.Visible = false;
+                                //    songNameBtn.TextColor = UI.Music.MusicColor.MusicTxet14Color;
+                                //    songNameBtn.X = Application.GetRealWidth(16);
+                                //    artistNameBtn.X = songNameBtn.Right;
+                                //    artistNameBtn.TextColor = UI.Music.MusicColor.MusicNoTxetColor;
+                                //}
+
+
+                            }
+                        }
+                        catch { }
+
+                    });
+                }
+            });
+            updateSelectedMusicThread.Start();
+        }
+
+    }
 }

--
Gitblit v1.8.0