1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2026-05-11 07:52:12 +00:00

10709 Commits

Author SHA1 Message Date
Aayush Gupta a44e65e709 Merge pull request #13448 from TeamNewPipe/comment-crash
fix app crash on loading comment section with no internet
2026-04-24 17:48:39 +08:00
Ida Delphine 188ba0a462 refactor if statements to when block 2026-04-24 07:44:34 +01:00
Ida Delphine 78f9fbadb7 fix app crash on loading comment with no internet 2026-04-24 00:22:03 +01:00
Ida Delphine 2ebb0dc114 remove AboutActivity 2026-04-23 16:28:08 +01:00
Ida Delphine 9bd9a5c6e9 Convert ErrorActivity to compose (#13434)
* add error screen compasable

* add error activity

* create separate privacy policy dialog

* move base activity

* refactor error activity and tiny tweaks

* add new compose activity and navdisplay

* refactor app to utilize new compose activity

* clean up arguments in the ErrorReportScreen

* get rid of redundant colors

* tackle review issues

* rename getErrorActivityIntent
2026-04-23 07:16:06 +00:00
Aayush Gupta 43f40c485d gradle: Build with JDK 21
Checkstyle was already requiring JDK 21 and now about libraries need it too

Use the kotlin extension method as it will also configure it for java code

Ref: https://kotlinlang.org/docs/gradle-configure-project.html#gradle-java-toolchains-support

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2026-04-23 14:31:45 +08:00
Aayush Gupta c992b85b25 libs: Update compose-related libraries to latest release
The about libraries gradle plugin does merge of duplicate by defaults.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2026-04-23 12:09:16 +08:00
Aayush Gupta 49354a3c04 fixup! Relocate toml lint task to buildSrc and extend against default task
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2026-04-21 10:42:21 +08:00
Aayush Gupta bfefd43700 Merge branch 'dev' into refactor 2026-04-21 10:42:09 +08:00
tobigr ec81b6bb62 Remove proguard rules for optional jsoup classes
The underlying problem is fixed with jsoup 1.12.2. See https://github.com/TeamNewPipe/NewPipeExtractor/pull/1480.

Revert 6c5d58bed3 /  #13038.
2026-04-20 15:39:14 +02:00
Shafqat Bhuiyan a719b898a1 Fix playback not working after player enters idle state
On some phones (e.g. Oppo and Oneplus) the video player enters the STATE_IDLE 10 minutes after being paused. This causes the play button to stop working.

This happens because once a player has become idle, we need to call prepare() before playback can happen again.

But after I added prepare(), it would just skip to the end of the video. So now I'm executing the same code that happens when ERROR_CODE_UNSPECIFIED is done. This causes playback to resume normally.
2026-04-20 05:48:06 +02:00
Aayush Gupta c4a6bdd7d4 Remove non-required API M version checks
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2026-04-19 19:44:23 +08:00
Aayush Gupta 7a3d1d9b5f libs: Bump minSdk to API 23
androidx framework has bumped minSdk requirement to API 23. Most libs dependening
upon the framework as a result require us to bump API level or keep using outdated versions.

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2026-04-16 16:38:19 +08:00
Aayush Gupta 4effcad436 libs: Update checkstyle to latest release and fix violations
Javadoc comment at column 46 has parse error. Details: no viable alternative at input '<http:/' while parsing HTML_ELEMENT [UnusedImports]

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2026-04-16 16:13:25 +08:00
Tobi dd917ca240 Merge pull request #13418 from Ecomont/fix/offline-comments-crash
Fix crash when loading offline comments in CommentRepliesSource
2026-04-14 23:21:00 +02:00
Aayush Gupta 53d8d4d4da Merge branch 'dev' into refactor 2026-04-14 22:23:49 +08:00
Tobi 3e297fd892 Merge pull request #13391 from TobiGr/fix/downloaderPermission
Fix SecurityException when opening downloaded files in other app
2026-04-14 11:35:15 +02:00
h 064458cccd Fix crash when loading offline comments in CommentRepliesSource 2026-04-14 06:35:35 +02:00
tobigr 1ce1dbe73c Bump NewPipe version to 0.28.5 (1010) 2026-04-10 16:06:21 +02:00
Hosted Weblate df6ec4462c Translated using Weblate (Polish)
Currently translated at 63.3% (57 of 90 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (773 of 773 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 64.4% (58 of 90 strings)

Translated using Weblate (Swedish)

Currently translated at 99.8% (772 of 773 strings)

Translated using Weblate (Burmese)

Currently translated at 1.1% (1 of 90 strings)

Translated using Weblate (Latvian)

Currently translated at 97.6% (755 of 773 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (773 of 773 strings)

Translated using Weblate (Portuguese (Portugal))

Currently translated at 100.0% (773 of 773 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (773 of 773 strings)

Translated using Weblate (Latvian)

Currently translated at 97.6% (755 of 773 strings)

Translated using Weblate (Latvian)

Currently translated at 18.8% (17 of 90 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 64.4% (58 of 90 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (773 of 773 strings)

Translated using Weblate (Russian)

Currently translated at 98.8% (764 of 773 strings)

Translated using Weblate (Indonesian)

Currently translated at 100.0% (773 of 773 strings)

Translated using Weblate (Latvian)

Currently translated at 97.5% (754 of 773 strings)

Deleted translation using Weblate (Aymara (Southern))

Deleted translation using Weblate (Mainfränkisch)

Deleted translation using Weblate (Azerbaijani (Southern))

Deleted translation using Weblate (Azerbaijani (Southern))

Deleted translation using Weblate (Kashmiri)

Deleted translation using Weblate (Sicilian)

Deleted translation using Weblate (Aymara)

Deleted translation using Weblate (Luri (Bakhtiari))

Deleted translation using Weblate (Yiddish)

Deleted translation using Weblate (Romany)

Deleted translation using Weblate (Corsican)

Deleted translation using Weblate (Gaelic)

Deleted translation using Weblate (Arabic (Tunisian))

Deleted translation using Weblate (French (Louisiana))

Deleted translation using Weblate (German (Low))

Deleted translation using Weblate (English (Old))

Deleted translation using Weblate (English (Middle))

Deleted translation using Weblate (Arabic (Najdi))

Co-authored-by: Arif Budiman <arifpedia@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Mona Lisa <nickwick@users.noreply.hosted.weblate.org>
Co-authored-by: Morkovka21Vek <morkovka21vek@gmail.com>
Co-authored-by: Nicolás Pérez <nicoperez241@proton.me>
Co-authored-by: Omikorin <git@omikor.in>
Co-authored-by: Philip Goto <philip.goto@gmail.com>
Co-authored-by: TobiGr <TobiGr@users.noreply.github.com>
Co-authored-by: Tun Tun AUNG <tuntunaung@codingclassroom.org>
Co-authored-by: UDP <udp@users.noreply.hosted.weblate.org>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: ℂ𝕠𝕠𝕠𝕝 (𝕘𝕚𝕥𝕙𝕦𝕓.𝕔𝕠𝕞/ℂ𝕠𝕠𝕠𝕝) <coool@mail.lv>
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/lv/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/my/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/pl/
Translate-URL: https://hosted.weblate.org/projects/newpipe/metadata/zh_Hant/
Translation: NewPipe/Metadata
2026-04-10 11:25:19 +02:00
Ida Delphine 0e2e94dcb9 add unit tests for ListHelper 2026-04-03 14:34:47 +01:00
Ida Delphine 67b6f0a10b refactor ListHelper Kotlin methods 2026-04-03 09:58:17 +01:00
evermind 274cb7c170 ListHelper: rework video quality representation and VideoStream selection
Replace the previous string-based resolution/fps/etc. handling for VideoStreams
by parsing the 'getResolution()'-string to a data class to improve maintainability.

Video resolutions (e.g. "720p60") were previously compared and matched using
regex-based string manipulation all over the place. This was fragile,
required repeated parsing and made it difficult to extend the matching logic.

It can handle all the strings like before: "720p", "720p60"

Additionally this patch can also handle strings like: "720p60@123k", or "720p@2m"

Main changes:
- Introduce internal data class VideoQuality (resolution, fps, bitrate, formatRank).
- Introduce internal VideoStreamWithQuality to associate streams with parsed quality.
- Parse quality only once.
- Replace resolution string sorting with a comparator based on
  resolution -> fps -> formatRank -> bitrate.
- Rework stream selection to use a priority-based matching algorithm
  (format, resolution, fps, bitrate).
- Prefer candidates with bitrate closest to the requested one when multiple
  streams match the same priority class.
2026-04-02 10:29:40 +01:00
evermind 62e66326a5 convert ListHelper to kotlin 2026-04-02 10:29:40 +01:00
TobiGr db8edd3b44 Fix SecurityException when opening downloaded files in other app
The flag was not passed to the intent that wraps the actual view intent for the app chooser.
2026-04-01 20:55:16 +02:00
Ida Delphine d33ba8ac75 refactor settings screen, debug, viewmodels, etc 2026-03-30 03:06:31 +01:00
Ida Delphine fbfa1fd2b1 refactor navigation and settings screens 2026-03-30 01:17:14 +01:00
Ida Delphine 881792ebda add navigation keys 2026-03-29 23:57:01 +01:00
Tobi 50e8189363 Merge pull request #13385 from arjun1194/fix/use-application-context-for-enqueue
Fix NullPointerException in enqueue actions by using Application Context
2026-03-29 20:57:53 +02:00
Hatake Kakashri de344100db Complete the debug screen migration to Compose with Nav3
- 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.
2026-03-28 20:08:07 +00:00
arjun 07a2ab29de Fix NullPointerException in enqueue actions by using Application Context
Use getApplicationContext() instead of getContext() in ENQUEUE,
ENQUEUE_NEXT, START_HERE_ON_BACKGROUND, and START_HERE_ON_POPUP
entries to prevent NullPointerException when the fragment's activity
context becomes null during configuration changes (e.g. device rotation).

The fragment context can become null when the activity is destroyed
during rotation, but the async callback from fetchItemInfoIfSparse
still holds a reference to the now-detached fragment. Using
Application context ensures a stable, non-null context throughout
the async operation lifecycle.
2026-03-28 14:25:48 +05:30
Ida Delphine 5e9c24a7b3 fix duplicate PreferenceSearchItem and extractor hash issue 2026-03-27 11:08:35 +00:00
Guy Marshall c85655f5bb UPDATE: Replace 2.5k and 2.5K with 1440p to match desktop website 2026-03-27 09:59:39 +00:00
Guy Marshall dfe12222ff UPDATE: Replace 2k and 2K with 2.5k and 2.5K to fix common mistake 2026-03-27 09:58:42 +00:00
tobigr da76ddbf19 Remove French (Lousiana) frc from app locales 2026-03-27 08:35:49 +01:00
TobiGr 75ba70ab41 Deleted translation using Weblate (Aymara (Southern)) 2026-03-27 08:30:49 +01:00
TobiGr 6d50fe79b8 Deleted translation using Weblate (Mainfränkisch) 2026-03-27 08:23:30 +01:00
TobiGr f8c9ab8b11 Deleted translation using Weblate (Azerbaijani (Southern)) 2026-03-27 08:22:23 +01:00
TobiGr af08ddcf04 Deleted translation using Weblate (Kashmiri) 2026-03-27 08:19:25 +01:00
TobiGr 09c96159d1 Deleted translation using Weblate (Sicilian) 2026-03-27 08:19:05 +01:00
TobiGr 2dda39205d Deleted translation using Weblate (Aymara) 2026-03-27 08:18:48 +01:00
TobiGr 3112eefb99 Deleted translation using Weblate (Luri (Bakhtiari)) 2026-03-27 08:18:29 +01:00
TobiGr cf0d7016ec Deleted translation using Weblate (Yiddish) 2026-03-27 08:18:05 +01:00
TobiGr b0f2d509e6 Deleted translation using Weblate (Romany) 2026-03-27 08:17:48 +01:00
TobiGr db61af15e8 Deleted translation using Weblate (Corsican) 2026-03-27 08:17:29 +01:00
TobiGr 80a47be218 Deleted translation using Weblate (Gaelic) 2026-03-27 08:17:11 +01:00
TobiGr 179a713561 Deleted translation using Weblate (Arabic (Tunisian)) 2026-03-27 08:16:35 +01:00
TobiGr fa6412a9aa Deleted translation using Weblate (French (Louisiana)) 2026-03-27 08:15:57 +01:00
TobiGr 3f8d26d33e Deleted translation using Weblate (German (Low)) 2026-03-27 08:15:23 +01:00
TobiGr 2fec3a3c58 Deleted translation using Weblate (English (Old)) 2026-03-27 08:15:07 +01:00