From df7697abce6352a9e2d4da10e870d09a3b32dd04 Mon Sep 17 00:00:00 2001 From: brewin Date: Wed, 19 Nov 2025 08:18:48 -0600 Subject: [PATCH] Use deprecated readParcelable on Tiramisu to avoid crash (#3950) --- .../main/java/org/maplibre/android/camera/CameraPosition.kt | 4 +++- .../main/java/org/maplibre/android/geometry/VisibleRegion.kt | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/android/MapLibreAndroid/src/main/java/org/maplibre/android/camera/CameraPosition.kt b/platform/android/MapLibreAndroid/src/main/java/org/maplibre/android/camera/CameraPosition.kt index 1ccc441ff..9a9c7fb72 100644 --- a/platform/android/MapLibreAndroid/src/main/java/org/maplibre/android/camera/CameraPosition.kt +++ b/platform/android/MapLibreAndroid/src/main/java/org/maplibre/android/camera/CameraPosition.kt @@ -367,8 +367,10 @@ class CameraPosition override fun createFromParcel(parcel: Parcel): CameraPosition { val bearing = parcel.readDouble() + // Use deprecated method on Tiramisu to avoid platform bug + // https://github.com/maplibre/maplibre-native/issues/1276 @Suppress("DEPRECATION") - val target = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + val target = if (Build.VERSION.SDK_INT > Build.VERSION_CODES.TIRAMISU) { parcel.readParcelable(LatLng::class.java.classLoader, LatLng::class.java) } else { parcel.readParcelable(LatLng::class.java.classLoader) diff --git a/platform/android/MapLibreAndroid/src/main/java/org/maplibre/android/geometry/VisibleRegion.kt b/platform/android/MapLibreAndroid/src/main/java/org/maplibre/android/geometry/VisibleRegion.kt index 8626173d3..4c83b80c7 100644 --- a/platform/android/MapLibreAndroid/src/main/java/org/maplibre/android/geometry/VisibleRegion.kt +++ b/platform/android/MapLibreAndroid/src/main/java/org/maplibre/android/geometry/VisibleRegion.kt @@ -49,7 +49,9 @@ class VisibleRegion : Parcelable { */ @Suppress("DEPRECATION") private constructor(parcel: Parcel) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + // Use deprecated method on Tiramisu to avoid platform bug + // https://github.com/maplibre/maplibre-native/issues/1276 + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.TIRAMISU) { farLeft = parcel.readParcelable(LatLng::class.java.classLoader, LatLng::class.java) farRight = parcel.readParcelable(LatLng::class.java.classLoader, LatLng::class.java) nearLeft = parcel.readParcelable(LatLng::class.java.classLoader, LatLng::class.java)