From e56137e33ed5c77a485f9e83ee4b6534cfdf6432 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期一, 03 八月 2020 15:00:21 +0800
Subject: [PATCH] 2020-8-03-1

---
 HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs |  199 +++++++++++++++++++++++++++----------------------
 1 files changed, 110 insertions(+), 89 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs
index fe5d085..3bc6869 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/View/DialogView.cs
@@ -1150,12 +1150,26 @@
         A31MusicModel currVolumePlay = null;//褰撳墠鐨勬挱鏀惧櫒
         int startVolume = 0;//涔嬪墠鐨勯煶閲�
         int endVolume = 0;//鐜板湪鐨勯煶閲�
+        string if_volume ="";//鏍囪鏄皟鑺傛�婚煶閲忚繕鏄崟涓挱鏀惧櫒闊抽噺;
         /// <summary>
         /// 鎾斁鍣ㄩ煶閲忕殑鐣岄潰
         /// </summary>
         /// <param name="a31player">涓绘挱鏀惧櫒</param>
         public void PlayerVolumeView(A31MusicModel a31player)
         {
+            volumePlayList.Clear();
+            for (int i = 0; i < a31player.Slave.slave_list.Count; i++)
+            {
+                var slave = a31player.Slave.slave_list[i];
+                var music_If = A31MusicModel.A31MusicModelList.Find((c) => c.UniqueDeviceName == slave.uuid.Replace("uuid:", ""));
+                if (music_If != null)
+                {
+                    music_If.ServerClientType = -1;
+                    music_If.A31PlayStatus.vol = slave.volume;
+                    volumePlayList.Add(music_If);
+                }
+            }
+            volumePlayList.Add(a31player);
             #region
             //涓绘帶浠�
             Dialog volumedialog = new Dialog();
@@ -1163,32 +1177,18 @@
             //鐖舵帶浠�
             FrameLayout frame = new FrameLayout { };
             volumedialog.AddChidren(frame);
-            frame.MouseUpEventHandler += (sen, e) =>
-            {
-                volumedialog.Close();
-                if (updateVolumeThread != null)
-                {
-                    try
-                    {
-                        if (updateVolumeThread.IsAlive)
-                        {
-                            updateVolumeThread.Abort();
-                        }
-                    }
-                    catch { }
-                }
-            };
             //鐧借壊蹇埗鎺т欢
             FrameLayout dialogFra = new FrameLayout()
             {
                 X = Application.GetRealWidth(16),
-                Y = Application.GetRealHeight(397),
+                Y = Application.GetRealHeight(397-20),
                 Width = Application.GetRealWidth(344),
-                Height = Application.GetRealHeight(250),
+                Height = Application.GetRealHeight(250+20),
                 BackgroundColor = Color.WhiteColor,
                 Radius = (uint)Application.GetRealHeight(12),
             };
             frame.AddChidren(dialogFra);
+            #region 纭 鍙栨秷
             //鏄剧ず澶撮儴淇℃伅鐖舵帶浠�
             FrameLayout topFra = new FrameLayout()
             {
@@ -1209,21 +1209,6 @@
                 TextSize = TextSize.Text14,
             };
             topFra.AddChidren(cancelnBtn);
-            cancelnBtn.MouseUpEventHandler += (sen, e) =>
-            {
-                volumedialog.Close();
-                if (updateVolumeThread != null)
-                {
-                    try
-                    {
-                        if (updateVolumeThread.IsAlive)
-                        {
-                            updateVolumeThread.Abort();
-                        }
-                    }
-                    catch { }
-                }
-            };
             //鏍囬鎺т欢
             Button txetBtn = new Button
             {
@@ -1251,8 +1236,8 @@
                 TextSize = TextSize.Text14,
             };
             topFra.AddChidren(confirmBtn);
-            confirmBtn.MouseUpEventHandler += (sen, e) =>
-            {
+
+            EventHandler<MouseEventArgs> eventHandler= (sen,e) => {
                 volumedialog.Close();
                 if (updateVolumeThread != null)
                 {
@@ -1266,31 +1251,72 @@
                     catch { }
                 }
             };
+            cancelnBtn.MouseUpEventHandler += eventHandler;
+            confirmBtn.MouseUpEventHandler += eventHandler;
+            frame.MouseUpEventHandler += eventHandler;
+            #endregion
+            #region 鎬婚煶閲忕殑View
+            FrameLayout totalVolumeFra = new FrameLayout
+            {
+                Height = Application.GetRealHeight(64),
+                Y = Application.GetRealHeight(58),
+            };
+            dialogFra.AddChidren(totalVolumeFra);
+            Button totalvolumeTextBtn = new Button
+            {
+                X = Application.GetRealWidth(28),
+                Y = Application.GetRealHeight(8),
+                Width = Application.GetRealWidth(200),
+                Height = Application.GetRealHeight(14),
+                TextColor = Color.MusicNoTxetColor,
+                TextSize = TextSize.Text10,
+                TextAlignment = TextAlignment.CenterLeft,
+                Text = Language.StringByID(StringId.totalVolume),
+            };
+            totalVolumeFra.AddChidren(totalvolumeTextBtn);
+            DiyImageSeekBar totalVolSeekBar = new DiyImageSeekBar
+            {
+                Y = Application.GetRealHeight(12),
+                X = Application.GetRealWidth(28),
+                Width = Application.GetRealWidth(240),
+                Height = Application.GetRealHeight(54),//杩涘害鏉$埗鎺т欢鑳屾櫙楂樺害
+                IsProgressTextShow = false,//鏄剧ず鐧惧垎姣�
+                IsClickable = true,//杩涘害鏉℃槸鍚︽粦鍔�
+                ProgressBarColor = Color.SelectedColor,//閫変腑杩涘害鏉¢鑹�
+                ThumbImagePath = "MusicIcon/progressIcon.png",//杩涘害鏉℃寜閽浘鏍�
+                ThumbImageHeight = Application.GetMinRealAverage(54),//杩涘害鏉℃寜閽浘鏍囩殑楂樺害锛堥粯璁ゆ鏂瑰舰锛氬鍜岄珮涓�鏍凤級
+                SeekBarViewHeight = Application.GetMinRealAverage(8),//杩涘害鏉$殑楂樺害
+                Progress = int.Parse(a31player.A31PlayStatus.vol),
+                //ProgressChangeDelayTime=
+            };
+            totalVolumeFra.AddChidren(totalVolSeekBar);
+
+            Button totalVolumeValueBtn = new Button
+            {
+                X = Application.GetRealWidth(289),
+                Y = Application.GetRealHeight(31),
+                Width = Application.GetRealWidth(26 + 15),
+                Height = Application.GetRealHeight(17),
+                TextColor = Color.MusicNoTxetColor,
+                TextSize = TextSize.Text12,
+                TextAlignment = TextAlignment.CenterLeft,
+                Text = totalVolSeekBar.Progress.ToString() + "%",
+            };
+            totalVolumeFra.AddChidren(totalVolumeValueBtn);
+            #endregion
 
             VerticalScrolViewLayout volumeViewLayout = new VerticalScrolViewLayout
             {
-                Y = Application.GetRealHeight(58),
-                Height = dialogFra.Height - Application.GetRealHeight(58),
+                Y =Application.GetRealHeight(58+64),
+                Height = dialogFra.Height - Application.GetRealHeight(58+64),
                 Width = Application.GetRealWidth(343),
             };
             dialogFra.AddChidren(volumeViewLayout);
-            volumePlayList.Clear();
-            for (int i = 0; i < a31player.Slave.slave_list.Count; i++)
-            {
-                var slave = a31player.Slave.slave_list[i];
-                var music_If = A31MusicModel.A31MusicModelList.Find((c) => c.UniqueDeviceName == slave.uuid.Replace("uuid:", ""));
-                if (music_If != null)
-                {
-                    music_If.ServerClientType = -1;
-                    music_If.A31PlayStatus.vol = slave.volume;
-                    volumePlayList.Add(music_If);
-                }
-            }
-            volumePlayList.Add(a31player);
 
             for (int i = 0; i < volumePlayList.Count; i++)
             {
                 var player = volumePlayList[i];
+                #region 璋冭妭褰撲釜鎾斁鍣╒iew
                 FrameLayout volumeFra = new FrameLayout
                 {
                     Height = Application.GetRealHeight(64),
@@ -1305,17 +1331,10 @@
                     TextColor = Color.MusicNoTxetColor,
                     TextSize = TextSize.Text10,
                     TextAlignment = TextAlignment.CenterLeft,
+                    Text = player.Name + Language.StringByID(StringId.volumeMusic),
 
                 };
                 volumeFra.AddChidren(volumeTextBtn);
-                if (player.ServerClientType == -1)
-                {
-                    volumeTextBtn.Text = player.Name + Language.StringByID(StringId.volumeMusic);
-                }
-                else if (player.ServerClientType == 1)
-                {
-                    volumeTextBtn.Text = Language.StringByID(StringId.totalVolume);
-                }
 
                 DiyImageSeekBar volSeekBar = new DiyImageSeekBar
                 {
@@ -1346,36 +1365,39 @@
                     Text = player.A31PlayStatus.vol + "%",
                 };
                 volumeFra.AddChidren(valueBtn);
-
+                #endregion
                 ///闊抽噺杩涘害鏉$偣鍑讳簨浠�
                 EventHandler<int> progressClick = (sender, e) =>
                 {
-
                     if (currVolumePlay == null || (currVolumePlay != null && currVolumePlay.UniqueDeviceName != player.UniqueDeviceName))
                     {
                         currVolumePlay = player;
                     }
                     endVolume = e;
-                    if (player.ServerClientType == -1)
-                    {
-                        valueBtn.Text = volSeekBar.Progress + "%";
-                    }
-                    else if (player.ServerClientType == 1)
-                    {
-                        for (int j = 0; j < volumePlayList.Count; j++)
-                        {
-                            var music = volumePlayList[j];
-                            var frameLayout = (FrameLayout)volumeViewLayout.GetChildren(j);
-                            var diyImageSeekBar = (DiyImageSeekBar)frameLayout.GetChildren(1);
-                            var button = (Button)frameLayout.GetChildren(2);
-                            diyImageSeekBar.Progress = volSeekBar.Progress;
-                            button.Text = volSeekBar.Progress + "%";
-                        }
-                    }
+                    if_volume = "Volume";
+                    valueBtn.Text = volSeekBar.Progress + "%";
                 };
                 volSeekBar.OnProgressChangedEvent += progressClick;
                 volSeekBar.OnStopTrackingTouchEvent += progressClick;
             }
+
+            EventHandler<int> totalProgressClick = (sender, e) =>
+            {
+                if_volume = "totalVolume";
+                endVolume = e;
+                totalVolumeValueBtn.Text = totalVolSeekBar.Progress + "%";
+                for (int j = 0; j < volumePlayList.Count; j++)
+                {
+                    var music = volumePlayList[j];
+                    var frameLayout = (FrameLayout)volumeViewLayout.GetChildren(j);
+                    var diyImageSeekBar = (DiyImageSeekBar)frameLayout.GetChildren(1);
+                    var button = (Button)frameLayout.GetChildren(2);
+                    diyImageSeekBar.Progress = totalVolSeekBar.Progress;
+                    button.Text = totalVolSeekBar.Progress + "%";
+                }
+            };
+            totalVolSeekBar.OnProgressChangedEvent += totalProgressClick;
+            totalVolSeekBar.OnStopTrackingTouchEvent += totalProgressClick;
             #endregion
 
         }
@@ -1401,32 +1423,31 @@
                     while (true)
                     {
                         System.Threading.Thread.Sleep(500);
-                        if (startVolume == endVolume || currVolumePlay == null)
+                        if (startVolume == endVolume)
                         {
                             continue;
                         }
                         startVolume = endVolume;
-
-                        if (currVolumePlay.ServerClientType == -1)
+                        if (if_volume == "totalVolume")
                         {
-                            SendMethod.ControlVolume(endVolume, currVolumePlay);
-                        }
-                        else if (currVolumePlay.ServerClientType == 1)
-                        {
-                            //鍏堝彂涓绘挱鏀惧櫒闊抽噺鍛戒护
-                            SendMethod.ControlVolume(endVolume, currVolumePlay);
                             for (int j = 0; j < volumePlayList.Count; j++)
                             {
                                 var music = volumePlayList[j];
-                                if (music.ServerClientType == 1)
-                                {
-                                    continue;
-                                }
-                                System.Threading.Thread.Sleep(500);
                                 //姣忎釜500姣鍙戜粠鎾斁鍣ㄩ煶閲忓懡浠�
                                 SendMethod.ControlVolume(endVolume, music);
+                                System.Threading.Thread.Sleep(1000);
+
                             }
                         }
+                        else if(if_volume == "Volume")
+                        {
+                            if (currVolumePlay == null)
+                            {
+                                continue;
+                            }
+                            SendMethod.ControlVolume(endVolume, currVolumePlay);
+                        }
+
 
                     }
                 }

--
Gitblit v1.8.0