Esempio n. 1
0
        public override void OnDestroyView()
        {
            Activity.FindViewById <ImageButton>(Resource.Id.headerPlay).Click    -= HeaderPlay;
            Activity.FindViewById <ImageButton>(Resource.Id.headerShuffle).Click -= HeaderShuffle;
            Activity.FindViewById <ImageButton>(Resource.Id.headerMore).Click    -= PlaylistMore;
            base.OnDestroyView();

            if (!MainActivity.instance.Paused)
            {
                Activity.FindViewById <RelativeLayout>(Resource.Id.playlistHeader).Visibility = ViewStates.Gone;

                MainActivity.instance.RemoveFilterListener(Search);
                MainActivity.instance.HideFilter();
                MainActivity.instance.SupportActionBar.SetHomeButtonEnabled(false);
                MainActivity.instance.SupportActionBar.SetDisplayHomeAsUpEnabled(false);
                MainActivity.instance.SupportActionBar.SetDisplayShowTitleEnabled(false);

                if (MainActivity.instance.FindViewById(Resource.Id.toolbarLogo) != null)
                {
                    MainActivity.instance.FindViewById(Resource.Id.toolbarLogo).Visibility = ViewStates.Visible;
                }

                MainActivity.instance.contentRefresh.Refresh -= OnRefresh;
                Activity.FindViewById <AppBarLayout>(Resource.Id.appbar).RemoveOnOffsetChangedListener(this);
                instance = null;
            }
        }
Esempio n. 2
0
 public static Fragment NewInstance(List <Song> songs, string playlistName)
 {
     instance = new PlaylistTracks {
         Arguments = new Bundle()
     };
     instance.item = new PlaylistItem()
     {
         Name = playlistName, Count = songs.Count, HasWritePermission = false, LocalID = -1, YoutubeID = null
     };
     instance.useHeader    = false;
     instance.fullyLoadded = true;
     instance.isInEditMode = false;
     instance.adapter      = new PlaylistTrackAdapter(new SearchableList <Song>(songs));
     return(instance);
 }
Esempio n. 3
0
        public static Fragment NewInstance(PlaylistItem item)
        {
            instance = new PlaylistTracks {
                Arguments = new Bundle()
            };
            instance.item         = item;
            instance.useHeader    = true;
            instance.isInEditMode = item.HasWritePermission && item.LocalID != 0;
            instance.fullyLoadded = item.LocalID != 0 && item.LocalID != -1;

            Task.Run(async() =>
            {
                instance.isForked = await PlaylistManager.IsForked(item);
            });
            return(instance);
        }
Esempio n. 4
0
        public override void OnResume()
        {
            base.OnResume();
            instance = this;

            if (useHeader)
            {
                if (!Activity.FindViewById <ImageButton>(Resource.Id.headerPlay).HasOnClickListeners)
                {
                    Activity.FindViewById <ImageButton>(Resource.Id.headerPlay).Click += (sender, e0) => { PlaylistManager.PlayInOrder(item); }
                }
                ;
                if (!Activity.FindViewById <ImageButton>(Resource.Id.headerShuffle).HasOnClickListeners)
                {
                    Activity.FindViewById <ImageButton>(Resource.Id.headerShuffle).Click += (sender, e0) => { PlaylistManager.Shuffle(item); }
                }
                ;
                if (!Activity.FindViewById <ImageButton>(Resource.Id.headerMore).HasOnClickListeners)
                {
                    Activity.FindViewById <ImageButton>(Resource.Id.headerMore).Click += PlaylistMore;
                }
            }
        }
