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; } }
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); }
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); }
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; } } }
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(); }
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; } }