10153 Commits

Author SHA1 Message Date
tobigr
6c5d58bed3 Fix minify step of release build by ignoring two classes
This fixes the following error during the minifyWithR8 task:

> Task :app:minifyReleaseWithR8 FAILED
ERROR: Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /home/runner/work/NewPipe/NewPipe/app/build/outputs/mapping/release/missing_rules.txt.
ERROR: R8: Missing class com.google.re2j.Matcher (referenced from: com.google.re2j.Matcher org.jsoup.helper.Re2jRegex$Re2jMatcher.delegate and 3 other contexts)
Missing class com.google.re2j.Pattern (referenced from: com.google.re2j.Pattern org.jsoup.helper.Re2jRegex.re2jPattern and 4 other contexts)
2026-01-11 22:06:32 +01:00
Hosted Weblate
56489e5ddd Translated using Weblate (Polish)
Currently translated at 56.3% (49 of 87 strings)

Translated using Weblate (French)

Currently translated at 77.0% (67 of 87 strings)

Translated using Weblate (Punjabi)

Currently translated at 100.0% (764 of 764 strings)

Co-authored-by: Agnieszka C <aga_04@o2.pl>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Mickaël Binos <mickaelbinos@outlook.com>
Co-authored-by: whistlingwoods <72640314+whistlingwoods@users.noreply.github.com>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/fr/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/
Translation: NewPipe/Metadata
2026-01-11 15:01:52 +01:00
Hosted Weblate
3323868042 Translated using Weblate (Bengali (India))
Currently translated at 39.2% (300 of 764 strings)

Translated using Weblate (Lombard)

Currently translated at 0.3% (3 of 764 strings)

Translated using Weblate (French)

Currently translated at 75.8% (66 of 87 strings)

Translated using Weblate (Slovak)

