From 7167334c0e89dd84827d59e726123d14776e3a09 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 16 六月 2020 11:14:13 +0800
Subject: [PATCH] 2020-06-16-1

---
 HDL_ON/UI/Music/MusicMain.cs |  189 ++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 155 insertions(+), 34 deletions(-)

diff --git a/HDL_ON/UI/Music/MusicMain.cs b/HDL_ON/UI/Music/MusicMain.cs
index 830a4b4..fd99774 100644
--- a/HDL_ON/UI/Music/MusicMain.cs
+++ b/HDL_ON/UI/Music/MusicMain.cs
@@ -12,6 +12,10 @@
         //public MusicListViewMain() {
         //    Frame = this;
         //}
+        public MusicMain()
+        {
+            Tag = "MusicMain";
+        }
         public override void RemoveFromParent()
         {
             base.RemoveFromParent();
@@ -41,7 +45,7 @@
         /// <summary>
         ///  鏄剧ず鍔犺浇鐣岄潰
         /// </summary>
-        public static Loading Loading = new Loading();
+        public static Loading loading = new Loading();
         VerticalRefreshLayout verticalRefresh;
 
         public void Show()
@@ -68,11 +72,10 @@
 
             verticalRefresh.BeginHeaderRefreshingAction += () =>
             {
-                SeachMusic();
-                verticalRefresh.EndHeaderRefreshing();
+                SeachMusic(false);
 
             };
-            this.AddChidren(Loading);
+            this.AddChidren(loading);
 
             if (A31MusicModel.A31MusicModelList.Count == 0)
             {
@@ -81,7 +84,7 @@
             else
             {
                 clearA31Threads();
-                verticalRefresh.RemoveAll();
+               //verticalRefresh.RemoveAll();
                 for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
                 {
                     var a31player = A31MusicModel.A31MusicModelList[i];
@@ -89,6 +92,14 @@
                     if (!a31player.IsCanShow)
                     {
                         continue;
+                    }
+                    if (A31MusicModel.A31MusicModelList.Count - 1 == i)
+                    {
+                        a31player.IsEnd = true;
+                    }
+                    else
+                    {
+                        a31player.IsEnd = false;
                     }
                     ///鍔犺浇鐣岄潰鏃堕粯璁や笉鍦ㄧ嚎
                     ///杩欓噷鏍囪鏄负浜嗕笉璇诲彇涓嶅湪绾挎挱鏀惧櫒鐘舵��
@@ -103,7 +114,7 @@
                         if (obj == null)
                         {
                             ///杩欓噷瑕佽鍙栦富浠庡叧绯�
-                           // readServerOrClientMode(false);
+                            readServerOrClientMode();
                             A31MusicModel.Save();
                             return;
                         }
@@ -133,20 +144,25 @@
             if (Yes)
             {
                 //涓轰簡绗竴娆¤繘鏉og涓�涓�;
-                Loading.Start();
+                loading.Start();
             }
             SendMethod.Seach((obj) =>
             {
                 if (obj == null)
                 {
-                    //readServerOrClientMode(true);
+                    readServerOrClientMode();
                     A31MusicModel.Save();
+                    if (!Yes)
+                    {
+                        ///绛夊緟璺戝畬鍦ㄥ叧闂�
+                        verticalRefresh.EndHeaderRefreshing();
+                    }
                     Application.RunOnMainThread(() =>
                     {
                         if (Yes)
                         {
                             //涓轰簡绗竴娆¤繘鏉og涓�涓�;
-                            Loading.Hide();
+                            loading.Hide();
                         }
                         verticalRefresh.RemoveAll();
                         for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
@@ -157,8 +173,17 @@
                             {
                                 continue;
                             }
+                            if (A31MusicModel.A31MusicModelList.Count - 1 == i)
+                            {
+                                a31player.IsEnd = true;
+                            }
+                            else
+                            {
+                                a31player.IsEnd = false;
+                            }
                             MusicListView(a31player);
                         }
+
                     });
                     return;
                 }
@@ -193,35 +218,41 @@
             musicView.View(verticalRefresh);
             musicView.singerBtn.Text = a31player.A31PlayStatus.Artist;
             musicView.songNameBtn.Text = a31player.A31PlayStatus.Title;
-            musicView.musicNameBtn.Text = a31player.Name;
+            musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(a31player);
             musicView.regionBtn.TextID = StringId.region;
-            if (a31player.A31PlayStatus.status == "play")
-            {
-                musicView.playBtn.IsSelected = true;
+            if (a31player.IsEnd) {
+                musicView.muiscFl.Height =Application.GetRealHeight(12 + 139 + 12);
             }
-            else
+            EventHandler<MouseEventArgs> clickMergence = (sender, e) =>
             {
-                musicView.playBtn.IsSelected = false;
-            }
-            EventHandler<MouseEventArgs> clickPlay = (sender, e) =>
-            {
-                A31MusicModel.Current = a31player;//褰撳墠鎾斁鍣�
-                var a31PlayMusicPage = new A31PlayMusicPage();
-                MainPage.BasePageView.AddChidren(a31PlayMusicPage);
-                a31PlayMusicPage.Show();
-                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                if (a31player.ServerClientType == 0)
+                {
+                    new View.DialogView { }.PlayMergence();
+                }
+                else if (a31player.ServerClientType == 1)
+                {
+                    new View.DialogView { }.DetachPlayMergence(a31player);
+
+                }
             };
+            musicView.mergeBjBtn.MouseUpEventHandler += clickMergence;
+            musicView.mergeBtn.MouseUpEventHandler += clickMergence;
+            musicView.mergeIconBtn.MouseUpEventHandler += clickMergence;
 
-            musicView.singerBtn.MouseUpEventHandler += clickPlay;
-            musicView.songNameBtn.MouseUpEventHandler += clickPlay;
-            musicView.musicNameBtn.MouseUpEventHandler += clickPlay;
-            musicView.regionBtn.MouseUpEventHandler += clickPlay;
 
+            musicView.clickBtn.MouseUpEventHandler += (sender, e) =>
+             {
+                 A31MusicModel.Current = a31player;//褰撳墠鎾斁鍣�
+                var a31PlayMusicPage = new A31PlayMusicPage();
+                 MainPage.BasePageView.AddChidren(a31PlayMusicPage);
+                 a31PlayMusicPage.Show();
+                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+             };
             ///涓婁竴鏇茬偣鍑讳簨浠�
             musicView.prevBtn.MouseDownEventHandler += (sender, e) =>
             {
                 musicView.prevBtn.IsSelected = true;
-                SendMethod.Previous();
+                SendMethod.Previous(a31player);
             };
             musicView.prevBtn.MouseUpEventHandler += (sender, e) =>
             {
@@ -233,21 +264,21 @@
                 if (musicView.playBtn.IsSelected)
                 {
                     musicView.playBtn.IsSelected = false;
-                    SendMethod.Pause();
-                    A31MusicModel.Current.A31PlayStatus.status = "pause";
+                    SendMethod.Pause(a31player);
+                    a31player.A31PlayStatus.status = "pause";
                 }
                 else
                 {
                     musicView.playBtn.IsSelected = true;
-                    SendMethod.Play();
-                    A31MusicModel.Current.A31PlayStatus.status = "play";
+                    SendMethod.Play(a31player);
+                    a31player.A31PlayStatus.status = "play";
                 }
             };
             ///涓嬩竴鏇茬偣鍑讳簨浠�
             musicView.nextBtn.MouseDownEventHandler += (sender, e) =>
             {
                 musicView.nextBtn.IsSelected = true;
-                SendMethod.Next();
+                SendMethod.Next(a31player);
             };
             musicView.nextBtn.MouseUpEventHandler += (sender, e) =>
             {
@@ -270,7 +301,7 @@
                     {
                         musicView.singerBtn.Text = a31player.A31PlayStatus.Artist;
                         musicView.songNameBtn.Text = a31player.A31PlayStatus.Title;
-                        musicView.musicNameBtn.Text = a31player.Name;
+                        musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(a31player);
                         if (a31player.A31PlayStatus.status == "play")
                         {
                             musicView.playBtn.IsSelected = true;
@@ -285,7 +316,97 @@
 
         }
 
+        /// <summary>
+        /// 璇诲彇涓讳粠鍏崇郴
+        /// </summary>
+        void readServerOrClientMode()
+        {
+            try
+            {
+                for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
+                {
+                    var a31player = A31MusicModel.A31MusicModelList[i];
+                    if (!a31player.IsOnLine)
+                    {
+                        continue;
+                    }
+                    try
+                    {
+                        a31player.ServerClientType = 0;
+                        var result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
+                        if (result == null && result == "Failed")
+                        {
+                            result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
+                        }
+                        if (result != null && result != "Failed")
+                        {
+                            a31player.Slave = Newtonsoft.Json.JsonConvert.DeserializeObject<Slaves>(result);
+                        }
+                    }
+                    catch (Exception e)
+                    {
+                        var d = e.Message;
+                    }
+                }
 
+                //鍒嗘瀽涓讳粠鍏崇郴
+                for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
+                {
+                    var a31player = A31MusicModel.A31MusicModelList[i];
+                    if (!a31player.IsOnLine)
+                    {
+                        continue;
+                    }
+                    try
+                    {
+                        if (a31player.Slave != null && "0" != a31player.Slave.slaves)
+                        {
+                            a31player.ServerClientType = 1;//涓荤殑
+                            string str = a31player.Name;
+                            for (int j = 0; j < a31player.Slave.slave_list.Count; j++)
+                            {
+
+                                var slave = a31player.Slave.slave_list[j];
+                                str = str + "+" + slave.name;
+                                var tempA31Player = A31MusicModel.A31MusicModelList.Find((obj) => slave.uuid.Replace("uuid:", "") == obj.UniqueDeviceName);
+                                if (tempA31Player == null)
+                                {
+                                    A31MusicModel.A31MusicModelList.Add(new A31MusicModel
+                                    {
+                                        ServerClientType = -1,//浠庣殑
+                                        IPAddress = slave.ip,
+                                        MainPlayIP = a31player.IPAddress,
+                                        UniqueDeviceName = slave.uuid.Replace("uuid:", ""),
+                                        Name = slave.name,
+                                        IsCanShow = false,
+                                        IsOnLine = false,//true浣滅敤涓轰簡璇诲彇浠庢挱鏀惧櫒鐨勯煶閲�
+                                    });
+                                }
+                                //濡傛灉鎵惧埌灏辨洿鏂颁负浠庣殑
+                                else
+                                {
+                                    tempA31Player.ServerClientType = -1;//浠庣殑
+                                    tempA31Player.IPAddress = slave.ip;
+                                    tempA31Player.MainPlayIP = a31player.IPAddress;
+                                    tempA31Player.Name = slave.name;
+                                    tempA31Player.UniqueDeviceName = slave.uuid.Replace("uuid:", "");
+                                    tempA31Player.IsCanShow = false;
+                                    tempA31Player.IsOnLine = false;//true浣滅敤涓轰簡璇诲彇浠庢挱鏀惧櫒鐨勯煶閲�
+
+                                }
+                            }
+                            a31player.MainPlayName = str;
+                        }
+                    }
+                    catch (Exception e)
+                    {
+                        var ss = e.Message;
+                    }
+                }
+
+            }
+            catch { }
+        }
 
     }
 

--
Gitblit v1.8.0