earlier only overall amount of videos was shown. Now overall duration is shown there too - as formatted by existing Localization.concatenateStrings() and Localization.getDurationString().
show all videos OverallDuration in local Playlist too
refactor to make implementation in LocalPlaylistFragment and PlaylistFragment more obviously similar
unfortunately could not refactor upto BaseLocalListFragment
revert the changes for online Playlists
because they are paginated and may be infinite i.e. correct count may come only from the service->extractor chain which unfortunately does not give overall duration yet
next try to improve user-experience with online Playlist
just show that duration is longer (">") than the calculated value in case there is more page(s)
even more improve user-experience for online Playlist
by adding the duration of next items as soon as they are made visible
make showing of playlists duration configurable, disabled by default
adjusted duration to be handled as long because it comes as long from extractor
no idea why I handled it as int earlier
Revert "make showing of playlists duration configurable, disabled by default", refactor
This reverts commit bc1ba17a20d3dd1763210f81d7ca67c5f1734a3d.
Fix rebase
Apply review
Rename video -> stream
Remove unused settings keys
NewPipe is contacting its servers without asking for the users' consent. This is categorized as "tracking" by F-Droid (see https://github.com/TeamNewPipe/NewPipe/discussions/10785).
This commit disables checking for udpates by default and adds a dialog asking for the user's consent to automatically check for updates if the app version is eligible for them. After upgrading to a version containing this commit the user is asked directly on the first app start. On fresh installs however, showing it on the first app start contributes to a bad onboarding an welcoming experience. Therefore, the dialog is shown at the second app start.
Co-authored-by: Stypox <stypox@pm.me>
`streamInfo` and `channelInfo` have to be initialized, since the only
way to construct the class it to pass them. So we can remove the null
check boilerplate and make some of the accessors `NonNull`.
Nowhere else does this (write a setting if it’s not set).
It took me a while to see that this code does not do what it intends,
because `defaultFormat` is already the default value in the first
`context.getString`, so calling `getMediaFormatFromKey` again is the
exact same call (“do you know the definition of insanity…”) and will
return `null` again …
So let’s drop the setting write and just rely on the default values.
This change is in line with a recent change in how the play/pause button behaves in the player ui: if the buffering indicator is shown, it's still possible to toggle play/pause, to allow e.g. pausing videos before they even start.
This change was needed because on Android 13+ notification actions can't be null, and thus the buffering hourglass action wasn't shown.