using System;
using System.Collections.Generic;
using HDL_ON.UI.UI2.FuntionControlView.Music;
using Shared;
namespace HDL_ON.UI.Music
{
public class A31FlieList : FrameLayout
{
public A31FlieList(string source,string title)
{
Tag = "Music";
this.source = source;
this.title = title;
}
///
/// 音乐源
///
private string source = string.Empty;
///
/// 标题
///
private string title = string.Empty;
VerticalRefreshLayout middViewLayout;
public void Show()
{
#region 界面布局------
this.BackgroundColor = MusicColor.ViewColor;
var topView = new TopView();
this.AddChidren(topView.TopFLayoutView());
topView.topNameBtn.Text=this.title;
topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
{
this.RemoveFromParent();
};
middViewLayout = new VerticalRefreshLayout
{
BackgroundColor = MusicColor.WhiteColor,
Y = topView.fLayout.Bottom,
Height = Application.GetRealHeight(H_W.H - H_W.T_Height),
};
this.AddChidren(middViewLayout);
#endregion
middViewLayout.BeginHeaderRefreshingAction += () =>
{
System.Threading.Tasks.Task.Run(() =>
{
try
{
var Group = SendMethod.Current.GetSingleSourceListNameList(A31MusicModel.Current.functionMusic, this.source);
CommonMethod.Current.AddSourceGroupListMemory(Group);//保存缓存
}
catch { }
finally
{
Application.RunOnMainThread(() =>
{
var listNameList = CommonMethod.Current.GetListNameListMemory(this.source);
this.FileListView(listNameList);
middViewLayout.EndHeaderRefreshing();
});
}
});
};
}
///
/// 加载列表
///
/// 列表名列表
public void FileListView(List listNames)
{
middViewLayout.RemoveAll();
for (int i = 0; i < listNames.Count; i++)
{
var listName= listNames[i];
RowLayout addFlieRow = new RowLayout
{
Height = Application.GetRealHeight(104),
LineColor = MusicColor.WhiteColor,
SubViewWidth = Application.GetRealWidth(90),//改变编辑控件宽度多少;
};
middViewLayout.AddChidren(addFlieRow);
//文件图标
Button fileIconBtn = new Button
{
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(8),
Width = Application.GetRealWidth(88),
Height = Application.GetRealWidth(88),
UnSelectedImagePath = "MusicIcon/fileList.png",
};
addFlieRow.AddChidren(fileIconBtn);
//文件名控件
Button fileNameBtn = new Button
{
X = fileIconBtn.Right + Application.GetRealWidth(16),
Y = Application.GetRealHeight(42),
Width = Application.GetRealWidth(217),
Height = Application.GetRealHeight(20),
TextColor = MusicColor.TextColor,
TextSize = TextSize.Text14,
TextAlignment = TextAlignment.CenterLeft,
Text = listName.group,
};
addFlieRow.AddChidren(fileNameBtn);
Button clickBtn = new Button
{
X = fileIconBtn.Right + Application.GetRealWidth(16),
Width = Application.GetRealWidth(375 - 138),
Height = Application.GetRealHeight(104),
Tag=listName.group
};
addFlieRow.AddChidren(clickBtn);
clickBtn.MouseUpEventHandler += (sender, e) =>
{
string groupName = clickBtn.Tag.ToString();
Loading loading = new Loading();
this.AddChidren(loading);
loading.Start();
//向缓存拿列表
var songListMemory = CommonMethod.Current.GetSongListMemory(groupName,this.source);
System.Threading.Tasks.Task.Run(() =>
{
try
{
//缓存没有列表才去读取
if (songListMemory.songs.Count == 0)
{
//读取歌曲列表
var songList = SendMethod.Current.GetSingleSongList(A31MusicModel.Current.functionMusic, groupName, this.source);
CommonMethod.Current.AddSongListMemory(songList,this.source);//保存缓存
songListMemory.songs.AddRange(songList.songs);//更新列表
}
}
catch
{
}
finally
{
Application.RunOnMainThread(() =>
{
loading.Hide();
A31SongPlay a31Song = new A31SongPlay();
MainPage.BasePageView.AddChidren(a31Song);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
a31Song.Show(songListMemory);
});
}
});
};
}
}
}
}