Ejemplo n.º 1
0
        public void Search(object sender, SearchView.QueryTextChangeEventArgs e)
        {
            if (e.NewText == "")
            {
                query        = null;
                isInEditMode = item.HasWritePermission && item.LocalID != 0;
            }
            else
            {
                query        = e.NewText.ToLower();
                isInEditMode = false;
            }

            if (item.LocalID != -1)
            {
                LoaderManager.GetInstance(this).RestartLoader(0, null, this);
            }
            else
            {
                if (query == null)
                {
                    adapter.tracks.SetFilter(x => true);
                }
                else
                {
                    adapter.tracks.SetFilter(x => x.Title.ToLower().Contains(query) || x.Artist.ToLower().Contains(query));
                }

                adapter.NotifyDataSetChanged();
            }
        }
Ejemplo n.º 2
0
        async void PopulateList()
        {
            if (await MainActivity.instance.GetReadPermission() == false)
            {
                MainActivity.instance.FindViewById(Resource.Id.loading).Visibility = ViewStates.Gone;
                EmptyView.Visibility = ViewStates.Visible;
                EmptyView.Text       = GetString(Resource.String.no_permission);
                return;
            }

            LoaderManager.GetInstance(this).InitLoader(0, null, this);
        }
Ejemplo n.º 3
0
        public void Search(object sender, Android.Support.V7.Widget.SearchView.QueryTextChangeEventArgs e)
        {
            if (e.NewText == "")
            {
                query = null;
            }
            else
            {
                query = e.NewText;
            }

            LoaderManager.GetInstance(this).RestartLoader(0, null, this);
        }
Ejemplo n.º 4
0
        public async Task PopulateList()
        {
            if (await MainActivity.instance.GetReadPermission() == false)
            {
                MainActivity.instance.FindViewById(Resource.Id.loading).Visibility = ViewStates.Gone;
                EmptyView.Visibility = ViewStates.Visible;
                EmptyView.Text       = GetString(Resource.String.no_permission);
                return;
            }

            LoaderManager.GetInstance(this).InitLoader(0, null, this);

            //if (adapter.ItemCount == 0)
            //{
            //    EmptyView.Visibility = ViewStates.Visible;
            //    EmptyView.Text = MainActivity.instance.Resources.GetString(Resource.String.no_song);
            //}
        }
Ejemplo n.º 5
0
        async Task PopulateList()
        {
            if (item.LocalID == -1 && item.YoutubeID == null && adapter?.tracks.Count == 0)
            {
                return;
            }

            if (item.LocalID != -1)
            {
                if (await MainActivity.instance.GetReadPermission() == false)
                {
                    MainActivity.instance.FindViewById(Resource.Id.loading).Visibility = ViewStates.Gone;
                    return;
                }

                adapter = new PlaylistTrackAdapter();
                ListView.SetAdapter(adapter);

                Android.Support.V7.Widget.Helper.ItemTouchHelper.Callback callback = new ItemTouchCallback(adapter, false);
                itemTouchHelper = new Android.Support.V7.Widget.Helper.ItemTouchHelper(callback);
                itemTouchHelper.AttachToRecyclerView(ListView);

                LoaderManager.GetInstance(this).InitLoader(0, null, this);
            }
            else if (item.YoutubeID != null)
            {
                fullyLoadded = false;
                SearchableList <Song> tracks = new SearchableList <Song>();
                adapter = new PlaylistTrackAdapter(tracks);
                ListView.SetAdapter(adapter);

                Android.Support.V7.Widget.Helper.ItemTouchHelper.Callback callback = new ItemTouchCallback(adapter, false);
                itemTouchHelper = new Android.Support.V7.Widget.Helper.ItemTouchHelper(callback);
                itemTouchHelper.AttachToRecyclerView(ListView);

                try
                {
                    var ytPlaylistRequest = YoutubeManager.YoutubeService.PlaylistItems.List("snippet, contentDetails");
                    ytPlaylistRequest.PlaylistId = item.YoutubeID;
                    ytPlaylistRequest.MaxResults = 50;

                    var ytPlaylist = await ytPlaylistRequest.ExecuteAsync();

                    foreach (var item in ytPlaylist.Items)
                    {
                        if (item.Snippet.Title != "[Deleted video]" && item.Snippet.Title != "Private video" && item.Snippet.Title != "Deleted video")
                        {
                            Song song = new Song(item.Snippet.Title, item.Snippet.ChannelTitle, item.Snippet.Thumbnails.High.Url, item.ContentDetails.VideoId, -1, -1, item.ContentDetails.VideoId, true, false)
                            {
                                TrackID   = item.Id,
                                ChannelID = item.Snippet.ChannelId
                            };
                            tracks.Add(song);
                        }
                    }

                    nextPageToken = ytPlaylist.NextPageToken;
                    if (nextPageToken == null)
                    {
                        fullyLoadded = true;
                    }

                    tracks.Invalidate();
                    adapter.NotifyDataSetChanged();

                    if (item?.ImageURL == null)
                    {
                        Picasso.With(Android.App.Application.Context).Load(tracks[0].Album).Placeholder(Resource.Drawable.noAlbum).Transform(new RemoveBlackBorder(true)).Into(Activity.FindViewById <ImageView>(Resource.Id.headerArt));
                    }
                }
                catch (System.Net.Http.HttpRequestException) { }
            }
            else if (adapter?.tracks.Count != 0)
            {
                ListView.SetAdapter(adapter);
            }
        }