Adding channels to the home screen

This commit is contained in:
Anonymous Raccoon
2018-04-22 21:33:54 +02:00
parent d686197fc2
commit 4e61ed3710
5 changed files with 70 additions and 18 deletions
+1
View File
@@ -301,6 +301,7 @@
<Compile Include="Resources\values\Folder.cs" />
<Compile Include="Resources\values\FolderHolder.cs" />
<Compile Include="Resources\values\Holder.cs" />
<Compile Include="Resources\values\HomeChannelHolder.cs" />
<Compile Include="Resources\values\HomeItem.cs" />
<Compile Include="Resources\values\HomeSection.cs" />
<Compile Include="Resources\values\PaddingChange.cs" />
+18 -17
View File
@@ -145,7 +145,7 @@ namespace MusicApp.Resources.Portable_Class
ChannelListResponse response = await request.ExecuteAsync();
foreach(var ytItem in response.Items)
foreach (var ytItem in response.Items)
{
Song channel = new Song(ytItem.Snippet.Title, "", ytItem.Snippet.Thumbnails.Default__.Url, ytItem.Id, -1, -1, null, true);
contentValue.Add(channel);
@@ -154,23 +154,24 @@ namespace MusicApp.Resources.Portable_Class
return;
}
HomeSection section = new HomeSection(item.SectionTitle, item.contentType, contentValue);
}
if (adapter == null)
{
adapterItems.Add(section);
adapter = new HomeAdapter(adapterItems);
ListView.SetAdapter(adapter);
adapter.ItemClick += ListView_ItemClick;
adapter.ItemLongClick += ListView_ItemLongCLick;
ListView.SetItemAnimator(new DefaultItemAnimator());
ListView.ScrollChange += MainActivity.instance.Scroll;
}
else
{
adapterItems.Add(section);
adapter.AddToList(new List<HomeSection>() { section });
}
HomeSection section = new HomeSection(item.SectionTitle, item.contentType, contentValue);
if (adapter == null)
{
adapterItems.Add(section);
adapter = new HomeAdapter(adapterItems);
ListView.SetAdapter(adapter);
adapter.ItemClick += ListView_ItemClick;
adapter.ItemLongClick += ListView_ItemLongCLick;
ListView.SetItemAnimator(new DefaultItemAnimator());
ListView.ScrollChange += MainActivity.instance.Scroll;
}
else
{
adapterItems.Add(section);
adapter.AddToList(new List<HomeSection>() { section });
}
}
break;
@@ -71,6 +71,11 @@ namespace MusicApp.Resources.Portable_Class
View itemView = LayoutInflater.From(parent.Context).Inflate(Android.Resource.Layout.PreferenceCategory, parent, false);
return new HeaderHolder(itemView, OnClick, OnLongClick);
}
if(viewType == (int)HomeRow.ChannelHolder)
{
View itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.ChannelList, parent, false);
return new HomeChannelHolder(itemView, OnClick, OnLongClick);
}
if (viewType == (int)HomeRow.SongHolder)
{
View itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.SongList, parent, false);
@@ -106,6 +111,23 @@ namespace MusicApp.Resources.Portable_Class
HeaderHolder holder = (HeaderHolder)viewHolder;
holder.headerText.Text = items[containerID].SectionTitle;
}
else if(items[containerID].contentType == SectionType.ChannelList)
{
HomeChannelHolder holder = (HomeChannelHolder)viewHolder;
holder.Title.Text = items[containerID].contentValue[position].GetName();
holder.Artist.Text = items[containerID].contentValue[position].GetArtist();
holder.CheckBox.Visibility = ViewStates.Gone;
Picasso.With(Application.Context).Load(items[containerID].contentValue[position].GetAlbum()).Placeholder(Resource.Drawable.MusicIcon).Transform(new CircleTransformation()).Into(holder.AlbumArt);
if (MainActivity.Theme == 1)
{
holder.Title.SetTextColor(Color.White);
holder.Artist.SetTextColor(Color.White);
holder.Artist.Alpha = 0.7f;
}
}
else if(items[containerID].contentType == SectionType.SinglePlaylist)
{
HomeMultipleSong holder = (HomeMultipleSong)viewHolder;
@@ -9,7 +9,7 @@ namespace MusicApp.Resources.Portable_Class
{
public TextView headerText;
public HeaderHolder(View itemView, Action itemClick, Action<int> listener, Action<int> longListener) : base(itemView)
public HeaderHolder(View itemView, Action<int> listener, Action<int> longListener) : base(itemView)
{
headerText = itemView.FindViewById<TextView>(Android.Resource.Id.Title);
itemView.Click += (sender, e) => listener(AdapterPosition);
@@ -0,0 +1,28 @@
using Android.Support.V7.Widget;
using Android.Views;
using Android.Widget;
using System;
namespace MusicApp.Resources.values
{
public class HomeChannelHolder : RecyclerView.ViewHolder
{
public LinearLayout textLayout;
public TextView Title;
public TextView Artist;
public ImageView AlbumArt;
public CheckBox CheckBox;
public HomeChannelHolder(View itemView, Action<int> listener, Action<int> longListener) : base(itemView)
{
textLayout = itemView.FindViewById<LinearLayout>(Resource.Id.textLayout);
Title = itemView.FindViewById<TextView>(Resource.Id.title);
Artist = itemView.FindViewById<TextView>(Resource.Id.artist);
AlbumArt = itemView.FindViewById<ImageView>(Resource.Id.albumArt);
CheckBox = itemView.FindViewById<CheckBox>(Resource.Id.checkBox);
itemView.Click += (sender, e) => listener(AdapterPosition);
itemView.LongClick += (sender, e) => longListener(AdapterPosition);
}
}
}