This was always a bit weird, that clicking a timestamp would
unconditionally switch to the popup player.
With the new enum, it’s trivial to change it to always stay at the
selected player now ;)
In 063dcd41e5 I falsely claimed that the
fallthrough case is always degenerate, but it kinda somehow still
worked because if you long-click on e.g. the popup button, it would
call enqueue, but if nothing was running yet it would fallthrough to
the very last case and start the player with the video.
So let’s return to that and add a TODO for further refactoring in the
future.
Fixes https://github.com/TeamNewPipe/NewPipe/issues/11013
We finally are at the point where we can have good logic around
clicking on timestamps.
This is pretty straightforward:
1) if we are already playing the stream (usual case), we skip to the
correct second directly
2) If we don’t have a queue yet, create a trivial one with the stream
3) If we have a queue, we insert the video as next item and start
playing it.
The skipping logic in 1) is similar to the one further down in the old
optimization block, but will always correctly fire for timestamps now.
I copied it because it’s not quite the same code, and moving into a
separate method at this stage would complicate the code too much.
Instead of implicitely reconstructing whether the intent was
intended (lol) to be a timestamp change, we create a new kind of
intent that *only* sets the data we need to switch to a new timestamp.
This means that the logic of what to do (opening a popup player) gets
moved from `InternalUrlsHandler.playOnPopup` to the
`Player.handleIntent` method, we only pass that we want to jump to a
new timestamp. Thus, the stream is now loaded *after* sending the
intent instead of before sending.
This is somewhat messy right now and still does not fix the issue of
queue deletion, but from now on the queue logic should get more
straightforward to implement.
In the end, everything should be a giant switch. Thus we don’t
fall-through anymore, but run the post-setup code manually by calling
`handeIntentPost` and then returning.
The goal here is to convert all player intents to use a single enum
with extra data for each case. The queue ones are pretty easy, they
don’t carry any extra data. We fall through for everything else for
now.
We can do this, because:
1. if `playQueue` is not null, we return early
2. if `playQueue` is null and we need to enqueue:
- the only “proper” case that could be triggered is
the `RESUME_PLAYBACK` case, which is never `true` for the queuing
intents, see the comment in `NavigationHelper.enqueueOnPlayer`
- the generic `else` case is degenerate, because it would crash on
`playQueue` being `null`.
This makes some sense, because there is no way to trigger the
enqueueing logic via the UI currently if there is no video playing
yet, in which case `playQueue` is not `null`.
So we need to transform this whole if desaster into a big switch.
Okay, so this is the … only? branch in this if-chain that will
conditionally fire if `playQueue` *is* `null`, sometimes.
This is why the unconditional `initPlayback` in `else` is not passed a
`null` in many cases … because `RESUME_PLAYBACK` is `true` and
`playQueue` is `null`.
It’s gonna be hard to figure out which parts of that are intentional,
I say.
- ErrorInfo.getMessage() now returns an ErrorMessage instance that can be formatted into a string using a context (this allows the construction of an ErrorInfo to remain independent of a Context)
- now the service ID is used in ErrorInfo.getMessage() to customize some messages based on the currently selected service
- player HTTP invalid statuses are now included in the message
- building a custom error message for AccountTerminatedException was moved from ErrorPanelHelper to ErrorInfo
Currently translated at 100.0% (748 of 748 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (748 of 748 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (748 of 748 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (748 of 748 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (748 of 748 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (748 of 748 strings)
Translated using Weblate (French)
Currently translated at 100.0% (748 of 748 strings)
Translated using Weblate (Icelandic)
Currently translated at 99.4% (745 of 749 strings)
Translated using Weblate (Estonian)
Currently translated at 18.6% (16 of 86 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Portuguese (Portugal))
Currently translated at 99.5% (746 of 749 strings)
Translated using Weblate (Belarusian)
Currently translated at 99.7% (747 of 749 strings)
Translated using Weblate (Estonian)
Currently translated at 100.0% (749 of 749 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (749 of 749 strings)
Translated using Weblate (Hebrew)
Currently translated at 99.7% (747 of 749 strings)
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (749 of 749 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (749 of 749 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (749 of 749 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (749 of 749 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (749 of 749 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (749 of 749 strings)
Translated using Weblate (Slovak)
Currently translated at 99.7% (747 of 749 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (749 of 749 strings)
Translated using Weblate (Portuguese)
Currently translated at 99.5% (746 of 749 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (749 of 749 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (749 of 749 strings)
Translated using Weblate (German)
Currently translated at 100.0% (749 of 749 strings)
Translated using Weblate (German)
Currently translated at 100.0% (749 of 749 strings)
Translated using Weblate (Tamazight (Central Atlas))
Currently translated at 19.2% (144 of 749 strings)
Translated using Weblate (Macedonian)
Currently translated at 79.3% (594 of 749 strings)
Translated using Weblate (Slovenian)
Currently translated at 54.6% (409 of 749 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.7% (95 of 747 strings)
Translated using Weblate (Tigrinya)
Currently translated at 3.4% (3 of 86 strings)
Translated using Weblate (Icelandic)
Currently translated at 99.4% (743 of 747 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 90.6% (78 of 86 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (French)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Polish)
Currently translated at 58.1% (50 of 86 strings)
Translated using Weblate (Hindi)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Punjabi)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (German)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Belarusian)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Punjabi)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Hindi)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (German)
Currently translated at 100.0% (747 of 747 strings)
Co-authored-by: 439JBYL80IGQTF25UXNR0X1BG <439JBYL80IGQTF25UXNR0X1BG@users.noreply.hosted.weblate.org>
Co-authored-by: Agnieszka C <aga_04@o2.pl>
Co-authored-by: Drugi Sapog <dindrugi@users.noreply.hosted.weblate.org>
Co-authored-by: Dual Natan <dvapatinatan@gmail.com>
Co-authored-by: Emin Tufan Çetin <etcetin@gmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me>
Co-authored-by: Hakim Oubouali <hakim.oubouali.skr@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Igor Rückert <igorruckert@yahoo.com.br>
Co-authored-by: Igor Sorocean <sorocean.igor@gmail.com>
Co-authored-by: Jeff Huang <s8321414@gmail.com>
Co-authored-by: Marian Hanzel <marulinko@gmail.com>
Co-authored-by: Matej U <mateju@src.gnome.org>
Co-authored-by: Michael Moroni <michaelmoroni@disroot.org>
Co-authored-by: Mickaël Binos <mickaelbinos@outlook.com>
Co-authored-by: Milan <mobrcian@hotmail.com>
Co-authored-by: NTFSynergy <ntfsynergy@gmail.com>
Co-authored-by: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
Co-authored-by: Rex_sa <rex.sa@pm.me>
Co-authored-by: Stypox <stypox@pm.me>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: Trunars <trunars@abv.bg>
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: Yassin Amir <y6b5@proton.me>
Co-authored-by: erti <erti@users.noreply.hosted.weblate.org>
Co-authored-by: ikanakova <ikanakova@users.noreply.hosted.weblate.org>
Co-authored-by: nautilusx <translate@disroot.org>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: whistlingwoods <72640314+whistlingwoods@users.noreply.github.com>
Co-authored-by: zmni <zmni@outlook.com>
Co-authored-by: Максим Горпиніч <gorpinicmaksim5@gmail.com>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: 赖诚俊 <cosmic.universe.glitch@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ar/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/cs/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/et/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/
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/it/
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/ru/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sk/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ti/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hans/
Translation: NewPipe/Metadata
formatters() is called again by the player before the user has a chance to click on the language in the language chooser.
So the correct solution would probably be to attach to https://developer.android.com/reference/android/content/Intent#ACTION_LOCALE_CHANGED, but let's keep it simple. I added `PlayerHelper.resetFormat();` in `ContentSettingsFragment.onDestroy()` and it works. It will mean the player formatters will be reset every time the user exits content settings, but whatever.
and reset them when the language is changed/changing.
This way they will be re-initialized on the next call.
Also Remove a bunch of outdated/non-thread safe code (STRING_FORMATTER)
* fix: handle nullable nextPage behavior when searching albums #12401
* feat: add nullable annotation to newPage attribute in SearchFragment
* Updated more usages of InfoItemsPage#getNextPage. Nullability is already handled in these areas so no other changes needed
---------
Co-authored-by: Siddhesh Naik <siddheshnaik20@protonmail.com>
* Use build constants when possible
* Inline variables
* Don't use var for normal-sized types (that way it's easier to review)
* Split code into methods
Currently translated at 100.0% (85 of 85 strings)
Translated using Weblate (Estonian)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (745 of 745 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (745 of 745 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (745 of 745 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (745 of 745 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Serbian)
Currently translated at 99.7% (745 of 747 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (French)
Currently translated at 100.0% (747 of 747 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (Tigrinya)
Currently translated at 12.6% (94 of 744 strings)
Translated using Weblate (English (United Kingdom))
Currently translated at 8.2% (7 of 85 strings)
Translated using Weblate (Serbian)
Currently translated at 16.4% (14 of 85 strings)
Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Serbian)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Azerbaijani (Southern))
Currently translated at 1.1% (1 of 85 strings)
Added translation using Weblate (Azerbaijani (Southern))
Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Serbian)
Currently translated at 16.4% (14 of 85 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Tamil)
Currently translated at 100.0% (85 of 85 strings)
Translated using Weblate (Danish)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Tamil)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (85 of 85 strings)
Translated using Weblate (Romanian)
Currently translated at 99.7% (742 of 744 strings)
Translated using Weblate (Serbian)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (85 of 85 strings)
Translated using Weblate (Belarusian)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (French)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Estonian)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (German)
Currently translated at 100.0% (744 of 744 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Portuguese (Portugal))
Currently translated at 97.6% (83 of 85 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (85 of 85 strings)
Translated using Weblate (Kabyle)
Currently translated at 29.0% (215 of 741 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (741 of 741 strings)
Added translation using Weblate (Luri (Bakhtiari))
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Persian)
Currently translated at 94.3% (699 of 741 strings)
Translated using Weblate (Estonian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Serbian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Persian)
Currently translated at 94.1% (698 of 741 strings)
Translated using Weblate (Belarusian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Punjabi)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Belarusian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Finnish)
Currently translated at 98.5% (730 of 741 strings)
Translated using Weblate (French)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (85 of 85 strings)
Translated using Weblate (French)
Currently translated at 100.0% (85 of 85 strings)
Translated using Weblate (German)
Currently translated at 100.0% (85 of 85 strings)
Translated using Weblate (Sardinian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (German)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 69.4% (59 of 85 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Latvian)
Currently translated at 21.4% (18 of 84 strings)
Translated using Weblate (Latvian)
Currently translated at 99.7% (739 of 741 strings)
Translated using Weblate (Latvian)
Currently translated at 20.2% (17 of 84 strings)
Translated using Weblate (Latvian)
Currently translated at 16.6% (14 of 84 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (French)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Greek)
Currently translated at 32.1% (27 of 84 strings)
Translated using Weblate (Greek)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Romanian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Urdu)
Currently translated at 69.2% (513 of 741 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Catalan)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Catalan)
Currently translated at 90.2% (669 of 741 strings)
Translated using Weblate (Estonian)
Currently translated at 17.8% (15 of 84 strings)
Translated using Weblate (Spanish)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Dutch (Belgium))
Currently translated at 76.7% (569 of 741 strings)
Translated using Weblate (Dutch (Belgium))
Currently translated at 76.2% (565 of 741 strings)
Translated using Weblate (Lithuanian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Danish)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Kabyle)
Currently translated at 28.8% (214 of 741 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (84 of 84 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Serbian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Spanish)
Currently translated at 99.8% (740 of 741 strings)
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 67.8% (57 of 84 strings)
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Icelandic)
Currently translated at 99.4% (737 of 741 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (French)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (German)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Estonian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Belarusian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Breton)
Currently translated at 13.6% (101 of 741 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (741 of 741 strings)
Translated using Weblate (Breton)
Currently translated at 12.1% (90 of 741 strings)
Translated using Weblate (Breton)
Currently translated at 7.6% (57 of 741 strings)
Translated using Weblate (Breton)
Currently translated at 7.4% (55 of 741 strings)
Translated using Weblate (Breton)
Currently translated at 7.4% (55 of 741 strings)
Translated using Weblate (Breton)
Currently translated at 7.4% (55 of 741 strings)
Translated using Weblate (Belarusian)
Currently translated at 99.8% (740 of 741 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (741 of 741 strings)
Added translation using Weblate (Breton)
Translated using Weblate (Romanian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Japanese)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Serbian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Danish)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Estonian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Finnish)
Currently translated at 98.5% (729 of 740 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (French)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Icelandic)
Currently translated at 99.4% (736 of 740 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (German)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Polish)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (740 of 740 strings)
Co-authored-by: 439JBYL80IGQTF25UXNR0X1BG <439JBYL80IGQTF25UXNR0X1BG@users.noreply.hosted.weblate.org>
Co-authored-by: AP <kubanto@users.noreply.hosted.weblate.org>
Co-authored-by: Abu Sarim Hindi <sarfaraz.ahmed78@gmail.com>
Co-authored-by: Agnieszka C <aga_04@o2.pl>
Co-authored-by: Ajeje Brazorf <lmelonimamo@yahoo.it>
Co-authored-by: Alex25820 <alexs25820@gmail.com>
Co-authored-by: Balázs Meskó <meskobalazs@mailbox.org>
Co-authored-by: Bastian <basti.anderl774@gmail.com>
Co-authored-by: ButterflyOfFire <boffire@users.noreply.hosted.weblate.org>
Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Co-authored-by: Darth23G (DarthGamer23) <fref2329@gmail.com>
Co-authored-by: Deleted User <noreply+48943@weblate.org>
Co-authored-by: Dream X <nodem49316@daupload.com>
Co-authored-by: Drugi Sapog <dindrugi@users.noreply.hosted.weblate.org>
Co-authored-by: Emin Tufan Çetin <etcetin@gmail.com>
Co-authored-by: Fareedar Islami <fareedar.islami@gmail.com>
Co-authored-by: Femini <nizamismidov4@gmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
Co-authored-by: Fjuro <git@alius.cz>
Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me>
Co-authored-by: GiannosOB <giannos2105@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Igor Rückert <igorruckert@yahoo.com.br>
Co-authored-by: Igor Sorocean <sorocean.igor@gmail.com>
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: Jay Tromp <jaytromp@pm.me>
Co-authored-by: Jeff Huang <s8321414@gmail.com>
Co-authored-by: Jordi Cambrells <cambrells@users.noreply.hosted.weblate.org>
Co-authored-by: Jordi Cambrells <hanta.hrabal@gmail.com>
Co-authored-by: Juzé <dedakir923@exoular.com>
Co-authored-by: KaGaster <mohamed.kooli@medtech.tn>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
Co-authored-by: Linerly <linerly@proton.me>
Co-authored-by: MS-PC <MSPCtranslator@gmail.com>
Co-authored-by: Mandeep <mandeeps708@gmail.com>
Co-authored-by: Massimo Pissarello <mapi68@gmail.com>
Co-authored-by: Michael Moroni <michaelmoroni@disroot.org>
Co-authored-by: Mickaël Binos <mickaelbinos@outlook.com>
Co-authored-by: Milan <mobrcian@hotmail.com>
Co-authored-by: Mohammed al-Qubati <mhraqeeb@gmail.com>
Co-authored-by: Mücteba <muctebanesiri@gmail.com>
Co-authored-by: NEXI <nexiphotographer@gmail.com>
Co-authored-by: Nick Wick <NickWick@users.noreply.hosted.weblate.org>
Co-authored-by: Philip Goto <philip.goto@gmail.com>
Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com>
Co-authored-by: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>
Co-authored-by: Q. Boii <sf1hks@marketmail.info>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
Co-authored-by: Rex_sa <rex.sa@pm.me>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: THANOS SIOURDAKIS <siourdakisthanos@gmail.com>
Co-authored-by: Trunars <trunars@abv.bg>
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: Yasser Althuwaini <ymth2000@outlook.com>
Co-authored-by: Yauhen <bugomol@users.noreply.hosted.weblate.org>
Co-authored-by: ab_09 <ab_09@users.noreply.hosted.weblate.org>
Co-authored-by: cat <catsnote@proton.me>
Co-authored-by: dekiw39846 <dekiw39846@bariswc.com>
Co-authored-by: elid <shopisrael12@gmail.com>
Co-authored-by: gfbdrgn <erfvvgtyhbnjhyuu@wireconnected.com>
Co-authored-by: late <late@users.noreply.hosted.weblate.org>
Co-authored-by: moton03 <moton.cat@outlook.com>
Co-authored-by: rehork <cooky@e.email>
Co-authored-by: rimasx <riks_12@hot.ee>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: trunars <trunars@gmail.com>
Co-authored-by: Максим Горпиніч <gorpinicmaksim5@gmail.com>
Co-authored-by: Максим Горпиніч <maksimgorpinic2005a@gmail.com>
Co-authored-by: Максим Горпиніч <maksimgorpinic4@gmail.com>
Co-authored-by: Саша Петровић <salepetronije@gmail.com>
Co-authored-by: தமிழ்நேரம் <anishprabu.t@gmail.com>
Co-authored-by: ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝) <coool@mail.lv>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
Co-authored-by: 李恩霆 <timothylee0802@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ar/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/azb/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/cs/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/el/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/en_GB/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/et/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hu/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/lv/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pt_PT/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ru/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sr/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sv/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ta/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant/
Translation: NewPipe/Metadata
Fixes#12400, see there for explanation. Citing from there:
So apparently the problem is onGetRoot always returning a BrowserRoot instance. Making it return null solved the issue (but again, breaks Android Auto compatibility). It turns out (see https://stackoverflow.com/q/63818988/) that onGetRoot is also used for media resumption https://developer.android.com/media/implement/surfaces/mobile#mediabrowserservice_implementation, which causes a new notification to pop up (in this case a useless notification because our onGetRoot does not return something that can be used for resumption). So what needs to be done is to check if rootHints?.getBoolean(EXTRA_RECENT) == true and if that's the case not return anything (as EXTRA_RECENT is used by the system for resumption).
The PackageValidator file is taken from 329a21b63c/common/src/main/java/com/example/android/uamp/media/PackageValidator.kt .
This is still not perfect, but it will show the selected search filter
in addition to the service name, like: “Search YouTube (Playlists)”.
It will not distinguish between a YouTube Music and Youtube filter, so
it will display the same thing. Could be improved, but then the text
gets too long! :(
Copied select_channel_fragment to select_feed_group_fragment
Copied select_channel_item to select_feed_group_item
# Change
Replaced the Layout references in the new Class SelectFeedGroupFragment
Fix crashing behaviour with entry in SharedPreferences
A few minor improvements
Added docs for isInBackground
Some more minor changes
Overwrite methods in MainActivity instead of creating a new class
The `@` gets added by the youtube API and thus is a fixed member of
the username, so we do some simple detection logic to handle that
case (otherwise the `@` will be at the right side of a RTL username,
which is different of how Youtube displays these usernames in the
browser).
Fixes https://github.com/TeamNewPipe/NewPipe/issues/12141
The only hint (haha) which service one is searching in is currently
the color of the background. This is super confusing, yesterday a
friend tried to search for a video on youtube and the app was set to
Bandcamp, and they were super confused why nothing turned up.
So let’s put the name of the service in the hint!
The `updateService()` thing is a little confused, but I didn’t want
to refactor to improve the logic. It’s not doing anything
computationally intensive anyway.
For PeerTube, the sidebar calls it FramaTube but the service name is
PeerTube, I’m not sure why that is the case. Looks like the string
depends on the name of the instance? Hm, can be improved later I
think.
Fixes a regression, where if the challenge data array size was one, the second element
would be accessed, leading to a crash.
This was introduced when porting the challenge parsing from JS to
Kotlin.
Ref: 53b599b042
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Catalan)
Currently translated at 88.2% (653 of 740 strings)
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 90.4% (76 of 84 strings)
Translated using Weblate (Belarusian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Hindi)
Currently translated at 100.0% (84 of 84 strings)
Translated using Weblate (Punjabi)
Currently translated at 100.0% (84 of 84 strings)
Translated using Weblate (Belarusian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Punjabi)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Hindi)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (German)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (German)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Croatian)
Currently translated at 99.7% (738 of 740 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Indonesian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Belarusian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Belarusian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Belarusian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (84 of 84 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (84 of 84 strings)
Translated using Weblate (Portuguese)
Currently translated at 99.8% (739 of 740 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Czech)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Russian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (French)
Currently translated at 100.0% (84 of 84 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (84 of 84 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Belarusian)
Currently translated at 99.5% (737 of 740 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Hebrew)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Icelandic)
Currently translated at 99.4% (736 of 740 strings)
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Greek)
Currently translated at 25.0% (21 of 84 strings)
Translated using Weblate (Greek)
Currently translated at 23.8% (20 of 84 strings)
Translated using Weblate (Estonian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (French)
Currently translated at 99.5% (737 of 740 strings)
Co-authored-by: 439JBYL80IGQTF25UXNR0X1BG <439JBYL80IGQTF25UXNR0X1BG@users.noreply.hosted.weblate.org>
Co-authored-by: Andrey F <firsan777@mail.ru>
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Antonin Del Fabbro <message@antonin.one>
Co-authored-by: Christian Eichert <c@zp1.net>
Co-authored-by: Drugi Sapog <dindrugi@users.noreply.hosted.weblate.org>
Co-authored-by: Eduardo Calixto <eduardogubertcalixto@gmail.com>
Co-authored-by: Emin Tufan Çetin <etcetin@gmail.com>
Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Igor Rückert <igorruckert@yahoo.com.br>
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Co-authored-by: Jan Layola <gilajan@protonmail.com>
Co-authored-by: Kevin Wang <wmk153024@gmail.com>
Co-authored-by: Linerly <linerly@proton.me>
Co-authored-by: Massimo Pissarello <mapi68@gmail.com>
Co-authored-by: Milo Ivir <mail@milotype.de>
Co-authored-by: Petr Kadlec <mormegil@centrum.cz>
Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com>
Co-authored-by: Rex_sa <rex.sa@pm.me>
Co-authored-by: Sergio Marques <so.boston.android@gmail.com>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
Co-authored-by: XxVictoriaxX <evakonoob@gmail.com>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Co-authored-by: trunars <trunars@gmail.com>
Co-authored-by: whistlingwoods <72640314+whistlingwoods@users.noreply.github.com>
Co-authored-by: Максим Горпиніч <maksimgorpinic2005a@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ar/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/cs/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/el/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hi/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/it/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pa/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hans/
Translation: NewPipe/Metadata
<string name="share_playlist_with_titles_message">Share playlist with details such as playlist name and video titles or as a simple list of video URLs</string>
Share playlist with details such as playlist name and video titles or as a simple list of video URLs</string>
(Discussion: https://github.com/TeamNewPipe/NewPipe/pull/12065#discussion_r1994349485)
This is, again, a consequence of the commit "Drop some assumptions on how PlayerService is started and reused".
This commit notified VideoDetailFragment of player starting and stopping independently of the player.
Read the comments in the code changes for more information.
This bug started appearing because the way to close the player is now unified in PlayerHolder.stopService(), which causes the player to reach back to the video detail fragment with a notification of the shutdown (i.e. onServiceStopped() is called). This is fixed by adding a nullability check on the binding.
Fixes mini-player not appearing on app start if the player service is already playing something.
The PlayerService (and the player) may be started from an external intent that does not involve the MainActivity (e.g. RouterActivity or Android Auto's media browser interface).
This PR tries to bind to the PlayerService as soon as the MainActivity starts, but only does so in a passive way, i.e. if the service is not already running it is not started.
Once the connection between PlayerHolder and PlayerService is setup, the ACTION_PLAYER_STARTED broadcast is sent to MainActivity so that it can setup the bottom mini-player.
Another important thing this commit does is to check whether the player is open before actually adding the mini-player view, since the PlayerService could be bound even without a running player (e.g. Android Auto's media browser is being used). This is a consequence of commit "Drop some assumptions on how PlayerService is started and reused".
This commit is a consequence of the commit "Drop some assumptions on how PlayerService is started and reused". Since the assumptions on how the PlayerService is started and reused have changed, we also need to adapt the way it is stopped. This means allowing the service to remain alive even after the player is destroyed, in case the system is still accessing PlayerService e.g. through the media browser interface. The foreground service needs to be stopped and the notification removed in any case.
If a playbackPreparer is set, then instead of calling `player.prepare()`, the MediaSessionConnector will call `playbackPreparer.onPrepare(true)` instead, as seen below.
This commit makes it so that playbackPreparer.onPrepare(true) restores the original behavior of just calling player.prepare().
From MediaSessionConnector -> MediaSessionCompat.Callback implementation:
```java
@Override
public void onPlay() {
if (canDispatchPlaybackAction(PlaybackStateCompat.ACTION_PLAY)) {
if (player.getPlaybackState() == Player.STATE_IDLE) {
if (playbackPreparer != null) {
playbackPreparer.onPrepare(/* playWhenReady= */ true);
} else {
player.prepare();
}
} else if (player.getPlaybackState() == Player.STATE_ENDED) {
seekTo(player, player.getCurrentMediaItemIndex(), C.TIME_UNSET);
}
Assertions.checkNotNull(player).play();
}
}
```
This class implements the media browser service interface as a standalone class for clearer separation of concerns (otherwise everything would need to go in PlayerService, since PlayerService overrides MediaBrowserServiceCompat)
Co-authored-by: Haggai Eran <haggai.eran@gmail.com>
Co-authored-by: Profpatsch <mail@profpatsch.de>
This class will receive the media URLs generated by [MediaBrowserImpl] and will start playback of the corresponding streams or playlists.
Co-authored-by: Haggai Eran <haggai.eran@gmail.com>
Co-authored-by: Profpatsch <mail@profpatsch.de>
This changes significantly how the MediaSessionCompat and MediaSessionConnector objects are used:
- now they are tied to the service and not to the player, and so they might be reused with multiple players (which should be allowed)
- now they can exist even if there is no player (which is fundamental to be able to answer media browser queries)
Currently translated at 92.7% (686 of 740 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (84 of 84 strings)
Translated using Weblate (Turkish)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Georgian)
Currently translated at 83.3% (70 of 84 strings)
Translated using Weblate (Estonian)
Currently translated at 16.6% (14 of 84 strings)
Translated using Weblate (Estonian)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Mainfränkisch)
Currently translated at 1.0% (8 of 740 strings)
Translated using Weblate (Bavarian)
Currently translated at 3.9% (29 of 740 strings)
Translated using Weblate (German)
Currently translated at 100.0% (84 of 84 strings)
Added translation using Weblate (Mainfränkisch)
Translated using Weblate (Thai)
Currently translated at 36.6% (271 of 740 strings)
Translated using Weblate (Armenian)
Currently translated at 28.2% (209 of 740 strings)
Translated using Weblate (Georgian)
Currently translated at 85.7% (72 of 84 strings)
Translated using Weblate (Thai)
Currently translated at 34.3% (254 of 740 strings)
Translated using Weblate (Gujarati)
Currently translated at 11.3% (84 of 740 strings)
Translated using Weblate (Hungarian)
Currently translated at 100.0% (84 of 84 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (84 of 84 strings)
Translated using Weblate (Nepali)
Currently translated at 1.1% (1 of 84 strings)
Translated using Weblate (Slovak)
Currently translated at 100.0% (84 of 84 strings)
Translated using Weblate (French)
Currently translated at 100.0% (84 of 84 strings)
Translated using Weblate (Portuguese)
Currently translated at 100.0% (740 of 740 strings)
Translated using Weblate (Gujarati)
Currently translated at 11.0% (82 of 740 strings)
Translated using Weblate (Arabic)
Currently translated at 100.0% (740 of 740 strings)
Co-authored-by: Alex25820 <alexs25820@gmail.com>
Co-authored-by: Bruno Fragoso <darth_signa@hotmail.com>
Co-authored-by: Davit Mayilyan <davit.mayilyan@protonmail.ch>
Co-authored-by: Emin Tufan Çetin <etcetin@gmail.com>
Co-authored-by: Garfield2150 <knd.garfield@gmail.com>
Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me>
Co-authored-by: Goudarz Jafari <goudarz.jafari@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kchenik Poudel <Kakapoudel7@gmail.com>
Co-authored-by: Kuko <kuko7@protonmail.ch>
Co-authored-by: Paul Sibila <p.aul@mail.de>
Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com>
Co-authored-by: Rex_sa <rex.sa@pm.me>
Co-authored-by: Temuri Doghonadze <temuri.doghonadze@gmail.com>
Co-authored-by: freddyLovesUs <compteperso@outlook.com>
Co-authored-by: રાજ ભાતેલીઆ <rajbhatelia@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/de/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/et/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hu/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ka/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ne/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sk/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sv/
Translation: NewPipe/Metadata
<h3 align="center">We are planning to <i>rewrite</i> large chunks of the codebase, to bring about <a href="https://github.com/TeamNewPipe/NewPipe/discussions/10118">a new, modern and stable NewPipe</a>!</h3>
<h4 align="center">Please do <b>not</b> open pull requests for <i>new features</i> now, only bugfix PRs will be accepted.</h4>
<h3 align="center">We are <i>rewriting</i> large chunks of the codebase, to bring about <a href="https://newpipe.net/blog/pinned/announcement/newpipe-0.27.6-rewrite-team-states/#the-refactor">a modern and stable NewPipe</a>! You can download nightly builds <a href="https://github.com/TeamNewPipe/NewPipe-refactor-nightly/releases">here</a>.</h3>
<h4 align="center">Please work on the <code>refactor</code> branch if you want to contribute <i>new features</i>. The current codebase is in maintenance mode and will only receive <i>bugfixes</i>.</h4>
<h4 align="center">A libre lightweight streaming front-end for Android.</h4>
<p align="center"><a href="https://f-droid.org/packages/org.schabi.newpipe/"><img src="https://fdroid.gitlab.io/artwork/badge/get-it-on-en.svg" alt="Get it on F-Droid" height=80/></a></p>
<p align="center"><a href="https://f-droid.org/packages/org.schabi.newpipe/"><img src="https://fdroid.gitlab.io/artwork/badge/get-it-on-en.svg" alt="Get it on F-Droid" width=206/></a></p>
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.