TeamNewPipe / NewPipe

A libre lightweight streaming front-end for Android.
https://newpipe.net
GNU General Public License v3.0
31.77k stars 3.09k forks source link

Quick "remove from playlist" #11560

Open GfEW opened 2 months ago

GfEW commented 2 months ago

Checklist

(fullfilled) - [X] I made sure that there are *no existing issues* - [open](https://github.com/TeamNewPipe/NewPipe/issues) or [closed](https://github.com/TeamNewPipe/NewPipe/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to. - [X] I have read the [FAQ](https://newpipe.net/FAQ/) and my problem isn't listed. - [X] I'm aware that this is a request for NewPipe itself and that requests for adding a new service need to be made at [NewPipeExtractor](https://github.com/TeamNewPipe/NewPipeExtractor/issues). - [X] I have taken the time to fill in all the required details. I understand that the feature request will be dismissed otherwise. - [X] This issue contains only one feature request. - [X] I have read and understood the [contribution guidelines](https://github.com/TeamNewPipe/NewPipe/blob/dev/.github/CONTRIBUTING.md).

Feature description

Enhance the "add to playlist" dialog to address the problem described in the "Why do you want this feature" section below.

I'm suggesting three solutions in the order of increasing complexity and power, but either one will do.

Throughout these suggestions, the term current medium denotes the audio or video the "add to playlist" dialog is referring to.

(a) Long-tap playlist to remove medium

Allow to remove the current medium from a playlist by long-tapping that playlist. The user should be asked for confirmation or be briefly informed about the removal.

Notes on (a) * If the playlist does't contain the current medium (i. e. it's not greyed-out), there's nothing to do except informing the user about it. * It remains to be discussed whether in the case of multiple occurrences in the playlist, long-tapping it should remove _all_ occurrences or just the _last_ (i. e. most recently added) occurrence of the medium.

(b) Toggle add/remove

Provide an option "remove from playlist if added twice" that alters the "add to playlist" menu so tapping a playlist toggles between "added" and "removed".

Notes on (b) * Activating this option implies you can't add a medium multiple times to the same playlist anymore (which I'm sure many users would be perfectly fine with). * Re-adding doesn't have to strictly undo removing (otherwise, you'd have to store the order of media beyond their removal) but can add the previously removed medium to the end of the playlist as usual. (On a side note, some users might enjoy "remove, then re-add" as a neat shortcut to quickly moving an already included medium to the end of the playlist.)

(c) Alternate dialog mode: "Remove from playlist"

In the header of the "add to playlist" dialog, provide a new button (next to "new playlist") that toggles add /remove modes.

The add mode works like established. The remove mode works as follows:

  1. all playlists that don't contain the current medium are temporarily hidden, leaving only greyed-out playlists visible
    Note on font styleIn remove mode, contrast should be more pronounced than pale-grey-on-white (e. g. red on white) while still clearly distiguishable from black-on-white add mode, to raise awareness this is a remove list.
  2. the user is verbally or symbolically (e. g. via red X symbox next to them) advised to tap any of these playlists in order to remove the medium from it
  3. tapping one of those playlists (or X symbols) then indeed removes the medium from that playlist (after confirmation)
  4. the user is briefly informed about the removal and the filtered list updated.
Notes on (c) * As a bonus of such a remove mode, the filtered view also provides a quick overview of all playlists that contain the current medium. This addresses a rather frequent need that otherwise requires scrolling through the entire list of playlists and spotting the greyed-out ones.

With all three solutions, the long-tap menu item "add to playlist" in media listings, as well as the long-tap blurb to the "add to playlist" button in audio/video details, should be reworded to take account of both possibilities, adding and removing. Maybe just call it "select playlists"?

Why do you want this feature?

Playlisting a medium (i. e. deciding which (local) playlists it belongs) is often done best while actually hearing/watching it. The "add to playlist / remove from playlist" workflow should be consistent, easy and non-disruptive throughout app views, whether you're in details view or in the long-tap context menu of a medium in any listing (queue, search results, other playlists, channels, ...), and regardless of anything playing or paused in the popup/background player.

Adding is enjoyably easy: When in the medium's details view (main player), tap the "add to playlist" button, then the playlist. When in any media listing (queue, search results, ...), long-tap the medium to see the context menu, there tap "add to playlist", then the playlist.

Removing is much more convoluted - if you want to remove the current medium from a playlist (e. g. because the content turns out to be different, or you inadvertently tapped a wrong playlist when adding), NewPipe requires you to

  1. memorize the name of the medium, as well as the name of the wrong playlist
  2. navigate to the playlists tab in NewPipe's home screen, thereby possibly stopping video playback or having to switch to popup or background play,
  3. find and open the memorized playlist
  4. find and long-tap the memorized medium, then choose "delete"
  5. finally, continue where you left at 1. - good luck trying!

The actual procedure to restore the prior state heavily depends on that prior state: If playback stopped and there was no queue, you may reopen the medium from the history tab. If there was a queue and you switched to the popup or background player, you may try to switch back to main player (hoping it won't flush the queue). If that doesn't work or you got lost somehow, you may have to recreate the queue alltogether.

In any case, both adding and removing the current medium should be easily available right where you are, like in a simple combined "select playlists" dialog.

opusforlife2 commented 2 months ago

Allow to remove the current medium from a playlist by long-tapping that playlist

Even that step isn't necessary. Currently, you can tap on a greyed-out playlist and intentionally add a duplicate. There's absolutely no reason to do this.

So simply tapping on a greyed out playlist should offer to remove that video from it.

GfEW commented 2 months ago

There's absolutely no reason to do this.

Although I personally agree, there may be users who also want to be able to add a medium twice or more to the same playlist.

So simply tapping on a greyed out playlist should offer to remove that video from it.

That's basically solution (b) "Toggle add/remove" without even making it optional.

I'm suggesting a proper option in settings (--> Video and Audio --> Behavior) that allows you to choose what tapping on a greyed-out playlist will do:

Alternatively without such an option, if short taps on greyed-out playlists default to remove the medium, I'd suggest to make add duplicate available via this long-tap menu:

opusforlife2 commented 1 month ago

Too many ~cooks~ options spoil the broth. A behaviour change here makes sense, but an additional option likely won't be added for something this small.