Skip to content

Commit

Permalink
fix(BroadcastReceiver): register our BroadcastReceivers as RECEIVER_N…
Browse files Browse the repository at this point in the history
…OT_EXPORTED on Upside Down Cake onwards
  • Loading branch information
lemnik committed Jul 20, 2023
1 parent 34f88d3 commit 0bc338e
Show file tree
Hide file tree
Showing 8 changed files with 16 additions and 9 deletions.
2 changes: 1 addition & 1 deletion bugsnag-android-core/dsl-json
Submodule dsl-json updated 44 files
+1 −1 library/src/main/java/com/bugsnag/android/repackaged/dslplatform/json/DslJson.java
+6 −3 library/src/main/java/com/bugsnag/android/repackaged/dslplatform/json/ExternalConverterAnalyzer.java
+0 −65 .../repackaged/dslplatform/json/generated/types/Decimal/NullableArrayOfNullableDecimalsDefaultValueTurtle.java
+0 −49 ...droid/repackaged/dslplatform/json/generated/types/Decimal/NullableArrayOfOneDecimalsDefaultValueTurtle.java
+0 −65 .../bugsnag/android/repackaged/dslplatform/json/generated/types/Decimal/NullableDecimalDefaultValueTurtle.java
+0 −65 ...d/repackaged/dslplatform/json/generated/types/Decimal/NullableListOfNullableDecimalsDefaultValueTurtle.java
+0 −49 ...ndroid/repackaged/dslplatform/json/generated/types/Decimal/NullableListOfOneDecimalsDefaultValueTurtle.java
+0 −71 ...id/repackaged/dslplatform/json/generated/types/Decimal/NullableSetOfNullableDecimalsDefaultValueTurtle.java
+0 −53 ...android/repackaged/dslplatform/json/generated/types/Decimal/NullableSetOfOneDecimalsDefaultValueTurtle.java
+0 −65 ...droid/repackaged/dslplatform/json/generated/types/Decimal/OneArrayOfNullableDecimalsDefaultValueTurtle.java
+0 −49 ...ag/android/repackaged/dslplatform/json/generated/types/Decimal/OneArrayOfOneDecimalsDefaultValueTurtle.java
+0 −57 ...a/com/bugsnag/android/repackaged/dslplatform/json/generated/types/Decimal/OneDecimalDefaultValueTurtle.java
+0 −65 ...ndroid/repackaged/dslplatform/json/generated/types/Decimal/OneListOfNullableDecimalsDefaultValueTurtle.java
+0 −49 ...nag/android/repackaged/dslplatform/json/generated/types/Decimal/OneListOfOneDecimalsDefaultValueTurtle.java
+0 −71 ...android/repackaged/dslplatform/json/generated/types/Decimal/OneSetOfNullableDecimalsDefaultValueTurtle.java
+0 −53 ...snag/android/repackaged/dslplatform/json/generated/types/Decimal/OneSetOfOneDecimalsDefaultValueTurtle.java
+0 −65 ...json/generated/types/DecimalWithScaleOf9/NullableArrayOfNullableDecimalsWithScaleOf9DefaultValueTurtle.java
+0 −49 ...form/json/generated/types/DecimalWithScaleOf9/NullableArrayOfOneDecimalsWithScaleOf9DefaultValueTurtle.java
+0 −65 ...ged/dslplatform/json/generated/types/DecimalWithScaleOf9/NullableDecimalWithScaleOf9DefaultValueTurtle.java
+0 −65 .../json/generated/types/DecimalWithScaleOf9/NullableListOfNullableDecimalsWithScaleOf9DefaultValueTurtle.java
+0 −49 ...tform/json/generated/types/DecimalWithScaleOf9/NullableListOfOneDecimalsWithScaleOf9DefaultValueTurtle.java
+0 −71 ...m/json/generated/types/DecimalWithScaleOf9/NullableSetOfNullableDecimalsWithScaleOf9DefaultValueTurtle.java
+0 −53 ...atform/json/generated/types/DecimalWithScaleOf9/NullableSetOfOneDecimalsWithScaleOf9DefaultValueTurtle.java
+0 −65 ...form/json/generated/types/DecimalWithScaleOf9/OneArrayOfNullableDecimalsWithScaleOf9DefaultValueTurtle.java
+0 −49 ...lplatform/json/generated/types/DecimalWithScaleOf9/OneArrayOfOneDecimalsWithScaleOf9DefaultValueTurtle.java
+0 −57 ...packaged/dslplatform/json/generated/types/DecimalWithScaleOf9/OneDecimalWithScaleOf9DefaultValueTurtle.java
+0 −65 ...tform/json/generated/types/DecimalWithScaleOf9/OneListOfNullableDecimalsWithScaleOf9DefaultValueTurtle.java
+0 −49 ...slplatform/json/generated/types/DecimalWithScaleOf9/OneListOfOneDecimalsWithScaleOf9DefaultValueTurtle.java
+0 −71 ...atform/json/generated/types/DecimalWithScaleOf9/OneSetOfNullableDecimalsWithScaleOf9DefaultValueTurtle.java
+0 −53 ...dslplatform/json/generated/types/DecimalWithScaleOf9/OneSetOfOneDecimalsWithScaleOf9DefaultValueTurtle.java
+0 −65 ...roid/repackaged/dslplatform/json/generated/types/Money/NullableArrayOfNullableMoniesDefaultValueTurtle.java
+0 −49 ...g/android/repackaged/dslplatform/json/generated/types/Money/NullableArrayOfOneMoniesDefaultValueTurtle.java
+0 −65 ...droid/repackaged/dslplatform/json/generated/types/Money/NullableListOfNullableMoniesDefaultValueTurtle.java
+0 −49 ...ag/android/repackaged/dslplatform/json/generated/types/Money/NullableListOfOneMoniesDefaultValueTurtle.java
+0 −65 .../com/bugsnag/android/repackaged/dslplatform/json/generated/types/Money/NullableMoneyDefaultValueTurtle.java
+0 −71 ...ndroid/repackaged/dslplatform/json/generated/types/Money/NullableSetOfNullableMoniesDefaultValueTurtle.java
+0 −53 ...nag/android/repackaged/dslplatform/json/generated/types/Money/NullableSetOfOneMoniesDefaultValueTurtle.java
+0 −65 ...g/android/repackaged/dslplatform/json/generated/types/Money/OneArrayOfNullableMoniesDefaultValueTurtle.java
+0 −49 ...ugsnag/android/repackaged/dslplatform/json/generated/types/Money/OneArrayOfOneMoniesDefaultValueTurtle.java
+0 −65 ...ag/android/repackaged/dslplatform/json/generated/types/Money/OneListOfNullableMoniesDefaultValueTurtle.java
+0 −49 ...bugsnag/android/repackaged/dslplatform/json/generated/types/Money/OneListOfOneMoniesDefaultValueTurtle.java
+0 −57 .../java/com/bugsnag/android/repackaged/dslplatform/json/generated/types/Money/OneMoneyDefaultValueTurtle.java
+0 −71 ...nag/android/repackaged/dslplatform/json/generated/types/Money/OneSetOfNullableMoniesDefaultValueTurtle.java
+0 −53 .../bugsnag/android/repackaged/dslplatform/json/generated/types/Money/OneSetOfOneMoniesDefaultValueTurtle.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import android.content.Intent
import android.content.IntentFilter
import android.location.LocationManager
import android.net.ConnectivityManager
import android.os.Build
import android.os.RemoteException
import android.os.storage.StorageManager
import java.lang.RuntimeException
Expand All @@ -21,7 +22,11 @@ internal fun Context.registerReceiverSafe(
logger: Logger? = null
): Intent? {
try {
return registerReceiver(receiver, filter)
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
registerReceiver(receiver, filter, Context.RECEIVER_NOT_EXPORTED)
} else {
registerReceiver(receiver, filter)
}
} catch (exc: SecurityException) {
logger?.w("Failed to register receiver", exc)
} catch (exc: RemoteException) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ internal class PluginClient(
private fun instantiatePlugin(clz: String, isWarningEnabled: Boolean): Plugin? {
return try {
val pluginClz = Class.forName(clz)
pluginClz.newInstance() as Plugin
pluginClz.getDeclaredConstructor().newInstance() as Plugin
} catch (exc: ClassNotFoundException) {
if (isWarningEnabled) {
logger.d("Plugin '$clz' is not on the classpath - functionality will not be enabled.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ internal class SystemBroadcastReceiver(
) {
val extras = intent.extras
extras?.keySet()?.forEach { key ->
@Suppress("DEPRECATION")
val valObj = extras[key] ?: return@forEach
val strVal = valObj.toString()
if (isAndroidKey(key)) { // shorten the Intent action
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -204,17 +204,17 @@ public void testTopLevelValueTypes() throws IOException { // method monkey-patch
JsonWriter jsonWriter = new JsonWriter(stringWriter);
jsonWriter.beginArray();
try {
jsonWriter.value(new Double(Double.NaN));
jsonWriter.value(Double.valueOf(Double.NaN));
fail();
} catch (IllegalArgumentException expected) {
}
try {
jsonWriter.value(new Double(Double.NEGATIVE_INFINITY));
jsonWriter.value(Double.valueOf(Double.NEGATIVE_INFINITY));
fail();
} catch (IllegalArgumentException expected) {
}
try {
jsonWriter.value(new Double(Double.POSITIVE_INFINITY));
jsonWriter.value(Double.valueOf(Double.POSITIVE_INFINITY));
fail();
} catch (IllegalArgumentException expected) {
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ class SystemBroadcastReceiverTest {
`when`(intent.action).thenReturn("SomeTitle")
`when`(intent.extras).thenReturn(bundle)
`when`(bundle.keySet()).thenReturn(setOf("foo"))
@Suppress("DEPRECATION")
`when`(bundle.get("foo")).thenReturn(setOf("bar"))

val receiver = SystemBroadcastReceiver(client, NoopLogger)
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/com/bugsnag/android/Versions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import org.gradle.api.JavaVersion
object Versions {
// Note minSdkVersion must be >=21 for 64 bit architectures
val minSdkVersion = 14
val compileSdkVersion = 31
val compileSdkVersion = 34
val ndk = "23.1.7779620"
val java = JavaVersion.VERSION_1_7
val kotlin = "1.4.32"
Expand Down
4 changes: 2 additions & 2 deletions examples/sdk-app-example/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ apply plugin: "com.android.application"
apply plugin: "kotlin-android"

android {
compileSdkVersion 31
compileSdk 34
ndkVersion "17.2.4988734"

defaultConfig {
applicationId "com.example.bugsnag.android"
minSdkVersion 14
targetSdkVersion 31
targetSdkVersion 34
versionCode 1
versionName "1.0"
}
Expand Down

0 comments on commit 0bc338e

Please sign in to comment.