using System.Text; using Shared; using Shared.SimpleControl.Phone; using Shared.SimpleControl; using Shared.SimpleControl.R; using System.Xml; using SmartHome.UI.SimpleControl.Phone; using System.Security; using SmartHome; using System.Net; using System.Security.Cryptography; using System; using System.Collections.Generic; using Newtonsoft.Json.Linq; namespace Shared.SimpleControl.Phone { public class SonosLikeList : FrameLayout { public void Show (SonosMusic sonosMusic) { AddChidren (new Button { Height = Application.GetRealHeight (36), BackgroundColor = SkinStyle.Current.MusicTopFrameLayout, }); var topFrameLayout = new FrameLayout { Height = Application.GetRealHeight (90), Y = Application.GetRealHeight (36), BackgroundColor = SkinStyle.Current.MusicTopFrameLayout, }; AddChidren (topFrameLayout); 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) => { this.RemoveFromParent (); }; var musiclist = new Button { Width = Application.GetRealWidth (200), Height = Application.GetRealHeight (150), TextID = MyInternationalizationString.Musiclike, X = Application.GetRealWidth (200), Gravity = Gravity.CenterVertical, }; topFrameLayout.AddChidren (musiclist); var likelistview = new VerticalScrolViewLayout { Height = Application.GetRealHeight (Application.DesignHeight - 126), Y = topFrameLayout.Bottom, BackgroundColor = 0xff2F2F2F, }; this.AddChidren (likelistview); //if (sonosMusic.SonosLovePlayList.Count == 0) { sonosMusic.SonosLovePlayList.Clear (); MainPage.Loading.Start (); System.Threading.Tasks.Task.Run (() => { try { var tempsonosList = SuperGateWay.Control.getsonosLikeList (); if (tempsonosList == null) { return; } if (tempsonosList != null) { foreach (var str in tempsonosList) { try { var result = SuperGateWay.Control.getsonosLikeSongs(str.Replace (".json", "")); if (result != null) { var obj = JObject.Parse (result); var songitems = obj ["songitems"]?.ToString (); var songlist = Newtonsoft.Json.JsonConvert.DeserializeObject> (songitems); foreach (var songinof in songlist) { songifon songs = new songifon (); songs.id = songinof.id; songs.imageUrl = songinof.imageUrl; songs.songname = songinof.songname; sonosMusic.SonosLovePlayList.Add (songs); } } } catch { } } } } catch { } finally { Application.RunOnMainThread (() => { MainPage.Loading.Hide (); likeView (likelistview, sonosMusic); }); } }); //} else { // likeView (likelistview, sonosMusic); //} } void likeView (VerticalScrolViewLayout likelistview, SonosMusic sonosMusic) { for (int i = 0; i < sonosMusic.SonosLovePlayList.Count; i++) { var music = sonosMusic.SonosLovePlayList [i]; var likemusic = new RowLayout { Width = LayoutParams.MatchParent, Height = Application.GetRealHeight (100), }; likelistview.AddChidren (likemusic); var titleMusic = new Button { Width = Application.GetRealWidth (61), Height = Application.GetRealHeight (61), X = Application.GetRealWidth (20), Gravity = Gravity.CenterVertical, Radius = (uint)Application.GetRealHeight (4), UnSelectedImagePath = "MusicIcon/musicplay1.png", }; likemusic.AddChidren (titleMusic); string patn = "SonosMusicImage_"; if (Shared.IO.FileUtils.Exists (patn + music.songname)) { titleMusic.UnSelectedImagePath = patn + music.songname; } else { titleMusic.UnSelectedImagePath = "MusicIcon/musicplay1.png"; System.Threading.Tasks.Task.Run (() => { var filePath = SonosMusic.SonosMusicImage (music.imageUrl, music.songname); if (filePath != null) { Application.RunOnMainThread (() => { titleMusic.UnSelectedImagePath = filePath; }); } }); } var songmker = new Button { Width = Application.GetRealWidth (400), Height = Application.GetRealHeight (50), TextAlignment = TextAlignment.BottomLeft, X = Application.GetRealWidth (100), Text = music.songname, TextColor = SkinStyle.Current.MusicTextColor, }; likemusic.AddChidren (songmker); var artists = new Button { Width = Application.GetRealWidth (400), Height = Application.GetRealHeight (40), TextAlignment = TextAlignment.TopLeft, X = Application.GetRealWidth (100), Y = songmker.Bottom, //TextColor = 0x75ffffff, Text ="unkown", TextColor = SkinStyle.Current.MusicArtistTextColor, }; likemusic.AddChidren (artists); EventHandler clickLovesong = (sender, e) => { likemusic.BackgroundColor = 0xffFE5E00; System.Threading.Tasks.Task.Run (() => { Application.RunOnMainThread (() => { //先移除当前控件的前面那个控件 this.Parent.RemoveAt (this.Parent.ChildrenCount - 3); this.Parent.RemoveAt (this.Parent.ChildrenCount - 2); //当前控件界面 this.RemoveFromParent (); var sonosPlay = new SonosPlay { }; MainPage.MainFrameLayout.AddChidren (sonosPlay); sonosPlay.Show (sonosMusic); System.Threading.Tasks.Task.Run (() => { sonosMusic.eventsend (sonosMusic, 6, music.id); }); }); }); }; likemusic.MouseUpEventHandler += clickLovesong; titleMusic.MouseUpEventHandler += clickLovesong; songmker.MouseUpEventHandler += clickLovesong; artists.MouseUpEventHandler += clickLovesong; new System.Threading.Thread (() => { while (this.Parent != null) { System.Threading.Thread.Sleep (1000); Shared.Application.RunOnMainThread (() => { try { for (int j = 0; j < likelistview.ChildrenCount; j++) { RowLayout view = (RowLayout)likelistview.GetChildren (j); var songName = (Button)view.GetChildren (1); if (sonosMusic.sonosPlayStatus.songName == songName.Text) { songName.TextColor = 0xffFE5E00; } else { songName.TextColor = SkinStyle.Current.MusicTextColor; } } } catch { } }); } }) { IsBackground = true }.Start (); } } } }