Currently translated at 100.0% (764 of 764 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (764 of 764 strings)

Translated using Weblate (Tigrinya)

Currently translated at 21.8% (167 of 764 strings)

Translated using Weblate (Hindi)

Currently translated at 100.0% (764 of 764 strings)

Translated using Weblate (Azerbaijani)

Currently translated at 100.0% (764 of 764 strings)

Translated using Weblate (Punjabi)

Currently translated at 100.0% (764 of 764 strings)

Translated using Weblate (Belarusian)

Currently translated at 99.0% (757 of 764 strings)

Translated using Weblate (Slovak)

Currently translated at 77.0% (67 of 87 strings)

Translated using Weblate (Punjabi)

Currently translated at 100.0% (764 of 764 strings)

Translated using Weblate (Bulgarian)

Currently translated at 3.4% (3 of 87 strings)

Translated using Weblate (Santali)

Currently translated at 1.1% (1 of 87 strings)

Translated using Weblate (Hindi)

Currently translated at 100.0% (87 of 87 strings)

Translated using Weblate (German)

Currently translated at 100.0% (764 of 764 strings)

Translated using Weblate (Hindi)

Currently translated at 100.0% (764 of 764 strings)

Translated using Weblate (Punjabi)

Currently translated at 100.0% (87 of 87 strings)

Translated using Weblate (Turkish)

Currently translated at 33.3% (29 of 87 strings)

Translated using Weblate (Punjabi)

Currently translated at 78.1% (68 of 87 strings)

Translated using Weblate (German)

Currently translated at 100.0% (87 of 87 strings)

Translated using Weblate (French)

Currently translated at 74.7% (65 of 87 strings)

Translated using Weblate (French)

Currently translated at 74.7% (65 of 87 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (87 of 87 strings)

Translated using Weblate (Slovak)

Currently translated at 74.7% (65 of 87 strings)

Translated using Weblate (Hindi)

Currently translated at 77.0% (67 of 87 strings)

Translated using Weblate (Punjabi)

Currently translated at 68.9% (60 of 87 strings)

Co-authored-by: 135 <135135@users.noreply.hosted.weblate.org>
Co-authored-by: Balázs Meskó <meskobalazs@mailbox.org>
Co-authored-by: Ding User <dengus@users.noreply.hosted.weblate.org>
Co-authored-by: Dizro <weblate.delirium794@passmail.net>
Co-authored-by: Erenay <erenaydev@proton.me>
Co-authored-by: Femini <nizamismidov4@gmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kuko <kuko7@protonmail.ch>
Co-authored-by: MatthieuPh <matthieu.philippe@protonmail.com>
Co-authored-by: Mickaël Binos <mickaelbinos@outlook.com>
Co-authored-by: Milan <mobrcian@hotmail.com>
Co-authored-by: Prasanta-Hembram <Prasantahembram720@gmail.com>
Co-authored-by: STV <steeven.lombardi@gmail.com>
Co-authored-by: ShareASmile <ShareASmile@users.noreply.hosted.weblate.org>
Co-authored-by: Sumon Kayal <sumankayalsuman4@gmail.com>
Co-authored-by: Trunars <trunars@abv.bg>
Co-authored-by: VfBFan <drop0815@posteo.de>
Co-authored-by: whistlingwoods <72640314+whistlingwoods@users.noreply.github.com>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/bg/
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/fr/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/hi/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pa/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sat/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sk/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/tr/
Translation: NewPipe/Metadata
2026-01-09 21:14:38 +01:00
Siddhesh Dhainje
a83762c4d7 Removed restoreInstanceState and resultServiceIntent condition
(cherry picked from commit 418e34172a8528437c9cd1c6097503dbb053b61f)
2026-01-09 11:32:19 -08:00
Siddhesh Dhainje
381b383a43 Used requireArguments instead of getArguments
(cherry picked from commit a3673f8c3b3152c5fdef7313693ef16654ea3931)
2026-01-09 11:32:19 -08:00
Siddhesh Dhainje
d5d92e8340 Fix crash on screen rotation while entering SoundCloud import URL
(cherry picked from commit 23b7f21d7c6582fb82793f06cd94b371e6a1b38a)
2026-01-09 11:32:19 -08:00
Justin L
dc5c5b6604 Fix download resume corruption when server returns HTTP 200
When resuming a download after interruption, if the server returns
HTTP 200 (full resource) instead of HTTP 206 (partial content), the
code correctly resets mMission.done but fails to reset the 'start'
variable. This causes the subsequent file seek to use a stale offset,
writing new data at incorrect positions.

This bug causes file corruption for large downloads (>5GB) that are
interrupted and resumed, particularly when:
- Switching between WiFi networks
- Server CDN returning different responses
- Connection drops during long downloads

The corruption manifests as duplicate data regions in the file,
which for MP4 downloads results in multiple MOOV atoms and
broken seek functionality.

Fix: Reset start=0 when HTTP 200 is received, ensuring the file
write position correctly restarts from the beginning of the current
resource.

(cherry picked from commit 08008ca6f958fe9f2768447047b3225292f10ca7)
2026-01-08 19:07:09 -08:00
Tobi
680235ad51
Merge pull request #12922 from TobiGr/enqueue-ui
[PlayQueue] Fix incorrect UI states of PlayQueue items
2026-01-07 04:01:51 -08:00
Tobi
d4a124a3c4
Merge pull request #12931 from TobiGr/fix/audio-lang
[Player] Use original audio language by default
2026-01-07 03:21:39 -08:00
Tobi
635e6a56c7
Merge pull request #13008 from dustdfg/playlist_normal_drag
Allow dragging boorkmarked playlist in both directions
2026-01-06 09:11:37 -08:00
Yevhen Babiichuk (DustDFG)
02e559e57f Commit all the playlist changes to db immediately
+ some additional minor code cleanup in the file
2026-01-06 12:36:50 +01:00
Yevhen Babiichuk (DustDFG)
9998d99a04 Allow dragging boorkmarked playlist in both directions
Ctrl+C/Ctrl+V from newpipe/local/playlist/LocalPlaylistFragment
2026-01-06 10:01:59 +02:00
tobigr
5cefafa145 Prepare for version 0.28.1 (1006) 2026-01-03 11:55:59 +01:00
Mira
49aaaebd86 Feat: opus metadata encoding (#12974)
Feat: Downloading: Add opus audio metadata tags for title, author, date, and a comment tag with the originating URL

This removes the DownloadManagerService.EXTRA_SOURCE field, which is always inferred from the StreamInfo.
2026-01-03 11:55:59 +01:00
Aayush Gupta
93166afde4
Merge pull request #12973 from dustdfg/require_preference
Replace findPreference(getString(resId) with its null safe shortcut
2026-01-01 13:36:26 +08:00
Aayush Gupta
6c238fafbe fixup! Convert newpipe/util/KioskTranslator.java to kotlin
Copyright and license header are not doc-comments. Move them to the top of the file.
Also re-write it to follow the SPDX formatting as we have followed in the recent Kotlin
conversion.

Additionally, use a better name for the context parameter.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2025-12-31 17:05:17 +08:00
Tobi
e17b1a1fcc
Merge pull request #12975 from dustdfg/playlist_button_work
Correct typo in playlist db sql query
2025-12-30 22:58:06 -08:00
Yevhen Babiichuk (DustDFG)
7806a708c2 Correct typo in playlist db sql query
Solve #12855
2025-12-31 05:23:14 +02:00
Yevhen Babiichuk (DustDFG)
f6085d0044 Replace findPreference(getString(resId) with its null safe shortcut 2025-12-30 13:30:37 +02:00
tobigr
0a65c862a3 Remove empty translations 2025-12-30 09:16:58 +01:00
Hosted Weblate
c9339a5a03
Translated using Weblate (French)
Currently translated at 100.0% (764 of 764 strings)

Translated using Weblate (Punjabi)

Currently translated at 97.2% (743 of 764 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (87 of 87 strings)

Added translation using Weblate (Romany)

Translated using Weblate (Korean)

Currently translated at 97.7% (85 of 87 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (87 of 87 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Madalin <madalin.mail09@gmail.com>
Co-authored-by: Mona Lisa <nickwick@users.noreply.hosted.weblate.org>
Co-authored-by: NormalRandomPeople <normal.scribe833@silomails.com>
Co-authored-by: TobiGr <TobiGr@users.noreply.github.com>
Co-authored-by: whistlingwoods <72640314+whistlingwoods@users.noreply.github.com>
Co-authored-by: Максим Горпиніч <gorpinicmaksim0@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/ko/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/sv/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/uk/
Translation: NewPipe/Metadata
2025-12-29 22:06:50 +01:00
tobigr
465979e677 Do not change the aspectRation if the renderer is disabled 2025-12-29 16:41:25 +01:00
TobiGr
7101aecc98 Try to prevent invalid aspectRatio of SurfaceView
If the video's hieght is 0, the aspectRatio is set to Float.NaN which can cause further issues. Do not assign invalid values for the aspectRatio.
2025-12-29 16:30:20 +01:00
TobiGr
718335d733 fix(player): Fix scaleX being NaN on minimize to background app switch
This aims to fix the following Exception which might occour when watching a live stream and switching the app while 'minimize to backgorund' is enabled:

java.lang.IllegalArgumentException: Cannot set 'scaleX' to Float.NaN
	at android.view.View.sanitizeFloatPropertyValue(View.java:17479)
	at android.view.View.sanitizeFloatPropertyValue(View.java:17453)
	at android.view.View.setScaleX(View.java:16822)
	at org.schabi.newpipe.views.ExpandableSurfaceView.onLayout(ExpandableSurfaceView.java:71)

scaleX is set in onMeasure() in which width could be 0 in theory and this leading to a division by zero of a float which results in an assignment of Float.NaN.
2025-12-29 16:30:20 +01:00
Yevhen Babiichuk (DustDFG)
2dde0fef58 Convert newpipe/util/KioskTranslator.java to kotlin
Cherry picked from #12947 / 4649e46d1ee4c691f2923c9b5c35c154c77b29a4
2025-12-27 23:13:17 +01:00
Yevhen Babiichuk (DustDFG)
c2f526d5b3 Use context.getString() shorthand instead of context.getResources().getString()
Cherry-picked from #12949 / 4360c1b8735c073b95a162324b2814cc5a5b4ecd
2025-12-27 23:12:37 +01:00
TobiGr
58efbf4de8 Fix retrieving incomplete data for SubscriptionEntity
This fixes a visual bug in which the channels reported the the subscriber count was unavailable although stored in the db.

Closes #12953
2025-12-26 21:57:26 +01:00
tobigr
a7b226c354 [Player] Use original audio language by default 2025-12-22 10:15:18 +01:00
tobigr
3ffd194f78 Fix insufficient permissions on opening downloaded streams 2025-12-21 18:44:09 +01:00
TobiGr
535f9da422 Fix rebase 2025-12-20 21:23:58 +01:00
TobiGr
5582eac1c4 Only show enqueue option if play queue is not empty in RouterActivity
Make enqueue option avilable for playlists as well
2025-12-20 20:59:32 +01:00
Hatake Kakashri
acaaec2cde Add enqueue option to router dialog
- This allows users to enqueue a stream directly to the current player queue when sharing a link with the app, improving the user experience for queue management.
- The 'Enqueue' option is now available in the action selection dialog and can also be set as the preferred open action in the settings.
2025-12-20 20:59:25 +01:00
TobiGr
f7ff5db4b5 [PlayQueue] Fix incorrect UI states of PlayQueue items
onNext() is called after onSubscribe() when creating a PlayQueueAdapter. For that reason the last broadcasted event is applied to the UI state although it is already reflected in the PlayQueue that was used to initialize the adapter.

This is the intended behavior of the previously used event broadcaster of the type BehaviorSubject<>. The broadcaster's type was changed to PublishSubject<> which does not emit the last event after onSubscribe().

Ref: https://github.com/TeamNewPipe/NewPipe/issues/9669
2025-12-20 18:28:45 +01:00
Damien Hardy
0607b14bb2 add indymotion.fr peertube instance on AndroidManifest.xml 2025-12-19 09:43:14 +01:00
Hosted Weblate
f3876d1c4a
Translated using Weblate (Danish)
Currently translated at 98.8% (755 of 764 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (764 of 764 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (764 of 764 strings)

Translated using Weblate (Lithuanian)

Currently translated at 99.2% (758 of 764 strings)

Translated using Weblate (Bengali)

Currently translated at 74.3% (568 of 764 strings)

Co-authored-by: Agustín Cantero <brahiancantero@gmail.com>
Co-authored-by: Dual_A <alaviabdullah782@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: MS-PC <MSPCtranslator@gmail.com>
Co-authored-by: cat <catsnote@proton.me>
Co-authored-by: gymka <gymka@archlinux.lt>
2025-12-15 22:02:28 +01:00
Tobi
c603c82cff
Merge pull request #12781 from iampopovich/feat/similar-youtube-client-screen-rotation
Remember and restore orientation on fullscreen exit
2025-12-14 04:43:19 -08:00
Aayush Gupta
77bea1ac68 Player: Enqueue next on the existing playQueue
Fixes 150649aea9f2cf55b7b006d5538aaecd2ec57f42

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2025-12-13 17:03:54 +08:00
TobiGr
17ce699037 Do not change orientation on TVs when entering fullscreen 2025-12-10 14:48:45 +01:00
TobiGr
d770c6fd88 Fix state access 2025-12-10 14:46:29 +01:00
TobiGr
7ffc513f46 Fix deprecation of Bundle.getSerializable(String) by using BundleCompat
This fixes the following warning during compilation:

file:app/src/main/java/org/schabi/newpipe/about/LicenseFragment.kt:36:55 'fun getSerializable(p0: String?): Serializable?' is deprecated. Deprecated in Java.
2025-12-10 14:42:52 +01:00
Aayush Gupta
4a00dbb15d Don't swallow error when trying to mark stream as watched
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2025-12-03 17:23:53 +08:00
Aayush Gupta
5c9ac912ac StreamHistoryDAO: Latest entry can be null
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2025-12-03 16:44:41 +08:00
TobiGr
d1cbc17a09 Merge branch 'dev' into feat/similar-youtube-client-screen-rotation 2025-11-29 23:30:20 +01:00
Aayush Gupta
e91d647b27 acra: Relocate autoservice dependencies under acra block
They are only used for ACRA

Ref: https://www.acra.ch/docs/Custom-Extensions#by-annotation

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2025-11-29 19:54:36 +08:00
Aayush Gupta
6055cf2938 acra: Switch to ZacSweers's fork of autoservice
Google has no plans to officially support KSP for autoservice

Ref: https://github.com/google/auto/issues/882

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2025-11-29 19:52:17 +08:00
shaozheng
e045251b58 Always do not rotate screen when Android TV 2025-11-28 17:41:13 +08:00
Aayush Gupta
e5ed0b529f Bump ktlint to latest stable release and maven coordinate
Disable all new rules to avoid massive file-changes. All new rules should be
enabled one by one as per requirements in separate commit to make review easier.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2025-11-21 20:08:26 +08:00
Aayush Gupta
0131bb227f Silence warnings regarding new annotation property behavior
Ref: https://kotlinlang.org/docs/annotations.html#defaults-when-no-use-site-targets-are-specified

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2025-11-21 20:08:26 +08:00
Aayush Gupta
b06b7c35ca Relocate toml lint task to buildSrc and extend against default task
Fixes build errors after Gradle 9.x upgrade

Ref: https://docs.gradle.org/current/userguide/implementing_custom_tasks.html

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2025-11-21 20:08:26 +08:00
Aayush Gupta
f4d138d06f Partial-revert: Migrate from KAPT to KSP
statesaver has been deprecated for ~ 6 years and incompatible with KSP

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2025-11-19 16:33:43 +08:00