From 04ef608f7a7c1131f2faaf98f987cd3ebf985aa4 Mon Sep 17 00:00:00 2001 From: Michael Zh Date: Tue, 24 Jun 2025 22:34:52 -0400 Subject: [PATCH 1/7] Specify RECEIVER_EXPORTED/RECEIVER_NOT_EXPORTED for sdk34 --- app/src/main/java/org/schabi/newpipe/MainActivity.java | 4 +++- .../schabi/newpipe/fragments/detail/VideoDetailFragment.java | 3 ++- .../org/schabi/newpipe/local/feed/service/FeedLoadService.kt | 3 ++- app/src/main/java/org/schabi/newpipe/player/Player.java | 4 +++- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java index 21f4f97a1..2d2c35928 100644 --- a/app/src/main/java/org/schabi/newpipe/MainActivity.java +++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java @@ -48,6 +48,7 @@ import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.ActionBarDrawerToggle; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; import androidx.core.view.GravityCompat; import androidx.drawerlayout.widget.DrawerLayout; import androidx.fragment.app.Fragment; @@ -890,7 +891,8 @@ public class MainActivity extends AppCompatActivity { }; final IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(VideoDetailFragment.ACTION_PLAYER_STARTED); - registerReceiver(broadcastReceiver, intentFilter); + ContextCompat.registerReceiver(this, broadcastReceiver, intentFilter, + ContextCompat.RECEIVER_EXPORTED); // If the PlayerHolder is not bound yet, but the service is running, try to bind to it. // Once the connection is established, the ACTION_PLAYER_STARTED will be sent. diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java index 083d1fe05..b46b0c708 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java @@ -1423,7 +1423,8 @@ public final class VideoDetailFragment intentFilter.addAction(ACTION_SHOW_MAIN_PLAYER); intentFilter.addAction(ACTION_HIDE_MAIN_PLAYER); intentFilter.addAction(ACTION_PLAYER_STARTED); - activity.registerReceiver(broadcastReceiver, intentFilter); + ContextCompat.registerReceiver(activity, broadcastReceiver, intentFilter, + ContextCompat.RECEIVER_EXPORTED); } diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt index f960040de..4aa825ca8 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/service/FeedLoadService.kt @@ -31,6 +31,7 @@ import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import androidx.core.app.PendingIntentCompat import androidx.core.app.ServiceCompat +import androidx.core.content.ContextCompat import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.core.Flowable import io.reactivex.rxjava3.disposables.Disposable @@ -200,7 +201,7 @@ class FeedLoadService : Service() { } } } - registerReceiver(broadcastReceiver, IntentFilter(ACTION_CANCEL)) + ContextCompat.registerReceiver(this, broadcastReceiver, IntentFilter(ACTION_CANCEL), ContextCompat.RECEIVER_NOT_EXPORTED) } // ///////////////////////////////////////////////////////////////////////// diff --git a/app/src/main/java/org/schabi/newpipe/player/Player.java b/app/src/main/java/org/schabi/newpipe/player/Player.java index 98da962e7..7ebf2e82e 100644 --- a/app/src/main/java/org/schabi/newpipe/player/Player.java +++ b/app/src/main/java/org/schabi/newpipe/player/Player.java @@ -60,6 +60,7 @@ import android.view.LayoutInflater; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; import androidx.core.math.MathUtils; import androidx.preference.PreferenceManager; @@ -764,7 +765,8 @@ public final class Player implements PlaybackListener, Listener { private void registerBroadcastReceiver() { // Try to unregister current first unregisterBroadcastReceiver(); - context.registerReceiver(broadcastReceiver, intentFilter); + ContextCompat.registerReceiver(context, broadcastReceiver, intentFilter, + ContextCompat.RECEIVER_EXPORTED); } private void unregisterBroadcastReceiver() { From 14cd562ebdc3903ab6f1dcfccbedc6020421f007 Mon Sep 17 00:00:00 2001 From: Michael Zh Date: Tue, 24 Jun 2025 23:05:33 -0400 Subject: [PATCH 2/7] Update manifest for sdk34 FGS changes --- app/src/main/AndroidManifest.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e0abd977b..e21bb518c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,6 +9,8 @@ + + @@ -96,7 +98,8 @@ - + - + Date: Wed, 25 Jun 2025 00:14:41 -0400 Subject: [PATCH 3/7] Bump compileSdk to 36 and targetSdk to 35 * Sdk 36 requires edge to edge, so use 35 so we can opt out for now --- app/build.gradle | 4 ++-- app/src/main/res/values-v35/styles.xml | 27 ++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/values-v35/styles.xml diff --git a/app/build.gradle b/app/build.gradle index a629f65eb..2f5f492fb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,14 +12,14 @@ plugins { } android { - compileSdk 34 + compileSdk 36 namespace 'org.schabi.newpipe' defaultConfig { applicationId "org.schabi.newpipe" resValue "string", "app_name", "NewPipe" minSdk 21 - targetSdk 33 + targetSdk 35 if (System.properties.containsKey('versionCodeOverride')) { versionCode System.getProperty('versionCodeOverride') as Integer } else { diff --git a/app/src/main/res/values-v35/styles.xml b/app/src/main/res/values-v35/styles.xml new file mode 100644 index 000000000..beb16bcdf --- /dev/null +++ b/app/src/main/res/values-v35/styles.xml @@ -0,0 +1,27 @@ + + + + + + + + +