mirror of
https://github.com/zoriya/Opus.git
synced 2026-06-03 14:35:33 +00:00
Adding Home Topic selection.
This commit is contained in:
@@ -638,6 +638,9 @@
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\layout\HomePlaylists.xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\layout\HomeTopic.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')" />
|
||||
|
||||
@@ -24,6 +24,8 @@ namespace MusicApp.Resources.Portable_Class
|
||||
public HomeAdapter adapter;
|
||||
public ItemTouchHelper itemTouchHelper;
|
||||
public static List<HomeSection> adapterItems = new List<HomeSection>();
|
||||
public List<string> selectedTopics = new List<string>();
|
||||
public List<string> selectedTopicsID = new List<string>();
|
||||
public View view;
|
||||
|
||||
public override void OnActivityCreated(Bundle savedInstanceState)
|
||||
@@ -113,8 +115,6 @@ namespace MusicApp.Resources.Portable_Class
|
||||
ListView.SetItemAnimator(new DefaultItemAnimator());
|
||||
ListView.ScrollChange += MainActivity.instance.Scroll;
|
||||
|
||||
List<string> selectedTopics = new List<string>();
|
||||
List<string> selectedTopicsID = new List<string>();
|
||||
ISharedPreferences prefManager = PreferenceManager.GetDefaultSharedPreferences(Activity);
|
||||
List<string> topics = prefManager.GetStringSet("selectedTopics", new string[] { }).ToList();
|
||||
foreach (string topic in topics)
|
||||
@@ -288,7 +288,49 @@ namespace MusicApp.Resources.Portable_Class
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
r = new Random();
|
||||
if (r.Next(0, 100) > 90)
|
||||
AddHomeTopics();
|
||||
}
|
||||
else
|
||||
{
|
||||
AddHomeTopics();
|
||||
}
|
||||
}
|
||||
|
||||
public async void AddHomeTopics()
|
||||
{
|
||||
await MainActivity.instance.WaitForYoutube();
|
||||
|
||||
List<Song> channelLits = new List<Song>();
|
||||
|
||||
string nextPageToken = "";
|
||||
while (nextPageToken != null)
|
||||
{
|
||||
YouTubeService youtube = YoutubeEngine.youtubeService;
|
||||
SubscriptionsResource.ListRequest request = youtube.Subscriptions.List("snippet,contentDetails");
|
||||
request.ChannelId = "UCh3mHcmSMffgVxFniKQrpug";
|
||||
request.MaxResults = 50;
|
||||
request.PageToken = nextPageToken;
|
||||
|
||||
SubscriptionListResponse response = await request.ExecuteAsync();
|
||||
|
||||
foreach (var item in response.Items)
|
||||
{
|
||||
Song channel = new Song(item.Snippet.Title.Substring(0, item.Snippet.Title.IndexOf(" - Topic")), item.Snippet.Description, item.Snippet.Thumbnails.Default__.Url, item.Snippet.ResourceId.ChannelId, -1, -1, null, true);
|
||||
channelLits.Add(channel);
|
||||
}
|
||||
|
||||
nextPageToken = response.NextPageToken;
|
||||
}
|
||||
|
||||
Random r = new Random();
|
||||
List<Song> channels = channelLits.OrderBy(x => r.Next()).ToList();
|
||||
channels.RemoveAll(x => selectedTopics.Contains(x.GetName()));
|
||||
|
||||
HomeSection TopicSelector = new HomeSection("Music Genres", SectionType.TopicSelector, channels);
|
||||
adapter.AddToList(new List<HomeSection> { TopicSelector });
|
||||
}
|
||||
|
||||
public static Fragment NewInstance()
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Android.Graphics;
|
||||
using Android.Content;
|
||||
using Android.Graphics;
|
||||
using Android.Graphics.Drawables;
|
||||
using Android.Support.V7.Widget;
|
||||
using Android.Views;
|
||||
@@ -44,16 +45,21 @@ namespace MusicApp.Resources.Portable_Class
|
||||
View itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.LineSongs, parent, false);
|
||||
return new LineSongHolder(itemView, OnClick, OnLongClick);
|
||||
}
|
||||
else /*if(viewType == 1)*/
|
||||
else if (viewType == 1)
|
||||
{
|
||||
View itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.HomeChannels, parent, false);
|
||||
return new LineSongHolder(itemView, OnClick, OnLongClick);
|
||||
}
|
||||
//else
|
||||
//else if(viewType == 2)
|
||||
//{
|
||||
// View itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.HomePlaylists, parent, false);
|
||||
// return new LineSongHolder(itemView, OnClick, OnLongClick);
|
||||
//}
|
||||
else
|
||||
{
|
||||
View itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.HomeTopic, parent, false);
|
||||
return new LineSongHolder(itemView, OnClick, OnLongClick);
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position)
|
||||
@@ -111,8 +117,6 @@ namespace MusicApp.Resources.Portable_Class
|
||||
if (MainActivity.Theme == 1)
|
||||
holder.ItemView.SetBackgroundColor(Color.Argb(255, 62, 62, 62));
|
||||
}
|
||||
//Youtube topics channels don't have playlist list others than artist mixes
|
||||
|
||||
//else if (items[position].contentType == SectionType.PlaylistList)
|
||||
//{
|
||||
// LineSongHolder holder = (LineSongHolder)viewHolder;
|
||||
@@ -123,6 +127,21 @@ namespace MusicApp.Resources.Portable_Class
|
||||
// if (MainActivity.Theme == 1)
|
||||
// holder.ItemView.SetBackgroundColor(Color.Argb(255, 62, 62, 62));
|
||||
//}
|
||||
else if(items[position].contentType == SectionType.TopicSelector)
|
||||
{
|
||||
LineSongHolder holder = (LineSongHolder)viewHolder;
|
||||
holder.title.Text = items[position].SectionTitle;
|
||||
holder.recycler.SetLayoutManager(new LinearLayoutManager(MainActivity.instance, LinearLayoutManager.Vertical, false));
|
||||
holder.recycler.SetAdapter(new HomeChannelAdapter(items[position].contentValue));
|
||||
holder.more.Click += (sender, e) =>
|
||||
{
|
||||
Intent intent = new Intent(MainActivity.instance, typeof(Preferences));
|
||||
MainActivity.instance.StartActivity(intent);
|
||||
};
|
||||
|
||||
if (MainActivity.Theme == 1)
|
||||
holder.ItemView.SetBackgroundColor(Color.Argb(255, 62, 62, 62));
|
||||
}
|
||||
}
|
||||
|
||||
void OnClick(int position)
|
||||
@@ -151,8 +170,10 @@ namespace MusicApp.Resources.Portable_Class
|
||||
return 0;
|
||||
else if (items[position].contentType == SectionType.ChannelList)
|
||||
return 1;
|
||||
else
|
||||
else if (items[position].contentType == SectionType.PlaylistList)
|
||||
return 2;
|
||||
else
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,14 @@
|
||||
using Android.App;
|
||||
using Android.Content;
|
||||
using Android.Support.V7.Preferences;
|
||||
using Android.Support.V7.Widget;
|
||||
using Android.Views;
|
||||
using Android.Widget;
|
||||
using MusicApp.Resources.values;
|
||||
using Square.Picasso;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MusicApp.Resources.Portable_Class
|
||||
{
|
||||
@@ -12,8 +17,9 @@ namespace MusicApp.Resources.Portable_Class
|
||||
public RecyclerView recycler;
|
||||
public int listPadding = 0;
|
||||
public List<Song> songList;
|
||||
private bool useTopic = false;
|
||||
|
||||
public override int ItemCount => songList.Count;
|
||||
public override int ItemCount => useTopic ? 3 : songList.Count;
|
||||
|
||||
public HomeChannelAdapter(List<Song> songList, RecyclerView recycler)
|
||||
{
|
||||
@@ -21,6 +27,12 @@ namespace MusicApp.Resources.Portable_Class
|
||||
this.songList = songList;
|
||||
}
|
||||
|
||||
public HomeChannelAdapter(List<Song> songList)
|
||||
{
|
||||
this.songList = songList;
|
||||
useTopic = true;
|
||||
}
|
||||
|
||||
public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position)
|
||||
{
|
||||
RecyclerHolder holder = (RecyclerHolder)viewHolder;
|
||||
@@ -29,16 +41,54 @@ namespace MusicApp.Resources.Portable_Class
|
||||
var songAlbumArtUri = Android.Net.Uri.Parse(songList[position].GetAlbum());
|
||||
Picasso.With(Application.Context).Load(songAlbumArtUri).Placeholder(Resource.Drawable.MusicIcon).Resize(400, 400).CenterCrop().Transform(new CircleTransformation()).Into(holder.AlbumArt);
|
||||
|
||||
if (songList[position].GetArtist() != null)
|
||||
holder.action.Text = "Mix";
|
||||
|
||||
if(!holder.action.HasOnClickListeners)
|
||||
if (!useTopic)
|
||||
{
|
||||
holder.action.Click += (sender, e) =>
|
||||
if (songList[position].GetArtist() != null)
|
||||
holder.action.Text = "Mix";
|
||||
|
||||
if (!holder.action.HasOnClickListeners)
|
||||
{
|
||||
if (songList[position].GetArtist() != null)
|
||||
Playlist.PlayInOrder(songList[position].GetArtist());
|
||||
};
|
||||
holder.action.Click += (sender, e) =>
|
||||
{
|
||||
if (songList[position].GetArtist() != null)
|
||||
Playlist.PlayInOrder(songList[position].GetArtist());
|
||||
};
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
holder.action.Text = "Follow";
|
||||
|
||||
if (!holder.action.HasOnClickListeners)
|
||||
{
|
||||
holder.action.Click += async (sender, e) =>
|
||||
{
|
||||
ISharedPreferences prefManager = PreferenceManager.GetDefaultSharedPreferences(MainActivity.instance);
|
||||
List<string> topics = prefManager.GetStringSet("selectedTopics", new string[] { }).ToList();
|
||||
|
||||
ISharedPreferencesEditor editor = prefManager.Edit();
|
||||
topics.Add(songList[position].GetName() + "/#-#/" + songList[position].youtubeID);
|
||||
editor.PutStringSet("selectedTopics", topics);
|
||||
editor.Apply();
|
||||
|
||||
holder.action.Text = "Following";
|
||||
await Task.Delay(1000);
|
||||
|
||||
if(position == 0 || position == 1)
|
||||
{
|
||||
if (songList.Count < 4)
|
||||
return;
|
||||
|
||||
songList[position] = songList[songList.Count - 1];
|
||||
songList.RemoveAt(songList.Count - 1);
|
||||
}
|
||||
else
|
||||
songList.RemoveAt(position);
|
||||
|
||||
NotifyItemChanged(position);
|
||||
};
|
||||
}
|
||||
holder.ItemView.SetPadding(4, 1, 4, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -121,13 +121,13 @@ namespace MusicApp.Resources.Portable_Class
|
||||
if (topics.Length == 0)
|
||||
topicPreference.Summary = "Actually nothing";
|
||||
else if (topics.Length == 1)
|
||||
topicPreference.Summary = topics[0];
|
||||
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/"));
|
||||
else if (topics.Length == 2)
|
||||
topicPreference.Summary = topics[0] + " and " + topics[1];
|
||||
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + " and " + topics[1].Substring(0, topics[1].IndexOf("/#-#/"));
|
||||
else if(topics.Length == 3)
|
||||
topicPreference.Summary = topics[0] + ", " + topics[1] + " and " + topics[2];
|
||||
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + ", " + topics[1].Substring(0, topics[1].IndexOf("/#-#/")) + " and " + topics[2].Substring(0, topics[2].IndexOf("/#-#/"));
|
||||
else if(topics.Length > 3)
|
||||
topicPreference.Summary = topics[0] + ", " + topics[1] + ", " + topics[2] + " and more.";
|
||||
topicPreference.Summary = topics[0].Substring(0, topics[0].IndexOf("/#-#/")) + ", " + topics[1].Substring(0, topics[1].IndexOf("/#-#/")) + ", " + topics[2].Substring(0, topics[2].IndexOf("/#-#/")) + " and more.";
|
||||
|
||||
//Download Path
|
||||
Preference downloadPref = PreferenceScreen.FindPreference("downloadPath");
|
||||
|
||||
@@ -17,6 +17,7 @@ namespace MusicApp.Resources.Portable_Class
|
||||
public ImageView youtubeIcon;
|
||||
public ImageView more;
|
||||
public TextView status;
|
||||
public CheckBox checkBox;
|
||||
public Button action;
|
||||
|
||||
public RecyclerHolder(View itemView, Action<int> listener, Action<int> longListener) : base(itemView)
|
||||
@@ -30,6 +31,7 @@ namespace MusicApp.Resources.Portable_Class
|
||||
youtubeIcon = itemView.FindViewById<ImageView>(Resource.Id.youtubeIcon);
|
||||
more = itemView.FindViewById<ImageView>(Resource.Id.moreButton);
|
||||
status = itemView.FindViewById<TextView>(Resource.Id.status);
|
||||
checkBox = itemView.FindViewById<CheckBox>(Resource.Id.checkBox);
|
||||
action = itemView.FindViewById<Button>(Resource.Id.action);
|
||||
|
||||
itemView.Click += (sender, e) => listener(AdapterPosition);
|
||||
|
||||
Generated
+63
-60
@@ -4264,184 +4264,187 @@ namespace MusicApp
|
||||
public const int HomePlaylists = 2130903097;
|
||||
|
||||
// aapt resource value: 0x7f03003a
|
||||
public const int LineSong = 2130903098;
|
||||
public const int HomeTopic = 2130903098;
|
||||
|
||||
// aapt resource value: 0x7f03003b
|
||||
public const int LineSongs = 2130903099;
|
||||
public const int LineSong = 2130903099;
|
||||
|
||||
// aapt resource value: 0x7f03003c
|
||||
public const int ListPopupLayout = 2130903100;
|
||||
public const int LineSongs = 2130903100;
|
||||
|
||||
// aapt resource value: 0x7f03003d
|
||||
public const int LogOutButton = 2130903101;
|
||||
public const int ListPopupLayout = 2130903101;
|
||||
|
||||
// aapt resource value: 0x7f03003e
|
||||
public const int Main = 2130903102;
|
||||
public const int LogOutButton = 2130903102;
|
||||
|
||||
// aapt resource value: 0x7f03003f
|
||||
public const int MusicLayout = 2130903103;
|
||||
public const int Main = 2130903103;
|
||||
|
||||
// aapt resource value: 0x7f030040
|
||||
public const int NoPlaylist = 2130903104;
|
||||
public const int MusicLayout = 2130903104;
|
||||
|
||||
// aapt resource value: 0x7f030041
|
||||
public const int NoQueue = 2130903105;
|
||||
public const int NoPlaylist = 2130903105;
|
||||
|
||||
// aapt resource value: 0x7f030042
|
||||
public const int NoSong = 2130903106;
|
||||
public const int NoQueue = 2130903106;
|
||||
|
||||
// aapt resource value: 0x7f030043
|
||||
public const int notification_action = 2130903107;
|
||||
public const int NoSong = 2130903107;
|
||||
|
||||
// aapt resource value: 0x7f030044
|
||||
public const int notification_action_tombstone = 2130903108;
|
||||
public const int notification_action = 2130903108;
|
||||
|
||||
// aapt resource value: 0x7f030045
|
||||
public const int notification_media_action = 2130903109;
|
||||
public const int notification_action_tombstone = 2130903109;
|
||||
|
||||
// aapt resource value: 0x7f030046
|
||||
public const int notification_media_cancel_action = 2130903110;
|
||||
public const int notification_media_action = 2130903110;
|
||||
|
||||
// aapt resource value: 0x7f030047
|
||||
public const int notification_template_big_media = 2130903111;
|
||||
public const int notification_media_cancel_action = 2130903111;
|
||||
|
||||
// aapt resource value: 0x7f030048
|
||||
public const int notification_template_big_media_custom = 2130903112;
|
||||
public const int notification_template_big_media = 2130903112;
|
||||
|
||||
// aapt resource value: 0x7f030049
|
||||
public const int notification_template_big_media_narrow = 2130903113;
|
||||
public const int notification_template_big_media_custom = 2130903113;
|
||||
|
||||
// aapt resource value: 0x7f03004a
|
||||
public const int notification_template_big_media_narrow_custom = 2130903114;
|
||||
public const int notification_template_big_media_narrow = 2130903114;
|
||||
|
||||
// aapt resource value: 0x7f03004b
|
||||
public const int notification_template_custom_big = 2130903115;
|
||||
public const int notification_template_big_media_narrow_custom = 2130903115;
|
||||
|
||||
// aapt resource value: 0x7f03004c
|
||||
public const int notification_template_icon_group = 2130903116;
|
||||
public const int notification_template_custom_big = 2130903116;
|
||||
|
||||
// aapt resource value: 0x7f03004d
|
||||
public const int notification_template_lines_media = 2130903117;
|
||||
public const int notification_template_icon_group = 2130903117;
|
||||
|
||||
// aapt resource value: 0x7f03004e
|
||||
public const int notification_template_media = 2130903118;
|
||||
public const int notification_template_lines_media = 2130903118;
|
||||
|
||||
// aapt resource value: 0x7f03004f
|
||||
public const int notification_template_media_custom = 2130903119;
|
||||
public const int notification_template_media = 2130903119;
|
||||
|
||||
// aapt resource value: 0x7f030050
|
||||
public const int notification_template_part_chronometer = 2130903120;
|
||||
public const int notification_template_media_custom = 2130903120;
|
||||
|
||||
// aapt resource value: 0x7f030051
|
||||
public const int notification_template_part_time = 2130903121;
|
||||
public const int notification_template_part_chronometer = 2130903121;
|
||||
|
||||
// aapt resource value: 0x7f030052
|
||||
public const int NoYtPlaylist = 2130903122;
|
||||
public const int notification_template_part_time = 2130903122;
|
||||
|
||||
// aapt resource value: 0x7f030053
|
||||
public const int player = 2130903123;
|
||||
public const int NoYtPlaylist = 2130903123;
|
||||
|
||||
// aapt resource value: 0x7f030054
|
||||
public const int playerInfo = 2130903124;
|
||||
public const int player = 2130903124;
|
||||
|
||||
// aapt resource value: 0x7f030055
|
||||
public const int PlaylistHeader = 2130903125;
|
||||
public const int playerInfo = 2130903125;
|
||||
|
||||
// aapt resource value: 0x7f030056
|
||||
public const int PlaylistList = 2130903126;
|
||||
public const int PlaylistHeader = 2130903126;
|
||||
|
||||
// aapt resource value: 0x7f030057
|
||||
public const int preference = 2130903127;
|
||||
public const int PlaylistList = 2130903127;
|
||||
|
||||
// aapt resource value: 0x7f030058
|
||||
public const int preference_category = 2130903128;
|
||||
public const int preference = 2130903128;
|
||||
|
||||
// aapt resource value: 0x7f030059
|
||||
public const int preference_dialog_edittext = 2130903129;
|
||||
public const int preference_category = 2130903129;
|
||||
|
||||
// aapt resource value: 0x7f03005a
|
||||
public const int preference_dropdown = 2130903130;
|
||||
public const int preference_dialog_edittext = 2130903130;
|
||||
|
||||
// aapt resource value: 0x7f03005b
|
||||
public const int preference_information = 2130903131;
|
||||
public const int preference_dropdown = 2130903131;
|
||||
|
||||
// aapt resource value: 0x7f03005c
|
||||
public const int preference_list_fragment = 2130903132;
|
||||
public const int preference_information = 2130903132;
|
||||
|
||||
// aapt resource value: 0x7f03005d
|
||||
public const int preference_recyclerview = 2130903133;
|
||||
public const int preference_list_fragment = 2130903133;
|
||||
|
||||
// aapt resource value: 0x7f03005e
|
||||
public const int preference_widget_checkbox = 2130903134;
|
||||
public const int preference_recyclerview = 2130903134;
|
||||
|
||||
// aapt resource value: 0x7f03005f
|
||||
public const int preference_widget_seekbar = 2130903135;
|
||||
public const int preference_widget_checkbox = 2130903135;
|
||||
|
||||
// aapt resource value: 0x7f030060
|
||||
public const int preference_widget_switch_compat = 2130903136;
|
||||
public const int preference_widget_seekbar = 2130903136;
|
||||
|
||||
// aapt resource value: 0x7f030061
|
||||
public const int PreferenceContent = 2130903137;
|
||||
public const int preference_widget_switch_compat = 2130903137;
|
||||
|
||||
// aapt resource value: 0x7f030062
|
||||
public const int Preferences = 2130903138;
|
||||
public const int PreferenceContent = 2130903138;
|
||||
|
||||
// aapt resource value: 0x7f030063
|
||||
public const int PreferenceToolbar = 2130903139;
|
||||
public const int Preferences = 2130903139;
|
||||
|
||||
// aapt resource value: 0x7f030064
|
||||
public const int QuickPlayLayout = 2130903140;
|
||||
public const int PreferenceToolbar = 2130903140;
|
||||
|
||||
// aapt resource value: 0x7f030065
|
||||
public const int RecyclerFragment = 2130903141;
|
||||
public const int QuickPlayLayout = 2130903141;
|
||||
|
||||
// aapt resource value: 0x7f030066
|
||||
public const int SaveAPlaylist = 2130903142;
|
||||
public const int RecyclerFragment = 2130903142;
|
||||
|
||||
// aapt resource value: 0x7f030067
|
||||
public const int search_layout = 2130903143;
|
||||
public const int SaveAPlaylist = 2130903143;
|
||||
|
||||
// aapt resource value: 0x7f030068
|
||||
public const int SeekbarPreference = 2130903144;
|
||||
public const int search_layout = 2130903144;
|
||||
|
||||
// aapt resource value: 0x7f030069
|
||||
public const int select_dialog_item_material = 2130903145;
|
||||
public const int SeekbarPreference = 2130903145;
|
||||
|
||||
// aapt resource value: 0x7f03006a
|
||||
public const int select_dialog_multichoice_material = 2130903146;
|
||||
public const int select_dialog_item_material = 2130903146;
|
||||
|
||||
// aapt resource value: 0x7f03006b
|
||||
public const int select_dialog_singlechoice_material = 2130903147;
|
||||
public const int select_dialog_multichoice_material = 2130903147;
|
||||
|
||||
// aapt resource value: 0x7f03006c
|
||||
public const int SmallPlayer = 2130903148;
|
||||
public const int select_dialog_singlechoice_material = 2130903148;
|
||||
|
||||
// aapt resource value: 0x7f03006d
|
||||
public const int SongList = 2130903149;
|
||||
public const int SmallPlayer = 2130903149;
|
||||
|
||||
// aapt resource value: 0x7f03006e
|
||||
public const int SquareSong = 2130903150;
|
||||
public const int SongList = 2130903150;
|
||||
|
||||
// aapt resource value: 0x7f03006f
|
||||
public const int support_simple_spinner_dropdown_item = 2130903151;
|
||||
public const int SquareSong = 2130903151;
|
||||
|
||||
// aapt resource value: 0x7f030070
|
||||
public const int tabs = 2130903152;
|
||||
public const int support_simple_spinner_dropdown_item = 2130903152;
|
||||
|
||||
// aapt resource value: 0x7f030071
|
||||
public const int TimerLayout = 2130903153;
|
||||
public const int tabs = 2130903153;
|
||||
|
||||
// aapt resource value: 0x7f030072
|
||||
public const int tooltip = 2130903154;
|
||||
public const int TimerLayout = 2130903154;
|
||||
|
||||
// aapt resource value: 0x7f030073
|
||||
public const int TwoLineLayout = 2130903155;
|
||||
public const int tooltip = 2130903155;
|
||||
|
||||
// aapt resource value: 0x7f030074
|
||||
public const int ViewPager = 2130903156;
|
||||
public const int TwoLineLayout = 2130903156;
|
||||
|
||||
// aapt resource value: 0x7f030075
|
||||
public const int YtList = 2130903157;
|
||||
public const int ViewPager = 2130903157;
|
||||
|
||||
// aapt resource value: 0x7f030076
|
||||
public const int YtList = 2130903158;
|
||||
|
||||
static Layout()
|
||||
{
|
||||
|
||||
@@ -31,5 +31,5 @@
|
||||
android:paddingLeft="90dp"
|
||||
android:textStyle="bold"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_toLeftOf="@id/action"/>
|
||||
android:layout_toLeftOf="@id/action" />
|
||||
</RelativeLayout >
|
||||
@@ -0,0 +1,49 @@
|
||||
<?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:elevation="6dp"
|
||||
android:background="#fafafa"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:orientation="vertical">
|
||||
<RelativeLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content" >
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:paddingLeft="20dp" >
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="22dp"
|
||||
android:textStyle="bold" />
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="16dp"
|
||||
android:alpha=".8"
|
||||
android:text="used for your recommendation" />
|
||||
</LinearLayout>
|
||||
<Button
|
||||
android:id="@+id/viewMore"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:text="Add Genres"
|
||||
app:backgroundTint="?colorAccent"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginRight="20dp"
|
||||
android:layout_alignParentRight="true" />
|
||||
</RelativeLayout>
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/lineRecycler" />
|
||||
</LinearLayout>
|
||||
@@ -20,7 +20,6 @@
|
||||
android:textSize="14dip"
|
||||
android:paddingLeft="2dp"
|
||||
android:textColor="#ffffff"
|
||||
android:minLines="1"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:layout_alignParentBottom="true" />
|
||||
|
||||
@@ -24,6 +24,7 @@ namespace MusicApp.Resources.values
|
||||
None,
|
||||
ChannelList,
|
||||
PlaylistList,
|
||||
SinglePlaylist
|
||||
SinglePlaylist,
|
||||
TopicSelector
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user