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 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
Currently translated at 100.0% (64 of 64 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 6.2% (4 of 64 strings)
Translated using Weblate (Malay)
Currently translated at 60.0% (368 of 613 strings)
Translated using Weblate (Estonian)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Finnish)
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 (Arabic)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 63.9% (392 of 613 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Dutch)
Currently translated at 64.0% (41 of 64 strings)
Translated using Weblate (Hebrew)
Currently translated at 53.1% (34 of 64 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Polish)
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 (Dutch)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (German)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Polish)
Currently translated at 54.6% (35 of 64 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (64 of 64 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 95.2% (584 of 613 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Slovak)
Currently translated at 98.0% (601 of 613 strings)
Translated using Weblate (Hungarian)
Currently translated at 99.5% (610 of 613 strings)
Translated using Weblate (English)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (63 of 63 strings)
Translated using Weblate (Dutch)
Currently translated at 46.0% (29 of 63 strings)
Translated using Weblate (Hebrew)
Currently translated at 52.3% (33 of 63 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (63 of 63 strings)
Translated using Weblate (Interlingua)
Currently translated at 35.0% (215 of 613 strings)
Translated using Weblate (Danish)
Currently translated at 49.1% (301 of 613 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 94.2% (578 of 613 strings)
Translated using Weblate (Estonian)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Finnish)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Arabic)
Currently translated at 99.6% (611 of 613 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Dutch)
Currently translated at 28.5% (18 of 63 strings)
Translated using Weblate (Dutch)
Currently translated at 28.5% (18 of 63 strings)
Translated using Weblate (Swedish)
Currently translated at 48.3% (30 of 62 strings)
Translated using Weblate (French)
Currently translated at 66.1% (41 of 62 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (62 of 62 strings)
Translated using Weblate (Estonian)
Currently translated at 99.8% (612 of 613 strings)
Translated using Weblate (Catalan)
Currently translated at 99.1% (608 of 613 strings)
Translated using Weblate (Tamil)
Currently translated at 55.4% (340 of 613 strings)
Translated using Weblate (Finnish)
Currently translated at 99.0% (607 of 613 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Armenian)
Currently translated at 19.0% (117 of 613 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Persian)
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 (Ukrainian)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Indonesian)
Currently translated at 99.8% (612 of 613 strings)
Translated using Weblate (Japanese)
Currently translated at 99.8% (612 of 613 strings)
Translated using Weblate (French)
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 (Sardinian)
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 (Portuguese (Portugal))
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Kurdish (Central))
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Catalan)
Currently translated at 99.3% (609 of 613 strings)
Translated using Weblate (Lithuanian)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Hebrew)
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 (Ukrainian)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (French)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (German)
Currently translated at 100.0% (613 of 613 strings)
Added translation using Weblate (German (Low))
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Polish)
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 (Russian)
Currently translated at 100.0% (613 of 613 strings)
Translated using Weblate (Malay)
Currently translated at 4.8% (3 of 62 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 4.8% (3 of 62 strings)
Translated using Weblate (Galician)
Currently translated at 94.9% (581 of 612 strings)
Translated using Weblate (Malay)
Currently translated at 60.1% (368 of 612 strings)
Translated using Weblate (Malay)
Currently translated at 60.1% (368 of 612 strings)
Translated using Weblate (Tamil)
Currently translated at 49.8% (305 of 612 strings)
Translated using Weblate (Finnish)
Currently translated at 97.2% (595 of 612 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (612 of 612 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 57.1% (350 of 612 strings)
Translated using Weblate (French)
Currently translated at 99.6% (610 of 612 strings)
Translated using Weblate (English (United Kingdom))
Currently translated at 7.6% (47 of 612 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (62 of 62 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (62 of 62 strings)
Translated using Weblate (Tamil)
Currently translated at 44.6% (273 of 612 strings)
Translated using Weblate (Arabic)
Currently translated at 99.8% (611 of 612 strings)
Co-authored-by: A <ville.mourujarvi@hostedweblate.mail.kapsi.fi>
Co-authored-by: Agnieszka C <aga_04@o2.pl>
Co-authored-by: Ajeje Brazorf <lmelonimamo@yahoo.it>
Co-authored-by: Albert Vila <vilacalvo.albert@gmail.com>
Co-authored-by: Alex25820 <alexs25820@gmail.com>
Co-authored-by: Alfonso Scarpino <alfonso.scarpino@gmail.com>
Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Co-authored-by: Davit Mayilyan <davit.mayilyan@protonmail.ch>
Co-authored-by: Denys Nykula <nykula@ukr.net>
Co-authored-by: Eric <alchemillatruth@purelymail.com>
Co-authored-by: GnuPGを使うべきだ <dieeeazpnnqbpddh@cock.email>
Co-authored-by: GobinathAL <gobinathal8@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: JY3 <GeeyunJY3@gmail.com>
Co-authored-by: Jeff Huang <s8321414@gmail.com>
Co-authored-by: John Smith <a@shatin.ml>
Co-authored-by: Karl Tammik <karltammik@protonmail.com>
Co-authored-by: Lim Jia Ming <jiaminglimjm@protonmail.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Marian Hanzel <marulinko@gmail.com>
Co-authored-by: Mark <theMurk@protonmail.com>
Co-authored-by: Mohammed Anas <6daf084a-8eaf-40fb-86c7-8500077c3b69@anonaddy.me>
Co-authored-by: Mohammed Anas <triallax@tutanota.com>
Co-authored-by: MohammedSR Vevo <mohammednajmidin@gmail.com>
Co-authored-by: My <quentin.lalle@gmail.com>
Co-authored-by: Ray <ray.cfu@protonmail.com>
Co-authored-by: Rex_sa <rex.sa@pm.me>
Co-authored-by: Ricardo <contatorms7@tutamail.com>
Co-authored-by: S3aBreeze <paperwork@evilcorp.ltd>
Co-authored-by: SamTada <SamLbttyw@protonmail.com>
Co-authored-by: Software In Interlingua <softinterlingua@gmail.com>
Co-authored-by: THANOS SIOURDAKIS <siourdakisthanos@gmail.com>
Co-authored-by: Thomas Frarke <goetzknecht23@gmail.com>
Co-authored-by: TobiGr <tobigr@mail.de>
Co-authored-by: Vasilis K <skyhirules@gmail.com>
Co-authored-by: VfBFan <drop0815@posteo.de>
Co-authored-by: Ville Rantanen <v.r@iki.fi>
Co-authored-by: WB <web0nst@tuta.io>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: chr56 <chr0056@gmail.com>
Co-authored-by: gymka <gymka@archlinux.lt>
Co-authored-by: jojo <welwhazosky@gmail.com>
Co-authored-by: mm4c <oldblue@vivaldi.net>
Co-authored-by: nzgha <nzgha.hw@runbox.com>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: translator <kvb@tuta.io>
Co-authored-by: xainsworth <202120614015@ogr.balikesir.edu.tr>
Co-authored-by: Ács Zoltán <acszoltan111@gmail.com>
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/ms/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/nl/
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_Hans/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant_HK/
Translation: NewPipe/Metadata
The workaround set before was not applied when switching to main player with content thumbnail from popup or background player. This commit fixes this by applying the workaround when switching to main player with content thumbnail from popup or background player.
ExoPlayer's default behavior is to use a multiplication of target segment by a coefficient (3,5).
This coefficient (and this behavior) cannot be customized without using a custom HlsPlaylistTracker right now.
New behavior is to wait 15 seconds before throwing a PlaylistStuckException.
This should improve a lot HLS live streaming on (very) low-latency livestreams with buffering issues, especially on YouTube with their HLS manifests.
Instead of trying to reload the play queue manager and then throwing an error, BehindLiveWindowExceptions now make the app seek to the default playback position, like recommended by ExoPlayer.
The buffering state is shown in this case.
Error handling of other exceptions is not changed.
This checks if the uploaderUrl is in the database, if not it gets the
uploaderUrl and puts it in the database. This is similar to the fetching
of uploaderUrl when it doesn't exist done in #6919.
Also use createNotification when error occurs in getStreamInfo.
The issue was caused by an ExoPlayer change, which when setting a media source, resets the current playback position and the current window index by default.
Also set player recovery in more places to fix playback position not propely set in some cases after a player type switch.