From 66c0db35365980f240d7cfe6dd59961812f20c97 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 03 六月 2020 17:51:36 +0800
Subject: [PATCH] 2020-06-03-1

---
 HDL_ON/UI/Music/View/DialogView.cs |  303 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 273 insertions(+), 30 deletions(-)

diff --git a/HDL_ON/UI/Music/View/DialogView.cs b/HDL_ON/UI/Music/View/DialogView.cs
index 0d75a38..3b45ea7 100644
--- a/HDL_ON/UI/Music/View/DialogView.cs
+++ b/HDL_ON/UI/Music/View/DialogView.cs
@@ -396,6 +396,8 @@
             }
             confirmBtn.MouseUpEventHandler += (sender, e) =>
             {
+             
+
                 if (playList1.Count <= 1)
                 {
                     new PublicAssmebly().TipMsgAutoClose("鑷冲皯閫変腑涓や釜浠ヤ笂鎾斁鍣�", false);
@@ -415,7 +417,7 @@
 
                 if (playList2.Count == 0)
                 {
-                    PlayerView(dialog, playList1, playList1);
+                    SelectedPlayerView(dialog, playList1, playList1);
                 }
                 else if (playList2.Count == 1)
                 {
@@ -425,16 +427,16 @@
                 }
                 else
                 {
-                    PlayerView(dialog, playList1, playList2);
+                    SelectedPlayerView(dialog, playList1, playList2);
                 }
             };
         }
         /// <summary>
         /// 閫変腑涓绘挱鏀惧櫒鐨勭晫闈�
         /// </summary>
-        /// <param name="musicList1"></param>
-        ///  /// <param name="musicList2">鏄剧ず鎾斁鍣ㄥ垪琛�</param>
-        void PlayerView(Dialog dialogF, List<A31MusicModel> musicList1, List<A31MusicModel> musicList2)
+        /// <param name="musicList1">鏄剧ず灏嗚缁勫悎鐨勬挱鏀惧櫒鍒楄〃</param>
+        ///  /// <param name="musicList2">鏄剧ず鍦ㄦ挱鏀鹃煶涔愭挱鏀惧櫒鍒楄〃</param>
+        void SelectedPlayerView(Dialog dialogF, List<A31MusicModel> musicList1, List<A31MusicModel> musicList2)
         {
 
             //涓绘帶浠�
@@ -592,10 +594,9 @@
                 }
                 dialogF.Close();
                 dialog.Close();
+               
                 var serverMusic = selectedBtn.Tag as A31MusicModel;
                 Threading(serverMusic, musicList1);
-
-
             };
 
         }
