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
- Currently, only a list of videos separated by newline are added in
the share content.
- This makes it difficult to identify a specific video in a list of
Urls.
- Used string resources for the sharing content formats.
- Added a confirmation dialog for users to choose between sharing
playlist formats.
- Added Playlist name as the header and corresponding video name for
each video url in following format.
Playlist
- Music1: https://media-url1
- Music2: https://media-url2
- Music3: https://media-url3
Co-authored-by: TobiGr <tobigr@users.noreply.github.com>
Add the separate utility class PlayButtonHelper to handle the initialization of the listeners.
The ClickListeners on playlist controls had different behaviours. This commit fixes that.
The commit also refactors the way how the app determines whether it is started for the first time. The previous version was not clean and recent in this PR caused it to fail.
This commit refactors the way `InfoItemDialog`s are generated. This is necessary because the old way used the `StreamDialogEntry` enum for most of the dialogs' content generation process. This required static variables and methods to store the entries which are used for the dialog to be build (See e.g.`enabledEntries` and methods like `generateCommands()`). In other words, `StreamDialogEntry` wasn't an enumeration anymore.
To address this issue, a `Builder` is introduced for the `InfoItemDialog`'s genration. The builder also comes with some default entries and and a specific order. Both can be used, but are not enforced.
A second problem that introduced a structure which was atypical for an enumeration was the usage of non-final attributes within `StreamDialogEntry` instances. These were needed, because the default actions needed to overriden in some cases.
To address this problem, the `StreamDialogEntry` enumeration was renamed to `StreamDialogDefaultEntry` and a new `StreamDialogEntry` class is used instead.