tobigr
f5245eac91
Merge branch 'dev' into refactor
2026-01-09 14:09:14 +01:00
Tobi
694124814e
Merge pull request #13014 from jloutsch/fix/download-resume-corruption
...
Fix download resume corruption when server returns HTTP 200
2026-01-08 19:05:49 -08:00
Tobi
e61bc012d9
Merge pull request #12990 from dustdfg/db_migration_kotlin
...
Use "factory" method for creating db migrations
2026-01-08 17:23:12 -08:00
Justin L
08008ca6f9
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.
2026-01-06 09:03:44 -05:00
Yevhen Babiichuk (DustDFG)
61c0d134d7
Commit all the playlist changes to db immediately
...
+ some additional minor code cleanup in the file
2026-01-05 22:59:14 +02:00
Yevhen Babiichuk (DustDFG)
35eb08baf0
Delete long orphaned file
...
Was oprhaned at 004c2fa55a
2026-01-04 13:53:43 +02:00
Mira
3369607b74
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 02:54:07 -08:00
Yevhen Babiichuk (DustDFG)
0747b3a0a5
Use "factory" method for creating db migrations
2026-01-02 12:25:25 +02:00
Aayush Gupta
7283701073
Merge pull request #12978 from dustdfg/kotlin_merged
...
Conversion to kotlin of multiple files
2026-01-02 15:46:29 +08:00
Yevhen Babiichuk (DustDFG)
3ffcf11a3a
Merge inheritors of newpipe/player/playqueue/PlayQueueEvent and
...
convert it to kotlin
2026-01-01 23:05:16 +02:00
Aayush Gupta
1fb2b4a42e
Merge pull request #12981 from dustdfg/export_playlist_refactor
...
Refactor ExportPlaylist to use more idiomatic kotlin code
2026-01-01 21:40:05 +08:00
Yevhen Babiichuk (DustDFG)
83596ca907
Convert newpipe/settings/preferencesearch/PreferenceSearchResultListener to kotlin
2026-01-01 15:33:32 +02:00
Yevhen Babiichuk (DustDFG)
d9682f5e0a
Convert newpipe/player/PlayerType to kotlin
2026-01-01 15:33:32 +02:00
Yevhen Babiichuk (DustDFG)
ab3314eb1c
Convert newpipe/info_list/ItemViewMode to kotlin
2026-01-01 15:33:32 +02:00
Yevhen Babiichuk (DustDFG)
7d1d88fb87
Convert newpipe/local/playlist/PlayListShareMode to kotlin
2026-01-01 15:08:21 +02:00
Yevhen Babiichuk (DustDFG)
8379aa0a9d
Refactor ExportPlaylist to use more idiomatic kotlin code
2026-01-01 15:03:29 +02:00
Yevhen Babiichuk (DustDFG)
cd4cb40e6d
Convert newpipe/error/UserAction.java to kotlin
2026-01-01 11:04:19 +02:00
Yevhen Babiichuk (DustDFG)
f1b111212d
Convert newpipe/util/FilenameUtils.java to kotlin
...
Co-authored-by: Aayush Gupta <aayushgupta219@gmail.com >
2026-01-01 11:04:19 +02:00
Yevhen Babiichuk (DustDFG)
84c646713d
Convert newpipe/settings/preferencesearch/PreferenceSearchItem.java to kotlin
2026-01-01 11:04:19 +02:00
Yevhen Babiichuk (DustDFG)
873b2be9ca
Convert newpipe/util/text/TimestampLongPressClickableSpan.java to kotlin
...
Also convert one class used by it into java record
2026-01-01 11:04:19 +02:00
Yevhen Babiichuk (DustDFG)
4ef4ed15f1
Convert newpipe/util/image/PreferredImageQuality to kotlin
2026-01-01 11:04:19 +02:00
Yevhen Babiichuk (DustDFG)
fef8a2455c
Convert newpipe/util/image/ImageStrategy to kotlin
2026-01-01 11:04:19 +02:00
Yevhen Babiichuk (DustDFG)
3398b4cdc9
Convert newpipe/fragments/list/search/Suggestion{Item,ListAdapter} to kotlin
2026-01-01 11:04:19 +02:00
Yevhen Babiichuk (DustDFG)
74cf302bd6
Convert newpipe/local/playlist/RemotePlaylistManager to kotlin
2026-01-01 11:04:19 +02:00
Aayush Gupta
2e8e203276
Merge pull request #12963 from dustdfg/misc_refactor
...
Misc small refactors (mostly replacing old switch syntax with new)
2026-01-01 16:41:25 +08:00
Yevhen Babiichuk (DustDFG)
127064d6fc
Misc small refactors (mostly replacing old switch syntax with new)
2026-01-01 10:26:56 +02: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
tobigr
040b4c44ca
Merge branch 'dev' into refactor
...
Conflicts:
VideoDetailFragment (see #12781 )
libs.version.toml
2025-12-29 12:15:13 +01:00
Yevhen Babiichuk (DustDFG)
2dde0fef58
Convert newpipe/util/KioskTranslator.java to kotlin
...
Cherry picked from #12947 / 4649e46d1e
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 / 4360c1b873
2025-12-27 23:12:37 +01:00
Tobi
8ae5a55c4f
Merge pull request #12947 from dustdfg/kotlin_refactor4
...
Convert newpipe/util/KioskTranslator.java to kotlin
2025-12-27 09:54:58 -08: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
Yevhen Babiichuk (DustDFG)
4360c1b873
Use context.getString() shorthand instead of context.getResources().getString()
2025-12-26 14:15:33 +02:00
Yevhen Babiichuk (DustDFG)
4649e46d1e
Convert newpipe/util/KioskTranslator.java to kotlin
2025-12-26 11:21:10 +02: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
c596476c06
Only show enqueue option if play queue is not empty in RouterActivity
...
Make enqueue option avilable for playlists as well
2025-12-20 20:31:30 +01:00
Hatake Kakashri
90c36cb2e8
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:31:30 +01:00
Damien Hardy
0607b14bb2
add indymotion.fr peertube instance on AndroidManifest.xml
2025-12-19 09:43:14 +01:00