@@ -607,25 +608,16 @@
         /// <param name="musicList1"></param>
         void Threading(A31MusicModel serverMusic, List<A31MusicModel> musicList1)
         {
+            MusicMain.loading.Start("閰嶇疆涓�...");
+            bool _if = false;
             System.Threading.Tasks.Task.Run(() =>
             {
                 try
                 {
-
-                    var IP = "";
-                    if (serverMusic.ServerClientType == -1)
-                    {
-                        IP = serverMusic.MainPlayIP;
-                    }
-                    else
-                    {
-                        IP = serverMusic.IPAddress;
-                    }
-
-                    var statusEx = SendMethod.OpenWeb("http://" + IP + "/httpapi.asp?command=getStatusEx");
+                    var statusEx = SendMethod.OpenWeb("http://" + serverMusic.IPAddress + "/httpapi.asp?command=getStatusEx");
                     if (statusEx == null)
                     {
-                        statusEx = SendMethod.OpenWeb("http://" + IP + "/httpapi.asp?command=getStatusEx");
+                        statusEx = SendMethod.OpenWeb("http://" + serverMusic.IPAddress + "/httpapi.asp?command=getStatusEx");
                     }
                     if (statusEx == null)
                     {
@@ -650,6 +642,7 @@
                             //杩囨护鎺変富鎾斁鍣�;
                             continue;
                         }
+                        System.Threading.Thread.Sleep(1000);//绛夊緟涓�绉掑啀鍙戞暟鎹�
                         if (null == SendMethod.OpenWeb("http://" + clientMusic.IPAddress + "/httpapi.asp?command=ConnectMasterAp:ssid=" + ssid + ":ch=" + serverIfon.WifiChannel + ":auth=OPEN:encry=NONE:pwd=:chext=0:JoinGroupMaster:eth" + serverIfon.eth2 + ":wifi" + serverIfon.ra0 + ":uuid" + serverIfon.uuid))
                         {
                             if (null == SendMethod.OpenWeb("http://" + clientMusic.IPAddress + "/httpapi.asp?command=ConnectMasterAp:ssid=" + ssid + ":ch=" + serverIfon.WifiChannel + ":auth=OPEN:encry=NONE:pwd=:chext=0:JoinGroupMaster:eth" + serverIfon.eth2 + ":wifi" + serverIfon.ra0 + ":uuid" + serverIfon.uuid))
@@ -659,16 +652,16 @@
                         }
                     }
                     DateTime dateTime = DateTime.Now;
-                    while ((DateTime.Now - dateTime).TotalMilliseconds < 10 * 1000)
+                    while ((DateTime.Now - dateTime).TotalMilliseconds < 12 * 1000)
                     {
                         System.Threading.Thread.Sleep(1000);
                         try
                         {
                             var result = SendMethod.OpenWeb("http://" + serverMusic.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
-                            if (result != null)
+                            if (result != null && result != "Failed")
                             {
                                 var tmepSlaves = Newtonsoft.Json.JsonConvert.DeserializeObject<Slaves>(result);
-                                if (tmepSlaves != null && tmepSlaves.slave_list != null)
+                                if (tmepSlaves != null && tmepSlaves.slave_list != null && tmepSlaves.slave_list.Count != 0)
                                 {
                                     string str = serverMusic.Name;
                                     for (int j = 0; j < A31MusicModel.A31MusicModelList.Count; j++)
@@ -676,7 +669,7 @@
                                         var music = A31MusicModel.A31MusicModelList[j];
                                         if (music.UniqueDeviceName == serverMusic.UniqueDeviceName)
                                         {
-                                            
+
                                             music.ServerClientType = 1;
                                             music.Slave = tmepSlaves;
                                             //杩囨护鎺変富鎾斁鍣�;
@@ -692,6 +685,7 @@
                                             music.IsOnLine = false;
                                             music.IPAddress = slave_Ifon.ip;
                                             music.MainPlayIP = serverMusic.IPAddress;
+                                            _if = true;
                                         }
                                     }
                                     serverMusic.MainPlayName = str;
@@ -699,6 +693,8 @@
                                     break;
                                 }
                             }
+
+
                         }
                         catch { }
                     }
@@ -708,17 +704,264 @@
                 {
                     Application.RunOnMainThread(() =>
                     {
-                        MainPage.BasePageView.RemoveViewByTag("MusicMain");
-                        var musicMain = new MusicMain();
-                        MainPage.BasePageView.AddChidren(musicMain);
-                        musicMain.Show();
-                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                        MusicMain.loading.Hide();
+                        ///鍙互鎻愮ず閰嶇疆澶辫触;
+                        if (_if)
+                        {
+                            //閰嶇疆鎴愬姛鎵嶅彲浠ュ埛鏂扮晫闈�
+                            MainPage.BasePageView.RemoveViewByTag("MusicMain");
+                            var musicMain = new MusicMain();
+                            MainPage.BasePageView.AddChidren(musicMain);
+                            musicMain.Show();
+                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                        }
                     });
                 }
             });
 
         }
