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.
* Consolidated main-setttings into a single file
* Debug settings are only enabled in the DEBUG build
* Moved LeakCanary (debug) specific stuff into a small class that's only shipped with the debug build
* Other minor fixes
Currently translated at 58.4% (374 of 640 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Sardinian)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 94.8% (607 of 640 strings)
Translated using Weblate (Swedish)
Currently translated at 99.6% (638 of 640 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Basque)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Japanese)
Currently translated at 99.5% (637 of 640 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (German)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (German)
Currently translated at 100.0% (640 of 640 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (62 of 62 strings)
Translated using Weblate (Swedish)
Currently translated at 25.8% (16 of 62 strings)
Translated using Weblate (Portuguese)
Currently translated at 67.7% (42 of 62 strings)
Translated using Weblate (Ukrainian)
Currently translated at 82.2% (51 of 62 strings)
Translated using Weblate (Telugu)
Currently translated at 51.4% (328 of 638 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Czech)
Currently translated at 97.1% (620 of 638 strings)
Translated using Weblate (Japanese)
Currently translated at 99.2% (633 of 638 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (French)
Currently translated at 99.5% (635 of 638 strings)
Translated using Weblate (French)
Currently translated at 99.5% (635 of 638 strings)
Translated using Weblate (Santali)
Currently translated at 13.9% (89 of 638 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (62 of 62 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 59.6% (37 of 62 strings)
Translated using Weblate (Portuguese (Portugal))
Currently translated at 66.1% (41 of 62 strings)
Translated using Weblate (Persian)
Currently translated at 62.9% (39 of 62 strings)
Translated using Weblate (Spanish)
Currently translated at 58.0% (36 of 62 strings)
Translated using Weblate (Dutch)
Currently translated at 12.9% (8 of 62 strings)
Translated using Weblate (Hebrew)
Currently translated at 51.6% (32 of 62 strings)
Translated using Weblate (Portuguese)
Currently translated at 66.1% (41 of 62 strings)
Translated using Weblate (Ukrainian)
Currently translated at 80.6% (50 of 62 strings)
Translated using Weblate (Dutch)
Currently translated at 98.4% (628 of 638 strings)
Translated using Weblate (Hindi)
Currently translated at 4.9% (3 of 61 strings)
Translated using Weblate (Hungarian)
Currently translated at 6.5% (4 of 61 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Russian)
Currently translated at 99.8% (637 of 638 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (French)
Currently translated at 99.3% (634 of 638 strings)
Translated using Weblate (Hungarian)
Currently translated at 6.5% (4 of 61 strings)
Translated using Weblate (Hungarian)
Currently translated at 6.5% (4 of 61 strings)
Translated using Weblate (Hungarian)
Currently translated at 4.9% (3 of 61 strings)
Translated using Weblate (Telugu)
Currently translated at 51.0% (326 of 638 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Swedish)
Currently translated at 24.5% (15 of 61 strings)
Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Sardinian)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Croatian)
Currently translated at 98.7% (630 of 638 strings)
Translated using Weblate (Vietnamese)
Currently translated at 99.8% (637 of 638 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Hebrew)
Currently translated at 99.0% (632 of 638 strings)
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Chinese (Traditional, Hong Kong))
Currently translated at 58.4% (373 of 638 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (638 of 638 strings)
Added translation using Weblate (English (Middle))
Translated using Weblate (Dutch)
Currently translated at 11.4% (7 of 61 strings)
Translated using Weblate (Telugu)
Currently translated at 50.6% (323 of 638 strings)
Translated using Weblate (Hebrew)
Currently translated at 97.9% (625 of 638 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (Greek)
Currently translated at 99.8% (637 of 638 strings)
Translated using Weblate (Japanese)
Currently translated at 98.5% (629 of 638 strings)
Translated using Weblate (Russian)
Currently translated at 98.1% (626 of 638 strings)
Translated using Weblate (French)
Currently translated at 98.5% (629 of 638 strings)
Translated using Weblate (Spanish)
Currently translated at 99.0% (632 of 638 strings)
Translated using Weblate (German)
Currently translated at 100.0% (638 of 638 strings)
Translated using Weblate (English)
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (French)
Currently translated at 99.6% (629 of 631 strings)
Translated using Weblate (Telugu)
Currently translated at 43.2% (273 of 631 strings)
Translated using Weblate (Japanese)
Currently translated at 99.8% (630 of 631 strings)
Translated using Weblate (French)
Currently translated at 99.6% (629 of 631 strings)
Co-authored-by: Abhishek Kumar <abhi7737-22@yahoo.com>
Co-authored-by: Agnieszka C <aga_04@o2.pl>
Co-authored-by: AioiLight <info@aioilight.space>
Co-authored-by: Ajeje Brazorf <lmelonimamo@yahoo.it>
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: Andreas P <andreas.polnas93@hotmail.com>
Co-authored-by: Andrey F <firsan777@mail.ru>
Co-authored-by: Balázs Meskó <meskobalazs@mailbox.org>
Co-authored-by: Boros Zsombor <zsombor2626@gmail.com>
Co-authored-by: Calcitem <calcitem@outlook.com>
Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Co-authored-by: Emin Tufan Çetin <etcetin@gmail.com>
Co-authored-by: Florian <flo.site@zaclys.net>
Co-authored-by: GnuPGを使うべきだ <dieeeazpnnqbpddh@cock.email>
Co-authored-by: Gontzal Manuel Pujana Onaindia <thadahdenyse@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: Linerly <linerly@protonmail.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: Name Protected <notemailprotected@protonmail.com>
Co-authored-by: Prasanta-Hembram <Prasantahembram720@gmail.com>
Co-authored-by: Ray <ray.cfu@protonmail.com>
Co-authored-by: Retrial <giwrgosmant@gmail.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: TiA4f8R <avdivers84@gmail.com>
Co-authored-by: Vasilis K <skyhirules@gmail.com>
Co-authored-by: VfBFan <drop0815@posteo.de>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: Yuki Monkey <ymonkey32@gmail.com>
Co-authored-by: bomzhellino <adm.bomzh@gmail.com>
Co-authored-by: bruh <quangtrung02hn16@gmail.com>
Co-authored-by: chr56 <chr0056@gmail.com>
Co-authored-by: evfjunior <evfjunior@protonmail.com>
Co-authored-by: mm4c <oldblue@vivaldi.net>
Co-authored-by: nautilusx <translate@disroot.org>
Co-authored-by: ndrnry <ondernuray@gmail.com>
Co-authored-by: nzgha <nzgha@runbox.com>
Co-authored-by: nzgha <nzghafoss.ldxwe@slmail.me>
Co-authored-by: pjammo <adrianoghr@hotmail.it>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: subba raidu <raidu4u@gmail.com>
Co-authored-by: translator <kvb@tuta.io>
Co-authored-by: wmd arg <wmdarg3@gmail.com>
Co-authored-by: zmni <zmni@outlook.com>
Co-authored-by: 刘韬 <lyuutau@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/es/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fa/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/he/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hi/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hu/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/nl/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt_PT/
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/
Translation: NewPipe/Metadata
* When rewinding: Check if <0,5s
* When fast-forwarding: Check if player has completed or the current playback has ended
This allows rewinding on the endscreen
* Deduplicated and simplified a lot of code
* Fixed ``invalidSeekConditions`` so that it's possible to seek while the player is loading (like currently the case)
How fast a tests is executed on a shared CI pipeline is not predictable as the build might be throttled because other builds are running.
Therefore adding extremely short timeouts inside the tests - where they can't be changed - is a bad idea.
Removed them for now.
* Replace JUnit asserts with AssertJ in HistoryRecordManagerTest
They provide a wider range of assertions, which allow for more detailed error messages.
Also convert SearchHistoryEntry to kotlin data class for better error messages, since toString() is implemented.
Co-authored-by: Mohammed Anas <triallax@tutanota.com>
Add annotations to methods and parameters.
Replace Jetbrains' @NotNull with Androidx' @NonNull annotatiation.
Make class variables static if possible.
Use constants for some Strings.
Simplify if conditions.
Currently translated at 99.5% (628 of 631 strings)
Translated using Weblate (Hungarian)
Currently translated at 3.2% (2 of 61 strings)
Translated using Weblate (Punjabi)
Currently translated at 4.9% (3 of 61 strings)
Translated using Weblate (Telugu)
Currently translated at 6.5% (4 of 61 strings)
Translated using Weblate (German)
Currently translated at 50.8% (31 of 61 strings)
Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (Punjabi)
Currently translated at 91.4% (577 of 631 strings)
Translated using Weblate (Telugu)
Currently translated at 38.1% (241 of 631 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (Japanese)
Currently translated at 99.2% (626 of 631 strings)
Translated using Weblate (Russian)
Currently translated at 99.8% (630 of 631 strings)
Translated using Weblate (Serbian)
Currently translated at 96.5% (609 of 631 strings)
Translated using Weblate (German)
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (Tamil)
Currently translated at 1.6% (1 of 61 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (61 of 61 strings)
Translated using Weblate (Polish)
Currently translated at 55.7% (34 of 61 strings)
Translated using Weblate (Hebrew)
Currently translated at 50.8% (31 of 61 strings)
Translated using Weblate (Ukrainian)
Currently translated at 80.3% (49 of 61 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (Japanese)
Currently translated at 98.8% (624 of 631 strings)
Translated using Weblate (Dutch)
Currently translated at 99.8% (630 of 631 strings)
Translated using Weblate (French)
Currently translated at 99.0% (625 of 631 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (German)
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (English)
Currently translated at 100.0% (631 of 631 strings)
Translated using Weblate (English)
Currently translated at 100.0% (631 of 631 strings)
Co-authored-by: Agnieszka C <aga_04@o2.pl>
Co-authored-by: Alex25820 <Alexander_sjogren@hotmail.se>
Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Balázs Meskó <meskobalazs@mailbox.org>
Co-authored-by: GnuPGを使うべきだ <dieeeazpnnqbpddh@cock.email>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Human Beeing <thankful_human@mailbox.org>
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Co-authored-by: JY3 <GeeyunJY3@gmail.com>
Co-authored-by: Linerly <linerly@protonmail.com>
Co-authored-by: Naveen <naveen.translator@protonmail.com>
Co-authored-by: Ricardo <contatorms7@tutamail.com>
Co-authored-by: Terry Louwers <t.louwers@gmail.com>
Co-authored-by: Vasilis K <skyhirules@gmail.com>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: chr56 <chr0056@gmail.com>
Co-authored-by: nautilusx <translate@disroot.org>
Co-authored-by: nzgha <nzghafoss.ldxwe@slmail.me>
Co-authored-by: rickeesingh <rickeesingh231@gmail.com>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: subba raidu <raidu4u@gmail.com>
Co-authored-by: translator <kvb@tuta.io>
Co-authored-by: Даниил Морозюк <morozdan2003@gmail.com>
Co-authored-by: Саша Петровић <salepetronije@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/he/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hu/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pa/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ta/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/te/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hans/
Translation: NewPipe/Metadata
The wrong @Decorator was put in the wrong place to mark the throwable fieldd as transient, now this is fixed and the exception is not serialized. So if a non-serializable throwable is passed, that's not an issue, since it's not going to be serialized. The need for EnsureExceptionSerializable is also gone.