Closed killerrook closed 1 year ago
Hi there, I am a computing student from the Australian National University. Can I take on this issue? Thanks.
@ishitak0712 Absolutely, yes. Just submit a PR whenever you are free.
@ishitak0712 Could you give an idea of how you're thinking of doing this?
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?
I was thinking of a simple menu with radio buttons, which lets a user choose between full, partial, or both.
@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.
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.
10 seconds seems fine to me or even 5seconds is good enough to consider a video partially watched
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
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.
Currently this is the code that controls whether an item's "viewed" state is saved, and whether an item is considered as "finished".
isValid
returns false, then the progress is not saved to the database at all, in order to prevent saving progress about videos opened by accidentisFinished
controls three things:
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:
isFinished
is falseStreamStateEntity
attached to them in the database (that is, only items that were never opened, or that were opened just for few moments and isValid
returned false and therefore they were not saved to the database)@Stypox @ishitak0712 Is this ticket still being worked on or can I give it a try?
@Jared234 Go ahead.
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:
If this is fine, I will open a PR.
Short press on Hide Items icon could rather show checkboxes instead with options Upcoming
, Fully Watched
and Partially Watched
.
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?
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
.
Oh.. ok, then I agree that checkboxes make sense. Thanks! I will implement these changes and then open a PR.
What about a 3-state button that simply switches between these views?
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.
@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.
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