The previous/reverted behavior caused unwanted data transmission:
* Removed loading via handleResults/loadMoreItems-callback because the RecyclerView is apparently not immediately updated in the UI when the data is set which causes one load of data to much.
* Always recreate the footer so that it's not possible to attach the same instance twice
* Removed support for creating a custom footer as it's never used
* Supply the header with an supplier
* This might not fix the problem completely as we currently can only create the header once inside Channel, Playlist and RelatedItems-Fragment - allowing creation of multiple headers might be done in the future if the issues still arise
* Other minor fixes
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.
* 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.