-       
+        /// <summary>
+        /// 鍒嗗紑缁勫悎鐨勬挱鏀惧櫒鐨勭晫闈�
+        /// </summary>
+        public void DetachPlayMergence(A31MusicModel a31player)
+        {
+            //涓绘帶浠�
+            Dialog dialog = new Dialog()
+            {
+                BackgroundColor = Color.PopupBackgroundColor,
+            };
+            dialog.Show();
+            //鐖舵帶浠�
+            FrameLayout frame = new FrameLayout { };
+            dialog.AddChidren(frame);
+            frame.MouseUpEventHandler += (sen, e) =>
+            {
+                dialog.Close();
+            };
+            //鐧借壊蹇埗鎺т欢
+            FrameLayout dialogFra = new FrameLayout()
+            {
+                X = Application.GetRealWidth(16),
+                Y = Application.GetRealHeight(397),
+                Width = Application.GetRealWidth(344),
+                Height = Application.GetRealHeight(250),
+                BackgroundColor = Color.WhiteColor,
+                Radius = (uint)Application.GetRealHeight(12),
+            };
+            frame.AddChidren(dialogFra);
+            //鏄剧ず澶撮儴淇℃伅鐖舵帶浠�
+            FrameLayout topFra = new FrameLayout()
+            {
+                Width = Application.GetRealWidth(344),
+                Height = Application.GetRealHeight(50),
+            };
+            dialogFra.AddChidren(topFra);
+            //鍙栨秷鎺т欢
+            Button cancelnBtn = new Button
+            {
+                X = Application.GetRealWidth(20),
+                Y = Application.GetRealHeight(15),
+                Width = Application.GetRealWidth(60),
+                Height = Application.GetRealHeight(20),
+                TextID = StringId.cancelMusic,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextColor = Color.MusicNoTxetColor,
+                TextSize = TextSize.Text14,
+            };
+            topFra.AddChidren(cancelnBtn);
+            cancelnBtn.MouseUpEventHandler += (sen, e) =>
+            {
+                dialog.Close();
+            };
+            //鏍囬鎺т欢
+            Button txetBtn = new Button
+            {
+                X = cancelnBtn.Right + Application.GetRealWidth(20),
+                Y = Application.GetRealHeight(14),
+                Width = Application.GetRealWidth(152),
+                Height = Application.GetRealHeight(22),
+                TextColor = Color.TextColor,
+                TextSize = TextSize.Text16,
+                TextAlignment = TextAlignment.Center,
+                //TextID = StringId.selectedMergence,
+                IsBold = true,
+                Text= a31player.Name,
+            };
+            topFra.AddChidren(txetBtn);
+
+            //纭鎺т欢
+            Button confirmBtn = new Button
+            {
+                X = Application.GetRealWidth(344 - 60 - 20),
+                Y = Application.GetRealHeight(15),
+                Width = Application.GetRealWidth(60),
+                Height = Application.GetRealHeight(20),
+                TextID = StringId.confirmMusic,
+                TextAlignment = TextAlignment.CenterRight,
+                TextColor = Color.SelectedColor,
+                TextSize = TextSize.Text14,
+            };
+            topFra.AddChidren(confirmBtn);
+
+            VerticalScrolViewLayout verticalScrolViewLayout = new VerticalScrolViewLayout
+            {
+                Y = Application.GetRealHeight(50),
+                Height = dialogFra.Height - Application.GetRealHeight(50),
+                Width = Application.GetRealWidth(344),
+            };
+            dialogFra.AddChidren(verticalScrolViewLayout);
+            var  slaveList= new List<Slave>();
+            for (int i = 0; i < a31player.Slave.slave_list.Count; i++)
+            {
+                var slave = a31player.Slave.slave_list[i];
+                RowLayout PlayRow = new RowLayout
+                {
+                    Height = Application.GetRealHeight(50),
+                    LineColor = Color.WhiteColor,
+                    SubViewWidth = Application.GetRealWidth(80),//鏀瑰彉缂栬緫鎺т欢瀹藉害澶氬皯锛�
+                };
+                verticalScrolViewLayout.AddChidren(PlayRow);
+
+
+                //鎾斁鍣ㄥ悕绉版帶浠�
+                Button PlayNameBtn = new Button
+                {
+                    X = Application.GetRealWidth(20),
+                    Y = Application.GetRealHeight(15),
+                    Width = Application.GetRealWidth(150),
+                    Height = Application.GetRealHeight(20),
+                    TextColor = Color.TextColor,
+                    TextSize = TextSize.Text14,
+                    TextAlignment = TextAlignment.CenterLeft,
+                    Text = slave.name,
+                };
+                PlayRow.AddChidren(PlayNameBtn);
+
+
+                //閫変腑鍥炬爣鎺т欢
+                Button selectedIconBtn = new Button
+                {
+                    X = Application.GetRealWidth(303),
+                    Y = Application.GetRealHeight(11),
+                    Width = Application.GetMinRealAverage(28),
+                    Height = Application.GetMinRealAverage(28),
+                    UnSelectedImagePath = "MusicIcon/noSelectedIcon.png",
+                    SelectedImagePath = "MusicIcon/selectedIcon.png",
+                };
+                PlayRow.AddChidren(selectedIconBtn);
+
+                ///鍔犲ぇ鍑犵偣鑼冨洿
+                Button clickBtn = new Button
+                {
+                    Height = Application.GetRealHeight(50),
+                    Tag = slave.uuid.Replace("uuid:", ""),
+                };
+                PlayRow.AddChidren(clickBtn);
+
+                clickBtn.MouseUpEventHandler += (sender, e) =>
+                {
+                    clickBtn.IsSelected = !clickBtn.IsSelected;
+                    selectedIconBtn.IsSelected = clickBtn.IsSelected;
+                    var uuid = slaveList.Find((obj) => obj.uuid.Replace("uuid:", "") == clickBtn.Tag.ToString());
+                    if (selectedIconBtn.IsSelected)
+                    {
+                        if (uuid == null)
+                        {
+                            slaveList.Add(slave);
+                        }
+                    }
+                    else
+                    {
+                        if (uuid != null)
+                        {
+                            slaveList.Remove(slave);
+                        }
+                    }
+                };
+                //绾�
+                Button lineBtn = new Button
+                {
+                    Y = PlayRow.Height - 1,
+                    X = Application.GetRealWidth(20),
+                    Width = Application.GetRealWidth(304),
+                    Height = 1,
+                    BackgroundColor = Color.LineColor,
+                };
+                PlayRow.AddChidren(lineBtn);
+            }
+            confirmBtn.MouseUpEventHandler += (sender, e) =>
+            {
+                if (slaveList.Count == 0)
+                {
+                    new PublicAssmebly().TipMsgAutoClose("杩樻病鏈夐�夋嫨瑙i櫎缁勬挱鏀惧櫒", false);
+                    return;
+                }
+                dialog.Close();
+
+                MusicMain.loading.Start("瑙i櫎涓�...");
+                bool _if = false;
+                System.Threading.Tasks.Task.Run(() =>
+                {
+                    try
+                    {
+                        for (int i = 0; i < slaveList.Count; i++)
+                        {
+                            var clientMusic = slaveList[i];
+                            if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:SlaveKickout:" + clientMusic.ip))
+                            {
+                                if (null == SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:SlaveKickout:" + clientMusic.ip))
+                                {
+
+                                }
+                            }
+                            System.Threading.Thread.Sleep(2000);//绛夊緟2绉掑啀鍙戞暟鎹�
+
+                        }
+                        DateTime dateTime = DateTime.Now;
+                        while ((DateTime.Now - dateTime).TotalMilliseconds < 10 * 1000)
+                        {
+                            System.Threading.Thread.Sleep(1000);
+                            try
+                            {
+                                var result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
+                                if (result != null && result != "Failed")
+                                {
+                                    var tmepSlaves = Newtonsoft.Json.JsonConvert.DeserializeObject<Slaves>(result);
+                                    if (tmepSlaves != null && tmepSlaves.slave_list.Count == 0)
+                                    {
+                                        _if = true;//瑙i櫎鎴愬姛
+                                        A31MusicModel.Save();
+                                        break;
+                                    }
+                                }
+
+
+                            }
+                            catch { }
+                        }
+                    }
+                    catch { }
+                    finally
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            MusicMain.loading.Hide();
+                            ///鍙互鎻愮ず瑙i櫎澶辫触;
+                            if (_if)
+                            {
+                                //瑙i櫎鎴愬姛鎵嶅彲浠ュ埛鏂扮晫闈�
+                                MainPage.BasePageView.RemoveViewByTag("MusicMain");
+                                var musicMain = new MusicMain();
+                                MainPage.BasePageView.AddChidren(musicMain);
+                                musicMain.Show();
+                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                            }
+                        });
+                    }
+                });
+               
+            };
+      }
     }
     [System.Serializable]
     public class A31Wifi鈥�    {

--
Gitblit v1.8.0