From 0fb37afee29bb30cdf738ab5044d58676f12dc2f Mon Sep 17 00:00:00 2001 From: Ashoat Tevosyan Date: Tue, 24 Sep 2024 21:39:38 -0400 Subject: [PATCH] [native] Fix RECEIVER_EXPORTED/RECEIVER_NOT_EXPORTED Android build issue Summary: Got this fix from [this StackOverflow post](https://stackoverflow.com/q/77371855/427010). Test Plan: Confirmed that the crash-on-start for Android dev builds no longer occurs with this patch Reviewers: varun, will Reviewed By: will Subscribers: tomek Differential Revision: https://phab.comm.dev/D13457 --- .../java/app/comm/android/MainApplication.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/native/android/app/src/main/java/app/comm/android/MainApplication.java b/native/android/app/src/main/java/app/comm/android/MainApplication.java index 6cd830bd2a..db24cca358 100644 --- a/native/android/app/src/main/java/app/comm/android/MainApplication.java +++ b/native/android/app/src/main/java/app/comm/android/MainApplication.java @@ -1,8 +1,12 @@ package app.comm.android; +import android.content.BroadcastReceiver; import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; import android.content.res.Configuration; import android.database.CursorWindow; +import android.os.Build; import androidx.annotation.NonNull; import androidx.multidex.MultiDexApplication; import app.comm.android.commservices.CommServicesPackage; @@ -23,6 +27,8 @@ import java.lang.reflect.InvocationTargetException; import java.security.Security; import java.util.List; +import org.jetbrains.annotations.Nullable; + public class MainApplication extends MultiDexApplication implements ReactApplication { @@ -75,6 +81,18 @@ public ReactNativeHost getReactNativeHost() { } } + @Override + public Intent + registerReceiver(@Nullable BroadcastReceiver receiver, IntentFilter filter) { + if (Build.VERSION.SDK_INT >= 34 && + getApplicationInfo().targetSdkVersion >= 34) { + return super.registerReceiver( + receiver, filter, Context.RECEIVER_EXPORTED); + } else { + return super.registerReceiver(receiver, filter); + } + } + @Override public void onCreate() { super.onCreate();