This also allows saving a remote playlist locally.
- Add an "Add to playlist" button to the queue menu in the Player.
- Move the appendAllToPlaylist functionality from PlayQueueActivity to
Player.
Fixes: #8004
Doing this programmatically is just a no-go when themes are being set
in some other places (the toolbar is using a custom theme, in this
case), so, instead of hunting down the proper theme, just let the
system do its work.
- Add adjustment_step_key to settings_keys.xml to be used when
saving/loading the step size.
- Remove the global stepSize variable and the code that saves it to
outState/loads it from savedInstanceState because it's now saved to
Shared Preferences.
- Move initially setting step size to setupStepSizeSelector to be
consistent with the other view setup methods, using the value loaded
from Shared Preferences.
- Save the step size to Shared Preferences inside setStepSize.
Fixes: #7031
Currently translated at 49.2% (32 of 65 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 58.4% (38 of 65 strings)
Translated using Weblate (Dutch (Belgium))
Currently translated at 23.0% (15 of 65 strings)
Translated using Weblate (French)
Currently translated at 66.1% (43 of 65 strings)
Translated using Weblate (Azerbaijani)
Currently translated at 7.6% (5 of 65 strings)
Translated using Weblate (Italian)
Currently translated at 38.4% (25 of 65 strings)
Translated using Weblate (Polish)
Currently translated at 55.3% (36 of 65 strings)
Translated using Weblate (Hebrew)
Currently translated at 53.8% (35 of 65 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (65 of 65 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 7.6% (5 of 65 strings)
Translated using Weblate (German)
Currently translated at 66.1% (43 of 65 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (English)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (English)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (English)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (French)
Currently translated at 65.6% (42 of 64 strings)
Translated using Weblate (Dutch)
Currently translated at 71.8% (46 of 64 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 80.4% (493 of 613 strings)
Translated using Weblate (French)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (613 of 613 strings)
Co-authored-by: Agnieszka C <aga_04@o2.pl>
Co-authored-by: Alex25820 <alexs25820@gmail.com>
Co-authored-by: Benedikt Freisen <b.freisen@gmx.net>
Co-authored-by: Corc <nizamismidov4@gmail.com>
Co-authored-by: Guillem <guillemglez@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Co-authored-by: Issa1553 <fairfull.playing@gmail.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Mohammed Anas <triallax@tutanota.com>
Co-authored-by: Oğuz Ersen <oguzersen@protonmail.com>
Co-authored-by: Ray <ray.cfu@protonmail.com>
Co-authored-by: Retrial <giwrgosmant@gmail.com>
Co-authored-by: Stypox <stypox@pm.me>
Co-authored-by: TiA4f8R <avdivers84@gmail.com>
Co-authored-by: Vitor Henrique <vitorhcl00@gmail.com>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: mm4c <oldblue@vivaldi.net>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: zmni <zmni@outlook.com>
Co-authored-by: Éfrit <efrit@posteo.net>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/az/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/he/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/it/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/nl/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/nl_BE/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sv/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant_HK/
Translation: NewPipe/Metadata
Currently translated at 49.2% (32 of 65 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 58.4% (38 of 65 strings)
Translated using Weblate (Dutch (Belgium))
Currently translated at 23.0% (15 of 65 strings)
Translated using Weblate (French)
Currently translated at 66.1% (43 of 65 strings)
Translated using Weblate (Azerbaijani)
Currently translated at 7.6% (5 of 65 strings)
Translated using Weblate (Italian)
Currently translated at 38.4% (25 of 65 strings)
Translated using Weblate (Polish)
Currently translated at 55.3% (36 of 65 strings)
Translated using Weblate (Hebrew)
Currently translated at 53.8% (35 of 65 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (65 of 65 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 7.6% (5 of 65 strings)
Translated using Weblate (German)
Currently translated at 66.1% (43 of 65 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (English)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (English)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (English)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (French)
Currently translated at 65.6% (42 of 64 strings)
Translated using Weblate (Dutch)
Currently translated at 71.8% (46 of 64 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 80.4% (493 of 613 strings)
Translated using Weblate (French)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (613 of 613 strings)
Co-authored-by: Agnieszka C <aga_04@o2.pl>
Co-authored-by: Alex25820 <alexs25820@gmail.com>
Co-authored-by: Benedikt Freisen <b.freisen@gmx.net>
Co-authored-by: Corc <nizamismidov4@gmail.com>
Co-authored-by: Guillem <guillemglez@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Co-authored-by: Issa1553 <fairfull.playing@gmail.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Mohammed Anas <triallax@tutanota.com>
Co-authored-by: Oğuz Ersen <oguzersen@protonmail.com>
Co-authored-by: Ray <ray.cfu@protonmail.com>
Co-authored-by: Retrial <giwrgosmant@gmail.com>
Co-authored-by: Stypox <stypox@pm.me>
Co-authored-by: TiA4f8R <avdivers84@gmail.com>
Co-authored-by: Vitor Henrique <vitorhcl00@gmail.com>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: mm4c <oldblue@vivaldi.net>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: zmni <zmni@outlook.com>
Co-authored-by: Éfrit <efrit@posteo.net>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/az/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/he/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/it/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/nl/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/nl_BE/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sv/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant_HK/
Translation: NewPipe/Metadata
Removed some non-translatable strings and just hardcoded them in the code, like it's being done for other string separators. This also deduplicates some code by using Localization.
Used some Kotlin feature to reduce code.
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.
ExoPlayer right now fetches HLS video tracks even if you disable them (with setRendererDisabled or setSelectionOverride).
See issue 9282 of ExoPlayer's issue tracker for more information.
* Replaced by ``wasLastResolvedVideoAndAudioSeparated``
* Uses an ``Optional`` instead (we can't determine if the video and audio streams are separated when we did not fetch it)
Unable to compile!
* Cleaned up ``getMostCompactAudioIndex`` and ``getHighestQualityAudioIndex`` into a new method ``getAudioIndexByHighestRank``
* Removed unreadable code and use Java Streams API
* Tests work as expected
Prefering video-only streams to video streams for our player will allow us to make seamless transitions on 360 and 720p qualities on YouTube.
External players and the downloader are not affected by this change.
This is only available when playing video-only streams (and when there is no audio stream and only video streams with audio) and audio-only streams.
For more details about which conditions are required to get this transition, look at the changes in the useVideoSource(boolean) method of the Player class.
It ensures that queues are not the same. Without this check when you have multiple videos in the backstack and navigating back via Back button you'll get duplicated videos
This happened in fullscreen player: while play-pause, brightness, volume, ... buttons were correctly centered in the app UI, the fast seek overlay was centered in the system UI, causing a mismatch between the two that looked ugly