From 42f909936b61b2685c027d454e66c8adfca2cc3e Mon Sep 17 00:00:00 2001 From: tobigr Date: Sun, 5 Oct 2025 21:13:18 +0200 Subject: [PATCH 1/3] Bump checkstyle and make inner classes final Updating checkstyle fixed a vulnerability and fixed a final class check in version 10.12.2 for local classes without constructor. Local classes without a constructor should be marked as final. That is done in this commit. For more info see https://github.com/checkstyle/checkstyle/releases/tag/checkstyle-10.12.2 --- .../newpipe/fragments/list/search/SuggestionListAdapter.java | 3 ++- .../schabi/newpipe/settings/PeertubeInstanceListFragment.java | 3 ++- .../org/schabi/newpipe/settings/SelectChannelFragment.java | 2 +- .../org/schabi/newpipe/settings/SelectFeedGroupFragment.java | 2 +- .../org/schabi/newpipe/settings/SelectPlaylistFragment.java | 2 +- .../settings/preferencesearch/PreferenceSearchAdapter.java | 3 ++- gradle/libs.versions.toml | 2 +- 7 files changed, 10 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SuggestionListAdapter.java b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SuggestionListAdapter.java index 856ba22f1..6a330be0f 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SuggestionListAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SuggestionListAdapter.java @@ -76,7 +76,8 @@ public class SuggestionListAdapter } } - private static class SuggestionItemCallback extends DiffUtil.ItemCallback { + private static final class SuggestionItemCallback + extends DiffUtil.ItemCallback { @Override public boolean areItemsTheSame(@NonNull final SuggestionItem oldItem, @NonNull final SuggestionItem newItem) { diff --git a/app/src/main/java/org/schabi/newpipe/settings/PeertubeInstanceListFragment.java b/app/src/main/java/org/schabi/newpipe/settings/PeertubeInstanceListFragment.java index 1158b3d83..81fddbcfb 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/PeertubeInstanceListFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/PeertubeInstanceListFragment.java @@ -396,7 +396,8 @@ public class PeertubeInstanceListFragment extends Fragment { } } - private static class PeertubeInstanceCallback extends DiffUtil.ItemCallback { + private static final class PeertubeInstanceCallback + extends DiffUtil.ItemCallback { @Override public boolean areItemsTheSame(@NonNull final PeertubeInstance oldItem, @NonNull final PeertubeInstance newItem) { diff --git a/app/src/main/java/org/schabi/newpipe/settings/SelectChannelFragment.java b/app/src/main/java/org/schabi/newpipe/settings/SelectChannelFragment.java index 37335421d..18e0816bb 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/SelectChannelFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/SelectChannelFragment.java @@ -174,7 +174,7 @@ public class SelectChannelFragment extends DialogFragment { void onCancel(); } - private class SelectChannelAdapter + private final class SelectChannelAdapter extends RecyclerView.Adapter { @NonNull @Override diff --git a/app/src/main/java/org/schabi/newpipe/settings/SelectFeedGroupFragment.java b/app/src/main/java/org/schabi/newpipe/settings/SelectFeedGroupFragment.java index 662379369..c106f5998 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/SelectFeedGroupFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/SelectFeedGroupFragment.java @@ -175,7 +175,7 @@ public class SelectFeedGroupFragment extends DialogFragment { void onCancel(); } - private class SelectFeedGroupAdapter + private final class SelectFeedGroupAdapter extends RecyclerView.Adapter { @NonNull @Override diff --git a/app/src/main/java/org/schabi/newpipe/settings/SelectPlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/settings/SelectPlaylistFragment.java index 36abef9e5..6a5f7c894 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/SelectPlaylistFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/SelectPlaylistFragment.java @@ -138,7 +138,7 @@ public class SelectPlaylistFragment extends DialogFragment { void onRemotePlaylistSelected(int serviceId, String url, String name); } - private class SelectPlaylistAdapter + private final class SelectPlaylistAdapter extends RecyclerView.Adapter { @NonNull @Override diff --git a/app/src/main/java/org/schabi/newpipe/settings/preferencesearch/PreferenceSearchAdapter.java b/app/src/main/java/org/schabi/newpipe/settings/preferencesearch/PreferenceSearchAdapter.java index d6e2021a1..dd59ba86e 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/preferencesearch/PreferenceSearchAdapter.java +++ b/app/src/main/java/org/schabi/newpipe/settings/preferencesearch/PreferenceSearchAdapter.java @@ -69,7 +69,8 @@ class PreferenceSearchAdapter } } - private static class PreferenceCallback extends DiffUtil.ItemCallback { + private static final class PreferenceCallback + extends DiffUtil.ItemCallback { @Override public boolean areItemsTheSame(@NonNull final PreferenceSearchItem oldItem, @NonNull final PreferenceSearchItem newItem) { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f0718d4fb..c83e83393 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,7 +11,7 @@ assertj = "3.24.2" autoservice = "1.1.1" bridge = "v2.0.2" cardview = "1.0.0" -checkstyle = "10.12.1" +checkstyle = "10.26.1" constraintlayout = "2.1.4" core = "1.12.0" desugar = "2.0.4" From 729702b420f48cc5d0ff67f4a84ffa62ecfd066a Mon Sep 17 00:00:00 2001 From: tobigr Date: Sun, 5 Oct 2025 21:23:51 +0200 Subject: [PATCH 2/3] Update dependencies androidx.media:media:1.7.0 -> 1.7.1 androidx.viewpager2:viewpager2:1.1.0-beta02 -> 1.1.0 io.reactivex.rxjava3:rxjava:3.1.8 -> 3.1.12 org.jsoup:jsoup:1.17.2 -> 1.21.2 --- gradle/libs.versions.toml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c83e83393..ffbc08128 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -21,7 +21,7 @@ extractor = "0023b22095a2d62a60cdfc87f4b5cd85c8b266c3" filepicker = "5.0.0" fragment = "1.6.2" groupie = "2.10.1" -jsoup = "1.17.2" +jsoup = "1.21.2" junit = "4.13.2" junit-ext = "1.1.5" kotlin = "1.9.25" @@ -31,7 +31,7 @@ lifecycle = "2.6.2" localbroadcastmanager = "1.1.0" markwon = "4.6.2" material = "1.11.0" -media = "1.7.0" +media = "1.7.1" mockitoCore = "5.6.0" nanojson = "e9d656ddb49a412a5a0a5d5ef20ca7ef09549996" okhttp = "4.12.0" @@ -45,14 +45,12 @@ room = "2.6.1" runner = "1.5.2" rxandroid = "3.0.2" rxbinding = "4.0.0" -rxjava = "3.1.8" +rxjava = "3.1.12" sonarqube = "4.0.0.2929" statesaver = "1.4.1" stetho = "1.6.0" swiperefreshlayout = "1.1.0" -# Newer version specified to prevent accessibility regressions with RecyclerView -# see: https://developer.android.com/jetpack/androidx/releases/viewpager2#1.1.0-alpha01 -viewpager2 = "1.1.0-beta02" +viewpager2 = "1.1.0" webkit = "1.9.0" work = "2.8.1" From 300f5abc70c081b9c09fa461b01531f5aee4b082 Mon Sep 17 00:00:00 2001 From: Stypox Date: Tue, 21 Oct 2025 10:31:32 +0200 Subject: [PATCH 3/3] Update NewPipeExtractor and restore Jitpack/using-locally comments The comments were accidentally removed in #12706 --- gradle/libs.versions.toml | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ffbc08128..f48678867 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,8 +17,6 @@ core = "1.12.0" desugar = "2.0.4" documentfile = "1.0.1" exoplayer = "2.18.7" -extractor = "0023b22095a2d62a60cdfc87f4b5cd85c8b266c3" -filepicker = "5.0.0" fragment = "1.6.2" groupie = "2.10.1" jsoup = "1.21.2" @@ -33,7 +31,6 @@ markwon = "4.6.2" material = "1.11.0" media = "1.7.1" mockitoCore = "5.6.0" -nanojson = "e9d656ddb49a412a5a0a5d5ef20ca7ef09549996" okhttp = "4.12.0" phoenix = "2.1.2" #noinspection NewerVersionAvailable,GradleDependency --> 2.8 is the last version, not 2.71828! @@ -50,6 +47,17 @@ sonarqube = "4.0.0.2929" statesaver = "1.4.1" stetho = "1.6.0" swiperefreshlayout = "1.1.0" +# You can use a local version by uncommenting a few lines in settings.gradle +# Or you can use a commit you pushed to GitHub by just replacing TeamNewPipe with your GitHub +# name and the commit hash with the commit hash of the (pushed) commit you want to test +# This works thanks to JitPack: https://jitpack.io/ +teamnewpipe-filepicker = "5.0.0" +teamnewpipe-nanojson = "e9d656ddb49a412a5a0a5d5ef20ca7ef09549996" +# WORKAROUND: if you get errors with the NewPipeExtractor dependency, replace `v0.XX.Y` with +# the corresponding commit hash, since JitPack sometimes deletes artifacts. +# If there’s already a git hash, just add more of it to the end (or remove a letter) +# to cause jitpack to regenerate the artifact. +teamnewpipe-newpipe-extractor = "3af73262cc60cf555fd5f1d691f6c58e2db38ef5" viewpager2 = "1.1.0" webkit = "1.9.0" work = "2.8.1" @@ -104,9 +112,9 @@ lisawray-groupie-core = { module = "com.github.lisawray.groupie:groupie", versio lisawray-groupie-viewbinding = { module = "com.github.lisawray.groupie:groupie-viewbinding", version.ref = "groupie" } livefront-bridge = { module = "com.github.livefront:bridge", version.ref = "bridge" } mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockitoCore" } -newpipe-extractor = { module = "com.github.TeamNewPipe:NewPipeExtractor", version.ref = "extractor" } -newpipe-filepicker = { module = "com.github.TeamNewPipe:NoNonsense-FilePicker", version.ref = "filepicker" } -newpipe-nanojson = { module = "com.github.TeamNewPipe:nanojson", version.ref = "nanojson" } +newpipe-extractor = { module = "com.github.TeamNewPipe:NewPipeExtractor", version.ref = "teamnewpipe-newpipe-extractor" } +newpipe-filepicker = { module = "com.github.TeamNewPipe:NoNonsense-FilePicker", version.ref = "teamnewpipe-filepicker" } +newpipe-nanojson = { module = "com.github.TeamNewPipe:nanojson", version.ref = "teamnewpipe-nanojson" } noties-markwon-core = { module = "io.noties.markwon:core", version.ref = "markwon" } noties-markwon-linkify = { module = "io.noties.markwon:linkify", version.ref = "markwon" } ocpsoft-prettytime = { module = "org.ocpsoft.prettytime:prettytime", version.ref = "prettytime" }