diff --git a/MusicApp/MainActivity.cs b/MusicApp/MainActivity.cs index d3cabec..64e4a6c 100644 --- a/MusicApp/MainActivity.cs +++ b/MusicApp/MainActivity.cs @@ -1070,41 +1070,7 @@ namespace MusicApp string shortcut = prefManager.GetString("localPlay", "Shuffle All Audio Files"); if (shortcut == "Shuffle All Audio Files") { - List paths = new List(); - Android.Net.Uri musicUri = MediaStore.Audio.Media.ExternalContentUri; - - CursorLoader cursorLoader = new CursorLoader(this, musicUri, null, null, null, null); - ICursor musicCursor = (ICursor)cursorLoader.LoadInBackground(); - - if (musicCursor != null && musicCursor.MoveToFirst()) - { - int pathID = musicCursor.GetColumnIndex(MediaStore.Audio.Media.InterfaceConsts.Data); - do - { - paths.Add(musicCursor.GetString(pathID)); - } - while (musicCursor.MoveToNext()); - musicCursor.Close(); - } - - if(paths.Count == 0) - { - Snackbar snackBar = Snackbar.Make(FindViewById(Resource.Id.snackBar), "No music file found on this device. Can't create a mix.", Snackbar.LengthLong); - snackBar.View.FindViewById(Resource.Id.snackbar_text).SetTextColor(Color.White); - snackBar.Show(); - return; - } - - Intent intent = new Intent(this, typeof(MusicPlayer)); - intent.PutStringArrayListExtra("files", paths); - if (sender == null) - intent.PutExtra("clearQueue", false); - intent.SetAction("RandomPlay"); - StartService(intent); - ShowSmallPlayer(); - ShowPlayer(); - Player.instance?.UpdateNext(); - Home.instance?.RefreshQueue(); + ShuffleAll(); } else { @@ -1129,6 +1095,45 @@ namespace MusicApp } } + public void ShuffleAll() + { + List paths = new List(); + Android.Net.Uri musicUri = MediaStore.Audio.Media.ExternalContentUri; + + CursorLoader cursorLoader = new CursorLoader(this, musicUri, null, null, null, null); + ICursor musicCursor = (ICursor)cursorLoader.LoadInBackground(); + + if (musicCursor != null && musicCursor.MoveToFirst()) + { + int pathID = musicCursor.GetColumnIndex(MediaStore.Audio.Media.InterfaceConsts.Data); + do + { + paths.Add(musicCursor.GetString(pathID)); + } + while (musicCursor.MoveToNext()); + musicCursor.Close(); + } + + if (paths.Count == 0) + { + Snackbar snackBar = Snackbar.Make(FindViewById(Resource.Id.snackBar), "No music file found on this device. Can't create a mix.", Snackbar.LengthLong); + snackBar.View.FindViewById(Resource.Id.snackbar_text).SetTextColor(Color.White); + snackBar.Show(); + return; + } + + Intent intent = new Intent(this, typeof(MusicPlayer)); + intent.PutStringArrayListExtra("files", paths); + if (sender == null) + intent.PutExtra("clearQueue", false); + intent.SetAction("RandomPlay"); + StartService(intent); + ShowSmallPlayer(); + ShowPlayer(); + Player.instance?.UpdateNext(); + Home.instance?.RefreshQueue(); + } + private async void YtPlay(object sender, EventArgs e) { if (MusicPlayer.CurrentID() == -1 || MusicPlayer.queue[MusicPlayer.CurrentID()].youtubeID == null || MusicPlayer.queue[MusicPlayer.CurrentID()].youtubeID == "") diff --git a/MusicApp/MusicApp.csproj b/MusicApp/MusicApp.csproj index 0430f5e..a1ddc61 100644 --- a/MusicApp/MusicApp.csproj +++ b/MusicApp/MusicApp.csproj @@ -570,12 +570,6 @@ - - - - - - @@ -708,6 +702,15 @@ + + + + + + + + + diff --git a/MusicApp/Resources/Portable Class/Home.cs b/MusicApp/Resources/Portable Class/Home.cs index 3a5bc6a..d62b0c2 100644 --- a/MusicApp/Resources/Portable Class/Home.cs +++ b/MusicApp/Resources/Portable Class/Home.cs @@ -72,6 +72,9 @@ namespace MusicApp.Resources.Portable_Class adapterItems.Add(queue); } + HomeSection shuffle = new HomeSection("Shuffle", SectionType.Shuffle, null); + adapterItems.Add(shuffle); + Android.Net.Uri musicUri = MediaStore.Audio.Media.ExternalContentUri; List allSongs = new List(); @@ -449,7 +452,13 @@ namespace MusicApp.Resources.Portable_Class } } - private void ListView_ItemClick(object sender, int position) { } + private void ListView_ItemClick(object sender, int position) + { + if(adapterItems[position].contentType == SectionType.Shuffle) + { + MainActivity.instance.ShuffleAll(); + } + } public override void OnResume() { diff --git a/MusicApp/Resources/Portable Class/HomeAdapter.cs b/MusicApp/Resources/Portable Class/HomeAdapter.cs index 23b5b37..ffe34b1 100644 --- a/MusicApp/Resources/Portable Class/HomeAdapter.cs +++ b/MusicApp/Resources/Portable Class/HomeAdapter.cs @@ -1,6 +1,7 @@ using Android.Content; using Android.Graphics; using Android.Graphics.Drawables; +using Android.Support.V4.Content; using Android.Support.V7.Widget; using Android.Views; using MusicApp.Resources.values; @@ -61,20 +62,25 @@ namespace MusicApp.Resources.Portable_Class // View itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.HomePlaylists, parent, false); // return new LineSongHolder(itemView, OnClick, OnLongClick); //} - else + else if(viewType == 3) { View itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.HomeTopic, parent, false); return new LineSongHolder(itemView, OnClick, OnLongClick); } + else + { + View itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.HomeShuffle, parent, false); + return new UslessHolder(itemView, OnClick); + } } public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) { - LineSongHolder holder = (LineSongHolder)viewHolder; - items[position].recycler = holder.recycler; - if (items[position].contentType == SectionType.SinglePlaylist) { + LineSongHolder holder = (LineSongHolder)viewHolder; + items[position].recycler = holder.recycler; + holder.title.Text = items[position].SectionTitle; holder.recycler.SetLayoutManager(new LinearLayoutManager(MainActivity.instance, LinearLayoutManager.Horizontal, false)); if (items[position].SectionTitle == "Queue") @@ -107,6 +113,9 @@ namespace MusicApp.Resources.Portable_Class } else if(items[position].contentType == SectionType.ChannelList) { + LineSongHolder holder = (LineSongHolder)viewHolder; + items[position].recycler = holder.recycler; + holder.title.Text = items[position].SectionTitle; holder.recycler.SetLayoutManager(new LinearLayoutManager(MainActivity.instance, LinearLayoutManager.Vertical, false)); holder.recycler.SetAdapter(new HomeChannelAdapter(items[position].contentValue.GetRange(0, items[position].contentValue.Count > 4 ? 4 : items[position].contentValue.Count), holder.recycler) { allItems = items[position].contentValue.GetRange(4, items[position].contentValue.Count - 4) }); @@ -147,6 +156,9 @@ namespace MusicApp.Resources.Portable_Class //} else if(items[position].contentType == SectionType.TopicSelector) { + LineSongHolder holder = (LineSongHolder)viewHolder; + items[position].recycler = holder.recycler; + holder.title.Text = items[position].SectionTitle; holder.recycler.SetLayoutManager(new LinearLayoutManager(MainActivity.instance, LinearLayoutManager.Vertical, false)); holder.recycler.SetAdapter(new HomeChannelAdapter(items[position].contentValue)); @@ -159,6 +171,11 @@ namespace MusicApp.Resources.Portable_Class if (MainActivity.Theme == 1) holder.ItemView.SetBackgroundColor(Color.Argb(255, 62, 62, 62)); } + else if (items[position].contentType == SectionType.Shuffle) + { + UslessHolder holder = (UslessHolder)viewHolder; + ((GradientDrawable)holder.ItemView.Background).SetStroke(5, Android.Content.Res.ColorStateList.ValueOf(Color.Argb(255, 21, 183, 237))); + } } void OnClick(int position) @@ -189,8 +206,10 @@ namespace MusicApp.Resources.Portable_Class return 1; else if (items[position].contentType == SectionType.PlaylistList) return 2; - else + else if (items[position].contentType == SectionType.TopicSelector) return 3; + else + return 4; } } } \ No newline at end of file diff --git a/MusicApp/Resources/Portable Class/Player.cs b/MusicApp/Resources/Portable Class/Player.cs index a1f865d..ae297e6 100644 --- a/MusicApp/Resources/Portable Class/Player.cs +++ b/MusicApp/Resources/Portable Class/Player.cs @@ -101,7 +101,7 @@ namespace MusicApp.Resources.Portable_Class bar = MainActivity.instance.FindViewById(Resource.Id.songTimer); bar.ProgressChanged += (sender, e) => { - if(!MusicPlayer.queue[MusicPlayer.CurrentID()].IsLiveStream) + if(MusicPlayer.CurrentID() > 0 && MusicPlayer.CurrentID() < MusicPlayer.queue.Count && !MusicPlayer.queue[MusicPlayer.CurrentID()].IsLiveStream) timerStart.Text = DurationToTimer(e.Progress); }; timerStart = MainActivity.instance.FindViewById(Resource.Id.timerStart); diff --git a/MusicApp/Resources/Portable Class/Queue.cs b/MusicApp/Resources/Portable Class/Queue.cs index 16f337c..9856c09 100644 --- a/MusicApp/Resources/Portable Class/Queue.cs +++ b/MusicApp/Resources/Portable Class/Queue.cs @@ -106,8 +106,9 @@ namespace MusicApp.Resources.Portable_Class { MenuInflater.Inflate(Resource.Menu.QueueItems, menu); this.menu = menu; - if(MusicPlayer.repeat) - menu.FindItem(Resource.Id.repeat).Icon.SetColorFilter(Color.Argb(255, 62, 80, 180), PorterDuff.Mode.Multiply); + menu.FindItem(Resource.Id.shuffle).Icon.SetColorFilter(Color.White, PorterDuff.Mode.Multiply); + if (MusicPlayer.repeat) + menu.FindItem(Resource.Id.repeat).Icon.SetColorFilter(Color.Argb(255, 21, 183, 237), PorterDuff.Mode.Multiply); return base.OnCreateOptionsMenu(menu); } @@ -141,7 +142,7 @@ namespace MusicApp.Resources.Portable_Class MusicPlayer.repeat = !MusicPlayer.repeat; if (MusicPlayer.repeat) - item.Icon.SetColorFilter(Color.Argb(255, 62, 80, 180), PorterDuff.Mode.Multiply); + item.Icon.SetColorFilter(Color.Argb(255, 21, 183, 237), PorterDuff.Mode.Multiply); else item.Icon.ClearColorFilter(); } diff --git a/MusicApp/Resources/Portable Class/UslessHolder.cs b/MusicApp/Resources/Portable Class/UslessHolder.cs index a3c8eff..b7dc911 100644 --- a/MusicApp/Resources/Portable Class/UslessHolder.cs +++ b/MusicApp/Resources/Portable Class/UslessHolder.cs @@ -1,12 +1,17 @@ using Android.Support.V7.Widget; using Android.Views; +using System; namespace MusicApp.Resources.Portable_Class { public class UslessHolder : RecyclerView.ViewHolder { - public UslessHolder(View itemView) : base(itemView) + public UslessHolder(View itemView, Action listener = null) : base(itemView) { + if (listener != null) + { + itemView.Click += (sender, e) => listener(AdapterPosition); + } } } } \ No newline at end of file diff --git a/MusicApp/Resources/Resource.Designer.cs b/MusicApp/Resources/Resource.Designer.cs index c671fd8..9dbaf34 100644 --- a/MusicApp/Resources/Resource.Designer.cs +++ b/MusicApp/Resources/Resource.Designer.cs @@ -2989,46 +2989,43 @@ namespace MusicApp public const int launcher_icon = 2130837659; // aapt resource value: 0x7f02009c - public const int Loop = 2130837660; + public const int More = 2130837660; // aapt resource value: 0x7f02009d - public const int More = 2130837661; + public const int MusicIcon = 2130837661; // aapt resource value: 0x7f02009e - public const int MusicIcon = 2130837662; + public const int navigation_empty_icon = 2130837662; // aapt resource value: 0x7f02009f - public const int navigation_empty_icon = 2130837663; + public const int needProcessing = 2130837663; // aapt resource value: 0x7f0200a0 - public const int needProcessing = 2130837664; + public const int noAlbum = 2130837664; // aapt resource value: 0x7f0200a1 - public const int noAlbum = 2130837665; + public const int notification_action_background = 2130837665; // aapt resource value: 0x7f0200a2 - public const int notification_action_background = 2130837666; + public const int notification_bg = 2130837666; // aapt resource value: 0x7f0200a3 - public const int notification_bg = 2130837667; + public const int notification_bg_low = 2130837667; // aapt resource value: 0x7f0200a4 - public const int notification_bg_low = 2130837668; + public const int notification_bg_low_normal = 2130837668; // aapt resource value: 0x7f0200a5 - public const int notification_bg_low_normal = 2130837669; + public const int notification_bg_low_pressed = 2130837669; // aapt resource value: 0x7f0200a6 - public const int notification_bg_low_pressed = 2130837670; + public const int notification_bg_normal = 2130837670; // aapt resource value: 0x7f0200a7 - public const int notification_bg_normal = 2130837671; + public const int notification_bg_normal_pressed = 2130837671; // aapt resource value: 0x7f0200a8 - public const int notification_bg_normal_pressed = 2130837672; - - // aapt resource value: 0x7f0200a9 - public const int notification_icon_background = 2130837673; + public const int notification_icon_background = 2130837672; // aapt resource value: 0x7f0200b9 public const int notification_template_icon_bg = 2130837689; @@ -3036,20 +3033,20 @@ namespace MusicApp // aapt resource value: 0x7f0200ba public const int notification_template_icon_low_bg = 2130837690; + // aapt resource value: 0x7f0200a9 + public const int notification_tile_bg = 2130837673; + // aapt resource value: 0x7f0200aa - public const int notification_tile_bg = 2130837674; + public const int notify_panel_notification_icon_bg = 2130837674; // aapt resource value: 0x7f0200ab - public const int notify_panel_notification_icon_bg = 2130837675; + public const int OpenInYoutube = 2130837675; // aapt resource value: 0x7f0200ac - public const int OpenInYoutube = 2130837676; + public const int PlaylistPlayIcon = 2130837676; // aapt resource value: 0x7f0200ad - public const int PlaylistPlayIcon = 2130837677; - - // aapt resource value: 0x7f0200ae - public const int PlayToCross = 2130837678; + public const int PlayToCross = 2130837677; // aapt resource value: 0x7f0200d0 public const int playtocross_1 = 2130837712; @@ -3057,11 +3054,14 @@ namespace MusicApp // aapt resource value: 0x7f0200d1 public const int playtocross_2 = 2130837713; + // aapt resource value: 0x7f0200ae + public const int Queue = 2130837678; + // aapt resource value: 0x7f0200af - public const int Queue = 2130837679; + public const int Refine = 2130837679; // aapt resource value: 0x7f0200b0 - public const int Refine = 2130837680; + public const int Repeat = 2130837680; // aapt resource value: 0x7f0200b1 public const int search = 2130837681; @@ -4366,190 +4366,193 @@ namespace MusicApp public const int HomePlaylists = 2130903100; // aapt resource value: 0x7f03003d - public const int HomeTopic = 2130903101; + public const int HomeShuffle = 2130903101; // aapt resource value: 0x7f03003e - public const int LineSong = 2130903102; + public const int HomeTopic = 2130903102; // aapt resource value: 0x7f03003f - public const int LineSongs = 2130903103; + public const int LineSong = 2130903103; // aapt resource value: 0x7f030040 - public const int ListPopupLayout = 2130903104; + public const int LineSongs = 2130903104; // aapt resource value: 0x7f030041 - public const int LogOutButton = 2130903105; + public const int ListPopupLayout = 2130903105; // aapt resource value: 0x7f030042 - public const int Main = 2130903106; + public const int LogOutButton = 2130903106; // aapt resource value: 0x7f030043 - public const int MusicLayout = 2130903107; + public const int Main = 2130903107; // aapt resource value: 0x7f030044 - public const int NoQueue = 2130903108; + public const int MusicLayout = 2130903108; // aapt resource value: 0x7f030045 - public const int NoSong = 2130903109; + public const int NoQueue = 2130903109; // aapt resource value: 0x7f030046 - public const int notification_action = 2130903110; + public const int NoSong = 2130903110; // aapt resource value: 0x7f030047 - public const int notification_action_tombstone = 2130903111; + public const int notification_action = 2130903111; // aapt resource value: 0x7f030048 - public const int notification_media_action = 2130903112; + public const int notification_action_tombstone = 2130903112; // aapt resource value: 0x7f030049 - public const int notification_media_cancel_action = 2130903113; + public const int notification_media_action = 2130903113; // aapt resource value: 0x7f03004a - public const int notification_template_big_media = 2130903114; + public const int notification_media_cancel_action = 2130903114; // aapt resource value: 0x7f03004b - public const int notification_template_big_media_custom = 2130903115; + public const int notification_template_big_media = 2130903115; // aapt resource value: 0x7f03004c - public const int notification_template_big_media_narrow = 2130903116; + public const int notification_template_big_media_custom = 2130903116; // aapt resource value: 0x7f03004d - public const int notification_template_big_media_narrow_custom = 2130903117; + public const int notification_template_big_media_narrow = 2130903117; // aapt resource value: 0x7f03004e - public const int notification_template_custom_big = 2130903118; + public const int notification_template_big_media_narrow_custom = 2130903118; // aapt resource value: 0x7f03004f - public const int notification_template_icon_group = 2130903119; + public const int notification_template_custom_big = 2130903119; // aapt resource value: 0x7f030050 - public const int notification_template_lines_media = 2130903120; + public const int notification_template_icon_group = 2130903120; // aapt resource value: 0x7f030051 - public const int notification_template_media = 2130903121; + public const int notification_template_lines_media = 2130903121; // aapt resource value: 0x7f030052 - public const int notification_template_media_custom = 2130903122; + public const int notification_template_media = 2130903122; // aapt resource value: 0x7f030053 - public const int notification_template_part_chronometer = 2130903123; + public const int notification_template_media_custom = 2130903123; // aapt resource value: 0x7f030054 - public const int notification_template_part_time = 2130903124; + public const int notification_template_part_chronometer = 2130903124; // aapt resource value: 0x7f030055 - public const int NoYtPlaylist = 2130903125; + public const int notification_template_part_time = 2130903125; // aapt resource value: 0x7f030056 - public const int NumberPicker = 2130903126; + public const int NoYtPlaylist = 2130903126; // aapt resource value: 0x7f030057 - public const int player = 2130903127; + public const int NumberPicker = 2130903127; // aapt resource value: 0x7f030058 - public const int playerInfo = 2130903128; + public const int player = 2130903128; // aapt resource value: 0x7f030059 - public const int PlaylistHeader = 2130903129; + public const int playerInfo = 2130903129; // aapt resource value: 0x7f03005a - public const int PlaylistList = 2130903130; + public const int PlaylistHeader = 2130903130; // aapt resource value: 0x7f03005b - public const int PlaylistSmallHeader = 2130903131; + public const int PlaylistList = 2130903131; // aapt resource value: 0x7f03005c - public const int preference = 2130903132; + public const int PlaylistSmallHeader = 2130903132; // aapt resource value: 0x7f03005d - public const int preference_category = 2130903133; + public const int preference = 2130903133; // aapt resource value: 0x7f03005e - public const int preference_dialog_edittext = 2130903134; + public const int preference_category = 2130903134; // aapt resource value: 0x7f03005f - public const int preference_dropdown = 2130903135; + public const int preference_dialog_edittext = 2130903135; // aapt resource value: 0x7f030060 - public const int preference_information = 2130903136; + public const int preference_dropdown = 2130903136; // aapt resource value: 0x7f030061 - public const int preference_list_fragment = 2130903137; + public const int preference_information = 2130903137; // aapt resource value: 0x7f030062 - public const int preference_recyclerview = 2130903138; + public const int preference_list_fragment = 2130903138; // aapt resource value: 0x7f030063 - public const int preference_widget_checkbox = 2130903139; + public const int preference_recyclerview = 2130903139; // aapt resource value: 0x7f030064 - public const int preference_widget_seekbar = 2130903140; + public const int preference_widget_checkbox = 2130903140; // aapt resource value: 0x7f030065 - public const int preference_widget_switch_compat = 2130903141; + public const int preference_widget_seekbar = 2130903141; // aapt resource value: 0x7f030066 - public const int Preferences = 2130903142; + public const int preference_widget_switch_compat = 2130903142; // aapt resource value: 0x7f030067 - public const int PreferenceToolbar = 2130903143; + public const int Preferences = 2130903143; // aapt resource value: 0x7f030068 - public const int QueueFooter = 2130903144; + public const int PreferenceToolbar = 2130903144; // aapt resource value: 0x7f030069 - public const int RecyclerFragment = 2130903145; + public const int QueueFooter = 2130903145; // aapt resource value: 0x7f03006a - public const int SaveAPlaylist = 2130903146; + public const int RecyclerFragment = 2130903146; // aapt resource value: 0x7f03006b - public const int search_layout = 2130903147; + public const int SaveAPlaylist = 2130903147; // aapt resource value: 0x7f03006c - public const int SearchLayout = 2130903148; + public const int search_layout = 2130903148; // aapt resource value: 0x7f03006d - public const int SeekbarPreference = 2130903149; + public const int SearchLayout = 2130903149; // aapt resource value: 0x7f03006e - public const int select_dialog_item_material = 2130903150; + public const int SeekbarPreference = 2130903150; // aapt resource value: 0x7f03006f - public const int select_dialog_multichoice_material = 2130903151; + public const int select_dialog_item_material = 2130903151; // aapt resource value: 0x7f030070 - public const int select_dialog_singlechoice_material = 2130903152; + public const int select_dialog_multichoice_material = 2130903152; // aapt resource value: 0x7f030071 - public const int smallLoading = 2130903153; + public const int select_dialog_singlechoice_material = 2130903153; // aapt resource value: 0x7f030072 - public const int SongList = 2130903154; + public const int smallLoading = 2130903154; // aapt resource value: 0x7f030073 - public const int SuggestionLayout = 2130903155; + public const int SongList = 2130903155; // aapt resource value: 0x7f030074 - public const int support_simple_spinner_dropdown_item = 2130903156; + public const int SuggestionLayout = 2130903156; // aapt resource value: 0x7f030075 - public const int tabs = 2130903157; + public const int support_simple_spinner_dropdown_item = 2130903157; // aapt resource value: 0x7f030076 - public const int TimerLayout = 2130903158; + public const int tabs = 2130903158; // aapt resource value: 0x7f030077 - public const int tooltip = 2130903159; + public const int TimerLayout = 2130903159; // aapt resource value: 0x7f030078 - public const int TwoLineLayout = 2130903160; + public const int tooltip = 2130903160; // aapt resource value: 0x7f030079 - public const int ViewPager = 2130903161; + public const int TwoLineLayout = 2130903161; // aapt resource value: 0x7f03007a - public const int YtList = 2130903162; + public const int ViewPager = 2130903162; + + // aapt resource value: 0x7f03007b + public const int YtList = 2130903163; static Layout() { diff --git a/MusicApp/Resources/drawable/Loop.png b/MusicApp/Resources/drawable/Loop.png deleted file mode 100644 index d2b0b8f..0000000 Binary files a/MusicApp/Resources/drawable/Loop.png and /dev/null differ diff --git a/MusicApp/Resources/drawable/Repeat.xml b/MusicApp/Resources/drawable/Repeat.xml new file mode 100644 index 0000000..011a257 --- /dev/null +++ b/MusicApp/Resources/drawable/Repeat.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/MusicApp/Resources/drawable/Shuffle.png b/MusicApp/Resources/drawable/Shuffle.png deleted file mode 100644 index c0dd9ba..0000000 Binary files a/MusicApp/Resources/drawable/Shuffle.png and /dev/null differ diff --git a/MusicApp/Resources/drawable/Shuffle.xml b/MusicApp/Resources/drawable/Shuffle.xml new file mode 100644 index 0000000..f727794 --- /dev/null +++ b/MusicApp/Resources/drawable/Shuffle.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/MusicApp/Resources/layout/BorderlessButton.xml b/MusicApp/Resources/layout/BorderlessButton.xml index e576b78..fe1d243 100644 --- a/MusicApp/Resources/layout/BorderlessButton.xml +++ b/MusicApp/Resources/layout/BorderlessButton.xml @@ -6,6 +6,7 @@ android:layout_marginTop="10dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" + android:layout_marginBottom="10dp" android:background="@drawable/FlatButtonBorder" android:id="@+id/button" android:text="Add a playlist" /> \ No newline at end of file diff --git a/MusicApp/Resources/layout/HomeShuffle.xml b/MusicApp/Resources/layout/HomeShuffle.xml new file mode 100644 index 0000000..046377d --- /dev/null +++ b/MusicApp/Resources/layout/HomeShuffle.xml @@ -0,0 +1,31 @@ + + + + + \ No newline at end of file diff --git a/MusicApp/Resources/menu/QueueItems.xml b/MusicApp/Resources/menu/QueueItems.xml index e04126d..e30471f 100644 --- a/MusicApp/Resources/menu/QueueItems.xml +++ b/MusicApp/Resources/menu/QueueItems.xml @@ -9,7 +9,7 @@ app:showAsAction="always" /> diff --git a/MusicApp/Resources/values/HomeSection.cs b/MusicApp/Resources/values/HomeSection.cs index 27a0960..84da021 100644 --- a/MusicApp/Resources/values/HomeSection.cs +++ b/MusicApp/Resources/values/HomeSection.cs @@ -25,6 +25,7 @@ namespace MusicApp.Resources.values ChannelList, PlaylistList, SinglePlaylist, - TopicSelector + TopicSelector, + Shuffle }; } \ No newline at end of file