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<MouseEventArgs> 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<MouseEventArgs> 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<MusicInfo> ());
|
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;
|
}
|
}
|