- Completed the UI and logic for pending items of Debug screen using Jetpack Compose.
- Implemented a new navigation system for settings using the navigation3
lib as it is now stable.
- Reuses the `ScaffoldWithToolbar` composable and removed the previous
`Toolbar` composable to avoid redundancy in code.
- Refactored the `SettingsViewModel` to use a `BooleanPreference` helper
class to reuse and reducing boilerplate for state management.
- Created a shared `TextBase` composable to remove duplicated UI logic
between `SwitchPreference` and `TextPreference`.
- Move the build-variant-dependent logic for LeakCanary and reused it in
Compose and Fragment, this logic is used for ensuring the leak canary
fields are only enabled in debug variants.
- Fixed a layout bug in `SwitchPreference` where long summary text could
misalign the switch component and also adjusted the paddings for consistency.
- Updated the `minSdk` in `app/build.gradle.kts`.
- Adjusted the api-level for the test-android min sdk CI workflow
in `.github/workflows/ci.yml`.
- Simplified the `getOsString()` method in `ErrorActivity.java` by removing
the conditional check for `Build.VERSION_CODES.M`, as API 23 is now the minimum.
The workflow can be triggered by creating a comment on a merged PR: /backport <TARGET_BRANCH>
The backport can only be triggered by people with write access to the repository.
Co-authored-by: AbsurdlyLongUsername <22662897+absurdlylongusername@users.noreply.github.com>
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.
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.
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>
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