mirror of
https://github.com/zoriya/Opus.git
synced 2025-12-06 06:26:15 +00:00
Adding shuffle add button in the browse view + browse and folderbrowse now use recyclerviews.
This commit is contained in:
@@ -326,7 +326,7 @@
|
||||
<Compile Include="Resources\Fragments\EmptyFragment.cs" />
|
||||
<Compile Include="Resources\Portable Class\AccountPreference.cs" />
|
||||
<Compile Include="Resources\Portable Class\AccountTarget.cs" />
|
||||
<Compile Include="Resources\Portable Class\Adapter.cs" />
|
||||
<Compile Include="Resources\Portable Class\BrowseAdapter.cs" />
|
||||
<Compile Include="Resources\Portable Class\AddToPlaylistAdapter.cs" />
|
||||
<Compile Include="Resources\Portable Class\AudioStopper.cs" />
|
||||
<Compile Include="Resources\Portable Class\BottomSheetAdapter.cs" />
|
||||
@@ -859,6 +859,9 @@
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\values\strings.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\layout\BrowseShuffle.xml" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
||||
<Import Project="..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Animated.Vector.Drawable.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.Animated.Vector.Drawable.targets')" />
|
||||
<Import Project="..\packages\Xamarin.Android.Support.v7.Preference.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.v7.Preference.targets" Condition="Exists('..\packages\Xamarin.Android.Support.v7.Preference.25.4.0.2\build\MonoAndroid70\Xamarin.Android.Support.v7.Preference.targets')" />
|
||||
|
||||
@@ -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<Song> songList;
|
||||
private LayoutInflater inflater;
|
||||
private int resource;
|
||||
|
||||
public override int Count => songList.Count;
|
||||
|
||||
public Adapter(Context context, int resource, List<Song> 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<ImageView>(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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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<Song> musicList = new List<Song>();
|
||||
public List<Song> 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<ViewGroup>(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<TextView>(Resource.Id.empty);
|
||||
ListView = view.FindViewById<RecyclerView>(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<Song> 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)
|
||||
|
||||
109
MusicApp/Resources/Portable Class/BrowseAdapter.cs
Normal file
109
MusicApp/Resources/Portable Class/BrowseAdapter.cs
Normal file
@@ -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<Song> songList;
|
||||
public bool displayShuffle;
|
||||
public event EventHandler<int> ItemClick;
|
||||
public event EventHandler<int> ItemLongCLick;
|
||||
|
||||
public BrowseAdapter(List<Song> 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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<Song> result;
|
||||
public string path;
|
||||
|
||||
private List<Song> tracks = new List<Song>();
|
||||
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<TextView>(Resource.Id.empty);
|
||||
ListView = view.FindViewById<RecyclerView>(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<Song> queue = tracks.GetRange(e.Position + 1, tracks.Count - e.Position - 1);
|
||||
Song item = tracks[position];
|
||||
List<Song> 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)
|
||||
|
||||
@@ -941,7 +941,8 @@ namespace MusicApp.Resources.Portable_Class
|
||||
player.SeekTo(LastTimer);
|
||||
|
||||
currentID = position;
|
||||
MainActivity.instance.ShowPlayer();
|
||||
if(showPlayer)
|
||||
MainActivity.instance.ShowPlayer();
|
||||
|
||||
if (UseCastPlayer)
|
||||
{
|
||||
|
||||
@@ -18,7 +18,6 @@ namespace MusicApp.Resources.Portable_Class
|
||||
public List<Song> songList;
|
||||
public event EventHandler<int> ItemClick;
|
||||
public event EventHandler<int> ItemLongCLick;
|
||||
public int listPadding;
|
||||
|
||||
public QueueAdapter(List<Song> songList)
|
||||
{
|
||||
|
||||
@@ -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<string> 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)
|
||||
{
|
||||
|
||||
255
MusicApp/Resources/Resource.Designer.cs
generated
255
MusicApp/Resources/Resource.Designer.cs
generated
@@ -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()
|
||||
{
|
||||
|
||||
37
MusicApp/Resources/layout/BrowseShuffle.xml
Normal file
37
MusicApp/Resources/layout/BrowseShuffle.xml
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<android.support.v7.widget.CardView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:layout_marginRight="20dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
app:cardCornerRadius="16dp"
|
||||
app:cardElevation="14dp" >
|
||||
<LinearLayout
|
||||
android:gravity="center"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal" >
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/shuffle"
|
||||
android:tint="?colorAccent"
|
||||
android:paddingRight="5dp"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"/>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/shuffle_all"
|
||||
android:textColor="?colorAccent"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"/>
|
||||
</LinearLayout>
|
||||
</android.support.v7.widget.CardView>
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
@@ -58,7 +59,7 @@
|
||||
<android.support.v7.widget.CardView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
CardView_cardCornerRadius="16dp"
|
||||
app:cardCornerRadius="8dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginLeft="25dp"
|
||||
android:layout_marginRight="25dp"
|
||||
|
||||
Reference in New Issue
Block a user