using System; using System.Collections.Generic; using Shared; using Shared.SimpleControl; using Shared.SimpleControl.Phone.Music; using Shared.SimpleControl.R; namespace SmartHome.UI.SimpleControl.Phone.Music { class A31GenresListPage : FrameLayout { public override void RemoveFromParent () { base.RemoveFromParent (); isExit = true; } public void Show (string str,string listname) { AddChidren (new Button { Height = Application.GetRealHeight (36), BackgroundColor = SkinStyle.Current.MusicTopFrameLayout, }); var topFrameLayout = new FrameLayout { Height = Application.GetRealHeight (100), Y = Application.GetRealHeight (36), BackgroundColor = SkinStyle.Current.MusicTopFrameLayout, }; AddChidren (topFrameLayout); var whatnew = new Button { Text =listname.ToUpper(), TextColor=SkinStyle.Current.MusicTextColor, }; topFrameLayout.AddChidren (whatnew); var Search = new Button { Width = Application.GetMinRealAverage (60), Height = Application.GetMinRealAverage (80), X = Application.GetRealWidth (535), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "MusicIcon/seekdevice.png", }; //topFrameLayout.AddChidren (Search); Search.MouseUpEventHandler += (sender, e) => { }; var back = new Button { Width = Application.GetRealWidth (82), Height = Application.GetRealHeight (89), X = Application.GetRealWidth (10), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "MusicIcon/HomepageBack.png", }; topFrameLayout.AddChidren (back); back.MouseDownEventHandler += (sender, e) => { RemoveFromParent (); }; VerticalScrolViewLayout middle = new VerticalScrolViewLayout { Y = topFrameLayout.Bottom, Height = Application.GetRealHeight (Application.DesignHeight - 136), // BackgroundColor = 0xff2F2F2F, BackgroundColor = SkinStyle.Current.MusicVerticalScrolViewLayout, }; AddChidren (middle); var list = Tidal.TempMusicInfoList.FindAll ((obj) => obj.Tag.ToString () == str && obj.IsDirectory); foreach (var musicInfo in list) { var row = new RowLayout { Height = Application.GetRealHeight (100), LineColor = SkinStyle.Current.MusicRowLayoutLineColor, }; middle.AddChidren (row); var imageBtn = new Button { Width = Application.GetRealWidth (80), Height = Application.GetRealHeight (70), X = Application.GetRealWidth (30), Gravity = Gravity.CenterVertical, Radius = (uint)Application.GetRealHeight (4), UnSelectedImagePath = System.IO.File.Exists (musicInfo.Image) ? musicInfo.Image : "MusicIcon/musicplay1.png", }; row.AddChidren (imageBtn); var btnPlaylist = new Button { Height = Application.GetRealHeight (100), Width = Application.GetRealWidth (400), Text = musicInfo.Title, TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (140), Tag = musicInfo.ID, TextColor = SkinStyle.Current.MusicTextColor, }; row.AddChidren (btnPlaylist); var nextPlaylist = new Button { Width = Application.GetRealWidth (87), Height = Application.GetRealHeight (100), UnSelectedImagePath = "MusicIcon/Next.png", TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth (550), Gravity = Gravity.CenterVertical, }; row.AddChidren (nextPlaylist); EventHandler PlayMuisclistsource = (sender, e) => { MainPage.Loading.Start (Language.StringByID (MyInternationalizationString.load)); var id = btnPlaylist.Tag.ToString (); Tidal.ReadPlayList (id + "/tracks", () => { Application.RunOnMainThread (() => { RemoveFromParent (); A31TidalLogin a31TidalLogin = new A31TidalLogin (); MainPage.MainFrameLayout.AddChidren (a31TidalLogin); a31TidalLogin.Show (A31MusicModel.Current); }); }, (path) => { Application.RunOnMainThread (() => { MainPage.Loading.Hide (); A31GenresListPage a31GenresListPage = new A31GenresListPage (); MainPage.MainFrameLayout.AddChidren (a31GenresListPage); a31GenresListPage.Show (path,btnPlaylist.Text); }); }); }; nextPlaylist.MouseUpEventHandler += PlayMuisclistsource; btnPlaylist.MouseUpEventHandler += PlayMuisclistsource; imageBtn.MouseUpEventHandler += PlayMuisclistsource; } var trackList = Tidal.TempMusicInfoList.FindAll ((obj) => obj.Tag.ToString () == str && !obj.IsDirectory); foreach (var musicInfo in trackList) { var row = new RowLayout { Height = Application.GetRealHeight (100), LineColor = SkinStyle.Current.MusicRowLayoutLineColor, }; middle.AddChidren (row); var imageBtn = new Button { Width = Application.GetRealWidth (61), Height = Application.GetRealHeight (61), X = Application.GetRealWidth (20), Gravity = Gravity.CenterVertical, Radius = (uint)Application.GetRealHeight (4), UnSelectedImagePath = System.IO.File.Exists (musicInfo.Image) ? musicInfo.Image : "MusicIcon/musicplay1.png", Tag = musicInfo, }; row.AddChidren (imageBtn); var listmusic = new Button { Width = Application.GetRealWidth (400), Height = Application.GetRealHeight (50), Text = musicInfo.Title, TextAlignment = TextAlignment.BottomLeft, X = Application.GetRealWidth (100), Tag = musicInfo, TextColor = SkinStyle.Current.MusicTextColor, }; row.AddChidren (listmusic); var artists = new Button { Width = Application.GetRealWidth (400), Height = Application.GetRealHeight (50), TextAlignment = TextAlignment.TopLeft, X = Application.GetRealWidth (100), Y = listmusic.Bottom, //TextColor = 0x75ffffff, Text = musicInfo.Artist, Tag = musicInfo, TextColor = SkinStyle.Current.MusicArtistTextColor, }; row.AddChidren (artists); EventHandler TrackMusic = (sender, e) => { row.BackgroundColor = 0xffFE5E00; System.Threading.Tasks.Task.Run (() => { Application.RunOnMainThread (() => { for (int i = MainPage.MainFrameLayout.ChildrenCount - 1; 0 <= i; i--) { var view = MainPage.MainFrameLayout.GetChildren (i); if (view.GetType () == typeof (A31GenresListPage)) { view.RemoveFromParent (); } else { break; } } MainPage.MainFrameLayout.RemoveAt (MainPage.MainFrameLayout.ChildrenCount - 1); MainPage.MainFrameLayout.RemoveAt (MainPage.MainFrameLayout.ChildrenCount - 1); MainPage.MainFrameLayout.RemoveAt (MainPage.MainFrameLayout.ChildrenCount - 1); A31PlayMusicPage a31PlayMusicPage = new A31PlayMusicPage (); MainPage.MainFrameLayout.AddChidren (a31PlayMusicPage); a31PlayMusicPage.Show (new List ()); A31MusicModel.Current.A31PlayStatus.Title = listmusic.Text; System.Threading.Tasks.Task.Run (() => { A31NewPage.tidalpushList (listmusic.Tag as MusicInfo, trackList); }); }); }); }; imageBtn.MouseUpEventHandler += TrackMusic; listmusic.MouseUpEventHandler += TrackMusic; artists.MouseUpEventHandler += TrackMusic; } System.Threading.Tasks.Task.Run (() => { for (int i = 0; i < trackList.Count; i++) { if (isExit) { return; } Tidal.ReadRealUrl (trackList [i]); } }); } bool isExit; } }