TeamNewPipe / NewPipe

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

Option to remove partially watched videos from the 'Whats new' feed. #9126

Closed killerrook closed 1 year ago

killerrook commented 2 years ago

Checklist

Feature description

Option to hide partially watched videos along with fully watched videos from the what's new feed of subscribed channels.

Why do you want this feature?

Sometimes you don't find some video worth watching or listening and you skip it in the current playing queue but it still remains in the what's new feed, which is somewhat annoying.

Additional information

No response

ishitak0712 commented 2 years ago

Hi there, I am a computing student from the Australian National University. Can I take on this issue? Thanks.

SameenAhnaf commented 2 years ago

@ishitak0712 Absolutely, yes. Just submit a PR whenever you are free.

opusforlife2 commented 2 years ago

@ishitak0712 Could you give an idea of how you're thinking of doing this?

SameenAhnaf commented 2 years ago

Maybe, we could add an option Minimum Duration to Hide Watched Videos in Feed in Settings. The unit should be in seconds. This value cannot be less than 1.

Type * to hide only fully watched videos sub-note could be added too. What do you guys think?

opusforlife2 commented 2 years ago

I was thinking of a simple menu with radio buttons, which lets a user choose between full, partial, or both.

SameenAhnaf commented 2 years ago

@opusforlife2 Videos should not be considered partially watched if only watched for 2 or 3 seconds. This value may vary from person to person as senior citizens may take a longer time to understand if a video is clicked mistakenly.

opusforlife2 commented 2 years ago

The duration of partially watched videos is a bit tangential to this particular issue, though. To discuss letting users set custom durations for it, you can open a new issue.

killerrook commented 2 years ago

10 seconds seems fine to me or even 5seconds is good enough to consider a video partially watched

killerrook commented 2 years ago

Maybe consider adding an option to set the duration to avoid conflicts and frustration between user base. I believe the default should be set to 5 seconds. That would solve the issue entirely

ishitak0712 commented 2 years ago

Yes that is what I was thinking too. Defining a threshold value over which the video is considered watched. 5 seconds seems good to me.

Stypox commented 2 years ago

Currently this is the code that controls whether an item's "viewed" state is saved, and whether an item is considered as "finished".

Note that the isFinished implementation is not only in the StreamStateEntity file mentioned above, but also in an SQL query in FeedDAO.

So any code change related to isFinished should take into account all three use cases, and should behave the same in the three places. Providing a way for the user to choose thresholds for all three behaviors is a bad idea, both because there would be three times as many bugs, and also because this is so nitpicking that really few users would use it.

So what I'm proposing is to make the "hide watched" button a tristate button with this behavior:

Jared234 commented 1 year ago

@Stypox @ishitak0712 Is this ticket still being worked on or can I give it a try?

opusforlife2 commented 1 year ago

@Jared234 Go ahead.

Jared234 commented 1 year ago

Ok, so I have almost completed implementing this feature. I still have a couple of questions regarding the layout/design of this option. I implemented three different visibility options: Show All, Hide Fully Watched, Hide Watched. I thought that a simple menu might be enough for this feature. Or do you want me to open an extra dialog for it? This is how it looks like:

Screenshot_20230202-160831 Screenshot_20230202-160841 Screenshot_20230202-160854

If this is fine, I will open a PR.

SameenAhnaf commented 1 year ago

Short press on Hide Items icon could rather show checkboxes instead with options Upcoming, Fully Watched and Partially Watched.

Jared234 commented 1 year ago

I don't think that checkboxes are necessary. Correct me if I am wrong, but I don't think there a use case where you e.g. only want to hide the partially watched and not the fully watched streams. And what do you mean with the Upcoming option?

SameenAhnaf commented 1 year ago

There are two toggles: Hide Watched Items & Hide Future Items. There's no need for two separate icons.

Rather, merge them into a single one icon Hide Items. Short press on this icon could show three checkboxes in a drop-down menu. They are: Upcoming, Fully Watched and Partially Watched.

Jared234 commented 1 year ago

Oh.. ok, then I agree that checkboxes make sense. Thanks! I will implement these changes and then open a PR.

opusforlife2 commented 1 year ago

What about a 3-state button that simply switches between these views?

Jared234 commented 1 year ago

Hmm ... I prefer the solution approach of @SameenAhnaf. If we were to use a button with 3 states, would it even be possible to hide, for example, fully viewed and upcoming videos at the same time? I have also completed the implementation of this solution and will now open the PR, so you can have a look at it. But of course we can discuss this further.

SameenAhnaf commented 1 year ago

@opusforlife2 I'd have suggested so if hiding only watched videos was useful. But there's an already an issue to hide Show Watched Items icon to avoid a bloated UI. See: https://github.com/TeamNewPipe/NewPipe/issues/7090

I'm pretty sure that there will be issues for hiding downloaded and saved to playlist items. These new icons will make the UI even more crowded.