Esempio n. 5
0
        private void ListView_ItemClick(object sender, int Position)
        {
            if (Position == LocalPlaylists.Count + YoutubePlaylists.Count)
            {
                View        view   = LayoutInflater.Inflate(Resource.Layout.SaveAPlaylist, null);
                AlertDialog dialog = new AlertDialog.Builder(Activity, MainActivity.dialogTheme)
                                     .SetTitle(Resource.String.add_playlist_msg)
                                     .SetView(view)
                                     .SetNegativeButton(Resource.String.cancel, (s, eventArgs) => { })
                                     .SetPositiveButton(Resource.String.add, async(s, eventArgs) =>
                {
                    if (YoutubeExplode.YoutubeClient.TryParsePlaylistId(view.FindViewById <EditText>(Resource.Id.playlistURL).Text, out string playlistID))
                    {
                        PlaylistItem addPlaylist = await PlaylistManager.GetPlaylist(playlistID);
                        PlaylistManager.ForkPlaylist(addPlaylist);

                        if (YoutubePlaylists[YoutubePlaylists.Count - 1].Name == "EMPTY" || YoutubePlaylists[YoutubePlaylists.Count - 1].Name == "Error")
                        {
                            if (YoutubePlaylists[YoutubePlaylists.Count - 1].Name == "EMPTY")
                            {
                                YoutubePlaylists.Insert(YoutubePlaylists.Count - 2, addPlaylist);
                                YoutubePlaylists.RemoveAt(2);
                                adapter.NotifyItemChanged(LocalPlaylists.Count + YoutubePlaylists.Count - 2);
                            }
                            else
                            {
                                YoutubePlaylists.Insert(YoutubePlaylists.Count - 1, addPlaylist);
                                adapter.NotifyItemInserted(LocalPlaylists.Count + YoutubePlaylists.Count - 2);
                            }
                        }
                        else
                        {
                            YoutubePlaylists.Add(addPlaylist);
                            adapter.NotifyItemInserted(LocalPlaylists.Count + YoutubePlaylists.Count - 1);
                        }
                    }
                    else
                    {
                        Snackbar snackBar = Snackbar.Make(MainActivity.instance.FindViewById(Resource.Id.snackBar), MainActivity.instance.GetString(Resource.String.badplaylisturl), Snackbar.LengthLong);
                        snackBar.View.FindViewById <TextView>(Resource.Id.snackbar_text).SetTextColor(Color.White);
                        snackBar.Show();
                    }
                })
                                     .Show();
                return;
            }

            bool         local    = Position <= LocalPlaylists.Count;
            PlaylistItem playlist = local ?
                                    LocalPlaylists[Position] :
                                    YoutubePlaylists[Position - LocalPlaylists.Count];

            if (playlist.SyncState == SyncState.Error && local)
            {
                //Handle sync errors
            }

            instance = null;
            MainActivity.instance.contentRefresh.Refresh -= OnRefresh;
            MainActivity.instance.contentRefresh.Refresh -= OnRefresh;

            MainActivity.instance.SupportFragmentManager.BeginTransaction().Replace(Resource.Id.contentView, PlaylistTracks.NewInstance(playlist)).AddToBackStack("Playlist Track").Commit();
        }
Esempio n. 6
0
        private void ListView_ItemClick(object sender, int position)
        {
            switch (result[position].Kind)
            {
            case YtKind.Video:
                YoutubeManager.Play(result[position].song);
                break;

            case YtKind.Playlist:
                MainActivity.instance.menu.FindItem(Resource.Id.search).ActionView.Focusable = false;
                MainActivity.instance.menu.FindItem(Resource.Id.search).CollapseActionView();
                MainActivity.instance.menu.FindItem(Resource.Id.search).ActionView.Focusable = true;
                MainActivity.instance.FindViewById <TabLayout>(Resource.Id.tabs).Visibility  = ViewStates.Gone;
                MainActivity.instance.SupportFragmentManager.BeginTransaction().Replace(Resource.Id.contentView, PlaylistTracks.NewInstance(result[position].playlist)).AddToBackStack("Playlist Track").Commit();
                break;

            case YtKind.Channel:
                MainActivity.instance.menu.FindItem(Resource.Id.search).ActionView.Focusable = false;
                MainActivity.instance.menu.FindItem(Resource.Id.search).CollapseActionView();
                MainActivity.instance.menu.FindItem(Resource.Id.search).ActionView.Focusable = true;
                MainActivity.instance.FindViewById <TabLayout>(Resource.Id.tabs).Visibility  = ViewStates.Gone;
                MainActivity.instance.SupportFragmentManager.BeginTransaction().Replace(Resource.Id.contentView, ChannelDetails.NewInstance(result[position].channel)).AddToBackStack("Channel Details").Commit();
                break;

            default:
                break;
            }
        }