From 592974441a4df95fffd9167c90192da1a390b1c2 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期二, 06 六月 2023 11:51:12 +0800 Subject: [PATCH] Merge branch 'Dev-Branch' --- HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs | 317 +++++++++++++++++++++++++++++++++------------------- 1 files changed, 198 insertions(+), 119 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs index 5ef69f3..0a5c9a5 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs @@ -4,20 +4,31 @@ using Shared.IO; using System.Net; using HDL_ON.Entity; +using HDL_ON.UI.UI2.FuntionControlView.Music; namespace HDL_ON.UI.Music { public class MusicMain : FrameLayout { + private static MusicMain s_Current = null; + public static MusicMain Current + { + get + { + if (s_Current == null) + { + s_Current = new MusicMain(); + } + return s_Current; + } + } /// <summary> /// MusicMain瀵硅薄鏋勯�犲嚱鏁� /// </summary> public MusicMain() { Tag = "MusicMain"; - //杩涙潵闊充箰鍒楄〃鐣岄潰鍏堢Щ闄や箣鍓嶇嚎绋�; - A31MusicModel.RemoveListThread(); } /// <summary> /// 閲嶅啓RemoveFromParent鏂规硶 @@ -25,8 +36,9 @@ public override void RemoveFromParent() { base.RemoveFromParent(); - clearA31Threads(); - A31MusicModel.ReadMusicStates();//杩涙潵娌℃湁闊充箰琚敹钘忚繃锛岄��鍑烘湁闊充箰琚敹钘忚繃 + ClearA31Threads(); + //杩涙潵娌℃湁闊充箰琚敹钘忚繃锛岄��鍑烘湁闊充箰琚敹钘忚繃 + //A31MusicModel.ReadMusicStates(); } /// <summary> /// 鍒涘缓绾跨▼鍒楄〃 @@ -35,8 +47,9 @@ /// <summary> /// 绉婚櫎绾跨▼ /// </summary> - static void clearA31Threads() + static void ClearA31Threads() { + var threads = threadLists.FindAll((obj) => { return obj.Name == "A31"; }); foreach (var thread in threads) { @@ -63,12 +76,10 @@ /// 瀹氫箟鍏ㄥ眬瀵硅薄 /// </summary> VerticalRefreshLayout verticalRefresh; - /// <summary> - /// 涓轰簡闊充箰鍒锋柊鐘舵�佸畾涔夊叏灞�瀵硅薄 - /// </summary> - MusicView musicView = new MusicView(); + public void Show() { + #region 鐣岄潰甯冨眬 this.BackgroundColor = MusicColor.ViewColor; var topView = new TopView(); @@ -83,16 +94,17 @@ { Y = topView.fLayout.Bottom, Height = Application.GetRealHeight(H_W.H - H_W.T_Height), + Name = "verticalRefresh", }; this.AddChidren(verticalRefresh); #endregion verticalRefresh.BeginHeaderRefreshingAction += () => { - + + ////鍙戦�佽鍙栭煶涔愭挱鏀惧櫒鐘舵�佺嚎绋� SeachMusic(); verticalRefresh.EndHeaderRefreshing(); - }; this.AddChidren(loading); SeachMusic(); @@ -103,15 +115,19 @@ /// </summary> void SeachMusic() { + Application.RunOnMainThread(() => { verticalRefresh.RemoveAll(); - - var musicListFunction = SendMethod.sendMethod.GetMusicList; - for (int i = 0; i < musicListFunction.Count; i++) + A31MusicModel.A31MusicModelList.Clear(); + var musicDeviceList= FunctionList.List.GetMusicList(); + for (int i = 0; i < musicDeviceList.Count; i++) { - var function = musicListFunction[i]; - var music = A31MusicModel.A31MusicModelList.Find((music) => music.functionMusic.deviceId == function.deviceId); + var function = musicDeviceList[i]; + var music = A31MusicModel.A31MusicModelList.Find((obj) => + (obj.functionMusic.deviceId == function.deviceId && function.spk == SPK.MusicStandard) || ( + obj.functionMusic.deviceId == function.deviceId && function.spk == SPK.AvMusic) + ); if (music == null) { A31MusicModel.A31MusicModelList.Add(new A31MusicModel { functionMusic = function }); @@ -122,11 +138,43 @@ } } - for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++) { + var a31player = A31MusicModel.A31MusicModelList[i]; - MusicListView(a31player); + //if (a31player.functionMusic.online == false) + //{ + // //涓嶅湪绾夸笉鏄剧ず + // continue; + //} + + Application.RunOnMainThread(() => + { + MusicListView(a31player); + }); + } + ///杩涙潵璇讳竴娆¢煶涔愭挱鏀惧櫒鐘舵�� + for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++) + { + + var a31player = A31MusicModel.A31MusicModelList[i]; + if (a31player.functionMusic.online == false) + { + //涓嶅湪绾夸笉璇诲彇 + continue; + } + //鍙戦�佽鍙栭煶涔愭挱鏀惧櫒鐘舵�佺嚎绋� + System.Threading.Tasks.Task.Run(() => + { + try + { + + SendMethod.Current.RefreshDeviceStatus(new List<string> { a31player.functionMusic.deviceId }); + System.Threading.Thread.Sleep(500); + } + catch { } + + }); } }); @@ -135,17 +183,19 @@ /// <summary> /// 鏄剧ず闊充箰鍒楄〃鐨勬柟娉� /// </summary> - void MusicListView(A31MusicModel player) + void MusicListView(A31MusicModel player) { - musicView.View(verticalRefresh); - musicView.singerBtn.Text = player.functionMusic.GetAttrState("song_name"); - musicView.songNameBtn.Text = player.functionMusic.GetAttrState("song_name"); + /// <summary> + /// 涓轰簡闊充箰鍒锋柊鐘舵�佸畾涔夊叏灞�瀵硅薄 + /// </summary> + MusicView musicView = new MusicView(); + musicView.ViewAddChidren(verticalRefresh); + musicView.muiscFl.Tag = player.functionMusic;//澶氫釜闊充箰鎾斁鍣ㄦ洿鏂扮姸鎬佽鐢ㄥ埌 + musicView.singerBtn.Text = player.functionMusic.GetAttrState(KeyProperty.song_name); + musicView.songNameBtn.Text = player.functionMusic.GetAttrState(KeyProperty.song_name); musicView.musicNameBtn.Text = player.functionMusic.name; - //if (player.IsEnd) - //{ - // musicView.muiscFl.Height = Application.GetRealHeight(12 + 139 + 12); - //} - + musicView.collectIconBtn.Visible = false;//鍏堟殏鏃堕殣钘忔敹钘忓姛鑳� + ///鏀惰棌浜嬩欢 musicView.collectIconBtn.MouseUpEventHandler += (sender, e) => { musicView.collectIconBtn.IsSelected = !musicView.collectIconBtn.IsSelected; @@ -159,21 +209,8 @@ } }; - EventHandler<MouseEventArgs> clickMergence = (sender, e) => - { - //if (player.ServerClientType == 0) - //{ - // new View.DialogView { }.PlayMergence(player); - //} - //else if (player.ServerClientType == 1) - //{ - // new View.DialogView { }.DetachPlayMergence(player); - //} - }; - musicView.mergeBjBtn.MouseUpEventHandler += clickMergence; - musicView.mergeBtn.MouseUpEventHandler += clickMergence; - musicView.mergeIconBtn.MouseUpEventHandler += clickMergence; + ///杩涘叆闊充箰涓婚〉浜嬩欢 EventHandler<MouseEventArgs> clickPlayView = (sender, e) => { @@ -194,10 +231,10 @@ musicView.prevBtn.MouseDownEventHandler += (sender, e) => { musicView.prevBtn.IsSelected = true; - player.functionMusic.SetAttrState("song_step", "up"); + player.functionMusic.SetAttrState(KeyProperty.song_step, ValueProperty.up); Dictionary<string, string> dic = new Dictionary<string, string>(); - dic.Add("song_step", "up"); - SendMethod.sendMethod.SendControlCommand(player.functionMusic, dic); + dic.Add(KeyProperty.song_step, ValueProperty.up); + SendMethod.Current.SendControlCommand(player.functionMusic, dic); }; musicView.prevBtn.MouseUpEventHandler += (sender, e) => { @@ -206,55 +243,54 @@ ///鏆傚仠/鎾斁鐐瑰嚮浜嬩欢 musicView.playBtn.MouseDownEventHandler += (sender, e) => { - string status = "off"; + string status = ValueProperty.off; if (musicView.playBtn.IsSelected) { musicView.playBtn.IsSelected = false; - status = "off"; + status = ValueProperty.off; } else { musicView.playBtn.IsSelected = true; - status = "on"; + status = ValueProperty.on; } - player.functionMusic.SetAttrState("on_off", status); + player.functionMusic.SetAttrState(KeyProperty.on_off, status); Dictionary<string, string> dic = new Dictionary<string, string>(); - dic.Add("on_off", status); - SendMethod.sendMethod.SendControlCommand(player.functionMusic, dic); + dic.Add(KeyProperty.on_off, status); + SendMethod.Current.SendControlCommand(player.functionMusic, dic); }; ///涓嬩竴鏇茬偣鍑讳簨浠� musicView.nextBtn.MouseDownEventHandler += (sender, e) => { musicView.nextBtn.IsSelected = true; - player.functionMusic.SetAttrState("song_step", "down"); + player.functionMusic.SetAttrState(KeyProperty.song_step, ValueProperty.down); Dictionary<string, string> dic = new Dictionary<string, string>(); - dic.Add("song_step", "down"); - SendMethod.sendMethod.SendControlCommand(player.functionMusic, dic); + dic.Add(KeyProperty.song_step, ValueProperty.down); + SendMethod.Current.SendControlCommand(player.functionMusic, dic); }; musicView.nextBtn.MouseUpEventHandler += (sender, e) => { musicView.nextBtn.IsSelected = false; }; - + //鏇存柊鐘舵�佺嚎绋� var musicThread = new System.Threading.Thread(() => { while (true) { - System.Threading.Thread.Sleep(1000); if (!player.functionMusic.online) { ///涓嶅湪绾夸笉璇荤姸鎬� continue; } //SendMethod.ReadStatus(player); - SendMethod.sendMethod.RefreshDeviceStatus(player.functionMusic,new List<string> { player.functionMusic.deviceId }); - + SendMethod.Current.GetDeviceStatus(ref player, new List<string> { player.functionMusic.deviceId }, player.functionMusic.sid); + System.Threading.Thread.Sleep(1000); Application.RunOnMainThread(() => { - musicView.singerBtn.Text = player.functionMusic.GetAttrState("song_name"); - musicView.songNameBtn.Text = player.functionMusic.GetAttrState("song_name"); + musicView.singerBtn.Text = player.functionMusic.GetAttrState(KeyProperty.song_name); + musicView.songNameBtn.Text = player.functionMusic.GetAttrState(KeyProperty.song_name); musicView.musicNameBtn.Text = player.functionMusic.name; - if (player.A31PlayStatus.status == "play") + if (player.functionMusic.GetAttrState(KeyProperty.on_off) == ValueProperty.on) { musicView.playBtn.IsSelected = true; } @@ -263,27 +299,14 @@ musicView.playBtn.IsSelected = false; } musicView.regionBtn.Text = player.functionMusic.GetRoomListName(); - if (player.ServerClientType == 1) + + if (player.functionMusic.collect) { - if (player.MainPlayCollection) - { - musicView.collectIconBtn.IsSelected = true; - } - else - { - musicView.collectIconBtn.IsSelected = false; - } + musicView.collectIconBtn.IsSelected = true; } else { - if (player.functionMusic.collect) - { - musicView.collectIconBtn.IsSelected = true; - } - else - { - musicView.collectIconBtn.IsSelected = false; - } + musicView.collectIconBtn.IsSelected = false; } }); } @@ -297,62 +320,118 @@ ///鎸囧畾鍒锋柊鐣岄潰 /// </summary> /// <param name="strView">鍒ゆ柇瀛楃</param> - public void RefreshView(string strView) + public void RefreshView(AlinkStatusData alinkStatusData) { + if (alinkStatusData == null || alinkStatusData.status.Count == 0) + { + return; + } Application.RunOnMainThread(() => { try { - - for (int i = MainPage.BasePageView.ChildrenCount - 1; 0 <= i; i--) + for (int a =0; a < MainPage.BasePageView.ChildrenCount; a++) { - var view = MainPage.BasePageView.GetChildren(i); - if (strView == view.Tag.ToString()) + var view = MainPage.BasePageView.GetChildren(a); + if (view.GetType() == typeof(MusicMain)) { - if (view.GetType() == typeof(MusicMain)) + var musicMain = view as MusicMain; + if (musicMain != null) { - //musicView.singerBtn.Text = player.A31PlayStatus.Artist; - //musicView.songNameBtn.Text = player.A31PlayStatus.Title; - //musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(player); - //if (player.A31PlayStatus.status == "play") - //{ - // musicView.playBtn.IsSelected = true; - //} - //else - //{ - // musicView.playBtn.IsSelected = false; - //} - //musicView.regionBtn.Text = player.GetRoomListName(); - //if (player.ServerClientType == 1) - //{ - // if (player.MainPlayCollection) - // { - // musicView.collectIconBtn.IsSelected = true; - // } - // else - // { - // musicView.collectIconBtn.IsSelected = false; - // } - //} - //else - //{ - // if (player.collect) - // { - // musicView.collectIconBtn.IsSelected = true; - // } - // else - // { - // musicView.collectIconBtn.IsSelected = false; - // } - //} - } - } + for (int b = 0; b < musicMain.ChildrenCount; b++) + { + var view1 = musicMain.GetChildren(b); + if (view1.GetType() == typeof(VerticalRefreshLayout)) + { + var vv = view1 as VerticalRefreshLayout; + if (vv != null && vv.Name == "verticalRefresh") + { + for (int c = 0; c < vv.ChildrenCount; c++) + { + var viewfl = vv.GetChildren(c); + if (viewfl.GetType() == typeof(FrameLayout)) + { + var fl = viewfl as FrameLayout; + if ((fl.Tag as Function).sid!= alinkStatusData.sid) { + //涓嶆槸褰撳墠闊充箰涓嶄細鏇存柊鐘舵�� + continue; + } + if (fl != null && fl.Name == "parentfl") + { + for (int i = 0; i < fl.ChildrenCount; i++) + { + var viewfl1 = fl.GetChildren(i); + if (viewfl1.GetType() == typeof(FrameLayout)) + { + var fl1 = viewfl1 as FrameLayout; + if (fl1 != null && fl1.Name == "musicparentfl") + { + for (int j = 0; j < fl1.ChildrenCount; j++) + { + if (fl1.GetChildren(j).GetType() == typeof(Button)) + { + var btn = fl1.GetChildren(j) as Button; + if (btn == null ||btn.Name==null) + { + continue; + } + switch (btn.Name) + { + case "song": + { + var s = alinkStatusData.status.Find((o) => o.key == KeyProperty.song_name); + if (s != null) + { + btn.Text = s.value; + } + } + break; + case "playstatus": + { + + var s = alinkStatusData.status.Find((o) => o.key == KeyProperty.on_off); + if (s != null) + { + if (s.value == ValueProperty.on) + { + btn.IsSelected = true; + } + else + { + btn.IsSelected = false; + } + } + } + break; + } + + } + } + } + } + + } + } + } + + } + } + + } + + } + } + + } } + } catch { } }); } + + } } -- Gitblit v1.8.0