diff --git a/MusicApp/MusicApp.csproj b/MusicApp/MusicApp.csproj
index 8ea9f88..ceb5ec5 100644
--- a/MusicApp/MusicApp.csproj
+++ b/MusicApp/MusicApp.csproj
@@ -326,7 +326,7 @@
-
+
@@ -859,6 +859,9 @@
+
+
+
diff --git a/MusicApp/Resources/Portable Class/Adapter.cs b/MusicApp/Resources/Portable Class/Adapter.cs
deleted file mode 100644
index 2ed8988..0000000
--- a/MusicApp/Resources/Portable Class/Adapter.cs
+++ /dev/null
@@ -1,117 +0,0 @@
-using Android.App;
-using Android.Content;
-using Android.Graphics;
-using Android.Views;
-using Android.Widget;
-using MusicApp.Resources.values;
-using Square.Picasso;
-using System;
-using System.Collections.Generic;
-
-namespace MusicApp.Resources.Portable_Class
-{
- public class Adapter : ArrayAdapter
- {
- public int listPadding = 0;
- private Context context;
- private List songList;
- private LayoutInflater inflater;
- private int resource;
-
- public override int Count => songList.Count;
-
- public Adapter(Context context, int resource, List songList) : base(context, resource, songList)
- {
- this.context = context;
- this.resource = resource;
- this.songList = songList;
- }
-
- public void AddData(Song[] items)
- {
- songList.AddRange(items);
- NotifyDataSetChanged();
- }
-
- public void Remove(Song item)
- {
- songList.Remove(item);
- NotifyDataSetChanged();
- }
-
- public override View GetView(int position, View convertView, ViewGroup parent)
- {
- if (position > songList.Count || position < 0)
- return convertView;
-
- if (convertView != null)
- convertView.FindViewById(Resource.Id.moreButton).Click -= MoreClick;
-
- if (inflater == null)
- {
- inflater = LayoutInflater.From(parent.Context);
- }
- if (convertView == null)
- {
- convertView = inflater.Inflate(resource, parent, false);
- }
- Holder holder = new Holder(convertView)
- {
- Title = { Text = songList[position].Title },
- Artist = { Text = songList[position].Artist },
- };
- if(songList[position].AlbumArt == -1 || songList[position].IsYt)
- {
- var songAlbumArtUri = Android.Net.Uri.Parse(songList[position].Album);
- Picasso.With(Application.Context).Load(songAlbumArtUri).Placeholder(Resource.Color.background_material_dark).Transform(new RemoveBlackBorder(true)).Into(holder.AlbumArt);
- }
- else
- {
- var songCover = Android.Net.Uri.Parse("content://media/external/audio/albumart");
- var songAlbumArtUri = ContentUris.WithAppendedId(songCover, songList[position].AlbumArt);
-
- Picasso.With(Application.Context).Load(songAlbumArtUri).Placeholder(Resource.Color.background_material_dark).Resize(400, 400).CenterCrop().Into(holder.AlbumArt);
- }
-
- if (MainActivity.Theme == 1)
- {
- holder.more.SetColorFilter(Color.White);
- holder.Title.SetTextColor(Color.White);
- holder.Artist.SetTextColor(Color.White);
- holder.Artist.Alpha = 0.7f;
- }
-
- if (!holder.more.HasOnClickListeners)
- {
- holder.more.Tag = position;
- holder.more.Click += MoreClick;
- }
-
- float scale = MainActivity.instance.Resources.DisplayMetrics.Density;
- if (position + 1 == songList.Count)
- {
- convertView.SetPadding((int)(8 * scale + 0.5f), (int)(8 * scale + 0.5f), (int)(8 * scale + 0.5f), listPadding);
- LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams)holder.more.LayoutParameters;
- layoutParams.SetMargins(0, 0, 0, listPadding);
- holder.more.LayoutParameters = layoutParams;
- }
- else
- {
- convertView.SetPadding((int)(8 * scale + 0.5f), (int)(8 * scale + 0.5f), (int)(8 * scale + 0.5f), (int)(8 * scale + 0.5f));
- LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams)holder.more.LayoutParameters;
- layoutParams.SetMargins(0, 0, 0, 0);
- holder.more.LayoutParameters = layoutParams;
- }
-
- return convertView;
- }
-
- private void MoreClick(object sender, EventArgs e)
- {
- int position = (int)((ImageView)sender).Tag;
- Browse.instance?.More(songList[position], position);
- PlaylistTracks.instance?.More(position);
- FolderTracks.instance?.More(songList[position], position);
- }
- }
-}
\ No newline at end of file
diff --git a/MusicApp/Resources/Portable Class/Browse.cs b/MusicApp/Resources/Portable Class/Browse.cs
index 26a2261..5d12c54 100644
--- a/MusicApp/Resources/Portable Class/Browse.cs
+++ b/MusicApp/Resources/Portable Class/Browse.cs
@@ -25,48 +25,48 @@ using CursorLoader = Android.Support.V4.Content.CursorLoader;
namespace MusicApp.Resources.Portable_Class
{
- public class Browse : ListFragment
+ public class Browse : Fragment
{
public static Browse instance;
+ public RecyclerView ListView;
+ public BrowseAdapter adapter;
public List musicList = new List();
public List result;
- public Adapter adapter;
- public View emptyView;
public bool focused = true;
- private View view;
- private bool isEmpty = false;
+ private View EmptyView;
public override void OnActivityCreated(Bundle savedInstanceState)
{
base.OnActivityCreated(savedInstanceState);
- emptyView = LayoutInflater.Inflate(Resource.Layout.NoSong, null);
- ListView.EmptyView = emptyView;
MainActivity.instance.contentRefresh.Refresh += OnRefresh;
- ListView.Scroll += MainActivity.instance.Scroll;
ListView.NestedScrollingEnabled = true;
-
- if (ListView.Adapter == null)
- MainActivity.instance.GetStoragePermission();
}
public override void OnDestroy()
{
MainActivity.instance.contentRefresh.Refresh -= OnRefresh;
- if (isEmpty)
- {
- ViewGroup rootView = Activity.FindViewById(Android.Resource.Id.Content);
- rootView.RemoveView(emptyView);
- }
base.OnDestroy();
instance = null;
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
- View view = base.OnCreateView(inflater, container, savedInstanceState);
- this.view = view;
+ View view = inflater.Inflate(Resource.Layout.YoutubeSearch, container, false);
+
+ if(MainActivity.Theme == 1)
+ view.SetBackgroundColor(Color.ParseColor("#424242"));
+
+ EmptyView = view.FindViewById(Resource.Id.empty);
+ ListView = view.FindViewById(Resource.Id.recycler);
+ ListView.SetLayoutManager(new LinearLayoutManager(Android.App.Application.Context));
+ ListView.SetItemAnimator(new DefaultItemAnimator());
+
+ PopulateList();
+
+ //if (ListView.GetAdapter() == null)
+ // MainActivity.instance.GetStoragePermission();
return view;
}
@@ -116,36 +116,14 @@ namespace MusicApp.Resources.Portable_Class
List songList = musicList.OrderBy(x => x.Title).ToList();
musicList = songList;
- int listPadding = 0;
- if (adapter != null)
- listPadding = adapter.listPadding;
- adapter = new Adapter(Android.App.Application.Context, Resource.Layout.SongList, musicList)
- {
- listPadding = listPadding
- };
- ListAdapter = adapter;
- ListView.TextFilterEnabled = true;
- ListView.ItemClick += ListView_ItemClick;
- ListView.ItemLongClick += ListView_ItemLongClick;
+ adapter = new BrowseAdapter(result ?? musicList, result == null);
+ ListView.SetAdapter(adapter);
+ adapter.ItemClick += ListView_ItemClick;
+ adapter.ItemLongCLick += ListView_ItemLongClick;
- if (adapter == null || adapter.Count == 0)
+ if (adapter == null || adapter.ItemCount == 0)
{
- isEmpty = true;
- Activity.AddContentView(emptyView, View.LayoutParameters);
- }
-
- //if (MainActivity.paddingBot > MainActivity.defaultPaddingBot && adapter.listPadding == 0)
- // adapter.listPadding = MainActivity.paddingBot - MainActivity.defaultPaddingBot;
-
- if(result != null)
- {
- if (adapter != null)
- listPadding = adapter.listPadding;
- adapter = new Adapter(Android.App.Application.Context, Resource.Layout.SongList, result)
- {
- listPadding = listPadding
- };
- ListAdapter = adapter;
+ EmptyView.Visibility = ViewStates.Visible;
}
}
@@ -172,34 +150,30 @@ namespace MusicApp.Resources.Portable_Class
result.Add(item);
}
}
- int listPadding = 0;
- if (adapter != null)
- listPadding = adapter.listPadding;
- adapter = new Adapter(Android.App.Application.Context, Resource.Layout.SongList, result)
- {
- listPadding = listPadding
- };
- ListAdapter = adapter;
+ adapter = new BrowseAdapter(result, result.Count == musicList.Count);
+ adapter.ItemClick += ListView_ItemClick;
+ adapter.ItemLongCLick += ListView_ItemLongClick;
+ ListView.SetAdapter(adapter);
}
- public void ListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
+ public void ListView_ItemClick(object sender, int position)
{
- Song item = musicList[e.Position];
+ Song item = musicList[position];
if (result != null)
- item = result[e.Position];
+ item = result[position];
item = CompleteItem(item);
Play(item);
}
- private void ListView_ItemLongClick(object sender, AdapterView.ItemLongClickEventArgs e)
+ private void ListView_ItemLongClick(object sender, int position)
{
- Song item = musicList[e.Position];
+ Song item = musicList[position];
if (result != null)
- item = result[e.Position];
+ item = result[position];
- More(item, e.Position);
+ More(item, position);
}
public void More(Song item, int position)
diff --git a/MusicApp/Resources/Portable Class/BrowseAdapter.cs b/MusicApp/Resources/Portable Class/BrowseAdapter.cs
new file mode 100644
index 0000000..4e655e7
--- /dev/null
+++ b/MusicApp/Resources/Portable Class/BrowseAdapter.cs
@@ -0,0 +1,109 @@
+using Android.App;
+using Android.Content;
+using Android.Graphics;
+using Android.Support.V7.Widget;
+using Android.Views;
+using MusicApp.Resources.values;
+using Square.Picasso;
+using System;
+using System.Collections.Generic;
+
+namespace MusicApp.Resources.Portable_Class
+{
+ public class BrowseAdapter : RecyclerView.Adapter
+ {
+ public List songList;
+ public bool displayShuffle;
+ public event EventHandler ItemClick;
+ public event EventHandler ItemLongCLick;
+
+ public BrowseAdapter(List songList, bool displayShuffle)
+ {
+ this.songList = songList;
+ this.displayShuffle = displayShuffle;
+ }
+
+ public override int ItemCount => songList.Count + (displayShuffle ? 1 : 0);
+
+ public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position)
+ {
+ if(position == 0 && displayShuffle)
+ {
+ if (MainActivity.Theme == 1)
+ ((CardView)viewHolder.ItemView).SetCardBackgroundColor(Color.ParseColor("#212121"));
+ else
+ ((CardView)viewHolder.ItemView).SetCardBackgroundColor(Color.White);
+ }
+ else
+ {
+ RecyclerHolder holder = (RecyclerHolder)viewHolder;
+
+ if (MainActivity.Theme == 1)
+ {
+ holder.more.SetColorFilter(Color.White);
+ holder.Title.SetTextColor(Color.White);
+ holder.Artist.SetTextColor(Color.White);
+ holder.Artist.Alpha = 0.7f;
+ holder.ItemView.SetBackgroundColor(Color.ParseColor("#424242"));
+ }
+ else
+ holder.ItemView.SetBackgroundColor(Color.White);
+
+ Song song = songList[position - (displayShuffle ? 1 : 0)];
+
+ holder.Title.Text = song.Title;
+ holder.Artist.Text = song.Artist;
+
+ var songCover = Android.Net.Uri.Parse("content://media/external/audio/albumart");
+ var songAlbumArtUri = ContentUris.WithAppendedId(songCover, song.AlbumArt);
+ Picasso.With(Application.Context).Load(songAlbumArtUri).Placeholder(Resource.Color.background_material_dark).Resize(400, 400).CenterCrop().Into(holder.AlbumArt);
+
+ if (!holder.more.HasOnClickListeners)
+ {
+ holder.more.Click += (sender, e) =>
+ {
+ if (Browse.instance != null)
+ {
+ Browse.instance.More(songList[holder.AdapterPosition - (displayShuffle ? 1 : 0)], holder.AdapterPosition - (displayShuffle ? 1 : 0));
+ }
+ };
+ }
+ }
+ }
+
+ public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
+ {
+ if (viewType == 0)
+ {
+ View itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.BrowseShuffle, parent, false);
+ return new UslessHolder(itemView, OnClick);
+ }
+ else
+ {
+ View itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.SongList, parent, false);
+ return new RecyclerHolder(itemView, OnClick, OnLongClick);
+ }
+ }
+
+ public override int GetItemViewType(int position)
+ {
+ if (position == 0 && displayShuffle)
+ return 0;
+ else
+ return 1;
+ }
+
+ void OnClick(int position)
+ {
+ if (position == 0 && displayShuffle)
+ MainActivity.instance.ShuffleAll();
+ else
+ ItemClick?.Invoke(this, position - (displayShuffle ? 1 : 0));
+ }
+
+ void OnLongClick(int position)
+ {
+ ItemLongCLick?.Invoke(this, position - (displayShuffle ? 1 : 0));
+ }
+ }
+}
\ No newline at end of file
diff --git a/MusicApp/Resources/Portable Class/FolderTracks.cs b/MusicApp/Resources/Portable Class/FolderTracks.cs
index 5a9b2ac..2624b07 100644
--- a/MusicApp/Resources/Portable Class/FolderTracks.cs
+++ b/MusicApp/Resources/Portable Class/FolderTracks.cs
@@ -5,6 +5,7 @@ using Android.OS;
using Android.Provider;
using Android.Support.Design.Widget;
using Android.Support.V4.App;
+using Android.Support.V7.Widget;
using Android.Views;
using Android.Widget;
using MusicApp.Resources.values;
@@ -15,25 +16,24 @@ using CursorLoader = Android.Support.V4.Content.CursorLoader;
namespace MusicApp.Resources.Portable_Class
{
- public class FolderTracks : ListFragment
+ public class FolderTracks : Fragment
{
public static FolderTracks instance;
public string folderName;
- public Adapter adapter;
+ private RecyclerView ListView;
+ private View EmptyView;
+ public BrowseAdapter adapter;
public List result;
public string path;
private List tracks = new List();
- private readonly string[] actions = new string[] { "Play", "Play Next", "Play Last", "Add To Playlist" };
public override void OnActivityCreated(Bundle savedInstanceState)
{
base.OnActivityCreated(savedInstanceState);
- ListView.Scroll += MainActivity.instance.Scroll;
MainActivity.instance.contentRefresh.Refresh += OnRefresh;
- PopulateList();
MainActivity.instance.DisplaySearch(1);
}
@@ -46,7 +46,13 @@ namespace MusicApp.Resources.Portable_Class
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
- View view = base.OnCreateView(inflater, container, savedInstanceState);
+ View view = inflater.Inflate(Resource.Layout.YoutubeSearch, container, false);
+ EmptyView = view.FindViewById(Resource.Id.empty);
+ ListView = view.FindViewById(Resource.Id.recycler);
+ ListView.SetLayoutManager(new LinearLayoutManager(Android.App.Application.Context));
+ ListView.SetItemAnimator(new DefaultItemAnimator());
+
+ PopulateList();
return view;
}
@@ -100,11 +106,10 @@ namespace MusicApp.Resources.Portable_Class
musicCursor.Close();
}
- adapter = new Adapter(Android.App.Application.Context, Resource.Layout.SongList, tracks);
- ListAdapter = adapter;
- ListView.TextFilterEnabled = true;
- ListView.ItemClick += ListView_ItemClick;
- ListView.ItemLongClick += ListView_ItemLongClick;
+ adapter = new BrowseAdapter(tracks, false);
+ adapter.ItemClick += ListView_ItemClick;
+ adapter.ItemLongCLick += ListView_ItemLongClick;
+ ListView.SetAdapter(adapter);
}
private void OnRefresh(object sender, System.EventArgs e)
@@ -150,8 +155,10 @@ namespace MusicApp.Resources.Portable_Class
musicCursor.Close();
}
- adapter = new Adapter(Android.App.Application.Context, Resource.Layout.SongList, tracks);
- ListAdapter = adapter;
+ adapter = new BrowseAdapter(tracks, false);
+ adapter.ItemClick += ListView_ItemClick;
+ adapter.ItemLongCLick += ListView_ItemLongClick;
+ ListView.SetAdapter(adapter);
MainActivity.instance.contentRefresh.Refreshing = false;
}
@@ -165,18 +172,20 @@ namespace MusicApp.Resources.Portable_Class
result.Add(item);
}
}
- adapter = new Adapter(Android.App.Application.Context, Resource.Layout.SongList, result);
- ListAdapter = adapter;
+ adapter = new BrowseAdapter(result, false);
+ adapter.ItemClick += ListView_ItemClick;
+ adapter.ItemLongCLick += ListView_ItemLongClick;
+ ListView.SetAdapter(adapter);
}
- private async void ListView_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
+ private async void ListView_ItemClick(object sender, int position)
{
- Song item = tracks[e.Position];
- List queue = tracks.GetRange(e.Position + 1, tracks.Count - e.Position - 1);
+ Song item = tracks[position];
+ List queue = tracks.GetRange(position + 1, tracks.Count - position - 1);
if (result != null)
{
- item = result[e.Position];
- queue = result.GetRange(e.Position + 1, result.Count - e.Position - 1);
+ item = result[position];
+ queue = result.GetRange(position + 1, result.Count - position - 1);
}
queue.Reverse();
@@ -192,13 +201,13 @@ namespace MusicApp.Resources.Portable_Class
Player.instance.UpdateNext();
}
- private void ListView_ItemLongClick(object sender, AdapterView.ItemLongClickEventArgs e)
+ private void ListView_ItemLongClick(object sender, int position)
{
- Song item = tracks[e.Position];
+ Song item = tracks[position];
if (result != null)
- item = result[e.Position];
+ item = result[position];
- More(item, e.Position);
+ More(item, position);
}
public void More(Song item, int position)
diff --git a/MusicApp/Resources/Portable Class/MusicPlayer.cs b/MusicApp/Resources/Portable Class/MusicPlayer.cs
index 18405f8..05b44e4 100644
--- a/MusicApp/Resources/Portable Class/MusicPlayer.cs
+++ b/MusicApp/Resources/Portable Class/MusicPlayer.cs
@@ -941,7 +941,8 @@ namespace MusicApp.Resources.Portable_Class
player.SeekTo(LastTimer);
currentID = position;
- MainActivity.instance.ShowPlayer();
+ if(showPlayer)
+ MainActivity.instance.ShowPlayer();
if (UseCastPlayer)
{
diff --git a/MusicApp/Resources/Portable Class/QueueAdapter.cs b/MusicApp/Resources/Portable Class/QueueAdapter.cs
index f6cb1dc..5cc4b7c 100644
--- a/MusicApp/Resources/Portable Class/QueueAdapter.cs
+++ b/MusicApp/Resources/Portable Class/QueueAdapter.cs
@@ -18,7 +18,6 @@ namespace MusicApp.Resources.Portable_Class
public List songList;
public event EventHandler ItemClick;
public event EventHandler ItemLongCLick;
- public int listPadding;
public QueueAdapter(List songList)
{
diff --git a/MusicApp/Resources/Portable Class/YoutubeEngine.cs b/MusicApp/Resources/Portable Class/YoutubeEngine.cs
index bc887a7..efe95f0 100644
--- a/MusicApp/Resources/Portable Class/YoutubeEngine.cs
+++ b/MusicApp/Resources/Portable Class/YoutubeEngine.cs
@@ -334,7 +334,7 @@ namespace MusicApp.Resources.Portable_Class
YtFile channelPreview = new YtFile(result[0].item, YtKind.ChannelPreview);
result.Insert(0, channelPreview);
}
- else if(querryType == "All" || querryType == "Channels")
+ else if (querryType == "All" || querryType == "Channels")
{
IEnumerable artist = result.GetRange(0, (result.Count > 20 ? 20 : result.Count)).GroupBy(x => x.item.Artist).Where(x => x.Count() > 5).Select(x => x.Key);
if (artist.Count() == 1)
@@ -342,14 +342,14 @@ namespace MusicApp.Resources.Portable_Class
Song channel = null;
if (result.Find(x => x.Kind == YtKind.Channel && x.item.Title == artist.First()) != null)
channel = result.Find(x => x.item.Title == artist.First() && x.Kind == YtKind.Channel).item;
- else
- {
- string channelID = result.Find(x => x.item.Artist == artist.First()).item.Path;
- ChannelsResource.ListRequest request = youtubeService.Channels.List("snippet");
- request.Id = channelID;
- ChannelListResponse response = await request.ExecuteAsync();
- channel = new Song(response.Items[0].Snippet.Title, null, response.Items[0].Snippet.Thumbnails.High.Url, channelID, -1, -1, null);
- }
+ //else
+ //{
+ // string channelID = result.Find(x => x.item.Artist == artist.First()).item.Path;
+ // ChannelsResource.ListRequest request = youtubeService.Channels.List("snippet");
+ // request.Id = channelID;
+ // ChannelListResponse response = await request.ExecuteAsync();
+ // channel = new Song(response.Items[0].Snippet.Title, null, response.Items[0].Snippet.Thumbnails.High.Url, channelID, -1, -1, null);
+ //}
if (channel != null)
{
diff --git a/MusicApp/Resources/Resource.Designer.cs b/MusicApp/Resources/Resource.Designer.cs
index c7a5d3d..4914bc0 100644
--- a/MusicApp/Resources/Resource.Designer.cs
+++ b/MusicApp/Resources/Resource.Designer.cs
@@ -6642,382 +6642,385 @@ namespace MusicApp
public const int BrowseLayout = 2130903073;
// aapt resource value: 0x7f030022
- public const int cast_expanded_controller_activity = 2130903074;
+ public const int BrowseShuffle = 2130903074;
// aapt resource value: 0x7f030023
- public const int cast_help_text = 2130903075;
+ public const int cast_expanded_controller_activity = 2130903075;
// aapt resource value: 0x7f030024
- public const int cast_intro_overlay = 2130903076;
+ public const int cast_help_text = 2130903076;
// aapt resource value: 0x7f030025
- public const int cast_mini_controller = 2130903077;
+ public const int cast_intro_overlay = 2130903077;
// aapt resource value: 0x7f030026
- public const int cast_tracks_chooser_dialog_layout = 2130903078;
+ public const int cast_mini_controller = 2130903078;
// aapt resource value: 0x7f030027
- public const int cast_tracks_chooser_dialog_row_layout = 2130903079;
+ public const int cast_tracks_chooser_dialog_layout = 2130903079;
// aapt resource value: 0x7f030028
- public const int ChannelList = 2130903080;
+ public const int cast_tracks_chooser_dialog_row_layout = 2130903080;
// aapt resource value: 0x7f030029
- public const int ChannelPreview = 2130903081;
+ public const int ChannelList = 2130903081;
// aapt resource value: 0x7f03002a
- public const int CreatePlaylistDialog = 2130903082;
+ public const int ChannelPreview = 2130903082;
// aapt resource value: 0x7f03002b
- public const int design_bottom_navigation_item = 2130903083;
+ public const int CreatePlaylistDialog = 2130903083;
// aapt resource value: 0x7f03002c
- public const int design_bottom_sheet_dialog = 2130903084;
+ public const int design_bottom_navigation_item = 2130903084;
// aapt resource value: 0x7f03002d
- public const int design_layout_snackbar = 2130903085;
+ public const int design_bottom_sheet_dialog = 2130903085;
// aapt resource value: 0x7f03002e
- public const int design_layout_snackbar_include = 2130903086;
+ public const int design_layout_snackbar = 2130903086;
// aapt resource value: 0x7f03002f
- public const int design_layout_tab_icon = 2130903087;
+ public const int design_layout_snackbar_include = 2130903087;
// aapt resource value: 0x7f030030
- public const int design_layout_tab_text = 2130903088;
+ public const int design_layout_tab_icon = 2130903088;
// aapt resource value: 0x7f030031
- public const int design_menu_item_action_area = 2130903089;
+ public const int design_layout_tab_text = 2130903089;
// aapt resource value: 0x7f030032
- public const int design_navigation_item = 2130903090;
+ public const int design_menu_item_action_area = 2130903090;
// aapt resource value: 0x7f030033
- public const int design_navigation_item_header = 2130903091;
+ public const int design_navigation_item = 2130903091;
// aapt resource value: 0x7f030034
- public const int design_navigation_item_separator = 2130903092;
+ public const int design_navigation_item_header = 2130903092;
// aapt resource value: 0x7f030035
- public const int design_navigation_item_subheader = 2130903093;
+ public const int design_navigation_item_separator = 2130903093;
// aapt resource value: 0x7f030036
- public const int design_navigation_menu = 2130903094;
+ public const int design_navigation_item_subheader = 2130903094;
// aapt resource value: 0x7f030037
- public const int design_navigation_menu_item = 2130903095;
+ public const int design_navigation_menu = 2130903095;
// aapt resource value: 0x7f030038
- public const int design_text_input_password_icon = 2130903096;
+ public const int design_navigation_menu_item = 2130903096;
// aapt resource value: 0x7f030039
- public const int DownloadItem = 2130903097;
+ public const int design_text_input_password_icon = 2130903097;
// aapt resource value: 0x7f03003a
- public const int DownloadQueue = 2130903098;
+ public const int DownloadItem = 2130903098;
// aapt resource value: 0x7f03003b
- public const int EditMetaData = 2130903099;
+ public const int DownloadQueue = 2130903099;
// aapt resource value: 0x7f03003c
- public const int EmptyListCategory = 2130903100;
+ public const int EditMetaData = 2130903100;
// aapt resource value: 0x7f03003d
- public const int EmptyLoadingLayout = 2130903101;
+ public const int EmptyListCategory = 2130903101;
// aapt resource value: 0x7f03003e
- public const int EmptyView = 2130903102;
+ public const int EmptyLoadingLayout = 2130903102;
// aapt resource value: 0x7f03003f
- public const int exo_list_divider = 2130903103;
+ public const int EmptyView = 2130903103;
// aapt resource value: 0x7f030040
- public const int exo_playback_control_view = 2130903104;
+ public const int exo_list_divider = 2130903104;
// aapt resource value: 0x7f030041
- public const int exo_player_control_view = 2130903105;
+ public const int exo_playback_control_view = 2130903105;
// aapt resource value: 0x7f030042
- public const int exo_player_view = 2130903106;
+ public const int exo_player_control_view = 2130903106;
// aapt resource value: 0x7f030043
- public const int exo_simple_player_view = 2130903107;
+ public const int exo_player_view = 2130903107;
// aapt resource value: 0x7f030044
- public const int exo_track_selection_dialog = 2130903108;
+ public const int exo_simple_player_view = 2130903108;
// aapt resource value: 0x7f030045
- public const int expand_button = 2130903109;
+ public const int exo_track_selection_dialog = 2130903109;
// aapt resource value: 0x7f030046
- public const int folderList = 2130903110;
+ public const int expand_button = 2130903110;
// aapt resource value: 0x7f030047
- public const int HomeChannel = 2130903111;
+ public const int folderList = 2130903111;
// aapt resource value: 0x7f030048
- public const int HomeChannels = 2130903112;
+ public const int HomeChannel = 2130903112;
// aapt resource value: 0x7f030049
- public const int HomePlaylists = 2130903113;
+ public const int HomeChannels = 2130903113;
// aapt resource value: 0x7f03004a
- public const int HomeShuffle = 2130903114;
+ public const int HomePlaylists = 2130903114;
// aapt resource value: 0x7f03004b
- public const int HomeTopic = 2130903115;
+ public const int HomeShuffle = 2130903115;
// aapt resource value: 0x7f03004c
- public const int LineSong = 2130903116;
+ public const int HomeTopic = 2130903116;
// aapt resource value: 0x7f03004d
- public const int LineSongs = 2130903117;
+ public const int LineSong = 2130903117;
// aapt resource value: 0x7f03004e
- public const int ListPopupLayout = 2130903118;
+ public const int LineSongs = 2130903118;
// aapt resource value: 0x7f03004f
- public const int LogOutButton = 2130903119;
+ public const int ListPopupLayout = 2130903119;
// aapt resource value: 0x7f030050
- public const int Main = 2130903120;
+ public const int LogOutButton = 2130903120;
// aapt resource value: 0x7f030051
- public const int mr_cast_dialog = 2130903121;
+ public const int Main = 2130903121;
// aapt resource value: 0x7f030052
- public const int mr_cast_group_item = 2130903122;
+ public const int mr_cast_dialog = 2130903122;
// aapt resource value: 0x7f030053
- public const int mr_cast_group_volume_item = 2130903123;
+ public const int mr_cast_group_item = 2130903123;
// aapt resource value: 0x7f030054
- public const int mr_cast_media_metadata = 2130903124;
+ public const int mr_cast_group_volume_item = 2130903124;
// aapt resource value: 0x7f030055
- public const int mr_cast_route_item = 2130903125;
+ public const int mr_cast_media_metadata = 2130903125;
// aapt resource value: 0x7f030056
- public const int mr_chooser_dialog = 2130903126;
+ public const int mr_cast_route_item = 2130903126;
// aapt resource value: 0x7f030057
- public const int mr_chooser_list_item = 2130903127;
+ public const int mr_chooser_dialog = 2130903127;
// aapt resource value: 0x7f030058
- public const int mr_controller_material_dialog_b = 2130903128;
+ public const int mr_chooser_list_item = 2130903128;
// aapt resource value: 0x7f030059
- public const int mr_controller_volume_item = 2130903129;
+ public const int mr_controller_material_dialog_b = 2130903129;
// aapt resource value: 0x7f03005a
- public const int mr_dialog_header_item = 2130903130;
+ public const int mr_controller_volume_item = 2130903130;
// aapt resource value: 0x7f03005b
- public const int mr_picker_dialog = 2130903131;
+ public const int mr_dialog_header_item = 2130903131;
// aapt resource value: 0x7f03005c
- public const int mr_picker_route_item = 2130903132;
+ public const int mr_picker_dialog = 2130903132;
// aapt resource value: 0x7f03005d
- public const int mr_playback_control = 2130903133;
+ public const int mr_picker_route_item = 2130903133;
// aapt resource value: 0x7f03005e
- public const int mr_volume_control = 2130903134;
+ public const int mr_playback_control = 2130903134;
// aapt resource value: 0x7f03005f
- public const int mtrl_layout_snackbar = 2130903135;
+ public const int mr_volume_control = 2130903135;
// aapt resource value: 0x7f030060
- public const int mtrl_layout_snackbar_include = 2130903136;
+ public const int mtrl_layout_snackbar = 2130903136;
// aapt resource value: 0x7f030061
- public const int MusicLayout = 2130903137;
+ public const int mtrl_layout_snackbar_include = 2130903137;
// aapt resource value: 0x7f030062
- public const int NoSong = 2130903138;
+ public const int MusicLayout = 2130903138;
// aapt resource value: 0x7f030063
- public const int notification_action = 2130903139;
+ public const int NoSong = 2130903139;
// aapt resource value: 0x7f030064
- public const int notification_action_tombstone = 2130903140;
+ public const int notification_action = 2130903140;
// aapt resource value: 0x7f030065
- public const int notification_media_action = 2130903141;
+ public const int notification_action_tombstone = 2130903141;
// aapt resource value: 0x7f030066
- public const int notification_media_cancel_action = 2130903142;
+ public const int notification_media_action = 2130903142;
// aapt resource value: 0x7f030067
- public const int notification_template_big_media = 2130903143;
+ public const int notification_media_cancel_action = 2130903143;
// aapt resource value: 0x7f030068
- public const int notification_template_big_media_custom = 2130903144;
+ public const int notification_template_big_media = 2130903144;
// aapt resource value: 0x7f030069
- public const int notification_template_big_media_narrow = 2130903145;
+ public const int notification_template_big_media_custom = 2130903145;
// aapt resource value: 0x7f03006a
- public const int notification_template_big_media_narrow_custom = 2130903146;
+ public const int notification_template_big_media_narrow = 2130903146;
// aapt resource value: 0x7f03006b
- public const int notification_template_custom_big = 2130903147;
+ public const int notification_template_big_media_narrow_custom = 2130903147;
// aapt resource value: 0x7f03006c
- public const int notification_template_icon_group = 2130903148;
+ public const int notification_template_custom_big = 2130903148;
// aapt resource value: 0x7f03006d
- public const int notification_template_lines_media = 2130903149;
+ public const int notification_template_icon_group = 2130903149;
// aapt resource value: 0x7f03006e
- public const int notification_template_media = 2130903150;
+ public const int notification_template_lines_media = 2130903150;
// aapt resource value: 0x7f03006f
- public const int notification_template_media_custom = 2130903151;
+ public const int notification_template_media = 2130903151;
// aapt resource value: 0x7f030070
- public const int notification_template_part_chronometer = 2130903152;
+ public const int notification_template_media_custom = 2130903152;
// aapt resource value: 0x7f030071
- public const int notification_template_part_time = 2130903153;
+ public const int notification_template_part_chronometer = 2130903153;
// aapt resource value: 0x7f030072
- public const int NoYtPlaylist = 2130903154;
+ public const int notification_template_part_time = 2130903154;
// aapt resource value: 0x7f030073
- public const int NumberPicker = 2130903155;
+ public const int NoYtPlaylist = 2130903155;
// aapt resource value: 0x7f030074
- public const int player = 2130903156;
+ public const int NumberPicker = 2130903156;
// aapt resource value: 0x7f030075
- public const int playerInfo = 2130903157;
+ public const int player = 2130903157;
// aapt resource value: 0x7f030076
- public const int PlaylistHeader = 2130903158;
+ public const int playerInfo = 2130903158;
// aapt resource value: 0x7f030077
- public const int PlaylistItem = 2130903159;
+ public const int PlaylistHeader = 2130903159;
// aapt resource value: 0x7f030078
- public const int PlaylistList = 2130903160;
+ public const int PlaylistItem = 2130903160;
// aapt resource value: 0x7f030079
- public const int PlaylistSmallHeader = 2130903161;
+ public const int PlaylistList = 2130903161;
// aapt resource value: 0x7f03007a
- public const int preference = 2130903162;
+ public const int PlaylistSmallHeader = 2130903162;
// aapt resource value: 0x7f03007b
- public const int preference_category = 2130903163;
+ public const int preference = 2130903163;
// aapt resource value: 0x7f03007c
- public const int preference_category_material = 2130903164;
+ public const int preference_category = 2130903164;
// aapt resource value: 0x7f03007d
- public const int preference_dialog_edittext = 2130903165;
+ public const int preference_category_material = 2130903165;
// aapt resource value: 0x7f03007e
- public const int preference_dropdown = 2130903166;
+ public const int preference_dialog_edittext = 2130903166;
// aapt resource value: 0x7f03007f
- public const int preference_dropdown_material = 2130903167;
+ public const int preference_dropdown = 2130903167;
// aapt resource value: 0x7f030080
- public const int preference_information = 2130903168;
+ public const int preference_dropdown_material = 2130903168;
// aapt resource value: 0x7f030081
- public const int preference_information_material = 2130903169;
+ public const int preference_information = 2130903169;
// aapt resource value: 0x7f030082
- public const int preference_list_fragment = 2130903170;
+ public const int preference_information_material = 2130903170;
// aapt resource value: 0x7f030083
- public const int preference_material = 2130903171;
+ public const int preference_list_fragment = 2130903171;
// aapt resource value: 0x7f030084
- public const int preference_recyclerview = 2130903172;
+ public const int preference_material = 2130903172;
// aapt resource value: 0x7f030085
- public const int preference_widget_checkbox = 2130903173;
+ public const int preference_recyclerview = 2130903173;
// aapt resource value: 0x7f030086
- public const int preference_widget_seekbar = 2130903174;
+ public const int preference_widget_checkbox = 2130903174;
// aapt resource value: 0x7f030087
- public const int preference_widget_seekbar_material = 2130903175;
+ public const int preference_widget_seekbar = 2130903175;
// aapt resource value: 0x7f030088
- public const int preference_widget_switch = 2130903176;
+ public const int preference_widget_seekbar_material = 2130903176;
// aapt resource value: 0x7f030089
- public const int preference_widget_switch_compat = 2130903177;
+ public const int preference_widget_switch = 2130903177;
// aapt resource value: 0x7f03008a
- public const int PreferenceCategory = 2130903178;
+ public const int preference_widget_switch_compat = 2130903178;
// aapt resource value: 0x7f03008b
- public const int PreferenceRoot = 2130903179;
+ public const int PreferenceCategory = 2130903179;
// aapt resource value: 0x7f03008c
- public const int Preferences = 2130903180;
+ public const int PreferenceRoot = 2130903180;
// aapt resource value: 0x7f03008d
- public const int QueueFooter = 2130903181;
+ public const int Preferences = 2130903181;
// aapt resource value: 0x7f03008e
- public const int RecyclerFragment = 2130903182;
+ public const int QueueFooter = 2130903182;
// aapt resource value: 0x7f03008f
- public const int SaveAPlaylist = 2130903183;
+ public const int RecyclerFragment = 2130903183;
// aapt resource value: 0x7f030090
- public const int search_layout = 2130903184;
+ public const int SaveAPlaylist = 2130903184;
// aapt resource value: 0x7f030091
- public const int SearchLayout = 2130903185;
+ public const int search_layout = 2130903185;
// aapt resource value: 0x7f030092
- public const int SeekbarPreference = 2130903186;
+ public const int SearchLayout = 2130903186;
// aapt resource value: 0x7f030093
- public const int select_dialog_item_material = 2130903187;
+ public const int SeekbarPreference = 2130903187;
// aapt resource value: 0x7f030094
- public const int select_dialog_multichoice_material = 2130903188;
+ public const int select_dialog_item_material = 2130903188;
// aapt resource value: 0x7f030095
- public const int select_dialog_singlechoice_material = 2130903189;
+ public const int select_dialog_multichoice_material = 2130903189;
// aapt resource value: 0x7f030096
- public const int smallLoading = 2130903190;
+ public const int select_dialog_singlechoice_material = 2130903190;
// aapt resource value: 0x7f030097
- public const int SongList = 2130903191;
+ public const int smallLoading = 2130903191;
// aapt resource value: 0x7f030098
- public const int SuggestionLayout = 2130903192;
+ public const int SongList = 2130903192;
// aapt resource value: 0x7f030099
- public const int support_simple_spinner_dropdown_item = 2130903193;
+ public const int SuggestionLayout = 2130903193;
// aapt resource value: 0x7f03009a
- public const int tabs = 2130903194;
+ public const int support_simple_spinner_dropdown_item = 2130903194;
// aapt resource value: 0x7f03009b
- public const int TimerLayout = 2130903195;
+ public const int tabs = 2130903195;
// aapt resource value: 0x7f03009c
- public const int TwoLineLayout = 2130903196;
+ public const int TimerLayout = 2130903196;
// aapt resource value: 0x7f03009d
- public const int ViewPager = 2130903197;
+ public const int TwoLineLayout = 2130903197;
// aapt resource value: 0x7f03009e
- public const int YoutubeSearch = 2130903198;
+ public const int ViewPager = 2130903198;
// aapt resource value: 0x7f03009f
- public const int YtList = 2130903199;
+ public const int YoutubeSearch = 2130903199;
+
+ // aapt resource value: 0x7f0300a0
+ public const int YtList = 2130903200;
static Layout()
{
diff --git a/MusicApp/Resources/layout/BrowseShuffle.xml b/MusicApp/Resources/layout/BrowseShuffle.xml
new file mode 100644
index 0000000..0c3f089
--- /dev/null
+++ b/MusicApp/Resources/layout/BrowseShuffle.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MusicApp/Resources/layout/QueueFooter.xml b/MusicApp/Resources/layout/QueueFooter.xml
index 68a9025..29a083d 100644
--- a/MusicApp/Resources/layout/QueueFooter.xml
+++ b/MusicApp/Resources/layout/QueueFooter.xml
@@ -1,6 +1,7 @@