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 @@